Пример #1
0
 void t1(){
     printf("test 1, integers----\n");
     int keys[HCOUNT];
     int vals[HCOUNT];
     Hash h;
     Value v,w;
     
     for(int i=0;i<HCOUNT;i++){
         keys[i]=i*31;
         Types::tInteger->set(&v,keys[i]);
         vals[i]=rand()%100000;
         Types::tInteger->set(&w,vals[i]);
         h.set(&v,&w);
     }
     for(int i=0;i<HCOUNT;i++){
         Types::tInteger->set(&v,keys[i]);
         if(h.find(&v)){
             w.copy(h.getval());
             if(w.t != Types::tInteger)
                 die("value not an int");
             else if(w.toInt() != vals[i]){
                 printf("%d != %d\n",w.toInt(),vals[i]);
                 die("value mismatch");
             }
         } else
             die("key not found");
     }
 }
Пример #2
0
    void t2(){
        // string key checks
        
        printf("test 1, strings----\n");
        Hash h;
        Value v,w;
        char keys[HCOUNT][32];
        char vals[HCOUNT][32];
        
        for(int i=0;i<HCOUNT;i++){
            sprintf(keys[i],"foo%x",i*31);
            Types::tString->set(&v,keys[i]);
            sprintf(vals[i],"bar%d",rand()%100000);
            Types::tString->set(&w,vals[i]);
//            printf("%s %s\n",keys[i],vals[i]);
            h.set(&v,&w);
        }
        
        for(int i=0;i<HCOUNT;i++){
            Types::tString->set(&v,keys[i]);
            if(h.find(&v)){
                w.copy(h.getval());
                if(w.t != Types::tString)
                    die("value not an int");
                
                const StringBuffer& buf = w.toString();
                if(strcmp(buf.get(),vals[i])){
                    printf("%s != %s\n",buf.get(),vals[i]);
                    die("value mismatch");
                }
            } else
                die("key not found");
        }
    
    }
int main( int argc, char *argv[] ){

  for( unsigned char index=10; index > 0; index-- ){
    assert( hsh.set( int_to_str(index), index ) == index );
    assert( hsh.get(int_to_str(index)) == index );
  }

  for( unsigned char index=10; index; index-- ){
    assert( hsh.get( int_to_str(index) ) == index );
  }

  return 0x0000;  // EXIT_SUCCESS;
}