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()), )
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
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
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
def test_default_fitness(trace_mock, known_data_mock): assert compute_branch_distance_fitness(trace_mock, known_data_mock) == 0