surfaces/surf/test/subd/cc.py

46 lines
1.4 KiB
Python

import json
import os
import unittest
from surf.geometry import PolygonMesh
from surf.subd import cc
class TestCC(unittest.TestCase):
def setUp(self):
path, file_name = os.path.split(__file__)
self.samples_dir = os.path.join(path, os.pardir, 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'))
self.cube_file_name = os.path.join(self.samples_dir,
'cube-blender-cc-1.json')
self.cube1 = json.load(open(self.cube_file_name, 'r'))
def test_refined_vertex_location(self):
p = PolygonMesh(**self.cube)
p2 = cc.refine(p)
v2 = [list(i) for i in p2.vertices]
for a, b in zip(sorted(self.cube1['vertices']), sorted(v2)):
for i in xrange(len(a)):
self.assertAlmostEqual(a[i], b[i])
def test_vert_count(self):
p = PolygonMesh(**self.cube)
p2 = cc.refine(p)
self.assertEqual(len(p2.vertices), 26)
def test_edge_count(self):
p = PolygonMesh(**self.cube)
p2 = cc.refine(p)
self.assertEqual(len(p2.edges), 48)
def test_face_count(self):
p = PolygonMesh(**self.cube)
p2 = cc.refine(p)
self.assertEqual(len(p2.faces), 24)
if __name__ == '__main__':
unittest.main(verbosity=3)