NWiseExtension implements CustomTagExtension<NWiseExtension.NWiseAction> { public List<Set<String>> makeNWiseTuples(String[] variables, int nWise) { List<Set<String>> completeTuples = new ArrayList<>(); makeNWiseTuplesHelper(completeTuples, variables, 0, new HashSet<String>(), nWise); return completeTuples; }  Class<NWiseAction> getTagActionClass(); String getTagName(); String getTagNameSpace(); List<Set<String>> makeNWiseTuples(String[] variables, int nWise); List<Map<String, String>> expandTupleIntoTestCases(Set<String> tuple, Map<String, String[]> variableDomains); List<Map<String, String>> produceNWise(int nWise, String[] coVariables, Map<String, String[]> variableDomains); List<Map<String, String>> pipelinePossibleStates(NWiseAction action, List<Map<String, String>> possibleStateList);  }
@Test public void makeNWiseTuplesTest() { NWiseExtension nWiseExtension = new NWiseExtension(); List<Set<String>> tuples = nWiseExtension.makeNWiseTuples(new String[]{"A", "B", "C", "D", "E"}, 3); Assert.assertEquals(10, tuples.size()); tuples = nWiseExtension.makeNWiseTuples(new String[]{"A", "B", "C", "D", "E"}, 2); Assert.assertEquals(10, tuples.size()); tuples = nWiseExtension.makeNWiseTuples(new String[]{"A", "B", "C", "D", "E"}, 1); Assert.assertEquals(5, tuples.size()); }