class TestAlgorithm(unittest.TestCase): def setUp(self): process_time = { 1: [5, 9, 8, 10, 1], 2: [9, 3, 10, 1, 8], 3: [9, 4, 5, 8, 6], 4: [4, 8, 8, 7, 2] } self.process_time_df = pd.DataFrame.from_dict( process_time, orient='index', columns=range(1, (max(process_time.keys()) + 2))) self.algorithm = Algorithm(self.process_time_df) self.total_completion_time = self.algorithm.order_jobs_in_descending_order_of_total_completion_time( ) self.best_order = self.algorithm.initiate_the_algorithm( self.total_completion_time.index[0:2].tolist()) def tearDown(self): self.algorithm = None def test_create_permutations(self): return_permutations = self.algorithm.create_permutations([3, 1, 2], 4) correct_permutations = [[4, 3, 1, 2], [3, 4, 1, 2], [3, 1, 4, 2], [3, 1, 2, 4]] self.assertEqual(return_permutations, correct_permutations) def test_compute_completion_time(self): max_completion_time = self.algorithm.compute_completion_time( [3, 1, 2, 4]) correct_max_completion_time = 58 self.assertEqual(max_completion_time, correct_max_completion_time)