def test_routinggraph_set_metadata(self): r = graph.simple_test_routing() sw = Switch(id=0, type=SwitchType.MUX, name="sw") r.create_edge_with_ids(0, 1, sw) e1 = r.get_edge_by_id(4) self.assertEqual(':-(', e1.get_metadata("test", default=":-(")) e1.set_metadata("test", "123") self.assertEqual('123', e1.get_metadata("test", default=":-(")) # Or via the routing object r.set_metadata(e1, "test", "234") self.assertEqual('234', r.get_metadata(e1, "test", "234")) # Exception if no default provided with self.assertRaises(ValueError): r.get_metadata(e1, "not_found") r.set_metadata(e1, "test", 1) # Works with nodes n1 = r.get_node_by_id(0) # Call directly on the node self.assertEqual(':-(', n1.get_metadata("test", default=":-(")) n1.set_metadata("test", "123") self.assertEqual('123', n1.get_metadata("test", default=":-(")) # Or via the routing object r.set_metadata(n1, "test", "234") self.assertEqual('234', r.get_metadata(n1, "test"))
def test_routinggraph_create_edge_with_ids(self): r = graph.simple_test_routing() sw = Switch(id=0, type=SwitchType.MUX, name="sw") r.create_edge_with_ids(0, 1, sw) e1 = r.get_edge_by_id(4) self.assertEqual( '0 X000Y000[00].SRC--> ->>- 1 X000Y000[00].R-PIN>', RoutingGraphPrinter.edge(r, e1) ) # The code protects against invalid edge creation with self.assertRaises(TypeError): r.create_edge_with_ids(0, 2, sw) with self.assertRaises(TypeError): r.create_edge_with_ids(1, 4, sw)
def test_routinggraph_edges_for_node(self): r = graph.simple_test_routing() self.assertEqual( [ '0 X000Y000[00].SRC--> ->>- 1 X000Y000[00].R-PIN>', '1 X000Y000[00].R-PIN> ->>- 2 X000Y000<-00->X000Y010' ], [ RoutingGraphPrinter.edge(r, e) for e in r.edges_for_node(r.get_node_by_id(1)) ] ) self.assertEqual( [ '1 X000Y000[00].R-PIN> ->>- 2 X000Y000<-00->X000Y010', '2 X000Y000<-00->X000Y010 ->>- 3 X000Y010[00].L-PIN<' ], [ RoutingGraphPrinter.edge(r, e) for e in r.edges_for_node(r.get_node_by_id(2)) ] )
def test_routinggraph_nodes_for_edge(self): r = graph.simple_test_routing() e1 = r.get_edge_by_id(0) self.assertEqual( '0 X000Y000[00].SRC--> ->>- 1 X000Y000[00].R-PIN>', RoutingGraphPrinter.edge(r, e1) ) self.assertEqual( ['0 X000Y000[00].SRC-->', '1 X000Y000[00].R-PIN>'], [RoutingGraphPrinter.node(n) for n in r.nodes_for_edge(e1)] ) e2 = r.get_edge_by_id(1) self.assertEqual( '1 X000Y000[00].R-PIN> ->>- 2 X000Y000<-00->X000Y010', RoutingGraphPrinter.edge(r, e2) ) self.assertEqual( ['1 X000Y000[00].R-PIN>', '2 X000Y000<-00->X000Y010'], [RoutingGraphPrinter.node(n) for n in r.nodes_for_edge(e2)] )
def test_routinggraph_get_edge_by_id(self): r = graph.simple_test_routing() self.assertEqual( '0 X000Y000[00].SRC--> ->>- 1 X000Y000[00].R-PIN>', RoutingGraphPrinter.edge(r, r.get_edge_by_id(0)) ) self.assertEqual( '1 X000Y000[00].R-PIN> ->>- 2 X000Y000<-00->X000Y010', RoutingGraphPrinter.edge(r, r.get_edge_by_id(1)) ) self.assertEqual( '2 X000Y000<-00->X000Y010 ->>- 3 X000Y010[00].L-PIN<', RoutingGraphPrinter.edge(r, r.get_edge_by_id(2)) ) self.assertEqual( '3 X000Y010[00].L-PIN< ->>- 4 X000Y010[00].SINK-<', RoutingGraphPrinter.edge(r, r.get_edge_by_id(3)) ) with self.assertRaises(KeyError): r.get_edge_by_id(4)