@Override public int add(@Nullable E element, int occurrences) { checkArgument( predicate.apply(element), "Element %s does not match predicate %s", element, predicate); return unfiltered.add(element, occurrences); }
@Override public void addOutEdge(E edge, N node) { super.addOutEdge(edge, node); Multiset<N> successors = getReference(successorsReference); if (successors != null) { checkState(successors.add(node)); } }
@Override public void addOutEdge(E edge, N node) { super.addOutEdge(edge, node); Multiset<N> adjacentNodes = getReference(adjacentNodesReference); if (adjacentNodes != null) { checkState(adjacentNodes.add(node)); } }
@Override public void addInEdge(E edge, N node, boolean isSelfLoop) { super.addInEdge(edge, node, isSelfLoop); Multiset<N> predecessors = getReference(predecessorsReference); if (predecessors != null) { checkState(predecessors.add(node)); } }
static Multiset<Object> populate(SerializationStreamReader reader, Multiset<Object> multiset) throws SerializationException { int distinctElements = reader.readInt(); for (int i = 0; i < distinctElements; i++) { Object element = reader.readObject(); int count = reader.readInt(); multiset.add(element, count); } return multiset; }
/** An implementation of {@link Multiset#setCount(Object, int)}. */ static <E> int setCountImpl(Multiset<E> self, E element, int count) { checkNonnegative(count, "count"); int oldCount = self.count(element); int delta = count - oldCount; if (delta > 0) { self.add(element, delta); } else if (delta < 0) { self.remove(element, -delta); } return oldCount; }
public void testMultisetsSpliterator() { Multiset<String> multiset = TreeMultiset.create(); multiset.add("a", 3); multiset.add("b", 1); multiset.add("c", 2); List<String> actualValues = Lists.newArrayList(); multiset.spliterator().forEachRemaining(actualValues::add); assertThat(multiset).containsExactly("a", "a", "a", "b", "c", "c").inOrder(); } }
@CollectionFeature.Require(absent = SUPPORTS_ADD) public void testAddUnsupported() { try { getMultiset().add(e0()); fail("Expected UnsupportedOperationException"); } catch (UnsupportedOperationException expected) { } }
@CollectionFeature.Require(SUPPORTS_ADD) public void testAddSeveralTimes() { int originalCount = getMultiset().count(e0()); assertEquals(originalCount, getMultiset().add(e0(), 2)); assertTrue(getMultiset().add(e0())); assertEquals(originalCount + 3, getMultiset().add(e0(), 1)); assertEquals(originalCount + 4, getMultiset().count(e0())); }
@CollectionSize.Require(absent = ZERO) public void testEquals_differentElements() { Multiset<E> other = HashMultiset.create(getSampleElements()); other.remove(e0()); other.add(e3()); assertFalse("multiset equals a multiset with different elements", getMultiset().equals(other)); }
@CollectionFeature.Require(SUPPORTS_ADD) public void testAddTooMany() { getMultiset().add(e3(), Integer.MAX_VALUE); try { getMultiset().add(e3()); fail(); } catch (IllegalArgumentException expected) { } assertEquals(Integer.MAX_VALUE, getMultiset().count(e3())); assertEquals(Integer.MAX_VALUE, getMultiset().size()); }
@CollectionFeature.Require(SUPPORTS_ADD) public void testAddOccurrencesZero() { int originalCount = getMultiset().count(e0()); assertEquals("old count", originalCount, getMultiset().add(e0(), 0)); expectUnchanged(); }
@CollectionFeature.Require(SUPPORTS_ADD) public void testAddMeansAddOne() { int originalCount = getMultiset().count(e0()); assertTrue(getMultiset().add(e0())); assertEquals(originalCount + 1, getMultiset().count(e0())); }
@CollectionFeature.Require(SUPPORTS_ADD) public void testAddOccurrences() { int originalCount = getMultiset().count(e0()); assertEquals("old count", originalCount, getMultiset().add(e0(), 2)); assertEquals("old count", originalCount + 2, getMultiset().count(e0())); }