Beispiel #1
0
def test_create_drive_vehicle_bottleneck_001(bottleneck_001,
                                             symuvia_library_path):
    symuflow = Simulator(library_path=symuvia_library_path,
                         step_launch_mode="full")
    symuflow.register_simulation(bottleneck_001)

    with symuflow as s:
        while s.do_next:
            s.request_answer()  # Initialize
            s.request_answer()  # Vehicle 0

            # Vehicle instantiation
            veh_id = s.create_vehicle("VL", "Ext_In", "Ext_Out")
            force_driven = s.request.is_vehicle_driven("1")
            s.request_answer()

            # Data retrieveal
            drive_status = s.drive_vehicle(veh_id, 20.0, "Zone_001")
            force_driven = s.request.is_vehicle_driven(1)
            position = s.request.filter_vehicle_property("distance", 1)[0]

            s.stop_step()

        assert force_driven == True
        assert veh_id >= 0
        assert float(position) == pytest.approx(20.0)
Beispiel #2
0
    def test_initialize_container_bottleneck_001(self):
        sim_case = Simulation(self.mocks_path)
        sim_instance = Simulator(self.sim_path)
        sim_instance.register_simulation(sim_case)

        with sim_instance as s:
            while s.do_next:
                # TODO: This needs some work on Parser.py
                s.state.get_vehicle_data()
Beispiel #3
0
 def test_query_vehicles_upstream_bottleneck002(self):
     sim_case = Simulation(self.mocks_path)
     sim_instance = Simulator(self.sim_path)
     sim_instance.register_simulation(sim_case)
     with sim_instance as s:
         while s.do_next:
             s.run_step()
             if s.state.is_vehicle_in_network("2"):
                 (nup, ) = s.state.vehicle_upstream_of("1")
                 s.stop_step()
                 continue
             else:
                 continue
     self.assertEqual(nup, "2")
Beispiel #4
0
    def test_run_stepbystep_bottleneck_002(self):
        # Using new constructor
        sim_instance = Simulator.from_path(self.mocks_path, self.sim_path)

        with sim_instance as s:
            while s.do_next:
                s.run_step()
Beispiel #5
0
def test_create_vehicle_bottleneck_001(bottleneck_001, symuvia_library_path):
    symuflow = Simulator.from_path(bottleneck_001, symuvia_library_path)

    symuflow._set_manual_initialization()
    veh_id = symuflow.create_vehicle("VL", "Ext_In", "Ext_Out")

    assert veh_id == 0
Beispiel #6
0
def test_drive_vehicle_bottleneck_001(bottleneck_001, symuvia_library_path):
    symuflow = Simulator(library_path=symuvia_library_path,
                         step_launch_mode="full")
    symuflow.register_simulation(bottleneck_001)

    with symuflow as s:
        while s.do_next:
            s.run_step()
            if s.request.is_vehicle_in_network(0):
                drive_status = s.drive_vehicle(0, 1.0)
                force_driven = s.request.is_vehicle_driven(0)
                position = s.request.filter_vehicle_property("distance", 0)[0]
                s.stop_step()
            else:
                continue
        assert force_driven == True
        assert float(position) == pytest.approx(1.0)
Beispiel #7
0
def launch_simuflow(file) -> tuple:
    sim_instance = Simulator.from_path(file, DEFAULT_PATH_SYMUFLOW)
    sim_instance.trace_flow = True
    sim_instance.step_launch_mode = "full"

    with sim_instance as s:
        while s.do_next:
          s.run_step()
          yield sim_instance.simulationstep, sim_instance.request.datatraj
Beispiel #8
0
    def test_create_drive_vehicle_bottleneck_001(self):
        sim_case = Simulation(self.mocks_path)
        sim_instance = Simulator(self.sim_path)
        sim_instance.register_simulation(sim_case)

        # with
        # REVIEW: For the sake of simplicity the vehicle will be created after an entering vehicle has been created.
        with sim_instance as s:
            while s.do_next:
                s.request_answer()  # Initialize
                s.request_answer()  # Vehicle 0
                veh_id = s.create_vehicle("VL", "Ext_In", "Ext_Out")
                s.request_answer()  # Vehicle instantiation
                drive_status = s.drive_vehicle(veh_id, 20.0, "Zone_001")
                s.stop_step()

        self.assertGreaterEqual(veh_id, 0)
        self.assertEqual(drive_status, 1)
        self.assertAlmostEqual(
            float(sim_instance.state.query_vehicle_position("1")[0]), 20.0)
