public void SelectionOperator_Select_NullPopulation()
        {
            GeneticAlgorithm      algorithm = GetAlgorithm();
            MockSelectionOperator op        = new MockSelectionOperator();

            op.Initialize(algorithm);
            Assert.Throws <ArgumentNullException>(() => op.SelectEntities(1, null));
        }
        public void SelectionOperator_Select_EmptyPopulation()
        {
            GeneticAlgorithm      algorithm = GetAlgorithm();
            MockSelectionOperator op        = new MockSelectionOperator();

            op.Initialize(algorithm);
            MockPopulation population = new MockPopulation();

            population.Initialize(algorithm);
            Assert.Throws <ArgumentException>(() => op.SelectEntities(1, population));
        }
        public void SelectionOperator_Select()
        {
            GeneticAlgorithm      algorithm = GetAlgorithm();
            MockSelectionOperator op        = new MockSelectionOperator();

            op.Initialize(algorithm);
            MockPopulation population = new MockPopulation();

            population.Initialize(algorithm);
            GeneticEntity entity1 = new MockEntity();

            entity1.Initialize(algorithm);
            GeneticEntity entity2 = new MockEntity();

            entity2.Initialize(algorithm);
            population.Entities.Add(entity1);
            population.Entities.Add(entity2);
            IList <GeneticEntity> selectedEntities = op.SelectEntities(1, population);

            Assert.Same(entity1, selectedEntities[0]);
            Assert.Equal(1, op.DoSelectCallCount);
        }