From ec05778d5718a7912e506764d443a78d6a6179e3 Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Mon, 5 Nov 2012 22:41:51 +0000 Subject: Converted tabs to spaces with tabconv. --- src/unit/hash.unit | 378 ++++++++++++++++++++++++++--------------------------- 1 file changed, 189 insertions(+), 189 deletions(-) (limited to 'src/unit/hash.unit') diff --git a/src/unit/hash.unit b/src/unit/hash.unit index 3abc6a5..e30c62b 100644 --- a/src/unit/hash.unit +++ b/src/unit/hash.unit @@ -19,193 +19,193 @@ typedef Bu::Hash IntStrHash; suite Hash { - test probe1 - { - StrIntHash h; - char buf[20]; - for(int i=1;i<10000;i++) - { - sprintf(buf,"%d",i); - Bu::String sTmp(buf); - h[sTmp] = i; - unitTest( h.has(sTmp) ); - } - } - - test insert1 - { - StrIntHash h; - h["Hi"] = 42; - unitTest( h["Hi"] == 42 ); - } - - test insert2 - { - StrStrHash h; - h["Hi"] = "Yo"; - h["Bye"] = "Later"; - unitTest( h["Hi"].getValue() == "Yo" ); - - StrStrHash h2(h); - unitTest( h2["Hi"].getValue() == "Yo" ); - unitTest( h2["Bye"].getValue() == "Later" ); - - StrStrHash h3; - h3 = h; - unitTest( h3["Hi"].getValue() == "Yo" ); - unitTest( h3["Bye"].getValue() == "Later" ); - } - - test insert3 - { - IntStrHash h; - - for( unsigned int i=1; i<50; i++ ) - { - h[i] = "testing"; - unitTest( h.getSize() == i ); - } - } - - test erase1 - { - StrIntHash h; - h.insert("Number 1", 1 ); - h.insert("Number 2", 2 ); - h.insert("Number 3", 3 ); - h.erase("Number 2"); - h.get("Number 3"); - try { - h.get("Number 2"); - unitFailed("h.get(\"Number 2\") should have thrown an exception."); - } catch( Bu::HashException &e ) { } - - /* printf("\n"); - for( StrIntHash::iterator i = h.begin(); i != h.end(); i++ ) - { - printf(" - \"%s\" = %d\n", i.getKey().getStr(), i.getValue() ); - } */ - } - - test copy - { - StrIntHash h; - h.insert("hello", 55 ); - h.insert("goodbye", -1812 ); - - StrIntHash h2 = h; - unitTest( h2.isCoreShared( h ) ); - - StrIntHash h3 = h.clone(); - unitTest( !h3.isCoreShared( h ) ); - } - - test reHashSpecial - { - IntStrHash hTest; - - setStepCount( 1000000 ); - for( int i=0; i<1000000; ++i ) - { - char buf[40]; snprintf(buf,40,"num%d",i); - incProgress(); - - if( ((double)random()/(double)RAND_MAX)<.01 ) - { - //printf("ERASE: %d (%s)\n",i%64,buf); - hTest.erase(i%64); - } - else - { - hTest[i%64]=buf; - } - - /*printf("(%d) size: %u fill: %u cap:%u\n", - i, - hTest.getSize(), - hTest.getFill(), - hTest.getCapacity() - );*/ - } - } - - test stress - { - srandom(time(NULL)); - - IntStrHash hTest; - IntStrHash hReUse; - setStepCount( 100000 ); - - for( int i=0; i<100000; ++i ) - { - char buf[40]; snprintf(buf,40,"num%d",i); - hTest[i] = buf; - incProgress(); - - - if( ((double)random()/(double)RAND_MAX)<.01 ) - { - Bu::List lKeys = hReUse.getKeys(); - Bu::List::const_iterator it = lKeys.begin(); - int iIdx = (int)(((double)random()/(double)RAND_MAX) - *lKeys.getSize()); - for( int l=0; it; ++it, ++l ) - { - if( l==iIdx ) - { - int iVal = *it; - hReUse.erase( *it ); - char buf[40]; snprintf(buf,40,"num%d",iVal); - hTest[i] = buf; - //printf("re-use: %s\n",buf); - } - } - } - - /*printf("(%s) size: %u fill: %u cap:%u\n", - buf, - hTest.getSize(), - hTest.getFill(), - hTest.getCapacity() - );*/ - - if( ((double)random()/(double)RAND_MAX)<.3 ) - { - Bu::List lKeys = hTest.getKeys(); - int iIdx = (int)(((double)random()/(double)RAND_MAX) - *lKeys.getSize()); - Bu::List::const_iterator it = lKeys.begin(); - for( int k=0; it; ++it, ++k ) - { - if( k == iIdx ) - { - hReUse.insert(*it,"yo"); - hTest.erase( *it ); - } - } - } - - if( hTest.getSize() > 100 ) - { - int iK = (int)(((double)random()/(double)RAND_MAX)*50)+10; - for( int j=0; j lKeys = hTest.getKeys(); - int iIdx = (int)(((double)random()/(double)RAND_MAX) - *lKeys.getSize()); - Bu::List::const_iterator it = lKeys.begin(); - for( int k=0; it; ++it, ++k ) - { - if( k == iIdx ) - { - hReUse.insert(*it,"yo"); - hTest.erase( *it ); - break; - } - } - } - } - } - } + test probe1 + { + StrIntHash h; + char buf[20]; + for(int i=1;i<10000;i++) + { + sprintf(buf,"%d",i); + Bu::String sTmp(buf); + h[sTmp] = i; + unitTest( h.has(sTmp) ); + } + } + + test insert1 + { + StrIntHash h; + h["Hi"] = 42; + unitTest( h["Hi"] == 42 ); + } + + test insert2 + { + StrStrHash h; + h["Hi"] = "Yo"; + h["Bye"] = "Later"; + unitTest( h["Hi"].getValue() == "Yo" ); + + StrStrHash h2(h); + unitTest( h2["Hi"].getValue() == "Yo" ); + unitTest( h2["Bye"].getValue() == "Later" ); + + StrStrHash h3; + h3 = h; + unitTest( h3["Hi"].getValue() == "Yo" ); + unitTest( h3["Bye"].getValue() == "Later" ); + } + + test insert3 + { + IntStrHash h; + + for( unsigned int i=1; i<50; i++ ) + { + h[i] = "testing"; + unitTest( h.getSize() == i ); + } + } + + test erase1 + { + StrIntHash h; + h.insert("Number 1", 1 ); + h.insert("Number 2", 2 ); + h.insert("Number 3", 3 ); + h.erase("Number 2"); + h.get("Number 3"); + try { + h.get("Number 2"); + unitFailed("h.get(\"Number 2\") should have thrown an exception."); + } catch( Bu::HashException &e ) { } + + /* printf("\n"); + for( StrIntHash::iterator i = h.begin(); i != h.end(); i++ ) + { + printf(" - \"%s\" = %d\n", i.getKey().getStr(), i.getValue() ); + } */ + } + + test copy + { + StrIntHash h; + h.insert("hello", 55 ); + h.insert("goodbye", -1812 ); + + StrIntHash h2 = h; + unitTest( h2.isCoreShared( h ) ); + + StrIntHash h3 = h.clone(); + unitTest( !h3.isCoreShared( h ) ); + } + + test reHashSpecial + { + IntStrHash hTest; + + setStepCount( 1000000 ); + for( int i=0; i<1000000; ++i ) + { + char buf[40]; snprintf(buf,40,"num%d",i); + incProgress(); + + if( ((double)random()/(double)RAND_MAX)<.01 ) + { + //printf("ERASE: %d (%s)\n",i%64,buf); + hTest.erase(i%64); + } + else + { + hTest[i%64]=buf; + } + + /*printf("(%d) size: %u fill: %u cap:%u\n", + i, + hTest.getSize(), + hTest.getFill(), + hTest.getCapacity() + );*/ + } + } + + test stress + { + srandom(time(NULL)); + + IntStrHash hTest; + IntStrHash hReUse; + setStepCount( 100000 ); + + for( int i=0; i<100000; ++i ) + { + char buf[40]; snprintf(buf,40,"num%d",i); + hTest[i] = buf; + incProgress(); + + + if( ((double)random()/(double)RAND_MAX)<.01 ) + { + Bu::List lKeys = hReUse.getKeys(); + Bu::List::const_iterator it = lKeys.begin(); + int iIdx = (int)(((double)random()/(double)RAND_MAX) + *lKeys.getSize()); + for( int l=0; it; ++it, ++l ) + { + if( l==iIdx ) + { + int iVal = *it; + hReUse.erase( *it ); + char buf[40]; snprintf(buf,40,"num%d",iVal); + hTest[i] = buf; + //printf("re-use: %s\n",buf); + } + } + } + + /*printf("(%s) size: %u fill: %u cap:%u\n", + buf, + hTest.getSize(), + hTest.getFill(), + hTest.getCapacity() + );*/ + + if( ((double)random()/(double)RAND_MAX)<.3 ) + { + Bu::List lKeys = hTest.getKeys(); + int iIdx = (int)(((double)random()/(double)RAND_MAX) + *lKeys.getSize()); + Bu::List::const_iterator it = lKeys.begin(); + for( int k=0; it; ++it, ++k ) + { + if( k == iIdx ) + { + hReUse.insert(*it,"yo"); + hTest.erase( *it ); + } + } + } + + if( hTest.getSize() > 100 ) + { + int iK = (int)(((double)random()/(double)RAND_MAX)*50)+10; + for( int j=0; j lKeys = hTest.getKeys(); + int iIdx = (int)(((double)random()/(double)RAND_MAX) + *lKeys.getSize()); + Bu::List::const_iterator it = lKeys.begin(); + for( int k=0; it; ++it, ++k ) + { + if( k == iIdx ) + { + hReUse.insert(*it,"yo"); + hTest.erase( *it ); + break; + } + } + } + } + } + } } -- cgit v1.2.3