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.')
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.')