Пример #1
0
 public void Elite()
 {
     IChromosome<int>[] a = new IChromosome<int>[] { new DigitalChromosome().GenerateFromArray(new int[] { 9, 9, 9 }),
     new DigitalChromosome().GenerateFromArray(new int[] { 7, 7, 7 }), new DigitalChromosome().GenerateFromArray(new int[] { 3, 3, 3 }),
     new DigitalChromosome().GenerateFromArray(new int[] { 2, 2, 2 }), new DigitalChromosome().GenerateFromArray(new int[] { 7, 7, 7 }), new DigitalChromosome().GenerateFromArray(new int[] { 7, 7, 7 }),
     new DigitalChromosome().GenerateFromArray(new int[] { 7, 7, 7 }) };
     EliteSelection<int> selection = new EliteSelection<int>(2);
     IChromosome<int>[] res = selection.Select(a, x => x.ToArray().Sum(), 6);
     CollectionAssert.AreEqual(new IChromosome<int>[] { new DigitalChromosome().GenerateFromArray(new int[] { 9, 9, 9 }),
     new DigitalChromosome().GenerateFromArray(new int[] { 7, 7, 7 }) }, res.Take(2).ToArray());
 }
Пример #2
0
        public void TestElite()
        {
            var s           = new EliteSelection();
            var chromosomes = CreateEmptyChromosomes(10);

            var selected = s.Select(chromosomes, 5);

            Assert.AreEqual(5, selected.Count);

            for (var i = 0; i < selected.Count; i++)
            {
                Assert.AreEqual(9 - i, ((EmptyChromosome)selected[i]).Index);
            }
        }