Beispiel #1
0
def test_fitness_values_two_fitness_functions(chromosome, fitness_function):
    chromosome.add_fitness_function(fitness_function)
    chromosome._update_fitness_values(fitness_function, ff.FitnessValues(0.42, 0.1))
    fitness_func2 = MagicMock(ff.FitnessFunction)
    fitness_func2.is_maximisation_function.return_value = False
    chromosome.add_fitness_function(fitness_func2)
    chromosome._update_fitness_values(fitness_func2, ff.FitnessValues(0.23, 0.5))
    assert len(chromosome.fitness_values) == 2
Beispiel #2
0
def test_fitness_two_fitness_functions(chromosome, fitness_function):
    chromosome.add_fitness_function(fitness_function)
    chromosome._update_fitness_values(fitness_function, ff.FitnessValues(0.42, 0.1))
    fitness_func2 = MagicMock(ff.FitnessFunction)
    fitness_func2.is_maximisation_function.return_value = False
    chromosome.add_fitness_function(fitness_func2)
    chromosome._update_fitness_values(fitness_func2, ff.FitnessValues(0.23, 0.5))
    chromosome.set_changed(False)
    assert chromosome.get_fitness() == 0.65
    assert chromosome.get_coverage() == 0.3
Beispiel #3
0
def test_values_for_fitness_function(chromosome, fitness_function):
    chromosome.add_fitness_function(fitness_function)
    chromosome._update_fitness_values(fitness_function,
                                      ff.FitnessValues(5, 0.5))
    chromosome.set_changed(False)
    assert chromosome.get_fitness_for(fitness_function) == 5
    assert chromosome.get_coverage_for(fitness_function) == 0.5
Beispiel #4
0
def chromosome():
    chrom = tsc.TestSuiteChromosome()
    fitness_func = MagicMock(ff.FitnessFunction)
    chrom.add_fitness_function(fitness_func)
    chrom._update_fitness_values(fitness_func, ff.FitnessValues(0, 0))
    chrom.set_changed(False)
    return chrom
    def compute_fitness_values(
            self, individual: tcc.TestCaseChromosome) -> ff.FitnessValues:
        result = self._run_test_case_chromosome(individual)
        merged_trace = analyze_results([result])
        tracer: ExecutionTracer = self._executor.tracer

        return ff.FitnessValues(
            compute_branch_distance_fitness(merged_trace,
                                            tracer.get_known_data()),
            compute_branch_coverage(merged_trace, tracer.get_known_data()),
        )
Beispiel #6
0
    def compute_fitness_values(
        self,
        individual: tsc.TestSuiteChromosome,
    ) -> ff.FitnessValues:
        results = self._run_test_suite(individual)
        _, merged_trace = self.analyze_traces(results)
        tracer: ExecutionTracer = self._executor.get_tracer()

        return ff.FitnessValues(
            self._compute_fitness(merged_trace, tracer.get_known_data()),
            self._compute_coverage(merged_trace, tracer.get_known_data()),
        )
Beispiel #7
0
def test_illegal_values(chromosome, fitness_function):
    fitness_function.compute_fitness_values.return_value = ff.FitnessValues(
        -1, 1.5)
    chromosome.add_fitness_function(fitness_function)
    with pytest.raises(RuntimeError):
        chromosome.get_fitness()
def test_validation_both_wrong():
    values = ff.FitnessValues(-1, 5)
    assert len(values.validate()) == 2
def test_validation_wrong_coverage():
    values = ff.FitnessValues(0, 5)
    assert len(values.validate()) == 1
def test_validation_wrong_fitness():
    values = ff.FitnessValues(-1, 0)
    assert len(values.validate()) == 1
def test_validation_ok():
    values = ff.FitnessValues(0, 0)
    assert len(values.validate()) == 0
    def compute_fitness_values(
            self, individual: tcc.TestCaseChromosome) -> ff.FitnessValues:
        result = self._run_test_case_chromosome(individual)

        return ff.FitnessValues(fitness=self._get_fitness(result),
                                coverage=0.0)
Beispiel #13
0
def non_zero_fitness_function() -> ff.FitnessFunction:
    fitness_function = MagicMock(ff.FitnessFunction)
    result = ff.FitnessValues(fitness=42.0, coverage=0.0)
    fitness_function.compute_fitness_values.return_value = result
    return fitness_function