public void Reinsertion_FitnessAssessedIndividual_NotAllowed() { // TODO: Is this the desired behaviour? var newInd = ObjectCreators.GetIndividual(builder.StartingDecVec); ObjectCreators.EvaluateIndividualAndSetFitness(newInd); Assert.Throws <InvalidOperationException>(() => optimiserMock.ReInsert(new[] { newInd })); }
public void Centroid_DifferentLengthDecisionVectors_Throws() { var newInd = ObjectCreators.GetIndividual(Enumerable.Repeat <double>(1.2, bestDv.Length + 1)); ObjectCreators.EvaluateIndividualAndSetFitness(newInd, BestFitness + FitnessDifference); var pop2 = ObjectCreators.GetEmptyPopulation(5, false); pop2.AddIndividual(singleObjectivePopulation.Best()); pop2.AddIndividual(newInd); Assert.Throws <InvalidOperationException>(() => pop2.Centroid()); }
public void VariableLengthDvPop_AddIndividualWithDifferentLengthDv_Succeeds() { var numDims = ind.DecisionVector.Count; var ind1 = ObjectCreators.GetIndividual(Enumerable.Range(0, numDims + 1).ToArray()); ObjectCreators.EvaluateIndividualAndSetFitness(ind1); popVarLenDv.AddIndividual(ind1); Assert.True(popVarLenDv.Count == 2); Assert.Equal(popVarLenDv[1], ind1); }
public void ConstantLengthDvPop_AddBetterIndividual_SortsCorrectly() { var ind1 = ObjectCreators.GetIndividual( ind.DecisionVector.Select(i => (double)i + 1).ToArray()); ObjectCreators.EvaluateIndividualAndSetFitness(ind1, ind.Fitness - 1); popConstLenDvInitInd.AddIndividual(ind1); Assert.Equal(ind1, popConstLenDvInitInd.Best()); Assert.Equal(ind, popConstLenDvInitInd.Worst()); }
public void ConstantLengthDvPop_GetDecisionVectors_ReturnsSortedList() { var ind1 = ObjectCreators.GetIndividual( ind.DecisionVector.Select(i => (double)i + 1).ToArray()); ObjectCreators.EvaluateIndividualAndSetFitness(ind1, ind.Fitness - 1); popConstLenDvInitInd.AddIndividual(ind1); var decisionVectors = popConstLenDvInitInd.GetMemberDecisionVectors(); Assert.True(decisionVectors.Count() == 2); Assert.Equal(ind1.DecisionVector, decisionVectors.ElementAt(0)); }
public PopulationExtensionsTests() { // Set up single-objective population for Convergence and Centroid tests bestDv = new[] { 0.1, 0.5, 1.2 }; worstDv = new[] { 0.1, bestDv[1] + DvDifference, 1.2 }; var ind1 = ObjectCreators.GetIndividual(worstDv); var ind2 = ObjectCreators.GetIndividual(bestDv); ObjectCreators.EvaluateIndividualAndSetFitness(ind1, BestFitness + FitnessDifference); ObjectCreators.EvaluateIndividualAndSetFitness(ind2, BestFitness); singleObjectivePopulation = ObjectCreators.GetEmptyPopulation(140, true); singleObjectivePopulation.AddIndividual(ind1); singleObjectivePopulation.AddIndividual(ind2); }
public PopulationTests() { popConstLenDv = new Population( 140, null, true); var testVector = new[] { 0.5, 1.5 }; unevaluatedInd = ObjectCreators.GetIndividual(testVector); ind = ObjectCreators.GetIndividual(testVector); ObjectCreators.EvaluateIndividualAndSetFitness(ind); popConstLenDvInitInd = new Population( 140, new[] { ind }, true); popVarLenDv = new Population( 140, new[] { ind }, false); }
public void ConstantLengthDvPop_ReplaceIndividualWithIndex_PerformsCorrectly() { var bestInd = ObjectCreators.GetIndividual( ind.DecisionVector.Select(i => (double)i + 1).ToArray()); ObjectCreators.EvaluateIndividualAndSetFitness(bestInd, ind.Fitness - 1); popConstLenDvInitInd.AddIndividual(bestInd); var evenBetterInd = ObjectCreators.GetIndividual( ind.DecisionVector.Select(i => (double)i + 1).ToArray()); ObjectCreators.EvaluateIndividualAndSetFitness(evenBetterInd, ind.Fitness - 2); popConstLenDvInitInd.ReplaceIndividualAt(1, evenBetterInd); Assert.Equal(evenBetterInd, popConstLenDvInitInd.Best()); Assert.True(popConstLenDvInitInd.Count == 2); }
public void GetParetoFront_OneDimension_ReturnsBest() { var bestInd = ObjectCreators.GetIndividual( ind.DecisionVector.Select(i => (double)i + 1).ToArray()); ObjectCreators.EvaluateIndividualAndSetFitness(bestInd, ind.Fitness - 1); popConstLenDvInitInd.AddIndividual(bestInd); var evenBetterInd = ObjectCreators.GetIndividual( ind.DecisionVector.Select(i => (double)i + 1).ToArray()); ObjectCreators.EvaluateIndividualAndSetFitness(evenBetterInd, ind.Fitness - 2); popConstLenDvInitInd.AddIndividual(evenBetterInd); // TODO! //Assert.True(popConstLenDvInitInd.ParetoFront().Count() == 1); //Assert.Equal(popConstLenDvInitInd.Best(), popConstLenDvInitInd.ParetoFront().First()); }