Files
openmesh/src/Python/Unittests/test_python.py
Jan Möbius 8a19cd851e Python source
git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@1171 fdac6126-5c0c-442c-9429-916003d36597
2014-09-16 11:15:13 +00:00

72 lines
2.4 KiB
Python

import unittest
import openmesh
class Python(unittest.TestCase):
def setUp(self):
self.mesh = openmesh.TriMesh()
# Add some vertices
self.vhandle = []
self.vhandle.append(self.mesh.add_vertex(openmesh.Vec3d(0, 1, 0)))
self.vhandle.append(self.mesh.add_vertex(openmesh.Vec3d(1, 0, 0)))
self.vhandle.append(self.mesh.add_vertex(openmesh.Vec3d(2, 1, 0)))
self.vhandle.append(self.mesh.add_vertex(openmesh.Vec3d(0,-1, 0)))
self.vhandle.append(self.mesh.add_vertex(openmesh.Vec3d(2,-1, 0)))
# Add four faces using Python lists
vertex_list = [self.vhandle[0], self.vhandle[1], self.vhandle[2]]
self.mesh.add_face(vertex_list)
vertex_list = [self.vhandle[1], self.vhandle[3], self.vhandle[4]]
self.mesh.add_face(vertex_list)
vertex_list = [self.vhandle[0], self.vhandle[3], self.vhandle[1]]
self.mesh.add_face(vertex_list)
vertex_list = [self.vhandle[2], self.vhandle[1], self.vhandle[4]]
self.mesh.add_face(vertex_list)
# Test setup:
# 0 ==== 2
# |\ 0 /|
# | \ / |
# |2 1 3|
# | / \ |
# |/ 1 \|
# 3 ==== 4
def test_python_iterator(self):
# Iterate over all vertices
indices = [0, 1, 2, 3, 4]
for v, idx in zip(self.mesh.vertices(), indices):
self.assertEqual(v.idx(), idx)
def test_python_circulator(self):
# Iterate around vertex 1 at the middle
indices = [4, 3, 0, 2]
for v, idx in zip(self.mesh.vv(self.vhandle[1]), indices):
self.assertEqual(v.idx(), idx)
def test_property_manager(self):
# Check if vertex property exists
self.assertFalse(openmesh.VPropertyManager.property_exists(self.mesh, "prop"))
# Create a new vertex property
propman = openmesh.VPropertyManager(self.mesh, "prop")
self.assertTrue(propman.property_exists(self.mesh, "prop"))
# Check initial property values
for v in self.mesh.vertices():
self.assertEqual(propman[v], None)
# Set property values
propman.set_range(self.mesh.vertices(), 0.0)
# Check again
for v in self.mesh.vertices():
self.assertEqual(propman[v], 0.0)
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(Python)
unittest.TextTestRunner(verbosity=2).run(suite)