Author: JaroslawTworek
Date: 2008-01-16 20:59:15 +0000 (Wed, 16 Jan 2008)
New Revision: 782

Added:
   trunk/pysoy/tests/test_mesh.py
Log:
Created simple unit test for soy.meshes.Mesh


Added: trunk/pysoy/tests/test_mesh.py
===================================================================
--- trunk/pysoy/tests/test_mesh.py                              (rev 0)
+++ trunk/pysoy/tests/test_mesh.py      2008-01-16 20:59:15 UTC (rev 782)
@@ -0,0 +1,145 @@
+#!/usr/bin/env python
+
+import unittest
+import soy
+
+V = soy.atoms.Vertex
+F = soy.atoms.Face
+
+quad_vertices = [
+        ( 1,-1, 0),
+        ( 1, 1, 0),
+        (-1, 1, 0),
+        (-1,-1, 0)
+        ]
+
+quad2_vertices = [
+        ( 1,-1,-1),
+        ( 1, 1,-1),
+        (-1, 1,-1),
+        (-1,-1,-1)
+        ]
+
+quad_faces = [
+        (0,1,2),
+        (2,3,0)
+        ]
+
+quad_faces_alternate = [
+        (1,2,3),
+        (3,0,1)
+        ]
+
+def copy_c_array(array):
+    arr = []
+    for i in range(len(array)):
+        arr.append(array[i])
+    return arr
+
+class TestMesh(unittest.TestCase):
+    def setUp(self):
+        self.mesh = soy.meshes.Mesh()
+        self.material = soy.materials.StainlessSteel()
+
+    def test_addition_mesh(self):
+        V1 = lambda x : V(self.mesh, position=x)
+        F1 = lambda x : F(self.mesh, verts=x, material=self.material)
+
+        verts = map(V1, quad_vertices)
+        verts_copy = copy_c_array(self.mesh.verts)
+
+        face_vert = [ map(lambda x : verts[x], x) for x in quad_faces]
+        faces = map(F1, face_vert)
+        faces_copy = copy_c_array(self.mesh.faces)
+
+        self.assertEqual(len(self.mesh.verts),4)
+        self.assertEqual(len(self.mesh.faces),2)
+        
+        for i in range(4):
+            self.assertEqual( self.mesh.verts[i], verts_copy[i])
+        for i in range(2):
+            self.assertEqual( self.mesh.faces[i], faces_copy[i])
+
+        verts2 = map(V1, quad2_vertices)
+        face_vert2 = [ map(lambda x : verts2[x], x) for x in quad_faces]
+        faces2 = map(F1, face_vert2)
+
+        self.assertEqual(len(self.mesh.verts),8)
+        self.assertEqual(len(self.mesh.faces),4)
+
+        for i in range(4):
+            self.assertEqual( self.mesh.verts[i], verts_copy[i])
+        for i in range(2):
+            self.assertEqual( self.mesh.faces[i], faces_copy[i])
+
+    def test_modification_mesh(self):
+        V1 = lambda x : V(self.mesh, position=x)
+        F1 = lambda x : F(self.mesh, verts=x, material=self.material)
+
+        verts = map(V1, quad_vertices)
+        face_vert = [ map(lambda x : verts[x], x) for x in quad_faces]
+        faces = map(F1, face_vert)
+        
+        verts2 = map(V1, quad2_vertices)
+        face_vert2 = [ map(lambda x : verts2[x], x) for x in quad_faces]
+        faces2 = map(F1, face_vert2)
+
+        self.assertEqual(len(self.mesh.verts),8)
+        self.assertEqual(len(self.mesh.faces),4)
+
+        verts_copy = copy_c_array(self.mesh.verts)
+        faces_copy = copy_c_array(self.mesh.faces)
+
+        face_vert3 = [ map(lambda x : verts[x], x) for x in 
quad_faces_alternate]
+
+        for i in range(2,4):
+            self.mesh.faces[i].verts = face_vert3[i-2]
+
+        for i in range(8):
+            self.assertEqual( self.mesh.verts[i], verts_copy[i])
+        for i in range(2):
+            self.assertEqual( self.mesh.faces[i], faces_copy[i])
+
+
+    def test_substraction_mesh(self):
+        V1 = lambda x : V(self.mesh, position=x)
+        F1 = lambda x : F(self.mesh, verts=x, material=self.material)
+
+        verts = map(V1, quad_vertices)
+        face_vert = [ map(lambda x : verts[x], x) for x in quad_faces]
+        faces = map(F1, face_vert)
+
+        self.assertEqual(len(self.mesh.verts),4)
+        self.assertEqual(len(self.mesh.faces),2)
+
+        verts2 = map(V1, quad2_vertices)
+        face_vert2 = [ map(lambda x : verts2[x], x) for x in quad_faces]
+
+        for i in range(2):
+            self.mesh.faces[i].verts = face_vert2[i]
+
+        self.assertEqual(len(self.mesh.verts),4) # THIS ONE FAILS
+        self.assertEqual(len(self.mesh.faces),2)
+
+    def test_reuse_mesh(self):
+        V1 = lambda x : V(self.mesh, position=x)
+        F1 = lambda x : F(self.mesh, verts=x, material=self.material)
+
+        verts = map(V1, quad_vertices)
+        face_vert = [ map(lambda x : verts[x], x) for x in quad_faces]
+        faces = map(F1, face_vert)
+
+        self.assertEqual(len(self.mesh.verts),4)
+        self.assertEqual(len(self.mesh.faces),2)
+
+        verts2 = map(V1, quad_vertices)
+        face_vert2 = [ map(lambda x : verts2[x], x) for x in 
quad_faces_alternate]
+        faces2 = map(F1, face_vert2)
+
+        self.assertEqual(len(self.mesh.verts),4) #THIS ONE FAILS
+        self.assertEqual(len(self.mesh.faces),4)
+
+
+if __name__=='__main__':
+    unittest.main()
+

_______________________________________________
PySoy-SVN mailing list
[email protected]
http://www.pysoy.org/mailman/listinfo/pysoy-svn

Reply via email to