コード例 #1
0
        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]);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 protected override Factory <IChromosome <EnumGene <int> > > Factory()
 {
     return(() => PermutationChromosome.OfInteger(100));
 }