@Test public void testFlatListProduct() { final List<Enumerator<List<String>>> list = new ArrayList<>(); list.add(Linq4j.enumerator(l2(l1("a"), l1("b")))); list.add(Linq4j.enumerator(l3(l2("x", "p"), l2("y", "q"), l2("z", "r")))); final Enumerable<FlatLists.ComparableList<String>> product = SqlFunctions.product(list, 3, false); int n = 0; FlatLists.ComparableList<String> previous = FlatLists.of(); for (FlatLists.ComparableList<String> strings : product) { if (n++ == 1) { assertThat(strings.size(), is(3)); assertThat(strings.get(0), is("a")); assertThat(strings.get(1), is("y")); assertThat(strings.get(2), is("q")); } if (previous != null) { assertTrue(previous.compareTo(strings) < 0); } previous = strings; } assertThat(n, is(6)); }
@Test public void testFlatListProduct() { final List<Enumerator<List<String>>> list = new ArrayList<>(); list.add(Linq4j.enumerator(l2(l1("a"), l1("b")))); list.add(Linq4j.enumerator(l3(l2("x", "p"), l2("y", "q"), l2("z", "r")))); final Enumerable<FlatLists.ComparableList<String>> product = SqlFunctions.product(list, 3, false); int n = 0; FlatLists.ComparableList<String> previous = FlatLists.of(); for (FlatLists.ComparableList<String> strings : product) { if (n++ == 1) { assertThat(strings.size(), is(3)); assertThat(strings.get(0), is("a")); assertThat(strings.get(1), is("y")); assertThat(strings.get(2), is("q")); } if (previous != null) { assertTrue(previous.compareTo(strings) < 0); } previous = strings; } assertThat(n, is(6)); }