diff --git a/smhasher/0001-Add-support-for-aHash.patch b/smhasher/0001-Add-support-for-aHash.patch index 99a98d3..dcf7ad9 100644 --- a/smhasher/0001-Add-support-for-aHash.patch +++ b/smhasher/0001-Add-support-for-aHash.patch @@ -1,7 +1,7 @@ -From 426384ce34cf410d892eeeeeb7f6046d52bff8e7 Mon Sep 17 00:00:00 2001 +From 8d3446fbd6c73710ef2ea6bfe46fd3b7a1a787a7 Mon Sep 17 00:00:00 2001 From: Tom Kaitchuck -Date: Sat, 11 Jul 2020 17:15:56 -0700 -Subject: [PATCH] Add support for ahash +Date: Wed, 13 Jan 2021 21:56:02 -0800 +Subject: [PATCH] Add support for aHash --- CMakeLists.txt | 1 + @@ -12,26 +12,32 @@ Subject: [PATCH] Add support for ahash create mode 100644 ahash.h diff --git a/CMakeLists.txt b/CMakeLists.txt -index 6ebab1a..9d79e98 100644 +index 3420a56..921d111 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -470,10 +470,11 @@ add_executable( - target_link_libraries( - SMHasher - SMHasherSupport - ${HIGHWAY_LIB} - ${BLAKE3_LIB} -+ libahash_c.a - ${CMAKE_THREAD_LIBS_INIT} - ) +@@ -638,14 +638,15 @@ if(ipo_supported) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLTO") + # set_source_files_properties(main.cpp PROPERTIES COMPILE_FLAGS "-DLTO") + else() + message(STATUS "IPO / LTO not supported: <${error}>") + endif() - #add_executable( - # bittest + target_link_libraries(SMHasher SMHasherSupport ${HIGHWAY_LIB} ${BLAKE3_LIB} ++ libahash_c.a + ${CMAKE_THREAD_LIBS_INIT}) + + # add_executable( bittest bittest.cpp ) + # + # target_link_libraries( bittest SMHasherSupport ${CMAKE_THREAD_LIBS_INIT} ) + + if(NOT (CMAKE_CROSSCOMPILING)) diff --git a/Hashes.h b/Hashes.h -index 4e111c1..fcd3e38 100644 +index 472f4e4..9fae4e9 100644 --- a/Hashes.h +++ b/Hashes.h -@@ -19,10 +19,11 @@ +@@ -17,14 +17,15 @@ + #include "opt_cmetrohash.h" + #if defined(__SSE4_2__) && defined(__x86_64__) #include "metrohash/metrohash64crc.h" #include "metrohash/metrohash128crc.h" @@ -43,7 +49,11 @@ index 4e111c1..fcd3e38 100644 #include "jody_hash64.h" // objsize: 0-0x113 = 276 -@@ -356,10 +357,14 @@ inline void fasthash32_test ( const void * key, int len, uint32_t seed, void * o + #include "tifuhash.h" + // objsize: 5f0-85f = 623 +@@ -356,14 +357,18 @@ inline void cmetrohash64_2_test ( const void * key, int len, uint32_t seed, void + inline void fasthash32_test ( const void * key, int len, uint32_t seed, void * out ) { + *(uint32_t*)out = fasthash32(key, (size_t) len, seed); } #ifdef HAVE_INT64 inline void fasthash64_test ( const void * key, int len, uint32_t seed, void * out ) { @@ -58,6 +68,8 @@ index 4e111c1..fcd3e38 100644 // objsize 0-778: 1912 void mum_hash_test(const void * key, int len, uint32_t seed, void * out); + inline void mum_low_test ( const void * key, int len, uint32_t seed, void * out ) { + uint64_t result; diff --git a/ahash.h b/ahash.h new file mode 100644 index 0000000..6c59caf @@ -114,15 +126,17 @@ index 0000000..6c59caf +#endif \ No newline at end of file diff --git a/main.cpp b/main.cpp -index 04060f2..7489aaf 100644 +index e9cf20d..ae3d273 100644 --- a/main.cpp +++ b/main.cpp -@@ -263,11 +263,11 @@ HashInfo g_hashes[] = - - { xxh3_test, 64, 0x39CD9E4A, "xxh3", "xxHash v3, 64-bit", GOOD }, - { xxh3low_test, 32, 0xFAE8467B, "xxh3low", "xxHash v3, 64-bit, low 32-bits part", GOOD }, - { xxh128_test, 128, 0xEB61B3A0, "xxh128", "xxHash v3, 128-bit", GOOD }, - { xxh128low_test, 64, 0x54D1CC70, "xxh128low", "xxHash v3, 128-bit, low 64-bits part", GOOD }, +@@ -302,15 +302,15 @@ HashInfo g_hashes[] = + { MeowHash64_test, 64, 0xB04AC842, "MeowHash64low","MeowHash (requires x64 AES-NI)", POOR }, + { MeowHash128_test, 128, 0xA0D29861, "MeowHash", "MeowHash (requires x64 AES-NI)", POOR }, + #endif + { t1ha1_64le_test, 64, 0xD6836381, "t1ha1_64le", "Fast Positive Hash (portable, aims 64-bit, little-endian)", POOR }, + { t1ha1_64be_test, 64, 0x93F864DE, "t1ha1_64be", "Fast Positive Hash (portable, aims 64-bit, big-engian)", POOR }, + { t1ha0_32le_test, 64, 0x7F7D7B29, "t1ha0_32le", "Fast Positive Hash (portable, aims 32-bit, little-endian)", POOR }, + { t1ha0_32be_test, 64, 0xDA6A4061, "t1ha0_32be", "Fast Positive Hash (portable, aims 32-bit, big-endian)", POOR }, - + { ahash64_test, 64, 0x00000000, "ahash64", "ahash 64bit", GOOD }, //Expected value set to zero because aHash does not adhere to a fixed output. #if __WORDSIZE >= 64 @@ -130,6 +144,8 @@ index 04060f2..7489aaf 100644 #else // broken on certain travis # define TIFU_VERIF 0x0 + #endif + // and now the quality hash funcs, slowest first -- 2.25.1 diff --git a/smhasher/ahashOutput.txt b/smhasher/ahashOutput.txt index 3bc122b..fded10f 100644 --- a/smhasher/ahashOutput.txt +++ b/smhasher/ahashOutput.txt @@ -3,252 +3,252 @@ [[[ Sanity Tests ]]] -Verification value 0x84A46E17 ....... SKIP (self- or unseeded) +Verification value 0xE2190FCA ....... SKIP (self- or unseeded) Running sanity check 1 .......... PASS Running AppendedZeroesTest .......... PASS [[[ Speed Tests ]]] Bulk speed test - 262144-byte keys -Alignment 7 - 8.351 bytes/cycle - 23891.85 MiB/sec @ 3 ghz -Alignment 6 - 8.327 bytes/cycle - 23823.64 MiB/sec @ 3 ghz -Alignment 5 - 8.312 bytes/cycle - 23780.76 MiB/sec @ 3 ghz -Alignment 4 - 8.309 bytes/cycle - 23772.79 MiB/sec @ 3 ghz -Alignment 3 - 8.315 bytes/cycle - 23790.37 MiB/sec @ 3 ghz -Alignment 2 - 8.339 bytes/cycle - 23858.92 MiB/sec @ 3 ghz -Alignment 1 - 8.320 bytes/cycle - 23804.48 MiB/sec @ 3 ghz -Alignment 0 - 8.364 bytes/cycle - 23930.33 MiB/sec @ 3 ghz -Average - 8.330 bytes/cycle - 23831.64 MiB/sec @ 3 ghz - -Small key speed test - 1-byte keys - 11.98 cycles/hash -Small key speed test - 2-byte keys - 12.95 cycles/hash -Small key speed test - 3-byte keys - 13.00 cycles/hash -Small key speed test - 4-byte keys - 14.00 cycles/hash -Small key speed test - 5-byte keys - 14.28 cycles/hash -Small key speed test - 6-byte keys - 13.98 cycles/hash -Small key speed test - 7-byte keys - 14.24 cycles/hash -Small key speed test - 8-byte keys - 14.28 cycles/hash -Small key speed test - 9-byte keys - 14.18 cycles/hash -Small key speed test - 10-byte keys - 14.29 cycles/hash -Small key speed test - 11-byte keys - 14.12 cycles/hash -Small key speed test - 12-byte keys - 14.00 cycles/hash -Small key speed test - 13-byte keys - 14.00 cycles/hash -Small key speed test - 14-byte keys - 14.00 cycles/hash -Small key speed test - 15-byte keys - 14.23 cycles/hash -Small key speed test - 16-byte keys - 14.00 cycles/hash -Small key speed test - 17-byte keys - 16.05 cycles/hash -Small key speed test - 18-byte keys - 16.14 cycles/hash -Small key speed test - 19-byte keys - 16.00 cycles/hash -Small key speed test - 20-byte keys - 16.17 cycles/hash -Small key speed test - 21-byte keys - 16.00 cycles/hash -Small key speed test - 22-byte keys - 16.07 cycles/hash -Small key speed test - 23-byte keys - 16.13 cycles/hash -Small key speed test - 24-byte keys - 15.99 cycles/hash -Small key speed test - 25-byte keys - 16.12 cycles/hash -Small key speed test - 26-byte keys - 15.99 cycles/hash -Small key speed test - 27-byte keys - 16.00 cycles/hash -Small key speed test - 28-byte keys - 16.30 cycles/hash -Small key speed test - 29-byte keys - 18.11 cycles/hash -Small key speed test - 30-byte keys - 18.52 cycles/hash -Small key speed test - 31-byte keys - 17.98 cycles/hash -Average 15.132 cycles/hash +Alignment 7 - 19.377 bytes/cycle - 55438.91 MiB/sec @ 3 ghz +Alignment 6 - 19.474 bytes/cycle - 55716.64 MiB/sec @ 3 ghz +Alignment 5 - 19.361 bytes/cycle - 55392.61 MiB/sec @ 3 ghz +Alignment 4 - 19.471 bytes/cycle - 55708.26 MiB/sec @ 3 ghz +Alignment 3 - 19.363 bytes/cycle - 55399.03 MiB/sec @ 3 ghz +Alignment 2 - 19.312 bytes/cycle - 55252.57 MiB/sec @ 3 ghz +Alignment 1 - 19.248 bytes/cycle - 55068.56 MiB/sec @ 3 ghz +Alignment 0 - 20.429 bytes/cycle - 58448.42 MiB/sec @ 3 ghz +Average - 19.505 bytes/cycle - 55803.12 MiB/sec @ 3 ghz + +Small key speed test - 1-byte keys - 17.84 cycles/hash +Small key speed test - 2-byte keys - 17.90 cycles/hash +Small key speed test - 3-byte keys - 17.91 cycles/hash +Small key speed test - 4-byte keys - 17.96 cycles/hash +Small key speed test - 5-byte keys - 18.00 cycles/hash +Small key speed test - 6-byte keys - 18.00 cycles/hash +Small key speed test - 7-byte keys - 18.00 cycles/hash +Small key speed test - 8-byte keys - 18.00 cycles/hash +Small key speed test - 9-byte keys - 17.13 cycles/hash +Small key speed test - 10-byte keys - 18.30 cycles/hash +Small key speed test - 11-byte keys - 18.28 cycles/hash +Small key speed test - 12-byte keys - 18.00 cycles/hash +Small key speed test - 13-byte keys - 18.00 cycles/hash +Small key speed test - 14-byte keys - 18.31 cycles/hash +Small key speed test - 15-byte keys - 18.00 cycles/hash +Small key speed test - 16-byte keys - 18.27 cycles/hash +Small key speed test - 17-byte keys - 20.16 cycles/hash +Small key speed test - 18-byte keys - 19.70 cycles/hash +Small key speed test - 19-byte keys - 19.83 cycles/hash +Small key speed test - 20-byte keys - 19.60 cycles/hash +Small key speed test - 21-byte keys - 19.97 cycles/hash +Small key speed test - 22-byte keys - 19.71 cycles/hash +Small key speed test - 23-byte keys - 19.59 cycles/hash +Small key speed test - 24-byte keys - 19.84 cycles/hash +Small key speed test - 25-byte keys - 19.92 cycles/hash +Small key speed test - 26-byte keys - 19.80 cycles/hash +Small key speed test - 27-byte keys - 19.84 cycles/hash +Small key speed test - 28-byte keys - 19.60 cycles/hash +Small key speed test - 29-byte keys - 20.52 cycles/hash +Small key speed test - 30-byte keys - 20.44 cycles/hash +Small key speed test - 31-byte keys - 20.41 cycles/hash +Average 18.931 cycles/hash [[[ 'Hashmap' Speed Tests ]]] std::unordered_map -Init std HashMapTest: 270.009 cycles/op (102401 inserts, 1% deletions) -Running std HashMapTest: 120.593 cycles/op (3.6 stdv) +Init std HashMapTest: 453.695 cycles/op (102401 inserts, 1% deletions) +Running std HashMapTest: 123.393 cycles/op (2.0 stdv) greg7mdp/parallel-hashmap -Init fast HashMapTest: 110.896 cycles/op (102401 inserts, 1% deletions) -Running fast HashMapTest: 81.841 cycles/op (0.1 stdv) ....... PASS +Init fast HashMapTest: 113.578 cycles/op (102401 inserts, 1% deletions) +Running fast HashMapTest: 88.084 cycles/op (2.6 stdv) ....... PASS [[[ Avalanche Tests ]]] -Testing 24-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.702667% -Testing 32-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.670667% -Testing 40-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.608667% -Testing 48-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.670667% -Testing 56-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.670000% -Testing 64-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.663333% -Testing 72-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.780667% -Testing 80-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.716000% -Testing 96-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.621333% -Testing 112-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.642667% -Testing 128-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.629333% -Testing 160-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.747333% -Testing 512-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.757333% -Testing 1024-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.820000% +Testing 24-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.624667% +Testing 32-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.657333% +Testing 40-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.692000% +Testing 48-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.612667% +Testing 56-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.746000% +Testing 64-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.652000% +Testing 72-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.726667% +Testing 80-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.718667% +Testing 96-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.710667% +Testing 112-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.785333% +Testing 128-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.679333% +Testing 160-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.853333% +Testing 512-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.747333% +Testing 1024-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.807333% [[[ Keyset 'Sparse' Tests ]]] Keyset 'Sparse' - 16-bit keys with up to 9 bits set - 50643 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 0.3, actual 1 (3.35x) (1) ! -Testing collisions (high 19-25 bits) - Worst is 24 bits: 90/76 (1.18x) +Testing collisions (high 32-bit) - Expected 0.3, actual 0 (0.00x) +Testing collisions (high 19-25 bits) - Worst is 19 bits: 2365/2445 (0.97x) Testing collisions (high 12-bit) - Expected 46547.0, actual 46547 (1.00x) Testing collisions (high 8-bit) - Expected 50387.0, actual 50387 (1.00x) -Testing collisions (low 32-bit) - Expected 0.3, actual 0 (0.00x) -Testing collisions (low 19-25 bits) - Worst is 25 bits: 39/38 (1.02x) +Testing collisions (low 32-bit) - Expected 0.3, actual 1 (3.35x) (1) ! +Testing collisions (low 19-25 bits) - Worst is 25 bits: 44/38 (1.15x) Testing collisions (low 12-bit) - Expected 46547.0, actual 46547 (1.00x) Testing collisions (low 8-bit) - Expected 50387.0, actual 50387 (1.00x) -Testing distribution - Worst bias is the 13-bit window at bit 55 - 0.572% +Testing distribution - Worst bias is the 13-bit window at bit 62 - 0.529% Keyset 'Sparse' - 24-bit keys with up to 8 bits set - 1271626 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 188.2, actual 174 (0.92x) -Testing collisions (high 24-35 bits) - Worst is 26 bits: 12182/12047 (1.01x) +Testing collisions (high 32-bit) - Expected 188.2, actual 209 (1.11x) (21) +Testing collisions (high 24-35 bits) - Worst is 33 bits: 114/94 (1.21x) Testing collisions (high 12-bit) - Expected 1267530.0, actual 1267530 (1.00x) Testing collisions (high 8-bit) - Expected 1271370.0, actual 1271370 (1.00x) -Testing collisions (low 32-bit) - Expected 188.2, actual 201 (1.07x) (13) -Testing collisions (low 24-35 bits) - Worst is 32 bits: 201/188 (1.07x) +Testing collisions (low 32-bit) - Expected 188.2, actual 204 (1.08x) (16) +Testing collisions (low 24-35 bits) - Worst is 33 bits: 103/94 (1.09x) Testing collisions (low 12-bit) - Expected 1267530.0, actual 1267530 (1.00x) Testing collisions (low 8-bit) - Expected 1271370.0, actual 1271370 (1.00x) -Testing distribution - Worst bias is the 17-bit window at bit 53 - 0.082% +Testing distribution - Worst bias is the 17-bit window at bit 2 - 0.101% Keyset 'Sparse' - 32-bit keys with up to 7 bits set - 4514873 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 2373.0, actual 2366 (1.00x) (-7) -Testing collisions (high 25-38 bits) - Worst is 30 bits: 9627/9492 (1.01x) +Testing collisions (high 32-bit) - Expected 2373.0, actual 2435 (1.03x) (62) +Testing collisions (high 25-38 bits) - Worst is 35 bits: 321/296 (1.08x) Testing collisions (high 12-bit) - Expected 4510777.0, actual 4510777 (1.00x) Testing collisions (high 8-bit) - Expected 4514617.0, actual 4514617 (1.00x) -Testing collisions (low 32-bit) - Expected 2373.0, actual 2295 (0.97x) -Testing collisions (low 25-38 bits) - Worst is 30 bits: 9493/9492 (1.00x) +Testing collisions (low 32-bit) - Expected 2373.0, actual 2358 (0.99x) (-15) +Testing collisions (low 25-38 bits) - Worst is 36 bits: 177/148 (1.19x) Testing collisions (low 12-bit) - Expected 4510777.0, actual 4510777 (1.00x) Testing collisions (low 8-bit) - Expected 4514617.0, actual 4514617 (1.00x) -Testing distribution - Worst bias is the 19-bit window at bit 12 - 0.048% +Testing distribution - Worst bias is the 19-bit window at bit 11 - 0.051% Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 2461.7, actual 2561 (1.04x) (100) -Testing collisions (high 25-38 bits) - Worst is 32 bits: 2561/2461 (1.04x) +Testing collisions (high 32-bit) - Expected 2461.7, actual 2435 (0.99x) (-26) +Testing collisions (high 25-38 bits) - Worst is 37 bits: 87/76 (1.13x) Testing collisions (high 12-bit) - Expected 4594383.0, actual 4594383 (1.00x) Testing collisions (high 8-bit) - Expected 4598223.0, actual 4598223 (1.00x) -Testing collisions (low 32-bit) - Expected 2461.7, actual 2444 (0.99x) (-17) -Testing collisions (low 25-38 bits) - Worst is 35 bits: 323/307 (1.05x) +Testing collisions (low 32-bit) - Expected 2461.7, actual 2503 (1.02x) (42) +Testing collisions (low 25-38 bits) - Worst is 38 bits: 43/38 (1.12x) Testing collisions (low 12-bit) - Expected 4594383.0, actual 4594383 (1.00x) Testing collisions (low 8-bit) - Expected 4598223.0, actual 4598223 (1.00x) -Testing distribution - Worst bias is the 19-bit window at bit 2 - 0.056% +Testing distribution - Worst bias is the 18-bit window at bit 15 - 0.042% Keyset 'Sparse' - 48-bit keys with up to 6 bits set - 14196869 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 23463.6, actual 23431 (1.00x) (-32) -Testing collisions (high 27-42 bits) - Worst is 37 bits: 747/733 (1.02x) +Testing collisions (high 32-bit) - Expected 23463.6, actual 23382 (1.00x) (-81) +Testing collisions (high 27-42 bits) - Worst is 42 bits: 29/22 (1.27x) Testing collisions (high 12-bit) - Expected 14192773.0, actual 14192773 (1.00x) Testing collisions (high 8-bit) - Expected 14196613.0, actual 14196613 (1.00x) -Testing collisions (low 32-bit) - Expected 23463.6, actual 23284 (0.99x) (-179) -Testing collisions (low 27-42 bits) - Worst is 41 bits: 51/45 (1.11x) +Testing collisions (low 32-bit) - Expected 23463.6, actual 23449 (1.00x) (-14) +Testing collisions (low 27-42 bits) - Worst is 42 bits: 29/22 (1.27x) Testing collisions (low 12-bit) - Expected 14192773.0, actual 14192773 (1.00x) Testing collisions (low 8-bit) - Expected 14196613.0, actual 14196613 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 44 - 0.029% +Testing distribution - Worst bias is the 20-bit window at bit 2 - 0.020% Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 2069.7, actual 2053 (0.99x) (-16) -Testing collisions (high 25-38 bits) - Worst is 31 bits: 4136/4139 (1.00x) +Testing collisions (high 32-bit) - Expected 2069.7, actual 2004 (0.97x) +Testing collisions (high 25-38 bits) - Worst is 30 bits: 8414/8278 (1.02x) Testing collisions (high 12-bit) - Expected 4212327.0, actual 4212327 (1.00x) Testing collisions (high 8-bit) - Expected 4216167.0, actual 4216167 (1.00x) -Testing collisions (low 32-bit) - Expected 2069.7, actual 2058 (0.99x) (-11) -Testing collisions (low 25-38 bits) - Worst is 30 bits: 8320/8278 (1.00x) +Testing collisions (low 32-bit) - Expected 2069.7, actual 2045 (0.99x) (-24) +Testing collisions (low 25-38 bits) - Worst is 38 bits: 37/32 (1.14x) Testing collisions (low 12-bit) - Expected 4212327.0, actual 4212327 (1.00x) Testing collisions (low 8-bit) - Expected 4216167.0, actual 4216167 (1.00x) -Testing distribution - Worst bias is the 18-bit window at bit 26 - 0.051% +Testing distribution - Worst bias is the 19-bit window at bit 9 - 0.053% Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 8026.9, actual 8024 (1.00x) (-2) -Testing collisions (high 26-40 bits) - Worst is 37 bits: 267/250 (1.06x) +Testing collisions (high 32-bit) - Expected 8026.9, actual 8097 (1.01x) (71) +Testing collisions (high 26-40 bits) - Worst is 40 bits: 39/31 (1.24x) Testing collisions (high 12-bit) - Expected 8299537.0, actual 8299537 (1.00x) Testing collisions (high 8-bit) - Expected 8303377.0, actual 8303377 (1.00x) -Testing collisions (low 32-bit) - Expected 8026.9, actual 8006 (1.00x) (-20) -Testing collisions (low 26-40 bits) - Worst is 40 bits: 34/31 (1.08x) +Testing collisions (low 32-bit) - Expected 8026.9, actual 7983 (0.99x) (-43) +Testing collisions (low 26-40 bits) - Worst is 40 bits: 39/31 (1.24x) Testing collisions (low 12-bit) - Expected 8299537.0, actual 8299537 (1.00x) Testing collisions (low 8-bit) - Expected 8303377.0, actual 8303377 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 25 - 0.041% +Testing distribution - Worst bias is the 20-bit window at bit 27 - 0.031% Keyset 'Sparse' - 72-bit keys with up to 5 bits set - 15082603 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 26482.7, actual 26443 (1.00x) (-39) -Testing collisions (high 27-42 bits) - Worst is 42 bits: 33/25 (1.28x) +Testing collisions (high 32-bit) - Expected 26482.7, actual 26599 (1.00x) (117) +Testing collisions (high 27-42 bits) - Worst is 40 bits: 108/103 (1.04x) Testing collisions (high 12-bit) - Expected 15078507.0, actual 15078507 (1.00x) Testing collisions (high 8-bit) - Expected 15082347.0, actual 15082347 (1.00x) -Testing collisions (low 32-bit) - Expected 26482.7, actual 26586 (1.00x) (104) +Testing collisions (low 32-bit) - Expected 26482.7, actual 26491 (1.00x) (9) Testing collisions (low 27-42 bits) - Worst is 42 bits: 29/25 (1.12x) Testing collisions (low 12-bit) - Expected 15078507.0, actual 15078507 (1.00x) Testing collisions (low 8-bit) - Expected 15082347.0, actual 15082347 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 31 - 0.033% +Testing distribution - Worst bias is the 20-bit window at bit 18 - 0.020% Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1401.3, actual 1457 (1.04x) (56) -Testing collisions (high 25-38 bits) - Worst is 32 bits: 1457/1401 (1.04x) +Testing collisions (high 32-bit) - Expected 1401.3, actual 1380 (0.98x) (-21) +Testing collisions (high 25-38 bits) - Worst is 31 bits: 2830/2802 (1.01x) Testing collisions (high 12-bit) - Expected 3465401.0, actual 3465401 (1.00x) Testing collisions (high 8-bit) - Expected 3469241.0, actual 3469241 (1.00x) -Testing collisions (low 32-bit) - Expected 1401.3, actual 1390 (0.99x) (-11) -Testing collisions (low 25-38 bits) - Worst is 38 bits: 26/21 (1.19x) +Testing collisions (low 32-bit) - Expected 1401.3, actual 1350 (0.96x) +Testing collisions (low 25-38 bits) - Worst is 34 bits: 347/350 (0.99x) Testing collisions (low 12-bit) - Expected 3465401.0, actual 3465401 (1.00x) Testing collisions (low 8-bit) - Expected 3469241.0, actual 3469241 (1.00x) -Testing distribution - Worst bias is the 19-bit window at bit 52 - 0.070% +Testing distribution - Worst bias is the 19-bit window at bit 14 - 0.052% Keyset 'Sparse' - 160-bit keys with up to 4 bits set - 26977161 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 84723.3, actual 84650 (1.00x) (-73) -Testing collisions (high 28-44 bits) - Worst is 40 bits: 336/330 (1.02x) +Testing collisions (high 32-bit) - Expected 84723.3, actual 84639 (1.00x) (-84) +Testing collisions (high 28-44 bits) - Worst is 40 bits: 343/330 (1.04x) Testing collisions (high 12-bit) - Expected 26973065.0, actual 26973065 (1.00x) Testing collisions (high 8-bit) - Expected 26976905.0, actual 26976905 (1.00x) -Testing collisions (low 32-bit) - Expected 84723.3, actual 84029 (0.99x) (-694) -Testing collisions (low 28-44 bits) - Worst is 37 bits: 2744/2647 (1.04x) +Testing collisions (low 32-bit) - Expected 84723.3, actual 84648 (1.00x) (-75) +Testing collisions (low 28-44 bits) - Worst is 41 bits: 174/165 (1.05x) Testing collisions (low 12-bit) - Expected 26973065.0, actual 26973065 (1.00x) Testing collisions (low 8-bit) - Expected 26976905.0, actual 26976905 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 57 - 0.013% +Testing distribution - Worst bias is the 20-bit window at bit 5 - 0.012% Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 910.4, actual 903 (0.99x) (-7) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 29/28 (1.02x) +Testing collisions (high 32-bit) - Expected 910.4, actual 935 (1.03x) (25) +Testing collisions (high 25-37 bits) - Worst is 34 bits: 234/227 (1.03x) Testing collisions (high 12-bit) - Expected 2792321.0, actual 2792321 (1.00x) Testing collisions (high 8-bit) - Expected 2796161.0, actual 2796161 (1.00x) -Testing collisions (low 32-bit) - Expected 910.4, actual 855 (0.94x) -Testing collisions (low 25-37 bits) - Worst is 28 bits: 14588/14565 (1.00x) +Testing collisions (low 32-bit) - Expected 910.4, actual 872 (0.96x) +Testing collisions (low 25-37 bits) - Worst is 31 bits: 1806/1820 (0.99x) Testing collisions (low 12-bit) - Expected 2792321.0, actual 2792321 (1.00x) Testing collisions (low 8-bit) - Expected 2796161.0, actual 2796161 (1.00x) -Testing distribution - Worst bias is the 19-bit window at bit 7 - 0.112% +Testing distribution - Worst bias is the 19-bit window at bit 23 - 0.110% Keyset 'Sparse' - 512-bit keys with up to 3 bits set - 22370049 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 58256.4, actual 58578 (1.01x) (322) -Testing collisions (high 28-43 bits) - Worst is 43 bits: 32/28 (1.12x) +Testing collisions (high 32-bit) - Expected 58256.4, actual 57953 (0.99x) (-303) +Testing collisions (high 28-43 bits) - Worst is 43 bits: 37/28 (1.30x) Testing collisions (high 12-bit) - Expected 22365953.0, actual 22365953 (1.00x) Testing collisions (high 8-bit) - Expected 22369793.0, actual 22369793 (1.00x) -Testing collisions (low 32-bit) - Expected 58256.4, actual 58543 (1.00x) (287) -Testing collisions (low 28-43 bits) - Worst is 36 bits: 3712/3641 (1.02x) +Testing collisions (low 32-bit) - Expected 58256.4, actual 57776 (0.99x) (-480) +Testing collisions (low 28-43 bits) - Worst is 36 bits: 3638/3641 (1.00x) Testing collisions (low 12-bit) - Expected 22365953.0, actual 22365953 (1.00x) Testing collisions (low 8-bit) - Expected 22369793.0, actual 22369793 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 43 - 0.015% +Testing distribution - Worst bias is the 20-bit window at bit 40 - 0.015% Keyset 'Sparse' - 1024-bit keys with up to 2 bits set - 524801 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 32.1, actual 35 (1.09x) (3) -Testing collisions (high 22-32 bits) - Worst is 32 bits: 35/32 (1.09x) +Testing collisions (high 32-bit) - Expected 32.1, actual 34 (1.06x) (2) +Testing collisions (high 22-32 bits) - Worst is 27 bits: 1093/1026 (1.07x) Testing collisions (high 12-bit) - Expected 520705.0, actual 520705 (1.00x) Testing collisions (high 8-bit) - Expected 524545.0, actual 524545 (1.00x) -Testing collisions (low 32-bit) - Expected 32.1, actual 38 (1.19x) (6) -Testing collisions (low 22-32 bits) - Worst is 32 bits: 38/32 (1.19x) +Testing collisions (low 32-bit) - Expected 32.1, actual 29 (0.90x) +Testing collisions (low 22-32 bits) - Worst is 26 bits: 2053/2052 (1.00x) Testing collisions (low 12-bit) - Expected 520705.0, actual 520705 (1.00x) Testing collisions (low 8-bit) - Expected 524545.0, actual 524545 (1.00x) -Testing distribution - Worst bias is the 16-bit window at bit 17 - 0.142% +Testing distribution - Worst bias is the 16-bit window at bit 12 - 0.112% Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.5, actual 488 (0.95x) -Testing collisions (high 24-36 bits) - Worst is 30 bits: 2050/2050 (1.00x) +Testing collisions (high 32-bit) - Expected 512.5, actual 526 (1.03x) (14) +Testing collisions (high 24-36 bits) - Worst is 31 bits: 1079/1025 (1.05x) Testing collisions (high 12-bit) - Expected 2094081.0, actual 2094081 (1.00x) Testing collisions (high 8-bit) - Expected 2097921.0, actual 2097921 (1.00x) -Testing collisions (low 32-bit) - Expected 512.5, actual 523 (1.02x) (11) -Testing collisions (low 24-36 bits) - Worst is 34 bits: 147/128 (1.15x) +Testing collisions (low 32-bit) - Expected 512.5, actual 516 (1.01x) (4) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 35/32 (1.09x) Testing collisions (low 12-bit) - Expected 2094081.0, actual 2094081 (1.00x) Testing collisions (low 8-bit) - Expected 2097921.0, actual 2097921 (1.00x) -Testing distribution - Worst bias is the 18-bit window at bit 57 - 0.080% +Testing distribution - Worst bias is the 18-bit window at bit 56 - 0.077% [[[ Keyset 'Permutation' Tests ]]] @@ -256,211 +256,211 @@ Testing distribution - Worst bias is the 18-bit window at bit 57 - 0.080% Combination Lowbits Tests: Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 668.7, actual 645 (0.96x) -Testing collisions (high 25-37 bits) - Worst is 35 bits: 94/83 (1.12x) +Testing collisions (high 32-bit) - Expected 668.7, actual 670 (1.00x) (2) +Testing collisions (high 25-37 bits) - Worst is 36 bits: 57/41 (1.36x) Testing collisions (high 12-bit) - Expected 2392648.0, actual 2392648 (1.00x) Testing collisions (high 8-bit) - Expected 2396488.0, actual 2396488 (1.00x) -Testing collisions (low 32-bit) - Expected 668.7, actual 693 (1.04x) (25) -Testing collisions (low 25-37 bits) - Worst is 35 bits: 98/83 (1.17x) +Testing collisions (low 32-bit) - Expected 668.7, actual 671 (1.00x) (3) +Testing collisions (low 25-37 bits) - Worst is 36 bits: 47/41 (1.12x) Testing collisions (low 12-bit) - Expected 2392648.0, actual 2392648 (1.00x) Testing collisions (low 8-bit) - Expected 2396488.0, actual 2396488 (1.00x) -Testing distribution - Worst bias is the 17-bit window at bit 45 - 0.076% +Testing distribution - Worst bias is the 18-bit window at bit 38 - 0.045% Combination Highbits Tests Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 668.7, actual 682 (1.02x) (14) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 26/20 (1.24x) +Testing collisions (high 32-bit) - Expected 668.7, actual 675 (1.01x) (7) +Testing collisions (high 25-37 bits) - Worst is 36 bits: 47/41 (1.12x) Testing collisions (high 12-bit) - Expected 2392648.0, actual 2392648 (1.00x) Testing collisions (high 8-bit) - Expected 2396488.0, actual 2396488 (1.00x) -Testing collisions (low 32-bit) - Expected 668.7, actual 690 (1.03x) (22) -Testing collisions (low 25-37 bits) - Worst is 36 bits: 47/41 (1.12x) +Testing collisions (low 32-bit) - Expected 668.7, actual 705 (1.05x) (37) +Testing collisions (low 25-37 bits) - Worst is 36 bits: 56/41 (1.34x) Testing collisions (low 12-bit) - Expected 2392648.0, actual 2392648 (1.00x) Testing collisions (low 8-bit) - Expected 2396488.0, actual 2396488 (1.00x) -Testing distribution - Worst bias is the 18-bit window at bit 13 - 0.059% +Testing distribution - Worst bias is the 18-bit window at bit 36 - 0.076% Combination Hi-Lo Tests: Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 17339.3, actual 17195 (0.99x) (-144) -Testing collisions (high 27-41 bits) - Worst is 40 bits: 72/67 (1.06x) +Testing collisions (high 32-bit) - Expected 17339.3, actual 17329 (1.00x) (-10) +Testing collisions (high 27-41 bits) - Worst is 40 bits: 79/67 (1.17x) Testing collisions (high 12-bit) - Expected 12200144.0, actual 12200144 (1.00x) Testing collisions (high 8-bit) - Expected 12203984.0, actual 12203984 (1.00x) -Testing collisions (low 32-bit) - Expected 17339.3, actual 17096 (0.99x) (-243) -Testing collisions (low 27-41 bits) - Worst is 41 bits: 36/33 (1.06x) +Testing collisions (low 32-bit) - Expected 17339.3, actual 17439 (1.01x) (100) +Testing collisions (low 27-41 bits) - Worst is 41 bits: 38/33 (1.12x) Testing collisions (low 12-bit) - Expected 12200144.0, actual 12200144 (1.00x) Testing collisions (low 8-bit) - Expected 12203984.0, actual 12203984 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 48 - 0.026% +Testing distribution - Worst bias is the 20-bit window at bit 42 - 0.032% Combination 0x8000000 Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 8192.0, actual 8190 (1.00x) (-1) -Testing collisions (high 26-40 bits) - Worst is 40 bits: 43/31 (1.34x) +Testing collisions (high 32-bit) - Expected 8192.0, actual 8212 (1.00x) (21) +Testing collisions (high 26-40 bits) - Worst is 31 bits: 16527/16383 (1.01x) Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing collisions (low 32-bit) - Expected 8192.0, actual 8149 (0.99x) (-42) -Testing collisions (low 26-40 bits) - Worst is 37 bits: 272/255 (1.06x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8167 (1.00x) (-24) +Testing collisions (low 26-40 bits) - Worst is 40 bits: 40/31 (1.25x) Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 54 - 0.052% +Testing distribution - Worst bias is the 20-bit window at bit 57 - 0.039% Combination 0x0000001 Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 8192.0, actual 8262 (1.01x) (71) -Testing collisions (high 26-40 bits) - Worst is 39 bits: 71/63 (1.11x) +Testing collisions (high 32-bit) - Expected 8192.0, actual 8330 (1.02x) (139) +Testing collisions (high 26-40 bits) - Worst is 40 bits: 38/31 (1.19x) Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing collisions (low 32-bit) - Expected 8192.0, actual 8167 (1.00x) (-24) -Testing collisions (low 26-40 bits) - Worst is 34 bits: 2066/2047 (1.01x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8247 (1.01x) (56) +Testing collisions (low 26-40 bits) - Worst is 40 bits: 37/31 (1.16x) Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 2 - 0.049% +Testing distribution - Worst bias is the 20-bit window at bit 31 - 0.037% Combination 0x800000000000000 Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 8192.0, actual 8224 (1.00x) (33) -Testing collisions (high 26-40 bits) - Worst is 40 bits: 38/31 (1.19x) +Testing collisions (high 32-bit) - Expected 8192.0, actual 8173 (1.00x) (-18) +Testing collisions (high 26-40 bits) - Worst is 36 bits: 527/511 (1.03x) Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing collisions (low 32-bit) - Expected 8192.0, actual 8182 (1.00x) (-9) -Testing collisions (low 26-40 bits) - Worst is 30 bits: 32790/32767 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 7959 (0.97x) +Testing collisions (low 26-40 bits) - Worst is 36 bits: 510/511 (1.00x) Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 37 - 0.045% +Testing distribution - Worst bias is the 20-bit window at bit 56 - 0.038% Combination 0x000000000000001 Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 8192.0, actual 8173 (1.00x) (-18) -Testing collisions (high 26-40 bits) - Worst is 34 bits: 2054/2047 (1.00x) +Testing collisions (high 32-bit) - Expected 8192.0, actual 8131 (0.99x) (-60) +Testing collisions (high 26-40 bits) - Worst is 30 bits: 32886/32767 (1.00x) Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing collisions (low 32-bit) - Expected 8192.0, actual 8313 (1.01x) (122) -Testing collisions (low 26-40 bits) - Worst is 40 bits: 37/31 (1.16x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8199 (1.00x) (8) +Testing collisions (low 26-40 bits) - Worst is 34 bits: 2085/2047 (1.02x) Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 20 - 0.037% +Testing distribution - Worst bias is the 20-bit window at bit 17 - 0.037% Combination 16-bytes [0-1] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 8192.0, actual 8316 (1.02x) (125) -Testing collisions (high 26-40 bits) - Worst is 36 bits: 545/511 (1.06x) +Testing collisions (high 32-bit) - Expected 8192.0, actual 8230 (1.00x) (39) +Testing collisions (high 26-40 bits) - Worst is 36 bits: 559/511 (1.09x) Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing collisions (low 32-bit) - Expected 8192.0, actual 8278 (1.01x) (87) -Testing collisions (low 26-40 bits) - Worst is 40 bits: 36/31 (1.13x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8238 (1.01x) (47) +Testing collisions (low 26-40 bits) - Worst is 32 bits: 8238/8191 (1.01x) Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 22 - 0.041% +Testing distribution - Worst bias is the 20-bit window at bit 0 - 0.032% Combination 16-bytes [0-last] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 8192.0, actual 8106 (0.99x) (-85) -Testing collisions (high 26-40 bits) - Worst is 38 bits: 142/127 (1.11x) +Testing collisions (high 32-bit) - Expected 8192.0, actual 8053 (0.98x) (-138) +Testing collisions (high 26-40 bits) - Worst is 29 bits: 65079/65535 (0.99x) Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing collisions (low 32-bit) - Expected 8192.0, actual 8250 (1.01x) (59) -Testing collisions (low 26-40 bits) - Worst is 39 bits: 75/63 (1.17x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8319 (1.02x) (128) +Testing collisions (low 26-40 bits) - Worst is 39 bits: 74/63 (1.16x) Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 28 - 0.039% +Testing distribution - Worst bias is the 20-bit window at bit 32 - 0.041% Combination 32-bytes [0-1] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 8192.0, actual 8337 (1.02x) (146) -Testing collisions (high 26-40 bits) - Worst is 40 bits: 35/31 (1.09x) +Testing collisions (high 32-bit) - Expected 8192.0, actual 8260 (1.01x) (69) +Testing collisions (high 26-40 bits) - Worst is 32 bits: 8260/8191 (1.01x) Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing collisions (low 32-bit) - Expected 8192.0, actual 8248 (1.01x) (57) -Testing collisions (low 26-40 bits) - Worst is 40 bits: 37/31 (1.16x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8311 (1.01x) (120) +Testing collisions (low 26-40 bits) - Worst is 36 bits: 530/511 (1.04x) Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 25 - 0.038% +Testing distribution - Worst bias is the 20-bit window at bit 19 - 0.026% Combination 32-bytes [0-last] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 8192.0, actual 8227 (1.00x) (36) -Testing collisions (high 26-40 bits) - Worst is 35 bits: 1047/1023 (1.02x) +Testing collisions (high 32-bit) - Expected 8192.0, actual 8250 (1.01x) (59) +Testing collisions (high 26-40 bits) - Worst is 38 bits: 133/127 (1.04x) Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing collisions (low 32-bit) - Expected 8192.0, actual 8191 (1.00x) -Testing collisions (low 26-40 bits) - Worst is 39 bits: 73/63 (1.14x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8167 (1.00x) (-24) +Testing collisions (low 26-40 bits) - Worst is 39 bits: 66/63 (1.03x) Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 35 - 0.043% +Testing distribution - Worst bias is the 20-bit window at bit 36 - 0.036% Combination 64-bytes [0-1] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 8192.0, actual 8221 (1.00x) (30) -Testing collisions (high 26-40 bits) - Worst is 39 bits: 73/63 (1.14x) +Testing collisions (high 32-bit) - Expected 8192.0, actual 8174 (1.00x) (-17) +Testing collisions (high 26-40 bits) - Worst is 39 bits: 66/63 (1.03x) Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing collisions (low 32-bit) - Expected 8192.0, actual 8060 (0.98x) (-131) -Testing collisions (low 26-40 bits) - Worst is 29 bits: 65173/65535 (0.99x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8301 (1.01x) (110) +Testing collisions (low 26-40 bits) - Worst is 37 bits: 272/255 (1.06x) Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 8 - 0.060% +Testing distribution - Worst bias is the 20-bit window at bit 17 - 0.043% Combination 64-bytes [0-last] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 8192.0, actual 8254 (1.01x) (63) -Testing collisions (high 26-40 bits) - Worst is 38 bits: 137/127 (1.07x) +Testing collisions (high 32-bit) - Expected 8192.0, actual 8110 (0.99x) (-81) +Testing collisions (high 26-40 bits) - Worst is 39 bits: 77/63 (1.20x) Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing collisions (low 32-bit) - Expected 8192.0, actual 8101 (0.99x) (-90) -Testing collisions (low 26-40 bits) - Worst is 37 bits: 260/255 (1.02x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8261 (1.01x) (70) +Testing collisions (low 26-40 bits) - Worst is 32 bits: 8261/8191 (1.01x) Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 41 - 0.040% +Testing distribution - Worst bias is the 20-bit window at bit 26 - 0.043% Combination 128-bytes [0-1] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 8192.0, actual 8141 (0.99x) (-50) -Testing collisions (high 26-40 bits) - Worst is 40 bits: 33/31 (1.03x) +Testing collisions (high 32-bit) - Expected 8192.0, actual 7947 (0.97x) +Testing collisions (high 26-40 bits) - Worst is 35 bits: 1036/1023 (1.01x) Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing collisions (low 32-bit) - Expected 8192.0, actual 8340 (1.02x) (149) -Testing collisions (low 26-40 bits) - Worst is 40 bits: 38/31 (1.19x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8127 (0.99x) (-64) +Testing collisions (low 26-40 bits) - Worst is 39 bits: 79/63 (1.23x) Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 39 - 0.062% +Testing distribution - Worst bias is the 20-bit window at bit 17 - 0.030% Combination 128-bytes [0-last] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) Testing collisions (high 32-bit) - Expected 8192.0, actual 8309 (1.01x) (118) -Testing collisions (high 26-40 bits) - Worst is 37 bits: 275/255 (1.07x) +Testing collisions (high 26-40 bits) - Worst is 34 bits: 2086/2047 (1.02x) Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing collisions (low 32-bit) - Expected 8192.0, actual 8176 (1.00x) (-15) -Testing collisions (low 26-40 bits) - Worst is 36 bits: 561/511 (1.10x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8190 (1.00x) (-1) +Testing collisions (low 26-40 bits) - Worst is 38 bits: 152/127 (1.19x) Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 17 - 0.032% +Testing distribution - Worst bias is the 20-bit window at bit 32 - 0.045% [[[ Keyset 'Window' Tests ]]] @@ -504,213 +504,213 @@ Window at 32 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0 Keyset 'Cyclic' - 8 cycles of 8 bytes - 1000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 116.4, actual 119 (1.02x) (3) -Testing collisions (high 23-34 bits) - Worst is 32 bits: 119/116 (1.02x) +Testing collisions (high 32-bit) - Expected 116.4, actual 121 (1.04x) (5) +Testing collisions (high 23-34 bits) - Worst is 33 bits: 63/58 (1.08x) Testing collisions (high 12-bit) - Expected 995904.0, actual 995904 (1.00x) Testing collisions (high 8-bit) - Expected 999744.0, actual 999744 (1.00x) -Testing collisions (low 32-bit) - Expected 116.4, actual 118 (1.01x) (2) -Testing collisions (low 23-34 bits) - Worst is 30 bits: 476/465 (1.02x) +Testing collisions (low 32-bit) - Expected 116.4, actual 124 (1.07x) (8) +Testing collisions (low 23-34 bits) - Worst is 32 bits: 124/116 (1.07x) Testing collisions (low 12-bit) - Expected 995904.0, actual 995904 (1.00x) Testing collisions (low 8-bit) - Expected 999744.0, actual 999744 (1.00x) -Testing distribution - Worst bias is the 17-bit window at bit 44 - 0.134% +Testing distribution - Worst bias is the 17-bit window at bit 38 - 0.087% Keyset 'Cyclic' - 8 cycles of 9 bytes - 1000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) Testing collisions (high 32-bit) - Expected 116.4, actual 127 (1.09x) (11) -Testing collisions (high 23-34 bits) - Worst is 31 bits: 262/232 (1.13x) +Testing collisions (high 23-34 bits) - Worst is 34 bits: 41/29 (1.41x) Testing collisions (high 12-bit) - Expected 995904.0, actual 995904 (1.00x) Testing collisions (high 8-bit) - Expected 999744.0, actual 999744 (1.00x) -Testing collisions (low 32-bit) - Expected 116.4, actual 112 (0.96x) -Testing collisions (low 23-34 bits) - Worst is 34 bits: 33/29 (1.13x) +Testing collisions (low 32-bit) - Expected 116.4, actual 101 (0.87x) +Testing collisions (low 23-34 bits) - Worst is 34 bits: 30/29 (1.03x) Testing collisions (low 12-bit) - Expected 995904.0, actual 995904 (1.00x) Testing collisions (low 8-bit) - Expected 999744.0, actual 999744 (1.00x) -Testing distribution - Worst bias is the 17-bit window at bit 32 - 0.141% +Testing distribution - Worst bias is the 17-bit window at bit 43 - 0.101% Keyset 'Cyclic' - 8 cycles of 10 bytes - 1000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 116.4, actual 131 (1.13x) (15) -Testing collisions (high 23-34 bits) - Worst is 34 bits: 33/29 (1.13x) +Testing collisions (high 32-bit) - Expected 116.4, actual 133 (1.14x) (17) +Testing collisions (high 23-34 bits) - Worst is 34 bits: 39/29 (1.34x) Testing collisions (high 12-bit) - Expected 995904.0, actual 995904 (1.00x) Testing collisions (high 8-bit) - Expected 999744.0, actual 999744 (1.00x) -Testing collisions (low 32-bit) - Expected 116.4, actual 109 (0.94x) -Testing collisions (low 23-34 bits) - Worst is 34 bits: 37/29 (1.27x) +Testing collisions (low 32-bit) - Expected 116.4, actual 119 (1.02x) (3) +Testing collisions (low 23-34 bits) - Worst is 32 bits: 119/116 (1.02x) Testing collisions (low 12-bit) - Expected 995904.0, actual 995904 (1.00x) Testing collisions (low 8-bit) - Expected 999744.0, actual 999744 (1.00x) -Testing distribution - Worst bias is the 17-bit window at bit 16 - 0.122% +Testing distribution - Worst bias is the 17-bit window at bit 6 - 0.138% Keyset 'Cyclic' - 8 cycles of 11 bytes - 1000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 116.4, actual 104 (0.89x) -Testing collisions (high 23-34 bits) - Worst is 34 bits: 31/29 (1.07x) +Testing collisions (high 32-bit) - Expected 116.4, actual 131 (1.13x) (15) +Testing collisions (high 23-34 bits) - Worst is 33 bits: 74/58 (1.27x) Testing collisions (high 12-bit) - Expected 995904.0, actual 995904 (1.00x) Testing collisions (high 8-bit) - Expected 999744.0, actual 999744 (1.00x) -Testing collisions (low 32-bit) - Expected 116.4, actual 124 (1.07x) (8) -Testing collisions (low 23-34 bits) - Worst is 34 bits: 34/29 (1.17x) +Testing collisions (low 32-bit) - Expected 116.4, actual 118 (1.01x) (2) +Testing collisions (low 23-34 bits) - Worst is 34 bits: 39/29 (1.34x) Testing collisions (low 12-bit) - Expected 995904.0, actual 995904 (1.00x) Testing collisions (low 8-bit) - Expected 999744.0, actual 999744 (1.00x) -Testing distribution - Worst bias is the 17-bit window at bit 47 - 0.137% +Testing distribution - Worst bias is the 17-bit window at bit 43 - 0.115% Keyset 'Cyclic' - 8 cycles of 12 bytes - 1000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 116.4, actual 113 (0.97x) -Testing collisions (high 23-34 bits) - Worst is 28 bits: 1877/1862 (1.01x) +Testing collisions (high 32-bit) - Expected 116.4, actual 115 (0.99x) (-1) +Testing collisions (high 23-34 bits) - Worst is 34 bits: 31/29 (1.07x) Testing collisions (high 12-bit) - Expected 995904.0, actual 995904 (1.00x) Testing collisions (high 8-bit) - Expected 999744.0, actual 999744 (1.00x) -Testing collisions (low 32-bit) - Expected 116.4, actual 113 (0.97x) -Testing collisions (low 23-34 bits) - Worst is 34 bits: 38/29 (1.31x) +Testing collisions (low 32-bit) - Expected 116.4, actual 111 (0.95x) +Testing collisions (low 23-34 bits) - Worst is 34 bits: 32/29 (1.10x) Testing collisions (low 12-bit) - Expected 995904.0, actual 995904 (1.00x) Testing collisions (low 8-bit) - Expected 999744.0, actual 999744 (1.00x) -Testing distribution - Worst bias is the 17-bit window at bit 53 - 0.109% +Testing distribution - Worst bias is the 16-bit window at bit 13 - 0.080% Keyset 'Cyclic' - 8 cycles of 16 bytes - 1000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 116.4, actual 122 (1.05x) (6) -Testing collisions (high 23-34 bits) - Worst is 34 bits: 31/29 (1.07x) +Testing collisions (high 32-bit) - Expected 116.4, actual 115 (0.99x) (-1) +Testing collisions (high 23-34 bits) - Worst is 30 bits: 474/465 (1.02x) Testing collisions (high 12-bit) - Expected 995904.0, actual 995904 (1.00x) Testing collisions (high 8-bit) - Expected 999744.0, actual 999744 (1.00x) -Testing collisions (low 32-bit) - Expected 116.4, actual 112 (0.96x) -Testing collisions (low 23-34 bits) - Worst is 33 bits: 62/58 (1.07x) +Testing collisions (low 32-bit) - Expected 116.4, actual 135 (1.16x) (19) +Testing collisions (low 23-34 bits) - Worst is 34 bits: 37/29 (1.27x) Testing collisions (low 12-bit) - Expected 995904.0, actual 995904 (1.00x) Testing collisions (low 8-bit) - Expected 999744.0, actual 999744 (1.00x) -Testing distribution - Worst bias is the 17-bit window at bit 37 - 0.086% +Testing distribution - Worst bias is the 17-bit window at bit 62 - 0.119% [[[ Keyset 'TwoBytes' Tests ]]] Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 49.6, actual 61 (1.23x) (12) -Testing collisions (high 23-33 bits) - Worst is 33 bits: 31/24 (1.25x) +Testing collisions (high 32-bit) - Expected 49.6, actual 52 (1.05x) (3) +Testing collisions (high 23-33 bits) - Worst is 31 bits: 115/99 (1.16x) Testing collisions (high 12-bit) - Expected 648449.0, actual 648449 (1.00x) Testing collisions (high 8-bit) - Expected 652289.0, actual 652289 (1.00x) -Testing collisions (low 32-bit) - Expected 49.6, actual 53 (1.07x) (4) -Testing collisions (low 23-33 bits) - Worst is 32 bits: 53/49 (1.07x) +Testing collisions (low 32-bit) - Expected 49.6, actual 55 (1.11x) (6) +Testing collisions (low 23-33 bits) - Worst is 32 bits: 55/49 (1.11x) Testing collisions (low 12-bit) - Expected 648449.0, actual 648449 (1.00x) Testing collisions (low 8-bit) - Expected 652289.0, actual 652289 (1.00x) -Testing distribution - Worst bias is the 15-bit window at bit 54 - 0.125% +Testing distribution - Worst bias is the 16-bit window at bit 61 - 0.110% Keyset 'TwoBytes' - up-to-8-byte keys, 5471025 total keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 3484.6, actual 3456 (0.99x) (-28) -Testing collisions (high 26-39 bits) - Worst is 34 bits: 878/871 (1.01x) +Testing collisions (high 32-bit) - Expected 3484.6, actual 3705 (1.06x) (221) +Testing collisions (high 26-39 bits) - Worst is 32 bits: 3705/3484 (1.06x) Testing collisions (high 12-bit) - Expected 5466929.0, actual 5466929 (1.00x) Testing collisions (high 8-bit) - Expected 5470769.0, actual 5470769 (1.00x) -Testing collisions (low 32-bit) - Expected 3484.6, actual 3430 (0.98x) (-54) -Testing collisions (low 26-39 bits) - Worst is 35 bits: 441/435 (1.01x) +Testing collisions (low 32-bit) - Expected 3484.6, actual 3491 (1.00x) (7) +Testing collisions (low 26-39 bits) - Worst is 38 bits: 63/54 (1.16x) Testing collisions (low 12-bit) - Expected 5466929.0, actual 5466929 (1.00x) Testing collisions (low 8-bit) - Expected 5470769.0, actual 5470769 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 30 - 0.072% +Testing distribution - Worst bias is the 20-bit window at bit 17 - 0.060% Keyset 'TwoBytes' - up-to-12-byte keys, 18616785 total keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 40347.8, actual 40130 (0.99x) (-217) -Testing collisions (high 27-42 bits) - Worst is 32 bits: 40130/40347 (0.99x) +Testing collisions (high 32-bit) - Expected 40347.8, actual 40284 (1.00x) (-63) +Testing collisions (high 27-42 bits) - Worst is 41 bits: 83/78 (1.05x) Testing collisions (high 12-bit) - Expected 18612689.0, actual 18612689 (1.00x) Testing collisions (high 8-bit) - Expected 18616529.0, actual 18616529 (1.00x) -Testing collisions (low 32-bit) - Expected 40347.8, actual 40032 (0.99x) (-315) -Testing collisions (low 27-42 bits) - Worst is 42 bits: 46/39 (1.17x) +Testing collisions (low 32-bit) - Expected 40347.8, actual 40406 (1.00x) (59) +Testing collisions (low 27-42 bits) - Worst is 35 bits: 5078/5043 (1.01x) Testing collisions (low 12-bit) - Expected 18612689.0, actual 18612689 (1.00x) Testing collisions (low 8-bit) - Expected 18616529.0, actual 18616529 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 40 - 0.023% +Testing distribution - Worst bias is the 20-bit window at bit 22 - 0.019% Keyset 'TwoBytes' - up-to-16-byte keys, 44251425 total keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 227963.2, actual 226681 (0.99x) (-1282) -Testing collisions (high 29-45 bits) - Worst is 45 bits: 31/27 (1.11x) +Testing collisions (high 32-bit) - Expected 227963.2, actual 228535 (1.00x) (572) +Testing collisions (high 29-45 bits) - Worst is 41 bits: 464/445 (1.04x) Testing collisions (high 12-bit) - Expected 44247329.0, actual 44247329 (1.00x) Testing collisions (high 8-bit) - Expected 44251169.0, actual 44251169 (1.00x) -Testing collisions (low 32-bit) - Expected 227963.2, actual 227005 (1.00x) (-958) -Testing collisions (low 29-45 bits) - Worst is 43 bits: 130/111 (1.17x) +Testing collisions (low 32-bit) - Expected 227963.2, actual 227324 (1.00x) (-639) +Testing collisions (low 29-45 bits) - Worst is 44 bits: 61/55 (1.10x) Testing collisions (low 12-bit) - Expected 44247329.0, actual 44247329 (1.00x) Testing collisions (low 8-bit) - Expected 44251169.0, actual 44251169 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 44 - 0.009% +Testing distribution - Worst bias is the 20-bit window at bit 22 - 0.012% Keyset 'TwoBytes' - up-to-20-byte keys, 86536545 total keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 871784.7, actual 865470 (0.99x) (-6314) -Testing collisions (high 30-47 bits) - Worst is 41 bits: 1794/1702 (1.05x) +Testing collisions (high 32-bit) - Expected 871784.7, actual 866964 (0.99x) (-4820) +Testing collisions (high 30-47 bits) - Worst is 42 bits: 893/851 (1.05x) Testing collisions (high 12-bit) - Expected 86532449.0, actual 86532449 (1.00x) Testing collisions (high 8-bit) - Expected 86536289.0, actual 86536289 (1.00x) -Testing collisions (low 32-bit) - Expected 871784.7, actual 867660 (1.00x) (-4124) -Testing collisions (low 30-47 bits) - Worst is 43 bits: 452/425 (1.06x) +Testing collisions (low 32-bit) - Expected 871784.7, actual 866400 (0.99x) (-5384) +Testing collisions (low 30-47 bits) - Worst is 33 bits: 434401/435892 (1.00x) Testing collisions (low 12-bit) - Expected 86532449.0, actual 86532449 (1.00x) Testing collisions (low 8-bit) - Expected 86536289.0, actual 86536289 (1.00x) -Testing distribution - Worst bias is the 19-bit window at bit 46 - 0.004% +Testing distribution - Worst bias is the 20-bit window at bit 59 - 0.004% [[[ Keyset 'Text' Tests ]]] Keyset 'Text' - keys of form "FooXXXXBar" - 14776336 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 25418.1, actual 25256 (0.99x) (-162) -Testing collisions (high 27-42 bits) - Worst is 42 bits: 30/24 (1.21x) +Testing collisions (high 32-bit) - Expected 25418.1, actual 25470 (1.00x) (52) +Testing collisions (high 27-42 bits) - Worst is 39 bits: 204/198 (1.03x) Testing collisions (high 12-bit) - Expected 14772240.0, actual 14772240 (1.00x) Testing collisions (high 8-bit) - Expected 14776080.0, actual 14776080 (1.00x) -Testing collisions (low 32-bit) - Expected 25418.1, actual 25375 (1.00x) (-43) -Testing collisions (low 27-42 bits) - Worst is 40 bits: 112/99 (1.13x) +Testing collisions (low 32-bit) - Expected 25418.1, actual 25289 (0.99x) (-129) +Testing collisions (low 27-42 bits) - Worst is 41 bits: 51/49 (1.03x) Testing collisions (low 12-bit) - Expected 14772240.0, actual 14772240 (1.00x) Testing collisions (low 8-bit) - Expected 14776080.0, actual 14776080 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 61 - 0.024% +Testing distribution - Worst bias is the 20-bit window at bit 50 - 0.019% Keyset 'Text' - keys of form "FooBarXXXX" - 14776336 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 25418.1, actual 25878 (1.02x) (460) -Testing collisions (high 27-42 bits) - Worst is 33 bits: 12976/12709 (1.02x) +Testing collisions (high 32-bit) - Expected 25418.1, actual 25311 (1.00x) (-107) +Testing collisions (high 27-42 bits) - Worst is 42 bits: 30/24 (1.21x) Testing collisions (high 12-bit) - Expected 14772240.0, actual 14772240 (1.00x) Testing collisions (high 8-bit) - Expected 14776080.0, actual 14776080 (1.00x) -Testing collisions (low 32-bit) - Expected 25418.1, actual 25540 (1.00x) (122) -Testing collisions (low 27-42 bits) - Worst is 38 bits: 416/397 (1.05x) +Testing collisions (low 32-bit) - Expected 25418.1, actual 25475 (1.00x) (57) +Testing collisions (low 27-42 bits) - Worst is 42 bits: 27/24 (1.09x) Testing collisions (low 12-bit) - Expected 14772240.0, actual 14772240 (1.00x) Testing collisions (low 8-bit) - Expected 14776080.0, actual 14776080 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 27 - 0.023% +Testing distribution - Worst bias is the 20-bit window at bit 45 - 0.023% Keyset 'Text' - keys of form "XXXXFooBar" - 14776336 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 25418.1, actual 25266 (0.99x) (-152) -Testing collisions (high 27-42 bits) - Worst is 34 bits: 6369/6354 (1.00x) +Testing collisions (high 32-bit) - Expected 25418.1, actual 25622 (1.01x) (204) +Testing collisions (high 27-42 bits) - Worst is 42 bits: 29/24 (1.17x) Testing collisions (high 12-bit) - Expected 14772240.0, actual 14772240 (1.00x) Testing collisions (high 8-bit) - Expected 14776080.0, actual 14776080 (1.00x) -Testing collisions (low 32-bit) - Expected 25418.1, actual 25162 (0.99x) (-256) -Testing collisions (low 27-42 bits) - Worst is 40 bits: 101/99 (1.02x) +Testing collisions (low 32-bit) - Expected 25418.1, actual 25007 (0.98x) (-411) +Testing collisions (low 27-42 bits) - Worst is 42 bits: 29/24 (1.17x) Testing collisions (low 12-bit) - Expected 14772240.0, actual 14772240 (1.00x) Testing collisions (low 8-bit) - Expected 14776080.0, actual 14776080 (1.00x) -Testing distribution - Worst bias is the 20-bit window at bit 10 - 0.016% +Testing distribution - Worst bias is the 19-bit window at bit 53 - 0.026% Keyset 'Words' - 4000000 random keys of len 6-16 from alnum charset Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1862.6, actual 1923 (1.03x) (61) -Testing collisions (high 25-38 bits) - Worst is 37 bits: 65/58 (1.12x) +Testing collisions (high 32-bit) - Expected 1862.6, actual 1833 (0.98x) (-29) +Testing collisions (high 25-38 bits) - Worst is 33 bits: 940/931 (1.01x) Testing collisions (high 12-bit) - Expected 3995904.0, actual 3995904 (1.00x) Testing collisions (high 8-bit) - Expected 3999744.0, actual 3999744 (1.00x) -Testing collisions (low 32-bit) - Expected 1862.6, actual 1876 (1.01x) (14) -Testing collisions (low 25-38 bits) - Worst is 32 bits: 1876/1862 (1.01x) +Testing collisions (low 32-bit) - Expected 1862.6, actual 1873 (1.01x) (11) +Testing collisions (low 25-38 bits) - Worst is 36 bits: 129/116 (1.11x) Testing collisions (low 12-bit) - Expected 3995904.0, actual 3995904 (1.00x) Testing collisions (low 8-bit) - Expected 3999744.0, actual 3999744 (1.00x) -Testing distribution - Worst bias is the 19-bit window at bit 1 - 0.075% +Testing distribution - Worst bias is the 19-bit window at bit 43 - 0.036% Keyset 'Words' - 4000000 random keys of len 6-16 from password charset Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1862.6, actual 1884 (1.01x) (22) -Testing collisions (high 25-38 bits) - Worst is 35 bits: 253/232 (1.09x) +Testing collisions (high 32-bit) - Expected 1862.6, actual 1896 (1.02x) (34) +Testing collisions (high 25-38 bits) - Worst is 38 bits: 37/29 (1.27x) Testing collisions (high 12-bit) - Expected 3995904.0, actual 3995904 (1.00x) Testing collisions (high 8-bit) - Expected 3999744.0, actual 3999744 (1.00x) -Testing collisions (low 32-bit) - Expected 1862.6, actual 1858 (1.00x) (-4) -Testing collisions (low 25-38 bits) - Worst is 36 bits: 140/116 (1.20x) +Testing collisions (low 32-bit) - Expected 1862.6, actual 1838 (0.99x) (-24) +Testing collisions (low 25-38 bits) - Worst is 38 bits: 34/29 (1.17x) Testing collisions (low 12-bit) - Expected 3995904.0, actual 3995904 (1.00x) Testing collisions (low 8-bit) - Expected 3999744.0, actual 3999744 (1.00x) -Testing distribution - Worst bias is the 18-bit window at bit 47 - 0.053% +Testing distribution - Worst bias is the 19-bit window at bit 5 - 0.062% Keyset 'Words' - 102401 dict words Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) Testing collisions (high 32-bit) - Expected 1.2, actual 1 (0.82x) -Testing collisions (high 20-27 bits) - Worst is 24 bits: 333/312 (1.07x) +Testing collisions (high 20-27 bits) - Worst is 26 bits: 84/78 (1.08x) Testing collisions (high 12-bit) - Expected 98305.0, actual 98305 (1.00x) Testing collisions (high 8-bit) - Expected 102145.0, actual 102145 (1.00x) -Testing collisions (low 32-bit) - Expected 1.2, actual 1 (0.82x) -Testing collisions (low 20-27 bits) - Worst is 22 bits: 1284/1250 (1.03x) +Testing collisions (low 32-bit) - Expected 1.2, actual 0 (0.00x) +Testing collisions (low 20-27 bits) - Worst is 23 bits: 627/625 (1.00x) Testing collisions (low 12-bit) - Expected 98305.0, actual 98305 (1.00x) Testing collisions (low 8-bit) - Expected 102145.0, actual 102145 (1.00x) -Testing distribution - Worst bias is the 14-bit window at bit 28 - 0.409% +Testing distribution - Worst bias is the 14-bit window at bit 30 - 0.375% [[[ Keyset 'Zeroes' Tests ]]] @@ -718,41 +718,41 @@ Testing distribution - Worst bias is the 14-bit window at bit 28 - 0.409% Keyset 'Zeroes' - 204800 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) Testing collisions (high 32-bit) - Expected 4.9, actual 6 (1.23x) (2) -Testing collisions (high 21-29 bits) - Worst is 28 bits: 82/78 (1.05x) +Testing collisions (high 21-29 bits) - Worst is 29 bits: 44/39 (1.13x) Testing collisions (high 12-bit) - Expected 200704.0, actual 200704 (1.00x) Testing collisions (high 8-bit) - Expected 204544.0, actual 204544 (1.00x) -Testing collisions (low 32-bit) - Expected 4.9, actual 5 (1.02x) (1) -Testing collisions (low 21-29 bits) - Worst is 29 bits: 40/39 (1.02x) +Testing collisions (low 32-bit) - Expected 4.9, actual 3 (0.61x) +Testing collisions (low 21-29 bits) - Worst is 28 bits: 104/78 (1.33x) Testing collisions (low 12-bit) - Expected 200704.0, actual 200704 (1.00x) Testing collisions (low 8-bit) - Expected 204544.0, actual 204544 (1.00x) -Testing distribution - Worst bias is the 14-bit window at bit 50 - 0.267% +Testing distribution - Worst bias is the 15-bit window at bit 2 - 0.298% [[[ Keyset 'Seed' Tests ]]] Keyset 'Seed' - 5000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 2910.4, actual 2988 (1.03x) (78) +Testing collisions (high 32-bit) - Expected 2910.4, actual 2971 (1.02x) (61) Testing collisions (high 26-39 bits) - Worst is 39 bits: 27/22 (1.19x) Testing collisions (high 12-bit) - Expected 4995904.0, actual 4995904 (1.00x) Testing collisions (high 8-bit) - Expected 4999744.0, actual 4999744 (1.00x) -Testing collisions (low 32-bit) - Expected 2910.4, actual 3040 (1.04x) (130) -Testing collisions (low 26-39 bits) - Worst is 33 bits: 1528/1455 (1.05x) +Testing collisions (low 32-bit) - Expected 2910.4, actual 2876 (0.99x) (-34) +Testing collisions (low 26-39 bits) - Worst is 33 bits: 1502/1455 (1.03x) Testing collisions (low 12-bit) - Expected 4995904.0, actual 4995904 (1.00x) Testing collisions (low 8-bit) - Expected 4999744.0, actual 4999744 (1.00x) -Testing distribution - Worst bias is the 19-bit window at bit 8 - 0.045% +Testing distribution - Worst bias is the 19-bit window at bit 60 - 0.051% [[[ Keyset 'PerlinNoise' Tests ]]] Testing 16777216 coordinates (L2) : Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 32768.0, actual 32864 (1.00x) (97) -Testing collisions (high 27-42 bits) - Worst is 38 bits: 548/511 (1.07x) +Testing collisions (high 32-bit) - Expected 32768.0, actual 32732 (1.00x) (-35) +Testing collisions (high 27-42 bits) - Worst is 41 bits: 66/63 (1.03x) Testing collisions (high 12-bit) - Expected 16773120.0, actual 16773120 (1.00x) Testing collisions (high 8-bit) - Expected 16776960.0, actual 16776960 (1.00x) -Testing collisions (low 32-bit) - Expected 32768.0, actual 32219 (0.98x) (-548) -Testing collisions (low 27-42 bits) - Worst is 42 bits: 44/31 (1.38x) +Testing collisions (low 32-bit) - Expected 32768.0, actual 32429 (0.99x) (-338) +Testing collisions (low 27-42 bits) - Worst is 42 bits: 39/31 (1.22x) Testing collisions (low 12-bit) - Expected 16773120.0, actual 16773120 (1.00x) Testing collisions (low 8-bit) - Expected 16776960.0, actual 16776960 (1.00x) @@ -776,705 +776,705 @@ Testing 2796416 up-to-3-bit differentials in 256-bit keys -> 64 bit hashes. Testing bit 0 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 503 (0.98x) (-8) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) +Testing collisions (high 32-bit) - Expected 512.0, actual 542 (1.06x) (31) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 69/63 (1.08x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 499 (0.97x) -Testing collisions (low 24-36 bits) - Worst is 31 bits: 1028/1023 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 592 (1.16x) (81) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 40/31 (1.25x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 1 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 550 (1.07x) (39) -Testing collisions (high 24-36 bits) - Worst is 34 bits: 147/127 (1.15x) +Testing collisions (high 32-bit) - Expected 512.0, actual 503 (0.98x) (-8) +Testing collisions (high 24-36 bits) - Worst is 31 bits: 1015/1023 (0.99x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 504 (0.98x) (-7) -Testing collisions (low 24-36 bits) - Worst is 26 bits: 32606/32767 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 495 (0.97x) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 262/255 (1.02x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 2 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 490 (0.96x) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 67/63 (1.05x) +Testing collisions (high 32-bit) - Expected 512.0, actual 521 (1.02x) (10) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 521/511 (1.02x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 522 (1.02x) (11) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) +Testing collisions (low 32-bit) - Expected 512.0, actual 535 (1.04x) (24) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 41/31 (1.28x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 3 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 483 (0.94x) -Testing collisions (high 24-36 bits) - Worst is 28 bits: 8201/8191 (1.00x) +Testing collisions (high 32-bit) - Expected 512.0, actual 495 (0.97x) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 139/127 (1.09x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 519 (1.01x) (8) -Testing collisions (low 24-36 bits) - Worst is 35 bits: 86/63 (1.34x) +Testing collisions (low 32-bit) - Expected 512.0, actual 554 (1.08x) (43) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 155/127 (1.21x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 4 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 476 (0.93x) -Testing collisions (high 24-36 bits) - Worst is 30 bits: 2026/2047 (0.99x) +Testing collisions (high 32-bit) - Expected 512.0, actual 535 (1.04x) (24) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 535/511 (1.04x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 511 (1.00x) -Testing collisions (low 24-36 bits) - Worst is 34 bits: 145/127 (1.13x) +Testing collisions (low 32-bit) - Expected 512.0, actual 505 (0.99x) (-6) +Testing collisions (low 24-36 bits) - Worst is 29 bits: 4137/4095 (1.01x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 5 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 497 (0.97x) -Testing collisions (high 24-36 bits) - Worst is 29 bits: 4206/4095 (1.03x) +Testing collisions (high 32-bit) - Expected 512.0, actual 527 (1.03x) (16) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 40/31 (1.25x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 488 (0.95x) -Testing collisions (low 24-36 bits) - Worst is 34 bits: 141/127 (1.10x) +Testing collisions (low 32-bit) - Expected 512.0, actual 539 (1.05x) (28) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 74/63 (1.16x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 6 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 506 (0.99x) (-5) -Testing collisions (high 24-36 bits) - Worst is 34 bits: 137/127 (1.07x) +Testing collisions (high 32-bit) - Expected 512.0, actual 520 (1.02x) (9) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 269/255 (1.05x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 512 (1.00x) (1) -Testing collisions (low 24-36 bits) - Worst is 28 bits: 8292/8191 (1.01x) +Testing collisions (low 32-bit) - Expected 512.0, actual 480 (0.94x) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 33/31 (1.03x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 7 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 481 (0.94x) -Testing collisions (high 24-36 bits) - Worst is 30 bits: 2011/2047 (0.98x) +Testing collisions (high 32-bit) - Expected 512.0, actual 542 (1.06x) (31) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 42/31 (1.31x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 551 (1.08x) (40) -Testing collisions (low 24-36 bits) - Worst is 32 bits: 551/511 (1.08x) +Testing collisions (low 32-bit) - Expected 512.0, actual 487 (0.95x) +Testing collisions (low 24-36 bits) - Worst is 29 bits: 4169/4095 (1.02x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 8 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 550 (1.07x) (39) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 47/31 (1.47x) +Testing collisions (high 32-bit) - Expected 512.0, actual 513 (1.00x) (2) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 513/511 (1.00x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 499 (0.97x) -Testing collisions (low 24-36 bits) - Worst is 34 bits: 139/127 (1.09x) +Testing collisions (low 32-bit) - Expected 512.0, actual 556 (1.09x) (45) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 9 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 493 (0.96x) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 66/63 (1.03x) +Testing collisions (high 32-bit) - Expected 512.0, actual 514 (1.00x) (3) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 514/511 (1.00x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 537 (1.05x) (26) -Testing collisions (low 24-36 bits) - Worst is 33 bits: 299/255 (1.17x) +Testing collisions (low 32-bit) - Expected 512.0, actual 517 (1.01x) (6) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 69/63 (1.08x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 10 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 555 (1.08x) (44) -Testing collisions (high 24-36 bits) - Worst is 33 bits: 281/255 (1.10x) +Testing collisions (high 32-bit) - Expected 512.0, actual 506 (0.99x) (-5) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 128/127 (1.00x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 495 (0.97x) -Testing collisions (low 24-36 bits) - Worst is 31 bits: 1048/1023 (1.02x) +Testing collisions (low 32-bit) - Expected 512.0, actual 502 (0.98x) (-9) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 69/63 (1.08x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 11 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 459 (0.90x) -Testing collisions (high 24-36 bits) - Worst is 29 bits: 4100/4095 (1.00x) +Testing collisions (high 32-bit) - Expected 512.0, actual 482 (0.94x) +Testing collisions (high 24-36 bits) - Worst is 28 bits: 8202/8191 (1.00x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 488 (0.95x) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 42/31 (1.31x) +Testing collisions (low 32-bit) - Expected 512.0, actual 494 (0.96x) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 40/31 (1.25x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 12 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 491 (0.96x) -Testing collisions (high 24-36 bits) - Worst is 29 bits: 4167/4095 (1.02x) +Testing collisions (high 32-bit) - Expected 512.0, actual 531 (1.04x) (20) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 531/511 (1.04x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 480 (0.94x) -Testing collisions (low 24-36 bits) - Worst is 30 bits: 2089/2047 (1.02x) +Testing collisions (low 32-bit) - Expected 512.0, actual 533 (1.04x) (22) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 272/255 (1.06x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 13 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 497 (0.97x) -Testing collisions (high 24-36 bits) - Worst is 34 bits: 132/127 (1.03x) +Testing collisions (high 32-bit) - Expected 512.0, actual 539 (1.05x) (28) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 42/31 (1.31x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 553 (1.08x) (42) -Testing collisions (low 24-36 bits) - Worst is 32 bits: 553/511 (1.08x) +Testing collisions (low 32-bit) - Expected 512.0, actual 562 (1.10x) (51) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 160/127 (1.25x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 14 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 538 (1.05x) (27) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 34/31 (1.06x) +Testing collisions (high 32-bit) - Expected 512.0, actual 510 (1.00x) (-1) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 46/31 (1.44x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 508 (0.99x) (-3) -Testing collisions (low 24-36 bits) - Worst is 33 bits: 271/255 (1.06x) +Testing collisions (low 32-bit) - Expected 512.0, actual 506 (0.99x) (-5) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 269/255 (1.05x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 15 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 534 (1.04x) (23) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) +Testing collisions (high 32-bit) - Expected 512.0, actual 544 (1.06x) (33) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 279/255 (1.09x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 530 (1.04x) (19) -Testing collisions (low 24-36 bits) - Worst is 33 bits: 267/255 (1.04x) +Testing collisions (low 32-bit) - Expected 512.0, actual 495 (0.97x) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 16 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 481 (0.94x) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 33/31 (1.03x) +Testing collisions (high 32-bit) - Expected 512.0, actual 518 (1.01x) (7) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 66/63 (1.03x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 498 (0.97x) -Testing collisions (low 24-36 bits) - Worst is 29 bits: 4135/4095 (1.01x) +Testing collisions (low 32-bit) - Expected 512.0, actual 504 (0.98x) (-7) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 46/31 (1.44x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 17 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 526 (1.03x) (15) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 80/63 (1.25x) +Testing collisions (high 32-bit) - Expected 512.0, actual 520 (1.02x) (9) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 140/127 (1.09x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 477 (0.93x) -Testing collisions (low 24-36 bits) - Worst is 35 bits: 64/63 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 492 (0.96x) +Testing collisions (low 24-36 bits) - Worst is 28 bits: 8152/8191 (1.00x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 18 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 483 (0.94x) -Testing collisions (high 24-36 bits) - Worst is 28 bits: 8326/8191 (1.02x) +Testing collisions (high 32-bit) - Expected 512.0, actual 518 (1.01x) (7) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 73/63 (1.14x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 490 (0.96x) -Testing collisions (low 24-36 bits) - Worst is 29 bits: 4095/4095 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 533 (1.04x) (22) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 19 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 492 (0.96x) -Testing collisions (high 24-36 bits) - Worst is 34 bits: 136/127 (1.06x) +Testing collisions (high 32-bit) - Expected 512.0, actual 528 (1.03x) (17) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 528/511 (1.03x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 529 (1.03x) (18) -Testing collisions (low 24-36 bits) - Worst is 35 bits: 79/63 (1.23x) +Testing collisions (low 32-bit) - Expected 512.0, actual 537 (1.05x) (26) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 38/31 (1.19x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 20 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 494 (0.96x) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 67/63 (1.05x) +Testing collisions (high 32-bit) - Expected 512.0, actual 510 (1.00x) (-1) +Testing collisions (high 24-36 bits) - Worst is 30 bits: 2093/2047 (1.02x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 511 (1.00x) -Testing collisions (low 24-36 bits) - Worst is 34 bits: 137/127 (1.07x) +Testing collisions (low 32-bit) - Expected 512.0, actual 549 (1.07x) (38) +Testing collisions (low 24-36 bits) - Worst is 31 bits: 1098/1023 (1.07x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 21 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 494 (0.96x) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 45/31 (1.41x) +Testing collisions (high 32-bit) - Expected 512.0, actual 501 (0.98x) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 73/63 (1.14x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 523 (1.02x) (12) -Testing collisions (low 24-36 bits) - Worst is 30 bits: 2124/2047 (1.04x) +Testing collisions (low 32-bit) - Expected 512.0, actual 514 (1.00x) (3) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 67/63 (1.05x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 22 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 497 (0.97x) -Testing collisions (high 24-36 bits) - Worst is 34 bits: 129/127 (1.01x) +Testing collisions (high 32-bit) - Expected 512.0, actual 488 (0.95x) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 499 (0.97x) -Testing collisions (low 24-36 bits) - Worst is 33 bits: 258/255 (1.01x) +Testing collisions (low 32-bit) - Expected 512.0, actual 537 (1.05x) (26) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 43/31 (1.34x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 23 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 520 (1.02x) (9) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) +Testing collisions (high 32-bit) - Expected 512.0, actual 546 (1.07x) (35) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 278/255 (1.09x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 515 (1.01x) (4) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) +Testing collisions (low 32-bit) - Expected 512.0, actual 514 (1.00x) (3) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 260/255 (1.02x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 24 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 496 (0.97x) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) +Testing collisions (high 32-bit) - Expected 512.0, actual 508 (0.99x) (-3) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 508/511 (0.99x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 486 (0.95x) +Testing collisions (low 32-bit) - Expected 512.0, actual 506 (0.99x) (-5) Testing collisions (low 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 25 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 515 (1.01x) (4) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 35/31 (1.09x) +Testing collisions (high 32-bit) - Expected 512.0, actual 523 (1.02x) (12) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 78/63 (1.22x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 511 (1.00x) -Testing collisions (low 24-36 bits) - Worst is 28 bits: 8241/8191 (1.01x) +Testing collisions (low 32-bit) - Expected 512.0, actual 508 (0.99x) (-3) +Testing collisions (low 24-36 bits) - Worst is 29 bits: 4170/4095 (1.02x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 26 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 525 (1.03x) (14) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 88/63 (1.38x) +Testing collisions (high 32-bit) - Expected 512.0, actual 486 (0.95x) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 140/127 (1.09x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 500 (0.98x) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 43/31 (1.34x) +Testing collisions (low 32-bit) - Expected 512.0, actual 569 (1.11x) (58) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 80/63 (1.25x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 27 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 496 (0.97x) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 70/63 (1.09x) +Testing collisions (high 32-bit) - Expected 512.0, actual 552 (1.08x) (41) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 74/63 (1.16x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 516 (1.01x) (5) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 38/31 (1.19x) +Testing collisions (low 32-bit) - Expected 512.0, actual 544 (1.06x) (33) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 140/127 (1.09x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 28 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 523 (1.02x) (12) -Testing collisions (high 24-36 bits) - Worst is 32 bits: 523/511 (1.02x) +Testing collisions (high 32-bit) - Expected 512.0, actual 544 (1.06x) (33) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 141/127 (1.10x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 512 (1.00x) (1) -Testing collisions (low 24-36 bits) - Worst is 30 bits: 2100/2047 (1.03x) +Testing collisions (low 32-bit) - Expected 512.0, actual 537 (1.05x) (26) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 42/31 (1.31x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 29 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 534 (1.04x) (23) -Testing collisions (high 24-36 bits) - Worst is 32 bits: 534/511 (1.04x) +Testing collisions (high 32-bit) - Expected 512.0, actual 531 (1.04x) (20) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 43/31 (1.34x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 494 (0.96x) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 34/31 (1.06x) +Testing collisions (low 32-bit) - Expected 512.0, actual 507 (0.99x) (-4) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 33/31 (1.03x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 30 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 505 (0.99x) (-6) -Testing collisions (high 24-36 bits) - Worst is 29 bits: 4057/4095 (0.99x) +Testing collisions (high 32-bit) - Expected 512.0, actual 477 (0.93x) +Testing collisions (high 24-36 bits) - Worst is 28 bits: 8243/8191 (1.01x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 499 (0.97x) -Testing collisions (low 24-36 bits) - Worst is 35 bits: 68/63 (1.06x) +Testing collisions (low 32-bit) - Expected 512.0, actual 497 (0.97x) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 77/63 (1.20x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 31 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 526 (1.03x) (15) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) +Testing collisions (high 32-bit) - Expected 512.0, actual 492 (0.96x) +Testing collisions (high 24-36 bits) - Worst is 31 bits: 1061/1023 (1.04x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 517 (1.01x) (6) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 40/31 (1.25x) +Testing collisions (low 32-bit) - Expected 512.0, actual 520 (1.02x) (9) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 42/31 (1.31x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 32 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 467 (0.91x) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 41/31 (1.28x) +Testing collisions (high 32-bit) - Expected 512.0, actual 512 (1.00x) (1) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 67/63 (1.05x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 512 (1.00x) (1) -Testing collisions (low 24-36 bits) - Worst is 34 bits: 142/127 (1.11x) +Testing collisions (low 32-bit) - Expected 512.0, actual 556 (1.09x) (45) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 33 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 518 (1.01x) (7) -Testing collisions (high 24-36 bits) - Worst is 33 bits: 267/255 (1.04x) +Testing collisions (high 32-bit) - Expected 512.0, actual 505 (0.99x) (-6) +Testing collisions (high 24-36 bits) - Worst is 28 bits: 8332/8191 (1.02x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 518 (1.01x) (7) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 40/31 (1.25x) +Testing collisions (low 32-bit) - Expected 512.0, actual 489 (0.96x) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 65/63 (1.02x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 34 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 540 (1.05x) (29) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 49/31 (1.53x) +Testing collisions (high 32-bit) - Expected 512.0, actual 518 (1.01x) (7) +Testing collisions (high 24-36 bits) - Worst is 31 bits: 1067/1023 (1.04x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 556 (1.09x) (45) -Testing collisions (low 24-36 bits) - Worst is 32 bits: 556/511 (1.09x) +Testing collisions (low 32-bit) - Expected 512.0, actual 485 (0.95x) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 34/31 (1.06x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 35 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 486 (0.95x) -Testing collisions (high 24-36 bits) - Worst is 30 bits: 2057/2047 (1.00x) +Testing collisions (high 32-bit) - Expected 512.0, actual 502 (0.98x) (-9) +Testing collisions (high 24-36 bits) - Worst is 31 bits: 1031/1023 (1.01x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 504 (0.98x) (-7) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 33/31 (1.03x) +Testing collisions (low 32-bit) - Expected 512.0, actual 528 (1.03x) (17) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 45/31 (1.41x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 36 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 514 (1.00x) (3) -Testing collisions (high 24-36 bits) - Worst is 31 bits: 1035/1023 (1.01x) +Testing collisions (high 32-bit) - Expected 512.0, actual 522 (1.02x) (11) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 143/127 (1.12x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 462 (0.90x) -Testing collisions (low 24-36 bits) - Worst is 35 bits: 64/63 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 500 (0.98x) +Testing collisions (low 24-36 bits) - Worst is 27 bits: 16156/16383 (0.99x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 37 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 496 (0.97x) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 65/63 (1.02x) +Testing collisions (high 32-bit) - Expected 512.0, actual 562 (1.10x) (51) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 562/511 (1.10x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 506 (0.99x) (-5) -Testing collisions (low 24-36 bits) - Worst is 35 bits: 73/63 (1.14x) +Testing collisions (low 32-bit) - Expected 512.0, actual 529 (1.03x) (18) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 35/31 (1.09x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 38 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 489 (0.96x) -Testing collisions (high 24-36 bits) - Worst is 30 bits: 2065/2047 (1.01x) +Testing collisions (high 32-bit) - Expected 512.0, actual 501 (0.98x) +Testing collisions (high 24-36 bits) - Worst is 30 bits: 2049/2047 (1.00x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 490 (0.96x) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) +Testing collisions (low 32-bit) - Expected 512.0, actual 504 (0.98x) (-7) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 39 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 539 (1.05x) (28) -Testing collisions (high 24-36 bits) - Worst is 33 bits: 271/255 (1.06x) +Testing collisions (high 32-bit) - Expected 512.0, actual 473 (0.92x) +Testing collisions (high 24-36 bits) - Worst is 29 bits: 4094/4095 (1.00x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 514 (1.00x) (3) -Testing collisions (low 24-36 bits) - Worst is 32 bits: 514/511 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 503 (0.98x) (-8) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 38/31 (1.19x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 40 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 484 (0.95x) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) +Testing collisions (high 32-bit) - Expected 512.0, actual 563 (1.10x) (52) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 83/63 (1.30x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 515 (1.01x) (4) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) +Testing collisions (low 32-bit) - Expected 512.0, actual 537 (1.05x) (26) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 272/255 (1.06x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 41 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 505 (0.99x) (-6) -Testing collisions (high 24-36 bits) - Worst is 34 bits: 137/127 (1.07x) +Testing collisions (high 32-bit) - Expected 512.0, actual 552 (1.08x) (41) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 82/63 (1.28x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 520 (1.02x) (9) -Testing collisions (low 24-36 bits) - Worst is 35 bits: 67/63 (1.05x) +Testing collisions (low 32-bit) - Expected 512.0, actual 529 (1.03x) (18) +Testing collisions (low 24-36 bits) - Worst is 31 bits: 1073/1023 (1.05x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 42 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 506 (0.99x) (-5) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 90/63 (1.41x) +Testing collisions (high 32-bit) - Expected 512.0, actual 504 (0.98x) (-7) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 71/63 (1.11x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 566 (1.11x) (55) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) +Testing collisions (low 32-bit) - Expected 512.0, actual 520 (1.02x) (9) +Testing collisions (low 24-36 bits) - Worst is 32 bits: 520/511 (1.02x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 43 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 541 (1.06x) (30) -Testing collisions (high 24-36 bits) - Worst is 32 bits: 541/511 (1.06x) +Testing collisions (high 32-bit) - Expected 512.0, actual 537 (1.05x) (26) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 480 (0.94x) -Testing collisions (low 24-36 bits) - Worst is 27 bits: 16264/16383 (0.99x) +Testing collisions (low 32-bit) - Expected 512.0, actual 547 (1.07x) (36) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 286/255 (1.12x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 44 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 474 (0.93x) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 38/31 (1.19x) +Testing collisions (high 32-bit) - Expected 512.0, actual 471 (0.92x) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 496 (0.97x) -Testing collisions (low 24-36 bits) - Worst is 30 bits: 2097/2047 (1.02x) +Testing collisions (low 32-bit) - Expected 512.0, actual 560 (1.09x) (49) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 38/31 (1.19x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 45 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 497 (0.97x) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 65/63 (1.02x) +Testing collisions (high 32-bit) - Expected 512.0, actual 509 (0.99x) (-2) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 72/63 (1.13x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 557 (1.09x) (46) -Testing collisions (low 24-36 bits) - Worst is 32 bits: 557/511 (1.09x) +Testing collisions (low 32-bit) - Expected 512.0, actual 501 (0.98x) +Testing collisions (low 24-36 bits) - Worst is 27 bits: 16256/16383 (0.99x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 46 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 514 (1.00x) (3) -Testing collisions (high 24-36 bits) - Worst is 32 bits: 514/511 (1.00x) +Testing collisions (high 32-bit) - Expected 512.0, actual 510 (1.00x) (-1) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 69/63 (1.08x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 540 (1.05x) (29) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 43/31 (1.34x) +Testing collisions (low 32-bit) - Expected 512.0, actual 486 (0.95x) +Testing collisions (low 24-36 bits) - Worst is 30 bits: 2043/2047 (1.00x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 47 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 520 (1.02x) (9) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) +Testing collisions (high 32-bit) - Expected 512.0, actual 541 (1.06x) (30) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 142/127 (1.11x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 540 (1.05x) (29) -Testing collisions (low 24-36 bits) - Worst is 35 bits: 81/63 (1.27x) +Testing collisions (low 32-bit) - Expected 512.0, actual 498 (0.97x) +Testing collisions (low 24-36 bits) - Worst is 29 bits: 4094/4095 (1.00x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 48 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 533 (1.04x) (22) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 75/63 (1.17x) +Testing collisions (high 32-bit) - Expected 512.0, actual 550 (1.07x) (39) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 55/31 (1.72x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 513 (1.00x) (2) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 40/31 (1.25x) +Testing collisions (low 32-bit) - Expected 512.0, actual 527 (1.03x) (16) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 149/127 (1.16x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 49 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 522 (1.02x) (11) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) +Testing collisions (high 32-bit) - Expected 512.0, actual 523 (1.02x) (12) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 76/63 (1.19x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 491 (0.96x) +Testing collisions (low 32-bit) - Expected 512.0, actual 538 (1.05x) (27) Testing collisions (low 24-36 bits) - Worst is 36 bits: 40/31 (1.25x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 50 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 527 (1.03x) (16) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 35/31 (1.09x) +Testing collisions (high 32-bit) - Expected 512.0, actual 477 (0.93x) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 132/127 (1.03x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 545 (1.06x) (34) -Testing collisions (low 24-36 bits) - Worst is 34 bits: 168/127 (1.31x) +Testing collisions (low 32-bit) - Expected 512.0, actual 498 (0.97x) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 51 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 505 (0.99x) (-6) -Testing collisions (high 24-36 bits) - Worst is 33 bits: 280/255 (1.09x) +Testing collisions (high 32-bit) - Expected 512.0, actual 519 (1.01x) (8) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 34/31 (1.06x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 492 (0.96x) -Testing collisions (low 24-36 bits) - Worst is 35 bits: 74/63 (1.16x) +Testing collisions (low 32-bit) - Expected 512.0, actual 533 (1.04x) (22) +Testing collisions (low 24-36 bits) - Worst is 32 bits: 533/511 (1.04x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 52 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 468 (0.91x) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) +Testing collisions (high 32-bit) - Expected 512.0, actual 562 (1.10x) (51) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 293/255 (1.14x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 509 (0.99x) (-2) -Testing collisions (low 24-36 bits) - Worst is 31 bits: 1028/1023 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 545 (1.06x) (34) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 288/255 (1.13x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 53 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 495 (0.97x) -Testing collisions (high 24-36 bits) - Worst is 28 bits: 8270/8191 (1.01x) +Testing collisions (high 32-bit) - Expected 512.0, actual 499 (0.97x) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 262/255 (1.02x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 486 (0.95x) -Testing collisions (low 24-36 bits) - Worst is 29 bits: 4190/4095 (1.02x) +Testing collisions (low 32-bit) - Expected 512.0, actual 493 (0.96x) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 67/63 (1.05x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 54 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 513 (1.00x) (2) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 77/63 (1.20x) +Testing collisions (high 32-bit) - Expected 512.0, actual 534 (1.04x) (23) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 134/127 (1.05x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 477 (0.93x) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) +Testing collisions (low 32-bit) - Expected 512.0, actual 479 (0.94x) +Testing collisions (low 24-36 bits) - Worst is 27 bits: 16332/16383 (1.00x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 55 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 509 (0.99x) (-2) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 71/63 (1.11x) +Testing collisions (high 32-bit) - Expected 512.0, actual 521 (1.02x) (10) +Testing collisions (high 24-36 bits) - Worst is 30 bits: 2093/2047 (1.02x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 527 (1.03x) (16) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 34/31 (1.06x) +Testing collisions (low 32-bit) - Expected 512.0, actual 522 (1.02x) (11) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 40/31 (1.25x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 56 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 487 (0.95x) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) +Testing collisions (high 32-bit) - Expected 512.0, actual 482 (0.94x) +Testing collisions (high 24-36 bits) - Worst is 28 bits: 8273/8191 (1.01x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 485 (0.95x) +Testing collisions (low 32-bit) - Expected 512.0, actual 556 (1.09x) (45) Testing collisions (low 24-36 bits) - Worst is 36 bits: 41/31 (1.28x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 57 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 485 (0.95x) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 41/31 (1.28x) +Testing collisions (high 32-bit) - Expected 512.0, actual 474 (0.93x) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 64/63 (1.00x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 545 (1.06x) (34) -Testing collisions (low 24-36 bits) - Worst is 35 bits: 73/63 (1.14x) +Testing collisions (low 32-bit) - Expected 512.0, actual 531 (1.04x) (20) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 58 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 509 (0.99x) (-2) -Testing collisions (high 24-36 bits) - Worst is 34 bits: 135/127 (1.05x) +Testing collisions (high 32-bit) - Expected 512.0, actual 488 (0.95x) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 511 (1.00x) -Testing collisions (low 24-36 bits) - Worst is 30 bits: 2106/2047 (1.03x) +Testing collisions (low 32-bit) - Expected 512.0, actual 543 (1.06x) (32) +Testing collisions (low 24-36 bits) - Worst is 32 bits: 543/511 (1.06x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 59 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 509 (0.99x) (-2) -Testing collisions (high 24-36 bits) - Worst is 31 bits: 1032/1023 (1.01x) +Testing collisions (high 32-bit) - Expected 512.0, actual 528 (1.03x) (17) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 40/31 (1.25x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 505 (0.99x) (-6) -Testing collisions (low 24-36 bits) - Worst is 29 bits: 4237/4095 (1.03x) +Testing collisions (low 32-bit) - Expected 512.0, actual 541 (1.06x) (30) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 60 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 499 (0.97x) -Testing collisions (high 24-36 bits) - Worst is 28 bits: 8290/8191 (1.01x) +Testing collisions (high 32-bit) - Expected 512.0, actual 528 (1.03x) (17) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 147/127 (1.15x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 526 (1.03x) (15) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 41/31 (1.28x) +Testing collisions (low 32-bit) - Expected 512.0, actual 507 (0.99x) (-4) +Testing collisions (low 24-36 bits) - Worst is 32 bits: 507/511 (0.99x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 61 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 534 (1.04x) (23) -Testing collisions (high 24-36 bits) - Worst is 34 bits: 134/127 (1.05x) +Testing collisions (high 32-bit) - Expected 512.0, actual 491 (0.96x) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 135/127 (1.05x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 508 (0.99x) (-3) -Testing collisions (low 24-36 bits) - Worst is 31 bits: 1035/1023 (1.01x) +Testing collisions (low 32-bit) - Expected 512.0, actual 529 (1.03x) (18) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 274/255 (1.07x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 62 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 530 (1.04x) (19) -Testing collisions (high 24-36 bits) - Worst is 32 bits: 530/511 (1.04x) +Testing collisions (high 32-bit) - Expected 512.0, actual 518 (1.01x) (7) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 35/31 (1.09x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 517 (1.01x) (6) -Testing collisions (low 24-36 bits) - Worst is 36 bits: 42/31 (1.31x) +Testing collisions (low 32-bit) - Expected 512.0, actual 504 (0.98x) (-7) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 263/255 (1.03x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 63 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 512.0, actual 521 (1.02x) (10) -Testing collisions (high 24-36 bits) - Worst is 36 bits: 43/31 (1.34x) +Testing collisions (high 32-bit) - Expected 512.0, actual 501 (0.98x) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 64/63 (1.00x) Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) -Testing collisions (low 32-bit) - Expected 512.0, actual 472 (0.92x) -Testing collisions (low 24-36 bits) - Worst is 28 bits: 8141/8191 (0.99x) +Testing collisions (low 32-bit) - Expected 512.0, actual 540 (1.05x) (29) +Testing collisions (low 24-36 bits) - Worst is 32 bits: 540/511 (1.05x) Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) @@ -1483,16 +1483,16 @@ Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Analyze hashes produced from a serie of linearly increasing numbers of 32-bit, using a step of 3 ... Target values to approximate : 38918200.000000 - 410450.000000 -Popcount 1 stats : 38919121.989370 - 410434.062934 -Popcount 0 stats : 38918028.259881 - 410423.768513 -MomentChi2 for bits 1 : 1.03555 -MomentChi2 for bits 0 : 0.0359308 +Popcount 1 stats : 38919009.002476 - 410418.684847 +Popcount 0 stats : 38918228.154163 - 410448.629383 +MomentChi2 for bits 1 : 0.797308 +MomentChi2 for bits 0 : 0.000965597 Derivative stats (transition from 2 consecutive values) : -Popcount 1 stats : 38919523.956012 - 410475.202934 -Popcount 0 stats : 38918557.696824 - 410478.877341 -MomentChi2 for deriv b1 : 2.13522 -MomentChi2 for deriv b0 : 0.155856 +Popcount 1 stats : 38918663.472812 - 410471.885420 +Popcount 0 stats : 38919044.952108 - 410462.633874 +MomentChi2 for deriv b1 : 0.261666 +MomentChi2 for deriv b0 : 0.869696 Great !! @@ -1501,16 +1501,16 @@ MomentChi2 for deriv b0 : 0.155856 Generating 33554432 random numbers : Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 131072.0, actual 130471 (1.00x) (-600) -Testing collisions (high 28-44 bits) - Worst is 42 bits: 130/127 (1.02x) +Testing collisions (high 32-bit) - Expected 131072.0, actual 131073 (1.00x) (2) +Testing collisions (high 28-44 bits) - Worst is 41 bits: 309/255 (1.21x) Testing collisions (high 12-bit) - Expected 33550336.0, actual 33550336 (1.00x) Testing collisions (high 8-bit) - Expected 33554176.0, actual 33554176 (1.00x) -Testing collisions (low 32-bit) - Expected 131072.0, actual 130871 (1.00x) (-200) -Testing collisions (low 28-44 bits) - Worst is 43 bits: 70/63 (1.09x) +Testing collisions (low 32-bit) - Expected 131072.0, actual 131184 (1.00x) (113) +Testing collisions (low 28-44 bits) - Worst is 42 bits: 138/127 (1.08x) Testing collisions (low 12-bit) - Expected 33550336.0, actual 33550336 (1.00x) Testing collisions (low 8-bit) - Expected 33554176.0, actual 33554176 (1.00x) Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001 -Verification value is 0x00000001 - Testing took 584.720469 seconds +Verification value is 0x00000001 - Testing took 646.187375 seconds ------------------------------------------------------------------------------- diff --git a/smhasher/fallbackOutput.txt b/smhasher/fallbackOutput.txt index cb324c5..28f4930 100644 --- a/smhasher/fallbackOutput.txt +++ b/smhasher/fallbackOutput.txt @@ -3,252 +3,252 @@ [[[ Sanity Tests ]]] -Verification value 0x52EC0BA4 ....... SKIP (self- or unseeded) +Verification value 0xE15404B7 ....... SKIP (self- or unseeded) Running sanity check 1 .......... PASS Running AppendedZeroesTest .......... PASS [[[ Speed Tests ]]] Bulk speed test - 262144-byte keys -Alignment 7 - 8.506 bytes/cycle - 24336.28 MiB/sec @ 3 ghz -Alignment 6 - 8.505 bytes/cycle - 24333.38 MiB/sec @ 3 ghz -Alignment 5 - 8.500 bytes/cycle - 24317.30 MiB/sec @ 3 ghz -Alignment 4 - 8.491 bytes/cycle - 24294.09 MiB/sec @ 3 ghz -Alignment 3 - 8.491 bytes/cycle - 24293.90 MiB/sec @ 3 ghz -Alignment 2 - 8.492 bytes/cycle - 24296.22 MiB/sec @ 3 ghz -Alignment 1 - 8.508 bytes/cycle - 24340.25 MiB/sec @ 3 ghz -Alignment 0 - 8.748 bytes/cycle - 25028.73 MiB/sec @ 3 ghz -Average - 8.530 bytes/cycle - 24405.02 MiB/sec @ 3 ghz - -Small key speed test - 1-byte keys - 14.97 cycles/hash -Small key speed test - 2-byte keys - 15.00 cycles/hash -Small key speed test - 3-byte keys - 15.00 cycles/hash -Small key speed test - 4-byte keys - 15.00 cycles/hash -Small key speed test - 5-byte keys - 16.00 cycles/hash -Small key speed test - 6-byte keys - 16.00 cycles/hash -Small key speed test - 7-byte keys - 16.11 cycles/hash -Small key speed test - 8-byte keys - 15.00 cycles/hash -Small key speed test - 9-byte keys - 19.04 cycles/hash -Small key speed test - 10-byte keys - 19.70 cycles/hash -Small key speed test - 11-byte keys - 19.43 cycles/hash -Small key speed test - 12-byte keys - 19.54 cycles/hash -Small key speed test - 13-byte keys - 19.65 cycles/hash -Small key speed test - 14-byte keys - 19.45 cycles/hash -Small key speed test - 15-byte keys - 19.00 cycles/hash -Small key speed test - 16-byte keys - 19.45 cycles/hash -Small key speed test - 17-byte keys - 19.84 cycles/hash -Small key speed test - 18-byte keys - 19.65 cycles/hash -Small key speed test - 19-byte keys - 19.36 cycles/hash -Small key speed test - 20-byte keys - 19.74 cycles/hash -Small key speed test - 21-byte keys - 19.56 cycles/hash -Small key speed test - 22-byte keys - 20.11 cycles/hash -Small key speed test - 23-byte keys - 20.08 cycles/hash -Small key speed test - 24-byte keys - 20.29 cycles/hash -Small key speed test - 25-byte keys - 20.55 cycles/hash -Small key speed test - 26-byte keys - 20.42 cycles/hash -Small key speed test - 27-byte keys - 20.43 cycles/hash -Small key speed test - 28-byte keys - 20.37 cycles/hash -Small key speed test - 29-byte keys - 20.42 cycles/hash -Small key speed test - 30-byte keys - 20.42 cycles/hash -Small key speed test - 31-byte keys - 20.37 cycles/hash -Average 18.708 cycles/hash +Alignment 7 - 7.097 bytes/cycle - 20304.54 MiB/sec @ 3 ghz +Alignment 6 - 7.075 bytes/cycle - 20242.50 MiB/sec @ 3 ghz +Alignment 5 - 7.070 bytes/cycle - 20228.27 MiB/sec @ 3 ghz +Alignment 4 - 7.079 bytes/cycle - 20253.31 MiB/sec @ 3 ghz +Alignment 3 - 7.053 bytes/cycle - 20178.99 MiB/sec @ 3 ghz +Alignment 2 - 7.059 bytes/cycle - 20194.86 MiB/sec @ 3 ghz +Alignment 1 - 7.066 bytes/cycle - 20215.71 MiB/sec @ 3 ghz +Alignment 0 - 7.166 bytes/cycle - 20501.12 MiB/sec @ 3 ghz +Average - 7.083 bytes/cycle - 20264.91 MiB/sec @ 3 ghz + +Small key speed test - 1-byte keys - 13.92 cycles/hash +Small key speed test - 2-byte keys - 13.98 cycles/hash +Small key speed test - 3-byte keys - 13.98 cycles/hash +Small key speed test - 4-byte keys - 13.99 cycles/hash +Small key speed test - 5-byte keys - 13.98 cycles/hash +Small key speed test - 6-byte keys - 13.98 cycles/hash +Small key speed test - 7-byte keys - 13.99 cycles/hash +Small key speed test - 8-byte keys - 13.98 cycles/hash +Small key speed test - 9-byte keys - 13.25 cycles/hash +Small key speed test - 10-byte keys - 13.25 cycles/hash +Small key speed test - 11-byte keys - 13.26 cycles/hash +Small key speed test - 12-byte keys - 13.26 cycles/hash +Small key speed test - 13-byte keys - 13.30 cycles/hash +Small key speed test - 14-byte keys - 13.26 cycles/hash +Small key speed test - 15-byte keys - 13.63 cycles/hash +Small key speed test - 16-byte keys - 13.70 cycles/hash +Small key speed test - 17-byte keys - 21.55 cycles/hash +Small key speed test - 18-byte keys - 27.87 cycles/hash +Small key speed test - 19-byte keys - 27.96 cycles/hash +Small key speed test - 20-byte keys - 14.57 cycles/hash +Small key speed test - 21-byte keys - 15.23 cycles/hash +Small key speed test - 22-byte keys - 15.56 cycles/hash +Small key speed test - 23-byte keys - 15.67 cycles/hash +Small key speed test - 24-byte keys - 15.60 cycles/hash +Small key speed test - 25-byte keys - 15.67 cycles/hash +Small key speed test - 26-byte keys - 15.69 cycles/hash +Small key speed test - 27-byte keys - 15.68 cycles/hash +Small key speed test - 28-byte keys - 15.69 cycles/hash +Small key speed test - 29-byte keys - 16.94 cycles/hash +Small key speed test - 30-byte keys - 16.95 cycles/hash +Small key speed test - 31-byte keys - 16.95 cycles/hash +Average 15.688 cycles/hash [[[ 'Hashmap' Speed Tests ]]] std::unordered_map -Init std HashMapTest: 295.723 cycles/op (102401 inserts, 1% deletions) -Running std HashMapTest: 124.234 cycles/op (1.7 stdv) +Init std HashMapTest: 343.665 cycles/op (102401 inserts, 1% deletions) +Running std HashMapTest: 122.429 cycles/op (1.9 stdv) greg7mdp/parallel-hashmap -Init fast HashMapTest: 112.031 cycles/op (102401 inserts, 1% deletions) -Running fast HashMapTest: 85.002 cycles/op (2.1 stdv) ....... PASS +Init fast HashMapTest: 119.334 cycles/op (102401 inserts, 1% deletions) +Running fast HashMapTest: 84.563 cycles/op (1.5 stdv) ....... PASS [[[ Avalanche Tests ]]] -Testing 24-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.700000% -Testing 32-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.628000% -Testing 40-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.628667% -Testing 48-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.662000% -Testing 56-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.699333% -Testing 64-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.665333% -Testing 72-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.630667% -Testing 80-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.692000% -Testing 96-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.774000% -Testing 112-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.730667% -Testing 128-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.794000% -Testing 160-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.702000% -Testing 512-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.763333% -Testing 1024-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.816667% +Testing 24-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.784000% +Testing 32-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.640667% +Testing 40-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.592000% +Testing 48-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.704667% +Testing 56-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.772667% +Testing 64-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.766000% +Testing 72-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.738667% +Testing 80-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.665333% +Testing 96-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.744000% +Testing 112-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.706000% +Testing 128-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.731333% +Testing 160-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.685333% +Testing 512-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.830667% +Testing 1024-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.796000% [[[ Keyset 'Sparse' Tests ]]] Keyset 'Sparse' - 16-bit keys with up to 9 bits set - 50643 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 0.6, actual 0 (0.00x) -Testing collisions (high 19-26 bits) - Worst is 22 bits: 320/611 (0.52x) -Testing collisions (high 12-bit) - Expected 50643.0, actual 46547 (0.92x) -Testing collisions (high 8-bit) - Expected 50643.0, actual 50387 (0.99x) (-256) -Testing collisions (low 32-bit) - Expected 0.6, actual 1 (1.67x) (1) -Testing collisions (low 19-26 bits) - Worst is 20 bits: 1168/2445 (0.48x) -Testing collisions (low 12-bit) - Expected 50643.0, actual 46547 (0.92x) -Testing collisions (low 8-bit) - Expected 50643.0, actual 50387 (0.99x) (-256) -Testing distribution - Worst bias is the 13-bit window at bit 4 - 0.462% +Testing collisions (high 32-bit) - Expected 0.3, actual 0 (0.00x) +Testing collisions (high 19-25 bits) - Worst is 25 bits: 48/38 (1.26x) +Testing collisions (high 12-bit) - Expected 46547.0, actual 46547 (1.00x) +Testing collisions (high 8-bit) - Expected 50387.0, actual 50387 (1.00x) +Testing collisions (low 32-bit) - Expected 0.3, actual 0 (0.00x) +Testing collisions (low 19-25 bits) - Worst is 23 bits: 170/152 (1.11x) +Testing collisions (low 12-bit) - Expected 46547.0, actual 46547 (1.00x) +Testing collisions (low 8-bit) - Expected 50387.0, actual 50387 (1.00x) +Testing distribution - Worst bias is the 13-bit window at bit 26 - 0.598% Keyset 'Sparse' - 24-bit keys with up to 8 bits set - 1271626 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 376.5, actual 180 (0.48x) -Testing collisions (high 24-36 bits) - Worst is 35 bits: 26/47 (0.55x) -Testing collisions (high 12-bit) - Expected 1271626.0, actual 1267530 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 1271626.0, actual 1271370 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 376.5, actual 184 (0.49x) -Testing collisions (low 24-36 bits) - Worst is 34 bits: 52/94 (0.55x) -Testing collisions (low 12-bit) - Expected 1271626.0, actual 1267530 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 1271626.0, actual 1271370 (1.00x) (-256) -Testing distribution - Worst bias is the 17-bit window at bit 8 - 0.085% +Testing collisions (high 32-bit) - Expected 188.2, actual 193 (1.03x) (5) +Testing collisions (high 24-35 bits) - Worst is 32 bits: 193/188 (1.03x) +Testing collisions (high 12-bit) - Expected 1267530.0, actual 1267530 (1.00x) +Testing collisions (high 8-bit) - Expected 1271370.0, actual 1271370 (1.00x) +Testing collisions (low 32-bit) - Expected 188.2, actual 154 (0.82x) +Testing collisions (low 24-35 bits) - Worst is 26 bits: 11981/12047 (0.99x) +Testing collisions (low 12-bit) - Expected 1267530.0, actual 1267530 (1.00x) +Testing collisions (low 8-bit) - Expected 1271370.0, actual 1271370 (1.00x) +Testing distribution - Worst bias is the 17-bit window at bit 26 - 0.074% Keyset 'Sparse' - 32-bit keys with up to 7 bits set - 4514873 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 4746.0, actual 2412 (0.51x) -Testing collisions (high 26-39 bits) - Worst is 39 bits: 24/37 (0.65x) -Testing collisions (high 12-bit) - Expected 4514873.0, actual 4510777 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 4514873.0, actual 4514617 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 4746.0, actual 2445 (0.52x) -Testing collisions (low 26-39 bits) - Worst is 34 bits: 630/1186 (0.53x) -Testing collisions (low 12-bit) - Expected 4514873.0, actual 4510777 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 4514873.0, actual 4514617 (1.00x) (-256) -Testing distribution - Worst bias is the 19-bit window at bit 47 - 0.045% +Testing collisions (high 32-bit) - Expected 2373.0, actual 2361 (0.99x) (-12) +Testing collisions (high 25-38 bits) - Worst is 37 bits: 84/74 (1.13x) +Testing collisions (high 12-bit) - Expected 4510777.0, actual 4510777 (1.00x) +Testing collisions (high 8-bit) - Expected 4514617.0, actual 4514617 (1.00x) +Testing collisions (low 32-bit) - Expected 2373.0, actual 2372 (1.00x) (-1) +Testing collisions (low 25-38 bits) - Worst is 33 bits: 1215/1186 (1.02x) +Testing collisions (low 12-bit) - Expected 4510777.0, actual 4510777 (1.00x) +Testing collisions (low 8-bit) - Expected 4514617.0, actual 4514617 (1.00x) +Testing distribution - Worst bias is the 19-bit window at bit 62 - 0.060% Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 4923.4, actual 2402 (0.49x) -Testing collisions (high 26-39 bits) - Worst is 34 bits: 639/1230 (0.52x) -Testing collisions (high 12-bit) - Expected 4598479.0, actual 4594383 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 4598479.0, actual 4598223 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 4923.4, actual 2444 (0.50x) -Testing collisions (low 26-39 bits) - Worst is 39 bits: 22/38 (0.57x) -Testing collisions (low 12-bit) - Expected 4598479.0, actual 4594383 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 4598479.0, actual 4598223 (1.00x) (-256) -Testing distribution - Worst bias is the 19-bit window at bit 62 - 0.044% +Testing collisions (high 32-bit) - Expected 2461.7, actual 2479 (1.01x) (18) +Testing collisions (high 25-38 bits) - Worst is 36 bits: 160/153 (1.04x) +Testing collisions (high 12-bit) - Expected 4594383.0, actual 4594383 (1.00x) +Testing collisions (high 8-bit) - Expected 4598223.0, actual 4598223 (1.00x) +Testing collisions (low 32-bit) - Expected 2461.7, actual 2461 (1.00x) +Testing collisions (low 25-38 bits) - Worst is 30 bits: 9912/9846 (1.01x) +Testing collisions (low 12-bit) - Expected 4594383.0, actual 4594383 (1.00x) +Testing collisions (low 8-bit) - Expected 4598223.0, actual 4598223 (1.00x) +Testing distribution - Worst bias is the 19-bit window at bit 37 - 0.049% Keyset 'Sparse' - 48-bit keys with up to 6 bits set - 14196869 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 46927.3, actual 23533 (0.50x) -Testing collisions (high 28-43 bits) - Worst is 43 bits: 19/22 (0.83x) -Testing collisions (high 12-bit) - Expected 14196869.0, actual 14192773 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 14196869.0, actual 14196613 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 46927.3, actual 23338 (0.50x) -Testing collisions (low 28-43 bits) - Worst is 35 bits: 2947/5865 (0.50x) -Testing collisions (low 12-bit) - Expected 14196869.0, actual 14192773 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 14196869.0, actual 14196613 (1.00x) (-256) -Testing distribution - Worst bias is the 19-bit window at bit 45 - 0.021% +Testing collisions (high 32-bit) - Expected 23463.6, actual 23570 (1.00x) (107) +Testing collisions (high 27-42 bits) - Worst is 41 bits: 60/45 (1.31x) +Testing collisions (high 12-bit) - Expected 14192773.0, actual 14192773 (1.00x) +Testing collisions (high 8-bit) - Expected 14196613.0, actual 14196613 (1.00x) +Testing collisions (low 32-bit) - Expected 23463.6, actual 23383 (1.00x) (-80) +Testing collisions (low 27-42 bits) - Worst is 42 bits: 27/22 (1.18x) +Testing collisions (low 12-bit) - Expected 14192773.0, actual 14192773 (1.00x) +Testing collisions (low 8-bit) - Expected 14196613.0, actual 14196613 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 27 - 0.021% Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 4139.3, actual 2065 (0.50x) -Testing collisions (high 26-39 bits) - Worst is 39 bits: 22/32 (0.68x) -Testing collisions (high 12-bit) - Expected 4216423.0, actual 4212327 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 4216423.0, actual 4216167 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 4139.3, actual 1999 (0.48x) -Testing collisions (low 26-39 bits) - Worst is 31 bits: 4110/8278 (0.50x) -Testing collisions (low 12-bit) - Expected 4216423.0, actual 4212327 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 4216423.0, actual 4216167 (1.00x) (-256) -Testing distribution - Worst bias is the 19-bit window at bit 26 - 0.049% +Testing collisions (high 32-bit) - Expected 2069.7, actual 2105 (1.02x) (36) +Testing collisions (high 25-38 bits) - Worst is 33 bits: 1070/1034 (1.03x) +Testing collisions (high 12-bit) - Expected 4212327.0, actual 4212327 (1.00x) +Testing collisions (high 8-bit) - Expected 4216167.0, actual 4216167 (1.00x) +Testing collisions (low 32-bit) - Expected 2069.7, actual 2124 (1.03x) (55) +Testing collisions (low 25-38 bits) - Worst is 34 bits: 557/517 (1.08x) +Testing collisions (low 12-bit) - Expected 4212327.0, actual 4212327 (1.00x) +Testing collisions (low 8-bit) - Expected 4216167.0, actual 4216167 (1.00x) +Testing distribution - Worst bias is the 19-bit window at bit 31 - 0.057% Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16053.7, actual 7972 (0.50x) -Testing collisions (high 27-41 bits) - Worst is 40 bits: 39/62 (0.62x) -Testing collisions (high 12-bit) - Expected 8303633.0, actual 8299537 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8303633.0, actual 8303377 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16053.7, actual 7866 (0.49x) -Testing collisions (low 27-41 bits) - Worst is 40 bits: 36/62 (0.57x) -Testing collisions (low 12-bit) - Expected 8303633.0, actual 8299537 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8303633.0, actual 8303377 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 61 - 0.047% +Testing collisions (high 32-bit) - Expected 8026.9, actual 7860 (0.98x) +Testing collisions (high 26-40 bits) - Worst is 30 bits: 31911/32107 (0.99x) +Testing collisions (high 12-bit) - Expected 8299537.0, actual 8299537 (1.00x) +Testing collisions (high 8-bit) - Expected 8303377.0, actual 8303377 (1.00x) +Testing collisions (low 32-bit) - Expected 8026.9, actual 7934 (0.99x) (-92) +Testing collisions (low 26-40 bits) - Worst is 39 bits: 78/62 (1.24x) +Testing collisions (low 12-bit) - Expected 8299537.0, actual 8299537 (1.00x) +Testing collisions (low 8-bit) - Expected 8303377.0, actual 8303377 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 38 - 0.047% Keyset 'Sparse' - 72-bit keys with up to 5 bits set - 15082603 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 52965.5, actual 26424 (0.50x) -Testing collisions (high 28-43 bits) - Worst is 42 bits: 32/51 (0.62x) -Testing collisions (high 12-bit) - Expected 15082603.0, actual 15078507 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 15082603.0, actual 15082347 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 52965.5, actual 26433 (0.50x) -Testing collisions (low 28-43 bits) - Worst is 42 bits: 34/51 (0.66x) -Testing collisions (low 12-bit) - Expected 15082603.0, actual 15078507 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 15082603.0, actual 15082347 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 59 - 0.022% +Testing collisions (high 32-bit) - Expected 26482.7, actual 26535 (1.00x) (53) +Testing collisions (high 27-42 bits) - Worst is 42 bits: 30/25 (1.16x) +Testing collisions (high 12-bit) - Expected 15078507.0, actual 15078507 (1.00x) +Testing collisions (high 8-bit) - Expected 15082347.0, actual 15082347 (1.00x) +Testing collisions (low 32-bit) - Expected 26482.7, actual 26509 (1.00x) (27) +Testing collisions (low 27-42 bits) - Worst is 39 bits: 218/206 (1.05x) +Testing collisions (low 12-bit) - Expected 15078507.0, actual 15078507 (1.00x) +Testing collisions (low 8-bit) - Expected 15082347.0, actual 15082347 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 34 - 0.022% Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 2802.7, actual 1406 (0.50x) -Testing collisions (high 26-39 bits) - Worst is 33 bits: 706/1401 (0.50x) -Testing collisions (high 12-bit) - Expected 3469497.0, actual 3465401 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 3469497.0, actual 3469241 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 2802.7, actual 1374 (0.49x) -Testing collisions (low 26-39 bits) - Worst is 37 bits: 44/87 (0.50x) -Testing collisions (low 12-bit) - Expected 3469497.0, actual 3465401 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 3469497.0, actual 3469241 (1.00x) (-256) -Testing distribution - Worst bias is the 19-bit window at bit 5 - 0.066% +Testing collisions (high 32-bit) - Expected 1401.3, actual 1459 (1.04x) (58) +Testing collisions (high 25-38 bits) - Worst is 38 bits: 29/21 (1.32x) +Testing collisions (high 12-bit) - Expected 3465401.0, actual 3465401 (1.00x) +Testing collisions (high 8-bit) - Expected 3469241.0, actual 3469241 (1.00x) +Testing collisions (low 32-bit) - Expected 1401.3, actual 1445 (1.03x) (44) +Testing collisions (low 25-38 bits) - Worst is 38 bits: 27/21 (1.23x) +Testing collisions (low 12-bit) - Expected 3465401.0, actual 3465401 (1.00x) +Testing collisions (low 8-bit) - Expected 3469241.0, actual 3469241 (1.00x) +Testing distribution - Worst bias is the 19-bit window at bit 54 - 0.068% Keyset 'Sparse' - 160-bit keys with up to 4 bits set - 26977161 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 169446.5, actual 84730 (0.50x) -Testing collisions (high 29-45 bits) - Worst is 45 bits: 14/20 (0.68x) -Testing collisions (high 12-bit) - Expected 26977161.0, actual 26973065 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 26977161.0, actual 26976905 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 169446.5, actual 84408 (0.50x) -Testing collisions (low 29-45 bits) - Worst is 36 bits: 5329/10590 (0.50x) -Testing collisions (low 12-bit) - Expected 26977161.0, actual 26973065 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 26977161.0, actual 26976905 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 20 - 0.010% +Testing collisions (high 32-bit) - Expected 84723.3, actual 85179 (1.01x) (456) +Testing collisions (high 28-44 bits) - Worst is 38 bits: 1340/1323 (1.01x) +Testing collisions (high 12-bit) - Expected 26973065.0, actual 26973065 (1.00x) +Testing collisions (high 8-bit) - Expected 26976905.0, actual 26976905 (1.00x) +Testing collisions (low 32-bit) - Expected 84723.3, actual 84918 (1.00x) (195) +Testing collisions (low 28-44 bits) - Worst is 44 bits: 28/20 (1.35x) +Testing collisions (low 12-bit) - Expected 26973065.0, actual 26973065 (1.00x) +Testing collisions (low 8-bit) - Expected 26976905.0, actual 26976905 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 47 - 0.014% Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1820.7, actual 908 (0.50x) -Testing collisions (high 25-38 bits) - Worst is 35 bits: 118/227 (0.52x) -Testing collisions (high 12-bit) - Expected 2796417.0, actual 2792321 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2796417.0, actual 2796161 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1820.7, actual 921 (0.51x) -Testing collisions (low 25-38 bits) - Worst is 38 bits: 18/28 (0.63x) -Testing collisions (low 12-bit) - Expected 2796417.0, actual 2792321 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2796417.0, actual 2796161 (1.00x) (-256) -Testing distribution - Worst bias is the 19-bit window at bit 8 - 0.067% +Testing collisions (high 32-bit) - Expected 910.4, actual 867 (0.95x) +Testing collisions (high 25-37 bits) - Worst is 37 bits: 31/28 (1.09x) +Testing collisions (high 12-bit) - Expected 2792321.0, actual 2792321 (1.00x) +Testing collisions (high 8-bit) - Expected 2796161.0, actual 2796161 (1.00x) +Testing collisions (low 32-bit) - Expected 910.4, actual 947 (1.04x) (37) +Testing collisions (low 25-37 bits) - Worst is 34 bits: 238/227 (1.05x) +Testing collisions (low 12-bit) - Expected 2792321.0, actual 2792321 (1.00x) +Testing collisions (low 8-bit) - Expected 2796161.0, actual 2796161 (1.00x) +Testing distribution - Worst bias is the 19-bit window at bit 41 - 0.082% Keyset 'Sparse' - 512-bit keys with up to 3 bits set - 22370049 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 116512.9, actual 58015 (0.50x) -Testing collisions (high 28-44 bits) - Worst is 44 bits: 19/28 (0.67x) -Testing collisions (high 12-bit) - Expected 22370049.0, actual 22365953 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 22370049.0, actual 22369793 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 116512.9, actual 58134 (0.50x) -Testing collisions (low 28-44 bits) - Worst is 40 bits: 241/455 (0.53x) -Testing collisions (low 12-bit) - Expected 22370049.0, actual 22365953 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 22370049.0, actual 22369793 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 62 - 0.016% +Testing collisions (high 32-bit) - Expected 58256.4, actual 58441 (1.00x) (185) +Testing collisions (high 28-43 bits) - Worst is 43 bits: 43/28 (1.51x) +Testing collisions (high 12-bit) - Expected 22365953.0, actual 22365953 (1.00x) +Testing collisions (high 8-bit) - Expected 22369793.0, actual 22369793 (1.00x) +Testing collisions (low 32-bit) - Expected 58256.4, actual 58230 (1.00x) (-26) +Testing collisions (low 28-43 bits) - Worst is 40 bits: 241/227 (1.06x) +Testing collisions (low 12-bit) - Expected 22365953.0, actual 22365953 (1.00x) +Testing collisions (low 8-bit) - Expected 22369793.0, actual 22369793 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 43 - 0.013% Keyset 'Sparse' - 1024-bit keys with up to 2 bits set - 524801 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 64.1, actual 30 (0.47x) -Testing collisions (high 23-33 bits) - Worst is 33 bits: 21/32 (0.65x) -Testing collisions (high 12-bit) - Expected 524801.0, actual 520705 (0.99x) (-4096) -Testing collisions (high 8-bit) - Expected 524801.0, actual 524545 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 64.1, actual 37 (0.58x) -Testing collisions (low 23-33 bits) - Worst is 33 bits: 23/32 (0.72x) -Testing collisions (low 12-bit) - Expected 524801.0, actual 520705 (0.99x) (-4096) -Testing collisions (low 8-bit) - Expected 524801.0, actual 524545 (1.00x) (-256) -Testing distribution - Worst bias is the 16-bit window at bit 54 - 0.182% +Testing collisions (high 32-bit) - Expected 32.1, actual 38 (1.19x) (6) +Testing collisions (high 22-32 bits) - Worst is 32 bits: 38/32 (1.19x) +Testing collisions (high 12-bit) - Expected 520705.0, actual 520705 (1.00x) +Testing collisions (high 8-bit) - Expected 524545.0, actual 524545 (1.00x) +Testing collisions (low 32-bit) - Expected 32.1, actual 33 (1.03x) (1) +Testing collisions (low 22-32 bits) - Worst is 31 bits: 72/64 (1.12x) +Testing collisions (low 12-bit) - Expected 520705.0, actual 520705 (1.00x) +Testing collisions (low 8-bit) - Expected 524545.0, actual 524545 (1.00x) +Testing distribution - Worst bias is the 16-bit window at bit 38 - 0.117% Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1025.0, actual 529 (0.52x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 22/32 (0.69x) -Testing collisions (high 12-bit) - Expected 2098177.0, actual 2094081 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2098177.0, actual 2097921 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1025.0, actual 525 (0.51x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 24/32 (0.75x) -Testing collisions (low 12-bit) - Expected 2098177.0, actual 2094081 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2098177.0, actual 2097921 (1.00x) (-256) -Testing distribution - Worst bias is the 18-bit window at bit 4 - 0.088% +Testing collisions (high 32-bit) - Expected 512.5, actual 536 (1.05x) (24) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 536/512 (1.05x) +Testing collisions (high 12-bit) - Expected 2094081.0, actual 2094081 (1.00x) +Testing collisions (high 8-bit) - Expected 2097921.0, actual 2097921 (1.00x) +Testing collisions (low 32-bit) - Expected 512.5, actual 492 (0.96x) +Testing collisions (low 24-36 bits) - Worst is 27 bits: 16444/16400 (1.00x) +Testing collisions (low 12-bit) - Expected 2094081.0, actual 2094081 (1.00x) +Testing collisions (low 8-bit) - Expected 2097921.0, actual 2097921 (1.00x) +Testing distribution - Worst bias is the 18-bit window at bit 44 - 0.056% [[[ Keyset 'Permutation' Tests ]]] @@ -256,211 +256,211 @@ Testing distribution - Worst bias is the 18-bit window at bit 4 - 0.088% Combination Lowbits Tests: Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1337.5, actual 659 (0.49x) -Testing collisions (high 25-38 bits) - Worst is 36 bits: 55/83 (0.66x) -Testing collisions (high 12-bit) - Expected 2396744.0, actual 2392648 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2396744.0, actual 2396488 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1337.5, actual 692 (0.52x) -Testing collisions (low 25-38 bits) - Worst is 38 bits: 13/20 (0.62x) -Testing collisions (low 12-bit) - Expected 2396744.0, actual 2392648 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2396744.0, actual 2396488 (1.00x) (-256) -Testing distribution - Worst bias is the 17-bit window at bit 8 - 0.049% +Testing collisions (high 32-bit) - Expected 668.7, actual 701 (1.05x) (33) +Testing collisions (high 25-37 bits) - Worst is 36 bits: 48/41 (1.15x) +Testing collisions (high 12-bit) - Expected 2392648.0, actual 2392648 (1.00x) +Testing collisions (high 8-bit) - Expected 2396488.0, actual 2396488 (1.00x) +Testing collisions (low 32-bit) - Expected 668.7, actual 671 (1.00x) (3) +Testing collisions (low 25-37 bits) - Worst is 36 bits: 57/41 (1.36x) +Testing collisions (low 12-bit) - Expected 2392648.0, actual 2392648 (1.00x) +Testing collisions (low 8-bit) - Expected 2396488.0, actual 2396488 (1.00x) +Testing distribution - Worst bias is the 18-bit window at bit 61 - 0.065% Combination Highbits Tests Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1337.5, actual 668 (0.50x) -Testing collisions (high 25-38 bits) - Worst is 34 bits: 175/334 (0.52x) -Testing collisions (high 12-bit) - Expected 2396744.0, actual 2392648 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2396744.0, actual 2396488 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1337.5, actual 675 (0.50x) -Testing collisions (low 25-38 bits) - Worst is 36 bits: 54/83 (0.65x) -Testing collisions (low 12-bit) - Expected 2396744.0, actual 2392648 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2396744.0, actual 2396488 (1.00x) (-256) -Testing distribution - Worst bias is the 18-bit window at bit 5 - 0.074% +Testing collisions (high 32-bit) - Expected 668.7, actual 652 (0.97x) +Testing collisions (high 25-37 bits) - Worst is 34 bits: 182/167 (1.09x) +Testing collisions (high 12-bit) - Expected 2392648.0, actual 2392648 (1.00x) +Testing collisions (high 8-bit) - Expected 2396488.0, actual 2396488 (1.00x) +Testing collisions (low 32-bit) - Expected 668.7, actual 660 (0.99x) (-8) +Testing collisions (low 25-37 bits) - Worst is 37 bits: 25/20 (1.20x) +Testing collisions (low 12-bit) - Expected 2392648.0, actual 2392648 (1.00x) +Testing collisions (low 8-bit) - Expected 2396488.0, actual 2396488 (1.00x) +Testing distribution - Worst bias is the 18-bit window at bit 0 - 0.052% Combination Hi-Lo Tests: Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 34678.6, actual 17094 (0.49x) -Testing collisions (high 27-42 bits) - Worst is 36 bits: 1095/2167 (0.51x) -Testing collisions (high 12-bit) - Expected 12204240.0, actual 12200144 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 12204240.0, actual 12203984 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 34678.6, actual 17320 (0.50x) -Testing collisions (low 27-42 bits) - Worst is 40 bits: 75/135 (0.55x) -Testing collisions (low 12-bit) - Expected 12204240.0, actual 12200144 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 12204240.0, actual 12203984 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 12 - 0.032% +Testing collisions (high 32-bit) - Expected 17339.3, actual 17349 (1.00x) (10) +Testing collisions (high 27-41 bits) - Worst is 41 bits: 37/33 (1.09x) +Testing collisions (high 12-bit) - Expected 12200144.0, actual 12200144 (1.00x) +Testing collisions (high 8-bit) - Expected 12203984.0, actual 12203984 (1.00x) +Testing collisions (low 32-bit) - Expected 17339.3, actual 17458 (1.01x) (119) +Testing collisions (low 27-41 bits) - Worst is 40 bits: 74/67 (1.09x) +Testing collisions (low 12-bit) - Expected 12200144.0, actual 12200144 (1.00x) +Testing collisions (low 8-bit) - Expected 12203984.0, actual 12203984 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 15 - 0.032% Combination 0x8000000 Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16384.0, actual 8224 (0.50x) -Testing collisions (high 27-41 bits) - Worst is 33 bits: 4198/8191 (0.51x) -Testing collisions (high 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16384.0, actual 8166 (0.50x) -Testing collisions (low 27-41 bits) - Worst is 36 bits: 529/1023 (0.52x) -Testing collisions (low 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 26 - 0.040% +Testing collisions (high 32-bit) - Expected 8192.0, actual 8225 (1.00x) (34) +Testing collisions (high 26-40 bits) - Worst is 40 bits: 35/31 (1.09x) +Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8174 (1.00x) (-17) +Testing collisions (low 26-40 bits) - Worst is 40 bits: 35/31 (1.09x) +Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 44 - 0.040% Combination 0x0000001 Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16384.0, actual 8221 (0.50x) -Testing collisions (high 27-41 bits) - Worst is 38 bits: 139/255 (0.54x) -Testing collisions (high 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16384.0, actual 8070 (0.49x) -Testing collisions (low 27-41 bits) - Worst is 37 bits: 273/511 (0.53x) -Testing collisions (low 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 33 - 0.045% +Testing collisions (high 32-bit) - Expected 8192.0, actual 8146 (0.99x) (-45) +Testing collisions (high 26-40 bits) - Worst is 39 bits: 73/63 (1.14x) +Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8268 (1.01x) (77) +Testing collisions (low 26-40 bits) - Worst is 40 bits: 37/31 (1.16x) +Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 30 - 0.031% Combination 0x800000000000000 Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16384.0, actual 8143 (0.50x) -Testing collisions (high 27-41 bits) - Worst is 41 bits: 20/31 (0.63x) -Testing collisions (high 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16384.0, actual 8230 (0.50x) -Testing collisions (low 27-41 bits) - Worst is 38 bits: 144/255 (0.56x) -Testing collisions (low 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 54 - 0.035% +Testing collisions (high 32-bit) - Expected 8192.0, actual 8259 (1.01x) (68) +Testing collisions (high 26-40 bits) - Worst is 32 bits: 8259/8191 (1.01x) +Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8238 (1.01x) (47) +Testing collisions (low 26-40 bits) - Worst is 40 bits: 38/31 (1.19x) +Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 3 - 0.036% Combination 0x000000000000001 Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16384.0, actual 8039 (0.49x) -Testing collisions (high 27-41 bits) - Worst is 41 bits: 17/31 (0.53x) -Testing collisions (high 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16384.0, actual 8271 (0.50x) -Testing collisions (low 27-41 bits) - Worst is 41 bits: 20/31 (0.63x) -Testing collisions (low 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 40 - 0.045% +Testing collisions (high 32-bit) - Expected 8192.0, actual 8145 (0.99x) (-46) +Testing collisions (high 26-40 bits) - Worst is 40 bits: 35/31 (1.09x) +Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 7977 (0.97x) +Testing collisions (low 26-40 bits) - Worst is 40 bits: 35/31 (1.09x) +Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 12 - 0.042% Combination 16-bytes [0-1] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16384.0, actual 8194 (0.50x) -Testing collisions (high 27-41 bits) - Worst is 33 bits: 4138/8191 (0.51x) -Testing collisions (high 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16384.0, actual 8163 (0.50x) -Testing collisions (low 27-41 bits) - Worst is 41 bits: 20/31 (0.63x) -Testing collisions (low 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 9 - 0.037% +Testing collisions (high 32-bit) - Expected 8192.0, actual 8278 (1.01x) (87) +Testing collisions (high 26-40 bits) - Worst is 40 bits: 39/31 (1.22x) +Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8070 (0.99x) (-121) +Testing collisions (low 26-40 bits) - Worst is 37 bits: 267/255 (1.04x) +Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 23 - 0.033% Combination 16-bytes [0-last] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16384.0, actual 8063 (0.49x) -Testing collisions (high 27-41 bits) - Worst is 41 bits: 18/31 (0.56x) -Testing collisions (high 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16384.0, actual 8241 (0.50x) -Testing collisions (low 27-41 bits) - Worst is 39 bits: 91/127 (0.71x) -Testing collisions (low 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 18 - 0.035% +Testing collisions (high 32-bit) - Expected 8192.0, actual 8038 (0.98x) (-153) +Testing collisions (high 26-40 bits) - Worst is 38 bits: 131/127 (1.02x) +Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8156 (1.00x) (-35) +Testing collisions (low 26-40 bits) - Worst is 40 bits: 38/31 (1.19x) +Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 22 - 0.035% Combination 32-bytes [0-1] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16384.0, actual 7942 (0.48x) -Testing collisions (high 27-41 bits) - Worst is 41 bits: 17/31 (0.53x) -Testing collisions (high 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16384.0, actual 8191 (0.50x) -Testing collisions (low 27-41 bits) - Worst is 41 bits: 17/31 (0.53x) -Testing collisions (low 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 5 - 0.038% +Testing collisions (high 32-bit) - Expected 8192.0, actual 8268 (1.01x) (77) +Testing collisions (high 26-40 bits) - Worst is 38 bits: 130/127 (1.02x) +Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8158 (1.00x) (-33) +Testing collisions (low 26-40 bits) - Worst is 30 bits: 32831/32767 (1.00x) +Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 26 - 0.038% Combination 32-bytes [0-last] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16384.0, actual 8218 (0.50x) -Testing collisions (high 27-41 bits) - Worst is 39 bits: 71/127 (0.55x) -Testing collisions (high 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16384.0, actual 8144 (0.50x) -Testing collisions (low 27-41 bits) - Worst is 30 bits: 32683/65535 (0.50x) -Testing collisions (low 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 42 - 0.039% +Testing collisions (high 32-bit) - Expected 8192.0, actual 8197 (1.00x) (6) +Testing collisions (high 26-40 bits) - Worst is 35 bits: 1055/1023 (1.03x) +Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8202 (1.00x) (11) +Testing collisions (low 26-40 bits) - Worst is 36 bits: 529/511 (1.03x) +Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 58 - 0.031% Combination 64-bytes [0-1] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16384.0, actual 8140 (0.50x) -Testing collisions (high 27-41 bits) - Worst is 40 bits: 39/63 (0.61x) -Testing collisions (high 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16384.0, actual 8127 (0.50x) -Testing collisions (low 27-41 bits) - Worst is 40 bits: 34/63 (0.53x) -Testing collisions (low 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 53 - 0.042% +Testing collisions (high 32-bit) - Expected 8192.0, actual 8127 (0.99x) (-64) +Testing collisions (high 26-40 bits) - Worst is 39 bits: 69/63 (1.08x) +Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8076 (0.99x) (-115) +Testing collisions (low 26-40 bits) - Worst is 37 bits: 261/255 (1.02x) +Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 63 - 0.028% Combination 64-bytes [0-last] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16384.0, actual 8178 (0.50x) -Testing collisions (high 27-41 bits) - Worst is 40 bits: 46/63 (0.72x) -Testing collisions (high 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16384.0, actual 8354 (0.51x) -Testing collisions (low 27-41 bits) - Worst is 38 bits: 136/255 (0.53x) -Testing collisions (low 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 26 - 0.038% +Testing collisions (high 32-bit) - Expected 8192.0, actual 8181 (1.00x) (-10) +Testing collisions (high 26-40 bits) - Worst is 40 bits: 35/31 (1.09x) +Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8184 (1.00x) (-7) +Testing collisions (low 26-40 bits) - Worst is 39 bits: 68/63 (1.06x) +Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 42 - 0.041% Combination 128-bytes [0-1] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16384.0, actual 8384 (0.51x) -Testing collisions (high 27-41 bits) - Worst is 32 bits: 8384/16383 (0.51x) -Testing collisions (high 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16384.0, actual 8287 (0.51x) -Testing collisions (low 27-41 bits) - Worst is 33 bits: 4188/8191 (0.51x) -Testing collisions (low 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 23 - 0.037% +Testing collisions (high 32-bit) - Expected 8192.0, actual 8275 (1.01x) (84) +Testing collisions (high 26-40 bits) - Worst is 40 bits: 36/31 (1.13x) +Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8208 (1.00x) (17) +Testing collisions (low 26-40 bits) - Worst is 37 bits: 270/255 (1.05x) +Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 1 - 0.043% Combination 128-bytes [0-last] Tests: Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 16384.0, actual 8104 (0.49x) -Testing collisions (high 27-41 bits) - Worst is 34 bits: 2045/4095 (0.50x) -Testing collisions (high 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 16384.0, actual 8263 (0.50x) -Testing collisions (low 27-41 bits) - Worst is 41 bits: 19/31 (0.59x) -Testing collisions (low 12-bit) - Expected 8388606.0, actual 8384510 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 8388606.0, actual 8388350 (1.00x) (-256) -Testing distribution - Worst bias is the 19-bit window at bit 16 - 0.040% +Testing collisions (high 32-bit) - Expected 8192.0, actual 8243 (1.01x) (52) +Testing collisions (high 26-40 bits) - Worst is 34 bits: 2082/2047 (1.02x) +Testing collisions (high 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (high 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing collisions (low 32-bit) - Expected 8192.0, actual 8315 (1.02x) (124) +Testing collisions (low 26-40 bits) - Worst is 40 bits: 38/31 (1.19x) +Testing collisions (low 12-bit) - Expected 8384510.0, actual 8384510 (1.00x) +Testing collisions (low 8-bit) - Expected 8388350.0, actual 8388350 (1.00x) +Testing distribution - Worst bias is the 19-bit window at bit 25 - 0.039% [[[ Keyset 'Window' Tests ]]] @@ -504,221 +504,257 @@ Window at 32 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0 Keyset 'Cyclic' - 8 cycles of 8 bytes - 1000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 232.8, actual 107 (0.46x) -Testing collisions (high 24-35 bits) - Worst is 34 bits: 38/58 (0.65x) -Testing collisions (high 12-bit) - Expected 1000000.0, actual 995904 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 1000000.0, actual 999744 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 232.8, actual 100 (0.43x) -Testing collisions (low 24-35 bits) - Worst is 27 bits: 3707/7450 (0.50x) -Testing collisions (low 12-bit) - Expected 1000000.0, actual 995904 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 1000000.0, actual 999744 (1.00x) (-256) -Testing distribution - Worst bias is the 17-bit window at bit 63 - 0.088% +Testing collisions (high 32-bit) - Expected 116.4, actual 96 (0.82x) +Testing collisions (high 23-34 bits) - Worst is 24 bits: 28916/29802 (0.97x) +Testing collisions (high 12-bit) - Expected 995904.0, actual 995904 (1.00x) +Testing collisions (high 8-bit) - Expected 999744.0, actual 999744 (1.00x) +Testing collisions (low 32-bit) - Expected 116.4, actual 126 (1.08x) (10) +Testing collisions (low 23-34 bits) - Worst is 32 bits: 126/116 (1.08x) +Testing collisions (low 12-bit) - Expected 995904.0, actual 995904 (1.00x) +Testing collisions (low 8-bit) - Expected 999744.0, actual 999744 (1.00x) +Testing distribution - Worst bias is the 17-bit window at bit 13 - 0.085% Keyset 'Cyclic' - 8 cycles of 9 bytes - 1000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 232.8, actual 106 (0.46x) -Testing collisions (high 24-35 bits) - Worst is 26 bits: 7405/14901 (0.50x) -Testing collisions (high 12-bit) - Expected 1000000.0, actual 995904 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 1000000.0, actual 999744 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 232.8, actual 126 (0.54x) -Testing collisions (low 24-35 bits) - Worst is 35 bits: 18/29 (0.62x) -Testing collisions (low 12-bit) - Expected 1000000.0, actual 995904 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 1000000.0, actual 999744 (1.00x) (-256) -Testing distribution - Worst bias is the 17-bit window at bit 55 - 0.099% +Testing collisions (high 32-bit) - Expected 116.4, actual 95 (0.82x) +Testing collisions (high 23-34 bits) - Worst is 34 bits: 30/29 (1.03x) +Testing collisions (high 12-bit) - Expected 995904.0, actual 995904 (1.00x) +Testing collisions (high 8-bit) - Expected 999744.0, actual 999744 (1.00x) +Testing collisions (low 32-bit) - Expected 116.4, actual 123 (1.06x) (7) +Testing collisions (low 23-34 bits) - Worst is 34 bits: 37/29 (1.27x) +Testing collisions (low 12-bit) - Expected 995904.0, actual 995904 (1.00x) +Testing collisions (low 8-bit) - Expected 999744.0, actual 999744 (1.00x) +Testing distribution - Worst bias is the 17-bit window at bit 47 - 0.120% Keyset 'Cyclic' - 8 cycles of 10 bytes - 1000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 232.8, actual 127 (0.55x) -Testing collisions (high 24-35 bits) - Worst is 33 bits: 66/116 (0.57x) -Testing collisions (high 12-bit) - Expected 1000000.0, actual 995904 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 1000000.0, actual 999744 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 232.8, actual 104 (0.45x) -Testing collisions (low 24-35 bits) - Worst is 27 bits: 3807/7450 (0.51x) -Testing collisions (low 12-bit) - Expected 1000000.0, actual 995904 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 1000000.0, actual 999744 (1.00x) (-256) -Testing distribution - Worst bias is the 17-bit window at bit 7 - 0.136% +Testing collisions (high 32-bit) - Expected 116.4, actual 115 (0.99x) (-1) +Testing collisions (high 23-34 bits) - Worst is 33 bits: 62/58 (1.07x) +Testing collisions (high 12-bit) - Expected 995904.0, actual 995904 (1.00x) +Testing collisions (high 8-bit) - Expected 999744.0, actual 999744 (1.00x) +Testing collisions (low 32-bit) - Expected 116.4, actual 114 (0.98x) +Testing collisions (low 23-34 bits) - Worst is 34 bits: 35/29 (1.20x) +Testing collisions (low 12-bit) - Expected 995904.0, actual 995904 (1.00x) +Testing collisions (low 8-bit) - Expected 999744.0, actual 999744 (1.00x) +Testing distribution - Worst bias is the 17-bit window at bit 7 - 0.123% Keyset 'Cyclic' - 8 cycles of 11 bytes - 1000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 232.8, actual 118 (0.51x) -Testing collisions (high 24-35 bits) - Worst is 34 bits: 33/58 (0.57x) -Testing collisions (high 12-bit) - Expected 1000000.0, actual 995904 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 1000000.0, actual 999744 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 232.8, actual 128 (0.55x) -Testing collisions (low 24-35 bits) - Worst is 32 bits: 128/232 (0.55x) -Testing collisions (low 12-bit) - Expected 1000000.0, actual 995904 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 1000000.0, actual 999744 (1.00x) (-256) -Testing distribution - Worst bias is the 17-bit window at bit 38 - 0.115% +Testing collisions (high 32-bit) - Expected 116.4, actual 117 (1.01x) (1) +Testing collisions (high 23-34 bits) - Worst is 33 bits: 66/58 (1.13x) +Testing collisions (high 12-bit) - Expected 995904.0, actual 995904 (1.00x) +Testing collisions (high 8-bit) - Expected 999744.0, actual 999744 (1.00x) +Testing collisions (low 32-bit) - Expected 116.4, actual 106 (0.91x) +Testing collisions (low 23-34 bits) - Worst is 34 bits: 31/29 (1.07x) +Testing collisions (low 12-bit) - Expected 995904.0, actual 995904 (1.00x) +Testing collisions (low 8-bit) - Expected 999744.0, actual 999744 (1.00x) +Testing distribution - Worst bias is the 17-bit window at bit 57 - 0.192% Keyset 'Cyclic' - 8 cycles of 12 bytes - 1000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 232.8, actual 91 (0.39x) -Testing collisions (high 24-35 bits) - Worst is 27 bits: 3813/7450 (0.51x) -Testing collisions (high 12-bit) - Expected 1000000.0, actual 995904 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 1000000.0, actual 999744 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 232.8, actual 102 (0.44x) -Testing collisions (low 24-35 bits) - Worst is 25 bits: 14959/29802 (0.50x) -Testing collisions (low 12-bit) - Expected 1000000.0, actual 995904 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 1000000.0, actual 999744 (1.00x) (-256) -Testing distribution - Worst bias is the 17-bit window at bit 63 - 0.130% +Testing collisions (high 32-bit) - Expected 116.4, actual 105 (0.90x) +Testing collisions (high 23-34 bits) - Worst is 34 bits: 38/29 (1.31x) +Testing collisions (high 12-bit) - Expected 995904.0, actual 995904 (1.00x) +Testing collisions (high 8-bit) - Expected 999744.0, actual 999744 (1.00x) +Testing collisions (low 32-bit) - Expected 116.4, actual 114 (0.98x) +Testing collisions (low 23-34 bits) - Worst is 28 bits: 1868/1862 (1.00x) +Testing collisions (low 12-bit) - Expected 995904.0, actual 995904 (1.00x) +Testing collisions (low 8-bit) - Expected 999744.0, actual 999744 (1.00x) +Testing distribution - Worst bias is the 17-bit window at bit 47 - 0.099% Keyset 'Cyclic' - 8 cycles of 16 bytes - 1000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 232.8, actual 122 (0.52x) -Testing collisions (high 24-35 bits) - Worst is 35 bits: 17/29 (0.58x) -Testing collisions (high 12-bit) - Expected 1000000.0, actual 995904 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 1000000.0, actual 999744 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 232.8, actual 116 (0.50x) -Testing collisions (low 24-35 bits) - Worst is 33 bits: 61/116 (0.52x) -Testing collisions (low 12-bit) - Expected 1000000.0, actual 995904 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 1000000.0, actual 999744 (1.00x) (-256) -Testing distribution - Worst bias is the 17-bit window at bit 19 - 0.122% +Testing collisions (high 32-bit) - Expected 116.4, actual 99 (0.85x) +Testing collisions (high 23-34 bits) - Worst is 28 bits: 1951/1862 (1.05x) +Testing collisions (high 12-bit) - Expected 995904.0, actual 995904 (1.00x) +Testing collisions (high 8-bit) - Expected 999744.0, actual 999744 (1.00x) +Testing collisions (low 32-bit) - Expected 116.4, actual 123 (1.06x) (7) +Testing collisions (low 23-34 bits) - Worst is 32 bits: 123/116 (1.06x) +Testing collisions (low 12-bit) - Expected 995904.0, actual 995904 (1.00x) +Testing collisions (low 8-bit) - Expected 999744.0, actual 999744 (1.00x) +Testing distribution - Worst bias is the 17-bit window at bit 35 - 0.105% [[[ Keyset 'TwoBytes' Tests ]]] Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 99.1, actual 47 (0.47x) -Testing collisions (high 23-34 bits) - Worst is 34 bits: 16/24 (0.65x) -Testing collisions (high 12-bit) - Expected 652545.0, actual 648449 (0.99x) (-4096) -Testing collisions (high 8-bit) - Expected 652545.0, actual 652289 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 99.1, actual 46 (0.46x) -Testing collisions (low 23-34 bits) - Worst is 33 bits: 28/49 (0.56x) -Testing collisions (low 12-bit) - Expected 652545.0, actual 648449 (0.99x) (-4096) -Testing collisions (low 8-bit) - Expected 652545.0, actual 652289 (1.00x) (-256) -Testing distribution - Worst bias is the 16-bit window at bit 34 - 0.138% +Testing collisions (high 32-bit) - Expected 49.6, actual 58 (1.17x) (9) +Testing collisions (high 23-33 bits) - Worst is 32 bits: 58/49 (1.17x) +Testing collisions (high 12-bit) - Expected 648449.0, actual 648449 (1.00x) +Testing collisions (high 8-bit) - Expected 652289.0, actual 652289 (1.00x) +Testing collisions (low 32-bit) - Expected 49.6, actual 40 (0.81x) +Testing collisions (low 23-33 bits) - Worst is 30 bits: 213/198 (1.07x) +Testing collisions (low 12-bit) - Expected 648449.0, actual 648449 (1.00x) +Testing collisions (low 8-bit) - Expected 652289.0, actual 652289 (1.00x) +Testing distribution - Worst bias is the 16-bit window at bit 4 - 0.136% Keyset 'TwoBytes' - up-to-8-byte keys, 5471025 total keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 6969.1, actual 3548 (0.51x) -Testing collisions (high 26-40 bits) - Worst is 40 bits: 15/27 (0.55x) -Testing collisions (high 12-bit) - Expected 5471025.0, actual 5466929 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 5471025.0, actual 5470769 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 6969.1, actual 3378 (0.48x) -Testing collisions (low 26-40 bits) - Worst is 39 bits: 34/54 (0.62x) -Testing collisions (low 12-bit) - Expected 5471025.0, actual 5466929 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 5471025.0, actual 5470769 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 12 - 0.056% +Testing collisions (high 32-bit) - Expected 3484.6, actual 3477 (1.00x) (-7) +Testing collisions (high 26-39 bits) - Worst is 38 bits: 62/54 (1.14x) +Testing collisions (high 12-bit) - Expected 5466929.0, actual 5466929 (1.00x) +Testing collisions (high 8-bit) - Expected 5470769.0, actual 5470769 (1.00x) +Testing collisions (low 32-bit) - Expected 3484.6, actual 3518 (1.01x) (34) +Testing collisions (low 26-39 bits) - Worst is 36 bits: 224/217 (1.03x) +Testing collisions (low 12-bit) - Expected 5466929.0, actual 5466929 (1.00x) +Testing collisions (low 8-bit) - Expected 5470769.0, actual 5470769 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 9 - 0.071% Keyset 'TwoBytes' - up-to-12-byte keys, 18616785 total keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 80695.5, actual 40607 (0.50x) -Testing collisions (high 28-43 bits) - Worst is 42 bits: 42/78 (0.53x) -Testing collisions (high 12-bit) - Expected 18616785.0, actual 18612689 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 18616785.0, actual 18616529 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 80695.5, actual 40085 (0.50x) -Testing collisions (low 28-43 bits) - Worst is 36 bits: 2521/5043 (0.50x) -Testing collisions (low 12-bit) - Expected 18616785.0, actual 18612689 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 18616785.0, actual 18616529 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 56 - 0.012% +Testing collisions (high 32-bit) - Expected 40347.8, actual 40448 (1.00x) (101) +Testing collisions (high 27-42 bits) - Worst is 35 bits: 5127/5043 (1.02x) +Testing collisions (high 12-bit) - Expected 18612689.0, actual 18612689 (1.00x) +Testing collisions (high 8-bit) - Expected 18616529.0, actual 18616529 (1.00x) +Testing collisions (low 32-bit) - Expected 40347.8, actual 40175 (1.00x) (-172) +Testing collisions (low 27-42 bits) - Worst is 33 bits: 20112/20173 (1.00x) +Testing collisions (low 12-bit) - Expected 18612689.0, actual 18612689 (1.00x) +Testing collisions (low 8-bit) - Expected 18616529.0, actual 18616529 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 24 - 0.022% Keyset 'TwoBytes' - up-to-16-byte keys, 44251425 total keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 455926.3, actual 227080 (0.50x) -Testing collisions (high 29-46 bits) - Worst is 46 bits: 15/27 (0.54x) -Testing collisions (high 12-bit) - Expected 44251425.0, actual 44247329 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 44251425.0, actual 44251169 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 455926.3, actual 226684 (0.50x) -Testing collisions (low 29-46 bits) - Worst is 33 bits: 113923/227963 (0.50x) -Testing collisions (low 12-bit) - Expected 44251425.0, actual 44247329 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 44251425.0, actual 44251169 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 0 - 0.007% +Testing collisions (high 32-bit) - Expected 227963.2, actual 227655 (1.00x) (-308) +Testing collisions (high 29-45 bits) - Worst is 38 bits: 3590/3561 (1.01x) +Testing collisions (high 12-bit) - Expected 44247329.0, actual 44247329 (1.00x) +Testing collisions (high 8-bit) - Expected 44251169.0, actual 44251169 (1.00x) +Testing collisions (low 32-bit) - Expected 227963.2, actual 226913 (1.00x) (-1050) +Testing collisions (low 29-45 bits) - Worst is 37 bits: 7121/7123 (1.00x) +Testing collisions (low 12-bit) - Expected 44247329.0, actual 44247329 (1.00x) +Testing collisions (low 8-bit) - Expected 44251169.0, actual 44251169 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 22 - 0.009% Keyset 'TwoBytes' - up-to-20-byte keys, 86536545 total keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1743569.4, actual 866241 (0.50x) -Testing collisions (high 30-48 bits) - Worst is 36 bits: 54556/108973 (0.50x) -Testing collisions (high 12-bit) - Expected 86536545.0, actual 86532449 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 86536545.0, actual 86536289 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1743569.4, actual 865870 (0.50x) -Testing collisions (low 30-48 bits) - Worst is 37 bits: 27421/54486 (0.50x) -Testing collisions (low 12-bit) - Expected 86536545.0, actual 86532449 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 86536545.0, actual 86536289 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 5 - 0.005% +Testing collisions (high 32-bit) - Expected 871784.7, actual 868710 (1.00x) (-3074) +Testing collisions (high 30-47 bits) - Worst is 47 bits: 30/26 (1.13x) +Testing collisions (high 12-bit) - Expected 86532449.0, actual 86532449 (1.00x) +Testing collisions (high 8-bit) - Expected 86536289.0, actual 86536289 (1.00x) +Testing collisions (low 32-bit) - Expected 871784.7, actual 864922 (0.99x) (-6862) +Testing collisions (low 30-47 bits) - Worst is 45 bits: 118/106 (1.11x) +Testing collisions (low 12-bit) - Expected 86532449.0, actual 86532449 (1.00x) +Testing collisions (low 8-bit) - Expected 86536289.0, actual 86536289 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 24 - 0.004% [[[ Keyset 'Text' Tests ]]] -Keyset 'Text' - keys of form "Foo[XXXX]Bar" - 14776336 keys -Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 50836.3, actual 25649 (0.50x) -Testing collisions (high 28-43 bits) - Worst is 34 bits: 6513/12709 (0.51x) -Testing collisions (high 12-bit) - Expected 14776336.0, actual 14772240 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 14776336.0, actual 14776080 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 50836.3, actual 25314 (0.50x) -Testing collisions (low 28-43 bits) - Worst is 40 bits: 108/198 (0.54x) -Testing collisions (low 12-bit) - Expected 14776336.0, actual 14772240 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 14776336.0, actual 14776080 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 35 - 0.020% - -Keyset 'Text' - keys of form "FooBar[XXXX]" - 14776336 keys -Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 50836.3, actual 25522 (0.50x) -Testing collisions (high 28-43 bits) - Worst is 43 bits: 15/24 (0.60x) -Testing collisions (high 12-bit) - Expected 14776336.0, actual 14772240 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 14776336.0, actual 14776080 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 50836.3, actual 25294 (0.50x) -Testing collisions (low 28-43 bits) - Worst is 41 bits: 61/99 (0.61x) -Testing collisions (low 12-bit) - Expected 14776336.0, actual 14772240 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 14776336.0, actual 14776080 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 37 - 0.017% - -Keyset 'Text' - keys of form "[XXXX]FooBar" - 14776336 keys -Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 50836.3, actual 25439 (0.50x) -Testing collisions (high 28-43 bits) - Worst is 38 bits: 416/794 (0.52x) -Testing collisions (high 12-bit) - Expected 14776336.0, actual 14772240 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 14776336.0, actual 14776080 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 50836.3, actual 25310 (0.50x) -Testing collisions (low 28-43 bits) - Worst is 42 bits: 32/49 (0.64x) -Testing collisions (low 12-bit) - Expected 14776336.0, actual 14772240 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 14776336.0, actual 14776080 (1.00x) (-256) -Testing distribution - Worst bias is the 20-bit window at bit 2 - 0.025% +Keyset 'Text' - keys of form "FooXXXXBar" - 14776336 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) +Testing collisions (high 32-bit) - Expected 25418.1, actual 25174 (0.99x) (-244) +Testing collisions (high 27-42 bits) - Worst is 31 bits: 50550/50836 (0.99x) +Testing collisions (high 12-bit) - Expected 14772240.0, actual 14772240 (1.00x) +Testing collisions (high 8-bit) - Expected 14776080.0, actual 14776080 (1.00x) +Testing collisions (low 32-bit) - Expected 25418.1, actual 25567 (1.01x) (149) +Testing collisions (low 27-42 bits) - Worst is 41 bits: 55/49 (1.11x) +Testing collisions (low 12-bit) - Expected 14772240.0, actual 14772240 (1.00x) +Testing collisions (low 8-bit) - Expected 14776080.0, actual 14776080 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 61 - 0.025% + +Keyset 'Text' - keys of form "FooBarXXXX" - 14776336 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) +Testing collisions (high 32-bit) - Expected 25418.1, actual 25389 (1.00x) (-29) +Testing collisions (high 27-42 bits) - Worst is 40 bits: 106/99 (1.07x) +Testing collisions (high 12-bit) - Expected 14772240.0, actual 14772240 (1.00x) +Testing collisions (high 8-bit) - Expected 14776080.0, actual 14776080 (1.00x) +Testing collisions (low 32-bit) - Expected 25418.1, actual 25370 (1.00x) (-48) +Testing collisions (low 27-42 bits) - Worst is 42 bits: 29/24 (1.17x) +Testing collisions (low 12-bit) - Expected 14772240.0, actual 14772240 (1.00x) +Testing collisions (low 8-bit) - Expected 14776080.0, actual 14776080 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 55 - 0.020% + +Keyset 'Text' - keys of form "XXXXFooBar" - 14776336 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) +Testing collisions (high 32-bit) - Expected 25418.1, actual 25523 (1.00x) (105) +Testing collisions (high 27-42 bits) - Worst is 34 bits: 6505/6354 (1.02x) +Testing collisions (high 12-bit) - Expected 14772240.0, actual 14772240 (1.00x) +Testing collisions (high 8-bit) - Expected 14776080.0, actual 14776080 (1.00x) +Testing collisions (low 32-bit) - Expected 25418.1, actual 25486 (1.00x) (68) +Testing collisions (low 27-42 bits) - Worst is 39 bits: 219/198 (1.10x) +Testing collisions (low 12-bit) - Expected 14772240.0, actual 14772240 (1.00x) +Testing collisions (low 8-bit) - Expected 14776080.0, actual 14776080 (1.00x) +Testing distribution - Worst bias is the 20-bit window at bit 62 - 0.016% + +Keyset 'Words' - 4000000 random keys of len 6-16 from alnum charset +Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) +Testing collisions (high 32-bit) - Expected 1862.6, actual 1928 (1.04x) (66) +Testing collisions (high 25-38 bits) - Worst is 32 bits: 1928/1862 (1.04x) +Testing collisions (high 12-bit) - Expected 3995904.0, actual 3995904 (1.00x) +Testing collisions (high 8-bit) - Expected 3999744.0, actual 3999744 (1.00x) +Testing collisions (low 32-bit) - Expected 1862.6, actual 1861 (1.00x) (-1) +Testing collisions (low 25-38 bits) - Worst is 38 bits: 34/29 (1.17x) +Testing collisions (low 12-bit) - Expected 3995904.0, actual 3995904 (1.00x) +Testing collisions (low 8-bit) - Expected 3999744.0, actual 3999744 (1.00x) +Testing distribution - Worst bias is the 19-bit window at bit 32 - 0.073% + +Keyset 'Words' - 4000000 random keys of len 6-16 from password charset +Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) +Testing collisions (high 32-bit) - Expected 1862.6, actual 1964 (1.05x) (102) +Testing collisions (high 25-38 bits) - Worst is 33 bits: 1006/931 (1.08x) +Testing collisions (high 12-bit) - Expected 3995904.0, actual 3995904 (1.00x) +Testing collisions (high 8-bit) - Expected 3999744.0, actual 3999744 (1.00x) +Testing collisions (low 32-bit) - Expected 1862.6, actual 1913 (1.03x) (51) +Testing collisions (low 25-38 bits) - Worst is 38 bits: 34/29 (1.17x) +Testing collisions (low 12-bit) - Expected 3995904.0, actual 3995904 (1.00x) +Testing collisions (low 8-bit) - Expected 3999744.0, actual 3999744 (1.00x) +Testing distribution - Worst bias is the 19-bit window at bit 21 - 0.090% + +Keyset 'Words' - 102401 dict words +Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) +Testing collisions (high 32-bit) - Expected 1.2, actual 2 (1.64x) (1) +Testing collisions (high 20-27 bits) - Worst is 24 bits: 351/312 (1.12x) +Testing collisions (high 12-bit) - Expected 98305.0, actual 98305 (1.00x) +Testing collisions (high 8-bit) - Expected 102145.0, actual 102145 (1.00x) +Testing collisions (low 32-bit) - Expected 1.2, actual 0 (0.00x) +Testing collisions (low 20-27 bits) - Worst is 27 bits: 45/39 (1.15x) +Testing collisions (low 12-bit) - Expected 98305.0, actual 98305 (1.00x) +Testing collisions (low 8-bit) - Expected 102145.0, actual 102145 (1.00x) +Testing distribution - Worst bias is the 14-bit window at bit 0 - 0.511% [[[ Keyset 'Zeroes' Tests ]]] Keyset 'Zeroes' - 204800 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 9.8, actual 5 (0.51x) -Testing collisions (high 21-30 bits) - Worst is 29 bits: 41/78 (0.52x) -Testing collisions (high 12-bit) - Expected 204800.0, actual 200704 (0.98x) -Testing collisions (high 8-bit) - Expected 204800.0, actual 204544 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 9.8, actual 4 (0.41x) -Testing collisions (low 21-30 bits) - Worst is 25 bits: 643/1249 (0.51x) -Testing collisions (low 12-bit) - Expected 204800.0, actual 200704 (0.98x) -Testing collisions (low 8-bit) - Expected 204800.0, actual 204544 (1.00x) (-256) -Testing distribution - Worst bias is the 15-bit window at bit 14 - 0.281% +Testing collisions (high 32-bit) - Expected 4.9, actual 2 (0.41x) +Testing collisions (high 21-29 bits) - Worst is 25 bits: 647/624 (1.04x) +Testing collisions (high 12-bit) - Expected 200704.0, actual 200704 (1.00x) +Testing collisions (high 8-bit) - Expected 204544.0, actual 204544 (1.00x) +Testing collisions (low 32-bit) - Expected 4.9, actual 1 (0.20x) +Testing collisions (low 21-29 bits) - Worst is 23 bits: 2466/2499 (0.99x) +Testing collisions (low 12-bit) - Expected 200704.0, actual 200704 (1.00x) +Testing collisions (low 8-bit) - Expected 204544.0, actual 204544 (1.00x) +Testing distribution - Worst bias is the 15-bit window at bit 49 - 0.287% [[[ Keyset 'Seed' Tests ]]] Keyset 'Seed' - 5000000 keys Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 5820.8, actual 2880 (0.49x) -Testing collisions (high 26-40 bits) - Worst is 37 bits: 105/181 (0.58x) -Testing collisions (high 12-bit) - Expected 5000000.0, actual 4995904 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 5000000.0, actual 4999744 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 5820.8, actual 2957 (0.51x) -Testing collisions (low 26-40 bits) - Worst is 33 bits: 1494/2910 (0.51x) -Testing collisions (low 12-bit) - Expected 5000000.0, actual 4995904 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 5000000.0, actual 4999744 (1.00x) (-256) -Testing distribution - Worst bias is the 19-bit window at bit 59 - 0.046% +Testing collisions (high 32-bit) - Expected 2910.4, actual 2880 (0.99x) (-30) +Testing collisions (high 26-39 bits) - Worst is 34 bits: 728/727 (1.00x) +Testing collisions (high 12-bit) - Expected 4995904.0, actual 4995904 (1.00x) +Testing collisions (high 8-bit) - Expected 4999744.0, actual 4999744 (1.00x) +Testing collisions (low 32-bit) - Expected 2910.4, actual 2967 (1.02x) (57) +Testing collisions (low 26-39 bits) - Worst is 37 bits: 104/90 (1.14x) +Testing collisions (low 12-bit) - Expected 4995904.0, actual 4995904 (1.00x) +Testing collisions (low 8-bit) - Expected 4999744.0, actual 4999744 (1.00x) +Testing distribution - Worst bias is the 19-bit window at bit 1 - 0.073% [[[ Keyset 'PerlinNoise' Tests ]]] Testing 16777216 coordinates (L2) : Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 65536.0, actual 32715 (0.50x) -Testing collisions (high 28-43 bits) - Worst is 42 bits: 46/63 (0.72x) -Testing collisions (high 12-bit) - Expected 16777216.0, actual 16773120 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 16777216.0, actual 16776960 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 65536.0, actual 32752 (0.50x) -Testing collisions (low 28-43 bits) - Worst is 41 bits: 69/127 (0.54x) -Testing collisions (low 12-bit) - Expected 16777216.0, actual 16773120 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 16777216.0, actual 16776960 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 32768.0, actual 32536 (0.99x) (-231) +Testing collisions (high 27-42 bits) - Worst is 42 bits: 49/31 (1.53x) +Testing collisions (high 12-bit) - Expected 16773120.0, actual 16773120 (1.00x) +Testing collisions (high 8-bit) - Expected 16776960.0, actual 16776960 (1.00x) +Testing collisions (low 32-bit) - Expected 32768.0, actual 32601 (0.99x) (-166) +Testing collisions (low 27-42 bits) - Worst is 35 bits: 4114/4095 (1.00x) +Testing collisions (low 12-bit) - Expected 16773120.0, actual 16773120 (1.00x) +Testing collisions (low 8-bit) - Expected 16776960.0, actual 16776960 (1.00x) [[[ Diff 'Differential' Tests ]]] @@ -740,728 +776,741 @@ Testing 2796416 up-to-3-bit differentials in 256-bit keys -> 64 bit hashes. Testing bit 0 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 516 (0.50x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 19/31 (0.59x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 470 (0.46x) -Testing collisions (low 25-37 bits) - Worst is 28 bits: 8112/16383 (0.50x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 512 (1.00x) (1) +Testing collisions (high 24-36 bits) - Worst is 31 bits: 1034/1023 (1.01x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 533 (1.04x) (22) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 145/127 (1.13x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 1 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 514 (0.50x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 24/31 (0.75x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 507 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 19/31 (0.59x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 529 (1.03x) (18) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 492 (0.96x) +Testing collisions (low 24-36 bits) - Worst is 27 bits: 16152/16383 (0.99x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 2 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 536 (0.52x) -Testing collisions (high 25-37 bits) - Worst is 34 bits: 135/255 (0.53x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 479 (0.47x) -Testing collisions (low 25-37 bits) - Worst is 29 bits: 4068/8191 (0.50x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 492 (0.96x) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 136/127 (1.06x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 514 (1.00x) (3) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 38/31 (1.19x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 3 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 535 (0.52x) -Testing collisions (high 25-37 bits) - Worst is 32 bits: 535/1023 (0.52x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 533 (0.52x) -Testing collisions (low 25-37 bits) - Worst is 31 bits: 1106/2047 (0.54x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 506 (0.99x) (-5) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 67/63 (1.05x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 507 (0.99x) (-4) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 34/31 (1.06x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 4 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 519 (0.51x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 17/31 (0.53x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 513 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 33 bits: 274/511 (0.54x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 493 (0.96x) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 530 (1.04x) (19) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 146/127 (1.14x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 5 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 520 (0.51x) -Testing collisions (high 25-37 bits) - Worst is 32 bits: 520/1023 (0.51x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 527 (0.51x) -Testing collisions (low 25-37 bits) - Worst is 33 bits: 269/511 (0.53x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 520 (1.02x) (9) +Testing collisions (high 24-36 bits) - Worst is 31 bits: 1052/1023 (1.03x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 500 (0.98x) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 264/255 (1.03x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 6 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 519 (0.51x) -Testing collisions (high 25-37 bits) - Worst is 36 bits: 41/63 (0.64x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 518 (0.51x) -Testing collisions (low 25-37 bits) - Worst is 29 bits: 4236/8191 (0.52x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 549 (1.07x) (38) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 41/31 (1.28x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 514 (1.00x) (3) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 130/127 (1.02x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 7 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 463 (0.45x) -Testing collisions (high 25-37 bits) - Worst is 28 bits: 8190/16383 (0.50x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 497 (0.49x) -Testing collisions (low 25-37 bits) - Worst is 34 bits: 134/255 (0.52x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 471 (0.92x) +Testing collisions (high 24-36 bits) - Worst is 30 bits: 2065/2047 (1.01x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 501 (0.98x) +Testing collisions (low 24-36 bits) - Worst is 28 bits: 8319/8191 (1.02x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 8 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 513 (0.50x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 21/31 (0.66x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 470 (0.46x) -Testing collisions (low 25-37 bits) - Worst is 36 bits: 32/63 (0.50x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 524 (1.02x) (13) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 524/511 (1.02x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 524 (1.02x) (13) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 78/63 (1.22x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 9 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 527 (0.51x) -Testing collisions (high 25-37 bits) - Worst is 36 bits: 37/63 (0.58x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 541 (0.53x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 19/31 (0.59x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 514 (1.00x) (3) +Testing collisions (high 24-36 bits) - Worst is 29 bits: 4161/4095 (1.02x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 494 (0.96x) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 33/31 (1.03x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 10 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 516 (0.50x) -Testing collisions (high 25-37 bits) - Worst is 34 bits: 142/255 (0.55x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 470 (0.46x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 19/31 (0.59x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 538 (1.05x) (27) +Testing collisions (high 24-36 bits) - Worst is 31 bits: 1086/1023 (1.06x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 536 (1.05x) (25) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 77/63 (1.20x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 11 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 500 (0.49x) -Testing collisions (high 25-37 bits) - Worst is 31 bits: 1038/2047 (0.51x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 526 (0.51x) -Testing collisions (low 25-37 bits) - Worst is 36 bits: 34/63 (0.53x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 499 (0.97x) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 274/255 (1.07x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 548 (1.07x) (37) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 73/63 (1.14x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 12 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 503 (0.49x) -Testing collisions (high 25-37 bits) - Worst is 35 bits: 83/127 (0.65x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 479 (0.47x) -Testing collisions (low 25-37 bits) - Worst is 35 bits: 68/127 (0.53x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 500 (0.98x) +Testing collisions (high 24-36 bits) - Worst is 28 bits: 8243/8191 (1.01x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 490 (0.96x) +Testing collisions (low 24-36 bits) - Worst is 29 bits: 4076/4095 (1.00x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 13 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 515 (0.50x) -Testing collisions (high 25-37 bits) - Worst is 36 bits: 40/63 (0.63x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 468 (0.46x) -Testing collisions (low 25-37 bits) - Worst is 36 bits: 33/63 (0.52x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 509 (0.99x) (-2) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 42/31 (1.31x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 500 (0.98x) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 76/63 (1.19x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 14 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 465 (0.45x) -Testing collisions (high 25-37 bits) - Worst is 36 bits: 33/63 (0.52x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 549 (0.54x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 20/31 (0.63x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 541 (1.06x) (30) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 141/127 (1.10x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 518 (1.01x) (7) +Testing collisions (low 24-36 bits) - Worst is 32 bits: 518/511 (1.01x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 15 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 523 (0.51x) -Testing collisions (high 25-37 bits) - Worst is 36 bits: 35/63 (0.55x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 537 (0.52x) -Testing collisions (low 25-37 bits) - Worst is 35 bits: 71/127 (0.55x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 514 (1.00x) (3) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 69/63 (1.08x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 527 (1.03x) (16) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 42/31 (1.31x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 16 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 517 (0.50x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 19/31 (0.59x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 484 (0.47x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 25/31 (0.78x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 499 (0.97x) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 131/127 (1.02x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 519 (1.01x) (8) +Testing collisions (low 24-36 bits) - Worst is 31 bits: 1052/1023 (1.03x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 17 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 504 (0.49x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 18/31 (0.56x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 487 (0.48x) -Testing collisions (low 25-37 bits) - Worst is 35 bits: 68/127 (0.53x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 500 (0.98x) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 35/31 (1.09x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 513 (1.00x) (2) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 277/255 (1.08x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 18 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 534 (0.52x) -Testing collisions (high 25-37 bits) - Worst is 33 bits: 280/511 (0.55x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 519 (0.51x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 22/31 (0.69x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 531 (1.04x) (20) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 276/255 (1.08x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 495 (0.97x) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 69/63 (1.08x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 19 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 571 (0.56x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 22/31 (0.69x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 493 (0.48x) -Testing collisions (low 25-37 bits) - Worst is 36 bits: 33/63 (0.52x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 531 (1.04x) (20) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 278/255 (1.09x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 557 (1.09x) (46) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 38/31 (1.19x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 20 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 536 (0.52x) -Testing collisions (high 25-37 bits) - Worst is 33 bits: 272/511 (0.53x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 536 (0.52x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 23/31 (0.72x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 544 (1.06x) (33) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 544/511 (1.06x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 557 (1.09x) (46) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 143/127 (1.12x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 21 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 464 (0.45x) -Testing collisions (high 25-37 bits) - Worst is 35 bits: 67/127 (0.52x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 536 (0.52x) -Testing collisions (low 25-37 bits) - Worst is 35 bits: 81/127 (0.63x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 500 (0.98x) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 35/31 (1.09x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 531 (1.04x) (20) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 137/127 (1.07x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 22 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 508 (0.50x) -Testing collisions (high 25-37 bits) - Worst is 34 bits: 131/255 (0.51x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 482 (0.47x) -Testing collisions (low 25-37 bits) - Worst is 30 bits: 2054/4095 (0.50x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 520 (1.02x) (9) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 134/127 (1.05x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 498 (0.97x) +Testing collisions (low 24-36 bits) - Worst is 27 bits: 16348/16383 (1.00x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 23 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 492 (0.48x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 20/31 (0.63x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 493 (0.48x) -Testing collisions (low 25-37 bits) - Worst is 28 bits: 8176/16383 (0.50x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 522 (1.02x) (11) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 522/511 (1.02x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 509 (0.99x) (-2) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 68/63 (1.06x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 24 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 518 (0.51x) -Testing collisions (high 25-37 bits) - Worst is 30 bits: 2102/4095 (0.51x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 463 (0.45x) -Testing collisions (low 25-37 bits) - Worst is 36 bits: 33/63 (0.52x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 517 (1.01x) (6) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 261/255 (1.02x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 489 (0.96x) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 32/31 (1.00x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 25 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 532 (0.52x) -Testing collisions (high 25-37 bits) - Worst is 32 bits: 532/1023 (0.52x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 514 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 31 bits: 1032/2047 (0.50x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 532 (1.04x) (21) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 499 (0.97x) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 129/127 (1.01x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 26 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 479 (0.47x) -Testing collisions (high 25-37 bits) - Worst is 36 bits: 40/63 (0.63x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 532 (0.52x) -Testing collisions (low 25-37 bits) - Worst is 33 bits: 269/511 (0.53x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 494 (0.96x) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 70/63 (1.09x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 500 (0.98x) +Testing collisions (low 24-36 bits) - Worst is 31 bits: 1032/1023 (1.01x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 27 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 511 (0.50x) -Testing collisions (high 25-37 bits) - Worst is 33 bits: 272/511 (0.53x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 450 (0.44x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 18/31 (0.56x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 520 (1.02x) (9) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 516 (1.01x) (5) +Testing collisions (low 24-36 bits) - Worst is 32 bits: 516/511 (1.01x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 28 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 538 (0.53x) -Testing collisions (high 25-37 bits) - Worst is 34 bits: 138/255 (0.54x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 520 (0.51x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 19/31 (0.59x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 486 (0.95x) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 66/63 (1.03x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 461 (0.90x) +Testing collisions (low 24-36 bits) - Worst is 28 bits: 8374/8191 (1.02x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 29 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 525 (0.51x) -Testing collisions (high 25-37 bits) - Worst is 32 bits: 525/1023 (0.51x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 516 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 23/31 (0.72x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 468 (0.91x) +Testing collisions (high 24-36 bits) - Worst is 29 bits: 4195/4095 (1.02x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 492 (0.96x) +Testing collisions (low 24-36 bits) - Worst is 27 bits: 16390/16383 (1.00x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 30 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 483 (0.47x) -Testing collisions (high 25-37 bits) - Worst is 35 bits: 66/127 (0.52x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 512 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 30 bits: 2100/4095 (0.51x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 504 (0.98x) (-7) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 269/255 (1.05x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 514 (1.00x) (3) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 80/63 (1.25x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 31 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 503 (0.49x) -Testing collisions (high 25-37 bits) - Worst is 27 bits: 16180/32767 (0.49x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 514 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 21/31 (0.66x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 508 (0.99x) (-3) +Testing collisions (high 24-36 bits) - Worst is 31 bits: 1017/1023 (0.99x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 532 (1.04x) (21) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 77/63 (1.20x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 32 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 557 (0.54x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 21/31 (0.66x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 502 (0.49x) -Testing collisions (low 25-37 bits) - Worst is 30 bits: 2087/4095 (0.51x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 541 (1.06x) (30) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 137/127 (1.07x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 487 (0.95x) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 33/31 (1.03x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 33 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 494 (0.48x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 17/31 (0.53x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 481 (0.47x) -Testing collisions (low 25-37 bits) - Worst is 36 bits: 37/63 (0.58x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 505 (0.99x) (-6) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 474 (0.93x) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 34 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 520 (0.51x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 22/31 (0.69x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 500 (0.49x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 21/31 (0.66x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 539 (1.05x) (28) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 539/511 (1.05x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 523 (1.02x) (12) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 145/127 (1.13x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 35 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 526 (0.51x) -Testing collisions (high 25-37 bits) - Worst is 32 bits: 526/1023 (0.51x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 507 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 34 bits: 134/255 (0.52x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 463 (0.90x) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 32/31 (1.00x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 564 (1.10x) (53) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 42/31 (1.31x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 36 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 530 (0.52x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 20/31 (0.63x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 503 (0.49x) -Testing collisions (low 25-37 bits) - Worst is 31 bits: 1034/2047 (0.50x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 519 (1.01x) (8) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 506 (0.99x) (-5) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 37 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 489 (0.48x) -Testing collisions (high 25-37 bits) - Worst is 35 bits: 67/127 (0.52x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 482 (0.47x) -Testing collisions (low 25-37 bits) - Worst is 36 bits: 36/63 (0.56x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 524 (1.02x) (13) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 79/63 (1.23x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 535 (1.04x) (24) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 270/255 (1.05x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 38 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 521 (0.51x) -Testing collisions (high 25-37 bits) - Worst is 33 bits: 273/511 (0.53x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 498 (0.49x) -Testing collisions (low 25-37 bits) - Worst is 30 bits: 2041/4095 (0.50x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 536 (1.05x) (25) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 79/63 (1.23x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 538 (1.05x) (27) +Testing collisions (low 24-36 bits) - Worst is 32 bits: 538/511 (1.05x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 39 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 483 (0.47x) -Testing collisions (high 25-37 bits) - Worst is 35 bits: 72/127 (0.56x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 529 (0.52x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 20/31 (0.63x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 557 (1.09x) (46) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 80/63 (1.25x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 530 (1.04x) (19) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 70/63 (1.09x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 40 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 489 (0.48x) -Testing collisions (high 25-37 bits) - Worst is 36 bits: 33/63 (0.52x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 499 (0.49x) -Testing collisions (low 25-37 bits) - Worst is 29 bits: 4246/8191 (0.52x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 543 (1.06x) (32) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 144/127 (1.13x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 542 (1.06x) (31) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 41 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 536 (0.52x) -Testing collisions (high 25-37 bits) - Worst is 34 bits: 137/255 (0.54x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 543 (0.53x) -Testing collisions (low 25-37 bits) - Worst is 33 bits: 281/511 (0.55x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 497 (0.97x) +Testing collisions (high 24-36 bits) - Worst is 31 bits: 1031/1023 (1.01x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 509 (0.99x) (-2) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 139/127 (1.09x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 42 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 513 (0.50x) -Testing collisions (high 25-37 bits) - Worst is 31 bits: 1082/2047 (0.53x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 494 (0.48x) -Testing collisions (low 25-37 bits) - Worst is 34 bits: 131/255 (0.51x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 514 (1.00x) (3) +Testing collisions (high 24-36 bits) - Worst is 30 bits: 2135/2047 (1.04x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 535 (1.04x) (24) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 35/31 (1.09x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 43 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 495 (0.48x) -Testing collisions (high 25-37 bits) - Worst is 29 bits: 4158/8191 (0.51x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 473 (0.46x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 16/31 (0.50x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 498 (0.97x) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 68/63 (1.06x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 478 (0.93x) +Testing collisions (low 24-36 bits) - Worst is 28 bits: 8288/8191 (1.01x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 44 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 479 (0.47x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 19/31 (0.59x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 541 (0.53x) -Testing collisions (low 25-37 bits) - Worst is 35 bits: 74/127 (0.58x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 511 (1.00x) +Testing collisions (high 24-36 bits) - Worst is 31 bits: 1028/1023 (1.00x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 500 (0.98x) +Testing collisions (low 24-36 bits) - Worst is 31 bits: 1054/1023 (1.03x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 45 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 531 (0.52x) -Testing collisions (high 25-37 bits) - Worst is 32 bits: 531/1023 (0.52x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 513 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 18/31 (0.56x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 517 (1.01x) (6) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 140/127 (1.09x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 526 (1.03x) (15) +Testing collisions (low 24-36 bits) - Worst is 32 bits: 526/511 (1.03x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 46 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 531 (0.52x) -Testing collisions (high 25-37 bits) - Worst is 36 bits: 37/63 (0.58x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 510 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 17/31 (0.53x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 535 (1.04x) (24) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 34/31 (1.06x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 499 (0.97x) +Testing collisions (low 24-36 bits) - Worst is 30 bits: 2042/2047 (1.00x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 47 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 502 (0.49x) -Testing collisions (high 25-37 bits) - Worst is 28 bits: 8325/16383 (0.51x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 529 (0.52x) -Testing collisions (low 25-37 bits) - Worst is 36 bits: 39/63 (0.61x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 521 (1.02x) (10) +Testing collisions (high 24-36 bits) - Worst is 31 bits: 1054/1023 (1.03x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 486 (0.95x) +Testing collisions (low 24-36 bits) - Worst is 29 bits: 4074/4095 (0.99x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 48 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 512 (0.50x) -Testing collisions (high 25-37 bits) - Worst is 35 bits: 69/127 (0.54x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 495 (0.48x) -Testing collisions (low 25-37 bits) - Worst is 36 bits: 33/63 (0.52x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 502 (0.98x) (-9) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 44/31 (1.38x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 498 (0.97x) +Testing collisions (low 24-36 bits) - Worst is 28 bits: 8186/8191 (1.00x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 49 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 551 (0.54x) -Testing collisions (high 25-37 bits) - Worst is 36 bits: 38/63 (0.59x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 470 (0.46x) -Testing collisions (low 25-37 bits) - Worst is 36 bits: 37/63 (0.58x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 494 (0.96x) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 38/31 (1.19x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 508 (0.99x) (-3) +Testing collisions (low 24-36 bits) - Worst is 31 bits: 1016/1023 (0.99x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 50 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 483 (0.47x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 22/31 (0.69x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 512 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 31 bits: 1030/2047 (0.50x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 508 (0.99x) (-3) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 259/255 (1.01x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 519 (1.01x) (8) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 51 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 520 (0.51x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 17/31 (0.53x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 510 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 31 bits: 1040/2047 (0.51x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 518 (1.01x) (7) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 79/63 (1.23x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 523 (1.02x) (12) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 272/255 (1.06x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 52 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 531 (0.52x) -Testing collisions (high 25-37 bits) - Worst is 32 bits: 531/1023 (0.52x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 534 (0.52x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 22/31 (0.69x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 551 (1.08x) (40) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 38/31 (1.19x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 486 (0.95x) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 39/31 (1.22x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 53 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 546 (0.53x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 26/31 (0.81x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 483 (0.47x) -Testing collisions (low 25-37 bits) - Worst is 35 bits: 65/127 (0.51x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 495 (0.97x) +Testing collisions (high 24-36 bits) - Worst is 30 bits: 2090/2047 (1.02x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 510 (1.00x) (-1) +Testing collisions (low 24-36 bits) - Worst is 31 bits: 1038/1023 (1.01x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 54 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 488 (0.48x) -Testing collisions (high 25-37 bits) - Worst is 29 bits: 4102/8191 (0.50x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 501 (0.49x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 21/31 (0.66x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 543 (1.06x) (32) +Testing collisions (high 24-36 bits) - Worst is 34 bits: 137/127 (1.07x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 517 (1.01x) (6) +Testing collisions (low 24-36 bits) - Worst is 30 bits: 2099/2047 (1.02x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 55 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 509 (0.50x) -Testing collisions (high 25-37 bits) - Worst is 34 bits: 130/255 (0.51x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 493 (0.48x) -Testing collisions (low 25-37 bits) - Worst is 34 bits: 136/255 (0.53x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 471 (0.92x) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 36/31 (1.13x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 539 (1.05x) (28) +Testing collisions (low 24-36 bits) - Worst is 33 bits: 271/255 (1.06x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 56 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 528 (0.52x) -Testing collisions (high 25-37 bits) - Worst is 33 bits: 274/511 (0.54x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 551 (0.54x) -Testing collisions (low 25-37 bits) - Worst is 32 bits: 551/1023 (0.54x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 519 (1.01x) (8) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 73/63 (1.14x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 475 (0.93x) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 33/31 (1.03x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 57 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 556 (0.54x) -Testing collisions (high 25-37 bits) - Worst is 34 bits: 157/255 (0.61x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 489 (0.48x) -Testing collisions (low 25-37 bits) - Worst is 30 bits: 2047/4095 (0.50x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 512 (1.00x) (1) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 67/63 (1.05x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 507 (0.99x) (-4) +Testing collisions (low 24-36 bits) - Worst is 35 bits: 65/63 (1.02x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 58 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 467 (0.46x) -Testing collisions (high 25-37 bits) - Worst is 37 bits: 18/31 (0.56x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 523 (0.51x) -Testing collisions (low 25-37 bits) - Worst is 36 bits: 39/63 (0.61x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 528 (1.03x) (17) +Testing collisions (high 24-36 bits) - Worst is 32 bits: 528/511 (1.03x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 512 (1.00x) (1) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 40/31 (1.25x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 59 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 497 (0.49x) -Testing collisions (high 25-37 bits) - Worst is 30 bits: 2031/4095 (0.50x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 530 (0.52x) -Testing collisions (low 25-37 bits) - Worst is 33 bits: 278/511 (0.54x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 506 (0.99x) (-5) +Testing collisions (high 24-36 bits) - Worst is 35 bits: 66/63 (1.03x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 511 (1.00x) +Testing collisions (low 24-36 bits) - Worst is 31 bits: 1022/1023 (1.00x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 60 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 510 (0.50x) -Testing collisions (high 25-37 bits) - Worst is 28 bits: 8176/16383 (0.50x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 517 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 19/31 (0.59x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 502 (0.98x) (-9) +Testing collisions (high 24-36 bits) - Worst is 36 bits: 43/31 (1.34x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 519 (1.01x) (8) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 136/127 (1.06x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 61 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 496 (0.48x) -Testing collisions (high 25-37 bits) - Worst is 30 bits: 2041/4095 (0.50x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 529 (0.52x) -Testing collisions (low 25-37 bits) - Worst is 32 bits: 529/1023 (0.52x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 524 (1.02x) (13) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 265/255 (1.04x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 529 (1.03x) (18) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 37/31 (1.16x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 62 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 552 (0.54x) -Testing collisions (high 25-37 bits) - Worst is 32 bits: 552/1023 (0.54x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 507 (0.50x) -Testing collisions (low 25-37 bits) - Worst is 37 bits: 18/31 (0.56x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 496 (0.97x) +Testing collisions (high 24-36 bits) - Worst is 29 bits: 4125/4095 (1.01x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 490 (0.96x) +Testing collisions (low 24-36 bits) - Worst is 36 bits: 38/31 (1.19x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) Testing bit 63 Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) -Testing collisions (high 32-bit) - Expected 1024.0, actual 484 (0.47x) -Testing collisions (high 25-37 bits) - Worst is 34 bits: 135/255 (0.53x) -Testing collisions (high 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (high 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) -Testing collisions (low 32-bit) - Expected 1024.0, actual 500 (0.49x) -Testing collisions (low 25-37 bits) - Worst is 33 bits: 277/511 (0.54x) -Testing collisions (low 12-bit) - Expected 2097152.0, actual 2093056 (1.00x) (-4096) -Testing collisions (low 8-bit) - Expected 2097152.0, actual 2096896 (1.00x) (-256) +Testing collisions (high 32-bit) - Expected 512.0, actual 479 (0.94x) +Testing collisions (high 24-36 bits) - Worst is 33 bits: 262/255 (1.02x) +Testing collisions (high 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (high 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) +Testing collisions (low 32-bit) - Expected 512.0, actual 510 (1.00x) (-1) +Testing collisions (low 24-36 bits) - Worst is 34 bits: 133/127 (1.04x) +Testing collisions (low 12-bit) - Expected 2093056.0, actual 2093056 (1.00x) +Testing collisions (low 8-bit) - Expected 2096896.0, actual 2096896 (1.00x) [[[ MomentChi2 Tests ]]] Analyze hashes produced from a serie of linearly increasing numbers of 32-bit, using a step of 3 ... Target values to approximate : 38918200.000000 - 410450.000000 -Popcount 1 stats : 38918484.206651 - 410464.360454 -Popcount 0 stats : 38919365.145760 - 410461.861348 -MomentChi2 for bits 1 : 0.0983945 -MomentChi2 for bits 0 : 1.65373 +Popcount 1 stats : 38919632.307917 - 410479.005598 +Popcount 0 stats : 38918367.673773 - 410464.964389 +MomentChi2 for bits 1 : 2.49901 +MomentChi2 for bits 0 : 0.0342478 Derivative stats (transition from 2 consecutive values) : -Popcount 1 stats : 38917342.700616 - 410405.257542 -Popcount 0 stats : 38919729.298852 - 410467.929221 -MomentChi2 for deriv b1 : 0.895362 -MomentChi2 for deriv b0 : 2.84895 +Popcount 1 stats : 38921086.495604 - 410506.484777 +Popcount 0 stats : 38916867.679739 - 410442.803573 +MomentChi2 for deriv b1 : 10.149 +MomentChi2 for deriv b0 : 2.16237 + + Good ! - Great !! +[[[ Prng Tests ]]] + +Generating 33554432 random numbers : +Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x) +Testing collisions (high 32-bit) - Expected 131072.0, actual 130738 (1.00x) (-333) +Testing collisions (high 28-44 bits) - Worst is 43 bits: 76/63 (1.19x) +Testing collisions (high 12-bit) - Expected 33550336.0, actual 33550336 (1.00x) +Testing collisions (high 8-bit) - Expected 33554176.0, actual 33554176 (1.00x) +Testing collisions (low 32-bit) - Expected 131072.0, actual 130564 (1.00x) (-507) +Testing collisions (low 28-44 bits) - Worst is 38 bits: 2080/2047 (1.02x) +Testing collisions (low 12-bit) - Expected 33550336.0, actual 33550336 (1.00x) +Testing collisions (low 8-bit) - Expected 33554176.0, actual 33554176 (1.00x) Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001 -Verification value is 0x00000001 - Testing took 934.304636 seconds +Verification value is 0x00000001 - Testing took 631.756439 seconds ------------------------------------------------------------------------------- diff --git a/src/aes_hash.rs b/src/aes_hash.rs index eccfdc2..a51e361 100644 --- a/src/aes_hash.rs +++ b/src/aes_hash.rs @@ -154,22 +154,8 @@ impl Hasher for AHasher { let length = data.len(); self.add_in_length(length as u64); //A 'binary search' on sizes reduces the number of comparisons. - if data.len() < 8 { - let value: [u64; 2] = if data.len() >= 2 { - if data.len() >= 4 { - //len 4-8 - [data.read_u32().0 as u64, data.read_last_u32() as u64] - } else { - //len 2-3 - [data.read_u16().0 as u64, data[data.len() - 1] as u64] - } - } else { - if data.len() > 0 { - [data[0] as u64, 0] - } else { - [0, 0] - } - }; + if data.len() <= 8 { + let value = read_small(data); self.hash_in(value.convert()); } else { if data.len() > 32 { @@ -333,12 +319,23 @@ pub(crate) struct AHasherStr(pub AHasher); impl Hasher for AHasherStr { #[inline] fn finish(&self) -> u64 { - self.0.finish() + let result : [u64; 2] = self.0.enc.convert(); + result[0] } #[inline] fn write(&mut self, bytes: &[u8]) { - self.0.write(bytes) + if bytes.len() > 8 { + self.0.write(bytes); + self.0.enc = aesdec(self.0.sum, self.0.enc); + self.0.enc = aesenc(aesenc(self.0.enc, self.0.key), self.0.enc); + } else { + self.0.add_in_length(bytes.len() as u64); + let value = read_small(bytes).convert(); + self.0.sum = shuffle_and_add(self.0.sum, value); + self.0.enc = aesdec(self.0.sum, self.0.enc); + self.0.enc = aesenc(aesenc(self.0.enc, self.0.key), self.0.enc); + } } #[inline] @@ -432,3 +429,4 @@ mod tests { assert_eq!(bytes, 0x6464646464646464); } } + diff --git a/src/fallback_hash.rs b/src/fallback_hash.rs index dcb0f31..dd5558e 100644 --- a/src/fallback_hash.rs +++ b/src/fallback_hash.rs @@ -1,5 +1,6 @@ use crate::convert::*; use crate::operations::folded_multiply; +use crate::operations::read_small; use crate::random_state::PI; use crate::RandomState; use core::hash::Hasher; @@ -111,7 +112,7 @@ impl AHasher { fn large_update(&mut self, new_data: u128) { let block: [u64; 2] = new_data.convert(); let combined = folded_multiply(block[0] ^ self.extra_keys[0], block[1] ^ self.extra_keys[1]); - self.buffer = (combined.wrapping_add(self.buffer) ^ self.pad).rotate_left(ROT); + self.buffer = (self.buffer.wrapping_add(self.pad) ^ combined).rotate_left(ROT); } #[inline] @@ -176,21 +177,11 @@ impl Hasher for AHasher { self.large_update([data.read_u64().0, data.read_last_u64()].convert()); } } else { - if data.len() >= 2 { - if data.len() >= 4 { - let block = [data.read_u32().0 as u64, data.read_last_u32() as u64]; - self.large_update(block.convert()); - } else { - let value = [data.read_u16().0 as u32, data[data.len() - 1] as u32]; - self.update(value.convert()); - } - } else { - if data.len() > 0 { - self.update(data[0] as u64); - } - } + let value = read_small(data); + self.large_update(value.convert()); } } + #[inline] fn finish(&self) -> u64 { let rot = (self.buffer & 63) as u32; @@ -299,7 +290,7 @@ impl Hasher for AHasherFixed { #[cfg(feature = "specialize")] pub(crate) struct AHasherStr(pub AHasher); -/// A specialized hasher for strings +/// A specialized hasher for a single string /// Note that the other types don't panic because the hash impl for String tacks on an unneeded call. (As does vec) #[cfg(feature = "specialize")] impl Hasher for AHasherStr { @@ -310,7 +301,14 @@ impl Hasher for AHasherStr { #[inline] fn write(&mut self, bytes: &[u8]) { - self.0.write(bytes) + if bytes.len() > 8 { + self.0.write(bytes) + } else { + let value = read_small(bytes); + self.0.buffer = folded_multiply(value[0] ^ self.0.buffer, + value[1] ^ self.0.extra_keys[1]); + self.0.pad = self.0.pad.wrapping_add(bytes.len() as u64); + } } #[inline] diff --git a/src/hash_quality_test.rs b/src/hash_quality_test.rs index 9cb1d64..65b872a 100644 --- a/src/hash_quality_test.rs +++ b/src/hash_quality_test.rs @@ -118,7 +118,7 @@ fn test_input_affect_every_byte(constructor: impl Fn(u128, u128) -> T let hasher = constructor(0, 0); alternitives.push(hash_with(&input, hasher)); } - assert_each_byte_differs(base, alternitives); + assert_each_byte_differs(shift, base, alternitives); } } @@ -137,17 +137,17 @@ fn test_keys_affect_every_byte(item: H, constructor: impl Fn alternitives1.push(h1); alternitives2.push(h2); } - assert_each_byte_differs(base, alternitives1); - assert_each_byte_differs(base, alternitives2); + assert_each_byte_differs(shift, base, alternitives1); + assert_each_byte_differs(shift, base, alternitives2); } } -fn assert_each_byte_differs(base: u64, alternitives: Vec) { +fn assert_each_byte_differs(num: u64, base: u64, alternitives: Vec) { let mut changed_bits = 0_u64; for alternitive in alternitives { changed_bits |= base ^ alternitive } - assert_eq!(core::u64::MAX, changed_bits, "Bits changed: {:x}", changed_bits); + assert_eq!(core::u64::MAX, changed_bits, "Bits changed: {:x} on num: {:?}", changed_bits, num); } fn test_finish_is_consistent(constructor: impl Fn(u128, u128) -> T) { diff --git a/src/lib.rs b/src/lib.rs index 1f52bf6..4ee1ac6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -176,8 +176,8 @@ impl BuildHasherExt for B { // #[inline(never)] // #[doc(hidden)] // pub fn hash_test(input: &[u8]) -> u64 { -// let a = AHasher::new_with_keys(11111111111_u128, 2222222222_u128); -// input.get_hash(a) +// let a = RandomState::with_seeds(11, 22, 33, 44); +// <[u8]>::get_hash(input, &a) // } #[cfg(feature = "std")] diff --git a/src/operations.rs b/src/operations.rs index acff42f..8aa772d 100644 --- a/src/operations.rs +++ b/src/operations.rs @@ -12,6 +12,29 @@ pub(crate) const fn folded_multiply(s: u64, by: u64) -> u64 { ((result & 0xffff_ffff_ffff_ffff) as u64) ^ ((result >> 64) as u64) } + +/// Given a small (less than 8 byte slice) returns the same data stored in two u32s. +/// (order of and non-duplication of bytes is NOT guaranteed) +#[inline(always)] +pub(crate) fn read_small(data: &[u8]) -> [u64; 2] { + debug_assert!(data.len() <= 8); + if data.len() >= 2 { + if data.len() >= 4 { + //len 4-8 + [data.read_u32().0 as u64, data.read_last_u32() as u64] + } else { + //len 2-3 + [data.read_u16().0 as u64, data[data.len() - 1] as u64] + } + } else { + if data.len() > 0 { + [data[0] as u64, data[0] as u64] + } else { + [0, 0] + } + } +} + #[inline(always)] pub(crate) fn shuffle(a: u128) -> u128 { #[cfg(all(target_feature = "ssse3", not(miri)))]