Example #1
0
        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");
        }