public void Operate_EqualLengthVectors_BiasedToSecondParent_ReturnsSecondParent() { var cx = new CrossoverArithmeticWeighted(fixedWeight: 0); var child = cx.Operate(parent1, parent2); Assert.Equal(parent2, child); }
public void Operate_EqualLengthVectors_NoBias_ReturnsAverage() { var cx = new CrossoverArithmeticWeighted(); var child = cx.Operate(parent1, parent2); for (var i = 0; i < child.Count; i++) { var avg = 0.5 * ((double)parent1.ElementAt(i) + (double)parent2.ElementAt(i)); Assert.True(Math.Abs((double)child.ElementAt(i) - avg) < 1e-6); } }
public void Operate_DifferentLengthVectors_Throws() { var cx = new CrossoverArithmeticWeighted(); Assert.Throws <ArgumentOutOfRangeException>(() => cx.Operate(parent1, parent3Bad)); }