aboutsummaryrefslogtreecommitdiff
path: root/guava-testlib/src/com/google/common/collect/testing/google/MultisetNavigationTester.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-testlib/src/com/google/common/collect/testing/google/MultisetNavigationTester.java')
-rw-r--r--guava-testlib/src/com/google/common/collect/testing/google/MultisetNavigationTester.java138
1 files changed, 65 insertions, 73 deletions
diff --git a/guava-testlib/src/com/google/common/collect/testing/google/MultisetNavigationTester.java b/guava-testlib/src/com/google/common/collect/testing/google/MultisetNavigationTester.java
index b65cd967a..9c844e87b 100644
--- a/guava-testlib/src/com/google/common/collect/testing/google/MultisetNavigationTester.java
+++ b/guava-testlib/src/com/google/common/collect/testing/google/MultisetNavigationTester.java
@@ -1,11 +1,11 @@
/*
* Copyright (C) 2011 The Guava Authors
- *
+ *
* 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
@@ -32,20 +32,19 @@ import com.google.common.collect.Multisets;
import com.google.common.collect.SortedMultiset;
import com.google.common.collect.testing.features.CollectionFeature;
import com.google.common.collect.testing.features.CollectionSize;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.NoSuchElementException;
-import org.junit.Ignore;
/**
* Tester for navigation of SortedMultisets.
- *
+ *
* @author Louis Wasserman
*/
@GwtCompatible
-@Ignore // Affects only Android test runner, which respects JUnit 4 annotations on JUnit 3 tests.
public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
private SortedMultiset<E> sortedMultiset;
private List<E> entries;
@@ -53,7 +52,9 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
private Entry<E> b;
private Entry<E> c;
- /** Used to avoid http://bugs.sun.com/view_bug.do?bug_id=6558557 */
+ /**
+ * Used to avoid http://bugs.sun.com/view_bug.do?bug_id=6558557
+ */
static <T> SortedMultiset<T> cast(Multiset<T> iterable) {
return (SortedMultiset<T>) iterable;
}
@@ -63,9 +64,8 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
super.setUp();
sortedMultiset = cast(getMultiset());
entries =
- copyToList(
- getSubjectGenerator()
- .getSampleElements(getSubjectGenerator().getCollectionSize().getNumElements()));
+ copyToList(getSubjectGenerator().getSampleElements(
+ getSubjectGenerator().getCollectionSize().getNumElements()));
Collections.sort(entries, sortedMultiset.comparator());
// some tests assume SEVERAL == 3
@@ -78,7 +78,9 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
}
}
- /** Resets the contents of sortedMultiset to have entries a, c, for the navigation tests. */
+ /**
+ * Resets the contents of sortedMultiset to have entries a, c, for the navigation tests.
+ */
@SuppressWarnings("unchecked")
// Needed to stop Eclipse whining
private void resetWithHole() {
@@ -95,8 +97,7 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
try {
sortedMultiset.elementSet().first();
fail();
- } catch (NoSuchElementException e) {
- }
+ } catch (NoSuchElementException e) {}
}
@CollectionFeature.Require(SUPPORTS_REMOVE)
@@ -108,8 +109,8 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
@CollectionSize.Require(ZERO)
public void testEmptyMultisetNearby() {
for (BoundType type : BoundType.values()) {
- assertNull(sortedMultiset.headMultiset(e0(), type).lastEntry());
- assertNull(sortedMultiset.tailMultiset(e0(), type).firstEntry());
+ assertNull(sortedMultiset.headMultiset(samples.e0, type).lastEntry());
+ assertNull(sortedMultiset.tailMultiset(samples.e0, type).firstEntry());
}
}
@@ -119,8 +120,7 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
try {
assertNull(sortedMultiset.elementSet().last());
fail();
- } catch (NoSuchElementException e) {
- }
+ } catch (NoSuchElementException e) {}
}
@CollectionFeature.Require(SUPPORTS_REMOVE)
@@ -143,11 +143,11 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
@CollectionSize.Require(ONE)
public void testSingletonMultisetNearby() {
- assertNull(sortedMultiset.headMultiset(e0(), OPEN).lastEntry());
- assertNull(sortedMultiset.tailMultiset(e0(), OPEN).lastEntry());
+ assertNull(sortedMultiset.headMultiset(samples.e0, OPEN).lastEntry());
+ assertNull(sortedMultiset.tailMultiset(samples.e0, OPEN).lastEntry());
- assertEquals(a, sortedMultiset.headMultiset(e0(), CLOSED).lastEntry());
- assertEquals(a, sortedMultiset.tailMultiset(e0(), CLOSED).firstEntry());
+ assertEquals(a, sortedMultiset.headMultiset(samples.e0, CLOSED).lastEntry());
+ assertEquals(a, sortedMultiset.tailMultiset(samples.e0, CLOSED).firstEntry());
}
@CollectionSize.Require(ONE)
@@ -180,8 +180,7 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
try {
sortedMultiset.pollFirstEntry();
fail();
- } catch (UnsupportedOperationException e) {
- }
+ } catch (UnsupportedOperationException e) {}
}
@CollectionSize.Require(SEVERAL)
@@ -236,15 +235,14 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
try {
sortedMultiset.pollLastEntry();
fail();
- } catch (UnsupportedOperationException e) {
- }
+ } catch (UnsupportedOperationException e) {}
}
@CollectionSize.Require(SEVERAL)
public void testDescendingNavigation() {
- List<Entry<E>> ascending = new ArrayList<>();
+ List<Entry<E>> ascending = new ArrayList<Entry<E>>();
Iterators.addAll(ascending, sortedMultiset.entrySet().iterator());
- List<Entry<E>> descending = new ArrayList<>();
+ List<Entry<E>> descending = new ArrayList<Entry<E>>();
Iterators.addAll(descending, sortedMultiset.descendingMultiset().entrySet().iterator());
Collections.reverse(descending);
assertEquals(ascending, descending);
@@ -254,20 +252,17 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
try {
multiset.add(entry.getElement(), entry.getCount());
fail("Expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
+ } catch (IllegalArgumentException expected) {}
try {
multiset.add(entry.getElement());
fail("Expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
+ } catch (IllegalArgumentException expected) {}
try {
multiset.addAll(Collections.singletonList(entry.getElement()));
fail("Expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
+ } catch (IllegalArgumentException expected) {}
}
void expectRemoveZero(SortedMultiset<E> multiset, Entry<E> entry) {
@@ -279,13 +274,11 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
void expectSetCountFailure(SortedMultiset<E> multiset, Entry<E> entry) {
try {
multiset.setCount(entry.getElement(), multiset.count(entry.getElement()));
- } catch (IllegalArgumentException acceptable) {
- }
+ } catch (IllegalArgumentException acceptable) {}
try {
multiset.setCount(entry.getElement(), multiset.count(entry.getElement()) + 1);
fail("Expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
+ } catch (IllegalArgumentException expected) {}
}
@CollectionSize.Require(ONE)
@@ -411,35 +404,35 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
@CollectionSize.Require(SEVERAL)
@CollectionFeature.Require(SUPPORTS_ADD)
public void testAddWithConflictingBounds() {
- testEmptyRangeSubMultisetSupportingAdd(
- sortedMultiset.subMultiset(a.getElement(), CLOSED, a.getElement(), OPEN));
- testEmptyRangeSubMultisetSupportingAdd(
- sortedMultiset.subMultiset(a.getElement(), OPEN, a.getElement(), OPEN));
- testEmptyRangeSubMultisetSupportingAdd(
- sortedMultiset.subMultiset(a.getElement(), OPEN, a.getElement(), CLOSED));
- testEmptyRangeSubMultisetSupportingAdd(
- sortedMultiset.subMultiset(b.getElement(), CLOSED, a.getElement(), CLOSED));
- testEmptyRangeSubMultisetSupportingAdd(
- sortedMultiset.subMultiset(b.getElement(), CLOSED, a.getElement(), OPEN));
- testEmptyRangeSubMultisetSupportingAdd(
- sortedMultiset.subMultiset(b.getElement(), OPEN, a.getElement(), OPEN));
+ testEmptyRangeSubMultisetSupportingAdd(sortedMultiset.subMultiset(a.getElement(), CLOSED,
+ a.getElement(), OPEN));
+ testEmptyRangeSubMultisetSupportingAdd(sortedMultiset.subMultiset(a.getElement(), OPEN,
+ a.getElement(), OPEN));
+ testEmptyRangeSubMultisetSupportingAdd(sortedMultiset.subMultiset(a.getElement(), OPEN,
+ a.getElement(), CLOSED));
+ testEmptyRangeSubMultisetSupportingAdd(sortedMultiset.subMultiset(b.getElement(), CLOSED,
+ a.getElement(), CLOSED));
+ testEmptyRangeSubMultisetSupportingAdd(sortedMultiset.subMultiset(b.getElement(), CLOSED,
+ a.getElement(), OPEN));
+ testEmptyRangeSubMultisetSupportingAdd(sortedMultiset.subMultiset(b.getElement(), OPEN,
+ a.getElement(), OPEN));
}
@CollectionSize.Require(SEVERAL)
@CollectionFeature.Require(SUPPORTS_ADD)
public void testConflictingBounds() {
- testEmptyRangeSubMultiset(
- sortedMultiset.subMultiset(a.getElement(), CLOSED, a.getElement(), OPEN));
- testEmptyRangeSubMultiset(
- sortedMultiset.subMultiset(a.getElement(), OPEN, a.getElement(), OPEN));
- testEmptyRangeSubMultiset(
- sortedMultiset.subMultiset(a.getElement(), OPEN, a.getElement(), CLOSED));
- testEmptyRangeSubMultiset(
- sortedMultiset.subMultiset(b.getElement(), CLOSED, a.getElement(), CLOSED));
- testEmptyRangeSubMultiset(
- sortedMultiset.subMultiset(b.getElement(), CLOSED, a.getElement(), OPEN));
- testEmptyRangeSubMultiset(
- sortedMultiset.subMultiset(b.getElement(), OPEN, a.getElement(), OPEN));
+ testEmptyRangeSubMultiset(sortedMultiset.subMultiset(a.getElement(), CLOSED, a.getElement(),
+ OPEN));
+ testEmptyRangeSubMultiset(sortedMultiset.subMultiset(a.getElement(), OPEN, a.getElement(),
+ OPEN));
+ testEmptyRangeSubMultiset(sortedMultiset.subMultiset(a.getElement(), OPEN, a.getElement(),
+ CLOSED));
+ testEmptyRangeSubMultiset(sortedMultiset.subMultiset(b.getElement(), CLOSED, a.getElement(),
+ CLOSED));
+ testEmptyRangeSubMultiset(sortedMultiset.subMultiset(b.getElement(), CLOSED, a.getElement(),
+ OPEN));
+ testEmptyRangeSubMultiset(sortedMultiset.subMultiset(b.getElement(), OPEN, a.getElement(),
+ OPEN));
}
public void testEmptyRangeSubMultiset(SortedMultiset<E> multiset) {
@@ -460,7 +453,7 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
}
}
- private static int totalSize(Iterable<? extends Entry<?>> entries) {
+ private int totalSize(Iterable<? extends Entry<?>> entries) {
int sum = 0;
for (Entry<?> entry : entries) {
sum += entry.getCount();
@@ -476,8 +469,8 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
}
@Override
- <E> SortedMultiset<E> subMultiset(
- SortedMultiset<E> multiset, List<Entry<E>> entries, int targetEntry) {
+ <E> SortedMultiset<E> subMultiset(SortedMultiset<E> multiset, List<Entry<E>> entries,
+ int targetEntry) {
return multiset.tailMultiset(entries.get(targetEntry).getElement(), CLOSED);
}
},
@@ -488,8 +481,8 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
}
@Override
- <E> SortedMultiset<E> subMultiset(
- SortedMultiset<E> multiset, List<Entry<E>> entries, int targetEntry) {
+ <E> SortedMultiset<E> subMultiset(SortedMultiset<E> multiset, List<Entry<E>> entries,
+ int targetEntry) {
return multiset.tailMultiset(entries.get(targetEntry).getElement(), OPEN);
}
},
@@ -500,8 +493,8 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
}
@Override
- <E> SortedMultiset<E> subMultiset(
- SortedMultiset<E> multiset, List<Entry<E>> entries, int targetEntry) {
+ <E> SortedMultiset<E> subMultiset(SortedMultiset<E> multiset, List<Entry<E>> entries,
+ int targetEntry) {
return multiset.headMultiset(entries.get(targetEntry).getElement(), CLOSED);
}
},
@@ -512,16 +505,15 @@ public class MultisetNavigationTester<E> extends AbstractMultisetTester<E> {
}
@Override
- <E> SortedMultiset<E> subMultiset(
- SortedMultiset<E> multiset, List<Entry<E>> entries, int targetEntry) {
+ <E> SortedMultiset<E> subMultiset(SortedMultiset<E> multiset, List<Entry<E>> entries,
+ int targetEntry) {
return multiset.headMultiset(entries.get(targetEntry).getElement(), OPEN);
}
};
-
abstract <E> List<Entry<E>> expectedEntries(int targetEntry, List<Entry<E>> entries);
- abstract <E> SortedMultiset<E> subMultiset(
- SortedMultiset<E> multiset, List<Entry<E>> entries, int targetEntry);
+ abstract <E> SortedMultiset<E> subMultiset(SortedMultiset<E> multiset, List<Entry<E>> entries,
+ int targetEntry);
}
private void testSubMultisetEntrySet(SubMultisetSpec spec) {