BUG-7464: Update pom.xml 60/49860/6
authorRobert Varga <rovarga@cisco.com>
Thu, 29 Dec 2016 12:25:51 +0000 (13:25 +0100)
committerRobert Varga <nite@hq.sk>
Mon, 9 Jan 2017 14:05:19 +0000 (14:05 +0000)
Update pom.xml and move source to yangtools-specific
package. Also add triemap as a third-party module, attaching
it to default compilation.

Change-Id: I0554be2c99a6aa42ca1e25bf290693117a5b8920
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
31 files changed:
third-party/pom.xml
third-party/triemap/pom.xml
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/BasicNode.java [moved from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/BasicNode.java with 92% similarity]
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/CNodeBase.java [moved from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/CNodeBase.java with 95% similarity]
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/Gen.java [moved from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/Gen.java with 91% similarity]
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/INodeBase.java [moved from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/INodeBase.java with 95% similarity]
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/ListMap.java [moved from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/ListMap.java with 98% similarity]
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MainNode.java [moved from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/MainNode.java with 96% similarity]
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/None.java [moved from third-party/triemap/src/main/java/com/romix/scala/None.java with 57% similarity]
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/Option.java [moved from third-party/triemap/src/main/java/com/romix/scala/Option.java with 88% similarity]
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/Pair.java [moved from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/Pair.java with 85% similarity]
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/Some.java [moved from third-party/triemap/src/main/java/com/romix/scala/Some.java with 79% similarity]
third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TrieMap.java [moved from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/TrieMap.java with 99% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeFlagCollision.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestCNodeFlagCollision.java with 93% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeInsertionIncorrectOrder.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestCNodeInsertionIncorrectOrder.java with 89% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapPutIfAbsent.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestConcurrentMapPutIfAbsent.java with 88% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapRemove.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestConcurrentMapRemove.java with 91% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapReplace.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestConcurrentMapReplace.java with 91% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestDelete.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestDelete.java with 94% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisions.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestHashCollisions.java with 96% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemove.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestHashCollisionsRemove.java with 91% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemoveIterator.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestHashCollisionsRemoveIterator.java with 92% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHelper.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestHelper.java with 89% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestInsert.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestInsert.java with 91% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestInstantiationSpeed.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestInstantiationSpeed.java with 95% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMapIterator.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestMapIterator.java with 95% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadAddDelete.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestMultiThreadAddDelete.java with 96% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadInserts.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestMultiThreadInserts.java with 93% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadMapIterator.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestMultiThreadMapIterator.java with 96% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestReadOnlyAndUpdatableIterators.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestReadOnlyAndUpdatableIterators.java with 96% similarity]
third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestSerialization.java [moved from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestSerialization.java with 96% similarity]

index 44a9f4893159d208ec712bde0cd294bc4d8fe8a8..deeb4a7d2459f847d47724fa49c5181527e8d148 100644 (file)
@@ -22,6 +22,7 @@
     <packaging>pom</packaging>
 
     <modules>
+        <module>triemap</module>
         <module>xsd-regex</module>
     </modules>
 
