Exemple #1
0
def test_fitness_normalized(trace_mock, known_data_mock):
    known_data_mock.existing_predicates[0] = MagicMock(PredicateMetaData)
    trace_mock.executed_predicates[0] = 2
    trace_mock.false_distances[0] = 0
    trace_mock.true_distances[0] = 7.0
    assert compute_branch_distance_fitness(trace_mock,
                                           known_data_mock) == 0.875
    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()),
        )
Exemple #3
0
def test_fitness_covered_twice(trace_mock, known_data_mock):
    known_data_mock.existing_predicates[0] = MagicMock(PredicateMetaData)
    trace_mock.executed_predicates[0] = 2
    trace_mock.false_distances[0] = 1
    trace_mock.true_distances[0] = 0
    assert compute_branch_distance_fitness(trace_mock, known_data_mock) == 0.5
Exemple #4
0
def test_fitness_neither_covered(trace_mock, known_data_mock):
    known_data_mock.existing_predicates[0] = MagicMock(PredicateMetaData)
    assert compute_branch_distance_fitness(trace_mock, known_data_mock) == 2.0
Exemple #5
0
def test_fitness_function_diff(trace_mock, known_data_mock):
    known_data_mock.existing_code_objects[0] = MagicMock(CodeObjectMetaData)
    known_data_mock.existing_code_objects[1] = MagicMock(CodeObjectMetaData)
    known_data_mock.existing_code_objects[2] = MagicMock(CodeObjectMetaData)
    trace_mock.executed_code_objects.add(0)
    assert compute_branch_distance_fitness(trace_mock, known_data_mock) == 2.0
Exemple #6
0
def test_default_fitness(trace_mock, known_data_mock):
    assert compute_branch_distance_fitness(trace_mock, known_data_mock) == 0