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)
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()
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")
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()
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
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)
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
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)
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)
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
def test_run_bottleneck_002(bottleneck_002, symuvia_library_path): sim_instance = Simulator.from_path(bottleneck_002, symuvia_library_path) sim_instance.run()
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
def test_run_simulation_alternative_constructor_bottleneck_001(self): sim_instance = Simulator.from_path(self.mocks_path, self.sim_path) sim_instance.run_simulation()
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)
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)
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
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
def test_load_default_symuvia_via_api(symuvia_library_path): simulator = Simulator() assert simulator.library_path == symuvia_library_path
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
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
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)
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
def test_run_bottleneck_001(bottleneck_001, symuvia_library_path): symuflow = Simulator.from_path(bottleneck_001, symuvia_library_path) symuflow.run()
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