From 5d673fd89ed04fb3a9cdb1539758c499312917f2 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 1 Jan 2017 14:07:14 +0100 Subject: [PATCH 1/1] BUG-7464: remove TestHelper TestHelper is an unneeded wrapper around Assert's methods, use them directly as appropriate instead of the constraining abstraction. Change-Id: I8648d3dc731100b562c64b657f4e78e8787d9f61 Signed-off-by: Robert Varga --- .../triemap/TestCNodeFlagCollision.java | 31 +- .../TestCNodeInsertionIncorrectOrder.java | 18 +- .../triemap/TestConcurrentMapPutIfAbsent.java | 7 +- .../yangtools/triemap/TestHashCollisions.java | 272 +++++++++--------- .../triemap/TestHashCollisionsRemove.java | 27 +- .../TestHashCollisionsRemoveIterator.java | 28 +- .../yangtools/triemap/TestHelper.java | 42 --- .../yangtools/triemap/TestInsert.java | 23 +- .../yangtools/triemap/TestMapIterator.java | 58 ++-- .../triemap/TestMultiThreadAddDelete.java | 69 ++--- .../triemap/TestMultiThreadInserts.java | 27 +- .../triemap/TestMultiThreadMapIterator.java | 153 +++++----- .../TestReadOnlyAndUpdatableIterators.java | 127 +++----- 13 files changed, 392 insertions(+), 490 deletions(-) delete mode 100644 third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHelper.java diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeFlagCollision.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeFlagCollision.java index 4014f9bebf..081a6f8f33 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeFlagCollision.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeFlagCollision.java @@ -15,35 +15,38 @@ */ package org.opendaylight.yangtools.triemap; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; + import java.util.Map; import org.junit.Test; public class TestCNodeFlagCollision { @Test public void testCNodeFlagCollision () { - final Map map = new TrieMap<> (); - final Integer z15169 = Integer.valueOf (15169); - final Integer z28336 = Integer.valueOf (28336); + final Map map = new TrieMap<>(); + final Integer z15169 = Integer.valueOf(15169); + final Integer z28336 = Integer.valueOf(28336); - TestHelper.assertTrue (null == map.get (z15169)); - TestHelper.assertTrue (null == map.get (z28336)); + assertNull(map.get(z15169)); + assertNull(map.get(z28336)); - map.put (z15169, z15169); - TestHelper.assertTrue (null != map.get (z15169)); - TestHelper.assertTrue (null == map.get (z28336)); + map.put(z15169, z15169); + assertSame(z15169, map.get(z15169)); + assertNull(map.get(z28336)); map.put (z28336, z28336); - TestHelper.assertTrue (null != map.get (z15169)); - TestHelper.assertTrue (null != map.get (z28336)); + assertSame(z15169, map.get(z15169)); + assertSame(z28336, map.get(z28336)); map.remove (z15169); - TestHelper.assertTrue (null == map.get (z15169)); - TestHelper.assertTrue (null != map.get (z28336)); + assertNull(map.get(z15169)); + assertSame(z28336, map.get(z28336)); map.remove (z28336); - TestHelper.assertTrue (null == map.get (z15169)); - TestHelper.assertTrue (null == map.get (z28336)); + assertNull(map.get(z15169)); + assertNull(map.get(z28336)); } } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeInsertionIncorrectOrder.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeInsertionIncorrectOrder.java index e69b95a342..1ab4c4be27 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeInsertionIncorrectOrder.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeInsertionIncorrectOrder.java @@ -15,6 +15,8 @@ */ package org.opendaylight.yangtools.triemap; +import static org.junit.Assert.assertSame; + import java.util.Map; import org.junit.Test; @@ -22,14 +24,14 @@ public class TestCNodeInsertionIncorrectOrder { @Test public void testCNodeInsertionIncorrectOrder () { - final Map map = new TrieMap<> (); - final Integer z3884 = Integer.valueOf (3884); - final Integer z4266 = Integer.valueOf (4266); - map.put (z3884, z3884); - TestHelper.assertTrue (null != map.get (z3884)); + final Map map = new TrieMap<>(); + final Integer z3884 = Integer.valueOf(3884); + final Integer z4266 = Integer.valueOf(4266); + map.put(z3884, z3884); + assertSame(z3884, map.get(z3884)); - map.put (z4266, z4266); - TestHelper.assertTrue (null != map.get (z3884)); - TestHelper.assertTrue (null != map.get (z4266)); + map.put(z4266, z4266); + assertSame(z3884, map.get(z3884)); + assertSame(z4266, map.get(z4266)); } } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapPutIfAbsent.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapPutIfAbsent.java index aae3d70fcd..1eb6f2cacc 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapPutIfAbsent.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapPutIfAbsent.java @@ -15,6 +15,7 @@ */ package org.opendaylight.yangtools.triemap; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; @@ -27,11 +28,11 @@ public class TestConcurrentMapPutIfAbsent { @Test public void testConcurrentMapPutIfAbsent () { - final ConcurrentMap map = new TrieMap<> (); + final ConcurrentMap map = new TrieMap<>(); for (int i = 0; i < COUNT; i++) { - TestHelper.assertTrue (null == map.putIfAbsent (i, i)); - TestHelper.assertTrue (Integer.valueOf (i).equals (map.putIfAbsent (i, i))); + assertNull(map.putIfAbsent (i, i)); + assertEquals(Integer.valueOf(i), map.putIfAbsent(i, i)); } } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisions.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisions.java index 31659b531c..a2b6f03c13 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisions.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisions.java @@ -15,179 +15,181 @@ */ package org.opendaylight.yangtools.triemap; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + import org.junit.Test; public class TestHashCollisions { @Test public void testHashCollisions () { - final TrieMap bt = new TrieMap<> (); - - insertStrings (bt); - insertChars (bt); - insertInts (bt); - insertBytes (bt); - - removeStrings (bt); - removeChars (bt); - removeInts (bt); - removeBytes (bt); - - insertStrings (bt); - insertInts (bt); - insertBytes (bt); - insertChars (bt); - - removeBytes (bt); - removeStrings (bt); - removeChars (bt); - removeInts (bt); - - insertStrings (bt); - insertInts (bt); - insertBytes (bt); - insertChars (bt); - - removeStrings (bt); - removeChars (bt); - removeInts (bt); - removeBytes (bt); - - insertStrings (bt); - insertInts (bt); - insertBytes (bt); - insertChars (bt); - - removeChars (bt); - removeInts (bt); - removeBytes (bt); - removeStrings (bt); - - insertStrings (bt); - insertInts (bt); - insertBytes (bt); - insertChars (bt); - - removeInts (bt); - removeBytes (bt); - removeStrings (bt); - removeChars (bt); - - System.out.println (bt); + final TrieMap bt = new TrieMap<>(); + + insertStrings(bt); + insertChars(bt); + insertInts(bt); + insertBytes(bt); + + removeStrings(bt); + removeChars(bt); + removeInts(bt); + removeBytes(bt); + + insertStrings(bt); + insertInts(bt); + insertBytes(bt); + insertChars(bt); + + removeBytes(bt); + removeStrings(bt); + removeChars(bt); + removeInts(bt); + + insertStrings(bt); + insertInts(bt); + insertBytes(bt); + insertChars(bt); + + removeStrings(bt); + removeChars(bt); + removeInts(bt); + removeBytes(bt); + + insertStrings(bt); + insertInts(bt); + insertBytes(bt); + insertChars(bt); + + removeChars(bt); + removeInts(bt); + removeBytes(bt); + removeStrings(bt); + + insertStrings(bt); + insertInts(bt); + insertBytes(bt); + insertChars(bt); + + removeInts(bt); + removeBytes(bt); + removeStrings(bt); + removeChars(bt); } private static void insertChars (final TrieMap bt) { - TestHelper.assertEquals (null, bt.put ('a', 'a')); - TestHelper.assertEquals (null, bt.put ('b', 'b')); - TestHelper.assertEquals (null, bt.put ('c', 'c')); - TestHelper.assertEquals (null, bt.put ('d', 'd')); - TestHelper.assertEquals (null, bt.put ('e', 'e')); - - TestHelper.assertEquals ('a', bt.put ('a', 'a')); - TestHelper.assertEquals ('b', bt.put ('b', 'b')); - TestHelper.assertEquals ('c', bt.put ('c', 'c')); - TestHelper.assertEquals ('d', bt.put ('d', 'd')); - TestHelper.assertEquals ('e', bt.put ('e', 'e')); + assertNull(bt.put('a', 'a')); + assertNull(bt.put('b', 'b')); + assertNull(bt.put('c', 'c')); + assertNull(bt.put('d', 'd')); + assertNull(bt.put('e', 'e')); + + assertEquals('a', bt.put('a', 'a')); + assertEquals('b', bt.put('b', 'b')); + assertEquals('c', bt.put('c', 'c')); + assertEquals('d', bt.put('d', 'd')); + assertEquals('e', bt.put('e', 'e')); } private static void insertStrings (final TrieMap bt) { - TestHelper.assertEquals (null, bt.put ("a", "a")); - TestHelper.assertEquals (null, bt.put ("b", "b")); - TestHelper.assertEquals (null, bt.put ("c", "c")); - TestHelper.assertEquals (null, bt.put ("d", "d")); - TestHelper.assertEquals (null, bt.put ("e", "e")); - - TestHelper.assertEquals ("a", bt.put ("a", "a")); - TestHelper.assertEquals ("b", bt.put ("b", "b")); - TestHelper.assertEquals ("c", bt.put ("c", "c")); - TestHelper.assertEquals ("d", bt.put ("d", "d")); - TestHelper.assertEquals ("e", bt.put ("e", "e")); + assertNull(bt.put("a", "a")); + assertNull(bt.put("b", "b")); + assertNull(bt.put("c", "c")); + assertNull(bt.put("d", "d")); + assertNull(bt.put("e", "e")); + + assertEquals("a", bt.put("a", "a")); + assertEquals("b", bt.put("b", "b")); + assertEquals("c", bt.put("c", "c")); + assertEquals("d", bt.put("d", "d")); + assertEquals("e", bt.put("e", "e")); } private static void insertBytes (final TrieMap bt) { for (byte i = 0; i < 128 && i >= 0; i++) { - final Byte bigB = Byte.valueOf (i); - TestHelper.assertEquals (null, bt.put (bigB, bigB)); - TestHelper.assertEquals (bigB, bt.put (bigB, bigB)); + final Byte bigB = Byte.valueOf(i); + assertNull(bt.put(bigB, bigB)); + assertEquals(bigB, bt.put(bigB, bigB)); } } private static void insertInts (final TrieMap bt) { for (int i = 0; i < 128; i++) { - final Integer bigI = Integer.valueOf (i); - TestHelper.assertEquals (null, bt.put (bigI, bigI)); - TestHelper.assertEquals (bigI, bt.put (bigI, bigI)); + final Integer bigI = Integer.valueOf(i); + assertNull(bt.put(bigI, bigI)); + assertEquals(bigI, bt.put(bigI, bigI)); } } private static void removeChars (final TrieMap bt) { - TestHelper.assertTrue (null != bt.lookup ('a')); - TestHelper.assertTrue (null != bt.lookup ('b')); - TestHelper.assertTrue (null != bt.lookup ('c')); - TestHelper.assertTrue (null != bt.lookup ('d')); - TestHelper.assertTrue (null != bt.lookup ('e')); - - TestHelper.assertTrue (null != bt.remove ('a')); - TestHelper.assertTrue (null != bt.remove ('b')); - TestHelper.assertTrue (null != bt.remove ('c')); - TestHelper.assertTrue (null != bt.remove ('d')); - TestHelper.assertTrue (null != bt.remove ('e')); - - TestHelper.assertFalse (null != bt.remove ('a')); - TestHelper.assertFalse (null != bt.remove ('b')); - TestHelper.assertFalse (null != bt.remove ('c')); - TestHelper.assertFalse (null != bt.remove ('d')); - TestHelper.assertFalse (null != bt.remove ('e')); - - TestHelper.assertTrue (null == bt.lookup ('a')); - TestHelper.assertTrue (null == bt.lookup ('b')); - TestHelper.assertTrue (null == bt.lookup ('c')); - TestHelper.assertTrue (null == bt.lookup ('d')); - TestHelper.assertTrue (null == bt.lookup ('e')); + assertNotNull(bt.lookup('a')); + assertNotNull(bt.lookup('b')); + assertNotNull(bt.lookup('c')); + assertNotNull(bt.lookup('d')); + assertNotNull(bt.lookup('e')); + + assertNotNull(bt.remove('a')); + assertNotNull(bt.remove('b')); + assertNotNull(bt.remove('c')); + assertNotNull(bt.remove('d')); + assertNotNull(bt.remove('e')); + + assertNull(bt.remove('a')); + assertNull(bt.remove('b')); + assertNull(bt.remove('c')); + assertNull(bt.remove('d')); + assertNull(bt.remove('e')); + + assertNull(bt.lookup('a')); + assertNull(bt.lookup('b')); + assertNull(bt.lookup('c')); + assertNull(bt.lookup('d')); + assertNull(bt.lookup('e')); } private static void removeStrings (final TrieMap bt) { - TestHelper.assertTrue (null != bt.lookup ("a")); - TestHelper.assertTrue (null != bt.lookup ("b")); - TestHelper.assertTrue (null != bt.lookup ("c")); - TestHelper.assertTrue (null != bt.lookup ("d")); - TestHelper.assertTrue (null != bt.lookup ("e")); - - TestHelper.assertTrue (null != bt.remove ("a")); - TestHelper.assertTrue (null != bt.remove ("b")); - TestHelper.assertTrue (null != bt.remove ("c")); - TestHelper.assertTrue (null != bt.remove ("d")); - TestHelper.assertTrue (null != bt.remove ("e")); - - TestHelper.assertFalse (null != bt.remove ("a")); - TestHelper.assertFalse (null != bt.remove ("b")); - TestHelper.assertFalse (null != bt.remove ("c")); - TestHelper.assertFalse (null != bt.remove ("d")); - TestHelper.assertFalse (null != bt.remove ("e")); - - TestHelper.assertTrue (null == bt.lookup ("a")); - TestHelper.assertTrue (null == bt.lookup ("b")); - TestHelper.assertTrue (null == bt.lookup ("c")); - TestHelper.assertTrue (null == bt.lookup ("d")); - TestHelper.assertTrue (null == bt.lookup ("e")); + assertNotNull(bt.lookup("a")); + assertNotNull(bt.lookup("b")); + assertNotNull(bt.lookup("c")); + assertNotNull(bt.lookup("d")); + assertNotNull(bt.lookup("e")); + + assertNotNull(bt.remove("a")); + assertNotNull(bt.remove("b")); + assertNotNull(bt.remove("c")); + assertNotNull(bt.remove("d")); + assertNotNull(bt.remove("e")); + + assertNull(bt.remove("a")); + assertNull(bt.remove("b")); + assertNull(bt.remove("c")); + assertNull(bt.remove("d")); + assertNull(bt.remove("e")); + + assertNull(bt.lookup("a")); + assertNull(bt.lookup("b")); + assertNull(bt.lookup("c")); + assertNull(bt.lookup("d")); + assertNull(bt.lookup("e")); } private static void removeInts (final TrieMap bt) { for (int i = 0; i < 128; i++) { final Integer bigI = Integer.valueOf (i); - TestHelper.assertTrue (null != bt.lookup (bigI)); - TestHelper.assertTrue (null != bt.remove (bigI)); - TestHelper.assertFalse (null != bt.remove (bigI)); - TestHelper.assertTrue (null == bt.lookup (bigI)); + assertNotNull(bt.lookup(bigI)); + assertNotNull(bt.remove(bigI)); + assertNull(bt.remove(bigI)); + assertNull(bt.lookup(bigI)); } } private static void removeBytes (final TrieMap bt) { for (byte i = 0; i < 128 && i >= 0; i++) { final Byte bigB = Byte.valueOf (i); - TestHelper.assertTrue (null != bt.lookup (bigB)); - TestHelper.assertTrue (null != bt.remove (bigB)); - TestHelper.assertFalse (null != bt.remove (bigB)); - TestHelper.assertTrue (null == bt.lookup (bigB)); + assertNotNull(bt.lookup(bigB)); + assertNotNull(bt.remove(bigB)); + assertNull(bt.remove(bigB)); + assertNull(bt.lookup(bigB)); } } } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemove.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemove.java index 7522ebd829..64abfe44ab 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemove.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemove.java @@ -15,29 +15,32 @@ */ package org.opendaylight.yangtools.triemap; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import java.util.Map; import org.junit.Test; public class TestHashCollisionsRemove { + private static final int COUNT = 50000; + @Test public void testHashCollisionsRemove() { - final Map bt = new TrieMap<> (); - int count = 50000; - for (int j = 0; j < count; j++) { - final Object[] objects = TestMultiThreadMapIterator.getObjects (j); - for (final Object o : objects) { - bt.put (o, o); + final Map bt = new TrieMap<>(); + + for (int j = 0; j < COUNT; j++) { + for (final Object o : TestMultiThreadMapIterator.getObjects(j)) { + bt.put(o, o); } } - for (int j = 0; j < count; j++) { - final Object[] objects = TestMultiThreadMapIterator.getObjects (j); - for (final Object o : objects) { - bt.remove (o); + for (int j = 0; j < COUNT; j++) { + for (final Object o : TestMultiThreadMapIterator.getObjects(j)) { + bt.remove(o); } } - TestHelper.assertEquals (0, bt.size ()); - TestHelper.assertTrue (bt.isEmpty ()); + assertEquals(0, bt.size()); + assertTrue(bt.isEmpty()); } } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemoveIterator.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemoveIterator.java index bad975c4cd..a58d3ba350 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemoveIterator.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemoveIterator.java @@ -15,6 +15,9 @@ */ package org.opendaylight.yangtools.triemap; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; @@ -23,23 +26,24 @@ import java.util.Map.Entry; import org.junit.Test; public class TestHashCollisionsRemoveIterator { + private static final int COUNT = 50000; + @Test public void testHashCollisionsRemoveIterator () { - final Map bt = new TrieMap<> (); - int count = 50000; - for (int j = 0; j < count; j++) { - bt.put (Integer.valueOf (j), Integer.valueOf (j)); + final Map bt = new TrieMap<>(); + for (int j = 0; j < COUNT; j++) { + bt.put(Integer.valueOf(j), Integer.valueOf(j)); } - final Collection list = new ArrayList <> (); - for (final Iterator> i = bt.entrySet ().iterator (); i.hasNext ();) { - final Entry e = i.next (); - final Object key = e.getKey (); - list.add (key); - i.remove (); + final Collection list = new ArrayList<>(COUNT); + final Iterator> it = bt.entrySet().iterator(); + while (it.hasNext()) { + list.add(it.next().getKey()); + it.remove(); } - TestHelper.assertEquals (0, bt.size ()); - TestHelper.assertTrue (bt.isEmpty ()); + assertEquals(0, bt.size()); + assertTrue(bt.isEmpty()); + assertEquals(COUNT, list.size()); } } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHelper.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHelper.java deleted file mode 100644 index abe2a8c363..0000000000 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHelper.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * (C) Copyright 2016 Pantheon Technologies, s.r.o. and others. - * - * 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 - * limitations under the License. - */ -package org.opendaylight.yangtools.triemap; - -import org.junit.Assert; - -public class TestHelper { - - public static void assertEquals (final long expected, final long found) { - Assert.assertEquals (expected, found); - } - - public static void assertEquals (final int expected, final int found) { - Assert.assertEquals (expected, found); - } - - public static void assertEquals (final Object expected, final Object found) { - Assert.assertEquals (expected, found); - } - - public static void assertTrue (final boolean found) { - Assert.assertTrue (found); - } - - public static void assertFalse (final boolean found) { - Assert.assertFalse (found); - } - -} diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestInsert.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestInsert.java index b45128f33e..3989cc4f02 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestInsert.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestInsert.java @@ -15,24 +15,27 @@ */ package org.opendaylight.yangtools.triemap; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + import org.junit.Test; public class TestInsert { @Test public void testInsert () { - final TrieMap bt = new TrieMap<> (); - TestHelper.assertEquals (null, bt.put ("a", "a")); - TestHelper.assertEquals (null, bt.put ("b", "b")); - TestHelper.assertEquals (null, bt.put ("c", "b")); - TestHelper.assertEquals (null, bt.put ("d", "b")); - TestHelper.assertEquals (null, bt.put ("e", "b")); + final TrieMap bt = new TrieMap<>(); + assertNull(bt.put("a", "a")); + assertNull(bt.put("b", "b")); + assertNull(bt.put("c", "b")); + assertNull(bt.put("d", "b")); + assertNull(bt.put("e", "b")); for (int i = 0; i < 10000; i++) { - TestHelper.assertEquals (null, bt.put (Integer.valueOf (i), Integer.valueOf (i))); - final Object lookup = bt.lookup (Integer.valueOf (i)); - TestHelper.assertEquals (Integer.valueOf (i), lookup); + assertNull(bt.put(Integer.valueOf (i), Integer.valueOf(i))); + final Object lookup = bt.lookup(Integer.valueOf(i)); + assertEquals(Integer.valueOf(i), lookup); } - bt.toString (); + bt.toString(); } } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMapIterator.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMapIterator.java index 06beb1be70..f697b1d1cc 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMapIterator.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMapIterator.java @@ -15,6 +15,12 @@ */ package org.opendaylight.yangtools.triemap; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + import java.util.HashSet; import java.util.Iterator; import java.util.Map; @@ -26,45 +32,47 @@ import org.junit.Test; public class TestMapIterator { @Test public void testMapIterator () { - for (int i = 0; i < 60 * 1000; i+= 400 + new Random ().nextInt (400)) { - System.out.println (i); - final Map bt = new TrieMap <> (); + final Random random = new Random(); + + for (int i = 0; i < 60 * 1000; i+= 400 + random.nextInt(400)) { + final Map bt = new TrieMap <>(); for (int j = 0; j < i; j++) { - TestHelper.assertEquals (null, bt.put (Integer.valueOf (j), Integer.valueOf (j))); + assertNull(bt.put(Integer.valueOf(j), Integer.valueOf(j))); } int count = 0; - final Set set = new HashSet<> (); - for (final Map.Entry e : bt.entrySet ()) { - set.add (e.getKey ()); + final Set set = new HashSet<>(); + for (final Entry e : bt.entrySet()) { + set.add(e.getKey()); count++; } for (final Integer j : set) { - TestHelper.assertTrue (bt.containsKey (j)); + assertTrue(bt.containsKey(j)); } - for (final Integer j : bt.keySet ()) { - TestHelper.assertTrue (set.contains (j)); + for (final Integer j : bt.keySet()) { + assertTrue(set.contains(j)); } - TestHelper.assertEquals (i, count); - TestHelper.assertEquals (i, bt.size ()); + assertEquals(i, count); + assertEquals(i, bt.size()); - for (Entry e : bt.entrySet ()) { - TestHelper.assertTrue (e.getValue () == bt.get (e.getKey ())); - e.setValue (e.getValue () + 1); - TestHelper.assertTrue (e.getValue () == e.getKey () + 1); - TestHelper.assertTrue (e.getValue () == bt.get (e.getKey ())); - e.setValue (e.getValue () - 1); + for (Entry e : bt.entrySet()) { + assertSame(e.getValue(), bt.get(e.getKey())); + e.setValue(e.getValue() + 1); + assertEquals((Object)e.getValue(), e.getKey () + 1); + assertEquals(e.getValue(), bt.get(e.getKey())); + e.setValue(e.getValue() - 1); } - for (final Iterator iter = bt.keySet ().iterator (); iter.hasNext ();) { - final Integer k = iter.next (); - TestHelper.assertTrue (bt.containsKey (k)); - iter.remove (); - TestHelper.assertFalse (bt.containsKey (k)); + final Iterator it = bt.keySet().iterator(); + while(it.hasNext()) { + final Integer k = it.next (); + assertTrue(bt.containsKey(k)); + it.remove(); + assertFalse(bt.containsKey(k)); } - TestHelper.assertEquals (0, bt.size ()); - TestHelper.assertTrue (bt.isEmpty ()); + assertEquals(0, bt.size ()); + assertTrue(bt.isEmpty ()); } } } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadAddDelete.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadAddDelete.java index 5c7379e02f..c298aaf26b 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadAddDelete.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadAddDelete.java @@ -15,6 +15,10 @@ */ package org.opendaylight.yangtools.triemap; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -24,65 +28,51 @@ import org.junit.Test; public class TestMultiThreadAddDelete { private static final int RETRIES = 1; private static final int N_THREADS = 7; - private static final int COUNT = 50 * 1000; + private static final int COUNT = 50 * 1000; @Test - public void testMultiThreadAddDelete () { + public void testMultiThreadAddDelete () throws InterruptedException { for (int j = 0; j < RETRIES; j++) { - final Map bt = new TrieMap <> (); + final Map bt = new TrieMap<>(); { - final ExecutorService es = Executors.newFixedThreadPool (N_THREADS); + final ExecutorService es = Executors.newFixedThreadPool(N_THREADS); for (int i = 0; i < N_THREADS; i++) { final int threadNo = i; - es.execute (new Runnable () { - @Override - public void run () { - for (int j = 0; j < COUNT; j++) { - if (j % N_THREADS == threadNo) { - bt.put (Integer.valueOf (j), Integer.valueOf (j)); - } + es.execute(() -> { + for (int k = 0; k < COUNT; k++) { + if (k % N_THREADS == threadNo) { + bt.put(Integer.valueOf(k), Integer.valueOf(k)); } } }); } es.shutdown (); - try { - es.awaitTermination (3600L, TimeUnit.SECONDS); - } catch (final InterruptedException e) { - e.printStackTrace (); - } + es.awaitTermination(5, TimeUnit.MINUTES); } - TestHelper.assertEquals (COUNT, bt.size ()); - TestHelper.assertFalse (bt.isEmpty ()); + assertEquals(COUNT, bt.size()); + assertFalse(bt.isEmpty()); { - final ExecutorService es = Executors.newFixedThreadPool (N_THREADS); + final ExecutorService es = Executors.newFixedThreadPool(N_THREADS); for (int i = 0; i < N_THREADS; i++) { final int threadNo = i; - es.execute (new Runnable () { - @Override - public void run () { - for (int j = 0; j < COUNT; j++) { - if (j % N_THREADS == threadNo) { - bt.remove (Integer.valueOf (j)); - } + es.execute (() -> { + for (int k = 0; k < COUNT; k++) { + if (k % N_THREADS == threadNo) { + bt.remove (Integer.valueOf (k)); } } }); } es.shutdown (); - try { - es.awaitTermination (3600L, TimeUnit.SECONDS); - } catch (final InterruptedException e) { - e.printStackTrace (); - } + es.awaitTermination(5, TimeUnit.MINUTES); } - TestHelper.assertEquals (0, bt.size ()); - TestHelper.assertTrue (bt.isEmpty ()); + assertEquals(0, bt.size ()); + assertTrue(bt.isEmpty()); { final ExecutorService es = Executors.newFixedThreadPool (N_THREADS); @@ -111,18 +101,11 @@ public class TestMultiThreadAddDelete { }); } es.shutdown (); - try { - es.awaitTermination (3600L, TimeUnit.SECONDS); - } catch (final InterruptedException e) { - e.printStackTrace (); - } + es.awaitTermination(5, TimeUnit.MINUTES); } - TestHelper.assertEquals (0, bt.size ()); - if (!bt.isEmpty ()) { - System.out.println (); - } - TestHelper.assertTrue (bt.isEmpty ()); + assertEquals(0, bt.size()); + assertTrue(bt.isEmpty()); } } } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadInserts.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadInserts.java index 3e38e3c0ae..ea687d5cfa 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadInserts.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadInserts.java @@ -15,6 +15,8 @@ */ package org.opendaylight.yangtools.triemap; +import static org.junit.Assert.assertEquals; + import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; @@ -22,34 +24,27 @@ import org.junit.Test; public class TestMultiThreadInserts { @Test - public void testMultiThreadInserts () { + public void testMultiThreadInserts () throws InterruptedException{ final int nThreads = 2; - final ExecutorService es = Executors.newFixedThreadPool (nThreads); - final TrieMap bt = new TrieMap<> (); + final ExecutorService es = Executors.newFixedThreadPool(nThreads); + final TrieMap bt = new TrieMap<>(); for (int i = 0; i < nThreads; i++) { final int threadNo = i; - es.execute (new Runnable () { - @Override - public void run () { - for (int j = 0; j < 500 * 1000; j++) { - if (j % nThreads == threadNo) { - bt.put (Integer.valueOf (j), Integer.valueOf (j)); - } + es.execute (() -> { + for (int j = 0; j < 500 * 1000; j++) { + if (j % nThreads == threadNo) { + bt.put (Integer.valueOf (j), Integer.valueOf (j)); } } }); } es.shutdown (); - try { - es.awaitTermination (3600L, TimeUnit.SECONDS); - } catch (final InterruptedException e) { - e.printStackTrace (); - } + es.awaitTermination(5, TimeUnit.MINUTES); for (int j = 0; j < 500 * 1000; j++) { final Object lookup = bt.lookup (Integer.valueOf (j)); - TestHelper.assertEquals (Integer.valueOf (j), lookup); + assertEquals(Integer.valueOf(j), lookup); } } } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadMapIterator.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadMapIterator.java index cc42c3d873..6bc635779e 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadMapIterator.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadMapIterator.java @@ -15,9 +15,12 @@ */ package org.opendaylight.yangtools.triemap; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; -import java.util.LinkedList; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; @@ -30,141 +33,115 @@ public class TestMultiThreadMapIterator { private static final int NTHREADS = 7; @Test - public void testMultiThreadMapIterator () { - final Map bt = new TrieMap<> (); + public void testMultiThreadMapIterator () throws InterruptedException { + final Map bt = new TrieMap<>(); for (int j = 0; j < 50 * 1000; j++) { - final Object[] objects = getObjects (j); - for (final Object o : objects) { + for (final Object o : getObjects(j)) { bt.put (o, o); } } - System.out.println ("Size of initialized map is " + bt.size ()); - int count = 0; + // System.out.println ("Size of initialized map is " + bt.size ()); + int count = 0; { - final ExecutorService es = Executors.newFixedThreadPool (NTHREADS); + final ExecutorService es = Executors.newFixedThreadPool(NTHREADS); for (int i = 0; i < NTHREADS; i++) { final int threadNo = i; - es.execute (new Runnable () { - @Override - public void run () { - for (Entry e : bt.entrySet ()) { - if (accepts (threadNo, NTHREADS, e.getKey ())) { - String newValue = "TEST:" + threadNo; - e.setValue (newValue); - } + es.execute(() -> { + for (Entry e : bt.entrySet()) { + if (accepts(threadNo, NTHREADS, e.getKey())) { + String newValue = "TEST:" + threadNo; + e.setValue(newValue); } } }); } - es.shutdown (); - try { - es.awaitTermination (3600L, TimeUnit.SECONDS); - } catch (final InterruptedException e) { - e.printStackTrace (); - } + es.shutdown(); + es.awaitTermination(5, TimeUnit.MINUTES); } count = 0; - for (final Map.Entry kv : bt.entrySet ()) { - Object value = kv.getValue (); - TestHelper.assertTrue (value instanceof String); + for (final Map.Entry kv : bt.entrySet()) { + assertTrue(kv.getValue() instanceof String); count++; } - TestHelper.assertEquals (50000 + 2000 + 1000 + 100, count); - - final ConcurrentHashMap removed = new ConcurrentHashMap<> (); + assertEquals(50000 + 2000 + 1000 + 100, count); + final ConcurrentHashMap removed = new ConcurrentHashMap<>(); { - final ExecutorService es = Executors.newFixedThreadPool (NTHREADS); + final ExecutorService es = Executors.newFixedThreadPool(NTHREADS); for (int i = 0; i < NTHREADS; i++) { final int threadNo = i; - es.execute (new Runnable () { - @Override - public void run () { - for (final Iterator> i = bt.entrySet ().iterator (); i.hasNext ();) { - final Entry e = i.next (); - Object key = e.getKey (); - if (accepts (threadNo, NTHREADS, key)) { - if (null == bt.get (key)) { - System.out.println (key); - } - i.remove (); - if (null != bt.get (key)) { - System.out.println (key); - } - removed.put (key, key); + es.execute (() -> { + for (final Iterator> it = bt.entrySet ().iterator(); it.hasNext();) { + final Entry e = it.next(); + Object key = e.getKey (); + if (accepts (threadNo, NTHREADS, key)) { + if (null == bt.get (key)) { + // System.out.println (key); } + it.remove(); + if (null != bt.get (key)) { + // System.out.println (key); + } + removed.put (key, key); } } }); } - es.shutdown (); - try { - es.awaitTermination (3600L, TimeUnit.SECONDS); - } catch (final InterruptedException e) { - e.printStackTrace (); - } + es.shutdown(); + es.awaitTermination(5, TimeUnit.MINUTES); } - count = 0; - for (final Object value : bt.keySet ()) { - value.toString (); - count++; - } - for (final Object o : bt.keySet ()) { - if (!removed.contains (bt.get (o))) { - System.out.println ("Not removed: " + o); - } - } - TestHelper.assertEquals (0, count); - TestHelper.assertEquals (0, bt.size ()); - TestHelper.assertTrue (bt.isEmpty ()); + count = 0; + for (final Object value : bt.keySet ()) { + value.toString (); + count++; + } + for (final Object o : bt.keySet ()) { + if (!removed.contains (bt.get (o))) { + System.out.println ("Not removed: " + o); + } + } + assertEquals(0, count); + assertEquals(0, bt.size ()); + assertTrue(bt.isEmpty ()); } protected static boolean accepts (final int threadNo, final int nThreads, final Object key) { - int val = getKeyValue (key); - if(val>=0) { - return val % nThreads == threadNo; - } else { - return false; - } + final int val = getKeyValue(key); + return val >= 0 ? val % nThreads == threadNo : false; } private static int getKeyValue (final Object key) { - int val = 0; if (key instanceof Integer) { - val = ((Integer) key).intValue (); - } - else if (key instanceof Character) { - val = Math.abs (Character.getNumericValue ((Character) key) + 1); - } - else if (key instanceof Short) { - val = ((Short) key).intValue () + 2; - } - else if (key instanceof Byte) { - val = ((Byte) key).intValue () + 3; + return ((Integer) key).intValue(); + } else if (key instanceof Character) { + return Math.abs(Character.getNumericValue((Character) key) + 1); + } else if (key instanceof Short) { + return ((Short) key).intValue() + 2; + } else if (key instanceof Byte) { + return ((Byte) key).intValue() + 3; } else { return -1; } - return val; } - static Object[] getObjects (final int j) { - final Collection results = new LinkedList<> (); - results.add (Integer.valueOf (j)); + static Collection getObjects(final int j) { + final Collection results = new ArrayList<>(4); + results.add(Integer.valueOf(j)); if (j < 2000) { - results.add (Character.valueOf ((char) j)); + results.add(Character.valueOf((char) j)); } if (j < 1000) { - results.add (Short.valueOf ((short) j)); + results.add(Short.valueOf((short) j)); } if (j < 100) { - results.add (Byte.valueOf ((byte) j)); + results.add(Byte.valueOf((byte) j)); } - return results.toArray (); + return results; } } diff --git a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestReadOnlyAndUpdatableIterators.java b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestReadOnlyAndUpdatableIterators.java index 214a2f6f44..b3f7bb12a1 100644 --- a/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestReadOnlyAndUpdatableIterators.java +++ b/third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestReadOnlyAndUpdatableIterators.java @@ -15,6 +15,9 @@ */ package org.opendaylight.yangtools.triemap; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + import java.util.Iterator; import java.util.Map.Entry; import org.junit.Before; @@ -27,118 +30,78 @@ import org.junit.Test; * */ public class TestReadOnlyAndUpdatableIterators { - TrieMap bt; private static final int MAP_SIZE = 200; + private TrieMap bt; + @Before public void setUp() { - bt = new TrieMap <> (); + bt = new TrieMap<>(); for (int j = 0; j < MAP_SIZE; j++) { - TestHelper.assertEquals (null, bt.put (Integer.valueOf (j), Integer.valueOf (j))); + assertNull(bt.put(Integer.valueOf(j), Integer.valueOf(j))); } } - @Test - public void testReadOnlyIterator () { - Iterator> it = bt.readOnlyIterator (); - try { - it.next().setValue (0); - // It should have generated an exception, because it is a read-only iterator - TestHelper.assertFalse (true); - } catch (Exception e) { - - } - try { - it.remove (); - // It should have generated an exception, because it is a read-only iterator - TestHelper.assertFalse (true); - } catch (Exception e) { + private static void trySet(final Iterator> it) { + it.next().setValue(0); + } - } + private static void tryRemove(final Iterator it) { + it.next(); + it.remove(); } - @Test - public void testReadOnlySnapshotReadOnlyIterator () { - TrieMap roSnapshot = bt.readOnlySnapshot (); - Iterator> it = roSnapshot.readOnlyIterator (); - try { - it.next().setValue (0); - // It should have generated an exception, because it is a read-only iterator - TestHelper.assertFalse (true); - } catch (Exception e) { + @Test(expected = UnsupportedOperationException.class) + public void testReadOnlyIteratorSet() { + trySet(bt.readOnlyIterator()); + } - } - try { - it.remove (); - // It should have generated an exception, because it is a read-only iterator - TestHelper.assertFalse (true); - } catch (Exception e) { + @Test(expected = UnsupportedOperationException.class) + public void testReadOnlyIteratorRemove() { + tryRemove(bt.readOnlyIterator()); + } - } + @Test(expected = UnsupportedOperationException.class) + public void testReadOnlySnapshotReadOnlyIteratorSet() { + trySet(bt.readOnlySnapshot().readOnlyIterator()); } - @Test - public void testReadOnlySnapshotIterator () { - TrieMap roSnapshot = bt.readOnlySnapshot (); - Iterator> it = roSnapshot.iterator (); - try { - it.next().setValue (0); - // It should have generated an exception, because it is a read-only iterator - TestHelper.assertFalse (true); - } catch (Exception e) { + @Test(expected = UnsupportedOperationException.class) + public void testReadOnlySnapshotReadOnlyIteratorRemove() { + tryRemove(bt.readOnlySnapshot().readOnlyIterator()); + } - } - try { - it.remove (); - // It should have generated an exception, because it is a read-only iterator - TestHelper.assertFalse (true); - } catch (Exception e) { + @Test(expected = UnsupportedOperationException.class) + public void testReadOnlySnapshotIteratorSet() { + trySet(bt.readOnlySnapshot().iterator()); + } - } + @Test(expected = UnsupportedOperationException.class) + public void testReadOnlySnapshotIteratorRemove() { + tryRemove(bt.readOnlySnapshot().iterator()); } @Test public void testIterator () { - Iterator> it = bt.iterator (); - try { - it.next().setValue (0); - } catch (Exception e) { - // It should not have generated an exception, because it is a non read-only iterator - TestHelper.assertFalse (true); - } - - try { - it.remove (); - } catch (Exception e) { - // It should not have generated an exception, because it is a non read-only iterator - TestHelper.assertFalse (true); - } + Iterator> it = bt.iterator(); + it.next().setValue (0); + it.remove(); // All changes are done on the original map - TestHelper.assertEquals (MAP_SIZE - 1, bt.size ()); + assertEquals(MAP_SIZE - 1, bt.size()); } @Test public void testSnapshotIterator () { - TrieMap snapshot = bt.snapshot (); - Iterator> it = snapshot.iterator (); - try { - it.next().setValue (0); - } catch (Exception e) { - // It should not have generated an exception, because it is a non read-only iterator - TestHelper.assertFalse (true); - } - try { - it.remove (); - } catch (Exception e) { - // It should not have generated an exception, because it is a non read-only iterator - TestHelper.assertFalse (true); - } + TrieMap snapshot = bt.snapshot(); + Iterator> it = snapshot.iterator(); + it.next().setValue(0); + it.remove(); // All changes are done on the snapshot, not on the original map // Map size should remain unchanged - TestHelper.assertEquals (MAP_SIZE, bt.size ()); + assertEquals(MAP_SIZE, bt.size ()); // snapshot size was changed - TestHelper.assertEquals (MAP_SIZE-1, snapshot.size ()); + assertEquals(MAP_SIZE-1, snapshot.size ()); } } -- 2.36.6