Ejemplo n.º 1
0
        public void OperatorGreaterThan_DiffAndFitnessGreater_True()
        {
            var first  = new ChromosomeStub(3.0);
            var second = new ChromosomeStub(2.0);

            Assert.IsTrue(first > second);
        }
Ejemplo n.º 2
0
        public void OperatorLowerThan_FitnessLower_True()
        {
            var first  = new ChromosomeStub(1.0);
            var second = new ChromosomeStub(2.0);

            Assert.IsTrue(first < second);
        }
Ejemplo n.º 3
0
        public void OperatorDiff_Diff_True()
        {
            var first  = new ChromosomeStub(1.0);
            var second = new ChromosomeStub(2.0);

            Assert.IsTrue(first != second);
        }
Ejemplo n.º 4
0
        public void OperatorLowerThan_FitnessGreater_False()
        {
            var first  = new ChromosomeStub(3.0);
            var second = new ChromosomeStub(2.0);

            Assert.IsFalse(first < second);
        }
Ejemplo n.º 5
0
        public void OperatorDiff_Equals_False()
        {
            var first  = new ChromosomeStub(1.0);
            var second = new ChromosomeStub(1.0);

            Assert.IsFalse(first != second);
        }
Ejemplo n.º 6
0
        public void GetHashCode_NoFitness_Zero()
        {
            var target = new ChromosomeStub();

            target.Fitness = null;
            Assert.AreEqual(0, target.GetHashCode());
        }
Ejemplo n.º 7
0
        public void OperatorLowerThan_ReferenceEquals_False()
        {
            var first  = new ChromosomeStub(1.0);
            var second = first;

            Assert.IsFalse(first < second);
        }
Ejemplo n.º 8
0
        public void GetHashCode_Fitness_EqualsFitnessHashCode()
        {
            var target = new ChromosomeStub();

            target.Fitness = 123;
            Assert.AreEqual(target.Fitness.GetHashCode(), target.GetHashCode());
        }
Ejemplo n.º 9
0
        public void OperatorEquals_Equals_True()
        {
            var first  = new ChromosomeStub(1.0);
            var second = new ChromosomeStub(1.0);

            Assert.IsTrue(first == second);
        }
        public void SelectChromosomes_Generation_ChromosomesSelected()
        {

            var target = new StochasticUniversalSamplingSelection();
            var c1 = new ChromosomeStub();
            c1.Fitness = 0.1;

            var c2 = new ChromosomeStub();
            c2.Fitness = 0.5;

            var c3 = new ChromosomeStub();
            c3.Fitness = 0;

            var c4 = new ChromosomeStub();
            c4.Fitness = 0.7;

            var generation = new Generation(1, new List<IChromosome>() {
                c1, c2, c3, c4
            });

            // Fitness sum: 0.1 + 0.5 + 0 + 0.7 = 1.3
            // c1:  8% = 0.08
            // c2: 38% = 0.46
            // c3:  0% = 0.46
            // c4: 54% = 1.00
            var rnd = MockRepository.GenerateMock<IRandomization>();
            rnd.Expect(r => r.GetDouble()).Return(0.3);
            RandomizationProvider.Current = rnd;

            // Step size 1/2 = 0.5
            var actual = target.SelectChromosomes(2, generation);
            Assert.AreEqual(2, actual.Count);
            Assert.AreEqual(c2.Fitness, actual[0].Fitness); // 0.3
            Assert.AreEqual(c4.Fitness, actual[1].Fitness); // 0.8

            // Step size 1/3 = 0.33
            actual = target.SelectChromosomes(3, generation);
            Assert.AreEqual(3, actual.Count);
            Assert.AreEqual(c2.Fitness, actual[0].Fitness); // 0.3
            Assert.AreEqual(c4.Fitness, actual[1].Fitness); // 0.63
            Assert.AreEqual(c4.Fitness, actual[2].Fitness); // 0.96

            // Step size 1/4 = 0.25
            actual = target.SelectChromosomes(4, generation);
            Assert.AreEqual(4, actual.Count);
            Assert.AreEqual(c2.Fitness, actual[0].Fitness); // 0.3
            Assert.AreEqual(c4.Fitness, actual[1].Fitness); // 0.55
            Assert.AreEqual(c4.Fitness, actual[2].Fitness); // 0.80
            Assert.AreEqual(c1.Fitness, actual[3].Fitness); // 0.05

            // Step size 1/5 = 0.20
            actual = target.SelectChromosomes(5, generation);
            Assert.AreEqual(5, actual.Count);
            Assert.AreEqual(c2.Fitness, actual[0].Fitness); // 0.3
            Assert.AreEqual(c4.Fitness, actual[1].Fitness); // 0.5
            Assert.AreEqual(c4.Fitness, actual[2].Fitness); // 0.7
            Assert.AreEqual(c4.Fitness, actual[3].Fitness); // 0.9
            Assert.AreEqual(c2.Fitness, actual[4].Fitness); // 0.1
        }
