public void HandMixer_1_Round_Of_Shuffle() { var simpleMixer = new HandMixer <string>(1); var originalArray = new List <string>() { "a", "b", "c", "d", "e" }; var shuffledArray = simpleMixer.Shuffle(originalArray).ToList(); Assert.AreEqual(originalArray.Count(), shuffledArray.Count()); Assert.AreEqual(0, originalArray.Except(shuffledArray).Count()); Assert.AreEqual(originalArray.Distinct().Count(), shuffledArray.Distinct().Count()); Assert.AreEqual(5, originalArray.Intersect(shuffledArray).Count()); Assert.IsTrue(shuffledArray[0] != "a"); Assert.IsTrue(shuffledArray[1] != "b"); Assert.IsTrue(shuffledArray[2] != "c"); Assert.IsTrue(shuffledArray[3] != "d"); Assert.IsTrue(shuffledArray[4] != "e"); Assert.IsTrue(shuffledArray[0] == "e" || shuffledArray[0] == "d" || shuffledArray[0] == "c"); }