def test_random_int_between_a_and_b(self): true_rando = Random.random_int_between_a_and_b(1, 5) self.assertLessEqual(true_rando, 5) self.assertLessEqual(1, true_rando) Random.begin_test() Random.set_test_value_for("random_int_between_a_and_b", 1) Random.set_test_value_for("random_int_between_a_and_b", 2) Random.set_test_value_for("random_int_between_a_and_b", 3) self.assertEqual(Random.random_int_between_a_and_b(1, 5), 3) self.assertEqual(Random.random_int_between_a_and_b(1, 5), 2) self.assertEqual(Random.random_int_between_a_and_b(1, 5), 1) Random.end_test()
def emo_phase(self): for _ in range(Constants.NSGA2_NUM_GENES_MUTATING): random_variable = Random.random_int_between_a_and_b( 0, self.problem.num_variables() - 1) new_value = Random.random_choice( self.problem.variables[random_variable].domain.values) self.problem.set_value(random_variable, new_value)
def swap_half_genes(self, other): variables = [ Random.random_int_between_a_and_b(0, self.problem.num_variables() - 1) for _ in range(floor(self.problem.num_variables() / 2)) ] for v in variables: if self.problem.get_value(v) != other.problem.get_value(v): original = self.problem.get_value(v) self.problem.set_value(v, other.problem.get_value(v)) if not self.problem.consistent(): self.problem.set_value(v, original) original = other.problem.get_value(v) other.problem.set_value(v, self.problem.get_value(v)) if not other.problem.consistent(): other.problem.set_value(v, original)