public void CutAndCrossFill_Child_Contains_Unique_Values() { List <int> parent = new List <int> { 1, 2, 3, 4, 5, 6 }; List <int> child = new List <int>(); RecombinationAlgorithms <int> .CrossFill(child, parent, 5); Assert.Equal(child.Distinct().Count(), child.Count); }
public void CrossFill_Child_Content_Matches_Parent() { List <int> parent = new List <int> { 1, 2, 3, 4, 5, 6 }; List <int> child = new List <int>(); RecombinationAlgorithms <int> .CrossFill(child, parent, 4); Assert.Empty(child.Except(parent)); }
public void CrossFill_Handles_Start_To_End() { List <int> parent = new List <int> { 1, 2, 3, 4, 5, 6 }; List <int> child = new List <int>(); RecombinationAlgorithms <int> .CrossFill(child, parent, 0); Assert.Equal(1, child[0]); Assert.Equal(2, child[1]); Assert.Equal(3, child[2]); }
public void CrossFill_Copies_Values_From_CutIndex_Onwards_To_Start() { List <int> parent = new List <int> { 1, 2, 3, 4, 5, 6 }; List <int> child = new List <int>(); RecombinationAlgorithms <int> .CrossFill(child, parent, 4); Assert.Equal(5, child[0]); Assert.Equal(6, child[1]); Assert.Equal(1, child[2]); Assert.Empty(child.Except(parent)); }