Example #1
0
        public void VariableSinglePointCrossoverOperator_GenerateCrossover_NullParents()
        {
            VariableSinglePointCrossoverOperator op = new VariableSinglePointCrossoverOperator();
            PrivateObject accessor = new PrivateObject(op);

            Assert.Throws <ArgumentNullException>(() => accessor.Invoke("GenerateCrossover", (IList <GeneticEntity>)null));
        }
Example #2
0
        public void VariableSinglePointCrossoverOperator_GenerateCrossover()
        {
            VariableSinglePointCrossoverOperator op = new VariableSinglePointCrossoverOperator();
            PrivateObject accessor = new PrivateObject(op);

            RandomNumberService.Instance = new FakeRandomNumberService(
                new Queue <int>(new int[] { 5, 3 }),
                new Queue <int>(new int[] { 3, 2 }));

            List <GeneticEntity> entities = new List <GeneticEntity>
            {
                new TestEntity <int>(1, 2, 3, 4, 5),
                new TestEntity <int>(4, 1, 7)
            };

            IEnumerable <TestEntity <int> > result =
                ((IEnumerable <GeneticEntity>)accessor.Invoke("GenerateCrossover", entities))
                .Cast <TestEntity <int> >();

            Assert.Equal(2, result.Count());
            Assert.Equal(
                new int[] { 1, 2, 3, 7 }, result.ElementAt(0).InnerList);
            Assert.Equal(
                new int[] { 4, 1, 4, 5 }, result.ElementAt(1).InnerList);
        }
Example #3
0
        public void VariableSinglePointCrossoverOperator_Validation_WithoutListEntityBase()
        {
            VariableSinglePointCrossoverOperator op = new VariableSinglePointCrossoverOperator();
            MockGeneticAlgorithm algorithm          = new MockGeneticAlgorithm
            {
                GeneticEntitySeed = new MockEntity()
            };

            op.Initialize(algorithm);

            Assert.Throws <ValidationException>(() => op.Validate());
        }
Example #4
0
        public void VariableSinglePointCrossoverOperator_Validation_WithListEntityBase()
        {
            VariableSinglePointCrossoverOperator op = new VariableSinglePointCrossoverOperator();
            MockGeneticAlgorithm algorithm          = new MockGeneticAlgorithm
            {
                GeneticEntitySeed = new IntegerListEntity()
            };

            op.Initialize(algorithm);

            op.Validate();
        }