/* * Copyright 2015 Goldman Sachs. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.gs.collections.impl.set.sorted.immutable; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.NoSuchElementException; import com.gs.collections.api.LazyIterable; import com.gs.collections.api.list.ImmutableList; import com.gs.collections.api.list.MutableList; import com.gs.collections.api.map.sorted.MutableSortedMap; import com.gs.collections.api.partition.set.sorted.PartitionImmutableSortedSet; import com.gs.collections.api.set.sorted.ImmutableSortedSet; import com.gs.collections.api.set.sorted.MutableSortedSet; import com.gs.collections.api.tuple.Pair; import com.gs.collections.impl.block.factory.Comparators; import com.gs.collections.impl.block.factory.Functions; import com.gs.collections.impl.block.factory.Predicates; import com.gs.collections.impl.block.factory.Predicates2; import com.gs.collections.impl.block.factory.PrimitiveFunctions; import com.gs.collections.impl.factory.Lists; import com.gs.collections.impl.factory.SortedSets; import com.gs.collections.impl.factory.Stacks; import com.gs.collections.impl.list.Interval; import com.gs.collections.impl.list.mutable.AddToList; import com.gs.collections.impl.list.mutable.FastList; import com.gs.collections.impl.list.mutable.primitive.BooleanArrayList; import com.gs.collections.impl.list.mutable.primitive.ByteArrayList; import com.gs.collections.impl.list.mutable.primitive.CharArrayList; import com.gs.collections.impl.list.mutable.primitive.DoubleArrayList; import com.gs.collections.impl.list.mutable.primitive.FloatArrayList; import com.gs.collections.impl.list.mutable.primitive.IntArrayList; import com.gs.collections.impl.list.mutable.primitive.LongArrayList; import com.gs.collections.impl.list.mutable.primitive.ShortArrayList; import com.gs.collections.impl.map.mutable.UnifiedMap; import com.gs.collections.impl.map.sorted.mutable.TreeSortedMap; import com.gs.collections.impl.set.mutable.UnifiedSet; import com.gs.collections.impl.set.sorted.mutable.TreeSortedSet; import com.gs.collections.impl.test.Verify; import com.gs.collections.impl.tuple.Tuples; import org.junit.Assert; import org.junit.Test; public class ImmutableEmptySortedSetTest extends AbstractImmutableSortedSetTestCase { @Override protected ImmutableSortedSet<Integer> classUnderTest() { return SortedSets.immutable.of(); } @Override protected ImmutableSortedSet<Integer> classUnderTest(Comparator<? super Integer> comparator) { return SortedSets.immutable.of(comparator); } @Test public void testContainsAll() { Assert.assertTrue(this.classUnderTest().containsAllIterable(UnifiedSet.<Integer>newSet())); Assert.assertFalse(this.classUnderTest().containsAllIterable(UnifiedSet.newSetWith(1))); } @Test public void testNewSortedSet() { Assert.assertSame(SortedSets.immutable.of(), SortedSets.immutable.ofAll(FastList.newList())); Assert.assertSame(SortedSets.immutable.of(), SortedSets.immutable.ofSortedSet(TreeSortedSet.newSet())); Assert.assertNotSame(SortedSets.immutable.of(), SortedSets.immutable.ofSortedSet(TreeSortedSet.newSet(Comparators.reverseNaturalOrder()))); } @Override @Test public void newWith() { Assert.assertEquals(UnifiedSet.newSetWith(1), this.classUnderTest().newWith(1)); Assert.assertSame(SortedSets.immutable.empty(), SortedSets.immutable.of(FastList.newList().toArray())); Assert.assertEquals(SortedSets.immutable.empty(), SortedSets.immutable.of(Comparators.naturalOrder(), FastList.newList().toArray())); Assert.assertEquals(Comparators.<Integer>reverseNaturalOrder(), this.classUnderTest(Comparators.<Integer>reverseNaturalOrder()).newWith(1).comparator()); Verify.assertSortedSetsEqual(TreeSortedSet.newSetWith(Comparators.<Integer>reverseNaturalOrder(), 1, 2), this.classUnderTest(Comparators.<Integer>reverseNaturalOrder()).newWith(1).newWith(2).castToSortedSet()); } @Override @Test public void newWithout() { Assert.assertEquals(SortedSets.immutable.empty(), SortedSets.immutable.empty().newWithout(1)); Assert.assertSame(SortedSets.immutable.empty(), SortedSets.immutable.empty().newWithout(1)); Assert.assertEquals(SortedSets.immutable.empty(), SortedSets.immutable.empty().newWithoutAll(Interval.oneTo(3))); Assert.assertSame(SortedSets.immutable.empty(), SortedSets.immutable.empty().newWithoutAll(Interval.oneTo(3))); Assert.assertEquals(Comparators.<Integer>reverseNaturalOrder(), this.classUnderTest(Comparators.<Integer>reverseNaturalOrder()).newWithout(1).comparator()); } @Override @Test public void detect() { Assert.assertNull(this.classUnderTest().detect(Integer.valueOf(1)::equals)); } @Override @Test public void detectWith() { Assert.assertNull(this.classUnderTest().detectWith(Object::equals, Integer.valueOf(1))); } @Override @Test public void detectIndex() { //Any predicate will result in -1 Assert.assertEquals(Integer.valueOf(-1), Integer.valueOf(this.classUnderTest().detectIndex(Predicates.alwaysTrue()))); } @Override @Test public void corresponds() { //Evaluates true for all empty sets and false for all non-empty sets ImmutableSortedSet<Integer> integers1 = this.classUnderTest(); Assert.assertTrue(integers1.corresponds(Lists.mutable.of(), Predicates2.alwaysFalse())); ImmutableSortedSet<Integer> integers2 = integers1.newWith(Integer.valueOf(1)); Assert.assertFalse(integers2.corresponds(integers1, Predicates2.alwaysTrue())); } @Override @Test public void allSatisfy() { Assert.assertTrue(this.classUnderTest().allSatisfy(Integer.class::isInstance)); } @Override @Test public void anySatisfy() { Assert.assertFalse(this.classUnderTest().anySatisfy(Integer.class::isInstance)); } @Override @Test(expected = NoSuchElementException.class) public void getFirst() { this.classUnderTest().getFirst(); } @Override @Test(expected = NoSuchElementException.class) public void getLast() { this.classUnderTest().getLast(); } @Override @Test public void isEmpty() { Verify.assertIterableEmpty(this.classUnderTest()); Assert.assertFalse(this.classUnderTest().notEmpty()); } @Override @Test(expected = NoSuchElementException.class) public void min() { this.classUnderTest().min(Integer::compareTo); } @Override @Test(expected = NoSuchElementException.class) public void max() { this.classUnderTest().max(Integer::compareTo); } @Override @Test(expected = NoSuchElementException.class) public void min_without_comparator() { this.classUnderTest().min(); } @Override @Test(expected = NoSuchElementException.class) public void max_without_comparator() { this.classUnderTest().max(); } @Override @Test(expected = NoSuchElementException.class) public void minBy() { this.classUnderTest().minBy(String::valueOf); } @Override @Test(expected = NoSuchElementException.class) public void maxBy() { this.classUnderTest().maxBy(String::valueOf); } @Override @Test public void zip() { ImmutableSortedSet<Integer> immutableSet = this.classUnderTest(Comparators.reverseNaturalOrder()); ImmutableList<Pair<Integer, Integer>> pairs = immutableSet.zip(Interval.oneTo(10)); Assert.assertEquals(FastList.<Pair<Integer, Integer>>newList(), pairs); Assert.assertEquals( UnifiedSet.<Pair<Integer, Integer>>newSet(), immutableSet.zip(Interval.oneTo(10), UnifiedSet.<Pair<Integer, Integer>>newSet())); ImmutableList<Pair<Integer, Integer>> pairsWithExtras = pairs.newWith(Tuples.pair(1, 5)).newWith(Tuples.pair(5, 1)); Assert.assertEquals(FastList.newListWith(Tuples.pair(1, 5), Tuples.pair(5, 1)), pairsWithExtras.toList()); } @Override @Test public void zipWithIndex() { ImmutableSortedSet<Integer> set = this.classUnderTest(); ImmutableSortedSet<Pair<Integer, Integer>> pairs = set.zipWithIndex(); Assert.assertEquals(UnifiedSet.<Pair<Integer, Integer>>newSet(), pairs); Assert.assertEquals( UnifiedSet.<Pair<Integer, Integer>>newSet(), set.zipWithIndex(UnifiedSet.<Pair<Integer, Integer>>newSet())); Assert.assertNotNull(pairs.comparator()); ImmutableSortedSet<Pair<Integer, Integer>> pairsWithExtras = pairs.newWith(Tuples.pair(1, 5)).newWith(Tuples.pair(5, 1)); Assert.assertEquals(FastList.newListWith(Tuples.pair(1, 5), Tuples.pair(5, 1)), pairsWithExtras.toList()); } @Test public void chunk() { Verify.assertIterableEmpty(this.classUnderTest().chunk(2)); } @Override @Test(expected = IllegalArgumentException.class) public void chunk_zero_throws() { this.classUnderTest().chunk(0); } @Override @Test public void chunk_large_size() { Verify.assertIterableEmpty(this.classUnderTest().chunk(10)); } @Override @Test public void union() { Verify.assertSortedSetsEqual( TreeSortedSet.newSetWith("a", "b", "c"), SortedSets.immutable.<String>empty().union(UnifiedSet.newSetWith("a", "b", "c")).castToSortedSet()); Verify.assertListsEqual(FastList.newListWith(3, 2, 1), this.classUnderTest(Comparators.<Integer>reverseNaturalOrder()).union(UnifiedSet.newSetWith(1, 2, 3)).toList()); } @Override @Test public void unionInto() { Assert.assertEquals( UnifiedSet.newSetWith("a", "b", "c"), SortedSets.immutable.<String>empty().unionInto(UnifiedSet.newSetWith("a", "b", "c"), UnifiedSet.<String>newSet())); } @Override @Test public void intersect() { Assert.assertEquals( UnifiedSet.<String>newSet(), SortedSets.immutable.<String>empty().intersect(UnifiedSet.newSetWith("1", "2", "3"))); Assert.assertEquals(Comparators.<Integer>reverseNaturalOrder(), this.classUnderTest(Comparators.<Integer>reverseNaturalOrder()).intersect(UnifiedSet.newSetWith(1, 2, 3)).comparator()); } @Override @Test public void intersectInto() { Assert.assertEquals( UnifiedSet.<String>newSet(), SortedSets.immutable.<String>empty().intersectInto(UnifiedSet.newSetWith("1", "2", "3"), UnifiedSet.<String>newSet())); } @Override @Test public void difference() { Assert.assertEquals( UnifiedSet.<String>newSet(), SortedSets.immutable.<String>empty().difference(UnifiedSet.newSetWith("not present"))); Assert.assertEquals(Comparators.<Integer>reverseNaturalOrder(), this.classUnderTest(Comparators.<Integer>reverseNaturalOrder()).difference(UnifiedSet.newSetWith(1, 2, 3)).comparator()); } @Override @Test public void differenceInto() { ImmutableSortedSet<String> set = SortedSets.immutable.empty(); Assert.assertEquals( UnifiedSet.<String>newSet(), set.differenceInto(UnifiedSet.newSetWith("not present"), UnifiedSet.<String>newSet())); Verify.assertListsEqual(FastList.newListWith(3, 2, 1), this.classUnderTest(Comparators.<Integer>reverseNaturalOrder()).union(UnifiedSet.newSetWith(1, 2, 3)).toList()); } @Override @Test public void symmetricDifference() { Assert.assertEquals( UnifiedSet.newSetWith("not present"), SortedSets.immutable.<String>empty().symmetricDifference(UnifiedSet.newSetWith("not present"))); Verify.assertSortedSetsEqual(TreeSortedSet.newSetWith(Comparators.<Integer>reverseNaturalOrder(), 1, 2, 3, 4), SortedSets.immutable.of(Comparators.<Integer>reverseNaturalOrder()).symmetricDifference(UnifiedSet.newSetWith(1, 3, 2, 4)).castToSortedSet()); } @Override @Test public void symmetricDifferenceInto() { Assert.assertEquals( UnifiedSet.newSetWith("not present"), SortedSets.immutable.<String>empty().symmetricDifferenceInto(UnifiedSet.newSetWith("not present"), UnifiedSet.<String>newSet())); } @Override @Test public void equalsAndHashCode() { ImmutableSortedSet<Integer> immutable = this.classUnderTest(); Verify.assertEqualsAndHashCode(UnifiedSet.newSet(), immutable); Verify.assertPostSerializedIdentity(immutable); Assert.assertNotEquals(Lists.mutable.empty(), immutable); ImmutableSortedSet<Integer> setWithComparator = this.classUnderTest(Comparators.reverseNaturalOrder()); Verify.assertEqualsAndHashCode(UnifiedSet.newSet(), setWithComparator); Verify.assertPostSerializedEqualsAndHashCode(setWithComparator); } @Override @Test public void contains() { ImmutableSortedSet<Integer> set = this.classUnderTest(); Verify.assertNotContains(Integer.valueOf(1), set.castToSortedSet()); Verify.assertEmpty(set.castToSortedSet()); Verify.assertThrows(NullPointerException.class, () -> set.contains(null)); } @Override @Test public void containsAllIterable() { ImmutableSortedSet<Integer> set = this.classUnderTest(); Assert.assertFalse(set.containsAllIterable(FastList.newListWith(1, 2, 3))); Assert.assertTrue(set.containsAllIterable(set)); } @Override @Test public void iterator() { Iterator<Integer> iterator = this.classUnderTest().iterator(); Assert.assertFalse(iterator.hasNext()); Verify.assertThrows(NoSuchElementException.class, (Runnable) iterator::next); } @Override @Test public void select() { ImmutableSortedSet<Integer> set = this.classUnderTest(Collections.<Integer>reverseOrder()); Verify.assertEmpty(set.castToSortedSet()); Verify.assertEmpty(set.select(Predicates.lessThan(4)).castToSortedSet()); Assert.assertEquals(Collections.<Integer>reverseOrder(), set.select(Predicates.lessThan(3)).comparator()); } @Override @Test public void selectWith() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Collections.<Integer>reverseOrder()); Verify.assertEmpty(integers.selectWith(Predicates2.<Integer>lessThan(), 4).castToSortedSet()); Assert.assertEquals(Collections.<Integer>reverseOrder(), integers.selectWith(Predicates2.<Integer>lessThan(), 3).comparator()); } @Override @Test public void reject() { ImmutableSortedSet<Integer> set = this.classUnderTest(Collections.<Integer>reverseOrder()); Verify.assertEmpty(set.castToSortedSet()); Verify.assertEmpty(set.reject(Predicates.lessThan(3)).castToSortedSet()); Assert.assertEquals(Collections.<Integer>reverseOrder(), set.reject(Predicates.lessThan(3)).comparator()); } @Override @Test public void rejectWith() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Collections.<Integer>reverseOrder()); Verify.assertEmpty(integers.rejectWith(Predicates2.<Integer>greaterThanOrEqualTo(), 4).castToSortedSet()); Assert.assertEquals(Collections.<Integer>reverseOrder(), integers.rejectWith(Predicates2.<Integer>greaterThanOrEqualTo(), 4).comparator()); } @Override @Test public void partition() { ImmutableSortedSet<Integer> set = this.classUnderTest(Collections.<Integer>reverseOrder()); Verify.assertEmpty(set.castToSortedSet()); PartitionImmutableSortedSet<Integer> partition = set.partition(Predicates.lessThan(4)); Verify.assertIterableEmpty(partition.getSelected()); Verify.assertIterableEmpty(partition.getRejected()); Assert.assertEquals(Collections.<Integer>reverseOrder(), partition.getSelected().comparator()); Assert.assertEquals(Collections.<Integer>reverseOrder(), partition.getRejected().comparator()); } @Override @Test public void partitionWith() { ImmutableSortedSet<Integer> set = this.classUnderTest(Collections.<Integer>reverseOrder()); Verify.assertEmpty(set.castToSortedSet()); PartitionImmutableSortedSet<Integer> partition = set.partitionWith(Predicates2.<Integer>lessThan(), 4); Verify.assertIterableEmpty(partition.getSelected()); Verify.assertIterableEmpty(partition.getRejected()); Assert.assertEquals(Collections.<Integer>reverseOrder(), partition.getSelected().comparator()); Assert.assertEquals(Collections.<Integer>reverseOrder(), partition.getRejected().comparator()); } @Override @Test public void collect() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Collections.<Integer>reverseOrder()); Verify.assertIterableEmpty(integers.collect(Functions.getIntegerPassThru())); } @Override @Test public void collectWith() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Collections.<Integer>reverseOrder()); Verify.assertIterableEmpty(integers.collectWith((value, parameter) -> value / parameter, 1)); } @Override @Test public void collectToTarget() { ImmutableSortedSet<Integer> integers = this.classUnderTest(); ImmutableSortedSet<Integer> collect = integers.collect(Functions.getIntegerPassThru(), TreeSortedSet.newSet(Collections.<Integer>reverseOrder())).toImmutable(); Verify.assertIterableEmpty(collect); Assert.assertEquals(Collections.<Integer>reverseOrder(), collect.comparator()); } @Override @Test public void partitionWhile() { ImmutableSortedSet<Integer> set = this.classUnderTest(Collections.<Integer>reverseOrder()); Verify.assertEmpty(set.castToSortedSet()); PartitionImmutableSortedSet<Integer> partition = set.partitionWhile(Predicates.lessThan(4)); Verify.assertIterableEmpty(partition.getSelected()); Verify.assertIterableEmpty(partition.getRejected()); Assert.assertEquals(Collections.<Integer>reverseOrder(), partition.getSelected().comparator()); Assert.assertEquals(Collections.<Integer>reverseOrder(), partition.getRejected().comparator()); } @Override @Test public void takeWhile() { ImmutableSortedSet<Integer> set = this.classUnderTest(Collections.<Integer>reverseOrder()); Verify.assertEmpty(set.castToSortedSet()); ImmutableSortedSet<Integer> take = set.takeWhile(Predicates.lessThan(4)); Verify.assertIterableEmpty(take); Assert.assertEquals(Collections.<Integer>reverseOrder(), take.comparator()); } @Override @Test public void dropWhile() { ImmutableSortedSet<Integer> set = this.classUnderTest(Collections.<Integer>reverseOrder()); Verify.assertEmpty(set.castToSortedSet()); ImmutableSortedSet<Integer> drop = set.dropWhile(Predicates.lessThan(4)); Verify.assertIterableEmpty(drop); Assert.assertEquals(Collections.<Integer>reverseOrder(), drop.comparator()); } @Override @Test public void selectInstancesOf() { ImmutableSortedSet<Integer> set = this.classUnderTest(Collections.<Integer>reverseOrder()); Verify.assertEmpty(set.castToSortedSet()); Verify.assertEmpty(set.selectInstancesOf(Integer.class).castToSortedSet()); Assert.assertEquals(Collections.<Double>reverseOrder(), set.selectInstancesOf(Double.class).comparator()); } @Override @Test public void toSortedSet() { ImmutableSortedSet<Integer> set = this.classUnderTest(Collections.<Integer>reverseOrder()); Assert.assertNull(set.toSortedSet().comparator()); Verify.assertEmpty(set.toSortedSet()); } @Override @Test public void toSortedSetWithComparator() { ImmutableSortedSet<Integer> set = this.classUnderTest(); Assert.assertEquals(Collections.<Integer>reverseOrder(), set.toSortedSet(Collections.<Integer>reverseOrder()).comparator()); Verify.assertEmpty(set.toSortedSet()); } @Test(expected = NoSuchElementException.class) public void first() { this.classUnderTest().castToSortedSet().first(); } @Test(expected = NoSuchElementException.class) public void last() { this.classUnderTest().castToSortedSet().last(); } @Test public void compareTo() { Assert.assertEquals(0, (long) this.classUnderTest().compareTo(this.classUnderTest())); Assert.assertEquals(-1, this.classUnderTest().compareTo(TreeSortedSet.newSetWith(1))); Assert.assertEquals(-4, this.classUnderTest().compareTo(TreeSortedSet.newSetWith(1, 2, 3, 4))); } @Override @Test public void cartesianProduct() { LazyIterable<Pair<Integer, Integer>> emptyProduct = this.classUnderTest().cartesianProduct(SortedSets.immutable.of(1, 2, 3)); Verify.assertEmpty(emptyProduct.toList()); LazyIterable<Pair<Integer, Integer>> empty2 = this.classUnderTest().cartesianProduct(TreeSortedSet.<Integer>newSet()); Verify.assertEmpty(empty2.toList()); } @Override @Test public void indexOf() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Comparators.<Integer>reverseNaturalOrder()); Assert.assertEquals(-1, integers.indexOf(4)); Assert.assertEquals(-1, integers.indexOf(3)); Assert.assertEquals(-1, integers.indexOf(2)); Assert.assertEquals(-1, integers.indexOf(1)); Assert.assertEquals(-1, integers.indexOf(0)); Assert.assertEquals(-1, integers.indexOf(5)); } @Override @Test public void forEachFromTo() { MutableSortedSet<Integer> result = TreeSortedSet.<Integer>newSet(Comparators.reverseNaturalOrder()); ImmutableSortedSet<Integer> integers = this.classUnderTest(Comparators.<Integer>reverseNaturalOrder()); Verify.assertThrows(IndexOutOfBoundsException.class, () -> integers.forEach(-1, 0, result::add)); Verify.assertThrows(IndexOutOfBoundsException.class, () -> integers.forEach(0, -1, result::add)); Verify.assertThrows(IndexOutOfBoundsException.class, () -> integers.forEach(0, 0, result::add)); } @Override @Test public void forEachWithIndexWithFromTo() { MutableList<Integer> result = Lists.mutable.empty(); ImmutableSortedSet<Integer> integers = this.classUnderTest(Comparators.<Integer>reverseNaturalOrder()); Verify.assertThrows(IndexOutOfBoundsException.class, () -> integers.forEachWithIndex(-1, 0, new AddToList(result))); Verify.assertThrows(IndexOutOfBoundsException.class, () -> integers.forEachWithIndex(0, -1, new AddToList(result))); Verify.assertThrows(IndexOutOfBoundsException.class, () -> integers.forEachWithIndex(0, 0, new AddToList(result))); } @Override public void toStack() { ImmutableSortedSet<Integer> set = this.classUnderTest(Comparators.reverseNaturalOrder()); Assert.assertEquals(Stacks.mutable.with(), set.toStack()); } @Override @Test public void powerSet() { Verify.assertSize(1, this.classUnderTest().powerSet().castToSortedSet()); Assert.assertEquals(SortedSets.immutable.of(SortedSets.immutable.<Integer>empty()), this.classUnderTest().powerSet()); } @Override @Test public void toSortedMap() { MutableSortedMap<Integer, Integer> map = this.classUnderTest().toSortedMap(Functions.getIntegerPassThru(), Functions.getIntegerPassThru()); Verify.assertEmpty(map); Verify.assertInstanceOf(TreeSortedMap.class, map); } @Override @Test public void toSortedMap_with_comparator() { MutableSortedMap<Integer, Integer> map = this.classUnderTest().toSortedMap(Comparators.<Integer>reverseNaturalOrder(), Functions.getIntegerPassThru(), Functions.getIntegerPassThru()); Verify.assertEmpty(map); Verify.assertInstanceOf(TreeSortedMap.class, map); Assert.assertEquals(Comparators.<Integer>reverseNaturalOrder(), map.comparator()); } @Override @Test(expected = UnsupportedOperationException.class) public void subSet() { this.classUnderTest().castToSortedSet().subSet(1, 4); } @Override @Test(expected = UnsupportedOperationException.class) public void headSet() { this.classUnderTest().castToSortedSet().headSet(4); } @Override @Test(expected = UnsupportedOperationException.class) public void tailSet() { this.classUnderTest().castToSortedSet().tailSet(1); } @Override @Test public void collectBoolean() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Collections.<Integer>reverseOrder()); Assert.assertEquals(BooleanArrayList.newListWith(), integers.collectBoolean(PrimitiveFunctions.integerIsPositive())); } @Override @Test public void collectByte() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Collections.<Integer>reverseOrder()); Assert.assertEquals(ByteArrayList.newListWith(), integers.collectByte(PrimitiveFunctions.unboxIntegerToByte())); } @Override @Test public void collectChar() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Collections.<Integer>reverseOrder()); Assert.assertEquals(CharArrayList.newListWith(), integers.collectChar(integer -> (char) (integer.intValue() + 64))); } @Override @Test public void collectDouble() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Collections.<Integer>reverseOrder()); Assert.assertEquals(DoubleArrayList.newListWith(), integers.collectDouble(PrimitiveFunctions.unboxIntegerToDouble())); } @Override @Test public void collectFloat() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Collections.<Integer>reverseOrder()); Assert.assertEquals(FloatArrayList.newListWith(), integers.collectFloat(PrimitiveFunctions.unboxIntegerToFloat())); } @Override @Test public void collectInt() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Collections.<Integer>reverseOrder()); Assert.assertEquals(IntArrayList.newListWith(), integers.collectInt(PrimitiveFunctions.unboxIntegerToInt())); } @Override @Test public void collectLong() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Collections.<Integer>reverseOrder()); Assert.assertEquals(LongArrayList.newListWith(), integers.collectLong(PrimitiveFunctions.unboxIntegerToLong())); } @Override @Test public void collectShort() { ImmutableSortedSet<Integer> integers = this.classUnderTest(Collections.<Integer>reverseOrder()); Assert.assertEquals(ShortArrayList.newListWith(), integers.collectShort(PrimitiveFunctions.unboxIntegerToShort())); } @Override @Test public void groupByUniqueKey_throws() { super.groupByUniqueKey_throws(); Assert.assertEquals(UnifiedMap.newMap().toImmutable(), this.classUnderTest().groupByUniqueKey(id -> id)); } @Override @Test public void groupByUniqueKey_target_throws() { super.groupByUniqueKey_target_throws(); Assert.assertEquals(UnifiedMap.newMap(), this.classUnderTest().groupByUniqueKey(id -> id, UnifiedMap.<Integer, Integer>newMap())); } @Override @Test public void take() { Assert.assertEquals(this.classUnderTest(), this.classUnderTest().take(2)); } @Override @Test public void drop() { Assert.assertEquals(this.classUnderTest(), this.classUnderTest().drop(2)); } }