Exemple #1
0
        public void Operate_EqualLengthVectors_BiasedToSecondParent_ReturnsSecondParent()
        {
            var cx    = new CrossoverArithmeticWeighted(fixedWeight: 0);
            var child = cx.Operate(parent1, parent2);

            Assert.Equal(parent2, child);
        }
Exemple #2
0
        public void Operate_EqualLengthVectors_NoBias_ReturnsAverage()
        {
            var cx    = new CrossoverArithmeticWeighted();
            var child = cx.Operate(parent1, parent2);

            for (var i = 0; i < child.Count; i++)
            {
                var avg = 0.5 * ((double)parent1.ElementAt(i) + (double)parent2.ElementAt(i));
                Assert.True(Math.Abs((double)child.ElementAt(i) - avg) < 1e-6);
            }
        }
Exemple #3
0
        public void Operate_DifferentLengthVectors_Throws()
        {
            var cx = new CrossoverArithmeticWeighted();

            Assert.Throws <ArgumentOutOfRangeException>(() => cx.Operate(parent1, parent3Bad));
        }