@Test public void test3() { Algorithm target = new PairWiseAlgorithm(); List<Parameter> parameters = new ArrayList<Parameter>(); parameters.add(new Parameter(1L, "param1", Arrays.asList(new String[] {"A", "B"}))); parameters.add(new Parameter(2L, "param2", Arrays.asList(new String[] {"C", "D"}))); ParameterList parameterList = new ParameterList(parameters); CombinationList combinations = target.generate(parameterList, -1); // if there is 2 pair int expectedPairs = 4; List<OnePair> allPairs = new ArrayList<OnePair>(expectedPairs) { private static final long serialVersionUID = 1L; { add(new OnePair(1L, "A", 2L, "C")); add(new OnePair(1L, "A", 2L, "D")); add(new OnePair(1L, "B", 2L, "C")); add(new OnePair(1L, "B", 2L, "D")); } }; assertTrue(PairComparator.hasAllPairs(allPairs, combinations)); }
@Test public void test_readDataFromFile() throws JsonSyntaxException, IOException { Algorithm target = new PairWiseAlgorithm(); ParameterList parameters = new ParameterFileReader().getParameterList("data/testData.txt"); assertEquals(5, parameters.getParameters().size()); CombinationList combinations = target.generate(parameters, -1); // if there is 66 pair int expectedPairs = 66; List<OnePair> allPairs = new ArrayList<OnePair>(expectedPairs) { private static final long serialVersionUID = 1L; { // pairs starting with parameter 1 add(new OnePair(0L, "a", 1L, "c")); add(new OnePair(0L, "a", 1L, "d")); add(new OnePair(0L, "a", 1L, "e")); add(new OnePair(0L, "a", 1L, "f")); add(new OnePair(0L, "a", 2L, "01")); add(new OnePair(0L, "a", 2L, "001")); add(new OnePair(0L, "a", 3L, "g")); add(new OnePair(0L, "a", 3L, "h")); add(new OnePair(0L, "a", 3L, "i")); add(new OnePair(0L, "a", 4L, "j")); add(new OnePair(0L, "a", 4L, "k")); add(new OnePair(0L, "b", 1L, "c")); add(new OnePair(0L, "b", 1L, "d")); add(new OnePair(0L, "b", 1L, "e")); add(new OnePair(0L, "b", 1L, "f")); add(new OnePair(0L, "b", 2L, "01")); add(new OnePair(0L, "b", 2L, "001")); add(new OnePair(0L, "b", 3L, "g")); add(new OnePair(0L, "b", 3L, "h")); add(new OnePair(0L, "b", 3L, "i")); add(new OnePair(0L, "b", 4L, "j")); add(new OnePair(0L, "b", 4L, "k")); // pairs starting with parameter 2 add(new OnePair(1L, "c", 2L, "01")); add(new OnePair(1L, "c", 2L, "001")); add(new OnePair(1L, "c", 3L, "g")); add(new OnePair(1L, "c", 3L, "h")); add(new OnePair(1L, "c", 3L, "i")); add(new OnePair(1L, "c", 4L, "j")); add(new OnePair(1L, "c", 4L, "k")); add(new OnePair(1L, "d", 2L, "01")); add(new OnePair(1L, "d", 2L, "001")); add(new OnePair(1L, "d", 3L, "g")); add(new OnePair(1L, "d", 3L, "h")); add(new OnePair(1L, "d", 3L, "i")); add(new OnePair(1L, "d", 4L, "j")); add(new OnePair(1L, "d", 4L, "k")); add(new OnePair(1L, "e", 2L, "01")); add(new OnePair(1L, "e", 2L, "001")); add(new OnePair(1L, "e", 3L, "g")); add(new OnePair(1L, "e", 3L, "h")); add(new OnePair(1L, "e", 3L, "i")); add(new OnePair(1L, "e", 4L, "j")); add(new OnePair(1L, "e", 4L, "k")); add(new OnePair(1L, "f", 2L, "01")); add(new OnePair(1L, "f", 2L, "001")); add(new OnePair(1L, "f", 3L, "g")); add(new OnePair(1L, "f", 3L, "h")); add(new OnePair(1L, "f", 3L, "i")); add(new OnePair(1L, "f", 4L, "j")); add(new OnePair(1L, "f", 4L, "k")); // pairs starting with parameter 3 add(new OnePair(2L, "01", 3L, "g")); add(new OnePair(2L, "01", 3L, "h")); add(new OnePair(2L, "01", 3L, "i")); add(new OnePair(2L, "01", 4L, "j")); add(new OnePair(2L, "01", 4L, "k")); add(new OnePair(2L, "001", 3L, "g")); add(new OnePair(2L, "001", 3L, "h")); add(new OnePair(2L, "001", 3L, "i")); add(new OnePair(2L, "001", 4L, "j")); add(new OnePair(2L, "001", 4L, "k")); // pairs starting with parameter 4 add(new OnePair(3L, "g", 4L, "j")); add(new OnePair(3L, "g", 4L, "k")); add(new OnePair(3L, "h", 4L, "j")); add(new OnePair(3L, "h", 4L, "k")); add(new OnePair(3L, "i", 4L, "j")); add(new OnePair(3L, "i", 4L, "k")); } }; assertTrue(PairComparator.hasAllPairs(allPairs, combinations)); }
@Test public void test7() { Algorithm target = new PairWiseAlgorithm(); List<Parameter> parameters = new ArrayList<Parameter>(); parameters.add(new Parameter(0L, "Param0", Arrays.asList(new String[] {"a", "b"}))); parameters.add(new Parameter(1L, "Param1", Arrays.asList(new String[] {"c", "d", "e", "f"}))); parameters.add(new Parameter(2L, "Param2", Arrays.asList(new String[] {"01", "001"}))); parameters.add(new Parameter(3L, "Param3", Arrays.asList(new String[] {"g", "h", "i"}))); parameters.add(new Parameter(4L, "Param4", Arrays.asList(new String[] {"j", "k"}))); ParameterList parameterList = new ParameterList(parameters); CombinationList combinations = target.generate(parameterList, -1); // if there is 66 pair : // 2*(4 + 2+3+2) + 4*(2+3+2) + 2*(3+2) + 3*2 = 66 int expectedPairs = 66; List<OnePair> allPairs = new ArrayList<OnePair>(expectedPairs) { private static final long serialVersionUID = 1L; { // pairs starting with parameter 1 add(new OnePair(0L, "a", 1L, "c")); add(new OnePair(0L, "a", 1L, "d")); add(new OnePair(0L, "a", 1L, "e")); add(new OnePair(0L, "a", 1L, "f")); add(new OnePair(0L, "a", 2L, "01")); add(new OnePair(0L, "a", 2L, "001")); add(new OnePair(0L, "a", 3L, "g")); add(new OnePair(0L, "a", 3L, "h")); add(new OnePair(0L, "a", 3L, "i")); add(new OnePair(0L, "a", 4L, "j")); add(new OnePair(0L, "a", 4L, "k")); add(new OnePair(0L, "b", 1L, "c")); add(new OnePair(0L, "b", 1L, "d")); add(new OnePair(0L, "b", 1L, "e")); add(new OnePair(0L, "b", 1L, "f")); add(new OnePair(0L, "b", 2L, "01")); add(new OnePair(0L, "b", 2L, "001")); add(new OnePair(0L, "b", 3L, "g")); add(new OnePair(0L, "b", 3L, "h")); add(new OnePair(0L, "b", 3L, "i")); add(new OnePair(0L, "b", 4L, "j")); add(new OnePair(0L, "b", 4L, "k")); // pairs starting with parameter 2 add(new OnePair(1L, "c", 2L, "01")); add(new OnePair(1L, "c", 2L, "001")); add(new OnePair(1L, "c", 3L, "g")); add(new OnePair(1L, "c", 3L, "h")); add(new OnePair(1L, "c", 3L, "i")); add(new OnePair(1L, "c", 4L, "j")); add(new OnePair(1L, "c", 4L, "k")); add(new OnePair(1L, "d", 2L, "01")); add(new OnePair(1L, "d", 2L, "001")); add(new OnePair(1L, "d", 3L, "g")); add(new OnePair(1L, "d", 3L, "h")); add(new OnePair(1L, "d", 3L, "i")); add(new OnePair(1L, "d", 4L, "j")); add(new OnePair(1L, "d", 4L, "k")); add(new OnePair(1L, "e", 2L, "01")); add(new OnePair(1L, "e", 2L, "001")); add(new OnePair(1L, "e", 3L, "g")); add(new OnePair(1L, "e", 3L, "h")); add(new OnePair(1L, "e", 3L, "i")); add(new OnePair(1L, "e", 4L, "j")); add(new OnePair(1L, "e", 4L, "k")); add(new OnePair(1L, "f", 2L, "01")); add(new OnePair(1L, "f", 2L, "001")); add(new OnePair(1L, "f", 3L, "g")); add(new OnePair(1L, "f", 3L, "h")); add(new OnePair(1L, "f", 3L, "i")); add(new OnePair(1L, "f", 4L, "j")); add(new OnePair(1L, "f", 4L, "k")); // pairs starting with parameter 3 add(new OnePair(2L, "01", 3L, "g")); add(new OnePair(2L, "01", 3L, "h")); add(new OnePair(2L, "01", 3L, "i")); add(new OnePair(2L, "01", 4L, "j")); add(new OnePair(2L, "01", 4L, "k")); add(new OnePair(2L, "001", 3L, "g")); add(new OnePair(2L, "001", 3L, "h")); add(new OnePair(2L, "001", 3L, "i")); add(new OnePair(2L, "001", 4L, "j")); add(new OnePair(2L, "001", 4L, "k")); // pairs starting with parameter 4 add(new OnePair(3L, "g", 4L, "j")); add(new OnePair(3L, "g", 4L, "k")); add(new OnePair(3L, "h", 4L, "j")); add(new OnePair(3L, "h", 4L, "k")); add(new OnePair(3L, "i", 4L, "j")); add(new OnePair(3L, "i", 4L, "k")); } }; assertTrue(PairComparator.hasAllPairs(allPairs, combinations)); }