class DecisionTest(unittest.TestCase): def setUp(self): self.simplex = Simplex() def test_pick_expand_if_expansion_best(self): mut_type = self.simplex.decide_mutation(np.array([3, 4, 5]), 2, 1, 6) self.assertEqual(mut_type, Mutation.EXPAND) def test_pick_reflect_if_reflection_better_than_expand_and_best(self): mut_type = self.simplex.decide_mutation(np.array([3, 4, 5]), 1, 2, 6) self.assertEqual(mut_type, Mutation.REFLECT) def test_pick_reflect_if_reflection_better_than_second_worst(self): mut_type = self.simplex.decide_mutation(np.array([1, 3, 4]), 2, 5, 6) self.assertEqual(mut_type, Mutation.REFLECT) def test_pick_contract_if_contraction_better_than_worst(self): mut_type = self.simplex.decide_mutation(np.array([1, 2, 4]), 5, 6, 3) self.assertEqual(mut_type, Mutation.CONTRACT) def test_pick_reduce_if_reflection_worse_than_all(self): mut_type = self.simplex.decide_mutation(np.array([1, 2, 3]), 4, 5, 6) self.assertEqual(mut_type, Mutation.REDUCE)