private boolean removeCharacters(LocalSearchObjective<TestChromosome> objective, TestChromosome test, StringPrimitiveStatement p, int statement) { boolean improvement = false; backup(test, p); for (int i = oldValue.length() - 1; i >= 0; i--) { String newString = oldValue.substring(0, i) + oldValue.substring(i + 1); p.setValue(newString); logger.info(" " + i + " " + oldValue + "/" + oldValue.length() + " -> " + newString + "/" + newString.length()); if (objective.hasImproved(test)) { logger.info("Has improved"); backup(test, p); improvement = true; } else { logger.info("Has not improved"); restore(test, p); } if(LocalSearchBudget.getInstance().isFinished()) break; } return improvement; }
/** * Constructor * * @param factory * a {@link org.evosuite.ga.ChromosomeFactory} object. */ public GeneticAlgorithm(ChromosomeFactory<T> factory) { chromosomeFactory = factory; addStoppingCondition(new MaxGenerationStoppingCondition()); if (Properties.LOCAL_SEARCH_RATE > 0) addListener(LocalSearchBudget.getInstance()); // addBloatControl(new MaxSizeBloatControl()); }
char[] characters = oldValue.toCharArray(); for (char replacement = 9; replacement < 128; replacement++) { if(LocalSearchBudget.getInstance().isFinished()) return improvement;
char[] characters = Arrays.copyOf(oldValue.toCharArray(), position + 1); for (char replacement = 9; replacement < 128; replacement++) { if(LocalSearchBudget.getInstance().isFinished()) return improvement; char[] characters = (" " + oldValue).toCharArray(); for (char replacement = 9; replacement < 128; replacement++) { if(LocalSearchBudget.getInstance().isFinished()) return improvement;
LocalSearchBudget.getInstance().localSearchStarted(); break; if (LocalSearchBudget.getInstance().isFinished()) { logger.debug("Local search budget used up, exiting local search"); break;
&& !LocalSearchBudget.getInstance().isFinished()) { logger.info("Current probe on statement " + statement + ": " + currentProbe);
/** * Overrides the test case at position <code>testIndex</code> with the * individual. It returns <code>-1</code> if the new fitness has improved, * <code>1</code> if the fitness has worsened or <code>0</code> if the * fitness has not changed. */ @Override public int hasChanged(TestChromosome testCase) { testCase.setChanged(true); suite.setTestChromosome(testIndex, testCase); LocalSearchBudget.getInstance().countFitnessEvaluation(); for (TestSuiteFitnessFunction fitnessFunction : fitnessFunctions) fitnessFunction.getFitness(suite); double newFitness = suite.getFitness(); if (isFitnessBetter(newFitness, lastFitnessSum)) { logger.info("Local search improved fitness from " + lastFitnessSum + " to " + newFitness); updateLastFitness(); updateLastCoverage(); return -1; } else if (isFitnessWorse(newFitness, lastFitnessSum)) { logger.info("Local search worsened fitness from " + lastFitnessSum + " to " + newFitness); suite.setFitnessValues(lastFitness); suite.setCoverageValues(lastCoverage); return 1; } else { logger.info("Local search did not change fitness of " + lastFitnessSum); updateLastCoverage(); return 0; } }
if (LocalSearchBudget.getInstance().isFinished()) break;
LocalSearchBudget.getInstance().countLocalSearchOnTest();
if (LocalSearchBudget.getInstance().isFinished()) break; LocalSearchBudget.getInstance().countLocalSearchOnTest();
if(LocalSearchBudget.getInstance().isFinished()) break;
while (hasNextBranchCondition() && !LocalSearchBudget.getInstance().isFinished()) { logger.info("Branches remaining: " + unsolvedBranchConditions.size()); LocalSearchBudget.getInstance().countLocalSearchOnTestSuite();
BranchCondition condition = collectedPathCondition.get(conditionIndex); if (LocalSearchBudget.getInstance().isFinished()) { logger.debug("Local search budget used up: " + Properties.LOCAL_SEARCH_BUDGET_TYPE); break;
if (LocalSearchBudget.getInstance().isFinished()) { logger.debug("Local search budget used up: " + Properties.LOCAL_SEARCH_BUDGET_TYPE); break;
LocalSearchBudget.getInstance().countLocalSearchOnTestSuite();