Beispiel #1
0
    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"))
Beispiel #2
0
    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)
Beispiel #3
0
 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))
         ]
     )
Beispiel #4
0
 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)]
     )
Beispiel #5
0
 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)