Esempio n. 1
0
        private static void Validate(List <List <int> > expected, List <int> set)
        {
            var result = Question_8_4.Powerset(set).ToList();

            Assert.AreEqual(expected.Count, result.Count);
            foreach (var subset in expected)
            {
                result.Remove(result.Find(s => s.SequenceEqual(subset)));
            }

            Assert.AreEqual(0, result.Count);
        }
        public void FindAllSubsetsTest(int testCase)
        {
            // Arrange
            List <int>            testSet = GenerateTestSet(testCase);
            List <int>            testSetCombinatorics = GenerateTestSet(testCase);
            List <HashSet <int> > expectedSubsets      = GenerateExpectedSubsets(testCase);

            expectedSubsets.Sort(_hashSetComparer);

            // Act
            List <HashSet <int> > resultSubsets = Question_8_4.FindAllSubsets(testSet);
            List <HashSet <int> > resultSubsetsCombinatorics = Question_8_4.FindAllSubsetsCombinatorics(testSetCombinatorics);

            resultSubsets.Sort(_hashSetComparer);
            resultSubsetsCombinatorics.Sort(_hashSetComparer);

            // Assert
            Assert.AreEqual(expectedSubsets.Count, resultSubsets.Count, "Result count check failed - Recursion.");
            Assert.AreEqual(expectedSubsets.Count, resultSubsetsCombinatorics.Count, "Result count check failed - Combinatorics.");
            Assert.IsTrue(expectedSubsets.SequenceEqual(resultSubsets, _hashSetComparer), "Result subsets check failed - Recursion.");
            Assert.IsTrue(expectedSubsets.SequenceEqual(resultSubsetsCombinatorics, _hashSetComparer), "Result subsets check failed - Combinatorics.");
        }
Esempio n. 3
0
        public void Question_8_4_InvalidCases()
        {
            var set = new List <int>(Enumerable.Range(0, 33));

            TestHelpers.AssertExceptionThrown(() => Question_8_4.Powerset(set).ToList(), typeof(ArgumentOutOfRangeException));
        }