Ejemplo n.º 11
0
        public void OperatorEquals_AnyNull_False()
        {
            var first  = new ChromosomeStub(1.0);
            var second = new ChromosomeStub(1.0);

            Assert.IsFalse(null == second);
            Assert.IsFalse(first == null);
        }
Ejemplo n.º 12
0
        public void OperatorLowerThan_SecondNull_False()
        {
            var first = new ChromosomeStub(2.0);

            Assert.IsFalse(first < null);
        }
Ejemplo n.º 13
0
        public void OperatorEquals_Diff_False()
        {
            var first = new ChromosomeStub(1.0);
            var second = new ChromosomeStub(2.0);

            Assert.IsFalse(first == second);
        }
Ejemplo n.º 14
0
        public void Equals_NotChromosome_False()
        {
            var target = new ChromosomeStub();

            Assert.IsFalse(target.Equals(1));
        }
Ejemplo n.º 15
0
        public void OperatorEquals_Equals_True()
        {
            var first = new ChromosomeStub(1.0);
            var second = new ChromosomeStub(1.0);

            Assert.IsTrue(first == second);
        }
Ejemplo n.º 16
0
 public void GetHashCode_Fitness_EqualsFitnessHashCode()
 {
     var target = new ChromosomeStub();
     target.Fitness = 123;
     Assert.AreEqual(target.Fitness.GetHashCode(), target.GetHashCode());
 }
Ejemplo n.º 17
0
 public void GetHashCode_NoFitness_Zero()
 {
     var target = new ChromosomeStub();
     target.Fitness = null;
     Assert.AreEqual(0, target.GetHashCode());
 }
Ejemplo n.º 18
0
        public void OperatorEquals_AnyNull_False()
        {
            var first = new ChromosomeStub(1.0);
            var second = new ChromosomeStub(1.0);

            Assert.IsFalse(null == second);
            Assert.IsFalse(first == null);
        }
Ejemplo n.º 19
0
        public void OperatorGreaterThan_DiffAndFitnessGreater_True()
        {
            var first = new ChromosomeStub(3.0);
            var second = new ChromosomeStub(2.0);

            Assert.IsTrue(first > second);
        }
Ejemplo n.º 20
0
        public void OperatorLowerThan_FirstNull_True()
        {
            var second = new ChromosomeStub(2.0);

            Assert.IsTrue(null < second);
        }
Ejemplo n.º 21
0
        public void OperatorLowerThan_FitnessLower_True()
        {
            var first = new ChromosomeStub(1.0);
            var second = new ChromosomeStub(2.0);

            Assert.IsTrue(first < second);
        }
Ejemplo n.º 22
0
        public void OperatorLowerThan_FitnessGreater_False()
        {
            var first = new ChromosomeStub(3.0);
            var second = new ChromosomeStub(2.0);

            Assert.IsFalse(first < second);
        }
