From aedc34d55462a75e329bbf342251ff6504cd117e Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sun, 19 May 2024 17:56:33 -0400 Subject: Initial import from SVN --- .../src/main/java/net/wotonomy/test/TestMap.java | 164 +++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 projects/net.wotonomy.test/src/main/java/net/wotonomy/test/TestMap.java (limited to 'projects/net.wotonomy.test/src/main/java/net/wotonomy/test/TestMap.java') diff --git a/projects/net.wotonomy.test/src/main/java/net/wotonomy/test/TestMap.java b/projects/net.wotonomy.test/src/main/java/net/wotonomy/test/TestMap.java new file mode 100644 index 0000000..8a88e68 --- /dev/null +++ b/projects/net.wotonomy.test/src/main/java/net/wotonomy/test/TestMap.java @@ -0,0 +1,164 @@ +package net.wotonomy.test; + +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Random; +import java.util.StringTokenizer; + +import net.wotonomy.datastore.DataSoup; +import net.wotonomy.datastore.SerializedFileSoup; +import net.wotonomy.datastore.XMLFileSoup; +import net.wotonomy.foundation.internal.ValueConverter; + +public class TestMap extends HashMap +{ + public TestMap() + { + put( "date", new Date() ); + put( "firstName", randomParse( + "Bert|Ernie|Elmo|Zoe|Arthur|Emily|DJ|Grover|Oscar|Max|Big|Twinkle") ); + put( "middleName", new StringBuffer( randomParse( + "Rufus|Remy|Martin|Josephus|Ulysses|Homer|Bart|Tip|Onegin|Meredith|Jay") ) ); + put( "lastName", randomParse( + "Alejandro|Alexander|Bird|Gosling|Joy|Van Hoff|Pedia|Marr|McNealy|Ping") ); + put( "address", randomParse( "1|2|3|4" ) + randomParse( "0|1|00|10|5|50" ) + + randomParse( "0|00|1|01|5|05|9|09||000" ) + " " + randomParse( + "Merry|Berry|Perry|Jerry|Meadow|Falls|Elm|Raspberry|Strawberry") + " " + + randomParse( "Road|Lane|Court|Drive|Parkway|Terrace" ) ); + put( "city", randomParse( + "Springfield|Sterling|Cascades|Vienna|Reston|Paris|London|Runnymeade") ); + put( "state", randomParse( + "TX|NJ|NY|VA|DC|MD|NC|SC|WV|AR|FL|CA|TN" ) ); + put( "zip", ValueConverter.getInteger( + randomParse( "1|2|3|4" ) + "0" + randomParse( "0|1|2|3|5" ) + + randomParse( "6|7|8|9" ) + randomParse( "6|7|8|9" ) ) ); + put( "age", new Short( (short) ( new Random().nextDouble() * 40 + 18 ) ) ); + childCount = -1; + } + + protected int childCount; + public int getChildCount() + { + if ( childCount == -1 ) + { + //childCount = (int) ( random.nextDouble() * 6 ) - 3; // + 100; // tree scalability test + if ( childCount < 0 ) childCount = 0; + } + return childCount; + }; + + protected TestMap[] children; + public TestMap[] getChildren() + { + if ( get( "children" ) == null ) + { + int n = getChildCount(); + TestMap[] children = new TestMap[ n ]; + for ( int i = 0; i < n; i++ ) + { + children[i] = new TestMap(); + } + put( "children", children ); + } + return (TestMap[]) get( "children" ); + } + public void setChildren( TestMap[] aChildArray ) + { + put( "children", aChildArray ); + } + public List getChildList() + { + List result = new LinkedList(); + TestMap[] childArray = getChildren(); + for ( int i = 0; i < childArray.length; i++ ) + { + result.add( childArray[i] ); + } + return result; + } + public void setChildList( List aChildList ) + { + TestMap[] children = new TestMap[ aChildList.size() ]; + for ( int i = 0; i < children.length; i++ ) + { + children[i] = (TestMap) aChildList.get( i ); + } + setChildren( children ); + } + + public String getFullName() + { + return get( "firstName" ) + " " + get( "middleName" ) + " " + get( "lastName" ); + } + + public boolean equals( Object anObject ) + { + return anObject == this; + } + + public String toString() + { + return "[" + getClass().getName() + ":" + getFullName() + "]"; + } + + // statics + + private static Random random = new Random(); + private static String randomParse( String aString ) + { + String result = ""; + StringTokenizer tokens = new StringTokenizer( aString, "|" ); + int n = (int) ( random.nextDouble() * tokens.countTokens() ); + for ( int i = 0; i <= n; i++ ) + { + result = tokens.nextToken(); + } + return result; + } + + public static void main( String[] argv ) + { + int count = 100; + boolean xmlMode = false; + if ( argv.length > 0 ) + { + Integer parsed = ValueConverter.getInteger( argv[0] ); + if ( parsed != null ) count = parsed.intValue(); + + if ( argv.length > 1 ) + { + if ( argv[1].indexOf( "xml" ) > -1 ) + { + xmlMode = true; + } + } + } + +long millis = System.currentTimeMillis(); + + DataSoup store = null; + if ( xmlMode ) + { + store = new XMLFileSoup( "testMaps-xml" ); + } + else + { + store = new SerializedFileSoup( "testMaps-java" ); + } + + Object o; + for ( int i = 0; i < count; i++ ) + { + store.addObject( new TestMap() ); + } + /* + store.addIndex( "age", "age" ); + store.addIndex( "zipCode", "zipCode" ); + store.addIndex( "firstName", "firstName" ); + store.addIndex( "lastName", "lastName" ); +*/ +System.out.println( System.currentTimeMillis() - millis + " milliseconds" ); + } +} -- cgit v1.2.3