/** Returns whether one of a list of collations indicates that the collection * is sorted on the given list of keys. */ public static boolean contains(List<RelCollation> collations, ImmutableIntList keys) { final List<Integer> distinctKeys = Util.distinctList(keys); for (RelCollation collation : collations) { if (contains(collation, distinctKeys)) { return true; } } return false; }
/** Returns whether a collation indicates that the collection is sorted on * a given list of keys. * * @param collation Collation * @param keys List of keys * @return Whether the collection is sorted on the given keys */ public static boolean contains(RelCollation collation, Iterable<Integer> keys) { return contains(collation, Util.distinctList(keys)); }
/** Returns whether one of a list of collations indicates that the collection * is sorted on the given list of keys. */ public static boolean contains(List<RelCollation> collations, ImmutableIntList keys) { final List<Integer> distinctKeys = Util.distinctList(keys); for (RelCollation collation : collations) { if (contains(collation, distinctKeys)) { return true; } } return false; }
/** Returns whether a collation indicates that the collection is sorted on * a given list of keys. * * @param collation Collation * @param keys List of keys * @return Whether the collection is sorted on the given keys */ public static boolean contains(RelCollation collation, Iterable<Integer> keys) { return contains(collation, Util.distinctList(keys)); }
/** Unit test for {@link Util#distinctList(List)} * and {@link Util#distinctList(Iterable)}. */ @Test public void testDistinctList() { assertThat(Util.distinctList(Arrays.asList(1, 2)), is(Arrays.asList(1, 2))); assertThat(Util.distinctList(Arrays.asList(1, 2, 1)), is(Arrays.asList(1, 2))); try { List<Object> o = Util.distinctList(null); fail("expected exception, got " + o); } catch (NullPointerException ignore) { } final List<Integer> empty = ImmutableList.of(); assertThat(Util.distinctList(empty), sameInstance(empty)); final Iterable<Integer> emptyIterable = empty; assertThat(Util.distinctList(emptyIterable), sameInstance(emptyIterable)); final List<Integer> empty2 = ImmutableList.of(); assertThat(Util.distinctList(empty2), sameInstance(empty2)); final List<String> abc = ImmutableList.of("a", "b", "c"); assertThat(Util.distinctList(abc), sameInstance(abc)); final List<String> a = ImmutableList.of("a"); assertThat(Util.distinctList(a), sameInstance(a)); final List<String> cbca = ImmutableList.of("c", "b", "c", "a"); assertThat(Util.distinctList(cbca), not(sameInstance(cbca))); assertThat(Util.distinctList(cbca), is(Arrays.asList("c", "b", "a"))); final Collection<String> cbcaC = new LinkedHashSet<>(cbca); assertThat(Util.distinctList(cbcaC), not(sameInstance(cbca))); assertThat(Util.distinctList(cbcaC), is(Arrays.asList("c", "b", "a"))); }
/** Unit test for {@link Util#distinctList(List)} * and {@link Util#distinctList(Iterable)}. */ @Test public void testDistinctList() { assertThat(Util.distinctList(Arrays.asList(1, 2)), is(Arrays.asList(1, 2))); assertThat(Util.distinctList(Arrays.asList(1, 2, 1)), is(Arrays.asList(1, 2))); try { List<Object> o = Util.distinctList(null); fail("expected exception, got " + o); } catch (NullPointerException ignore) { } final List<Integer> empty = ImmutableList.of(); assertThat(Util.distinctList(empty), sameInstance(empty)); final Iterable<Integer> emptyIterable = empty; assertThat(Util.distinctList(emptyIterable), sameInstance(emptyIterable)); final List<Integer> empty2 = ImmutableList.of(); assertThat(Util.distinctList(empty2), sameInstance(empty2)); final List<String> abc = ImmutableList.of("a", "b", "c"); assertThat(Util.distinctList(abc), sameInstance(abc)); final List<String> a = ImmutableList.of("a"); assertThat(Util.distinctList(a), sameInstance(a)); final List<String> cbca = ImmutableList.of("c", "b", "c", "a"); assertThat(Util.distinctList(cbca), not(sameInstance(cbca))); assertThat(Util.distinctList(cbca), is(Arrays.asList("c", "b", "a"))); final Collection<String> cbcaC = new LinkedHashSet<>(cbca); assertThat(Util.distinctList(cbcaC), not(sameInstance(cbca))); assertThat(Util.distinctList(cbcaC), is(Arrays.asList("c", "b", "a"))); }