Ejemplo n.º 23
0
        public void OperatorLowerThan_ReferenceEquals_False()
        {
            var first = new ChromosomeStub(1.0);
            var second = first;

            Assert.IsFalse(first < second);
        }
Ejemplo n.º 24
0
        public void OperatorDiff_Diff_True()
        {
            var first = new ChromosomeStub(1.0);
            var second = new ChromosomeStub(2.0);

            Assert.IsTrue(first != second);
        }
Ejemplo n.º 25
0
        public void OperatorLowerThan_FirstNull_True()
        {
            var second = new ChromosomeStub(2.0);

            Assert.IsTrue(null < second);
        }
Ejemplo n.º 26
0
        public void OperatorLowerThan_SecondNull_False()
        {
            var first = new ChromosomeStub(2.0);

            Assert.IsFalse(first < null);
        }
Ejemplo n.º 27
0
 public void Equals_NotChromosome_False()
 {
     var target = new ChromosomeStub();
     Assert.IsFalse(target.Equals(1));
 }
        public void SelectChromosomes_Generation_ChromosomesSelected()
        {
            var target = new StochasticUniversalSamplingSelection();
            var c1     = new ChromosomeStub();

            c1.Fitness = 0.1;

            var c2 = new ChromosomeStub();

            c2.Fitness = 0.5;

            var c3 = new ChromosomeStub();

            c3.Fitness = 0;

            var c4 = new ChromosomeStub();

            c4.Fitness = 0.7;

            var generation = new Generation(1, new List <IChromosome>()
            {
                c1, c2, c3, c4
            });

            // Fitness sum: 0.1 + 0.5 + 0 + 0.7 = 1.3
            // c1:  8% = 0.08
            // c2: 38% = 0.46
            // c3:  0% = 0.46
            // c4: 54% = 1.00
            var rnd = MockRepository.GenerateMock <IRandomization>();

            rnd.Expect(r => r.GetDouble()).Return(0.3);
            RandomizationProvider.Current = rnd;

            // Step size 1/2 = 0.5
            var actual = target.SelectChromosomes(2, generation);

            Assert.AreEqual(2, actual.Count);
            Assert.AreEqual(c2.Fitness, actual[0].Fitness); // 0.3
            Assert.AreEqual(c4.Fitness, actual[1].Fitness); // 0.8

            // Step size 1/3 = 0.33
            actual = target.SelectChromosomes(3, generation);
            Assert.AreEqual(3, actual.Count);
            Assert.AreEqual(c2.Fitness, actual[0].Fitness); // 0.3
            Assert.AreEqual(c4.Fitness, actual[1].Fitness); // 0.63
            Assert.AreEqual(c4.Fitness, actual[2].Fitness); // 0.96

            // Step size 1/4 = 0.25
            actual = target.SelectChromosomes(4, generation);
            Assert.AreEqual(4, actual.Count);
            Assert.AreEqual(c2.Fitness, actual[0].Fitness); // 0.3
            Assert.AreEqual(c4.Fitness, actual[1].Fitness); // 0.55
            Assert.AreEqual(c4.Fitness, actual[2].Fitness); // 0.80
            Assert.AreEqual(c1.Fitness, actual[3].Fitness); // 0.05

            // Step size 1/5 = 0.20
            actual = target.SelectChromosomes(5, generation);
            Assert.AreEqual(5, actual.Count);
            Assert.AreEqual(c2.Fitness, actual[0].Fitness); // 0.3
            Assert.AreEqual(c4.Fitness, actual[1].Fitness); // 0.5
            Assert.AreEqual(c4.Fitness, actual[2].Fitness); // 0.7
            Assert.AreEqual(c4.Fitness, actual[3].Fitness); // 0.9
            Assert.AreEqual(c2.Fitness, actual[4].Fitness); // 0.1
        }