public void GetCrossoverTypes_NoArgs_AllAvailableCrossovers()
        {
            var actual = CrossoverService.GetCrossoverTypes();

            Assert.AreEqual(8, actual.Count);
            Assert.AreEqual(typeof(CutAndSpliceCrossover), actual[0]);
            Assert.AreEqual(typeof(CycleCrossover), actual[1]);
            Assert.AreEqual(typeof(OnePointCrossover), actual [2]);
            Assert.AreEqual(typeof(OrderedCrossover), actual [3]);
            Assert.AreEqual(typeof(PartiallyMappedCrossover), actual [4]);
            Assert.AreEqual(typeof(ThreeParentCrossover), actual[5]);
            Assert.AreEqual(typeof(TwoPointCrossover), actual [6]);
            Assert.AreEqual(typeof(UniformCrossover), actual [7]);
        }
        public void GetCrossoverTypes_NoArgs_AllAvailableCrossovers()
        {
            var actual = CrossoverService.GetCrossoverTypes();

            Assert.AreEqual(12, actual.Count);
            var index = -1;

            Assert.AreEqual(typeof(AlternatingPositionCrossover), actual[++index]);
            Assert.AreEqual(typeof(CutAndSpliceCrossover), actual[++index]);
            Assert.AreEqual(typeof(CycleCrossover), actual[++index]);
            Assert.AreEqual(typeof(OnePointCrossover), actual[++index]);
            Assert.AreEqual(typeof(OrderBasedCrossover), actual[++index]);
            Assert.AreEqual(typeof(OrderedCrossover), actual[++index]);
            Assert.AreEqual(typeof(PartiallyMappedCrossover), actual[++index]);
            Assert.AreEqual(typeof(PositionBasedCrossover), actual[++index]);
            Assert.AreEqual(typeof(ThreeParentCrossover), actual[++index]);
            Assert.AreEqual(typeof(TwoPointCrossover), actual[++index]);
            Assert.AreEqual(typeof(UniformCrossover), actual[++index]);
            Assert.AreEqual(typeof(VotingRecombinationCrossover), actual[++index]);
        }