public void VariableSinglePointCrossoverOperator_GenerateCrossover_NullParents() { VariableSinglePointCrossoverOperator op = new VariableSinglePointCrossoverOperator(); PrivateObject accessor = new PrivateObject(op); Assert.Throws <ArgumentNullException>(() => accessor.Invoke("GenerateCrossover", (IList <GeneticEntity>)null)); }
public void VariableSinglePointCrossoverOperator_GenerateCrossover() { VariableSinglePointCrossoverOperator op = new VariableSinglePointCrossoverOperator(); PrivateObject accessor = new PrivateObject(op); RandomNumberService.Instance = new FakeRandomNumberService( new Queue <int>(new int[] { 5, 3 }), new Queue <int>(new int[] { 3, 2 })); List <GeneticEntity> entities = new List <GeneticEntity> { new TestEntity <int>(1, 2, 3, 4, 5), new TestEntity <int>(4, 1, 7) }; IEnumerable <TestEntity <int> > result = ((IEnumerable <GeneticEntity>)accessor.Invoke("GenerateCrossover", entities)) .Cast <TestEntity <int> >(); Assert.Equal(2, result.Count()); Assert.Equal( new int[] { 1, 2, 3, 7 }, result.ElementAt(0).InnerList); Assert.Equal( new int[] { 4, 1, 4, 5 }, result.ElementAt(1).InnerList); }
public void VariableSinglePointCrossoverOperator_Validation_WithoutListEntityBase() { VariableSinglePointCrossoverOperator op = new VariableSinglePointCrossoverOperator(); MockGeneticAlgorithm algorithm = new MockGeneticAlgorithm { GeneticEntitySeed = new MockEntity() }; op.Initialize(algorithm); Assert.Throws <ValidationException>(() => op.Validate()); }
public void VariableSinglePointCrossoverOperator_Validation_WithListEntityBase() { VariableSinglePointCrossoverOperator op = new VariableSinglePointCrossoverOperator(); MockGeneticAlgorithm algorithm = new MockGeneticAlgorithm { GeneticEntitySeed = new IntegerListEntity() }; op.Initialize(algorithm); op.Validate(); }