def test_calculate_tracks(self): input_data = SchedulerApp.process_input( 'ConferencetrackmanagementPythonGA/tests/test_input2.txt') my_scheduler = Scheduler() times = my_scheduler.calculate_times(input_data) self.assertEquals(my_scheduler.calculate_tracks(times), ({ 0: ('talk12 60min', 60), 120: ('talk14 60min', 60), 60: ('talk13 60min', 60) }, { 0: ('talk8 60min', 60), 120: ('talk10 60min', 60), 180: ('talk11 60min', 60), 60: ('talk9 60min', 60) }, { 0: ('talk5 60min', 60), 120: ('talk7 60min', 60), 60: ('talk6 60min', 60) }, { 0: ('talk1 60min', 60), 120: ('talk3 60min', 60), 180: ('talk4 60min', 60), 60: ('talk2 60min', 60) }, 0)) input_data = SchedulerApp.process_input( 'ConferencetrackmanagementPythonGA/tests/test_input3.txt') my_scheduler = Scheduler() times = my_scheduler.calculate_times(input_data) self.assertEquals(my_scheduler.calculate_tracks(times), ({ 0: ('talk12 60min', 60), 120: ('talk14 60min', 60), 60: ('talk13 60min', 60) }, { 0: ('talk8 60min', 60), 120: ('talk10 60min', 60), 180: ('talk11 60min', 60), 60: ('talk9 60min', 60) }, { 0: ('talk5 60min', 60), 120: ('talk7 60min', 60), 60: ('talk6 60min', 60) }, { 0: ('talk1 60min', 60), 120: ('talk3 60min', 60), 180: ('talk4 60min', 60), 60: ('talk2 60min', 60) }, 1))
def test_calculate_times(self): input_data = SchedulerApp.process_input( 'ConferencetrackmanagementPythonGA/tests/test_input.txt') my_scheduler = Scheduler() self.assertEquals(my_scheduler.calculate_times(input_data), [('talk2 60min', 60), ('talk3 45min', 45), ('talk5 30min', 30), ('talk1 25min', 25), ('talk4 lightning', 5)])
# Method used to read the input_data def process_input(input_path_var): with open(input_path_var, 'r') as f: read_data = f.read() return read_data.split(', ') # Method called to do a 'clear', just for application visualization purposes def clean_screen(): print(chr(27) + "[2J") if __name__ == '__main__': clean_screen() presentation() if len(sys.argv) == 1: input_path = 'ConferencetrackmanagementPythonGA/data/input.txt' else: input_path = sys.argv[1] input_data = process_input(input_path) my_scheduler = Scheduler() times = my_scheduler.calculate_times(input_data) track1morning, track1afternoon, track2morning, track2afternoon, left_sessions = Scheduler.calculate_tracks( times) Printer.show_tracks(track1morning, track1afternoon, track2morning, track2afternoon)