public void CrashMc_Permute_ArgumentNull2()
        {
            Multicombination mc = new Multicombination(2);

            string[]      nullSource = null;
            List <string> item       = Multicombination.Permute(mc, nullSource);
        }
        public void CrashMc_Permute_ArgumentNull1()
        {
            Multicombination mcNull = null;

            string[]      letters = new string[] { "A", "B" };
            List <string> item    = Multicombination.Permute(mcNull, letters);
        }
        public void CrashMc_Permute_Argument()
        {
            Multicombination mc = new Multicombination(6);

            string[] letters = new string[] { "A", "B", "C", "D" };

            // Not enough letters throws
            List <string> item = Multicombination.Permute(mc, letters);
        }
示例#4
0
        static void Main()
        {
            Pastry[] Pastries =
            {
                new Pastry("eclair"),
                new Pastry("strudel"),
                new Pastry("donut"),
                new Pastry("croissant")
            };

            // Use k-multicombinations to get rearrangements of other objects:
            foreach (var row in new Multicombination(Pastries.Length, 3).GetRows())
            {
                Console.WriteLine(String.Join(" ", Multicombination.Permute(row, Pastries)));
            }
        }
        public void UnitMc_Permute()
        {
            string[] expected = new string[] { "AAA", "AAB", "ABB", "BBB" };
            string[] letters  = new string[] { "A", "B" };

            int actualCount = 0;

            foreach (Multicombination mc in new Multicombination(2, 3).GetRows())
            {
                string a = "";
                foreach (string item in Multicombination.Permute(mc, letters))
                {
                    a += item;
                }

                Assert.AreEqual(expected[actualCount], a);
                ++actualCount;
            }

            Assert.AreEqual(expected.Length, actualCount);
        }