示例#1
0
 def test_split(self):
     #
     # New HalfEdge
     #
     v1 = Vertex((0,0))
     v2 = Vertex((2,2))
     half_edge = HalfEdge(v1, v2)
     #
     # Split it
     # 
     half_edge.split()
     #
     # Check if the children behave
     # 
     child_0, child_1 = half_edge.get_children()
     self.assertEqual(child_0.head(), child_1.base(),\
                      'First child head should equal second child base.')    
     #
     # Define twin half edge
     # 
     twin = HalfEdge(v2, v1)
     half_edge.assign_twin(twin)
     twin.assign_twin(half_edge)
     
     #
     # Split twin
     # 
     twin.split()
     
     #
     # Check wether children are twinned
     # 
     c0, c1 = half_edge.get_children()
     t0, t1 = twin.get_children()
     self.assertEqual(c0.base(),t1.head(),\
                      'Children have incorrect twins.')
     self.assertEqual(c0.head(),t1.base(),\
                      'Children have incorrect twins.')
     self.assertEqual(c1.base(),t0.head(),\
                      'Children have incorrect twins.')
     self.assertEqual(c1.head(),t0.base(),\
                      'Children have incorrect twins.')
示例#2
0
 def test_assign_twin(self):
     #
     # New half-edge
     # 
     v1 = Vertex((0,0))
     v2 = Vertex((1,1))
     half_edge = HalfEdge(v1, v2)
     #
     # Try to assign incorrect twin
     # 
     false_twin = HalfEdge(v1, v2)
     self.assertRaises(Exception, half_edge.assign_twin, false_twin,\
                       'This twin should not be assignable.')
     #
     # Assign a good twin and check 
     # 
     good_twin = HalfEdge(v2, v1)
     half_edge.assign_twin(good_twin)
     self.assertEqual(good_twin.base(),half_edge.head(), \
                      'Heads and bases do not match.')
     self.assertEqual(good_twin.head(),half_edge.base(), \
                      'Heads and bases do not match.')