def test_set_attributes(self): g = Graph() v = g.add_vertex() self.assertEqual(g.phase(v),0) g.set_phase(v,1) self.assertEqual(g.phase(v),1) self.assertEqual(g.type(v),VertexType.BOUNDARY) g.set_type(v,VertexType.X) self.assertEqual(g.type(v),VertexType.X) self.assertFalse(g.is_ground(v)) g.set_ground(v) self.assertTrue(g.is_ground(v)) g.set_row(v,3) self.assertEqual(g.row(v),3) g.set_qubit(v,2) self.assertEqual(g.qubit(v),2)
def test_set_attributes(self): g = Graph() v = g.add_vertex() g.set_phase(v, 1) self.assertEqual(g.phase(v), 1) g.set_type(v, 2) self.assertEqual(g.type(v), 2) g.set_row(v, 3) self.assertEqual(g.row(v), 3) g.set_qubit(v, 2) self.assertEqual(g.qubit(v), 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))