public void KeepFittest_should_only_take_weights_with_score_greater_than_threshold()
        {
            // Arrange
            var scores  = CreateTestScores();
            var weights = CreateWeightsDictionary();

            const int    count          = 3;
            const double scoreThreshold = 3.5;

            // Act
            var fittest = GeneticAlgorithmSteps.KeepFittest(scores, weights, count, scoreThreshold);

            // Assert
            Assert.AreEqual(2, fittest.Count);
        }
        public void KeepFittest_should_return_empty_list_if_no_scores_greater_than_threshold()
        {
            // Arrange
            var scores  = CreateTestScores();
            var weights = CreateWeightsDictionary();

            const int    count          = 3;
            const double scoreThreshold = 6;

            // Act
            var fittest = GeneticAlgorithmSteps.KeepFittest(scores, weights, count, scoreThreshold);

            // Assert
            Assert.AreEqual(0, fittest.Count);
        }
        public void KeepFittest_should_only_take_correct_number_of_weights()
        {
            // Arrange
            var scores  = CreateTestScores();
            var weights = CreateWeightsDictionary();

            const int    count          = 3;
            const double scoreThreshold = 0.0;

            // Act
            var fittest = GeneticAlgorithmSteps.KeepFittest(scores, weights, count, scoreThreshold);

            // Assert
            Assert.AreEqual(count, fittest.Count);
        }