You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2020/11/27 19:33:07 UTC
[commons-collections] 01/06: Sort members.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-collections.git
commit 7c4a4994cbb58313f8d6f7a39ec79b435f3b8b93
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Nov 26 10:15:07 2020 -0500
Sort members.
---
.../collections4/map/ReferenceIdentityMapTest.java | 228 ++++++++++-----------
1 file changed, 114 insertions(+), 114 deletions(-)
diff --git a/src/test/java/org/apache/commons/collections4/map/ReferenceIdentityMapTest.java b/src/test/java/org/apache/commons/collections4/map/ReferenceIdentityMapTest.java
index 1ccc8ec..60791fa 100644
--- a/src/test/java/org/apache/commons/collections4/map/ReferenceIdentityMapTest.java
+++ b/src/test/java/org/apache/commons/collections4/map/ReferenceIdentityMapTest.java
@@ -37,35 +37,44 @@ public class ReferenceIdentityMapTest<K, V> extends AbstractIterableMapTest<K, V
private static final Integer I2A = new Integer(2);
private static final Integer I2B = new Integer(2);
- public ReferenceIdentityMapTest(final String testName) {
- super(testName);
+ @SuppressWarnings("unused")
+ private static void gc() {
+ try {
+ // trigger GC
+ final byte[][] tooLarge = new byte[1000000000][1000000000];
+ fail("you have too much RAM");
+ } catch (final OutOfMemoryError ex) {
+ System.gc(); // ignore
+ }
}
public static Test suite() {
return BulkTest.makeSuite(ReferenceIdentityMapTest.class);
}
- @Override
- public ReferenceIdentityMap<K, V> makeObject() {
- return new ReferenceIdentityMap<>(ReferenceStrength.WEAK, ReferenceStrength.WEAK);
- }
+ WeakReference<K> keyReference;
- @Override
- public Map<K, V> makeConfirmedMap() {
- // Testing against another [collections] class generally isn't a good idea,
- // but the closest alternative is IdentityHashMap, which propagates reference-equality down to keySet and values.
- // arguably ReferenceIdentityMap should do the same but that's a later discussion.
- return new IdentityMap<>();
- }
+ WeakReference<V> valueReference;
- @Override
- public boolean isAllowNullKey() {
- return false;
+ public ReferenceIdentityMapTest(final String testName) {
+ super(testName);
}
- @Override
- public boolean isAllowNullValue() {
- return false;
+ @SuppressWarnings("unchecked")
+ private Map<K, V> buildRefMap() {
+ final K key = (K) new Object();
+ final V value = (V) new Object();
+
+ keyReference = new WeakReference<>(key);
+ valueReference = new WeakReference<>(value);
+
+ final Map<K, V> testMap = new ReferenceIdentityMap<>(ReferenceStrength.WEAK, ReferenceStrength.HARD, true);
+ testMap.put(key, value);
+
+ assertEquals("In map", value, testMap.get(key));
+ assertNotNull("Weak reference released early (1)", keyReference.get());
+ assertNotNull("Weak reference released early (2)", valueReference.get());
+ return testMap;
}
@Override
@@ -84,81 +93,22 @@ public class ReferenceIdentityMapTest<K, V> extends AbstractIterableMapTest<K, V
// "src/test/resources/data/test/ReferenceIdentityMap.fullCollection.version4.obj");
// }
- //-----------------------------------------------------------------------
- @SuppressWarnings("unchecked")
- public void testBasics() {
- final IterableMap<K, V> map = new ReferenceIdentityMap<>(ReferenceStrength.HARD, ReferenceStrength.HARD);
- assertEquals(0, map.size());
-
- map.put((K) I1A, (V) I2A);
- assertEquals(1, map.size());
- assertSame(I2A, map.get(I1A));
- assertSame(null, map.get(I1B));
- assertEquals(true, map.containsKey(I1A));
- assertEquals(false, map.containsKey(I1B));
- assertEquals(true, map.containsValue(I2A));
- assertEquals(false, map.containsValue(I2B));
-
- map.put((K) I1A, (V) I2B);
- assertEquals(1, map.size());
- assertSame(I2B, map.get(I1A));
- assertSame(null, map.get(I1B));
- assertEquals(true, map.containsKey(I1A));
- assertEquals(false, map.containsKey(I1B));
- assertEquals(false, map.containsValue(I2A));
- assertEquals(true, map.containsValue(I2B));
-
- map.put((K) I1B, (V) I2B);
- assertEquals(2, map.size());
- assertSame(I2B, map.get(I1A));
- assertSame(I2B, map.get(I1B));
- assertEquals(true, map.containsKey(I1A));
- assertEquals(true, map.containsKey(I1B));
- assertEquals(false, map.containsValue(I2A));
- assertEquals(true, map.containsValue(I2B));
+ @Override
+ public boolean isAllowNullKey() {
+ return false;
}
- //-----------------------------------------------------------------------
- @SuppressWarnings("unchecked")
- public void testHashEntry() {
- final IterableMap<K, V> map = new ReferenceIdentityMap<>(ReferenceStrength.HARD, ReferenceStrength.HARD);
-
- map.put((K) I1A, (V) I2A);
- map.put((K) I1B, (V) I2A);
-
- final Map.Entry<K, V> entry1 = map.entrySet().iterator().next();
- final Iterator<Map.Entry<K, V>> it = map.entrySet().iterator();
- final Map.Entry<K, V> entry2 = it.next();
- final Map.Entry<K, V> entry3 = it.next();
-
- assertEquals(true, entry1.equals(entry2));
- assertEquals(true, entry2.equals(entry1));
- assertEquals(false, entry1.equals(entry3));
+ @Override
+ public boolean isAllowNullValue() {
+ return false;
}
- //-----------------------------------------------------------------------
- @SuppressWarnings("unchecked")
- public void testNullHandling() {
- resetFull();
- assertEquals(null, getMap().get(null));
- assertEquals(false, getMap().containsKey(null));
- assertEquals(false, getMap().containsValue(null));
- assertEquals(null, getMap().remove(null));
- assertEquals(false, getMap().entrySet().contains(null));
- assertEquals(false, getMap().keySet().contains(null));
- assertEquals(false, getMap().values().contains(null));
- try {
- getMap().put(null, null);
- fail();
- } catch (final NullPointerException ex) {}
- try {
- getMap().put((K) new Object(), null);
- fail();
- } catch (final NullPointerException ex) {}
- try {
- getMap().put(null, (V) new Object());
- fail();
- } catch (final NullPointerException ex) {}
+ @Override
+ public Map<K, V> makeConfirmedMap() {
+ // Testing against another [collections] class generally isn't a good idea,
+ // but the closest alternative is IdentityHashMap, which propagates reference-equality down to keySet and values.
+ // arguably ReferenceIdentityMap should do the same but that's a later discussion.
+ return new IdentityMap<>();
}
//-----------------------------------------------------------------------
@@ -272,24 +222,85 @@ public class ReferenceIdentityMapTest<K, V> extends AbstractIterableMapTest<K, V
}
*/
- WeakReference<K> keyReference;
- WeakReference<V> valueReference;
+ @Override
+ public ReferenceIdentityMap<K, V> makeObject() {
+ return new ReferenceIdentityMap<>(ReferenceStrength.WEAK, ReferenceStrength.WEAK);
+ }
+ //-----------------------------------------------------------------------
+ @SuppressWarnings("unchecked")
+ public void testBasics() {
+ final IterableMap<K, V> map = new ReferenceIdentityMap<>(ReferenceStrength.HARD, ReferenceStrength.HARD);
+ assertEquals(0, map.size());
+ map.put((K) I1A, (V) I2A);
+ assertEquals(1, map.size());
+ assertSame(I2A, map.get(I1A));
+ assertSame(null, map.get(I1B));
+ assertEquals(true, map.containsKey(I1A));
+ assertEquals(false, map.containsKey(I1B));
+ assertEquals(true, map.containsValue(I2A));
+ assertEquals(false, map.containsValue(I2B));
+
+ map.put((K) I1A, (V) I2B);
+ assertEquals(1, map.size());
+ assertSame(I2B, map.get(I1A));
+ assertSame(null, map.get(I1B));
+ assertEquals(true, map.containsKey(I1A));
+ assertEquals(false, map.containsKey(I1B));
+ assertEquals(false, map.containsValue(I2A));
+ assertEquals(true, map.containsValue(I2B));
+
+ map.put((K) I1B, (V) I2B);
+ assertEquals(2, map.size());
+ assertSame(I2B, map.get(I1A));
+ assertSame(I2B, map.get(I1B));
+ assertEquals(true, map.containsKey(I1A));
+ assertEquals(true, map.containsKey(I1B));
+ assertEquals(false, map.containsValue(I2A));
+ assertEquals(true, map.containsValue(I2B));
+ }
+
+ //-----------------------------------------------------------------------
@SuppressWarnings("unchecked")
- private Map<K, V> buildRefMap() {
- final K key = (K) new Object();
- final V value = (V) new Object();
+ public void testHashEntry() {
+ final IterableMap<K, V> map = new ReferenceIdentityMap<>(ReferenceStrength.HARD, ReferenceStrength.HARD);
- keyReference = new WeakReference<>(key);
- valueReference = new WeakReference<>(value);
+ map.put((K) I1A, (V) I2A);
+ map.put((K) I1B, (V) I2A);
- final Map<K, V> testMap = new ReferenceIdentityMap<>(ReferenceStrength.WEAK, ReferenceStrength.HARD, true);
- testMap.put(key, value);
+ final Map.Entry<K, V> entry1 = map.entrySet().iterator().next();
+ final Iterator<Map.Entry<K, V>> it = map.entrySet().iterator();
+ final Map.Entry<K, V> entry2 = it.next();
+ final Map.Entry<K, V> entry3 = it.next();
- assertEquals("In map", value, testMap.get(key));
- assertNotNull("Weak reference released early (1)", keyReference.get());
- assertNotNull("Weak reference released early (2)", valueReference.get());
- return testMap;
+ assertEquals(true, entry1.equals(entry2));
+ assertEquals(true, entry2.equals(entry1));
+ assertEquals(false, entry1.equals(entry3));
+ }
+
+ //-----------------------------------------------------------------------
+ @SuppressWarnings("unchecked")
+ public void testNullHandling() {
+ resetFull();
+ assertEquals(null, getMap().get(null));
+ assertEquals(false, getMap().containsKey(null));
+ assertEquals(false, getMap().containsValue(null));
+ assertEquals(null, getMap().remove(null));
+ assertEquals(false, getMap().entrySet().contains(null));
+ assertEquals(false, getMap().keySet().contains(null));
+ assertEquals(false, getMap().values().contains(null));
+ try {
+ getMap().put(null, null);
+ fail();
+ } catch (final NullPointerException ex) {}
+ try {
+ getMap().put((K) new Object(), null);
+ fail();
+ } catch (final NullPointerException ex) {}
+ try {
+ getMap().put(null, (V) new Object());
+ fail();
+ } catch (final NullPointerException ex) {}
}
/** Tests whether purge values setting works */
@@ -318,15 +329,4 @@ public class ReferenceIdentityMapTest<K, V> extends AbstractIterableMapTest<K, V
}
}
- @SuppressWarnings("unused")
- private static void gc() {
- try {
- // trigger GC
- final byte[][] tooLarge = new byte[1000000000][1000000000];
- fail("you have too much RAM");
- } catch (final OutOfMemoryError ex) {
- System.gc(); // ignore
- }
- }
-
}