// @Override public double getFitnessOld(Chromosome individual) { logger.trace("Calculating defuse fitness"); TestSuiteChromosome suite = (TestSuiteChromosome) individual; List<ExecutionResult> results = runTestSuite(suite); double fitness = 0.0; if (DefUseCoverageFactory.detectAliasingGoals(results)) { goals = DefUseCoverageFactory.getDUGoals(); logger.debug("New total number of goals: " + goals.size()); totalGoals = initTotalGoals(); for (DefUsePairType type : totalGoals.keySet()) { logger.info(type + ":" + totalGoals.get(type)); } } Set<DefUseCoverageTestFitness> coveredGoalsSet = DefUseExecutionTraceAnalyzer.getCoveredGoals(results); initCoverageMaps(); for (DefUseCoverageTestFitness goal : goals) { if (coveredGoalsSet.contains(goal)) { goal.setCovered(true); continue; } double goalFitness = 2.0; for (ExecutionResult result : results) { TestChromosome tc = new TestChromosome(); tc.setTestCase(result.test); double resultFitness = goal.getFitness(tc, result); if (resultFitness < goalFitness) goalFitness = resultFitness; if (goalFitness == 0.0) { result.test.addCoveredGoal(goal); coveredGoalsSet.add(goal); goal.setCovered(true); break; } } fitness += goalFitness; } countCoveredGoals(coveredGoalsSet); trackCoverageStatistics(suite); updateIndividual(this, suite, fitness); int coveredGoalCount = countCoveredGoals(); int totalGoalCount = countTotalGoals(); if (fitness == 0.0 && coveredGoalCount < totalGoalCount) throw new IllegalStateException( "Fitness 0 implies 100% coverage " + coveredGoalCount + " / " + totalGoals + " (covered / total)"); return fitness; }