Upgrade rust/crates/ahash to 0.6.2 am: f75e82d011 am: e88e047de9
Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/ahash/+/1525302
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I8dad91053e652c231f836aa73dc0054edbfed195
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index 16c239d..55faea7 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,5 +1,5 @@
{
"git": {
- "sha1": "b3d3688b0c66f5b41613bbb4a3e5eb1dfea29e45"
+ "sha1": "17a40a93218a9d11c53ff3497f1aac17f3ca0f4e"
}
}
diff --git a/Android.bp b/Android.bp
index 7b6ecef..33fa400 100644
--- a/Android.bp
+++ b/Android.bp
@@ -22,5 +22,5 @@
// cfg-if-0.1.10
// getrandom-0.2.0
// lazy_static-1.4.0
-// libc-0.2.80 "default,std"
+// libc-0.2.81 "default,std"
// version_check-0.9.2
diff --git a/Cargo.toml b/Cargo.toml
index 1f15513..db2e142 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,7 +13,7 @@
[package]
edition = "2018"
name = "ahash"
-version = "0.6.1"
+version = "0.6.2"
authors = ["Tom Kaitchuck <Tom.Kaitchuck@gmail.com>"]
build = "./build.rs"
description = "A non-cryptographic hash function using AES-NI for high performance"
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index 4cb1fe1..1b6fc89 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,6 +1,6 @@
[package]
name = "ahash"
-version = "0.6.1"
+version = "0.6.2"
authors = ["Tom Kaitchuck <Tom.Kaitchuck@gmail.com>"]
license = "MIT OR Apache-2.0"
description = "A non-cryptographic hash function using AES-NI for high performance"
diff --git a/METADATA b/METADATA
index dfa3a11..3341a13 100644
--- a/METADATA
+++ b/METADATA
@@ -7,13 +7,13 @@
}
url {
type: ARCHIVE
- value: "https://static.crates.io/crates/ahash/ahash-0.6.1.crate"
+ value: "https://static.crates.io/crates/ahash/ahash-0.6.2.crate"
}
- version: "0.6.1"
+ version: "0.6.2"
license_type: NOTICE
last_upgrade_date {
year: 2020
- month: 11
- day: 25
+ month: 12
+ day: 11
}
}
diff --git a/smhasher/0002-Add-support-for-aHash.patch b/smhasher/0002-Add-support-for-aHash.patch
new file mode 100644
index 0000000..93ccbff
--- /dev/null
+++ b/smhasher/0002-Add-support-for-aHash.patch
@@ -0,0 +1,269 @@
+From 426384ce34cf410d892eeeeeb7f6046d52bff8e7 Mon Sep 17 00:00:00 2001
+From: Tom Kaitchuck <Tom.Kaitchuck@gmail.com>
+Date: Sat, 11 Jul 2020 17:15:56 -0700
+Subject: [PATCH] Add support for ahash
+
+---
+ CMakeLists.txt | 1 +
+ Hashes.h | 5 +++++
+ ahash.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
+ main.cpp | 2 +-
+ 4 files changed, 55 insertions(+), 1 deletion(-)
+ create mode 100644 ahash.h
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6ebab1a..9d79e98 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}
+ )
+
+ #add_executable(
+ # bittest
+diff --git a/Hashes.h b/Hashes.h
+index 4e111c1..fcd3e38 100644
+--- a/Hashes.h
++++ b/Hashes.h
+@@ -19,10 +19,11 @@
+ #if defined(__SSE4_2__) && defined(__x86_64__)
+ #include "metrohash/metrohash64crc.h"
+ #include "metrohash/metrohash128crc.h"
+ #endif
+
++#include "ahash.h"
+ #include "fasthash.h"
+ #include "jody_hash32.h"
+ #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
+ }
+ #ifdef HAVE_INT64
+ inline void fasthash64_test ( const void * key, int len, uint32_t seed, void * out ) {
+ *(uint64_t*)out = fasthash64(key, (size_t) len, (uint64_t)seed);
+ }
++inline void ahash64_test ( const void * key, int len, uint32_t seed, void * out ) {
++ *(uint64_t*)out = ahash64(key, (size_t) len, (uint64_t)seed);
++}
++
+ #endif
+
+ // objsize 0-778: 1912
+ void mum_hash_test(const void * key, int len, uint32_t seed, void * out);
+
+diff --git a/ahash.h b/ahash.h
+new file mode 100644
+index 0000000..6c59caf
+--- /dev/null
++++ b/ahash.h
+@@ -0,0 +1,48 @@
++/* The MIT License
++
++ Copyright (C) 2012 Zilong Tan (eric.zltan@gmail.com)
++
++ Permission is hereby granted, free of charge, to any person
++ obtaining a copy of this software and associated documentation
++ files (the "Software"), to deal in the Software without
++ restriction, including without limitation the rights to use, copy,
++ modify, merge, publish, distribute, sublicense, and/or sell copies
++ of the Software, and to permit persons to whom the Software is
++ furnished to do so, subject to the following conditions:
++
++ The above copyright notice and this permission notice shall be
++ included in all copies or substantial portions of the Software.
++
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
++ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
++ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++ SOFTWARE.
++*/
++
++#ifndef _AHASH_H
++#define _AHASH_H
++
++#include <stdint.h>
++#include <stdio.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++/**
++ * Ahash - 64-bit implementation of aHash
++ * @buf: data buffer
++ * @len: data size
++ * @seed: the seed
++ */
++ uint64_t ahash64(const void *buf, size_t len, uint64_t seed);
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+\ No newline at end of file
+diff --git a/main.cpp b/main.cpp
+index 04060f2..7489aaf 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 },
+-
++ { 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
+ # define TIFU_VERIF 0x644236D4
+ #else
+ // broken on certain travis
+ # define TIFU_VERIF 0x0
+--
+2.25.1
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e4658a7..efef724 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -630,20 +630,21 @@ if(ipo_supported)
+ set_property(TARGET SMHasherSupport PROPERTY INTERPROCEDURAL_OPTIMIZATION
+ True)
+ set_property(TARGET SMHasher PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
+ 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()
+
+ 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))
+ enable_testing()
+ add_test(VerifyAll SMHasher --test=VerifyAll)
+ add_test(Sanity SMHasher --test=Sanity)
+diff --git a/Hashes.h b/Hashes.h
+index f795403..036b49b 100644
+--- a/Hashes.h
++++ b/Hashes.h
+@@ -14,20 +14,21 @@
+ #include "metrohash/metrohash64.h"
+ #include "metrohash/metrohash128.h"
+ #include "cmetrohash.h"
+ #include "opt_cmetrohash.h"
+
+ #if defined(__SSE4_2__) && defined(__x86_64__)
+ #include "metrohash/metrohash64crc.h"
+ #include "metrohash/metrohash128crc.h"
+ #endif
+
++#include "ahash.h"
+ #include "fasthash.h"
+ #include "jody_hash32.h"
+ #include "jody_hash64.h"
+
+ // objsize: 0-0x113 = 276
+ #include "tifuhash.h"
+ // objsize: 5f0-85f = 623
+ #include "floppsyhash.h"
+
+ #include "vmac.h"
+@@ -353,20 +354,24 @@ inline void cmetrohash64_2_test ( const void * key, int len, uint32_t seed, void
+ }
+ #endif
+
+ 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 ) {
+ *(uint64_t*)out = fasthash64(key, (size_t) len, (uint64_t)seed);
+ }
++
++inline void ahash64_test ( const void * key, int len, uint32_t seed, void * out ) {
++ *(uint64_t*)out = ahash64(key, (size_t) len, (uint64_t)seed);
++}
+ #endif
+
+ // 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;
+ mum_hash_test(key, len, seed, &result);
+ *(uint32_t*)out = (uint32_t)result;
+ }
+diff --git a/ahash.h b/ahash.h
+new file mode 100644
+index 0000000..2ed416d
+--- /dev/null
++++ b/ahash.h
+@@ -0,0 +1,24 @@
++
++#ifndef _AHASH_H
++#define _AHASH_H
++
++#include <stdint.h>
++#include <stdio.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++/**
++ * Ahash - 64-bit implementation of aHash
++ * @buf: data buffer
++ * @len: data size
++ * @seed: the seed
++ */
++ uint64_t ahash64(const void *buf, size_t len, uint64_t seed);
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+\ No newline at end of file
+diff --git a/main.cpp b/main.cpp
+index f742fbf..c221f7d 100644
+--- a/main.cpp
++++ b/main.cpp
+@@ -434,20 +434,21 @@ HashInfo g_hashes[] =
+ { t1ha0_ia32aes_avx1_test, 64, 0xF07C4DA5, "t1ha0_aes_avx1", "Fast Positive Hash (machine-specific, requires AES-NI & AVX)", GOOD },
+ # endif /* __AVX__ */
+ # if defined(__AVX2__)
+ { t1ha0_ia32aes_avx2_test, 64, 0x8B38C599, "t1ha0_aes_avx2", "Fast Positive Hash (machine-specific, requires AES-NI & AVX2)", GOOD },
+ # endif /* __AVX2__ */
+ #endif /* T1HA0_AESNI_AVAILABLE */
+ { 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 },
++ { ahash64_test, 64, 0x00000000, "ahash64", "ahash 64bit", GOOD }, //Expected value set to zero because aHash does not adhere to a fixed output.
+ #ifdef HAVE_BIT32
+ { wyhash32_test, 32, 0x09DE8066, "wyhash32", "wyhash (32-bit)", GOOD },
+ #else
+ { wyhash32low, 32, 0x9241B8A3, "wyhash32low", "wyhash lower 32bit", GOOD },
+ #endif
+ #ifdef HAVE_INT64
+ { wyhash_test, 64, 0x7C62138D, "wyhash", "wyhash (64-bit)", GOOD },
+ #endif
+
+ };
diff --git a/smhasher/ahashOutput.txt b/smhasher/ahashOutput.txt
index f618f2c..3bc122b 100644
--- a/smhasher/ahashOutput.txt
+++ b/smhasher/ahashOutput.txt
@@ -3,252 +3,252 @@
[[[ Sanity Tests ]]]
-Verification value 0x64556379 ....... SKIP (self- or unseeded)
+Verification value 0x84A46E17 ....... SKIP (self- or unseeded)
Running sanity check 1 .......... PASS
Running AppendedZeroesTest .......... PASS
[[[ Speed Tests ]]]
Bulk speed test - 262144-byte keys
-Alignment 7 - 19.381 bytes/cycle - 55448.94 MiB/sec @ 3 ghz
-Alignment 6 - 19.351 bytes/cycle - 55363.53 MiB/sec @ 3 ghz
-Alignment 5 - 19.357 bytes/cycle - 55380.15 MiB/sec @ 3 ghz
-Alignment 4 - 19.332 bytes/cycle - 55308.08 MiB/sec @ 3 ghz
-Alignment 3 - 19.296 bytes/cycle - 55206.94 MiB/sec @ 3 ghz
-Alignment 2 - 19.326 bytes/cycle - 55292.64 MiB/sec @ 3 ghz
-Alignment 1 - 19.336 bytes/cycle - 55322.04 MiB/sec @ 3 ghz
-Alignment 0 - 20.429 bytes/cycle - 58448.30 MiB/sec @ 3 ghz
-Average - 19.476 bytes/cycle - 55721.33 MiB/sec @ 3 ghz
+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 - 23.00 cycles/hash
-Small key speed test - 2-byte keys - 23.13 cycles/hash
-Small key speed test - 3-byte keys - 24.21 cycles/hash
-Small key speed test - 4-byte keys - 24.00 cycles/hash
-Small key speed test - 5-byte keys - 25.18 cycles/hash
-Small key speed test - 6-byte keys - 25.02 cycles/hash
-Small key speed test - 7-byte keys - 25.20 cycles/hash
-Small key speed test - 8-byte keys - 27.75 cycles/hash
-Small key speed test - 9-byte keys - 24.22 cycles/hash
-Small key speed test - 10-byte keys - 24.00 cycles/hash
-Small key speed test - 11-byte keys - 24.16 cycles/hash
-Small key speed test - 12-byte keys - 24.04 cycles/hash
-Small key speed test - 13-byte keys - 24.00 cycles/hash
-Small key speed test - 14-byte keys - 24.00 cycles/hash
-Small key speed test - 15-byte keys - 24.07 cycles/hash
-Small key speed test - 16-byte keys - 24.26 cycles/hash
-Small key speed test - 17-byte keys - 26.00 cycles/hash
-Small key speed test - 18-byte keys - 26.43 cycles/hash
-Small key speed test - 19-byte keys - 26.03 cycles/hash
-Small key speed test - 20-byte keys - 26.38 cycles/hash
-Small key speed test - 21-byte keys - 26.06 cycles/hash
-Small key speed test - 22-byte keys - 26.24 cycles/hash
-Small key speed test - 23-byte keys - 26.00 cycles/hash
-Small key speed test - 24-byte keys - 25.99 cycles/hash
-Small key speed test - 25-byte keys - 26.00 cycles/hash
-Small key speed test - 26-byte keys - 25.99 cycles/hash
-Small key speed test - 27-byte keys - 26.20 cycles/hash
-Small key speed test - 28-byte keys - 25.98 cycles/hash
-Small key speed test - 29-byte keys - 26.29 cycles/hash
-Small key speed test - 30-byte keys - 25.99 cycles/hash
-Small key speed test - 31-byte keys - 26.29 cycles/hash
-Average 25.229 cycles/hash
+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
[[[ 'Hashmap' Speed Tests ]]]
std::unordered_map
-Init std HashMapTest: 289.522 cycles/op (102401 inserts, 1% deletions)
-Running std HashMapTest: 122.314 cycles/op (5.1 stdv)
+Init std HashMapTest: 270.009 cycles/op (102401 inserts, 1% deletions)
+Running std HashMapTest: 120.593 cycles/op (3.6 stdv)
greg7mdp/parallel-hashmap
-Init fast HashMapTest: 110.898 cycles/op (102401 inserts, 1% deletions)
-Running fast HashMapTest: 83.840 cycles/op (3.3 stdv) ....... PASS
+Init fast HashMapTest: 110.896 cycles/op (102401 inserts, 1% deletions)
+Running fast HashMapTest: 81.841 cycles/op (0.1 stdv) ....... PASS
[[[ Avalanche Tests ]]]
-Testing 24-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.597333%
-Testing 32-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.618667%
-Testing 40-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.602667%
-Testing 48-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.626667%
-Testing 56-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.715333%
-Testing 64-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.648667%
-Testing 72-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.809333%
-Testing 80-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.654000%
-Testing 96-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.679333%
-Testing 112-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.668000%
-Testing 128-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.769333%
-Testing 160-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.675333%
-Testing 512-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.806667%
-Testing 1024-bit keys -> 64-bit hashes, 300000 reps worst bias is 0.826667%
+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%
[[[ 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 1 (1.67x) (1)
-Testing collisions (high 19-26 bits) - Worst is 21 bits: 619/1222 (0.51x)
-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 0 (0.00x)
-Testing collisions (low 19-26 bits) - Worst is 20 bits: 1256/2445 (0.51x)
-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 44 - 0.509%
+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 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 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%
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 169 (0.45x)
-Testing collisions (high 24-36 bits) - Worst is 28 bits: 3066/6023 (0.51x)
-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 193 (0.51x)
-Testing collisions (low 24-36 bits) - Worst is 36 bits: 13/23 (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 42 - 0.090%
+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 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 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%
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 2349 (0.49x)
-Testing collisions (high 26-39 bits) - Worst is 33 bits: 1211/2373 (0.51x)
-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 2291 (0.48x)
-Testing collisions (low 26-39 bits) - Worst is 29 bits: 18953/37968 (0.50x)
-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 58 - 0.042%
+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 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 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%
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 2464 (0.50x)
-Testing collisions (high 26-39 bits) - Worst is 37 bits: 86/153 (0.56x)
-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 2396 (0.49x)
-Testing collisions (low 26-39 bits) - Worst is 39 bits: 24/38 (0.62x)
-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 13 - 0.035%
+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 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 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%
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 23526 (0.50x)
-Testing collisions (high 28-43 bits) - Worst is 40 bits: 94/183 (0.51x)
-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 23571 (0.50x)
-Testing collisions (low 28-43 bits) - Worst is 43 bits: 13/22 (0.57x)
-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 20-bit window at bit 24 - 0.021%
+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 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 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%
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 2005 (0.48x)
-Testing collisions (high 26-39 bits) - Worst is 29 bits: 16547/33114 (0.50x)
-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 2099 (0.51x)
-Testing collisions (low 26-39 bits) - Worst is 32 bits: 2099/4139 (0.51x)
-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 31 - 0.057%
+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 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 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%
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 7962 (0.50x)
-Testing collisions (high 27-41 bits) - Worst is 39 bits: 78/125 (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 8118 (0.51x)
-Testing collisions (low 27-41 bits) - Worst is 38 bits: 140/250 (0.56x)
-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 7 - 0.037%
+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 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 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%
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 26838 (0.51x)
-Testing collisions (high 28-43 bits) - Worst is 43 bits: 17/25 (0.66x)
-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 26568 (0.50x)
-Testing collisions (low 28-43 bits) - Worst is 36 bits: 1703/3310 (0.51x)
-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 20 - 0.029%
+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 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 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%
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 1368 (0.49x)
-Testing collisions (high 26-39 bits) - Worst is 38 bits: 36/43 (0.82x)
-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 1366 (0.49x)
-Testing collisions (low 26-39 bits) - Worst is 36 bits: 88/175 (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 16 - 0.080%
+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 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 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%
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 84423 (0.50x)
-Testing collisions (high 29-45 bits) - Worst is 43 bits: 51/82 (0.62x)
-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 84652 (0.50x)
-Testing collisions (low 29-45 bits) - Worst is 45 bits: 15/20 (0.73x)
-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 84650 (1.00x) (-73)
+Testing collisions (high 28-44 bits) - Worst is 40 bits: 336/330 (1.02x)
+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 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%
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 893 (0.49x)
-Testing collisions (high 25-38 bits) - Worst is 37 bits: 36/56 (0.63x)
-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 946 (0.52x)
-Testing collisions (low 25-38 bits) - Worst is 37 bits: 32/56 (0.56x)
-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 29 - 0.120%
+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 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 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%
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 58551 (0.50x)
-Testing collisions (high 28-44 bits) - Worst is 42 bits: 59/113 (0.52x)
-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 58363 (0.50x)
-Testing collisions (low 28-44 bits) - Worst is 40 bits: 238/455 (0.52x)
-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 39 - 0.015%
+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 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 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%
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 34 (0.53x)
-Testing collisions (high 23-33 bits) - Worst is 30 bits: 147/256 (0.57x)
-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 35 (0.55x)
-Testing collisions (low 23-33 bits) - Worst is 33 bits: 22/32 (0.69x)
-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 29 - 0.187%
+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 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 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%
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 487 (0.48x)
-Testing collisions (high 25-37 bits) - Worst is 36 bits: 38/64 (0.59x)
-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 477 (0.47x)
-Testing collisions (low 25-37 bits) - Worst is 30 bits: 2058/4100 (0.50x)
-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 59 - 0.078%
+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 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 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%
[[[ Keyset 'Permutation' Tests ]]]
@@ -256,211 +256,211 @@
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 700 (0.52x)
-Testing collisions (high 25-38 bits) - Worst is 38 bits: 15/20 (0.72x)
-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 695 (0.52x)
-Testing collisions (low 25-38 bits) - Worst is 32 bits: 695/1337 (0.52x)
-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 25 - 0.078%
+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 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 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%
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 653 (0.49x)
-Testing collisions (high 25-38 bits) - Worst is 29 bits: 5394/10699 (0.50x)
-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 644 (0.48x)
-Testing collisions (low 25-38 bits) - Worst is 31 bits: 1325/2674 (0.50x)
-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 18 - 0.038%
+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 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 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%
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 17516 (0.51x)
-Testing collisions (high 27-42 bits) - Worst is 42 bits: 20/33 (0.59x)
-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 17293 (0.50x)
-Testing collisions (low 27-42 bits) - Worst is 42 bits: 21/33 (0.62x)
-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 38 - 0.022%
+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 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 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%
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 8370 (0.51x)
-Testing collisions (high 27-41 bits) - Worst is 40 bits: 43/63 (0.67x)
-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 8184 (0.50x)
-Testing collisions (low 27-41 bits) - Worst is 40 bits: 37/63 (0.58x)
-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 13 - 0.038%
+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 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 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%
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 8150 (0.50x)
-Testing collisions (high 27-41 bits) - Worst is 34 bits: 2047/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 8264 (0.50x)
-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 18 - 0.038%
+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 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 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%
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 8130 (0.50x)
-Testing collisions (high 27-41 bits) - Worst is 38 bits: 141/255 (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 8166 (0.50x)
-Testing collisions (low 27-41 bits) - Worst is 41 bits: 22/31 (0.69x)
-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 31 - 0.026%
+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 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 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%
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 8245 (0.50x)
-Testing collisions (high 27-41 bits) - Worst is 39 bits: 78/127 (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 8289 (0.51x)
-Testing collisions (low 27-41 bits) - Worst is 37 bits: 274/511 (0.54x)
-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 17 - 0.033%
+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 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 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%
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 8185 (0.50x)
-Testing collisions (high 27-41 bits) - Worst is 41 bits: 28/31 (0.88x)
-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 8232 (0.50x)
-Testing collisions (low 27-41 bits) - Worst is 38 bits: 152/255 (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 20-bit window at bit 27 - 0.024%
+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 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 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%
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 8107 (0.49x)
-Testing collisions (high 27-41 bits) - Worst is 34 bits: 2065/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 8082 (0.49x)
-Testing collisions (low 27-41 bits) - Worst is 39 bits: 67/127 (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 23 - 0.044%
+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 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 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%
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 8127 (0.50x)
-Testing collisions (high 27-41 bits) - Worst is 41 bits: 25/31 (0.78x)
-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 8238 (0.50x)
-Testing collisions (low 27-41 bits) - Worst is 38 bits: 150/255 (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 20-bit window at bit 3 - 0.045%
+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 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 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%
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 8193 (0.50x)
-Testing collisions (high 27-41 bits) - Worst is 35 bits: 1079/2047 (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 8201 (0.50x)
-Testing collisions (low 27-41 bits) - Worst is 41 bits: 18/31 (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 26 - 0.036%
+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 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 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%
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 8169 (0.50x)
-Testing collisions (high 27-41 bits) - Worst is 39 bits: 72/127 (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 8101 (0.49x)
-Testing collisions (low 27-41 bits) - Worst is 29 bits: 65198/131071 (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 27 - 0.022%
+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 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 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%
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 8175 (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 8220 (0.50x)
-Testing collisions (low 27-41 bits) - Worst is 39 bits: 83/127 (0.65x)
-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 24 - 0.035%
+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 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 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%
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 8183 (0.50x)
-Testing collisions (high 27-41 bits) - Worst is 36 bits: 532/1023 (0.52x)
-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 8309 (0.51x)
-Testing collisions (low 27-41 bits) - Worst is 41 bits: 18/31 (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 33 - 0.040%
+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 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 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%
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 8280 (0.51x)
-Testing collisions (high 27-41 bits) - Worst is 40 bits: 41/63 (0.64x)
-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 8222 (0.50x)
-Testing collisions (low 27-41 bits) - Worst is 40 bits: 37/63 (0.58x)
-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 27 - 0.052%
+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 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 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%
[[[ Keyset 'Window' Tests ]]]
@@ -504,221 +504,257 @@
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 129 (0.55x)
-Testing collisions (high 24-35 bits) - Worst is 35 bits: 20/29 (0.69x)
-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 125 (0.54x)
-Testing collisions (low 24-35 bits) - Worst is 34 bits: 37/58 (0.64x)
-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 22 - 0.076%
+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 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 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%
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 29 bits: 948/1862 (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 121 (0.52x)
-Testing collisions (low 24-35 bits) - Worst is 32 bits: 121/232 (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 6 - 0.088%
+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 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 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%
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 115 (0.49x)
-Testing collisions (high 24-35 bits) - Worst is 27 bits: 3685/7450 (0.49x)
-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 121 (0.52x)
-Testing collisions (low 24-35 bits) - Worst is 35 bits: 19/29 (0.65x)
-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 46 - 0.121%
+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 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 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%
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 119 (0.51x)
-Testing collisions (high 24-35 bits) - Worst is 32 bits: 119/232 (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 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 17 - 0.118%
+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 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 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%
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 102 (0.44x)
-Testing collisions (high 24-35 bits) - Worst is 30 bits: 468/931 (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 134 (0.58x)
-Testing collisions (low 24-35 bits) - Worst is 34 bits: 36/58 (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 16-bit window at bit 58 - 0.055%
+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 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 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%
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 112 (0.48x)
-Testing collisions (high 24-35 bits) - Worst is 34 bits: 32/58 (0.55x)
-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 118 (0.51x)
-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 30 - 0.087%
+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 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 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%
[[[ 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 45 (0.45x)
-Testing collisions (high 23-34 bits) - Worst is 29 bits: 417/793 (0.53x)
-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 47 (0.47x)
-Testing collisions (low 23-34 bits) - Worst is 34 bits: 15/24 (0.61x)
-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 24 - 0.125%
+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 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 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%
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 3563 (0.51x)
-Testing collisions (high 26-40 bits) - Worst is 39 bits: 38/54 (0.70x)
-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 3405 (0.49x)
-Testing collisions (low 26-40 bits) - Worst is 40 bits: 17/27 (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 36 - 0.047%
+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 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 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%
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 40179 (0.50x)
-Testing collisions (high 28-43 bits) - Worst is 42 bits: 43/78 (0.55x)
-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 40091 (0.50x)
-Testing collisions (low 28-43 bits) - Worst is 39 bits: 352/630 (0.56x)
-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 9 - 0.015%
+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 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 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%
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 228151 (0.50x)
-Testing collisions (high 29-46 bits) - Worst is 46 bits: 19/27 (0.68x)
-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 227299 (0.50x)
-Testing collisions (low 29-46 bits) - Worst is 43 bits: 120/222 (0.54x)
-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.011%
+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 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 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%
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 866811 (0.50x)
-Testing collisions (high 30-48 bits) - Worst is 48 bits: 16/26 (0.60x)
-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 866063 (0.50x)
-Testing collisions (low 30-48 bits) - Worst is 48 bits: 16/26 (0.60x)
-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 33 - 0.003%
+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 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 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%
[[[ Keyset 'Text' Tests ]]]
-Keyset 'Text' - keys of form "Foo[XXXX]Bar" - 14776336 keys
+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 50836.3, actual 25425 (0.50x)
-Testing collisions (high 28-43 bits) - Worst is 38 bits: 408/794 (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 25393 (0.50x)
-Testing collisions (low 28-43 bits) - Worst is 42 bits: 29/49 (0.58x)
-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 31 - 0.016%
+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 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 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%
-Keyset 'Text' - keys of form "FooBar[XXXX]" - 14776336 keys
+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 50836.3, actual 25313 (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 25194 (0.50x)
-Testing collisions (low 28-43 bits) - Worst is 43 bits: 14/24 (0.56x)
-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.030%
+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 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 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%
-Keyset 'Text' - keys of form "[XXXX]FooBar" - 14776336 keys
+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 50836.3, actual 25595 (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 25449 (0.50x)
-Testing collisions (low 28-43 bits) - Worst is 33 bits: 12824/25418 (0.50x)
-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 50 - 0.016%
+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 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 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%
+
+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 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 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%
+
+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 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 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%
+
+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 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 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%
[[[ 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 7 (0.72x)
-Testing collisions (high 21-30 bits) - Worst is 30 bits: 26/39 (0.67x)
-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 5 (0.51x)
-Testing collisions (low 21-30 bits) - Worst is 24 bits: 1231/2499 (0.49x)
-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.314%
+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 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 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%
[[[ 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 2941 (0.51x)
-Testing collisions (high 26-40 bits) - Worst is 40 bits: 13/22 (0.57x)
-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 2912 (0.50x)
-Testing collisions (low 26-40 bits) - Worst is 37 bits: 105/181 (0.58x)
-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 53 - 0.051%
+Testing collisions (high 32-bit) - Expected 2910.4, actual 2988 (1.03x) (78)
+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 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%
[[[ 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 33050 (0.50x)
-Testing collisions (high 28-43 bits) - Worst is 39 bits: 267/511 (0.52x)
-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 32690 (0.50x)
-Testing collisions (low 28-43 bits) - Worst is 42 bits: 38/63 (0.59x)
-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 32864 (1.00x) (97)
+Testing collisions (high 27-42 bits) - Worst is 38 bits: 548/511 (1.07x)
+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 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 bit 0
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 33 bits: 259/511 (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 520 (0.51x)
-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 503 (0.98x) (-8)
+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 499 (0.97x)
+Testing collisions (low 24-36 bits) - Worst is 31 bits: 1028/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 1
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 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 515 (0.50x)
-Testing collisions (low 25-37 bits) - Worst is 33 bits: 261/511 (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 550 (1.07x) (39)
+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 504 (0.98x) (-7)
+Testing collisions (low 24-36 bits) - Worst is 26 bits: 32606/32767 (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 2
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 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 504 (0.49x)
-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 490 (0.96x)
+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 522 (1.02x) (11)
+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 3
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 35 bits: 79/127 (0.62x)
-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 555 (0.54x)
-Testing collisions (low 25-37 bits) - Worst is 35 bits: 82/127 (0.64x)
-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 483 (0.94x)
+Testing collisions (high 24-36 bits) - Worst is 28 bits: 8201/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 519 (1.01x) (8)
+Testing collisions (low 24-36 bits) - Worst is 35 bits: 86/63 (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 4
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 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 511 (0.50x)
-Testing collisions (low 25-37 bits) - Worst is 31 bits: 1077/2047 (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 476 (0.93x)
+Testing collisions (high 24-36 bits) - Worst is 30 bits: 2026/2047 (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 511 (1.00x)
+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 5
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 34 bits: 139/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 525 (0.51x)
-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 497 (0.97x)
+Testing collisions (high 24-36 bits) - Worst is 29 bits: 4206/4095 (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 488 (0.95x)
+Testing collisions (low 24-36 bits) - Worst is 34 bits: 141/127 (1.10x)
+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 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 572 (0.56x)
-Testing collisions (low 25-37 bits) - Worst is 36 bits: 42/63 (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 506 (0.99x) (-5)
+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 512 (1.00x) (1)
+Testing collisions (low 24-36 bits) - Worst is 28 bits: 8292/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 7
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 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 518 (0.51x)
-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 481 (0.94x)
+Testing collisions (high 24-36 bits) - Worst is 30 bits: 2011/2047 (0.98x)
+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 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 561 (0.55x)
-Testing collisions (high 25-37 bits) - Worst is 32 bits: 561/1023 (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: 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 550 (1.07x) (39)
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 47/31 (1.47x)
+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 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 520 (0.51x)
-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 505 (0.49x)
-Testing collisions (low 25-37 bits) - Worst is 30 bits: 2119/4095 (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 493 (0.96x)
+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 537 (1.05x) (26)
+Testing collisions (low 24-36 bits) - Worst is 33 bits: 299/255 (1.17x)
+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 534 (0.52x)
-Testing collisions (high 25-37 bits) - Worst is 36 bits: 45/63 (0.70x)
-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 28 bits: 8383/16383 (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 555 (1.08x) (44)
+Testing collisions (high 24-36 bits) - Worst is 33 bits: 281/255 (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 495 (0.97x)
+Testing collisions (low 24-36 bits) - Worst is 31 bits: 1048/1023 (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 11
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 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 546 (0.53x)
-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 459 (0.90x)
+Testing collisions (high 24-36 bits) - Worst is 29 bits: 4100/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 488 (0.95x)
+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 12
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: 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 506 (0.49x)
-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 491 (0.96x)
+Testing collisions (high 24-36 bits) - Worst is 29 bits: 4167/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 480 (0.94x)
+Testing collisions (low 24-36 bits) - Worst is 30 bits: 2089/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 13
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 549 (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 524 (0.51x)
-Testing collisions (low 25-37 bits) - Worst is 34 bits: 153/255 (0.60x)
-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 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 553 (1.08x) (42)
+Testing collisions (low 24-36 bits) - Worst is 32 bits: 553/511 (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 14
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: 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 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 538 (1.05x) (27)
+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 508 (0.99x) (-3)
+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 15
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 33 bits: 267/511 (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 528 (0.52x)
-Testing collisions (low 25-37 bits) - Worst is 32 bits: 528/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 534 (1.04x) (23)
+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 530 (1.04x) (19)
+Testing collisions (low 24-36 bits) - Worst is 33 bits: 267/255 (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 16
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 34 bits: 141/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 514 (0.50x)
-Testing collisions (low 25-37 bits) - Worst is 36 bits: 40/63 (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 481 (0.94x)
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 33/31 (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 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 520 (0.51x)
-Testing collisions (high 25-37 bits) - Worst is 31 bits: 1041/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 511 (0.50x)
-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 526 (1.03x) (15)
+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 477 (0.93x)
+Testing collisions (low 24-36 bits) - Worst is 35 bits: 64/63 (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 1024.0, actual 527 (0.51x)
-Testing collisions (high 25-37 bits) - Worst is 32 bits: 527/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 573 (0.56x)
-Testing collisions (low 25-37 bits) - Worst is 37 bits: 30/31 (0.94x)
-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 483 (0.94x)
+Testing collisions (high 24-36 bits) - Worst is 28 bits: 8326/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 490 (0.96x)
+Testing collisions (low 24-36 bits) - Worst is 29 bits: 4095/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 19
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 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 489 (0.48x)
-Testing collisions (low 25-37 bits) - Worst is 34 bits: 133/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 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 529 (1.03x) (18)
+Testing collisions (low 24-36 bits) - Worst is 35 bits: 79/63 (1.23x)
+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 553 (0.54x)
-Testing collisions (high 25-37 bits) - Worst is 32 bits: 553/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 527 (0.51x)
-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 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 511 (1.00x)
+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 21
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 499 (0.49x)
-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 489 (0.48x)
-Testing collisions (low 25-37 bits) - Worst is 30 bits: 2085/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 494 (0.96x)
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 45/31 (1.41x)
+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 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 507 (0.50x)
-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 488 (0.48x)
-Testing collisions (low 25-37 bits) - Worst is 29 bits: 4118/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 497 (0.97x)
+Testing collisions (high 24-36 bits) - Worst is 34 bits: 129/127 (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 33 bits: 258/255 (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 23
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 501 (0.49x)
-Testing collisions (high 25-37 bits) - Worst is 36 bits: 34/63 (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 469 (0.46x)
-Testing collisions (low 25-37 bits) - Worst is 27 bits: 16619/32767 (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 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 515 (1.01x) (4)
+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 24
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 31 bits: 1050/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 35 bits: 82/127 (0.64x)
-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 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 486 (0.95x)
+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 1024.0, actual 532 (0.52x)
-Testing collisions (high 25-37 bits) - Worst is 36 bits: 34/63 (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 516 (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 515 (1.01x) (4)
+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 511 (1.00x)
+Testing collisions (low 24-36 bits) - Worst is 28 bits: 8241/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 26
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 31 bits: 1063/2047 (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 525 (0.51x)
-Testing collisions (low 25-37 bits) - Worst is 29 bits: 4240/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 525 (1.03x) (14)
+Testing collisions (high 24-36 bits) - Worst is 35 bits: 88/63 (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 500 (0.98x)
+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 27
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 529 (0.52x)
-Testing collisions (high 25-37 bits) - Worst is 34 bits: 155/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 496 (0.48x)
-Testing collisions (low 25-37 bits) - Worst is 35 bits: 67/127 (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 496 (0.97x)
+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 516 (1.01x) (5)
+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 28
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 31 bits: 1049/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 523 (0.51x)
-Testing collisions (low 25-37 bits) - Worst is 37 bits: 24/31 (0.75x)
-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 523 (1.02x) (12)
+Testing collisions (high 24-36 bits) - Worst is 32 bits: 523/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 512 (1.00x) (1)
+Testing collisions (low 24-36 bits) - Worst is 30 bits: 2100/2047 (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 29
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 522 (0.51x)
-Testing collisions (high 25-37 bits) - Worst is 36 bits: 36/63 (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 545 (0.53x)
-Testing collisions (low 25-37 bits) - Worst is 32 bits: 545/1023 (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 534 (1.04x) (23)
+Testing collisions (high 24-36 bits) - Worst is 32 bits: 534/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 494 (0.96x)
+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 30
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 26 bits: 32495/65535 (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 467 (0.46x)
-Testing collisions (low 25-37 bits) - Worst is 28 bits: 8269/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 505 (0.99x) (-6)
+Testing collisions (high 24-36 bits) - Worst is 29 bits: 4057/4095 (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 499 (0.97x)
+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 31
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 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 491 (0.48x)
-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 526 (1.03x) (15)
+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 517 (1.01x) (6)
+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 32
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 501 (0.49x)
-Testing collisions (high 25-37 bits) - Worst is 33 bits: 264/511 (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 527 (0.51x)
-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 467 (0.91x)
+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 512 (1.00x) (1)
+Testing collisions (low 24-36 bits) - Worst is 34 bits: 142/127 (1.11x)
+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 501 (0.49x)
-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 525 (0.51x)
-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 518 (1.01x) (7)
+Testing collisions (high 24-36 bits) - Worst is 33 bits: 267/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 518 (1.01x) (7)
+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 34
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 30 bits: 2036/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 464 (0.45x)
-Testing collisions (low 25-37 bits) - Worst is 26 bits: 32633/65535 (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 540 (1.05x) (29)
+Testing collisions (high 24-36 bits) - Worst is 36 bits: 49/31 (1.53x)
+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 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 533 (0.52x)
-Testing collisions (high 25-37 bits) - Worst is 37 bits: 23/31 (0.72x)
-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: 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 486 (0.95x)
+Testing collisions (high 24-36 bits) - Worst is 30 bits: 2057/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 504 (0.98x) (-7)
+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 36
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 561 (0.55x)
-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 37 bits: 26/31 (0.81x)
-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 31 bits: 1035/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 462 (0.90x)
+Testing collisions (low 24-36 bits) - Worst is 35 bits: 64/63 (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 37
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 487 (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 522 (0.51x)
-Testing collisions (low 25-37 bits) - Worst is 32 bits: 522/1023 (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 496 (0.97x)
+Testing collisions (high 24-36 bits) - Worst is 35 bits: 65/63 (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 506 (0.99x) (-5)
+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 38
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: 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 471 (0.46x)
-Testing collisions (low 25-37 bits) - Worst is 34 bits: 138/255 (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 489 (0.96x)
+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 490 (0.96x)
+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 39
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 486 (0.47x)
-Testing collisions (high 25-37 bits) - Worst is 37 bits: 16/31 (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 525 (0.51x)
-Testing collisions (low 25-37 bits) - Worst is 36 bits: 40/63 (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 539 (1.05x) (28)
+Testing collisions (high 24-36 bits) - Worst is 33 bits: 271/255 (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 32 bits: 514/511 (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 40
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 490 (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 485 (0.47x)
-Testing collisions (low 25-37 bits) - Worst is 36 bits: 40/63 (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 484 (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 515 (1.01x) (4)
+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 41
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 36 bits: 34/63 (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 539 (0.53x)
-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 505 (0.99x) (-6)
+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 520 (1.02x) (9)
+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 42
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 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 484 (0.47x)
-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 506 (0.99x) (-5)
+Testing collisions (high 24-36 bits) - Worst is 35 bits: 90/63 (1.41x)
+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 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 494 (0.48x)
-Testing collisions (high 25-37 bits) - Worst is 35 bits: 70/127 (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 558 (0.54x)
-Testing collisions (low 25-37 bits) - Worst is 35 bits: 76/127 (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 541 (1.06x) (30)
+Testing collisions (high 24-36 bits) - Worst is 32 bits: 541/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 480 (0.94x)
+Testing collisions (low 24-36 bits) - Worst is 27 bits: 16264/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 44
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 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 491 (0.48x)
-Testing collisions (low 25-37 bits) - Worst is 33 bits: 258/511 (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 474 (0.93x)
+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 496 (0.97x)
+Testing collisions (low 24-36 bits) - Worst is 30 bits: 2097/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 45
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 543 (0.53x)
-Testing collisions (high 25-37 bits) - Worst is 32 bits: 543/1023 (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 502 (0.49x)
-Testing collisions (low 25-37 bits) - Worst is 33 bits: 264/511 (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 497 (0.97x)
+Testing collisions (high 24-36 bits) - Worst is 35 bits: 65/63 (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 557 (1.09x) (46)
+Testing collisions (low 24-36 bits) - Worst is 32 bits: 557/511 (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 46
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 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 488 (0.48x)
-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 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 540 (1.05x) (29)
+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 47
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 34 bits: 139/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 474 (0.46x)
-Testing collisions (low 25-37 bits) - Worst is 35 bits: 70/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 520 (1.02x) (9)
+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 540 (1.05x) (29)
+Testing collisions (low 24-36 bits) - Worst is 35 bits: 81/63 (1.27x)
+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 487 (0.48x)
-Testing collisions (high 25-37 bits) - Worst is 27 bits: 16234/32767 (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 499 (0.49x)
-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 533 (1.04x) (22)
+Testing collisions (high 24-36 bits) - Worst is 35 bits: 75/63 (1.17x)
+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 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 511 (0.50x)
-Testing collisions (high 25-37 bits) - Worst is 33 bits: 267/511 (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 530 (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 522 (1.02x) (11)
+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 491 (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 50
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 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 511 (0.50x)
-Testing collisions (low 25-37 bits) - Worst is 30 bits: 2111/4095 (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 527 (1.03x) (16)
+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 545 (1.06x) (34)
+Testing collisions (low 24-36 bits) - Worst is 34 bits: 168/127 (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 51
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 499 (0.49x)
-Testing collisions (high 25-37 bits) - Worst is 31 bits: 1034/2047 (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 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 505 (0.99x) (-6)
+Testing collisions (high 24-36 bits) - Worst is 33 bits: 280/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 492 (0.96x)
+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 52
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 31 bits: 1029/2047 (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 461 (0.45x)
-Testing collisions (low 25-37 bits) - Worst is 36 bits: 35/63 (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 468 (0.91x)
+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 509 (0.99x) (-2)
+Testing collisions (low 24-36 bits) - Worst is 31 bits: 1028/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 53
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 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 502 (0.49x)
-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 495 (0.97x)
+Testing collisions (high 24-36 bits) - Worst is 28 bits: 8270/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 486 (0.95x)
+Testing collisions (low 24-36 bits) - Worst is 29 bits: 4190/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 54
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 36 bits: 36/63 (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 495 (0.48x)
-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 513 (1.00x) (2)
+Testing collisions (high 24-36 bits) - Worst is 35 bits: 77/63 (1.20x)
+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 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 516 (0.50x)
-Testing collisions (high 25-37 bits) - Worst is 29 bits: 4224/8191 (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 37 bits: 24/31 (0.75x)
-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 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 527 (1.03x) (16)
+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 56
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 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 521 (0.51x)
-Testing collisions (low 25-37 bits) - Worst is 37 bits: 27/31 (0.84x)
-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 487 (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 485 (0.95x)
+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 1024.0, actual 556 (0.54x)
-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 481 (0.47x)
-Testing collisions (low 25-37 bits) - Worst is 36 bits: 42/63 (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 485 (0.95x)
+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 545 (1.06x) (34)
+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 58
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 507 (0.50x)
-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 518 (0.51x)
-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 509 (0.99x) (-2)
+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 511 (1.00x)
+Testing collisions (low 24-36 bits) - Worst is 30 bits: 2106/2047 (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 59
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 36 bits: 34/63 (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: 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 509 (0.99x) (-2)
+Testing collisions (high 24-36 bits) - Worst is 31 bits: 1032/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 505 (0.99x) (-6)
+Testing collisions (low 24-36 bits) - Worst is 29 bits: 4237/4095 (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 60
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 30 bits: 2077/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 501 (0.49x)
-Testing collisions (low 25-37 bits) - Worst is 30 bits: 2058/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 499 (0.97x)
+Testing collisions (high 24-36 bits) - Worst is 28 bits: 8290/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 526 (1.03x) (15)
+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 61
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 545 (0.53x)
-Testing collisions (high 25-37 bits) - Worst is 37 bits: 28/31 (0.88x)
-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: 1062/2047 (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 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 508 (0.99x) (-3)
+Testing collisions (low 24-36 bits) - Worst is 31 bits: 1035/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 62
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 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 521 (0.51x)
-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 530 (1.04x) (19)
+Testing collisions (high 24-36 bits) - Worst is 32 bits: 530/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 517 (1.01x) (6)
+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 63
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
-Testing collisions (high 32-bit) - Expected 1024.0, actual 481 (0.47x)
-Testing collisions (high 25-37 bits) - Worst is 30 bits: 2051/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 457 (0.45x)
-Testing collisions (low 25-37 bits) - Worst is 27 bits: 16460/32767 (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 521 (1.02x) (10)
+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 472 (0.92x)
+Testing collisions (low 24-36 bits) - Worst is 28 bits: 8141/8191 (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)
[[[ 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 : 38918407.861285 - 410458.516257
-Popcount 0 stats : 38919818.441458 - 410503.734628
-MomentChi2 for bits 1 : 0.0526323
-MomentChi2 for bits 0 : 3.19062
+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
Derivative stats (transition from 2 consecutive values) :
-Popcount 1 stats : 38918414.434560 - 410444.027212
-Popcount 0 stats : 38919424.413230 - 410472.779750
-MomentChi2 for deriv b1 : 0.0560148
-MomentChi2 for deriv b0 : 1.82622
+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
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 130471 (1.00x) (-600)
+Testing collisions (high 28-44 bits) - Worst is 42 bits: 130/127 (1.02x)
+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 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 978.271065 seconds
+Verification value is 0x00000001 - Testing took 584.720469 seconds
-------------------------------------------------------------------------------
diff --git a/src/fallback_hash.rs b/src/fallback_hash.rs
index 3eaacf9..95aa8b3 100644
--- a/src/fallback_hash.rs
+++ b/src/fallback_hash.rs
@@ -102,7 +102,7 @@
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 = (self.pad.wrapping_add(combined) ^ self.buffer).rotate_left(ROT);
+ self.buffer = (combined.wrapping_add(self.buffer) ^ self.pad).rotate_left(ROT);
}
}
diff --git a/src/hash_quality_test.rs b/src/hash_quality_test.rs
index 0c3318a..62ba83b 100644
--- a/src/hash_quality_test.rs
+++ b/src/hash_quality_test.rs
@@ -371,9 +371,9 @@
#[test]
fn fallback_padding_doesnot_collide() {
test_padding_doesnot_collide(|| AHasher::new_with_keys(0, 0));
- test_padding_doesnot_collide(|| AHasher::new_with_keys(0, 1));
- test_padding_doesnot_collide(|| AHasher::new_with_keys(1, 0));
- test_padding_doesnot_collide(|| AHasher::new_with_keys(1, 1));
+ test_padding_doesnot_collide(|| AHasher::new_with_keys(0, 2));
+ test_padding_doesnot_collide(|| AHasher::new_with_keys(2, 0));
+ test_padding_doesnot_collide(|| AHasher::new_with_keys(2, 2));
}
}
diff --git a/tests/bench.rs b/tests/bench.rs
index 9782cb1..68591e2 100644
--- a/tests/bench.rs
+++ b/tests/bench.rs
@@ -7,7 +7,7 @@
#[cfg(all(any(target_arch = "x86", target_arch = "x86_64"), target_feature = "aes"))]
fn aeshash<H: Hash>(b: &H) -> u64 {
let hasher = RandomState::with_seeds(1, 2, 3, 4).build_hasher();
- b.get_hash(hasher)
+ H::get_hash(b, hasher)
}
#[cfg(not(all(any(target_arch = "x86", target_arch = "x86_64"), target_feature = "aes")))]
fn aeshash<H: Hash>(_b: &H) -> u64 {