@Override <E> SortedMultiset<E> subMultiset( SortedMultiset<E> multiset, List<Entry<E>> entries, int targetEntry) { return multiset.headMultiset(entries.get(targetEntry).getElement(), OPEN); } };
@Override <E> SortedMultiset<E> subMultiset( SortedMultiset<E> multiset, List<Entry<E>> entries, int targetEntry) { return multiset.headMultiset(entries.get(targetEntry).getElement(), CLOSED); } },
/** * A sensible definition of {@link #subMultiset(Object, BoundType, Object, BoundType)} in terms of * {@link #headMultiset(Object, BoundType) headMultiset} and {@link #tailMultiset(Object, * BoundType) tailMultiset}. * * <p>If you override either of these methods, you may wish to override {@link * #subMultiset(Object, BoundType, Object, BoundType)} to forward to this implementation. */ protected SortedMultiset<E> standardSubMultiset( E lowerBound, BoundType lowerBoundType, E upperBound, BoundType upperBoundType) { return tailMultiset(lowerBound, lowerBoundType).headMultiset(upperBound, upperBoundType); }
@Override public SortedMultiset<E> subMultiset( @Nullable E fromElement, BoundType fromBoundType, @Nullable E toElement, BoundType toBoundType) { // These are checked elsewhere, but NullPointerTester wants them checked eagerly. checkNotNull(fromBoundType); checkNotNull(toBoundType); return tailMultiset(fromElement, fromBoundType).headMultiset(toElement, toBoundType); }
@Override public NavigableSet<E> headSet(E toElement, boolean inclusive) { return new NavigableElementSet<E>( multiset().headMultiset(toElement, BoundType.forBoolean(inclusive))); }
@CollectionSize.Require(SEVERAL) public void testLower() { resetWithHole(); assertEquals(null, sortedMultiset.headMultiset(a.getElement(), OPEN).lastEntry()); assertEquals(a, sortedMultiset.headMultiset(b.getElement(), OPEN).lastEntry()); assertEquals(a, sortedMultiset.headMultiset(c.getElement(), OPEN).lastEntry()); }
@CollectionSize.Require(SEVERAL) public void testFloor() { resetWithHole(); assertEquals(a, sortedMultiset.headMultiset(a.getElement(), CLOSED).lastEntry()); assertEquals(a, sortedMultiset.headMultiset(b.getElement(), CLOSED).lastEntry()); assertEquals(c, sortedMultiset.headMultiset(c.getElement(), CLOSED).lastEntry()); }
@CollectionSize.Require(ONE) @CollectionFeature.Require({SUPPORTS_ADD, SUPPORTS_REMOVE}) public void testSetCountOutOfHeadBoundsOne() { expectSetCountFailure(sortedMultiset.headMultiset(a.getElement(), OPEN), a); }
@CollectionSize.Require(ONE) @CollectionFeature.Require(SUPPORTS_ADD) public void testAddOutOfHeadBoundsOne() { expectAddFailure(sortedMultiset.headMultiset(a.getElement(), OPEN), a); }
@CollectionSize.Require(ONE) @CollectionFeature.Require(SUPPORTS_REMOVE) public void testRemoveOutOfHeadBoundsOne() { expectRemoveZero(sortedMultiset.headMultiset(a.getElement(), OPEN), a); }
@CollectionSize.Require(ONE) public void testSingletonMultisetNearby() { assertNull(sortedMultiset.headMultiset(e0(), OPEN).lastEntry()); assertNull(sortedMultiset.tailMultiset(e0(), OPEN).lastEntry()); assertEquals(a, sortedMultiset.headMultiset(e0(), CLOSED).lastEntry()); assertEquals(a, sortedMultiset.tailMultiset(e0(), CLOSED).firstEntry()); }
@CollectionSize.Require(SEVERAL) @CollectionFeature.Require(SUPPORTS_REMOVE) public void testClearTailClosedEntrySet() { List<Entry<E>> expected = copyToList(sortedMultiset.headMultiset(b.getElement(), OPEN).entrySet()); sortedMultiset.tailMultiset(b.getElement(), CLOSED).entrySet().clear(); assertEquals(expected, copyToList(sortedMultiset.entrySet())); }
@CollectionSize.Require(SEVERAL) @CollectionFeature.Require(SUPPORTS_REMOVE) public void testClearHeadClosedEntrySet() { List<Entry<E>> expected = copyToList(sortedMultiset.tailMultiset(b.getElement(), OPEN).entrySet()); sortedMultiset.headMultiset(b.getElement(), CLOSED).entrySet().clear(); assertEquals(expected, copyToList(sortedMultiset.entrySet())); } }
@CollectionSize.Require(SEVERAL) @CollectionFeature.Require(SUPPORTS_REMOVE) public void testClearTailOpenEntrySet() { List<Entry<E>> expected = copyToList(sortedMultiset.headMultiset(b.getElement(), CLOSED).entrySet()); sortedMultiset.tailMultiset(b.getElement(), OPEN).entrySet().clear(); assertEquals(expected, copyToList(sortedMultiset.entrySet())); }
@CollectionSize.Require(SEVERAL) @CollectionFeature.Require(SUPPORTS_REMOVE) public void testClearHeadOpenEntrySet() { List<Entry<E>> expected = copyToList(sortedMultiset.tailMultiset(b.getElement(), CLOSED).entrySet()); sortedMultiset.headMultiset(b.getElement(), OPEN).entrySet().clear(); assertEquals(expected, copyToList(sortedMultiset.entrySet())); }
@CollectionSize.Require(ZERO) public void testEmptyMultisetNearby() { for (BoundType type : BoundType.values()) { assertNull(sortedMultiset.headMultiset(e0(), type).lastEntry()); assertNull(sortedMultiset.tailMultiset(e0(), type).firstEntry()); } }
@CollectionSize.Require(SEVERAL) @CollectionFeature.Require(SUPPORTS_REMOVE) public void testClearHeadClosed() { List<Entry<E>> expected = copyToList(sortedMultiset.tailMultiset(b.getElement(), OPEN).entrySet()); sortedMultiset.headMultiset(b.getElement(), CLOSED).clear(); assertEquals(expected, copyToList(sortedMultiset.entrySet())); }
@CollectionSize.Require(SEVERAL) @CollectionFeature.Require(SUPPORTS_REMOVE) public void testClearTailOpen() { List<Entry<E>> expected = copyToList(sortedMultiset.headMultiset(b.getElement(), CLOSED).entrySet()); sortedMultiset.tailMultiset(b.getElement(), OPEN).clear(); assertEquals(expected, copyToList(sortedMultiset.entrySet())); }
@CollectionSize.Require(SEVERAL) @CollectionFeature.Require(SUPPORTS_REMOVE) public void testClearTailClosed() { List<Entry<E>> expected = copyToList(sortedMultiset.headMultiset(b.getElement(), OPEN).entrySet()); sortedMultiset.tailMultiset(b.getElement(), CLOSED).clear(); assertEquals(expected, copyToList(sortedMultiset.entrySet())); }
@CollectionSize.Require(SEVERAL) @CollectionFeature.Require(SUPPORTS_REMOVE) public void testClearHeadOpen() { List<Entry<E>> expected = copyToList(sortedMultiset.tailMultiset(b.getElement(), CLOSED).entrySet()); sortedMultiset.headMultiset(b.getElement(), OPEN).clear(); assertEquals(expected, copyToList(sortedMultiset.entrySet())); }