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; }
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; }