#!/usr/bin/env python # import unittest import triang class triangTestCase(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def testrectangle(self): points = [] seglist = [] holelist = [] regionlist = [] points = [(0.0,0.0),(0.0,10.0),(3.0,0.0),(3.0,10.0)] pointattlist = [[],[],[],[]] regionlist.append( (1.2,1.2,5.0) ) seglist = [(0,1),(1,3),(3,2),(2,0)] segattlist = [0,0,0,0] trilist = [] mode = "Qzp" data = triang.genMesh(points,seglist,holelist,regionlist,pointattlist,segattlist,trilist, mode) self.failUnless(data['trianglelist'] ==[(1, 0, 2), (2, 3, 1)], 'trianglelist is wrong!') self.failUnless(data['generatedsegmentlist'] ==[(0, 1), (1, 3), (3, 2), (2, 0)], 'generatedsegmentlist is wrong!') self.failUnless(data['pointlist'] ==[(0.0, 0.0), (0.0, 10.0), (3.0, 0.0), (3.0, 10.0)], ' is wrong!') def testrectangle(self): points = [] seglist = [] holelist = [] regionlist = [] points = [(0.0,0.0),(0.0,10.0),(3.0,0.0),(3.0,10.0)] pointattlist = [[],[],[],[]] regionlist.append( (1.2,1.2,5.0) ) seglist = [(0,1),(1,3),(3,2),(2,0)] segattlist = [0,0,0,0] trilist = [] mode = "Qzp" data = triang.genMesh(points,seglist,holelist,regionlist,pointattlist,segattlist,trilist, mode) self.failUnless(data['generatedtrianglelist'] ==[(1, 0, 2), (2, 3, 1)], 'trianglelist is wrong!') self.failUnless(data['generatedsegmentlist'] ==[(0, 1), (1, 3), (3, 2), (2, 0)], 'segmentlist is wrong!') self.failUnless(data['generatedpointlist'] ==[(0.0, 0.0), (0.0, 10.0), (3.0, 0.0), (3.0, 10.0)], ' is wrong!') def testbad_region(self): points = [] seglist = [] holelist = [] regionlist = [(1.2,1.2)] points = [(0.0,0.0),(0.0,10.0),(3.0,0.0),(3.0,10.0)] pointattlist = [[],[],[],[]] seglist = [(0,1),(1,3),(3,2),(2,0)] segattlist = [0,0,0,0] trilist = [] mode = "Qzpn" try: data = triang.genMesh(points,seglist,holelist,regionlist,pointattlist,segattlist, trilist, mode) except TypeError: pass else: self.failUnless(0 ==1, 'bad region list did not raise error!') def testregion_with_maxarea(self): points = [] seglist = [] holelist = [] regionlist = [(3,1,1.0)] points = [(0.0,0.0),(6.0,0.0),(6.0,6.0),(0.0,6.0)] pointattlist = [[],[],[],[]] seglist = [(0,1),(1,2),(3,2),(3,0),(0,2)] segattlist = [0,0,0,0,0] trilist = [] mode = "Qzpna36a" data = triang.genMesh(points,seglist,holelist,regionlist,pointattlist,segattlist, trilist, mode) self.failUnless(len(data['generatedtrianglelist']) == 2, 'testregion_with_maxarea 1: # of tris is wrong!') ## Another test case regionlist = [(3,1,1.0),(1,3,1.0,8.0)] mode = "Qzpna36a" data = triang.genMesh(points,seglist,holelist,regionlist,pointattlist,segattlist, trilist, mode) self.failUnless(len(data['generatedtrianglelist']) == 6, 'testregion_with_maxarea 2: # of tris is wrong!') ## Another test case regionlist = [(3,1,1.0,8.0),(1,3,1.0,8.0)] mode = "Qzpna36a" data = triang.genMesh(points,seglist,holelist,regionlist,pointattlist,segattlist, trilist, mode) self.failUnless(len(data['generatedtrianglelist']) == 8, 'testregion_with_maxarea 3: # of tris is wrong!') ## Another test case regionlist = [(3,1,1.0),(1,3,1.0,8.0)] mode = "Qzpna8a" data = triang.genMesh(points,seglist,holelist,regionlist,pointattlist,segattlist, trilist, mode) self.failUnless(len(data['generatedtrianglelist']) == 8, 'testregion_with_maxarea 4: # of tris is wrong!') def testbad_point(self): holelist = [] regionlist = [] points = [(0.0,0.0),(0.0,10.0),(3.0,0.0),(3.0)] pointattlist = [[],[],[],[]] seglist = [(0,1),(1,3),(3,2),(2,0)] segattlist = [0,0,0,0] trilist = [] mode = "Qzpn" try: data = triang.genMesh(points,seglist,holelist,regionlist,pointattlist,segattlist, trilist, mode) except TypeError: pass else: self.failUnless(0 ==1, 'bad point list did not raise error!') def testbad_hole(self): holelist = [(9.0)] regionlist = [] points = [(0.0,0.0),(0.0,10.0),(3.0,0.0),(3.0,10.0)] pointattlist = [[],[],[],[]] seglist = [(0,1),(1,3),(3,2),(2,0)] segattlist = [0,0,0,0] trilist = [] mode = "Qzpn" try: data = triang.genMesh(points,seglist,holelist,regionlist,pointattlist,segattlist, trilist, mode) except TypeError: pass else: self.failUnless(0 ==1, 'bad hole list did not raise error!') def testbad_segment(self): holelist = [] regionlist = [] points = [(0.0,0.0),(0.0,10.0),(3.0,0.0),(3.0,10.0)] pointattlist = [[],[],[],[]] seglist = [(0,1),(1,3),(3,2),(2)] segattlist = [0,0,0,0] trilist = [] mode = "Qzpn" try: data = triang.genMesh(points,seglist,holelist,regionlist,pointattlist,segattlist, trilist, mode) except TypeError: pass else: self.failUnless(0 ==1, 'bad segment list did not raise error!') def testbad_segattlist(self): holelist = [] regionlist = [] points = [(0.0,0.0),(0.0,10.0),(3.0,0.0),(3.0,10.0)] pointattlist = [[],[],[],[]] seglist = [(0,1),(1,3),(3,2),(2,0)] segattlist = [0,0] trilist = [] mode = "Qzpn" try: data = triang.genMesh(points,seglist,holelist,regionlist,pointattlist,segattlist, trilist, mode) self.failUnless(data['trianglelist'] ==[(1, 0, 2), (2, 3, 1)], 'trianglelist is wrong!') except TypeError: pass else: self.failUnless(0 ==1, 'bad segment attribute list did not raise error!') def testrectangle_regions(self): points = [] seglist = [] holelist = [] regionlist = [] points = [(0.0,0.0),(0.0,10.0),(3.0,0.0),(3.0,10.0)] pointattlist = [[],[],[],[]] #it seems that #triangle only associates one region with a triangle regionlist.append( (1.3,1.3,88.33) ) regionlist.append( (1.2,1.2,77,55) ) seglist = [(0,1),(1,3),(3,2),(2,0)] segattlist = [0,0,0,0] trilist = [] mode = "QAzpq" data = triang.genMesh(points,seglist,holelist,regionlist,pointattlist,segattlist, trilist, mode) self.failUnless(data['generatedtriangleattributelist'] ==[[77.0], [77.0], [77.0], [77.0]], 'triangleattributelist is wrong!') if __name__ == "__main__": suite = unittest.makeSuite(triangTestCase,'test') runner = unittest.TextTestRunner() runner.run(suite)