| @@ -883,7 +883,7 @@ public class Population extends ArrayList<AbstractEAIndividual> implements Popul | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Resets the fitnes to the maximum possible value for the given individual. | ||||
|      * Resets the fitness to the maximum possible value for the given individual. | ||||
|      * | ||||
|      * @param indy an individual whose fitness will be reset | ||||
|      */ | ||||
| @@ -2091,7 +2091,7 @@ public class Population extends ArrayList<AbstractEAIndividual> implements Popul | ||||
|      */ | ||||
|     public double[] getCenter() { | ||||
|         if (size() == 0) { | ||||
|             EVAERROR.errorMsgOnce("Invalid pop size in DistractingPopulation:getCenter!"); | ||||
|             return null; | ||||
|         } | ||||
|         double[] centerPos = AbstractEAIndividual.getDoublePosition(getEAIndividual(0)); | ||||
|         for (int i = 1; i < size(); i++) { | ||||
| @@ -2123,7 +2123,7 @@ public class Population extends ArrayList<AbstractEAIndividual> implements Popul | ||||
|      */ | ||||
|     public double[] getCenterWeighted(double[] weights) { | ||||
|         if (size() == 0 || (weights.length > size()) || (weights.length == 0)) { | ||||
|             EVAERROR.errorMsgOnce("Invalid pop size in DistractingPopulation:getCenterWeighted!"); | ||||
|             return null; | ||||
|         } | ||||
|         double[] centerPos = AbstractEAIndividual.getDoublePosition(getEAIndividual(0)); | ||||
|         Mathematics.svMult(weights[0], centerPos, centerPos); | ||||
|   | ||||
| @@ -1,12 +1,14 @@ | ||||
| package eva2.optimization.population; | ||||
|  | ||||
| import com.sun.org.apache.bcel.internal.generic.POP; | ||||
| import eva2.optimization.individuals.AbstractEAIndividual; | ||||
| import eva2.optimization.individuals.ESIndividualDoubleData; | ||||
| import org.junit.Before; | ||||
| import org.junit.Test; | ||||
| import static org.junit.Assert.*; | ||||
| import static org.mockito.Mockito.mock; | ||||
| import static org.mockito.Mockito.verify; | ||||
| import static org.mockito.Mockito.when; | ||||
|  | ||||
| public class PopulationTest { | ||||
|     Population emptyPopulation; | ||||
| @@ -21,11 +23,6 @@ public class PopulationTest { | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testPutData() throws Exception { | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testGetData() throws Exception { | ||||
|         // Simple data | ||||
| @@ -314,12 +311,22 @@ public class PopulationTest { | ||||
|  | ||||
|     @Test | ||||
|     public void testGetCenter() throws Exception { | ||||
|         assertNull(emptyPopulation.getCenter()); | ||||
|  | ||||
|         for(int i = 0; i < 10; i++) { | ||||
|             ESIndividualDoubleData indy = mock(ESIndividualDoubleData.class); | ||||
|             when(indy.getDGenotype()).thenReturn(new double[]{i, i, i, i, i}); | ||||
|             emptyPopulation.add(indy); | ||||
|         } | ||||
|  | ||||
|         assertArrayEquals(new double[]{ | ||||
|                 4.5, 4.5, 4.5, 4.5, 4.5 | ||||
|         }, emptyPopulation.getCenter(), 0.0); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testGetCenterIndy() throws Exception { | ||||
|  | ||||
|          | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
| @@ -334,7 +341,15 @@ public class PopulationTest { | ||||
|  | ||||
|     @Test | ||||
|     public void testGetFitSum() throws Exception { | ||||
|         for(int i = 0; i < 10; i++) { | ||||
|             ESIndividualDoubleData indy = mock(ESIndividualDoubleData.class); | ||||
|             when(indy.getFitness(0)).thenReturn((double)i); | ||||
|             when(indy.getFitness(1)).thenReturn((double)i*2); | ||||
|             emptyPopulation.add(indy); | ||||
|         } | ||||
|  | ||||
|         assertEquals(45.0, emptyPopulation.getFitSum(0), 0.0); | ||||
|         assertEquals(90.0, emptyPopulation.getFitSum(1), 0.0); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
| @@ -354,7 +369,12 @@ public class PopulationTest { | ||||
|  | ||||
|     @Test | ||||
|     public void testGetFreeSlots() throws Exception { | ||||
|         assertEquals(10, emptyPopulation.getFreeSlots()); | ||||
|  | ||||
|         ESIndividualDoubleData indy = mock(ESIndividualDoubleData.class); | ||||
|         emptyPopulation.add(indy); | ||||
|  | ||||
|         assertEquals(9, emptyPopulation.getFreeSlots()); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
| @@ -367,6 +387,19 @@ public class PopulationTest { | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testPutDataAllIndies() throws Exception { | ||||
|         ESIndividualDoubleData indy1 = mock(ESIndividualDoubleData.class); | ||||
|         ESIndividualDoubleData indy2 = mock(ESIndividualDoubleData.class); | ||||
|  | ||||
|         emptyPopulation.add(indy1); | ||||
|         emptyPopulation.add(indy2); | ||||
|         emptyPopulation.putDataAllIndies("test", 12); | ||||
|  | ||||
|         verify(indy1).putData("test", 12); | ||||
|         verify(indy2).putData("test", 12); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testFilterByFitness() throws Exception { | ||||
|         ESIndividualDoubleData indy1, indy2, indy3; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user