예제 #1
0
        private static IList<FilterTestMultiStmtExecution> ComputePermutationsCase(
            Type originator,
            PermutationSpec permutationSpec,
            FilterTestMultiStmtPermutable permutableCase,
            bool withStats)
        {
            if (!permutationSpec.IsAll) {
                return Collections.SingletonList(
                    CaseOf(originator, permutationSpec.Specific, permutableCase, withStats));
            }

            // determine that filters is different
            ISet<string> filtersUnique = new HashSet<string>(Arrays.AsList(permutableCase.Filters));
            if (filtersUnique.Count == 1 && permutableCase.Filters.Length > 1) {
                Assert.Fail("Filters are all the same, specify a single permutation instead");
            }

            IList<FilterTestMultiStmtExecution> executions = new List<FilterTestMultiStmtExecution>();
            var permutationEnumerator = PermutationEnumerator.Create(permutableCase.Filters.Length);
            foreach (var permutation in permutationEnumerator) {
                executions.Add(CaseOf(originator, permutation, permutableCase, withStats));
            }

            return executions;
        }
예제 #2
0
        public static IList<FilterTestMultiStmtExecution> ComputePermutations(
            Type originator,
            PermutationSpec permutationSpec,
            IList<FilterTestMultiStmtPermutable> cases,
            bool withStats)
        {
            // For each permutable test
            IList<FilterTestMultiStmtExecution> executions = new List<FilterTestMultiStmtExecution>();
            foreach (var permutableCase in cases) {
                executions.AddAll(
                    ComputePermutationsCase(
                        originator,
                        permutationSpec,
                        permutableCase,
                        withStats));
            }

            return executions;
        }