Пример #1
0
    def test_int_not_in_ckt(self):
        model = FlexModel.load_model_file('test/parallel_link_model_test_topology.csv')
        model.update_simulation()

        node_f = model.get_node_object('F')
        node_x = model.get_node_object('X')
        new_int = Interface('F-to-X', 100, 100, node_f, node_x, 90)
        model.interface_objects.add(new_int)

        err_msg = "WARNING: These interfaces were not matched"

        with self.assertRaises(ModelException) as context:
            model.update_simulation()
        self.assertIn(err_msg, context.exception.args[0])
Пример #2
0
    def test_non_unique_interface_name(self):
        model = FlexModel.load_model_file('test/parallel_link_model_test_topology.csv')
        model.update_simulation()

        node_f = model.get_node_object('F')
        node_b = model.get_node_object('B')
        new_int = Interface('F-to-B', 100, 100, node_f, node_b, 80)
        model.interface_objects.add(new_int)

        err_msg = "No matching Interface Object found"

        with self.assertRaises(ModelException) as context:
            model.update_simulation()
        self.assertIn(err_msg, context.exception.args[0])
Пример #3
0
    def test_duplicate_interface(self):
        model = FlexModel.load_model_file('test/parallel_link_model_test_topology.csv')
        model.update_simulation()

        node_a = model.get_node_object('A')
        node_b = model.get_node_object('B')

        int_a_b = Interface('A-to-B', 4, 100, node_a, node_b, 67)

        err_msg = "Interface names must be unique per node"

        model.interface_objects.add(int_a_b)
        with self.assertRaises(ModelException) as context:
            model._unique_interface_per_node()
        self.assertIn(err_msg, context.exception.args[0])
Пример #4
0
    def test_demand_on_lsp(self):
        """
        Ensure the demand takes an available LSP
        :return:
        """
        node_a = Node(name='nodeA', lat=0, lon=0)
        node_b = Node(name='nodeB', lat=0, lon=0)
        node_d = Node(name='nodeD')
        interface_a = Interface(name='inerfaceA-to-B',
                                cost=4,
                                capacity=100,
                                node_object=node_a,
                                remote_node_object=node_b,
                                address=1)
        interface_b = Interface(name='inerfaceB-to-A',
                                cost=4,
                                capacity=100,
                                node_object=node_b,
                                remote_node_object=node_a,
                                address=1)
        dmd_a_b = Demand(node_a, node_b, traffic=10)

        lsp_a_b = RSVP_LSP(source_node_object=node_a,
                           dest_node_object=node_b,
                           lsp_name='lsp_a_b')

        model = Model(interface_objects=set([interface_a, interface_b]),
                      node_objects=set([node_a, node_b, node_d]),
                      demand_objects=set([dmd_a_b]),
                      rsvp_lsp_objects=set([lsp_a_b]))

        model.update_simulation()

        self.assertEqual(
            str(dmd_a_b.path),
            "[RSVP_LSP(source = nodeA, dest = nodeB, lsp_name = 'lsp_a_b')]")
Пример #5
0
    def test_add_orphan_interface(self):
        """
        Tests adding an unpaired Interface to the model's interface_objects set
        """
        model = FlexModel.load_model_file('test/parallel_link_model_test_topology.csv')
        model.update_simulation()

        node_a = model.get_node_object('A')
        node_b = model.get_node_object('B')
        orphan_int = Interface('A-to-B', 100, 100, node_a, node_b, circuit_id=80)
        model.interface_objects.add(orphan_int)

        err_msg = "No matching Interface Object found"

        with self.assertRaises(ModelException) as context:
            model.update_simulation()
        self.assertIn(err_msg, context.exception.args[0])