public void OfIntegerLength() { var c = PermutationChromosome.OfInteger(100); var genes = c.GetValidAlleles().Copy(); var genesOrdered = genes.OrderBy(g => g).ToList(); for (var i = 0; i < c.Length; ++i) { Assert.Equal(i, genesOrdered[i]); } }
public void OfIntegerRangeLength() { var c1 = PermutationChromosome.OfInteger(IntRange.Of(0, 2000), 1000); Assert.True(c1.IsValid); var c2 = PermutationChromosome.OfInteger(IntRange.Of(0, 2000), 1000); Assert.True(c2.IsValid); var m1 = c1.ToSeq().Copy(); var m2 = c2.ToSeq().Copy(); AssertUnique(m1); AssertUnique(m2); var pmx = new PartiallyMatchedCrossover <int, double>(1); pmx.Crossover(m1, m2); AssertUnique(m1); AssertUnique(m2); }
protected override Factory <IChromosome <EnumGene <int> > > Factory() { return(() => PermutationChromosome.OfInteger(100)); }