@Test public void select_value() { MutableMap<String, Integer> map = this.newMapWithKeysValues("1", 1, "2", 2, "3", 3); ImmutableSet<Integer> expected = this.expectSelect(map.size()); Assert.assertEquals(expected, map.select(IntegerPredicates.isEven()).toSet()); Assert.assertEquals( expected, map.select(IntegerPredicates.isEven(), UnifiedSet.<Integer>newSet())); }
@Test public void reject_value() { ImmutableMap<String, Integer> map = this.newMapWithKeysValues("1", 1, "2", 2, "3", 3, "4", 4); MutableSet<Integer> rejected = map.reject(IntegerPredicates.isEven()).toSet(); UnifiedSet<Integer> rejectedIntoTarget = map.reject(IntegerPredicates.isEven(), UnifiedSet.<Integer>newSet()); ImmutableSet<Integer> expected = this.expectReject(map.size()); Assert.assertEquals(expected, rejected); Assert.assertEquals(expected, rejectedIntoTarget); }
@Test public void partition() { ImmutableCollection<Integer> integers = this.classUnderTest(); PartitionImmutableCollection<Integer> partition = integers.partition(IntegerPredicates.isOdd()); Assert.assertEquals(integers.select(IntegerPredicates.isOdd()), partition.getSelected()); Assert.assertEquals(integers.select(IntegerPredicates.isEven()), partition.getRejected()); }
@Test public void partition_value() { MutableMap<String, Integer> map = this.newMapWithKeysValues("1", 1, "2", 2, "3", 3); PartitionMutableCollection<Integer> partition = map.partition(IntegerPredicates.isEven()); Assert.assertEquals(this.expectSelect(map.size()), partition.getSelected().toSet()); Assert.assertEquals(this.expectReject(map.size()), partition.getRejected().toSet()); }
@Test public void remove_with_hashingStrategy() { HashingStrategy<Integer> hashingStrategy = HashingStrategies.nullSafeHashingStrategy( new HashingStrategy<Integer>() { public int computeHashCode(Integer object) { return object % 1000; } public boolean equals(Integer object1, Integer object2) { return object1.equals(object2); } }); UnifiedSetWithHashingStrategy<Integer> integers = UnifiedSetWithHashingStrategy.newSet(hashingStrategy, 2) .with(COLLISION_1, COLLISION_1 + 1000, COLLISION_1 + 2000, null); // Testing remove null from the end of the chain Assert.assertTrue(integers.remove(null)); // Adding null back and creating a deep chain. integers.with(null, COLLISION_1 + 3000, COLLISION_1 + 4000, COLLISION_1 + 5000); // Removing null from the first position of a bucket in the deep chain Assert.assertTrue(integers.remove(null)); Assert.assertFalse(integers.remove(null)); // Removing from the end of the deep chain Assert.assertTrue(integers.remove(COLLISION_1 + 4000)); // Removing from the first spot of the chain Assert.assertTrue(integers.remove(COLLISION_1)); Verify.assertSize(4, integers); // Testing removing a non existent element from a non bucket slot integers.add(2); integers.add(4); Assert.assertFalse(integers.remove(1002)); // Testing removeIf integers.removeIf(IntegerPredicates.isEven()); Verify.assertEmpty(integers); }
@Test public void selectByOccurrences() { ImmutableBag<String> strings = this.newBag().selectByOccurrences(IntPredicates.isEven()); ImmutableBag<Integer> collect = strings.collect(Integer::valueOf); Verify.assertAllSatisfy(collect, IntegerPredicates.isEven()); }
@Test public void partition() { PartitionIterable<Integer> partition = this.lazyIterable.partition(IntegerPredicates.isEven()); Assert.assertEquals(iList(2, 4, 6), partition.getSelected()); Assert.assertEquals(iList(1, 3, 5, 7), partition.getRejected()); }