コード例 #1
0
        public async Task GeneticEntityCollectionExtensions_GetEntitiesSortedByFitness_SortScaledMinimize()
        {
            TestEntity testEntity1 = new TestEntity {
                TestFitnessValue = 1
            };
            TestEntity testEntity2 = new TestEntity {
                TestFitnessValue = 3
            };
            TestEntity testEntity3 = new TestEntity {
                TestFitnessValue = 2
            };

            List <GeneticEntity> entities = new List <GeneticEntity>
            {
                testEntity1,
                testEntity2,
                testEntity3,
            };

            MockGeneticAlgorithm algorithm = new MockGeneticAlgorithm
            {
                FitnessEvaluator = new TestFitnessEvalutor()
            };

            foreach (GeneticEntity entity in entities)
            {
                entity.Initialize(algorithm);
                await entity.EvaluateFitnessAsync();
            }

            testEntity1.ScaledFitnessValue = 3;
            testEntity2.ScaledFitnessValue = 1;
            testEntity3.ScaledFitnessValue = 2;

            List <GeneticEntity> results = GeneticEntityCollectionExtensions.GetEntitiesSortedByFitness(entities, FitnessType.Scaled, FitnessEvaluationMode.Minimize).ToList();

            Assert.Equal(3, results.Count);
            Assert.Same(testEntity1, results[0]);
            Assert.Same(testEntity3, results[1]);
            Assert.Same(testEntity2, results[2]);
        }
コード例 #2
0
 public void GeneticEntityCollectionExtensions_GetEntitiesSortedByFitness_InvalidFitnessEvaluationMode()
 {
     Assert.Throws <ArgumentException>(() => GeneticEntityCollectionExtensions.GetEntitiesSortedByFitness(new GeneticEntity[0], FitnessType.Raw, (FitnessEvaluationMode)5));
 }
コード例 #3
0
 public void GeneticEntityCollectionExtensions_GetEntitiesSortedByFitness_NullCollection()
 {
     Assert.Throws <ArgumentNullException>(() => GeneticEntityCollectionExtensions.GetEntitiesSortedByFitness(null, FitnessType.Raw, FitnessEvaluationMode.Maximize));
 }