class TrafficDataSimulatorTester(object): def __init__(self): self.module_name = 'traffic_data_simulator_tester' self.log_type = 'INFO' self.log_message = 'initialize_traffic_data_simulator: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator = TrafficDataSimulator() self.traffic_data_generator_process = None self.elapsed_time = time.time() - self.start_time self.log_message = 'initialize_traffic_data_simulator: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def start_traffic_data_generator_process(self): if self.traffic_data_generator_process is None: self.traffic_data_generator_process = Process( target=self.test_generate_traffic_data_for_bus_lines, args=() ) self.traffic_data_generator_process.start() self.log_message = 'traffic_data_generator_process: starting' else: self.log_message = 'traffic_data_generator_process: already started' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def terminate_traffic_data_generator_process(self): if self.traffic_data_generator_process is not None: self.traffic_data_generator_process.terminate() self.traffic_data_generator_process.join() self.traffic_data_generator_process = None self.log_message = 'traffic_data_generator_process: terminated' else: 'traffic_data_generator_process: None' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def test_clear_traffic_density(self): self.log_message = 'test_clear_traffic_density: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator.clear_traffic_density() self.elapsed_time = time.time() - self.start_time self.log_message = 'test_clear_traffic_density: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def test_generate_traffic_data_between_two_bus_stops(self, starting_bus_stop=None, ending_bus_stop=None, starting_bus_stop_name=None, ending_bus_stop_name=None): """ Generate random traffic density values for the edges which connect two bus_stops. :param starting_bus_stop: bus_stop_document :param ending_bus_stop: bus_stop_document :param starting_bus_stop_name: string :param ending_bus_stop_name: string :return: None """ self.log_message = 'test_generate_traffic_data_between_two_bus_stops: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator.generate_traffic_data_between_two_bus_stops( starting_bus_stop=starting_bus_stop, ending_bus_stop=ending_bus_stop, starting_bus_stop_name=starting_bus_stop_name, ending_bus_stop_name=ending_bus_stop_name ) self.elapsed_time = time.time() - self.start_time self.log_message = 'test_generate_traffic_data_between_two_bus_stops: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def test_generate_traffic_data_between_multiple_bus_stops(self, bus_stops=None, bus_stop_names=None): """ Generate random traffic density values for the edges which connect multiple bus_stops. :param bus_stops: [bus_stop_document] :param bus_stop_names: [string] :return: None """ self.log_message = 'test_generate_traffic_data_between_multiple_bus_stops: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator.generate_traffic_data_between_multiple_bus_stops( bus_stops=bus_stops, bus_stop_names=bus_stop_names ) self.elapsed_time = time.time() - self.start_time self.log_message = 'test_generate_traffic_data_between_multiple_bus_stops: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def test_generate_traffic_data_for_bus_line(self, bus_line=None, bus_line_id=None): """ Generate random traffic density values for the edge_documents which are included in a bus_line_document. :param bus_line: bus_line_document :param bus_line_id: int :return: None """ self.log_message = 'test_generate_traffic_data_for_bus_line: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator.generate_traffic_data_for_bus_line( bus_line=bus_line, bus_line_id=bus_line_id ) self.elapsed_time = time.time() - self.start_time self.log_message = 'test_generate_traffic_data_for_bus_line: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def test_generate_traffic_data_for_bus_lines(self, bus_lines=None): """ Generate random traffic density values for the edge_documents which are included in a bus_line_documents. :param bus_lines: [bus_line_document] :return: None """ self.log_message = 'test_generate_traffic_data_for_bus_lines: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator.generate_traffic_data_for_bus_lines(bus_lines=bus_lines) self.elapsed_time = time.time() - self.start_time self.log_message = 'test_generate_traffic_data_for_bus_lines: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def test_traffic_data_generator_process(self): time_difference = 0 initial_time = time.time() while time_difference < traffic_data_simulator_max_operation_timeout: self.test_generate_traffic_data_for_bus_lines() time.sleep(traffic_data_simulator_timeout) time_difference = time.time() - initial_time def test_set_traffic_density_limits(self, lowest_traffic_density_value, highest_traffic_density_value): """ Set the lowest and highest traffic density values. :param lowest_traffic_density_value: float: [0, 1] :param highest_traffic_density_value: float: [0, 1] :return: None """ self.log_message = 'test_set_traffic_density_limits: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator.set_traffic_density_limits( lowest_traffic_density_value=lowest_traffic_density_value, highest_traffic_density_value=highest_traffic_density_value ) self.elapsed_time = time.time() - self.start_time self.log_message = 'test_set_traffic_density_limits: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message)
class TrafficDataSimulatorTester(object): def __init__(self): self.module_name = 'traffic_data_simulator_tester' self.log_type = 'INFO' self.log_message = 'initialize_traffic_data_simulator: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator = TrafficDataSimulator() self.traffic_data_generator_process = None self.elapsed_time = time.time() - self.start_time self.log_message = 'initialize_traffic_data_simulator: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def start_traffic_data_generator_process(self): if self.traffic_data_generator_process is None: self.traffic_data_generator_process = Process( target=self.test_generate_traffic_data_for_bus_lines, args=()) self.traffic_data_generator_process.start() self.log_message = 'traffic_data_generator_process: starting' else: self.log_message = 'traffic_data_generator_process: already started' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def terminate_traffic_data_generator_process(self): if self.traffic_data_generator_process is not None: self.traffic_data_generator_process.terminate() self.traffic_data_generator_process.join() self.traffic_data_generator_process = None self.log_message = 'traffic_data_generator_process: terminated' else: 'traffic_data_generator_process: None' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def test_clear_traffic_density(self): self.log_message = 'test_clear_traffic_density: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator.clear_traffic_density() self.elapsed_time = time.time() - self.start_time self.log_message = 'test_clear_traffic_density: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def test_generate_traffic_data_between_two_bus_stops( self, starting_bus_stop=None, ending_bus_stop=None, starting_bus_stop_name=None, ending_bus_stop_name=None): """ Generate random traffic density values for the edges which connect two bus_stops. :param starting_bus_stop: bus_stop_document :param ending_bus_stop: bus_stop_document :param starting_bus_stop_name: string :param ending_bus_stop_name: string :return: None """ self.log_message = 'test_generate_traffic_data_between_two_bus_stops: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator.generate_traffic_data_between_two_bus_stops( starting_bus_stop=starting_bus_stop, ending_bus_stop=ending_bus_stop, starting_bus_stop_name=starting_bus_stop_name, ending_bus_stop_name=ending_bus_stop_name) self.elapsed_time = time.time() - self.start_time self.log_message = 'test_generate_traffic_data_between_two_bus_stops: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def test_generate_traffic_data_between_multiple_bus_stops( self, bus_stops=None, bus_stop_names=None): """ Generate random traffic density values for the edges which connect multiple bus_stops. :param bus_stops: [bus_stop_document] :param bus_stop_names: [string] :return: None """ self.log_message = 'test_generate_traffic_data_between_multiple_bus_stops: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator.generate_traffic_data_between_multiple_bus_stops( bus_stops=bus_stops, bus_stop_names=bus_stop_names) self.elapsed_time = time.time() - self.start_time self.log_message = 'test_generate_traffic_data_between_multiple_bus_stops: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def test_generate_traffic_data_for_bus_line(self, bus_line=None, bus_line_id=None): """ Generate random traffic density values for the edge_documents which are included in a bus_line_document. :param bus_line: bus_line_document :param bus_line_id: int :return: None """ self.log_message = 'test_generate_traffic_data_for_bus_line: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator.generate_traffic_data_for_bus_line( bus_line=bus_line, bus_line_id=bus_line_id) self.elapsed_time = time.time() - self.start_time self.log_message = 'test_generate_traffic_data_for_bus_line: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def test_generate_traffic_data_for_bus_lines(self, bus_lines=None): """ Generate random traffic density values for the edge_documents which are included in a bus_line_documents. :param bus_lines: [bus_line_document] :return: None """ self.log_message = 'test_generate_traffic_data_for_bus_lines: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator.generate_traffic_data_for_bus_lines( bus_lines=bus_lines) self.elapsed_time = time.time() - self.start_time self.log_message = 'test_generate_traffic_data_for_bus_lines: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) def test_traffic_data_generator_process(self): time_difference = 0 initial_time = time.time() while time_difference < traffic_data_simulator_max_operation_timeout: self.test_generate_traffic_data_for_bus_lines() time.sleep(traffic_data_simulator_timeout) time_difference = time.time() - initial_time def test_set_traffic_density_limits(self, lowest_traffic_density_value, highest_traffic_density_value): """ Set the lowest and highest traffic density values. :param lowest_traffic_density_value: float: [0, 1] :param highest_traffic_density_value: float: [0, 1] :return: None """ self.log_message = 'test_set_traffic_density_limits: starting' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message) self.start_time = time.time() self.traffic_data_simulator.set_traffic_density_limits( lowest_traffic_density_value=lowest_traffic_density_value, highest_traffic_density_value=highest_traffic_density_value) self.elapsed_time = time.time() - self.start_time self.log_message = 'test_set_traffic_density_limits: finished - elapsed_time = ' \ + str(self.elapsed_time) + ' sec' log(module_name=self.module_name, log_type=self.log_type, log_message=self.log_message)