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