Beispiel #1
0
        public void ExtractCombinationsOfThreeElementsFromFive()
        {
            var generator = new CombinationGenerator();
            var combinations = generator.GetCombinations(new List<string> { "A", "B", "C", "D", "E" }, 3).ToList();

            Assert.AreEqual(10, combinations.Count(), "Ten ways to do this");

            // ABC
            // ABD
            // ABE
            // ACD
            // ACE
            // ADE
            // BCD
            // BCE
            // BDE
            // CDE

            var list = combinations.Select(combination => string.Concat(combination)).ToList();

            Assert.IsTrue(list.Contains("ABC"));
            Assert.IsTrue(list.Contains("ABD"));
            Assert.IsTrue(list.Contains("ABE"));
            Assert.IsTrue(list.Contains("ACD"));
            Assert.IsTrue(list.Contains("ACE"));
            Assert.IsTrue(list.Contains("ADE"));
            Assert.IsTrue(list.Contains("BCD"));
            Assert.IsTrue(list.Contains("BCE"));
            Assert.IsTrue(list.Contains("BDE"));
            Assert.IsTrue(list.Contains("CDE"));
        }