Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 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))
Ejemplo n.º 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))