def test_to_ns2_directed(self): t = fnss.DirectedTopology() t.add_path([1, 2, 3, 4]) fnss.set_capacities_constant(t, 10, 'Gbps') fnss.set_delays_constant(t, 2, 'us') fnss.set_buffer_sizes_constant(t, 20, 'packets') fnss.to_ns2(t, path.join(TMP_DIR, 'ns2-dir.tcl'), stacks=False)
def test_to_omnetpp_directed(self): t = fnss.DirectedTopology() t.add_path([1, 2, 3, 4]) fnss.set_capacities_constant(t, 10, 'Gbps') fnss.set_delays_constant(t, 2, 'us') fnss.set_buffer_sizes_constant(t, 20, 'packets') fnss.to_omnetpp(t, path.join(TMP_DIR, 'omnetpp-dir.ned'))
def test_buffer_sizes_bw_delay_prod_no_return_path(self): topo = fnss.DirectedTopology() topo.add_edge(1, 2, weight=1) topo.add_edge(1, 3, weight=1) topo.add_edge(3, 2, weight=1) fnss.set_capacities_constant(topo, 10) fnss.set_delays_constant(topo, 2) self.assertRaises(ValueError, fnss.set_buffer_sizes_bw_delay_prod, topo)
def test_fan_in_out_capacities_directed(self): dir_topology = fnss.DirectedTopology() dir_topology.add_edge(0, 1) dir_topology.add_edge(1, 0) dir_topology.add_edge(1, 2) dir_topology.add_edge(3, 2) fnss.set_capacities_constant(dir_topology, 10, 'Mbps') in_cap, out_cap = fnss.fan_in_out_capacities(dir_topology) self.assertEqual({0: 10, 1: 10, 2: 20, 3: 0}, in_cap) self.assertEqual({0: 10, 1: 20, 2: 0, 3: 10}, out_cap)
def test_od_pairs_from_topology_directed(self): dir_topology = fnss.DirectedTopology() dir_topology.add_edge(0, 1) dir_topology.add_edge(1, 0) dir_topology.add_edge(1, 2) dir_topology.add_edge(3, 2) dir_topology.add_edge(8, 9) expected_od_pairs = [(0, 1), (0, 2), (1, 0), (1, 2), (3, 2), (8, 9)] od_pairs = fnss.od_pairs_from_topology(dir_topology) self.assertEqual(len(expected_od_pairs), len(od_pairs)) for od in expected_od_pairs: self.assertTrue(od in od_pairs)
def test_validate_traffic_matrix(self): topology = fnss.DirectedTopology() topology.add_path([1, 2, 3]) topology.add_path([3, 2, 1]) topology.add_edge(3, 4) fnss.set_capacities_constant(topology, 1, 'Mbps') flows_valid_load = {1: {3: 0.4}, 2: {4: 0.3}} flows_invalid_load = {1: {3: 0.4}, 2: {4: 0.7}} flows_invalid_routes = {4: {1: 0.4}} flows_invalid_pairs = {5: {2: 0.1}} self.assertTrue( fnss.validate_traffic_matrix(topology, fnss.TrafficMatrix( 'Mbps', flows_valid_load), validate_load=False)) self.assertTrue( fnss.validate_traffic_matrix(topology, fnss.TrafficMatrix( 'Mbps', flows_valid_load), validate_load=True)) self.assertTrue( fnss.validate_traffic_matrix(topology, fnss.TrafficMatrix( 'Mbps', flows_invalid_load), validate_load=False)) self.assertFalse( fnss.validate_traffic_matrix(topology, fnss.TrafficMatrix( 'Mbps', flows_invalid_load), validate_load=True)) self.assertFalse( fnss.validate_traffic_matrix(topology, fnss.TrafficMatrix( 'Mbps', flows_invalid_routes), validate_load=False)) self.assertFalse( fnss.validate_traffic_matrix(topology, fnss.TrafficMatrix( 'Mbps', flows_invalid_routes), validate_load=True)) self.assertFalse( fnss.validate_traffic_matrix(topology, fnss.TrafficMatrix( 'Mbps', flows_invalid_pairs), validate_load=False)) self.assertFalse( fnss.validate_traffic_matrix(topology, fnss.TrafficMatrix( 'Mbps', flows_invalid_pairs), validate_load=True))
def test_directed_topology_class(self): topology = fnss.DirectedTopology() topology.add_edge(1, 2) topology.add_edge(2, 1) self.assertEqual(2, topology.number_of_edges())