Beispiel #9
0
    def test_drive_vehicle_bottleneck_001(self):
        sim_case = Simulation(self.mocks_path)
        sim_instance = Simulator(self.sim_path)
        sim_instance.register_simulation(sim_case)

        # with
        with sim_instance as s:
            while s.do_next:
                s.run_step()
                if s.state.is_vehicle_in_network("0"):
                    drive_status = s.drive_vehicle(0, 1.0)
                    s.run_step()
                    drive_status = s.drive_vehicle(0, 1.0)
                    s.stop_step()
                    continue
                else:
                    continue
            self.assertEqual(drive_status, 1)
            self.assertAlmostEqual(
                float(sim_instance.state.query_vehicle_position("0")[0]), 1.0)
Beispiel #10
0
def test_runbystep_bottleneck_002(bottleneck_002, symuvia_library_path):
    sim_instance = Simulator.from_path(bottleneck_002, symuvia_library_path)
    with sim_instance as s:
        while s.do_next:
            s.run_step()
        assert s.do_next == False
Beispiel #11
0
def test_run_bottleneck_002(bottleneck_002, symuvia_library_path):
    sim_instance = Simulator.from_path(bottleneck_002, symuvia_library_path)
    sim_instance.run()
Beispiel #12
0
def test_constructor_bottleneck_002(bottleneck_002, symuvia_library_path):
    sim_instance = Simulator.from_path(bottleneck_002, symuvia_library_path)
    sim_instance.load_symuvia()
    valid = sim_instance.load_network()
    assert valid == 1
Beispiel #13
0
 def test_run_simulation_alternative_constructor_bottleneck_001(self):
     sim_instance = Simulator.from_path(self.mocks_path, self.sim_path)
     sim_instance.run_simulation()
Beispiel #14
0
 def test_run_bottleneck_001(self):
     sim_case = Simulation(self.mocks_path)
     sim_instance = Simulator(self.sim_path)
     sim_instance.load_symuvia()
     sim_instance.run_simulation(sim_case)
Beispiel #15
0
 def test_constructor_bottleneck_001(self):
     sim_instance = Simulator.from_path(self.mocks_path, self.sim_path)
     self.assertEqual(self.mocks_path, sim_instance.casename)
Beispiel #16
0
 def test_fixed_leader_neighbors_bottleneck002(self):
     sim_case = Simulation(self.mocks_path)
     sim_instance = Simulator(self.sim_path)
     sim_instance.register_simulation(sim_case)
     pass
Beispiel #17
0
 def test_query_vehicle_neighbors_bottleneck002(self):
     sim_case = Simulation(self.mocks_path)
     sim_instance = Simulator(self.sim_path)
     sim_instance.register_simulation(sim_case)
     pass
Beispiel #18
0
def test_load_default_symuvia_via_api(symuvia_library_path):
    simulator = Simulator()
    assert simulator.library_path == symuvia_library_path
Beispiel #19
0
def test_load_symuvia_via_api(symuvia_library_path):
    simulator = Simulator(library_path=symuvia_library_path)
    simulator.load_symuvia()
    assert simulator.library_path == symuvia_library_path
Beispiel #20
0
def test_default_load_constructor_bottleneck_001(bottleneck_001):
    symuflow = Simulator()
    symuflow.register_simulation(bottleneck_001)
    symuflow.load_symuvia()
    valid = symuflow.load_network()
    assert valid == 1
Beispiel #21
0
    def test_create_vehicle_bottleneck_001(self):
        sim_case = Simulation(self.mocks_path)
        sim_instance = Simulator(self.sim_path)
        sim_instance.register_simulation(sim_case)

        # with
        sim_instance.load_symuvia()
        sim_instance.load_network()
        sim_instance.init_simulation()
        veh_id = sim_instance.create_vehicle("VL", "Ext_In", "Ext_Out")
        self.assertGreaterEqual(veh_id, 0)
Beispiel #22
0
def test_load_constructor_bottleneck_001(bottleneck_001, symuvia_library_path):
    symuflow = Simulator.from_path(bottleneck_001, symuvia_library_path)
    symuflow.load_symuvia()
    valid = symuflow.load_network()
    assert valid == 1
Beispiel #23
0
def test_run_bottleneck_001(bottleneck_001, symuvia_library_path):
    symuflow = Simulator.from_path(bottleneck_001, symuvia_library_path)
    symuflow.run()
Beispiel #24
0
def test_runbystep_bottleneck_001(bottleneck_001, symuvia_library_path):
    symuflow = Simulator.from_path(bottleneck_001, symuvia_library_path)
    with symuflow as s:
        while s.do_next:
            s.run_step()
        assert s.do_next == False