moved tests to be submodule of surf
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
from .vertex import TestVertex
|
||||
from .edge import TestEdge
|
||||
from .polymesh import TestPM
|
||||
|
||||
|
||||
# I only use the convoluted Class.__name__ to pass pyflakes (it complains about
|
||||
# importing and not using the modules otherwise ...
|
||||
|
||||
__all__ = [
|
||||
TestVertex.__name__,
|
||||
TestEdge.__name__,
|
||||
TestPM.__name__,
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
import unittest
|
||||
|
||||
from surf.geometry import Vertex, Edge
|
||||
|
||||
|
||||
class TestEdge(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.origin = Vertex(0, 0, 0)
|
||||
self.v1 = Vertex(-1, -1, -1)
|
||||
self.v2 = Vertex(1, 1, 1)
|
||||
|
||||
self.v3 = Vertex(5, 4, 3)
|
||||
self.v4 = Vertex(10, -2, 13)
|
||||
self.v5 = Vertex(-4, 15.3, 100)
|
||||
|
||||
def test_centroid(self):
|
||||
e = Edge(self.v1, self.v3)
|
||||
self.assertEqual(e.centroid, Vertex(2, 1.5, 1))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main(verbosity=3)
|
||||
@@ -0,0 +1,26 @@
|
||||
import json
|
||||
import os
|
||||
import unittest
|
||||
|
||||
from surf.geometry import PolygonMesh
|
||||
|
||||
|
||||
class TestPM(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
path, file_name = os.path.split(__file__)
|
||||
self.samples_dir = os.path.join(path, os.pardir, os.pardir,
|
||||
'blender', 'samples')
|
||||
self.cube_file_name = os.path.join(self.samples_dir, 'cube.json')
|
||||
self.cube = json.load(open(self.cube_file_name, 'r'))
|
||||
|
||||
def test_cube_load(self):
|
||||
p = PolygonMesh(**self.cube)
|
||||
v = p.vertices[0]
|
||||
self.assertAlmostEqual(v[0], -1.0)
|
||||
self.assertAlmostEqual(v[1], -1.0)
|
||||
self.assertAlmostEqual(v[2], -1.0)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main(verbosity=3)
|
||||
@@ -0,0 +1,24 @@
|
||||
from surf.util import cube
|
||||
from surf.subd import cc
|
||||
|
||||
polygon = cube()
|
||||
print polygon
|
||||
|
||||
refined_poly = cc.refine(polygon)
|
||||
print refined_poly
|
||||
#
|
||||
#
|
||||
# import pylab
|
||||
# import mpl_toolkits.mplot3d.axes3d as p3
|
||||
#
|
||||
# fig = pylab.figure()
|
||||
# ax = p3.Axes3D(fig)
|
||||
# for edge in newPolygon.edges:
|
||||
# xs = [vertex.x for vertex in edge.vertices]
|
||||
# ys = [vertex.y for vertex in edge.vertices]
|
||||
# zs = [vertex.z for vertex in edge.vertices]
|
||||
# ax.plot_wireframe(xs, ys, zs)
|
||||
# ax.set_xlabel('X')
|
||||
# ax.set_ylabel('Y')
|
||||
# ax.set_zlabel('Z')
|
||||
# pylab.show()
|
||||
@@ -0,0 +1,72 @@
|
||||
import unittest
|
||||
|
||||
from surf.geometry import Vertex
|
||||
|
||||
|
||||
class TestVertex(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.origin = Vertex(0, 0, 0)
|
||||
self.v1 = Vertex(-1, -1, -1)
|
||||
self.v2 = Vertex(1, 1, 1)
|
||||
|
||||
self.v3 = Vertex(5, 4, 3)
|
||||
self.v4 = Vertex(10, -2, 13)
|
||||
self.v5 = Vertex(-4, 15.3, 100)
|
||||
|
||||
def test_addition(self):
|
||||
added_v = self.v1 + self.v2
|
||||
self.assertEqual(added_v, self.origin)
|
||||
self.assertEqual(self.v3 + self.v4, Vertex(15, 2, 16))
|
||||
|
||||
def test_summation(self):
|
||||
v = sum((self.v1, self.v2, self.v3, self.v4), Vertex())
|
||||
self.assertEqual(v, Vertex(15, 2, 16))
|
||||
v = sum((self.v1, self.v2, self.v3, self.v4, self.v5), Vertex())
|
||||
self.assertEqual(v, Vertex(11, 17.3, 116))
|
||||
|
||||
def test_division(self):
|
||||
v1 = self.v1 / 2
|
||||
v2 = self.v1 / 2.0
|
||||
self.assertEqual(v1, v2)
|
||||
|
||||
def test_inappropriate_division(self):
|
||||
with self.assertRaises(TypeError):
|
||||
self.v1 / self.v2
|
||||
with self.assertRaises(TypeError):
|
||||
1.0 / self.v1
|
||||
with self.assertRaises(TypeError):
|
||||
self.v1 / 'asdf'
|
||||
|
||||
def test_multiply(self):
|
||||
self.assertEqual(type(self.v1 * 2), Vertex)
|
||||
self.assertEqual(type(self.v1 * self.v1), Vertex)
|
||||
self.assertEqual(self.v1 * 2, Vertex(-2, -2, -2))
|
||||
self.assertEqual(self.v1 * self.v1, Vertex(0, 0, 0))
|
||||
self.assertEqual(self.v1 * self.v2, Vertex(0, 0, 0))
|
||||
self.assertEqual(self.v3 * self.v4, Vertex(58, -35, -50))
|
||||
|
||||
def test_cross(self):
|
||||
i = Vertex(1, 0, 0)
|
||||
j = Vertex(0, 1, 0)
|
||||
k = Vertex(0, 0, 1)
|
||||
|
||||
self.assertEqual(i * j, k)
|
||||
self.assertEqual(j * k, i)
|
||||
self.assertEqual(k * i, j)
|
||||
|
||||
self.assertEqual(j * i, -k)
|
||||
self.assertEqual(k * j, -i)
|
||||
self.assertEqual(i * k, -j)
|
||||
|
||||
self.assertEqual(i * i, self.origin)
|
||||
self.assertEqual(j * j, self.origin)
|
||||
self.assertEqual(k * k, self.origin)
|
||||
|
||||
def test_negative(self):
|
||||
self.assertEqual(-self.v1, self.v2)
|
||||
self.assertEqual(-self.v2, self.v1)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main(verbosity=3)
|
||||
Reference in New Issue
Block a user