diff options
author | Chouser <chouser@n01se.net> | 2008-09-23 19:04:06 +0000 |
---|---|---|
committer | Chouser <chouser@n01se.net> | 2008-09-23 19:04:06 +0000 |
commit | 442d95e129e58eaecf76f4db583ad81c510cfad1 (patch) | |
tree | f6930051fbf1dfdd1420652bb75d4b99fa0bb089 /clojurescript/PersistentVector-test.js | |
parent | e71a98675ced585d9253e0dd7a8b1452ae3e6165 (diff) |
ClojureScript: integrate PersistentVector, plus better mimicking of Java class model.
Diffstat (limited to 'clojurescript/PersistentVector-test.js')
-rw-r--r-- | clojurescript/PersistentVector-test.js | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/clojurescript/PersistentVector-test.js b/clojurescript/PersistentVector-test.js deleted file mode 100644 index 240aa129..00000000 --- a/clojurescript/PersistentVector-test.js +++ /dev/null @@ -1,118 +0,0 @@ -function vToString( v ) { - var a = new Array( v.count() ); - for( var i = 0; i < v.count(); ++i ) { - a[ i ] = v.nth( i ); - } - return ['[', a.join(' '), ']'].join(''); -} - -var v = PersistentVector.EMPTY; -for( var i = 0; i < 100; ++i ) { - v = v.cons( i * 10 ); -} -print( vToString( v ) ); -print( vToString( v.assocN( 20, 999 ) ) ); - -var a = []; -for( v2 = v; v2.count() > 0; v2 = v2.pop() ) { - a.push( v2.peek() ); -} -print( a ); - -v = PersistentVector.EMPTY; -for( var i = 0; i < 100000; ++i ) { v = v.cons( i ); } -for(; v.count() > 0; v = v.pop() ) { v.peek() }; - - -print( vToString( PersistentVector.create( [ 'a', 'b', 'c', 'd', 'e' ] ) ) ); - -function time( msg, fn, reps ) { - reps = reps || 1; - var start = new Date(); - var last; - for( var i = 0; i < reps; ++i ) { - last = fn(); - } - var end = new Date(); - print( msg + ': ' + (end - start) + ' msecs' ); - return last; -} - -var Rand = (function(){ - var cycle = 1000000; - var rnd = new Array( cycle ); - var idx = -1; - for( var i = 0; i < cycle; ++i ) { - rnd[i] = Math.random(); - } - return { - reset: function() { idx = -1; }, - next: function( r ) { - idx = (idx + 1) % cycle; - return Math.floor( rnd[ idx ] * r ); - } - }; -})(); - -function suite( size, writes, reads, reps ) { - print( "Suite size: " + size + ", writes: " + writes + ", reads: " + reads ); - - var a = []; - var p = PersistentVector.EMPTY; - - time( " Array push", function() { - for( var i = 0; i < size; i++ ) { - a.push( i ); - } - }, reps ); - - time( " PV cons ", function() { - for( var i = 0; i < size; i++ ) { - p = p.cons( i ); - } - }, reps ); - - var ta = 0; - time( "Array", function() { - Rand.reset(); - for( var i = 0; i < writes; ++i ) { - a[ Rand.next( size ) ] = i; - } - for( var j = 0; j < reads; ++j ) { - ta += a[ Rand.next( size ) ]; - } - }, reps); - - var tp = 0; - time( "PV ", function() { - Rand.reset(); - for( var i = 0; i < writes; ++i ) { - p = p.assocN( Rand.next( size ), i ); - } - for( var j = 0; j < reads; ++j ) { - tp += p.nth( Rand.next( size ) ); - } - }, reps); - - print( "Done: " + ta + ", " + tp + "\n" ); -} - -suite( 100000, 10000, 20000 ); -suite( 30, 10000, 20000, 1000 ); -suite( 100000, 10000, 0 ); -suite( 30, 10000, 0 ); -suite( 100000, 0, 20000 ); -suite( 30, 0, 20000 ); - -/* -var p = PersistentVector.EMPTY; -for( var i = 0; i < 1088; i++ ) { -//for( var i = 0; i < 1056; i++ ) { - p = p.cons( i ); -} -print( p.nth( p.count() - 33 ) ) -print( p.cons("oops").nth( p.count() - 33 ) ) -*/ - -//print( PersistentVector.EMPTY.constructor ); -print('done'); |