/** Test of setOperation method, of class SimpleReplacementStrategy. */ @Test public void testSetOperation() { System.out.println("* SimpleReplacementStrategy: setOperation"); Operation op = new ReplacementOperation(1); SimpleReplacementStrategy instance = new SimpleReplacementStrategy(); instance.setOperation(op); assertEquals(true, instance.replacementOperation instanceof ReplacementOperation); }
/** Test of perform method, of class SimpleReplacementStrategy. */ @Test public void testPerform() { System.out.println("* SimpleReplacementStrategy: perform"); // population < incomingPopulation int populationSize = 10; int incomingpopulationSize = 15; List<Individual> operands = new ArrayList<Individual>(); for (int i = incomingpopulationSize; i > 0; i--) { operands.add(IndividualMaker.makeIndividual()); operands.get(incomingpopulationSize - i).getFitness().setDouble(i + populationSize / 2); } Population incommingPopulation = new SimplePopulation(); incommingPopulation.addAll(operands); List<Individual> operands2 = new ArrayList<Individual>(); for (int i = populationSize; i > 0; i--) { operands2.add(IndividualMaker.makeIndividual()); operands2.get(populationSize - i).getFitness().setDouble(i); } Population population = new SimplePopulation(); population.addAll(operands2); SimpleReplacementStrategy instance = new SimpleReplacementStrategy(); instance.setOperation(new ReplacementOperation(populationSize)); instance.setPopulation(population); instance.setIncomingPopulation(incommingPopulation); instance.perform(); assertEquals(instance.population.size(), populationSize); assertEquals(instance.incomingPopulation.size(), 0); assertEquals(instance.population.get(0).getAge(), 1); Individual[] pA = instance.population.getAll().toArray(new Individual[0]); Individual[] ipA = operands .subList(incomingpopulationSize - populationSize, incomingpopulationSize) .toArray(new Individual[0]); assertArrayEquals(pA, ipA); // population = incommingPopulation populationSize = 10; incomingpopulationSize = 10; operands = new ArrayList<Individual>(); for (int i = incomingpopulationSize; i > 0; i--) { operands.add(IndividualMaker.makeIndividual()); operands.get(incomingpopulationSize - i).getFitness().setDouble(i + populationSize / 2); } incommingPopulation = new SimplePopulation(); incommingPopulation.addAll(operands); operands2 = new ArrayList<Individual>(); for (int i = populationSize; i > 0; i--) { operands2.add(IndividualMaker.makeIndividual()); operands2.get(populationSize - i).getFitness().setDouble(i); } population = new SimplePopulation(); population.addAll(operands2); instance = new SimpleReplacementStrategy(); instance.setOperation(new ReplacementOperation(populationSize)); instance.setPopulation(population); instance.setIncomingPopulation(incommingPopulation); instance.perform(); assertEquals(instance.population.size(), populationSize); assertEquals(instance.incomingPopulation.size(), 0); assertEquals(instance.population.get(0).getAge(), 1); pA = instance.population.getAll().toArray(new Individual[0]); ipA = operands .subList(incomingpopulationSize - populationSize, incomingpopulationSize) .toArray(new Individual[0]); assertArrayEquals(pA, ipA); // population > incommingPopulation populationSize = 15; incomingpopulationSize = 10; operands = new ArrayList<Individual>(); for (int i = incomingpopulationSize; i > 0; i--) { operands.add(IndividualMaker.makeIndividual()); operands.get(incomingpopulationSize - i).getFitness().setDouble(i + populationSize / 2); } incommingPopulation = new SimplePopulation(); incommingPopulation.addAll(operands); operands2 = new ArrayList<Individual>(); for (int i = populationSize; i > 0; i--) { operands2.add(IndividualMaker.makeIndividual()); operands2.get(populationSize - i).getFitness().setDouble(i); } population = new SimplePopulation(); population.addAll(operands2); instance = new SimpleReplacementStrategy(); instance.setOperation(new ReplacementOperation(populationSize)); instance.setPopulation(population); instance.setIncomingPopulation(incommingPopulation); instance.perform(); assertEquals(instance.population.size(), incomingpopulationSize); assertEquals(instance.incomingPopulation.size(), 0); assertEquals(instance.population.get(0).getAge(), 1); pA = instance.population.getAll().toArray(new Individual[0]); ipA = operands.subList(0, incomingpopulationSize).toArray(new Individual[0]); assertArrayEquals(pA, ipA); }