/**
* Copyright 2010 JBoss Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.drools.util;
import org.drools.core.util.ObjectHashMap;
import junit.framework.TestCase;
public class ObjectHashMapTest2 extends TestCase {
public ObjectHashMapTest2() {
super();
}
public void testJUHashmap() {
final java.util.HashMap map = new java.util.HashMap();
assertNotNull( map );
final int count = 1000;
for ( int idx = 0; idx < count; idx++ ) {
final String key = "key" + idx;
final String val = "value" + idx;
map.put( key,
val );
assertEquals( val,
map.get( key ) );
}
}
public void testStringData() {
final ObjectHashMap map = new ObjectHashMap();
assertNotNull( map );
final int count = 1000;
for ( int idx = 0; idx < count; idx++ ) {
final String key = "key" + idx;
final String val = "value" + idx;
map.put( key,
val );
assertEquals( val,
map.get( key ) );
}
}
public void testStringDataDupFalse() {
final ObjectHashMap map = new ObjectHashMap();
assertNotNull( map );
final int count = 10000;
for ( int idx = 0; idx < count; idx++ ) {
final String key = "key" + idx;
final String val = "value" + idx;
map.put( key,
val,
false );
assertEquals( val,
map.get( key ) );
}
}
public void testIntegerData() {
final ObjectHashMap map = new ObjectHashMap();
assertNotNull( map );
final int count = 1000;
for ( int idx = 0; idx < count; idx++ ) {
final Integer key = new Integer( idx );
final Integer val = new Integer( idx );
map.put( key,
val );
assertEquals( val,
map.get( key ) );
}
}
public void testJUHashMap1() {
final int count = 100000;
final java.util.HashMap map = new java.util.HashMap();
assertNotNull( map );
final long start = System.currentTimeMillis();
for ( int idx = 0; idx < count; idx++ ) {
final String key = "key" + idx;
final String strval = "value" + idx;
map.put( key,
strval );
}
final long end = System.currentTimeMillis();
System.out.println( "java.util.HashMap put(key,value) ET - " + ((end - start)) );
}
public void testStringData2() {
final int count = 100000;
final ObjectHashMap map = new ObjectHashMap();
assertNotNull( map );
final long start = System.currentTimeMillis();
for ( int idx = 0; idx < count; idx++ ) {
final String key = "key" + idx;
final String strval = "value" + idx;
map.put( key,
strval );
}
final long end = System.currentTimeMillis();
System.out.println( "Custom ObjectHashMap put(key,value) ET - " + ((end - start)) );
}
public void testStringData3() {
final int count = 100000;
final ObjectHashMap map = new ObjectHashMap();
assertNotNull( map );
for ( int idx = 0; idx < count; idx++ ) {
final String key = "key" + idx;
final String strval = "value" + idx;
map.put( key,
strval );
}
final long start = System.currentTimeMillis();
for ( int idx = 0; idx < count; idx++ ) {
final String key = "key" + idx;
map.get( key );
}
final long end = System.currentTimeMillis();
System.out.println( "Custom ObjectHashMap get(key) ET - " + ((end - start)) );
}
public void testJUHashMap2() {
final int count = 100000;
final java.util.HashMap map = new java.util.HashMap();
assertNotNull( map );
for ( int idx = 0; idx < count; idx++ ) {
final String key = "key" + idx;
final String strval = "value" + idx;
map.put( key,
strval );
}
final long start = System.currentTimeMillis();
for ( int idx = 0; idx < count; idx++ ) {
final String key = "key" + idx;
map.get( key );
}
final long end = System.currentTimeMillis();
System.out.println( "java.util.HashMap get(key) ET - " + ((end - start)) );
}
public void testStringData4() {
final int count = 100000;
final ObjectHashMap map = new ObjectHashMap();
assertNotNull( map );
for ( int idx = 0; idx < count; idx++ ) {
final String key = "key" + idx;
final String strval = "value" + idx;
map.put( key,
strval );
}
final long start = System.currentTimeMillis();
final org.drools.core.util.Iterator itr = map.iterator();
Object val = null;
while ( (val = itr.next()) != null ) {
val.hashCode();
}
final long end = System.currentTimeMillis();
System.out.println( "Custom ObjectHashMap iterate ET - " + ((end - start)) );
}
public void testJUHashMap3() {
final int count = 100000;
final java.util.HashMap map = new java.util.HashMap();
assertNotNull( map );
for ( int idx = 0; idx < count; idx++ ) {
final String key = "key" + idx;
final String strval = "value" + idx;
map.put( key,
strval );
}
final long start = System.currentTimeMillis();
final java.util.Iterator itr = map.values().iterator();
while ( itr.hasNext() ) {
itr.next().hashCode();
}
final long end = System.currentTimeMillis();
System.out.println( "java.util.HashMap iterate ET - " + ((end - start)) );
}
public void testStringData5() {
final int count = 100000;
final ObjectHashMap map = new ObjectHashMap();
assertNotNull( map );
final long start = System.currentTimeMillis();
for ( int idx = 0; idx < count; idx++ ) {
final String key = "key" + idx;
final String strval = "value" + idx;
map.put( key,
strval,
false );
}
final long end = System.currentTimeMillis();
System.out.println( "Custom ObjectHashMap dup false ET - " + ((end - start)) );
}
public static void main(final String[] args) {
final ObjectHashMapTest2 test = new ObjectHashMapTest2();
final int loop = 5;
for ( int idx = 0; idx < loop; idx++ ) {
test.testIntegerData();
test.testStringData();
test.testJUHashmap();
test.testStringData2();
test.testJUHashMap1();
test.testStringData3();
test.testJUHashMap2();
test.testStringData4();
test.testJUHashMap3();
test.testStringData5();
test.testStringDataDupFalse();
System.out.println( " --------------- " );
}
}
}