def test_edges(self):
     g = Graph()
     v1, v2, v3 = g.add_vertices(3)
     g.add_edge((v1, v2))
     self.assertEqual(g.num_edges(), 1)
     self.assertTrue(g.connected(v1, v2))
     self.assertTrue(v2 in g.neighbours(v1))
     self.assertEqual(g.vertex_degree(v1), 1)
     self.assertFalse(g.connected(v1, v3))
     e = g.edge(v1, v2)
     self.assertEqual(g.edge_type(e), 1)
     g.set_edge_type(e, 2)
     self.assertEqual(g.edge_type(e), 2)
     g.remove_edge(e)
     self.assertEqual(g.num_edges(), 0)
     self.assertFalse(g.connected(v1, v2))
 def test_copy(self):
     g = Graph()
     v1, v2 = g.add_vertices(2)
     g.add_edge((v1, v2), 2)
     g2 = g.copy()
     self.assertEqual(g.num_vertices(), g2.num_vertices())
     self.assertEqual(g.num_edges(), g2.num_edges())
     v1, v2 = list(g2.vertices())
     self.assertEqual(g.edge_type(g.edge(v1, v2)), 2)
Exemple #3
0
 def test_add_edge_table_different_type(self):
     g = Graph()
     v1, v2 = g.add_vertices(2)
     g.set_type(v1,1)
     g.set_type(v2,2)
     etab = {(v1,v2):[0,2]}
     g.add_edge_table(etab)
     self.assertTrue(g.connected(v1,v2))
     self.assertEqual((g.phase(v1),g.phase(v2)),(0,0))
     g.remove_edge(g.edge(v1,v2))
     self.assertFalse(g.connected(v1,v2))
     etab = {(v1,v2):[2,0]}
     g.add_edge_table(etab)
     self.assertFalse(g.connected(v1,v2))
     etab = {(v1,v2): [1,1]}
     g.add_edge_table(etab)
     self.assertEqual(g.edge_type(g.edge(v1,v2)),2)
     self.assertTrue((g.phase(v1)==1  and g.phase(v2)==0) or (g.phase(v1)==0 and g.phase(v2)==1))
Exemple #4
0
 def test_add_edge_table_same_type(self):
     g = Graph()
     v1, v2 = g.add_vertices(2)
     g.set_type(v1,VertexType.Z)
     g.set_type(v2,VertexType.Z)
     etab = {(v1,v2):[2,0]}
     g.add_edge_table(etab)
     self.assertTrue(g.connected(v1,v2))
     self.assertEqual((g.phase(v1),g.phase(v2)),(0,0))
     g.remove_edge(g.edge(v1,v2))
     self.assertFalse(g.connected(v1,v2))
     etab = {(v1,v2):[0,2]}
     g.add_edge_table(etab)
     self.assertFalse(g.connected(v1,v2))
     etab = {(v1,v2): [1,1]}
     g.add_edge_table(etab)
     self.assertEqual(g.edge_type(g.edge(v1,v2)),EdgeType.SIMPLE)
     self.assertTrue((g.phase(v1)==1  and g.phase(v2)==0) or (g.phase(v1)==0 and g.phase(v2)==1))