index 10d77a92a66a86192ec1220ed57bb4ab216dc09d..cdec858a9fcfac42bc4abae6ca57f39a51b76c78 100644 (file)
@@ -1,90 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ (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.
+-->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-       <modelVersion>4.0.0</modelVersion>
-       <parent>
-               <groupId>org.sonatype.oss</groupId>
-               <artifactId>oss-parent</artifactId>
-               <version>7</version>
-       </parent>
-       <groupId>com.github.romix</groupId>
-       <artifactId>java-concurrent-hash-trie-map</artifactId>
-       <version>0.2.23-ODL</version>
-       <name>TrieMap</name>
-       <description>Java implementation of a concurrent trie hash map from Scala collections library</description>
-       <packaging>bundle</packaging>
-       <url>https://github.com/romix/java-concurrent-hash-trie-map</url>
-       <licenses>
-               <license>
-                       <name>The Apache Software License, Version 2.0</name>
-                       <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-                       <distribution>repo</distribution>
-               </license>
-       </licenses>
-       <scm>
-               <url>https://github.com/romix/java-concurrent-hash-trie-map</url>
-               <connection>scm:git:https://github.com/romix/java-concurrent-hash-trie-map.git</connection>
-               <developerConnection>scm:git:https://github.com/romix/java-concurrent-hash-trie-map.git</developerConnection>
-               <tag>java-concurrent-hash-trie-map-0.2.23</tag>
-       </scm>
-       <developers>
-               <developer>
-                       <id>romix</id>
-                       <name>Roman Levenstein</name>
-                       <email>romixlev@gmail.com</email>
-               </developer>
-       </developers>
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.maven.plugins</groupId>
-                               <artifactId>maven-compiler-plugin</artifactId>
-                               <version>2.3.2</version>
-                               <configuration>
-                                       <source>1.6</source>
-                                       <target>1.6</target>
-                                       <encoding>iso8859-1</encoding>
-                               </configuration>
-                       </plugin>
-                       <plugin>
-                               <groupId>org.apache.maven.plugins</groupId>
-                               <artifactId>maven-release-plugin</artifactId>
-                               <version>2.5</version>
-                               <configuration>
-                                       <checkModificationExcludes>
-                                               <checkModificationExclude>pom.xml</checkModificationExclude>
-                                       </checkModificationExcludes>
-                               </configuration>
-                       </plugin>
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <version>2.4.0</version>
-                               <extensions>true</extensions>
-                               <configuration>
-                                       <instructions>
-                                               <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-               </plugins>
-       </build>
-       <dependencies>
-               <dependency>
-                       <groupId>junit</groupId>
-                       <artifactId>junit</artifactId>
-                       <version>4.9</version>
-                       <scope>test</scope>
-               </dependency>
-       </dependencies>
-       <distributionManagement>
-               <repository>
-                       <id>sonatype-nexus-staging</id>
-                       <name>Nexus Staging Repository</name>
-                       <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
-               </repository>
-               <snapshotRepository>
-                       <id>sonatype-nexus-snapshots</id>
-                       <name>Nexus Snapshots Repository</name>
-                       <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
-               </snapshotRepository>
-       </distributionManagement>
+
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>bundle-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.opendaylight.yangtools</groupId>
+    <artifactId>triemap</artifactId>
+    <version>0.9.0-SNAPSHOT</version>
+    <packaging>bundle</packaging>
+
+    <description>Java implementation of a concurrent trie hash map from Scala collections library</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <!-- This project has a different license -->
+                <artifactId>maven-checkstyle-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <licenses>
+        <license>
+            <name>The Apache Software License, Version 2.0</name>
+            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+            <distribution>repo</distribution>
+        </license>
+    </licenses>
+
+    <!--
+        Maven Site Configuration
+
+        The following configuration is necessary for maven-site-plugin to
+        correctly identify the correct deployment path for OpenDaylight Maven
+        sites.
+    -->
+    <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
+
+    <distributionManagement>
+        <site>
+            <id>opendaylight-site</id>
+            <url>${nexus.site.url}/${project.artifactId}/</url>
+        </site>
+    </distributionManagement>
 </project>
similarity index 92%
rename from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/BasicNode.java
rename to third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/BasicNode.java
index ed5cdbe25e00e66b06d19424359e1674bdf66bce..82b99193cd236b4d312cfd05e98700ac43ecd6c8 100644 (file)
@@ -6,7 +6,7 @@
 **                          |/                                          **
 \*                                                                      */
 
-package com.romix.scala.collection.concurrent;
+package org.opendaylight.yangtools.triemap;
 
 
 
similarity index 95%
rename from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/CNodeBase.java
rename to third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/CNodeBase.java
index 33b21c58049a22dfc7ddda08d6a9fbffc671da5e..2a12749b4db12b05dd67bd607723f82fa903cddd 100644 (file)
@@ -6,7 +6,7 @@
 **                          |/                                          **
 \*                                                                      */
 
-package com.romix.scala.collection.concurrent;
+package org.opendaylight.yangtools.triemap;
 
 
 
similarity index 91%
rename from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/Gen.java
rename to third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/Gen.java
index 15aba43cd4ca06b6b4f02f701b93b03959b79d1a..357c9c4c17dca1c7cd544e89ba6625557c3f7729 100644 (file)
@@ -6,7 +6,7 @@
 **                          |/                                          **
 \*                                                                      */
 
-package com.romix.scala.collection.concurrent;
+package org.opendaylight.yangtools.triemap;
 
 
 
similarity index 95%
rename from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/INodeBase.java
rename to third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/INodeBase.java
index 11a3b3404f73e9342fb0d2bf95b03dce1bf1afd8..f09dc838d7cd4cb9d2df273b9bb5318b51da4d26 100644 (file)
@@ -6,7 +6,7 @@
 **                          |/                                          **
 \*                                                                      */
 
-package com.romix.scala.collection.concurrent;
+package org.opendaylight.yangtools.triemap;
 
 
 
similarity index 98%
rename from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/ListMap.java
rename to third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/ListMap.java
index bef25f7cb33d08f7dd38ad79951d80b9062a710c..fd3da93de745fcadc158d3c7e8df1c511acddda9 100644 (file)
@@ -1,11 +1,9 @@
-package com.romix.scala.collection.concurrent;
+package org.opendaylight.yangtools.triemap;
 
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import com.romix.scala.Option;
-
 /**
  * Mimic immutable ListMap in Scala
  *  
similarity index 96%
rename from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/MainNode.java
rename to third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/MainNode.java
index 82387252d253b7ded417d783144b227a60e65abf..9ee09a04ad36f65426bc9a641b3b949f2864f532 100644 (file)
@@ -6,7 +6,7 @@
  **                          |/                                          **
 \*                                                                      */
 
-package com.romix.scala.collection.concurrent;
+package org.opendaylight.yangtools.triemap;
 
 import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
 
similarity index 57%
rename from third-party/triemap/src/main/java/com/romix/scala/None.java
rename to third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/None.java
index ba7d648b2d7fabdce59c5f2104f045c67035ac32..6c1190c5b37d7f0112e17d707bfa7934c8df9fd8 100644 (file)
@@ -1,4 +1,4 @@
-package com.romix.scala;
+package org.opendaylight.yangtools.triemap;
 
 /**
  * Mimic None in Scala
@@ -7,6 +7,6 @@ package com.romix.scala;
  *
  * @param <V>
  */
-public class None<V> extends Option<V>{
+class None<V> extends Option<V>{
 
 }
similarity index 88%
rename from third-party/triemap/src/main/java/com/romix/scala/Option.java
rename to third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/Option.java
index 833ef5fbe229c2fed3337031a9272a4ca1ea640a..431a375fbcc036352da1e0a8ff60d7f3193ed1f7 100644 (file)
@@ -1,4 +1,4 @@
-package com.romix.scala;
+package org.opendaylight.yangtools.triemap;
 
 /**
  * Mimic Option in Scala
@@ -8,7 +8,7 @@ package com.romix.scala;
  * @param <V>
  */
 @SuppressWarnings({"rawtypes", "unchecked"})
-public class Option<V> {
+class Option<V> {
     static None none = new None();
     public static <V> Option<V> makeOption(V o){
         if(o!=null)
similarity index 85%
rename from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/Pair.java
rename to third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/Pair.java
index 18c262d33f44932c874c43c83a3ff04dfcf57087..2bb73f92e39f8c52415fe52acdb965d6aac507c6 100644 (file)
@@ -1,4 +1,4 @@
-package com.romix.scala.collection.concurrent;
+package org.opendaylight.yangtools.triemap;
 
 import java.util.Map;
 
@@ -10,7 +10,7 @@ import java.util.Map;
  * @param <K>
  * @param <V>
  */
-public class Pair<K, V> implements Map.Entry<K, V> {
+class Pair<K, V> implements Map.Entry<K, V> {
 
     final K k;
     final V v;
similarity index 79%
rename from third-party/triemap/src/main/java/com/romix/scala/Some.java
rename to third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/Some.java
index 626860031940e3b27cae359953c087e677bb1b1e..114ac650c02bddfb0c2e3d4d2a47cdb06d264364 100644 (file)
@@ -1,4 +1,4 @@
-package com.romix.scala;
+package org.opendaylight.yangtools.triemap;
 
 /**
  * Mimic Some in Scala
@@ -7,7 +7,7 @@ package com.romix.scala;
  *
  * @param <V>
  */
-public class Some<V> extends Option<V>{
+class Some<V> extends Option<V>{
     final V value;
     public Some(V v) {
         value = v;
similarity index 99%
rename from third-party/triemap/src/main/java/com/romix/scala/collection/concurrent/TrieMap.java
rename to third-party/triemap/src/main/java/org/opendaylight/yangtools/triemap/TrieMap.java
index 8f92922da5e774bc06e5b9be5190ce90629e385b..f727f0eddcf89bae862f984f765f96ebf1b5eea6 100644 (file)
@@ -1,4 +1,4 @@
-package com.romix.scala.collection.concurrent;
+package org.opendaylight.yangtools.triemap;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -17,14 +17,11 @@ import java.util.NoSuchElementException;
 import java.util.Set;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
-import com.romix.scala.None;
-import com.romix.scala.Option;
-import com.romix.scala.Some;
 
 /***
  * This is a port of Scala's TrieMap class from the Scala Collections library.
  * 
- * @author Roman Levenstein <romixlev@gmail.com>
+ * @author Roman Levenstein &lt;romixlev@gmail.com&gt;
  *
  * @param <K>
  * @param <V>
similarity index 93%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestCNodeFlagCollision.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeFlagCollision.java
index a08a685380e6b275ab2824dae93fed52d043aad1..f0fbb55901ef3a8bf3c620481502891f151cb91e 100644 (file)
@@ -1,35 +1,35 @@
-package com.romix.scala.collection.concurrent;\r
-\r
-import java.util.Map;\r
-\r
-import org.junit.Test;\r
-\r
-public class TestCNodeFlagCollision {\r
-    @Test\r
-    public void testCNodeFlagCollision () {\r
-        final Map<Object, Object> map = new TrieMap<Object, Object> ();\r
-        final Integer z15169 = Integer.valueOf (15169);\r
-        final Integer z28336 = Integer.valueOf (28336);\r
-        \r
-        TestHelper.assertTrue (null == map.get (z15169));\r
-        TestHelper.assertTrue (null == map.get (z28336));\r
-        \r
-        map.put (z15169, z15169);\r
-        TestHelper.assertTrue (null != map.get (z15169));\r
-        TestHelper.assertTrue (null == map.get (z28336));\r
-        \r
-        map.put (z28336, z28336);\r
-        TestHelper.assertTrue (null != map.get (z15169));\r
-        TestHelper.assertTrue (null != map.get (z28336));\r
-        \r
-        map.remove (z15169);\r
-        \r
-        TestHelper.assertTrue (null == map.get (z15169));\r
-        TestHelper.assertTrue (null != map.get (z28336));\r
-        \r
-        map.remove (z28336);\r
-        \r
-        TestHelper.assertTrue (null == map.get (z15169));\r
-        TestHelper.assertTrue (null == map.get (z28336));\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import java.util.Map;
+
+import org.junit.Test;
+
+public class TestCNodeFlagCollision {
+    @Test
+    public void testCNodeFlagCollision () {
+        final Map<Object, Object> map = new TrieMap<Object, Object> ();
+        final Integer z15169 = Integer.valueOf (15169);
+        final Integer z28336 = Integer.valueOf (28336);
+        
+        TestHelper.assertTrue (null == map.get (z15169));
+        TestHelper.assertTrue (null == map.get (z28336));
+        
+        map.put (z15169, z15169);
+        TestHelper.assertTrue (null != map.get (z15169));
+        TestHelper.assertTrue (null == map.get (z28336));
+        
+        map.put (z28336, z28336);
+        TestHelper.assertTrue (null != map.get (z15169));
+        TestHelper.assertTrue (null != map.get (z28336));
+        
+        map.remove (z15169);
+        
+        TestHelper.assertTrue (null == map.get (z15169));
+        TestHelper.assertTrue (null != map.get (z28336));
+        
+        map.remove (z28336);
+        
+        TestHelper.assertTrue (null == map.get (z15169));
+        TestHelper.assertTrue (null == map.get (z28336));
+    }
+}
similarity index 89%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestCNodeInsertionIncorrectOrder.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestCNodeInsertionIncorrectOrder.java
index 9d36de336bba95f739d90c7d0bca176b89a52548..b8ab573f8b134d3ef3eaff73e60e4684a79a589c 100644 (file)
@@ -1,21 +1,21 @@
-package com.romix.scala.collection.concurrent;\r
-\r
-import java.util.Map;\r
-\r
-import org.junit.Test;\r
-\r
-public class TestCNodeInsertionIncorrectOrder {\r
-\r
-    @Test\r
-    public void testCNodeInsertionIncorrectOrder () {\r
-        final Map<Object, Object> map = new TrieMap<Object, Object> ();\r
-        final Integer z3884 = Integer.valueOf (3884);\r
-        final Integer z4266 = Integer.valueOf (4266);\r
-        map.put (z3884, z3884);\r
-        TestHelper.assertTrue (null != map.get (z3884));\r
-        \r
-        map.put (z4266, z4266);\r
-        TestHelper.assertTrue (null != map.get (z3884));\r
-        TestHelper.assertTrue (null != map.get (z4266));\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import java.util.Map;
+
+import org.junit.Test;
+
+public class TestCNodeInsertionIncorrectOrder {
+
+    @Test
+    public void testCNodeInsertionIncorrectOrder () {
+        final Map<Object, Object> map = new TrieMap<Object, Object> ();
+        final Integer z3884 = Integer.valueOf (3884);
+        final Integer z4266 = Integer.valueOf (4266);
+        map.put (z3884, z3884);
+        TestHelper.assertTrue (null != map.get (z3884));
+        
+        map.put (z4266, z4266);
+        TestHelper.assertTrue (null != map.get (z3884));
+        TestHelper.assertTrue (null != map.get (z4266));
+    }
+}
similarity index 88%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestConcurrentMapPutIfAbsent.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapPutIfAbsent.java
index afdadcd8cbc67c8dca62770dd213c6b777503141..9c29836174f90fb1541b11207ac10fdf8aab15ee 100644 (file)
@@ -1,19 +1,19 @@
-package com.romix.scala.collection.concurrent;\r
-\r
-import java.util.concurrent.ConcurrentMap;\r
-\r
-import org.junit.Test;\r
-\r
-public class TestConcurrentMapPutIfAbsent {\r
-    private static final int COUNT = 50*1000;\r
-\r
-    @Test\r
-    public void testConcurrentMapPutIfAbsent () {\r
-        final ConcurrentMap<Object, Object> map = new TrieMap<Object, Object> ();\r
-        \r
-        for (int i = 0; i < COUNT; i++) {\r
-            TestHelper.assertTrue (null == map.putIfAbsent (i, i));\r
-            TestHelper.assertTrue (Integer.valueOf (i).equals (map.putIfAbsent (i, i)));\r
-        }\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import java.util.concurrent.ConcurrentMap;
+
+import org.junit.Test;
+
+public class TestConcurrentMapPutIfAbsent {
+    private static final int COUNT = 50*1000;
+
+    @Test
+    public void testConcurrentMapPutIfAbsent () {
+        final ConcurrentMap<Object, Object> map = new TrieMap<Object, Object> ();
+        
+        for (int i = 0; i < COUNT; i++) {
+            TestHelper.assertTrue (null == map.putIfAbsent (i, i));
+            TestHelper.assertTrue (Integer.valueOf (i).equals (map.putIfAbsent (i, i)));
+        }
+    }
+}
similarity index 91%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestConcurrentMapRemove.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapRemove.java
index 6796784cc083dc07c9e8feaeb504c8278afb6f04..980322d9dfadc5210655285405b13894a3de07b4 100644 (file)
@@ -1,24 +1,24 @@
-package com.romix.scala.collection.concurrent;\r
-\r
-import java.util.concurrent.ConcurrentMap;\r
-\r
-import org.junit.Test;\r
-\r
-public class TestConcurrentMapRemove {\r
-    private static final int COUNT = 50*1000;\r
-\r
-    @Test\r
-    public void testConcurrentMapRemove () {\r
-        final ConcurrentMap<Object, Object> map = new TrieMap<Object, Object> ();\r
-        \r
-        for (int i = 128; i < COUNT; i++) {\r
-            TestHelper.assertFalse (map.remove (i, i));\r
-            TestHelper.assertTrue (null == map.put (i, i));\r
-            TestHelper.assertFalse (map.remove (i, "lol"));\r
-            TestHelper.assertTrue (map.containsKey (i));\r
-            TestHelper.assertTrue (map.remove (i, i));\r
-            TestHelper.assertFalse (map.containsKey (i));\r
-            TestHelper.assertTrue (null == map.put (i, i));\r
-        }\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import java.util.concurrent.ConcurrentMap;
+
+import org.junit.Test;
+
+public class TestConcurrentMapRemove {
+    private static final int COUNT = 50*1000;
+
+    @Test
+    public void testConcurrentMapRemove () {
+        final ConcurrentMap<Object, Object> map = new TrieMap<Object, Object> ();
+        
+        for (int i = 128; i < COUNT; i++) {
+            TestHelper.assertFalse (map.remove (i, i));
+            TestHelper.assertTrue (null == map.put (i, i));
+            TestHelper.assertFalse (map.remove (i, "lol"));
+            TestHelper.assertTrue (map.containsKey (i));
+            TestHelper.assertTrue (map.remove (i, i));
+            TestHelper.assertFalse (map.containsKey (i));
+            TestHelper.assertTrue (null == map.put (i, i));
+        }
+    }
+}
similarity index 91%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestConcurrentMapReplace.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestConcurrentMapReplace.java
index d941aca675ad7b4a6f9f310d5f97cf992d5a9ded..6e10ecae10dd0801d7e5226e47be4bf04310b648 100644 (file)
@@ -1,23 +1,23 @@
-package com.romix.scala.collection.concurrent;\r
-\r
-import java.util.concurrent.ConcurrentMap;\r
-\r
-import org.junit.Test;\r
-\r
-public class TestConcurrentMapReplace {\r
-    private static final int COUNT = 50*1000;\r
-\r
-    @Test\r
-    public void testConcurrentMapReplace () {\r
-        final ConcurrentMap<Object, Object> map = new TrieMap<Object, Object> ();\r
-        \r
-        for (int i = 0; i < COUNT; i++) {\r
-            TestHelper.assertTrue (null == map.replace (i, "lol"));\r
-            TestHelper.assertFalse (map.replace (i, i, "lol2"));\r
-            TestHelper.assertTrue (null == map.put (i, i));\r
-            TestHelper.assertTrue (Integer.valueOf (i).equals (map.replace (i, "lol")));\r
-            TestHelper.assertFalse (map.replace (i, i, "lol2"));\r
-            TestHelper.assertTrue (map.replace (i, "lol", i));\r
-        }\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import java.util.concurrent.ConcurrentMap;
+
+import org.junit.Test;
+
+public class TestConcurrentMapReplace {
+    private static final int COUNT = 50*1000;
+
+    @Test
+    public void testConcurrentMapReplace () {
+        final ConcurrentMap<Object, Object> map = new TrieMap<Object, Object> ();
+        
+        for (int i = 0; i < COUNT; i++) {
+            TestHelper.assertTrue (null == map.replace (i, "lol"));
+            TestHelper.assertFalse (map.replace (i, i, "lol2"));
+            TestHelper.assertTrue (null == map.put (i, i));
+            TestHelper.assertTrue (Integer.valueOf (i).equals (map.replace (i, "lol")));
+            TestHelper.assertFalse (map.replace (i, i, "lol2"));
+            TestHelper.assertTrue (map.replace (i, "lol", i));
+        }
+    }
+}
similarity index 94%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestDelete.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestDelete.java
index c374174addfe1c3e1ca8b225ceedf89ef2185f85..8cd1b39d32f465b1a75f1b5ede4109e613325f7f 100644 (file)
@@ -1,43 +1,42 @@
-package com.romix.scala.collection.concurrent;\r
-\r
-import org.junit.Test;\r
-\r
-\r
-public class TestDelete {\r
-    @Test\r
-    public void testDelete () {\r
-        final TrieMap<Object, Object> bt = new TrieMap<Object, Object> ();\r
-\r
-        for (int i = 0; i < 10000; i++) {\r
-            TestHelper.assertEquals (null, bt.put (Integer.valueOf (i), Integer.valueOf (i)));\r
-            final Object lookup = bt.lookup (Integer.valueOf (i));\r
-            TestHelper.assertEquals (Integer.valueOf (i), lookup);\r
-        }\r
-        \r
-        checkAddInsert (bt, 536);\r
-        checkAddInsert (bt, 4341);\r
-        checkAddInsert (bt, 8437);\r
-        \r
-        for (int i = 0; i < 10000; i++) {\r
-            boolean removed = null != bt.remove(Integer.valueOf (i));\r
-            TestHelper.assertEquals (Boolean.TRUE, Boolean.valueOf (removed));\r
-            final Object lookup = bt.lookup (Integer.valueOf (i));\r
-            TestHelper.assertEquals (null, lookup);\r
-        }\r
-\r
-        bt.toString ();\r
-    }\r
-\r
-    private static void checkAddInsert (final TrieMap<Object, Object> bt, int k) {\r
-        final Integer v = Integer.valueOf (k);\r
-        bt.remove (v);\r
-        Object foundV = bt.lookup (v);\r
-        TestHelper.assertEquals (null, foundV);\r
-        TestHelper.assertEquals (null, bt.put (v, v));\r
-        foundV = bt.lookup (v);\r
-        TestHelper.assertEquals (v, foundV);\r
-        \r
-        TestHelper.assertEquals (v, bt.put (v, Integer.valueOf (-1)));\r
-        TestHelper.assertEquals (Integer.valueOf (-1), bt.put (v, v));\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import org.junit.Test;
+
+public class TestDelete {
+    @Test
+    public void testDelete () {
+        final TrieMap<Object, Object> bt = new TrieMap<Object, Object> ();
+
+        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);
+        }
+        
+        checkAddInsert (bt, 536);
+        checkAddInsert (bt, 4341);
+        checkAddInsert (bt, 8437);
+        
+        for (int i = 0; i < 10000; i++) {
+            boolean removed = null != bt.remove(Integer.valueOf (i));
+            TestHelper.assertEquals (Boolean.TRUE, Boolean.valueOf (removed));
+            final Object lookup = bt.lookup (Integer.valueOf (i));
+            TestHelper.assertEquals (null, lookup);
+        }
+
+        bt.toString ();
+    }
+
+    private static void checkAddInsert (final TrieMap<Object, Object> bt, int k) {
+        final Integer v = Integer.valueOf (k);
+        bt.remove (v);
+        Object foundV = bt.lookup (v);
+        TestHelper.assertEquals (null, foundV);
+        TestHelper.assertEquals (null, bt.put (v, v));
+        foundV = bt.lookup (v);
+        TestHelper.assertEquals (v, foundV);
+        
+        TestHelper.assertEquals (v, bt.put (v, Integer.valueOf (-1)));
+        TestHelper.assertEquals (Integer.valueOf (-1), bt.put (v, v));
+    }
+}
similarity index 96%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestHashCollisions.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisions.java
index ce89f17ae03803190f067270bea6fd7e10e0a312..963953718b5af381d1065294730d8a68b7d25120 100644 (file)
-package com.romix.scala.collection.concurrent;\r
-\r
-\r
-import org.junit.Test;\r
-\r
-public class TestHashCollisions {\r
-    @Test\r
-    public void testHashCollisions () {\r
-        final TrieMap<Object, Object> bt = new TrieMap<Object, Object> ();\r
-\r
-        insertStrings (bt);\r
-        insertChars (bt);\r
-        insertInts (bt);\r
-        insertBytes (bt);\r
-        \r
-        removeStrings (bt);\r
-        removeChars (bt);\r
-        removeInts (bt);\r
-        removeBytes (bt);\r
-\r
-        insertStrings (bt);\r
-        insertInts (bt);\r
-        insertBytes (bt);\r
-        insertChars (bt);\r
-\r
-        removeBytes (bt);\r
-        removeStrings (bt);\r
-        removeChars (bt);\r
-        removeInts (bt);\r
-\r
-        insertStrings (bt);\r
-        insertInts (bt);\r
-        insertBytes (bt);\r
-        insertChars (bt);\r
-\r
-        removeStrings (bt);\r
-        removeChars (bt);\r
-        removeInts (bt);\r
-        removeBytes (bt);\r
-\r
-        insertStrings (bt);\r
-        insertInts (bt);\r
-        insertBytes (bt);\r
-        insertChars (bt);\r
-\r
-        removeChars (bt);\r
-        removeInts (bt);\r
-        removeBytes (bt);\r
-        removeStrings (bt);\r
-\r
-        insertStrings (bt);\r
-        insertInts (bt);\r
-        insertBytes (bt);\r
-        insertChars (bt);\r
-\r
-        removeInts (bt);\r
-        removeBytes (bt);\r
-        removeStrings (bt);\r
-        removeChars (bt);\r
-\r
-        System.out.println (bt);\r
-    }\r
-\r
-    private static void insertChars (final TrieMap<Object, Object> bt) {\r
-        TestHelper.assertEquals (null, bt.put ('a', 'a'));\r
-        TestHelper.assertEquals (null, bt.put ('b', 'b'));\r
-        TestHelper.assertEquals (null, bt.put ('c', 'c'));\r
-        TestHelper.assertEquals (null, bt.put ('d', 'd'));\r
-        TestHelper.assertEquals (null, bt.put ('e', 'e'));\r
-\r
-        TestHelper.assertEquals ('a', bt.put ('a', 'a'));\r
-        TestHelper.assertEquals ('b', bt.put ('b', 'b'));\r
-        TestHelper.assertEquals ('c', bt.put ('c', 'c'));\r
-        TestHelper.assertEquals ('d', bt.put ('d', 'd'));\r
-        TestHelper.assertEquals ('e', bt.put ('e', 'e'));\r
-    }\r
-\r
-    private static void insertStrings (final TrieMap<Object, Object> bt) {\r
-        TestHelper.assertEquals (null, bt.put ("a", "a"));\r
-        TestHelper.assertEquals (null, bt.put ("b", "b"));\r
-        TestHelper.assertEquals (null, bt.put ("c", "c"));\r
-        TestHelper.assertEquals (null, bt.put ("d", "d"));\r
-        TestHelper.assertEquals (null, bt.put ("e", "e"));\r
-\r
-        TestHelper.assertEquals ("a", bt.put ("a", "a"));\r
-        TestHelper.assertEquals ("b", bt.put ("b", "b"));\r
-        TestHelper.assertEquals ("c", bt.put ("c", "c"));\r
-        TestHelper.assertEquals ("d", bt.put ("d", "d"));\r
-        TestHelper.assertEquals ("e", bt.put ("e", "e"));\r
-    }\r
-\r
-    private static void insertBytes (final TrieMap<Object, Object> bt) {\r
-        for (byte i = 0; i < 128 && i >= 0; i++) {\r
-            final Byte bigB = Byte.valueOf (i);\r
-            TestHelper.assertEquals (null, bt.put (bigB, bigB));\r
-            TestHelper.assertEquals (bigB, bt.put (bigB, bigB));\r
-        }\r
-    }\r
-\r
-    private static void insertInts (final TrieMap<Object, Object> bt) {\r
-        for (int i = 0; i < 128; i++) {\r
-            final Integer bigI = Integer.valueOf (i);\r
-            TestHelper.assertEquals (null, bt.put (bigI, bigI));\r
-            TestHelper.assertEquals (bigI, bt.put (bigI, bigI));\r
-        }\r
-    }\r
-\r
-    private static void removeChars (final TrieMap<Object, Object> bt) {\r
-        TestHelper.assertTrue (null != bt.lookup ('a'));\r
-        TestHelper.assertTrue (null != bt.lookup ('b'));\r
-        TestHelper.assertTrue (null != bt.lookup ('c'));\r
-        TestHelper.assertTrue (null != bt.lookup ('d'));\r
-        TestHelper.assertTrue (null != bt.lookup ('e'));\r
-\r
-        TestHelper.assertTrue (null != bt.remove ('a'));\r
-        TestHelper.assertTrue (null != bt.remove ('b'));\r
-        TestHelper.assertTrue (null != bt.remove ('c'));\r
-        TestHelper.assertTrue (null != bt.remove ('d'));\r
-        TestHelper.assertTrue (null != bt.remove ('e'));\r
-\r
-        TestHelper.assertFalse (null != bt.remove ('a'));\r
-        TestHelper.assertFalse (null != bt.remove ('b'));\r
-        TestHelper.assertFalse (null != bt.remove ('c'));\r
-        TestHelper.assertFalse (null != bt.remove ('d'));\r
-        TestHelper.assertFalse (null != bt.remove ('e'));\r
-\r
-        TestHelper.assertTrue (null == bt.lookup ('a'));\r
-        TestHelper.assertTrue (null == bt.lookup ('b'));\r
-        TestHelper.assertTrue (null == bt.lookup ('c'));\r
-        TestHelper.assertTrue (null == bt.lookup ('d'));\r
-        TestHelper.assertTrue (null == bt.lookup ('e'));\r
-    }\r
-\r
-    private static void removeStrings (final TrieMap<Object, Object> bt) {\r
-        TestHelper.assertTrue (null != bt.lookup ("a"));\r
-        TestHelper.assertTrue (null != bt.lookup ("b"));\r
-        TestHelper.assertTrue (null != bt.lookup ("c"));\r
-        TestHelper.assertTrue (null != bt.lookup ("d"));\r
-        TestHelper.assertTrue (null != bt.lookup ("e"));\r
-\r
-        TestHelper.assertTrue (null != bt.remove ("a"));\r
-        TestHelper.assertTrue (null != bt.remove ("b"));\r
-        TestHelper.assertTrue (null != bt.remove ("c"));\r
-        TestHelper.assertTrue (null != bt.remove ("d"));\r
-        TestHelper.assertTrue (null != bt.remove ("e"));\r
-\r
-        TestHelper.assertFalse (null != bt.remove ("a"));\r
-        TestHelper.assertFalse (null != bt.remove ("b"));\r
-        TestHelper.assertFalse (null != bt.remove ("c"));\r
-        TestHelper.assertFalse (null != bt.remove ("d"));\r
-        TestHelper.assertFalse (null != bt.remove ("e"));\r
-\r
-        TestHelper.assertTrue (null == bt.lookup ("a"));\r
-        TestHelper.assertTrue (null == bt.lookup ("b"));\r
-        TestHelper.assertTrue (null == bt.lookup ("c"));\r
-        TestHelper.assertTrue (null == bt.lookup ("d"));\r
-        TestHelper.assertTrue (null == bt.lookup ("e"));\r
-    }\r
-\r
-    private static void removeInts (final TrieMap<Object, Object> bt) {\r
-        for (int i = 0; i < 128; i++) {\r
-            final Integer bigI = Integer.valueOf (i);\r
-            TestHelper.assertTrue (null != bt.lookup (bigI));\r
-            TestHelper.assertTrue (null != bt.remove (bigI));\r
-            TestHelper.assertFalse (null != bt.remove (bigI));\r
-            TestHelper.assertTrue (null == bt.lookup (bigI));\r
-        }\r
-    }\r
-\r
-    private static void removeBytes (final TrieMap<Object, Object> bt) {\r
-        for (byte i = 0; i < 128 && i >= 0; i++) {\r
-            final Byte bigB = Byte.valueOf (i);\r
-            TestHelper.assertTrue (null != bt.lookup (bigB));\r
-            TestHelper.assertTrue (null != bt.remove (bigB));\r
-            TestHelper.assertFalse (null != bt.remove (bigB));\r
-            TestHelper.assertTrue (null == bt.lookup (bigB));\r
-        }\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+
+import org.junit.Test;
+
+public class TestHashCollisions {
+    @Test
+    public void testHashCollisions () {
+        final TrieMap<Object, Object> bt = new TrieMap<Object, Object> ();
+
+        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);
+    }
+
+    private static void insertChars (final TrieMap<Object, Object> 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'));
+    }
+
+    private static void insertStrings (final TrieMap<Object, Object> 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"));
+    }
+
+    private static void insertBytes (final TrieMap<Object, Object> 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));
+        }
+    }
+
+    private static void insertInts (final TrieMap<Object, Object> 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));
+        }
+    }
+
+    private static void removeChars (final TrieMap<Object, Object> 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'));
+    }
+
+    private static void removeStrings (final TrieMap<Object, Object> 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"));
+    }
+
+    private static void removeInts (final TrieMap<Object, Object> 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));
+        }
+    }
+
+    private static void removeBytes (final TrieMap<Object, Object> 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));
+        }
+    }
+}
similarity index 91%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestHashCollisionsRemove.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemove.java
index a991eb0b4c3c4ab9750013ba95ab35fe580e872c..5cdcce6ec4535fcc30886709dc7b08fa679b7d37 100644 (file)
@@ -1,29 +1,29 @@
-package com.romix.scala.collection.concurrent;\r
-\r
-import java.util.Map;\r
-\r
-import org.junit.Test;\r
-\r
-public class TestHashCollisionsRemove {\r
-    @Test\r
-    public void  testHashCollisionsRemove() {\r
-        final Map<Object, Object> bt = new TrieMap<Object, Object> ();\r
-        int count = 50000;\r
-        for (int j = 0; j < count; j++) {\r
-            final Object[] objects = TestMultiThreadMapIterator.getObjects (j);\r
-            for (final Object o : objects) {\r
-                bt.put (o, o);\r
-            }\r
-        }\r
-        \r
-        for (int j = 0; j < count; j++) {\r
-            final Object[] objects = TestMultiThreadMapIterator.getObjects (j);\r
-            for (final Object o : objects) {\r
-                bt.remove (o);\r
-            }\r
-        }\r
-\r
-        TestHelper.assertEquals (0, bt.size ());\r
-        TestHelper.assertTrue (bt.isEmpty ());\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import java.util.Map;
+
+import org.junit.Test;
+
+public class TestHashCollisionsRemove {
+    @Test
+    public void  testHashCollisionsRemove() {
+        final Map<Object, Object> bt = new TrieMap<Object, Object> ();
+        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);
+            }
+        }
+        
+        for (int j = 0; j < count; j++) {
+            final Object[] objects = TestMultiThreadMapIterator.getObjects (j);
+            for (final Object o : objects) {
+                bt.remove (o);
+            }
+        }
+
+        TestHelper.assertEquals (0, bt.size ());
+        TestHelper.assertTrue (bt.isEmpty ());
+    }
+}
similarity index 92%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestHashCollisionsRemoveIterator.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHashCollisionsRemoveIterator.java
index 91783d6c56d3738325120014dd9e2fcb9a7a45dc..2f67c7834fedf588026c4877256f3a98ff81ccf4 100644 (file)
@@ -1,31 +1,31 @@
-package com.romix.scala.collection.concurrent;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collection;\r
-import java.util.Iterator;\r
-import java.util.Map;\r
-import java.util.Map.Entry;\r
-\r
-import org.junit.Test;\r
-\r
-public class TestHashCollisionsRemoveIterator {\r
-    @Test\r
-    public void testHashCollisionsRemoveIterator () {\r
-        final Map<Object, Object> bt = new TrieMap<Object, Object> ();\r
-        int count = 50000;\r
-        for (int j = 0; j < count; j++) {\r
-            bt.put (Integer.valueOf (j), Integer.valueOf (j));\r
-        }\r
-        \r
-        final Collection<Object> list = new ArrayList <Object> ();\r
-        for (final Iterator<Map.Entry<Object, Object>> i = bt.entrySet ().iterator (); i.hasNext ();) {\r
-            final Entry<Object, Object> e = i.next ();\r
-            final Object key = e.getKey ();\r
-            list.add (key);\r
-            i.remove ();\r
-        }\r
-\r
-        TestHelper.assertEquals (0, bt.size ());\r
-        TestHelper.assertTrue (bt.isEmpty ());\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.junit.Test;
+
+public class TestHashCollisionsRemoveIterator {
+    @Test
+    public void testHashCollisionsRemoveIterator () {
+        final Map<Object, Object> bt = new TrieMap<Object, Object> ();
+        int count = 50000;
+        for (int j = 0; j < count; j++) {
+            bt.put (Integer.valueOf (j), Integer.valueOf (j));
+        }
+        
+        final Collection<Object> list = new ArrayList <Object> ();
+        for (final Iterator<Map.Entry<Object, Object>> i = bt.entrySet ().iterator (); i.hasNext ();) {
+            final Entry<Object, Object> e = i.next ();
+            final Object key = e.getKey ();
+            list.add (key);
+            i.remove ();
+        }
+
+        TestHelper.assertEquals (0, bt.size ());
+        TestHelper.assertTrue (bt.isEmpty ());
+    }
+}
similarity index 89%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestHelper.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestHelper.java
index 26331bb2493cd76f1d11426f2ea0e00edb9a864a..80846eaa7a27145f9b84e95843016a2655928020 100644 (file)
@@ -1,27 +1,27 @@
-package com.romix.scala.collection.concurrent;\r
-\r
-import org.junit.Assert;\r
-\r
-public class TestHelper {\r
-\r
-    public static void assertEquals (long expected, long found) {\r
-        Assert.assertEquals (expected, found);\r
-    }\r
-\r
-    public static void assertEquals (int expected, int found) {\r
-        Assert.assertEquals (expected, found);\r
-    }\r
-\r
-    public static void assertEquals (Object expected, Object found) {\r
-        Assert.assertEquals (expected, found);\r
-    }\r
-\r
-    public static void assertTrue (boolean found) {\r
-        Assert.assertTrue (found);\r
-    }\r
-\r
-    public static void assertFalse (boolean found) {\r
-        Assert.assertFalse (found);\r
-    }\r
-\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import org.junit.Assert;
+
+public class TestHelper {
+
+    public static void assertEquals (long expected, long found) {
+        Assert.assertEquals (expected, found);
+    }
+
+    public static void assertEquals (int expected, int found) {
+        Assert.assertEquals (expected, found);
+    }
+
+    public static void assertEquals (Object expected, Object found) {
+        Assert.assertEquals (expected, found);
+    }
+
+    public static void assertTrue (boolean found) {
+        Assert.assertTrue (found);
+    }
+
+    public static void assertFalse (boolean found) {
+        Assert.assertFalse (found);
+    }
+
+}
similarity index 91%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestInsert.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestInsert.java
index 69e0b689d1226cb39efbde215058296304f4c96c..ee8db2d4374a7ba607b75eb173975825625d78fa 100644 (file)
@@ -1,23 +1,23 @@
-package com.romix.scala.collection.concurrent;\r
-\r
-import org.junit.Test;\r
-\r
-public class TestInsert {\r
-    @Test\r
-    public void testInsert () {\r
-        final TrieMap<Object, Object> bt = new TrieMap<Object, Object> ();\r
-        TestHelper.assertEquals (null, bt.put ("a", "a"));\r
-        TestHelper.assertEquals (null, bt.put ("b", "b"));\r
-        TestHelper.assertEquals (null, bt.put ("c", "b"));\r
-        TestHelper.assertEquals (null, bt.put ("d", "b"));\r
-        TestHelper.assertEquals (null, bt.put ("e", "b"));\r
-\r
-        for (int i = 0; i < 10000; i++) {\r
-            TestHelper.assertEquals (null, bt.put (Integer.valueOf (i), Integer.valueOf (i)));\r
-            final Object lookup = bt.lookup (Integer.valueOf (i));\r
-            TestHelper.assertEquals (Integer.valueOf (i), lookup);\r
-        }\r
-\r
-        bt.toString ();\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import org.junit.Test;
+
+public class TestInsert {
+    @Test
+    public void testInsert () {
+        final TrieMap<Object, Object> bt = new TrieMap<Object, Object> ();
+        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"));
+
+        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);
+        }
+
+        bt.toString ();
+    }
+}
similarity index 95%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestMapIterator.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMapIterator.java
index 4815911522a9d8466dbfd0683638b497b8fb939a..43abcc18bae5cc3a998dddf65a07880a3b08c371 100644 (file)
@@ -1,57 +1,57 @@
-package com.romix.scala.collection.concurrent;\r
-\r
-import java.util.HashSet;\r
-import java.util.Iterator;\r
-import java.util.Map;\r
-import java.util.Map.Entry;\r
-import java.util.Random;\r
-import java.util.Set;\r
-\r
-import org.junit.Test;\r
-\r
-public class TestMapIterator {\r
-    @Test\r
-    public void testMapIterator () {\r
-        for (int i = 0; i < 60 * 1000; i+= 400 + new Random ().nextInt (400)) {\r
-            System.out.println (i);\r
-            final Map<Integer, Integer> bt = new TrieMap <Integer, Integer> ();\r
-            for (int j = 0; j < i; j++) {\r
-                TestHelper.assertEquals (null, bt.put (Integer.valueOf (j), Integer.valueOf (j)));\r
-            }\r
-            int count = 0;\r
-            final Set<Integer> set = new HashSet<Integer> ();\r
-            for (final Map.Entry<Integer, Integer> e : bt.entrySet ()) {\r
-                set.add (e.getKey ());\r
-                count++;\r
-            }\r
-            for (final Integer j : set) {\r
-                TestHelper.assertTrue (bt.containsKey (j));\r
-            }\r
-            for (final Integer j : bt.keySet ()) {\r
-                TestHelper.assertTrue (set.contains (j));\r
-            }\r
-\r
-            TestHelper.assertEquals (i, count);\r
-            TestHelper.assertEquals (i, bt.size ());\r
-            \r
-            for (final Iterator<Map.Entry<Integer, Integer>> iter = bt.entrySet ().iterator (); iter.hasNext ();) {\r
-                final Entry<Integer, Integer> e = iter.next ();\r
-                TestHelper.assertTrue (e.getValue () == bt.get (e.getKey ()));\r
-                e.setValue (e.getValue () + 1);\r
-                TestHelper.assertTrue (e.getValue () == e.getKey () + 1);\r
-                TestHelper.assertTrue (e.getValue () == bt.get (e.getKey ()));\r
-                e.setValue (e.getValue () - 1);\r
-            }\r
-\r
-            for (final Iterator<Integer> iter = bt.keySet ().iterator (); iter.hasNext ();) {\r
-                final Integer k = iter.next ();\r
-                TestHelper.assertTrue (bt.containsKey (k));\r
-                iter.remove ();\r
-                TestHelper.assertFalse (bt.containsKey (k));\r
-            }\r
-            \r
-            TestHelper.assertEquals (0, bt.size ());\r
-            TestHelper.assertTrue (bt.isEmpty ());\r
-        }\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Random;
+import java.util.Set;
+
+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<Integer, Integer> bt = new TrieMap <Integer, Integer> ();
+            for (int j = 0; j < i; j++) {
+                TestHelper.assertEquals (null, bt.put (Integer.valueOf (j), Integer.valueOf (j)));
+            }
+            int count = 0;
+            final Set<Integer> set = new HashSet<Integer> ();
+            for (final Map.Entry<Integer, Integer> e : bt.entrySet ()) {
+                set.add (e.getKey ());
+                count++;
+            }
+            for (final Integer j : set) {
+                TestHelper.assertTrue (bt.containsKey (j));
+            }
+            for (final Integer j : bt.keySet ()) {
+                TestHelper.assertTrue (set.contains (j));
+            }
+
+            TestHelper.assertEquals (i, count);
+            TestHelper.assertEquals (i, bt.size ());
+            
+            for (final Iterator<Map.Entry<Integer, Integer>> iter = bt.entrySet ().iterator (); iter.hasNext ();) {
+                final Entry<Integer, Integer> e = iter.next ();
+                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 (final Iterator<Integer> iter = bt.keySet ().iterator (); iter.hasNext ();) {
+                final Integer k = iter.next ();
+                TestHelper.assertTrue (bt.containsKey (k));
+                iter.remove ();
+                TestHelper.assertFalse (bt.containsKey (k));
+            }
+            
+            TestHelper.assertEquals (0, bt.size ());
+            TestHelper.assertTrue (bt.isEmpty ());
+        }
+    }
+}
similarity index 96%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestMultiThreadAddDelete.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadAddDelete.java
index 99280c208f26fa37e7f8b9fac45822010f684252..efcb846a9b63b4323af6cfcf222fa722407fd7e7 100644 (file)
-package com.romix.scala.collection.concurrent;\r
-\r
-import java.util.Map;\r
-import java.util.concurrent.ExecutorService;\r
-import java.util.concurrent.Executors;\r
-import java.util.concurrent.TimeUnit;\r
-\r
-import org.junit.Test;\r
-\r
-public class TestMultiThreadAddDelete {\r
-    private static final int RETRIES = 1;\r
-    private static final int N_THREADS = 7;\r
-    private static final int COUNT =  50 * 1000;\r
-\r
-    @Test\r
-    public void testMultiThreadAddDelete () {\r
-        for (int j = 0; j < RETRIES; j++) {\r
-            final Map<Object, Object> bt = new TrieMap <Object, Object> ();\r
-            \r
-            {\r
-                final ExecutorService es = Executors.newFixedThreadPool (N_THREADS);\r
-                for (int i = 0; i < N_THREADS; i++) {\r
-                    final int threadNo = i;\r
-                    es.execute (new Runnable () {\r
-                        @Override\r
-                        public void run () {\r
-                            for (int j = 0; j < COUNT; j++) {\r
-                                if (j % N_THREADS == threadNo) {\r
-                                    bt.put (Integer.valueOf (j), Integer.valueOf (j));\r
-                                }\r
-                            }\r
-                        }\r
-                    });\r
-                }\r
-                es.shutdown ();\r
-                try {\r
-                    es.awaitTermination (3600L, TimeUnit.SECONDS);\r
-                } catch (final InterruptedException e) {\r
-                    e.printStackTrace ();\r
-                }\r
-            }\r
-            \r
-            TestHelper.assertEquals (COUNT, bt.size ());\r
-            TestHelper.assertFalse (bt.isEmpty ());\r
-            \r
-            {\r
-                final ExecutorService es = Executors.newFixedThreadPool (N_THREADS);\r
-                for (int i = 0; i < N_THREADS; i++) {\r
-                    final int threadNo = i;\r
-                    es.execute (new Runnable () {\r
-                        @Override\r
-                        public void run () {\r
-                            for (int j = 0; j < COUNT; j++) {\r
-                                if (j % N_THREADS == threadNo) {\r
-                                    bt.remove (Integer.valueOf (j));\r
-                                }\r
-                            }\r
-                        }\r
-                    });\r
-                }\r
-                es.shutdown ();\r
-                try {\r
-                    es.awaitTermination (3600L, TimeUnit.SECONDS);\r
-                } catch (final InterruptedException e) {\r
-                    e.printStackTrace ();\r
-                }\r
-            }\r
-            \r
-            \r
-            TestHelper.assertEquals (0, bt.size ());\r
-            TestHelper.assertTrue (bt.isEmpty ());\r
-            \r
-            {\r
-                final ExecutorService es = Executors.newFixedThreadPool (N_THREADS);\r
-                for (int i = 0; i < N_THREADS; i++) {\r
-                    final int threadNo = i;\r
-                    es.execute (new Runnable () {\r
-                        @Override\r
-                        public void run () {\r
-                            for (int j = 0; j < COUNT; j++) {\r
-                                if (j % N_THREADS == threadNo) {\r
-                                    try {\r
-                                        bt.put (Integer.valueOf (j), Integer.valueOf (j));\r
-                                        if (!bt.containsKey (Integer.valueOf (j))) {\r
-                                            System.out.println (j);\r
-                                        }\r
-                                        bt.remove (Integer.valueOf (j));\r
-                                        if (bt.containsKey (Integer.valueOf (j))) {\r
-                                            System.out.println (-j);\r
-                                        }\r
-                                    } catch (Throwable t) {\r
-                                        t.printStackTrace ();\r
-                                    }\r
-                                }\r
-                            }\r
-                        }\r
-                    });\r
-                }\r
-                es.shutdown ();\r
-                try {\r
-                    es.awaitTermination (3600L, TimeUnit.SECONDS);\r
-                } catch (final InterruptedException e) {\r
-                    e.printStackTrace ();\r
-                }\r
-            }\r
-            \r
-            TestHelper.assertEquals (0, bt.size ());\r
-            if (!bt.isEmpty ()) {\r
-                System.out.println ();\r
-            }\r
-            TestHelper.assertTrue (bt.isEmpty ());\r
-        }\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+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;
+
+    @Test
+    public void testMultiThreadAddDelete () {
+        for (int j = 0; j < RETRIES; j++) {
+            final Map<Object, Object> bt = new TrieMap <Object, Object> ();
+            
+            {
+                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.shutdown ();
+                try {
+                    es.awaitTermination (3600L, TimeUnit.SECONDS);
+                } catch (final InterruptedException e) {
+                    e.printStackTrace ();
+                }
+            }
+            
+            TestHelper.assertEquals (COUNT, bt.size ());
+            TestHelper.assertFalse (bt.isEmpty ());
+            
+            {
+                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.shutdown ();
+                try {
+                    es.awaitTermination (3600L, TimeUnit.SECONDS);
+                } catch (final InterruptedException e) {
+                    e.printStackTrace ();
+                }
+            }
+            
+            
+            TestHelper.assertEquals (0, bt.size ());
+            TestHelper.assertTrue (bt.isEmpty ());
+            
+            {
+                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) {
+                                    try {
+                                        bt.put (Integer.valueOf (j), Integer.valueOf (j));
+                                        if (!bt.containsKey (Integer.valueOf (j))) {
+                                            System.out.println (j);
+                                        }
+                                        bt.remove (Integer.valueOf (j));
+                                        if (bt.containsKey (Integer.valueOf (j))) {
+                                            System.out.println (-j);
+                                        }
+                                    } catch (Throwable t) {
+                                        t.printStackTrace ();
+                                    }
+                                }
+                            }
+                        }
+                    });
+                }
+                es.shutdown ();
+                try {
+                    es.awaitTermination (3600L, TimeUnit.SECONDS);
+                } catch (final InterruptedException e) {
+                    e.printStackTrace ();
+                }
+            }
+            
+            TestHelper.assertEquals (0, bt.size ());
+            if (!bt.isEmpty ()) {
+                System.out.println ();
+            }
+            TestHelper.assertTrue (bt.isEmpty ());
+        }
+    }
+}
similarity index 93%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestMultiThreadInserts.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadInserts.java
index 2062a1c51933cf58056e09a03718355aaec8480c..6ad60fd41f4b90be2e23786de7a51ae688a7ee42 100644 (file)
@@ -1,41 +1,41 @@
-package com.romix.scala.collection.concurrent;\r
-\r
-import java.util.concurrent.ExecutorService;\r
-import java.util.concurrent.Executors;\r
-import java.util.concurrent.TimeUnit;\r
-\r
-import org.junit.Test;\r
-\r
-public class TestMultiThreadInserts {\r
-    @Test\r
-    public void testMultiThreadInserts () {\r
-        final int nThreads = 2;\r
-        final ExecutorService es = Executors.newFixedThreadPool (nThreads);\r
-        final TrieMap<Object, Object> bt = new TrieMap<Object, Object> ();\r
-        for (int i = 0; i < nThreads; i++) {\r
-            final int threadNo = i;\r
-            es.execute (new Runnable () {\r
-                @Override\r
-                public void run () {\r
-                    for (int j = 0; j < 500 * 1000; j++) {\r
-                        if (j % nThreads == threadNo) {\r
-                            bt.put (Integer.valueOf (j), Integer.valueOf (j));\r
-                        }\r
-                    }\r
-                }\r
-            });\r
-        }\r
-\r
-        es.shutdown ();\r
-        try {\r
-            es.awaitTermination (3600L, TimeUnit.SECONDS);\r
-        } catch (final InterruptedException e) {\r
-            e.printStackTrace ();\r
-        }\r
-        \r
-        for (int j = 0; j < 500 * 1000; j++) {\r
-            final Object lookup = bt.lookup (Integer.valueOf (j));\r
-            TestHelper.assertEquals (Integer.valueOf (j), lookup);\r
-        }\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Test;
+
+public class TestMultiThreadInserts {
+    @Test
+    public void testMultiThreadInserts () {
+        final int nThreads = 2;
+        final ExecutorService es = Executors.newFixedThreadPool (nThreads);
+        final TrieMap<Object, Object> bt = new TrieMap<Object, Object> ();
+        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.shutdown ();
+        try {
+            es.awaitTermination (3600L, TimeUnit.SECONDS);
+        } catch (final InterruptedException e) {
+            e.printStackTrace ();
+        }
+        
+        for (int j = 0; j < 500 * 1000; j++) {
+            final Object lookup = bt.lookup (Integer.valueOf (j));
+            TestHelper.assertEquals (Integer.valueOf (j), lookup);
+        }
+    }
+}
similarity index 96%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestMultiThreadMapIterator.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestMultiThreadMapIterator.java
index 91e7b068b19668b09bb667bdedc1be55a0d84002..fc4128a552c3368844283b46f0eb0f09947c9f95 100644 (file)
-package com.romix.scala.collection.concurrent;\r
-\r
-import java.util.Collection;\r
-import java.util.Iterator;\r
-import java.util.LinkedList;\r
-import java.util.Map;\r
-import java.util.Map.Entry;\r
-import java.util.concurrent.ConcurrentHashMap;\r
-import java.util.concurrent.ExecutorService;\r
-import java.util.concurrent.Executors;\r
-import java.util.concurrent.TimeUnit;\r
-\r
-import org.junit.Test;\r
-\r
-public class TestMultiThreadMapIterator {\r
-    private static final int NTHREADS = 7;\r
-\r
-    @Test\r
-    public void testMultiThreadMapIterator () {\r
-        final Map<Object, Object> bt = new TrieMap<Object, Object> ();\r
-        for (int j = 0; j < 50 * 1000; j++) {\r
-            final Object[] objects = getObjects (j);\r
-            for (final Object o : objects) {\r
-                bt.put (o, o);\r
-            }\r
-        }\r
-\r
-      System.out.println ("Size of initialized map is " + bt.size ());  \r
-      int count = 0;\r
-        {\r
-            final ExecutorService es = Executors.newFixedThreadPool (NTHREADS);\r
-            for (int i = 0; i < NTHREADS; i++) {\r
-                final int threadNo = i;\r
-                es.execute (new Runnable () {\r
-                    @Override\r
-                    public void run () {\r
-                        for (final Iterator<Map.Entry<Object, Object>> i = bt.entrySet ().iterator (); i.hasNext ();) {\r
-                            final Entry<Object, Object> e = i.next ();\r
-                            if (accepts (threadNo, NTHREADS, e.getKey ())) {\r
-                                String newValue = "TEST:" + threadNo; \r
-                                e.setValue (newValue);\r
-                            }\r
-                        }\r
-                    }\r
-                });\r
-            }\r
-\r
-            es.shutdown ();\r
-            try {\r
-                es.awaitTermination (3600L, TimeUnit.SECONDS);\r
-            } catch (final InterruptedException e) {\r
-                e.printStackTrace ();\r
-            }\r
-        }\r
-\r
-        count = 0;\r
-        for (final Map.Entry<Object, Object> kv : bt.entrySet ()) {\r
-            Object value = kv.getValue (); \r
-            TestHelper.assertTrue (value instanceof String);\r
-            count++;\r
-        }\r
-        TestHelper.assertEquals (50000 + 2000 + 1000 + 100, count);\r
-        \r
-        final ConcurrentHashMap<Object, Object> removed = new ConcurrentHashMap<Object, Object> ();\r
-\r
-        {\r
-            final ExecutorService es = Executors.newFixedThreadPool (NTHREADS);\r
-            for (int i = 0; i < NTHREADS; i++) {\r
-                final int threadNo = i;\r
-                es.execute (new Runnable () {\r
-                    @Override\r
-                    public void run () {\r
-                        for (final Iterator<Map.Entry<Object, Object>> i = bt.entrySet ().iterator (); i.hasNext ();) {\r
-                            final Entry<Object, Object> e = i.next ();\r
-                            Object key = e.getKey ();\r
-                            if (accepts (threadNo, NTHREADS, key)) {\r
-                                if (null == bt.get (key)) {\r
-                                    System.out.println (key);\r
-                                }\r
-                                i.remove ();\r
-                                if (null != bt.get (key)) {\r
-                                    System.out.println (key);\r
-                                }\r
-                                removed.put (key, key);\r
-                            }\r
-                        }\r
-                    }\r
-                });\r
-            }\r
-\r
-            es.shutdown ();\r
-            try {\r
-                es.awaitTermination (3600L, TimeUnit.SECONDS);\r
-            } catch (final InterruptedException e) {\r
-                e.printStackTrace ();\r
-            }\r
-        }\r
-\r
-        count = 0;\r
-        for (final Object value : bt.keySet ()) {\r
-            value.toString ();\r
-            count++;\r
-        }\r
-        for (final Object o : bt.keySet ()) {\r
-            if (!removed.contains (bt.get (o))) {\r
-                System.out.println ("Not removed: " + o);\r
-            }\r
-        }\r
-        TestHelper.assertEquals (0, count);\r
-        TestHelper.assertEquals (0, bt.size ());\r
-        TestHelper.assertTrue (bt.isEmpty ());\r
-    }\r
-\r
-    protected static boolean accepts (final int threadNo, final int nThreads, final Object key) {\r
-        int val = getKeyValue (key); \r
-        if(val>=0)\r
-            return val % nThreads == threadNo;\r
-        else\r
-            return false;\r
-    }\r
-\r
-    private static int getKeyValue (final Object key) {\r
-        int val = 0;\r
-        if (key instanceof Integer) {\r
-            val = ((Integer) key).intValue ();\r
-        }\r
-        else if (key instanceof Character) {\r
-            val = Math.abs (Character.getNumericValue ((Character) key) + 1);\r
-        }\r
-        else if (key instanceof Short) {\r
-            val = ((Short) key).intValue () + 2;\r
-        }\r
-        else if (key instanceof Byte) {\r
-            val = ((Byte) key).intValue () + 3;\r
-        } else \r
-            return -1;\r
-        return val;\r
-    }\r
-\r
-    static Object[] getObjects (final int j) {\r
-        final Collection<Object> results = new LinkedList<Object> ();\r
-        results.add (Integer.valueOf (j));\r
-        if (j < 2000) {\r
-            results.add (Character.valueOf ((char) j));\r
-        }\r
-        if (j < 1000) {\r
-            results.add (Short.valueOf ((short) j));\r
-        }\r
-        if (j < 100) {\r
-            results.add (Byte.valueOf ((byte) j));\r
-        }\r
-\r
-        return results.toArray ();\r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+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;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Test;
+
+public class TestMultiThreadMapIterator {
+    private static final int NTHREADS = 7;
+
+    @Test
+    public void testMultiThreadMapIterator () {
+        final Map<Object, Object> bt = new TrieMap<Object, Object> ();
+        for (int j = 0; j < 50 * 1000; j++) {
+            final Object[] objects = getObjects (j);
+            for (final Object o : objects) {
+                bt.put (o, o);
+            }
+        }
+
+      System.out.println ("Size of initialized map is " + bt.size ());  
+      int count = 0;
+        {
+            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<Map.Entry<Object, Object>> i = bt.entrySet ().iterator (); i.hasNext ();) {
+                            final Entry<Object, Object> e = i.next ();
+                            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 ();
+            }
+        }
+
+        count = 0;
+        for (final Map.Entry<Object, Object> kv : bt.entrySet ()) {
+            Object value = kv.getValue (); 
+            TestHelper.assertTrue (value instanceof String);
+            count++;
+        }
+        TestHelper.assertEquals (50000 + 2000 + 1000 + 100, count);
+        
+        final ConcurrentHashMap<Object, Object> removed = new ConcurrentHashMap<Object, Object> ();
+
+        {
+            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<Map.Entry<Object, Object>> i = bt.entrySet ().iterator (); i.hasNext ();) {
+                            final Entry<Object, Object> 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.shutdown ();
+            try {
+                es.awaitTermination (3600L, TimeUnit.SECONDS);
+            } catch (final InterruptedException e) {
+                e.printStackTrace ();
+            }
+        }
+
+        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 ());
+    }
+
+    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;
+    }
+
+    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;
+        } else 
+            return -1;
+        return val;
+    }
+
+    static Object[] getObjects (final int j) {
+        final Collection<Object> results = new LinkedList<Object> ();
+        results.add (Integer.valueOf (j));
+        if (j < 2000) {
+            results.add (Character.valueOf ((char) j));
+        }
+        if (j < 1000) {
+            results.add (Short.valueOf ((short) j));
+        }
+        if (j < 100) {
+            results.add (Byte.valueOf ((byte) j));
+        }
+
+        return results.toArray ();
+    }
+}
similarity index 96%
rename from third-party/triemap/src/test/java/com/romix/scala/collection/concurrent/TestReadOnlyAndUpdatableIterators.java
rename to third-party/triemap/src/test/java/org/opendaylight/yangtools/triemap/TestReadOnlyAndUpdatableIterators.java
index 7ff5b5d54d47cb5479a4f92c3271ca66ced1107f..878aa769d8de2800e3c3c01f6f6b10052dbe2d29 100644 (file)
-package com.romix.scala.collection.concurrent;\r
-\r
-import java.util.Iterator;\r
-import java.util.Map.Entry;\r
-\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-\r
-/***\r
- * \r
- * Test that read-only iterators do not allow for any updates.\r
- * Test that non read-only iterators allow for updates. \r
- *\r
- */\r
-public class TestReadOnlyAndUpdatableIterators {\r
-    TrieMap<Integer, Integer> bt;\r
-    private static final int MAP_SIZE = 200;\r
-    \r
-    @Before\r
-    public void setUp() {\r
-        bt = new TrieMap <Integer, Integer> ();\r
-        for (int j = 0; j < MAP_SIZE; j++) {\r
-            TestHelper.assertEquals (null, bt.put (Integer.valueOf (j), Integer.valueOf (j)));\r
-        }                \r
-    }\r
-    \r
-    @Test\r
-    public void testReadOnlyIterator () {\r
-        Iterator<Entry<Integer, Integer>> it = bt.readOnlyIterator ();\r
-        try {\r
-            it.next().setValue (0);\r
-            // It should have generated an exception, because it is a read-only iterator\r
-            TestHelper.assertFalse (true);\r
-        } catch (Exception e) {\r
-            \r
-        }\r
-        try {\r
-            it.remove ();\r
-            // It should have generated an exception, because it is a read-only iterator\r
-            TestHelper.assertFalse (true);\r
-        } catch (Exception e) {\r
-            \r
-        }\r
-    }\r
-\r
-    @Test\r
-    public void testReadOnlySnapshotReadOnlyIterator () {\r
-        TrieMap<Integer, Integer> roSnapshot = bt.readOnlySnapshot ();\r
-        Iterator<Entry<Integer, Integer>> it = roSnapshot.readOnlyIterator ();\r
-        try {\r
-            it.next().setValue (0);\r
-            // It should have generated an exception, because it is a read-only iterator\r
-            TestHelper.assertFalse (true);\r
-        } catch (Exception e) {\r
-            \r
-        }\r
-        try {\r
-            it.remove ();\r
-            // It should have generated an exception, because it is a read-only iterator\r
-            TestHelper.assertFalse (true);\r
-        } catch (Exception e) {\r
-            \r
-        }\r
-    }\r
-\r
-    @Test\r
-    public void testReadOnlySnapshotIterator () {\r
-        TrieMap<Integer, Integer> roSnapshot = bt.readOnlySnapshot ();\r
-        Iterator<Entry<Integer, Integer>> it = roSnapshot.iterator ();\r
-        try {\r
-            it.next().setValue (0);\r
-            // It should have generated an exception, because it is a read-only iterator\r
-            TestHelper.assertFalse (true);\r
-        } catch (Exception e) {\r
-            \r
-        }\r
-        try {\r
-            it.remove ();\r
-            // It should have generated an exception, because it is a read-only iterator\r
-            TestHelper.assertFalse (true);\r
-        } catch (Exception e) {\r
-            \r
-        }\r
-    }\r
-\r
-    @Test\r
-    public void testIterator () {\r
-        Iterator<Entry<Integer, Integer>> it = bt.iterator ();\r
-        try {\r
-            it.next().setValue (0);\r
-        } catch (Exception e) {\r
-            // It should not have generated an exception, because it is a non read-only iterator\r
-            TestHelper.assertFalse (true);            \r
-        }\r
-        \r
-        try {\r
-            it.remove ();\r
-        } catch (Exception e) {\r
-            // It should not have generated an exception, because it is a non read-only iterator\r
-            TestHelper.assertFalse (true);            \r
-        }\r
-        \r
-        // All changes are done on the original map\r
-        TestHelper.assertEquals (MAP_SIZE - 1, bt.size ());            \r
-    }\r
-\r
-    @Test\r
-    public void testSnapshotIterator () {\r
-        TrieMap<Integer, Integer> snapshot = bt.snapshot ();\r
-        Iterator<Entry<Integer, Integer>> it = snapshot.iterator ();\r
-        try {\r
-            it.next().setValue (0);\r
-        } catch (Exception e) {\r
-            // It should not have generated an exception, because it is a non read-only iterator\r
-            TestHelper.assertFalse (true);            \r
-        }\r
-        try {\r
-            it.remove ();\r
-        } catch (Exception e) {\r
-            // It should not have generated an exception, because it is a non read-only iterator\r
-            TestHelper.assertFalse (true);            \r
-        }\r
-\r
-        // All changes are done on the snapshot, not on the original map\r
-        // Map size should remain unchanged\r
-        TestHelper.assertEquals (MAP_SIZE, bt.size ());\r
-        // snapshot size was changed\r
-        TestHelper.assertEquals (MAP_SIZE-1, snapshot.size ());            \r
-    }\r
-}\r
+package org.opendaylight.yangtools.triemap;
+
+import java.util.Iterator;
+import java.util.Map.Entry;
+
+import org.junit.Before;
+import org.junit.Test;
+
+/***
+ * 
+ * Test that read-only iterators do not allow for any updates.
+ * Test that non read-only iterators allow for updates. 
+ *
+ */
+public class TestReadOnlyAndUpdatableIterators {
+    TrieMap<Integer, Integer> bt;
+    private static final int MAP_SIZE = 200;
+    
+    @Before
+    public void setUp() {
+        bt = new TrieMap <Integer, Integer> ();
+        for (int j = 0; j < MAP_SIZE; j++) {
+            TestHelper.assertEquals (null, bt.put (Integer.valueOf (j), Integer.valueOf (j)));
+        }                
+    }
+    
+    @Test
+    public void testReadOnlyIterator () {
+        Iterator<Entry<Integer, Integer>> 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) {
+            
+        }
+    }
+
+    @Test
+    public void testReadOnlySnapshotReadOnlyIterator () {
+        TrieMap<Integer, Integer> roSnapshot = bt.readOnlySnapshot ();
+        Iterator<Entry<Integer, Integer>> 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) {
+            
+        }
+        try {
+            it.remove ();
+            // It should have generated an exception, because it is a read-only iterator
+            TestHelper.assertFalse (true);
+        } catch (Exception e) {
+            
+        }
+    }
+
+    @Test
+    public void testReadOnlySnapshotIterator () {
+        TrieMap<Integer, Integer> roSnapshot = bt.readOnlySnapshot ();
+        Iterator<Entry<Integer, Integer>> 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) {
+            
+        }
+        try {
+            it.remove ();
+            // It should have generated an exception, because it is a read-only iterator
+            TestHelper.assertFalse (true);
+        } catch (Exception e) {
+            
+        }
+    }
+
+    @Test
+    public void testIterator () {
+        Iterator<Entry<Integer, Integer>> 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);            
+        }
+        
+        // All changes are done on the original map
+        TestHelper.assertEquals (MAP_SIZE - 1, bt.size ());            
+    }
+
+    @Test
+    public void testSnapshotIterator () {
+        TrieMap<Integer, Integer> snapshot = bt.snapshot ();
+        Iterator<Entry<Integer, Integer>> 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);            
+        }
+
+        // All changes are done on the snapshot, not on the original map
+        // Map size should remain unchanged
+        TestHelper.assertEquals (MAP_SIZE, bt.size ());
+        // snapshot size was changed
+        TestHelper.assertEquals (MAP_SIZE-1, snapshot.size ());            
+    }
+}