diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/test_tdb_hash_functions.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/test_tdb_hash_functions.rb b/test/test_tdb_hash_functions.rb index 86c599a..cd43326 100644 --- a/test/test_tdb_hash_functions.rb +++ b/test/test_tdb_hash_functions.rb @@ -12,4 +12,34 @@ class TestHashFunctions < Test::Unit::TestCase assert_kind_of Integer, __send__("tdb_hash_#{name}", "hello") end end + + def test_distro_sequential + TDB::HASHES.each do |name,_| + next if :default == name + m = method "tdb_hash_#{name}" + tmp = Hash.new { |h,k| h[k] = 0 } + (1..100000).each do |s| + tmp[m.call(s.to_s) % 7] += 1 + end + assert_equal 7, tmp.size + tmp.each_value do |v| + assert_in_delta 100000/7.0, v, 1000 + end + end + end + + def test_distro_random + TDB::HASHES.each do |name,_| + next if :default == name + m = method "tdb_hash_#{name}" + tmp = Hash.new { |h,k| h[k] = 0 } + 100000.times do + tmp[m.call(rand.to_s) % 7] += 1 + end + assert_equal 7, tmp.size + tmp.each_value do |v| + assert_in_delta 100000/7.0, v, 1000 + end + end + end end |