Automated tests for uthash
==============================================================================
Run "make" or "make debug" in this directory to build the tests and run them.
The latter usage activates the uthash internal debugging consistency checks.


test1:  make 10-item hash, iterate and print each one
test2:  make 10-item hash, lookup items with even keys, print
test3:  make 10-item hash, delete items with even keys, print others 
test4:  10 structs have dual hash handles, separate keys
test5:  10 structs have dual hash handles, lookup evens by alt key
test6:  test alt malloc macros
test7:  test alt malloc macros with 1000 structs so bucket expansion occurs
test8:  test num_items counter in UT_hash_handle
test9:  test "find" after bucket expansion
test10: dual-hash handle test, bucket expansion on one and not the other
test11: read dat file of names into hash, [nothing of interest]
test12: create hash with string keys, add 10 items, lookup each item
test13: make 10-item hash, delete items with even keys, reverse print others
test14: read dat file of names into hash, read file again and lookup each one
test15: build string-keyed hash of 3 items, lookup one item 
test16: hash on aggregate key, iterate, lookup, using generalized macros

keystats utility
================================================================================
 keystats takes a filename argument, containing a key dump obtained by 
          compiling application using -DHASH_EMIT_KEYS=3 and then running 
          application with 3>keyfile (any unused file descriptor can be used 
          instead of 3). keystats processes this key dump file, adding each
          key to a hash, and repeats the process for each built-in hash 
          function. Finally, statistics are printed for each hash function.
          The better hash functions are listed first. Example:

        % cc -I../src -DHASH_EMIT_KEYS=3 -o test14 test14.c
        % ./test14 1>test14.out 3>test14.keys
        % ./keystats test14.keys
fcn     hash_q     #items   #buckets      #dups      flags   add_usec  find_usec
--- ---------- ---------- ---------- ---------- ---------- ---------- ----------
BER   1.000000       1219        512          0         ok       1206        550
FNV   1.000000       1219        512          0         ok       1734        660
JEN   1.000000       1219        512          0         ok       2008        845
OAT   0.998897       1219        512          0         ok       1941        833
SAX   0.997514       1219       1024          0         ok       2217        674
JSW   0.994652       1219        512          0         ok       1369        608

Other files
================================================================================
bkt:    prints bucket number for input keys. Run without args for help.

