Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wyhash final 4 solve BadSeeds and PerlinNoiseAV test #243

Closed
wangyi-fudan opened this issue Nov 1, 2022 · 5 comments
Closed

wyhash final 4 solve BadSeeds and PerlinNoiseAV test #243

wangyi-fudan opened this issue Nov 1, 2022 · 5 comments
Assignees

Comments

@wangyi-fudan
Copy link
Contributor

Dear rurban and the community:
Thank you for your discovery of BadSeeds and PerlinNoiseAV problems.
I identify that the problem due to unprotected seed.
With one additional MUM to protect the seed, all bugs are solved.
Cheers!
Yi Wang

@wangyi-fudan
Copy link
Contributor Author


--- Testing wyhash "wyhash v3 (64-bit)" GOOD

[[[ Sanity Tests ]]]

Verification value 0x5495398C ....... FAIL! (Expected 0x67031d43)
Running sanity check 1 .......... PASS
Running AppendedZeroesTest .......... PASS

[[[ Speed Tests ]]]

Bulk speed test - 262144-byte keys
Alignment 7 - 11.812 bytes/cycle - 33793.46 MiB/sec @ 3 ghz
Alignment 6 - 11.818 bytes/cycle - 33812.32 MiB/sec @ 3 ghz
Alignment 5 - 11.812 bytes/cycle - 33795.32 MiB/sec @ 3 ghz
Alignment 4 - 11.815 bytes/cycle - 33804.02 MiB/sec @ 3 ghz
Alignment 3 - 11.816 bytes/cycle - 33805.35 MiB/sec @ 3 ghz
Alignment 2 - 11.812 bytes/cycle - 33795.00 MiB/sec @ 3 ghz
Alignment 1 - 11.814 bytes/cycle - 33799.29 MiB/sec @ 3 ghz
Alignment 0 - 11.827 bytes/cycle - 33836.64 MiB/sec @ 3 ghz
Average - 11.816 bytes/cycle - 33805.18 MiB/sec @ 3 ghz

Small key speed test - 1-byte keys - 15.34 cycles/hash
Small key speed test - 2-byte keys - 15.57 cycles/hash
Small key speed test - 3-byte keys - 15.70 cycles/hash
Small key speed test - 4-byte keys - 13.90 cycles/hash
Small key speed test - 5-byte keys - 14.16 cycles/hash
Small key speed test - 6-byte keys - 14.01 cycles/hash
Small key speed test - 7-byte keys - 13.96 cycles/hash
Small key speed test - 8-byte keys - 14.40 cycles/hash
Small key speed test - 9-byte keys - 13.93 cycles/hash
Small key speed test - 10-byte keys - 13.91 cycles/hash
Small key speed test - 11-byte keys - 14.35 cycles/hash
Small key speed test - 12-byte keys - 13.81 cycles/hash
Small key speed test - 13-byte keys - 13.55 cycles/hash
Small key speed test - 14-byte keys - 14.03 cycles/hash
Small key speed test - 15-byte keys - 13.92 cycles/hash
Small key speed test - 16-byte keys - 14.12 cycles/hash
Small key speed test - 17-byte keys - 16.55 cycles/hash
Small key speed test - 18-byte keys - 16.97 cycles/hash
Small key speed test - 19-byte keys - 16.68 cycles/hash
Small key speed test - 20-byte keys - 16.04 cycles/hash
Small key speed test - 21-byte keys - 16.68 cycles/hash
Small key speed test - 22-byte keys - 16.70 cycles/hash
Small key speed test - 23-byte keys - 16.84 cycles/hash
Small key speed test - 24-byte keys - 16.76 cycles/hash
Small key speed test - 25-byte keys - 16.62 cycles/hash
Small key speed test - 26-byte keys - 16.54 cycles/hash
Small key speed test - 27-byte keys - 16.56 cycles/hash
Small key speed test - 28-byte keys - 16.75 cycles/hash
Small key speed test - 29-byte keys - 16.59 cycles/hash
Small key speed test - 30-byte keys - 16.88 cycles/hash
Small key speed test - 31-byte keys - 16.46 cycles/hash
Average 15.428 cycles/hash

[[[ 'Hashmap' Speed Tests ]]]

std::unordered_map
Init std HashMapTest: 188.199 cycles/op (104334 inserts, 1% deletions)
Running std HashMapTest: 120.622 cycles/op (2.5 stdv)

greg7mdp/parallel-hashmap
Init fast HashMapTest: 136.915 cycles/op (104334 inserts, 1% deletions)
Running fast HashMapTest: 82.646 cycles/op (1.3 stdv) ....... PASS

[[[ Avalanche Tests ]]]

Testing 24-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.630667%
Testing 32-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.705333%
Testing 40-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.616667%
Testing 48-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.722000%
Testing 56-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.659333%
Testing 64-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.670000%
Testing 72-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.623333%
Testing 80-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.662000%
Testing 96-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.659333%
Testing 112-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.801333%
Testing 128-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.680667%
Testing 160-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.717333%
Testing 512-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.795333%
Testing 1024-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 0.769333%

[[[ Keyset 'Sparse' Tests ]]]

Keyset 'Sparse' - 16-bit keys with up to 9 bits set - 50643 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 0.3, actual 0 (0.00x)
Testing collisions (high 19-25 bits) - Worst is 25 bits: 45/38 (1.18x)
Testing collisions (low 32-bit) - Expected 0.3, actual 0 (0.00x)
Testing collisions (low 19-25 bits) - Worst is 25 bits: 46/38 (1.20x)
Testing distribution - Worst bias is the 12-bit window at bit 56 - 0.381%

Keyset 'Sparse' - 24-bit keys with up to 8 bits set - 1271626 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 188.2, actual 159 (0.84x)
Testing collisions (high 24-35 bits) - Worst is 25 bits: 23803/23794 (1.00x)
Testing collisions (low 32-bit) - Expected 188.2, actual 185 (0.98x) (-3)
Testing collisions (low 24-35 bits) - Worst is 35 bits: 25/23 (1.06x)
Testing distribution - Worst bias is the 17-bit window at bit 62 - 0.068%

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 2372.2, actual 2337 (0.99x) (-35)
Testing collisions (high 25-38 bits) - Worst is 37 bits: 90/74 (1.21x)
Testing collisions (low 32-bit) - Expected 2372.2, actual 2310 (0.97x)
Testing collisions (low 25-38 bits) - Worst is 36 bits: 164/148 (1.11x)
Testing distribution - Worst bias is the 19-bit window at bit 50 - 0.046%

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 2460.8, actual 2530 (1.03x) (70)
Testing collisions (high 25-38 bits) - Worst is 35 bits: 331/307 (1.08x)
Testing collisions (low 32-bit) - Expected 2460.8, actual 2494 (1.01x) (34)
Testing collisions (low 25-38 bits) - Worst is 37 bits: 92/76 (1.20x)
Testing distribution - Worst bias is the 19-bit window at bit 49 - 0.043%

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 23437.8, actual 23353 (1.00x) (-84)
Testing collisions (high 27-42 bits) - Worst is 42 bits: 26/22 (1.13x)
Testing collisions (low 32-bit) - Expected 23437.8, actual 23519 (1.00x) (82)
Testing collisions (low 27-42 bits) - Worst is 40 bits: 96/91 (1.05x)
Testing distribution - Worst bias is the 20-bit window at bit 6 - 0.026%

Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 2069.0, actual 2057 (0.99x) (-11)
Testing collisions (high 25-38 bits) - Worst is 37 bits: 70/64 (1.08x)
Testing collisions (low 32-bit) - Expected 2069.0, actual 2017 (0.97x)
Testing collisions (low 25-38 bits) - Worst is 36 bits: 134/129 (1.04x)
Testing distribution - Worst bias is the 19-bit window at bit 23 - 0.055%

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 8021.7, actual 8122 (1.01x) (101)
Testing collisions (high 26-40 bits) - Worst is 40 bits: 36/31 (1.15x)
Testing collisions (low 32-bit) - Expected 8021.7, actual 8066 (1.01x) (45)
Testing collisions (low 26-40 bits) - Worst is 40 bits: 35/31 (1.12x)
Testing distribution - Worst bias is the 20-bit window at bit 17 - 0.053%

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 26451.8, actual 26501 (1.00x) (50)
Testing collisions (high 27-42 bits) - Worst is 41 bits: 60/51 (1.16x)
Testing collisions (low 32-bit) - Expected 26451.8, actual 26227 (0.99x) (-224)
Testing collisions (low 27-42 bits) - Worst is 42 bits: 31/25 (1.20x)
Testing distribution - Worst bias is the 20-bit window at bit 44 - 0.017%

Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 1401.0, actual 1426 (1.02x) (26)
Testing collisions (high 25-38 bits) - Worst is 34 bits: 364/350 (1.04x)
Testing collisions (low 32-bit) - Expected 1401.0, actual 1378 (0.98x) (-22)
Testing collisions (low 25-38 bits) - Worst is 36 bits: 91/87 (1.04x)
Testing distribution - Worst bias is the 19-bit window at bit 34 - 0.082%

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 84546.1, actual 84639 (1.00x) (93)
Testing collisions (high 28-44 bits) - Worst is 43 bits: 48/41 (1.16x)
Testing collisions (low 32-bit) - Expected 84546.1, actual 84317 (1.00x) (-229)
Testing collisions (low 28-44 bits) - Worst is 43 bits: 52/41 (1.26x)
Testing distribution - Worst bias is the 20-bit window at bit 15 - 0.015%

Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 910.2, actual 912 (1.00x) (2)
Testing collisions (high 25-37 bits) - Worst is 37 bits: 38/28 (1.34x)
Testing collisions (low 32-bit) - Expected 910.2, actual 876 (0.96x)
Testing collisions (low 25-37 bits) - Worst is 37 bits: 36/28 (1.27x)
Testing distribution - Worst bias is the 19-bit window at bit 27 - 0.080%

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 58155.4, actual 58423 (1.00x) (268)
Testing collisions (high 28-43 bits) - Worst is 38 bits: 939/910 (1.03x)
Testing collisions (low 32-bit) - Expected 58155.4, actual 58348 (1.00x) (193)
Testing collisions (low 28-43 bits) - Worst is 37 bits: 1854/1820 (1.02x)
Testing distribution - Worst bias is the 20-bit window at bit 32 - 0.010%

Keyset 'Sparse' - 1024-bit keys with up to 2 bits set - 524801 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 32.1, actual 31 (0.97x)
Testing collisions (high 22-32 bits) - Worst is 30 bits: 140/128 (1.09x)
Testing collisions (low 32-bit) - Expected 32.1, actual 25 (0.78x)
Testing collisions (low 22-32 bits) - Worst is 31 bits: 68/64 (1.06x)
Testing distribution - Worst bias is the 16-bit window at bit 57 - 0.103%

Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 512.4, actual 540 (1.05x) (28)
Testing collisions (high 24-36 bits) - Worst is 34 bits: 146/128 (1.14x)
Testing collisions (low 32-bit) - Expected 512.4, actual 498 (0.97x)
Testing collisions (low 24-36 bits) - Worst is 34 bits: 135/128 (1.05x)
Testing distribution - Worst bias is the 18-bit window at bit 34 - 0.069%

[[[ Keyset 'Permutation' Tests ]]]

Combination Lowbits Tests:
Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 668.6, actual 644 (0.96x)
Testing collisions (high 24-37 bits) - Worst is 28 bits: 10720/10667 (1.00x)
Testing collisions (low 32-bit) - Expected 668.6, actual 706 (1.06x) (38)
Testing collisions (low 24-37 bits) - Worst is 37 bits: 34/20 (1.63x)
Testing distribution - Worst bias is the 18-bit window at bit 24 - 0.097%

Combination Highbits Tests
Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 668.6, actual 674 (1.01x) (6)
Testing collisions (high 24-37 bits) - Worst is 35 bits: 90/83 (1.08x)
Testing collisions (low 32-bit) - Expected 668.6, actual 703 (1.05x) (35)
Testing collisions (low 24-37 bits) - Worst is 37 bits: 28/20 (1.34x)
Testing distribution - Worst bias is the 18-bit window at bit 30 - 0.045%

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 17322.9, actual 17134 (0.99x) (-188)
Testing collisions (high 27-41 bits) - Worst is 39 bits: 164/135 (1.21x)
Testing collisions (low 32-bit) - Expected 17322.9, actual 17368 (1.00x) (46)
Testing collisions (low 27-41 bits) - Worst is 31 bits: 34874/34613 (1.01x)
Testing distribution - Worst bias is the 20-bit window at bit 21 - 0.032%

Combination 0x8000000 Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 8186.7, actual 8124 (0.99x) (-62)
Testing collisions (high 26-40 bits) - Worst is 33 bits: 4106/4094 (1.00x)
Testing collisions (low 32-bit) - Expected 8186.7, actual 8147 (1.00x) (-39)
Testing collisions (low 26-40 bits) - Worst is 35 bits: 1095/1023 (1.07x)
Testing distribution - Worst bias is the 20-bit window at bit 42 - 0.038%

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 8186.7, actual 8166 (1.00x) (-20)
Testing collisions (high 26-40 bits) - Worst is 40 bits: 36/31 (1.13x)
Testing collisions (low 32-bit) - Expected 8186.7, actual 8141 (0.99x) (-45)
Testing collisions (low 26-40 bits) - Worst is 36 bits: 521/511 (1.02x)
Testing distribution - Worst bias is the 20-bit window at bit 35 - 0.041%

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 8186.7, actual 8137 (0.99x) (-49)
Testing collisions (high 26-40 bits) - Worst is 38 bits: 136/127 (1.06x)
Testing collisions (low 32-bit) - Expected 8186.7, actual 8273 (1.01x) (87)
Testing collisions (low 26-40 bits) - Worst is 38 bits: 133/127 (1.04x)
Testing distribution - Worst bias is the 19-bit window at bit 55 - 0.033%

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 8186.7, actual 8245 (1.01x) (59)
Testing collisions (high 26-40 bits) - Worst is 40 bits: 47/31 (1.47x)
Testing collisions (low 32-bit) - Expected 8186.7, actual 8270 (1.01x) (84)
Testing collisions (low 26-40 bits) - Worst is 39 bits: 79/63 (1.23x)
Testing distribution - Worst bias is the 20-bit window at bit 39 - 0.033%

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 8186.7, actual 8235 (1.01x) (49)
Testing collisions (high 26-40 bits) - Worst is 39 bits: 65/63 (1.02x)
Testing collisions (low 32-bit) - Expected 8186.7, actual 8093 (0.99x) (-93)
Testing collisions (low 26-40 bits) - Worst is 37 bits: 279/255 (1.09x)
Testing distribution - Worst bias is the 20-bit window at bit 40 - 0.050%

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 8186.7, actual 8061 (0.98x) (-125)
Testing collisions (high 26-40 bits) - Worst is 40 bits: 42/31 (1.31x)
Testing collisions (low 32-bit) - Expected 8186.7, actual 8148 (1.00x) (-38)
Testing collisions (low 26-40 bits) - Worst is 38 bits: 147/127 (1.15x)
Testing distribution - Worst bias is the 20-bit window at bit 59 - 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 8186.7, actual 8295 (1.01x) (109)
Testing collisions (high 26-40 bits) - Worst is 39 bits: 71/63 (1.11x)
Testing collisions (low 32-bit) - Expected 8186.7, actual 8272 (1.01x) (86)
Testing collisions (low 26-40 bits) - Worst is 36 bits: 533/511 (1.04x)
Testing distribution - Worst bias is the 19-bit window at bit 20 - 0.030%

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 8186.7, actual 8324 (1.02x) (138)
Testing collisions (high 26-40 bits) - Worst is 32 bits: 8324/8186 (1.02x)
Testing collisions (low 32-bit) - Expected 8186.7, actual 8177 (1.00x) (-9)
Testing collisions (low 26-40 bits) - Worst is 40 bits: 49/31 (1.53x)
Testing distribution - Worst bias is the 20-bit window at bit 63 - 0.045%

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 8186.7, actual 8220 (1.00x) (34)
Testing collisions (high 26-40 bits) - Worst is 40 bits: 41/31 (1.28x)
Testing collisions (low 32-bit) - Expected 8186.7, actual 8163 (1.00x) (-23)
Testing collisions (low 26-40 bits) - Worst is 40 bits: 37/31 (1.16x)
Testing distribution - Worst bias is the 20-bit window at bit 34 - 0.029%

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 8186.7, actual 8076 (0.99x) (-110)
Testing collisions (high 26-40 bits) - Worst is 35 bits: 1053/1023 (1.03x)
Testing collisions (low 32-bit) - Expected 8186.7, actual 8211 (1.00x) (25)
Testing collisions (low 26-40 bits) - Worst is 35 bits: 1076/1023 (1.05x)
Testing distribution - Worst bias is the 20-bit window at bit 7 - 0.031%

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 8186.7, actual 8232 (1.01x) (46)
Testing collisions (high 26-40 bits) - Worst is 40 bits: 42/31 (1.31x)
Testing collisions (low 32-bit) - Expected 8186.7, actual 8289 (1.01x) (103)
Testing collisions (low 26-40 bits) - Worst is 34 bits: 2109/2047 (1.03x)
Testing distribution - Worst bias is the 20-bit window at bit 19 - 0.037%

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 8186.7, actual 8235 (1.01x) (49)
Testing collisions (high 26-40 bits) - Worst is 40 bits: 37/31 (1.16x)
Testing collisions (low 32-bit) - Expected 8186.7, actual 8379 (1.02x) (193)
Testing collisions (low 26-40 bits) - Worst is 35 bits: 1099/1023 (1.07x)
Testing distribution - Worst bias is the 20-bit window at bit 17 - 0.039%

[[[ Keyset 'Window' Tests ]]]

Keyset 'Window' - 32-bit key, 25-bit window - 32 tests, 33554432 keys per test
Window at 0 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 1 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 2 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 3 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 4 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 5 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 6 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 7 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 8 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 9 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 10 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 11 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 12 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 13 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 14 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 15 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 16 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 17 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 18 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 19 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 20 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 21 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 22 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 23 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 24 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 25 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 26 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 27 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 28 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 29 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 30 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 31 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Window at 32 - Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)

[[[ Keyset 'Cyclic' Tests ]]]

Keyset 'Cyclic' - 8 cycles of 8 bytes - 1000000 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 116.4, actual 134 (1.15x) (18)
Testing collisions (high 23-34 bits) - Worst is 33 bits: 78/58 (1.34x)
Testing collisions (low 32-bit) - Expected 116.4, actual 133 (1.14x) (17)
Testing collisions (low 23-34 bits) - Worst is 34 bits: 36/29 (1.24x)
Testing distribution - Worst bias is the 17-bit window at bit 38 - 0.121%

Keyset 'Cyclic' - 8 cycles of 9 bytes - 1000000 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 116.4, actual 94 (0.81x)
Testing collisions (high 23-34 bits) - Worst is 23 bits: 56891/57305 (0.99x)
Testing collisions (low 32-bit) - Expected 116.4, actual 129 (1.11x) (13)
Testing collisions (low 23-34 bits) - Worst is 32 bits: 129/116 (1.11x)
Testing distribution - Worst bias is the 17-bit window at bit 25 - 0.104%

Keyset 'Cyclic' - 8 cycles of 10 bytes - 1000000 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 116.4, actual 129 (1.11x) (13)
Testing collisions (high 23-34 bits) - Worst is 33 bits: 68/58 (1.17x)
Testing collisions (low 32-bit) - Expected 116.4, actual 111 (0.95x)
Testing collisions (low 23-34 bits) - Worst is 34 bits: 31/29 (1.07x)
Testing distribution - Worst bias is the 17-bit window at bit 18 - 0.114%

Keyset 'Cyclic' - 8 cycles of 11 bytes - 1000000 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 116.4, actual 135 (1.16x) (19)
Testing collisions (high 23-34 bits) - Worst is 32 bits: 135/116 (1.16x)
Testing collisions (low 32-bit) - Expected 116.4, actual 117 (1.01x) (1)
Testing collisions (low 23-34 bits) - Worst is 32 bits: 117/116 (1.01x)
Testing distribution - Worst bias is the 17-bit window at bit 60 - 0.141%

Keyset 'Cyclic' - 8 cycles of 12 bytes - 1000000 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 116.4, actual 121 (1.04x) (5)
Testing collisions (high 23-34 bits) - Worst is 32 bits: 121/116 (1.04x)
Testing collisions (low 32-bit) - Expected 116.4, actual 117 (1.01x) (1)
Testing collisions (low 23-34 bits) - Worst is 31 bits: 235/232 (1.01x)
Testing distribution - Worst bias is the 17-bit window at bit 15 - 0.110%

Keyset 'Cyclic' - 8 cycles of 16 bytes - 1000000 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 116.4, actual 98 (0.84x)
Testing collisions (high 23-34 bits) - Worst is 26 bits: 7428/7413 (1.00x)
Testing collisions (low 32-bit) - Expected 116.4, actual 128 (1.10x) (12)
Testing collisions (low 23-34 bits) - Worst is 34 bits: 34/29 (1.17x)
Testing distribution - Worst bias is the 17-bit window at bit 35 - 0.129%

[[[ Keyset 'TwoBytes' Tests ]]]

Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 49.6, actual 51 (1.03x) (2)
Testing collisions (high 23-33 bits) - Worst is 30 bits: 213/198 (1.07x)
Testing collisions (low 32-bit) - Expected 49.6, actual 50 (1.01x) (1)
Testing collisions (low 23-33 bits) - Worst is 31 bits: 117/99 (1.18x)
Testing distribution - Worst bias is the 16-bit window at bit 34 - 0.142%

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 3483.1, actual 3419 (0.98x) (-64)
Testing collisions (high 26-39 bits) - Worst is 30 bits: 13953/13914 (1.00x)
Testing collisions (low 32-bit) - Expected 3483.1, actual 3485 (1.00x) (2)
Testing collisions (low 26-39 bits) - Worst is 36 bits: 241/217 (1.11x)
Testing distribution - Worst bias is the 20-bit window at bit 29 - 0.075%

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 40289.5, actual 39915 (0.99x) (-374)
Testing collisions (high 27-42 bits) - Worst is 30 bits: 160746/160462 (1.00x)
Testing collisions (low 32-bit) - Expected 40289.5, actual 40085 (0.99x) (-204)
Testing collisions (low 27-42 bits) - Worst is 40 bits: 167/157 (1.06x)
Testing distribution - Worst bias is the 20-bit window at bit 32 - 0.018%

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 227182.3, actual 226683 (1.00x) (-499)
Testing collisions (high 29-45 bits) - Worst is 39 bits: 1812/1780 (1.02x)
Testing collisions (low 32-bit) - Expected 227182.3, actual 226267 (1.00x) (-915)
Testing collisions (low 29-45 bits) - Worst is 45 bits: 37/27 (1.33x)
Testing distribution - Worst bias is the 20-bit window at bit 7 - 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 865959.1, actual 865364 (1.00x) (-595)
Testing collisions (high 30-47 bits) - Worst is 43 bits: 437/425 (1.03x)
Testing collisions (low 32-bit) - Expected 865959.1, actual 865432 (1.00x) (-527)
Testing collisions (low 30-47 bits) - Worst is 45 bits: 120/106 (1.13x)
Testing distribution - Worst bias is the 20-bit window at bit 54 - 0.005%

[[[ Keyset 'Text' Tests ]]]

Keyset 'Text' - keys of form "FooXXXXBar" - 14776336 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 25389.0, actual 25281 (1.00x) (-108)
Testing collisions (high 27-42 bits) - Worst is 40 bits: 115/99 (1.16x)
Testing collisions (low 32-bit) - Expected 25389.0, actual 25396 (1.00x) (7)
Testing collisions (low 27-42 bits) - Worst is 42 bits: 33/24 (1.33x)
Testing distribution - Worst bias is the 20-bit window at bit 59 - 0.020%

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 25389.0, actual 25292 (1.00x) (-97)
Testing collisions (high 27-42 bits) - Worst is 41 bits: 58/49 (1.17x)
Testing collisions (low 32-bit) - Expected 25389.0, actual 25354 (1.00x) (-35)
Testing collisions (low 27-42 bits) - Worst is 42 bits: 28/24 (1.13x)
Testing distribution - Worst bias is the 20-bit window at bit 21 - 0.027%

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 25389.0, actual 25342 (1.00x) (-47)
Testing collisions (high 27-42 bits) - Worst is 40 bits: 107/99 (1.08x)
Testing collisions (low 32-bit) - Expected 25389.0, actual 25108 (0.99x) (-281)
Testing collisions (low 27-42 bits) - Worst is 37 bits: 818/794 (1.03x)
Testing distribution - Worst bias is the 20-bit window at bit 53 - 0.026%

Keyset 'Words' - 4000000 random keys of len 6-16 from alnum charset
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 1862.1, actual 1800 (0.97x)
Testing collisions (high 25-38 bits) - Worst is 38 bits: 32/29 (1.10x)
Testing collisions (low 32-bit) - Expected 1862.1, actual 1885 (1.01x) (23)
Testing collisions (low 25-38 bits) - Worst is 34 bits: 482/465 (1.04x)
Testing distribution - Worst bias is the 18-bit window at bit 24 - 0.051%

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.1, actual 1797 (0.97x)
Testing collisions (high 25-38 bits) - Worst is 29 bits: 14915/14864 (1.00x)
Testing collisions (low 32-bit) - Expected 1862.1, actual 1793 (0.96x)
Testing collisions (low 25-38 bits) - Worst is 28 bits: 29806/29654 (1.01x)
Testing distribution - Worst bias is the 19-bit window at bit 39 - 0.067%

Keyset 'Words' - 104334 dict words
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 1.3, actual 1 (0.79x)
Testing collisions (high 20-28 bits) - Worst is 24 bits: 337/323 (1.04x)
Testing collisions (low 32-bit) - Expected 1.3, actual 3 (2.37x) (2) !
Testing collisions (low 20-28 bits) - Worst is 28 bits: 29/20 (1.43x)
Testing distribution - Worst bias is the 14-bit window at bit 48 - 0.455%

[[[ Keyset 'Zeroes' Tests ]]]

Keyset 'Zeroes' - 204800 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 4.9, actual 4 (0.82x)
Testing collisions (high 21-29 bits) - Worst is 26 bits: 316/312 (1.01x)
Testing collisions (low 32-bit) - Expected 4.9, actual 2 (0.41x)
Testing collisions (low 21-29 bits) - Worst is 23 bits: 2506/2479 (1.01x)
Testing distribution - Worst bias is the 15-bit window at bit 24 - 0.402%

[[[ Keyset 'Seed' Tests ]]]

Keyset 'Seed' - 5000000 keys
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 2909.3, actual 2812 (0.97x)
Testing collisions (high 26-39 bits) - Worst is 37 bits: 91/90 (1.00x)
Testing collisions (low 32-bit) - Expected 2909.3, actual 2908 (1.00x) (-1)
Testing collisions (low 26-39 bits) - Worst is 35 bits: 374/363 (1.03x)
Testing distribution - Worst bias is the 19-bit window at bit 7 - 0.044%

[[[ Keyset 'PerlinNoise' Tests ]]]

Testing 16777216 coordinates (L2) :
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 32725.4, actual 32731 (1.00x) (6)
Testing collisions (high 27-42 bits) - Worst is 39 bits: 261/255 (1.02x)
Testing collisions (low 32-bit) - Expected 32725.4, actual 32727 (1.00x) (2)
Testing collisions (low 27-42 bits) - Worst is 38 bits: 558/511 (1.09x)

Testing AV variant, 128 count with 4 spacing, 4-12:
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 1116.2, actual 1129 (1.01x) (13)
Testing collisions (high 25-37 bits) - Worst is 37 bits: 39/34 (1.12x)
Testing collisions (low 32-bit) - Expected 1116.2, actual 1057 (0.95x)
Testing collisions (low 25-37 bits) - Worst is 25 bits: 138344/138605 (1.00x)

[[[ Diff 'Differential' Tests ]]]

Testing 8303632 up-to-5-bit differentials in 64-bit keys -> 64 bit hashes.
1000 reps, 8303632000 total tests, expecting 0.00 random collisions..........
0 total collisions, of which 0 single collisions were ignored

Testing 11017632 up-to-4-bit differentials in 128-bit keys -> 64 bit hashes.
1000 reps, 11017632000 total tests, expecting 0.00 random collisions..........
0 total collisions, of which 0 single collisions were ignored

Testing 2796416 up-to-3-bit differentials in 256-bit keys -> 64 bit hashes.
1000 reps, 2796416000 total tests, expecting 0.00 random collisions..........
0 total collisions, of which 0 single collisions were ignored

[[[ DiffDist 'Differential Distribution' Tests ]]]

Testing bit 0
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 549 (1.07x) (38)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 76/63 (1.19x)
Testing collisions (low 32-bit) - Expected 511.9, actual 536 (1.05x) (25)
Testing collisions (low 24-36 bits) - Worst is 31 bits: 1073/1023 (1.05x)
Testing distribution - Worst bias is the 18-bit window at bit 38 - 0.056%

Testing bit 1
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 554 (1.08x) (43)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 38/31 (1.19x)
Testing collisions (low 32-bit) - Expected 511.9, actual 511 (1.00x)
Testing collisions (low 24-36 bits) - Worst is 35 bits: 70/63 (1.09x)
Testing distribution - Worst bias is the 18-bit window at bit 17 - 0.093%

Testing bit 2
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 486 (0.95x)
Testing collisions (high 24-36 bits) - Worst is 34 bits: 136/127 (1.06x)
Testing collisions (low 32-bit) - Expected 511.9, actual 499 (0.97x)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 37/31 (1.16x)
Testing distribution - Worst bias is the 18-bit window at bit 61 - 0.061%

Testing bit 3
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 504 (0.98x) (-7)
Testing collisions (high 24-36 bits) - Worst is 33 bits: 261/255 (1.02x)
Testing collisions (low 32-bit) - Expected 511.9, actual 523 (1.02x) (12)
Testing collisions (low 24-36 bits) - Worst is 30 bits: 2146/2046 (1.05x)
Testing distribution - Worst bias is the 18-bit window at bit 59 - 0.078%

Testing bit 4
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 520 (1.02x) (9)
Testing collisions (high 24-36 bits) - Worst is 32 bits: 520/511 (1.02x)
Testing collisions (low 32-bit) - Expected 511.9, actual 534 (1.04x) (23)
Testing collisions (low 24-36 bits) - Worst is 35 bits: 67/63 (1.05x)
Testing distribution - Worst bias is the 18-bit window at bit 59 - 0.079%

Testing bit 5
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 485 (0.95x)
Testing collisions (high 24-36 bits) - Worst is 25 bits: 64156/64191 (1.00x)
Testing collisions (low 32-bit) - Expected 511.9, actual 497 (0.97x)
Testing collisions (low 24-36 bits) - Worst is 33 bits: 264/255 (1.03x)
Testing distribution - Worst bias is the 18-bit window at bit 45 - 0.075%

Testing bit 6
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 554 (1.08x) (43)
Testing collisions (high 24-36 bits) - Worst is 33 bits: 281/255 (1.10x)
Testing collisions (low 32-bit) - Expected 511.9, actual 492 (0.96x)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 33/31 (1.03x)
Testing distribution - Worst bias is the 18-bit window at bit 14 - 0.080%

Testing bit 7
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 543 (1.06x) (32)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 42/31 (1.31x)
Testing collisions (low 32-bit) - Expected 511.9, actual 503 (0.98x) (-8)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 37/31 (1.16x)
Testing distribution - Worst bias is the 18-bit window at bit 24 - 0.090%

Testing bit 8
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 509 (0.99x) (-2)
Testing collisions (high 24-36 bits) - Worst is 33 bits: 281/255 (1.10x)
Testing collisions (low 32-bit) - Expected 511.9, actual 508 (0.99x) (-3)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 34/31 (1.06x)
Testing distribution - Worst bias is the 17-bit window at bit 45 - 0.054%

Testing bit 9
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 545 (1.06x) (34)
Testing collisions (high 24-36 bits) - Worst is 31 bits: 1098/1023 (1.07x)
Testing collisions (low 32-bit) - Expected 511.9, actual 502 (0.98x) (-9)
Testing collisions (low 24-36 bits) - Worst is 34 bits: 133/127 (1.04x)
Testing distribution - Worst bias is the 18-bit window at bit 56 - 0.098%

Testing bit 10
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 524 (1.02x) (13)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 37/31 (1.16x)
Testing collisions (low 32-bit) - Expected 511.9, actual 514 (1.00x) (3)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 34/31 (1.06x)
Testing distribution - Worst bias is the 17-bit window at bit 26 - 0.086%

Testing bit 11
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 561 (1.10x) (50)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 38/31 (1.19x)
Testing collisions (low 32-bit) - Expected 511.9, actual 518 (1.01x) (7)
Testing collisions (low 24-36 bits) - Worst is 35 bits: 73/63 (1.14x)
Testing distribution - Worst bias is the 18-bit window at bit 27 - 0.079%

Testing bit 12
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 534 (1.04x) (23)
Testing collisions (high 24-36 bits) - Worst is 34 bits: 139/127 (1.09x)
Testing collisions (low 32-bit) - Expected 511.9, actual 483 (0.94x)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 39/31 (1.22x)
Testing distribution - Worst bias is the 18-bit window at bit 13 - 0.079%

Testing bit 13
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 498 (0.97x)
Testing collisions (high 24-36 bits) - Worst is 33 bits: 259/255 (1.01x)
Testing collisions (low 32-bit) - Expected 511.9, actual 503 (0.98x) (-8)
Testing collisions (low 24-36 bits) - Worst is 25 bits: 64492/64191 (1.00x)
Testing distribution - Worst bias is the 17-bit window at bit 21 - 0.071%

Testing bit 14
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 527 (1.03x) (16)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 38/31 (1.19x)
Testing collisions (low 32-bit) - Expected 511.9, actual 481 (0.94x)
Testing collisions (low 24-36 bits) - Worst is 31 bits: 1023/1023 (1.00x)
Testing distribution - Worst bias is the 18-bit window at bit 34 - 0.059%

Testing bit 15
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 557 (1.09x) (46)
Testing collisions (high 24-36 bits) - Worst is 34 bits: 140/127 (1.09x)
Testing collisions (low 32-bit) - Expected 511.9, actual 475 (0.93x)
Testing collisions (low 24-36 bits) - Worst is 34 bits: 130/127 (1.02x)
Testing distribution - Worst bias is the 18-bit window at bit 45 - 0.069%

Testing bit 16
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 493 (0.96x)
Testing collisions (high 24-36 bits) - Worst is 27 bits: 16502/16298 (1.01x)
Testing collisions (low 32-bit) - Expected 511.9, actual 496 (0.97x)
Testing collisions (low 24-36 bits) - Worst is 27 bits: 16562/16298 (1.02x)
Testing distribution - Worst bias is the 18-bit window at bit 18 - 0.079%

Testing bit 17
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 547 (1.07x) (36)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 70/63 (1.09x)
Testing collisions (low 32-bit) - Expected 511.9, actual 492 (0.96x)
Testing collisions (low 24-36 bits) - Worst is 30 bits: 2097/2046 (1.02x)
Testing distribution - Worst bias is the 18-bit window at bit 7 - 0.089%

Testing bit 18
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 498 (0.97x)
Testing collisions (high 24-36 bits) - Worst is 34 bits: 135/127 (1.05x)
Testing collisions (low 32-bit) - Expected 511.9, actual 541 (1.06x) (30)
Testing collisions (low 24-36 bits) - Worst is 32 bits: 541/511 (1.06x)
Testing distribution - Worst bias is the 18-bit window at bit 41 - 0.063%

Testing bit 19
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 520 (1.02x) (9)
Testing collisions (high 24-36 bits) - Worst is 34 bits: 137/127 (1.07x)
Testing collisions (low 32-bit) - Expected 511.9, actual 487 (0.95x)
Testing collisions (low 24-36 bits) - Worst is 35 bits: 75/63 (1.17x)
Testing distribution - Worst bias is the 18-bit window at bit 7 - 0.090%

Testing bit 20
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 569 (1.11x) (58)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 79/63 (1.23x)
Testing collisions (low 32-bit) - Expected 511.9, actual 528 (1.03x) (17)
Testing collisions (low 24-36 bits) - Worst is 33 bits: 284/255 (1.11x)
Testing distribution - Worst bias is the 18-bit window at bit 15 - 0.085%

Testing bit 21
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 479 (0.94x)
Testing collisions (high 24-36 bits) - Worst is 34 bits: 131/127 (1.02x)
Testing collisions (low 32-bit) - Expected 511.9, actual 480 (0.94x)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 35/31 (1.09x)
Testing distribution - Worst bias is the 18-bit window at bit 50 - 0.104%

Testing bit 22
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 527 (1.03x) (16)
Testing collisions (high 24-36 bits) - Worst is 32 bits: 527/511 (1.03x)
Testing collisions (low 32-bit) - Expected 511.9, actual 484 (0.95x)
Testing collisions (low 24-36 bits) - Worst is 30 bits: 2112/2046 (1.03x)
Testing distribution - Worst bias is the 18-bit window at bit 8 - 0.086%

Testing bit 23
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 519 (1.01x) (8)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 65/63 (1.02x)
Testing collisions (low 32-bit) - Expected 511.9, actual 511 (1.00x)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 42/31 (1.31x)
Testing distribution - Worst bias is the 18-bit window at bit 58 - 0.062%

Testing bit 24
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 478 (0.93x)
Testing collisions (high 24-36 bits) - Worst is 25 bits: 64258/64191 (1.00x)
Testing collisions (low 32-bit) - Expected 511.9, actual 456 (0.89x)
Testing collisions (low 24-36 bits) - Worst is 26 bits: 32590/32429 (1.00x)
Testing distribution - Worst bias is the 18-bit window at bit 60 - 0.095%

Testing bit 25
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 520 (1.02x) (9)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 36/31 (1.13x)
Testing collisions (low 32-bit) - Expected 511.9, actual 506 (0.99x) (-5)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 34/31 (1.06x)
Testing distribution - Worst bias is the 18-bit window at bit 26 - 0.070%

Testing bit 26
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 519 (1.01x) (8)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 72/63 (1.13x)
Testing collisions (low 32-bit) - Expected 511.9, actual 513 (1.00x) (2)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 37/31 (1.16x)
Testing distribution - Worst bias is the 18-bit window at bit 27 - 0.070%

Testing bit 27
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 513 (1.00x) (2)
Testing collisions (high 24-36 bits) - Worst is 30 bits: 2091/2046 (1.02x)
Testing collisions (low 32-bit) - Expected 511.9, actual 531 (1.04x) (20)
Testing collisions (low 24-36 bits) - Worst is 35 bits: 68/63 (1.06x)
Testing distribution - Worst bias is the 18-bit window at bit 51 - 0.096%

Testing bit 28
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 515 (1.01x) (4)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 70/63 (1.09x)
Testing collisions (low 32-bit) - Expected 511.9, actual 540 (1.05x) (29)
Testing collisions (low 24-36 bits) - Worst is 33 bits: 285/255 (1.11x)
Testing distribution - Worst bias is the 18-bit window at bit 33 - 0.059%

Testing bit 29
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 539 (1.05x) (28)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 73/63 (1.14x)
Testing collisions (low 32-bit) - Expected 511.9, actual 547 (1.07x) (36)
Testing collisions (low 24-36 bits) - Worst is 35 bits: 76/63 (1.19x)
Testing distribution - Worst bias is the 18-bit window at bit 39 - 0.074%

Testing bit 30
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 537 (1.05x) (26)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 36/31 (1.13x)
Testing collisions (low 32-bit) - Expected 511.9, actual 539 (1.05x) (28)
Testing collisions (low 24-36 bits) - Worst is 31 bits: 1091/1023 (1.07x)
Testing distribution - Worst bias is the 18-bit window at bit 9 - 0.064%

Testing bit 31
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 495 (0.97x)
Testing collisions (high 24-36 bits) - Worst is 27 bits: 16332/16298 (1.00x)
Testing collisions (low 32-bit) - Expected 511.9, actual 509 (0.99x) (-2)
Testing collisions (low 24-36 bits) - Worst is 33 bits: 267/255 (1.04x)
Testing distribution - Worst bias is the 16-bit window at bit 34 - 0.058%

Testing bit 32
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 539 (1.05x) (28)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 72/63 (1.13x)
Testing collisions (low 32-bit) - Expected 511.9, actual 462 (0.90x)
Testing collisions (low 24-36 bits) - Worst is 31 bits: 1026/1023 (1.00x)
Testing distribution - Worst bias is the 18-bit window at bit 56 - 0.077%

Testing bit 33
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 519 (1.01x) (8)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 42/31 (1.31x)
Testing collisions (low 32-bit) - Expected 511.9, actual 526 (1.03x) (15)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 46/31 (1.44x)
Testing distribution - Worst bias is the 17-bit window at bit 19 - 0.061%

Testing bit 34
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 510 (1.00x) (-1)
Testing collisions (high 24-36 bits) - Worst is 30 bits: 2063/2046 (1.01x)
Testing collisions (low 32-bit) - Expected 511.9, actual 472 (0.92x)
Testing collisions (low 24-36 bits) - Worst is 27 bits: 16324/16298 (1.00x)
Testing distribution - Worst bias is the 18-bit window at bit 58 - 0.114%

Testing bit 35
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 511 (1.00x)
Testing collisions (high 24-36 bits) - Worst is 31 bits: 1055/1023 (1.03x)
Testing collisions (low 32-bit) - Expected 511.9, actual 523 (1.02x) (12)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 36/31 (1.13x)
Testing distribution - Worst bias is the 18-bit window at bit 47 - 0.069%

Testing bit 36
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 506 (0.99x) (-5)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 69/63 (1.08x)
Testing collisions (low 32-bit) - Expected 511.9, actual 492 (0.96x)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 39/31 (1.22x)
Testing distribution - Worst bias is the 18-bit window at bit 45 - 0.081%

Testing bit 37
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 490 (0.96x)
Testing collisions (high 24-36 bits) - Worst is 24 bits: 125424/125777 (1.00x)
Testing collisions (low 32-bit) - Expected 511.9, actual 545 (1.06x) (34)
Testing collisions (low 24-36 bits) - Worst is 32 bits: 545/511 (1.06x)
Testing distribution - Worst bias is the 18-bit window at bit 51 - 0.089%

Testing bit 38
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 489 (0.96x)
Testing collisions (high 24-36 bits) - Worst is 28 bits: 8297/8170 (1.02x)
Testing collisions (low 32-bit) - Expected 511.9, actual 510 (1.00x) (-1)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 38/31 (1.19x)
Testing distribution - Worst bias is the 18-bit window at bit 58 - 0.059%

Testing bit 39
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 475 (0.93x)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 67/63 (1.05x)
Testing collisions (low 32-bit) - Expected 511.9, actual 437 (0.85x)
Testing collisions (low 24-36 bits) - Worst is 24 bits: 125660/125777 (1.00x)
Testing distribution - Worst bias is the 18-bit window at bit 52 - 0.080%

Testing bit 40
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 516 (1.01x) (5)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 37/31 (1.16x)
Testing collisions (low 32-bit) - Expected 511.9, actual 509 (0.99x) (-2)
Testing collisions (low 24-36 bits) - Worst is 34 bits: 157/127 (1.23x)
Testing distribution - Worst bias is the 18-bit window at bit 11 - 0.075%

Testing bit 41
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 503 (0.98x) (-8)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 38/31 (1.19x)
Testing collisions (low 32-bit) - Expected 511.9, actual 541 (1.06x) (30)
Testing collisions (low 24-36 bits) - Worst is 34 bits: 140/127 (1.09x)
Testing distribution - Worst bias is the 17-bit window at bit 9 - 0.046%

Testing bit 42
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 543 (1.06x) (32)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 39/31 (1.22x)
Testing collisions (low 32-bit) - Expected 511.9, actual 510 (1.00x) (-1)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 45/31 (1.41x)
Testing distribution - Worst bias is the 18-bit window at bit 39 - 0.097%

Testing bit 43
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 502 (0.98x) (-9)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 69/63 (1.08x)
Testing collisions (low 32-bit) - Expected 511.9, actual 505 (0.99x) (-6)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 33/31 (1.03x)
Testing distribution - Worst bias is the 18-bit window at bit 57 - 0.090%

Testing bit 44
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 539 (1.05x) (28)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 69/63 (1.08x)
Testing collisions (low 32-bit) - Expected 511.9, actual 511 (1.00x)
Testing collisions (low 24-36 bits) - Worst is 34 bits: 132/127 (1.03x)
Testing distribution - Worst bias is the 18-bit window at bit 52 - 0.052%

Testing bit 45
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 483 (0.94x)
Testing collisions (high 24-36 bits) - Worst is 24 bits: 125791/125777 (1.00x)
Testing collisions (low 32-bit) - Expected 511.9, actual 515 (1.01x) (4)
Testing collisions (low 24-36 bits) - Worst is 34 bits: 136/127 (1.06x)
Testing distribution - Worst bias is the 18-bit window at bit 28 - 0.090%

Testing bit 46
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 526 (1.03x) (15)
Testing collisions (high 24-36 bits) - Worst is 31 bits: 1054/1023 (1.03x)
Testing collisions (low 32-bit) - Expected 511.9, actual 546 (1.07x) (35)
Testing collisions (low 24-36 bits) - Worst is 34 bits: 138/127 (1.08x)
Testing distribution - Worst bias is the 18-bit window at bit 29 - 0.065%

Testing bit 47
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 503 (0.98x) (-8)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 36/31 (1.13x)
Testing collisions (low 32-bit) - Expected 511.9, actual 532 (1.04x) (21)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 34/31 (1.06x)
Testing distribution - Worst bias is the 18-bit window at bit 7 - 0.100%

Testing bit 48
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 540 (1.05x) (29)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 39/31 (1.22x)
Testing collisions (low 32-bit) - Expected 511.9, actual 515 (1.01x) (4)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 33/31 (1.03x)
Testing distribution - Worst bias is the 18-bit window at bit 60 - 0.095%

Testing bit 49
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 526 (1.03x) (15)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 34/31 (1.06x)
Testing collisions (low 32-bit) - Expected 511.9, actual 526 (1.03x) (15)
Testing collisions (low 24-36 bits) - Worst is 34 bits: 142/127 (1.11x)
Testing distribution - Worst bias is the 18-bit window at bit 52 - 0.072%

Testing bit 50
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 540 (1.05x) (29)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 35/31 (1.09x)
Testing collisions (low 32-bit) - Expected 511.9, actual 530 (1.04x) (19)
Testing collisions (low 24-36 bits) - Worst is 35 bits: 72/63 (1.13x)
Testing distribution - Worst bias is the 18-bit window at bit 37 - 0.074%

Testing bit 51
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 522 (1.02x) (11)
Testing collisions (high 24-36 bits) - Worst is 31 bits: 1114/1023 (1.09x)
Testing collisions (low 32-bit) - Expected 511.9, actual 506 (0.99x) (-5)
Testing collisions (low 24-36 bits) - Worst is 35 bits: 70/63 (1.09x)
Testing distribution - Worst bias is the 18-bit window at bit 23 - 0.092%

Testing bit 52
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 566 (1.11x) (55)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 37/31 (1.16x)
Testing collisions (low 32-bit) - Expected 511.9, actual 454 (0.89x)
Testing collisions (low 24-36 bits) - Worst is 24 bits: 125862/125777 (1.00x)
Testing distribution - Worst bias is the 18-bit window at bit 33 - 0.092%

Testing bit 53
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 479 (0.94x)
Testing collisions (high 24-36 bits) - Worst is 28 bits: 8282/8170 (1.01x)
Testing collisions (low 32-bit) - Expected 511.9, actual 502 (0.98x) (-9)
Testing collisions (low 24-36 bits) - Worst is 33 bits: 260/255 (1.02x)
Testing distribution - Worst bias is the 18-bit window at bit 20 - 0.109%

Testing bit 54
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 483 (0.94x)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 66/63 (1.03x)
Testing collisions (low 32-bit) - Expected 511.9, actual 563 (1.10x) (52)
Testing collisions (low 24-36 bits) - Worst is 35 bits: 87/63 (1.36x)
Testing distribution - Worst bias is the 18-bit window at bit 50 - 0.061%

Testing bit 55
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 521 (1.02x) (10)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 39/31 (1.22x)
Testing collisions (low 32-bit) - Expected 511.9, actual 557 (1.09x) (46)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 39/31 (1.22x)
Testing distribution - Worst bias is the 18-bit window at bit 31 - 0.089%

Testing bit 56
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 496 (0.97x)
Testing collisions (high 24-36 bits) - Worst is 33 bits: 257/255 (1.00x)
Testing collisions (low 32-bit) - Expected 511.9, actual 513 (1.00x) (2)
Testing collisions (low 24-36 bits) - Worst is 34 bits: 136/127 (1.06x)
Testing distribution - Worst bias is the 18-bit window at bit 6 - 0.082%

Testing bit 57
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 526 (1.03x) (15)
Testing collisions (high 24-36 bits) - Worst is 34 bits: 151/127 (1.18x)
Testing collisions (low 32-bit) - Expected 511.9, actual 497 (0.97x)
Testing collisions (low 24-36 bits) - Worst is 35 bits: 75/63 (1.17x)
Testing distribution - Worst bias is the 18-bit window at bit 5 - 0.075%

Testing bit 58
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 511 (1.00x)
Testing collisions (high 24-36 bits) - Worst is 34 bits: 135/127 (1.05x)
Testing collisions (low 32-bit) - Expected 511.9, actual 532 (1.04x) (21)
Testing collisions (low 24-36 bits) - Worst is 34 bits: 136/127 (1.06x)
Testing distribution - Worst bias is the 18-bit window at bit 16 - 0.090%

Testing bit 59
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 523 (1.02x) (12)
Testing collisions (high 24-36 bits) - Worst is 35 bits: 66/63 (1.03x)
Testing collisions (low 32-bit) - Expected 511.9, actual 520 (1.02x) (9)
Testing collisions (low 24-36 bits) - Worst is 35 bits: 76/63 (1.19x)
Testing distribution - Worst bias is the 18-bit window at bit 42 - 0.121%

Testing bit 60
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 531 (1.04x) (20)
Testing collisions (high 24-36 bits) - Worst is 32 bits: 531/511 (1.04x)
Testing collisions (low 32-bit) - Expected 511.9, actual 508 (0.99x) (-3)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 46/31 (1.44x)
Testing distribution - Worst bias is the 18-bit window at bit 57 - 0.071%

Testing bit 61
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 498 (0.97x)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 36/31 (1.13x)
Testing collisions (low 32-bit) - Expected 511.9, actual 503 (0.98x) (-8)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 36/31 (1.13x)
Testing distribution - Worst bias is the 17-bit window at bit 17 - 0.059%

Testing bit 62
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 546 (1.07x) (35)
Testing collisions (high 24-36 bits) - Worst is 32 bits: 546/511 (1.07x)
Testing collisions (low 32-bit) - Expected 511.9, actual 495 (0.97x)
Testing collisions (low 24-36 bits) - Worst is 35 bits: 67/63 (1.05x)
Testing distribution - Worst bias is the 18-bit window at bit 9 - 0.069%

Testing bit 63
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 511.9, actual 522 (1.02x) (11)
Testing collisions (high 24-36 bits) - Worst is 36 bits: 37/31 (1.16x)
Testing collisions (low 32-bit) - Expected 511.9, actual 543 (1.06x) (32)
Testing collisions (low 24-36 bits) - Worst is 36 bits: 34/31 (1.06x)
Testing distribution - Worst bias is the 18-bit window at bit 50 - 0.065%

[[[ MomentChi2 Tests ]]]

Analyze hashes produced from a serie of linearly increasing numbers of 32-bit, using a step of 2 ...
Target values to approximate : 38918200.000000 - 273633.333333
4 threads starting... done
Popcount 1 stats : 38919240.451702 - 273642.916919
Popcount 0 stats : 38918429.028465 - 273637.712739
MomentChi2 for bits 1 : 1.97805
MomentChi2 for bits 0 : 0.0958465

Derivative stats (transition from 2 consecutive values) :
Popcount 1 stats : 38919184.877156 - 273631.232797
Popcount 0 stats : 38918519.690766 - 273648.701888
MomentChi2 for deriv b1 : 1.77242
MomentChi2 for deriv b0 : 0.186745

Great

[[[ Prng Tests ]]]

Generating 33554432 random numbers :
Testing collisions ( 64-bit) - Expected 0.0, actual 0 (0.00x)
Testing collisions (high 32-bit) - Expected 130731.3, actual 131247 (1.00x) (516)
Testing collisions (high 28-44 bits) - Worst is 43 bits: 67/63 (1.05x)
Testing collisions (low 32-bit) - Expected 130731.3, actual 130680 (1.00x) (-51)
Testing collisions (low 28-44 bits) - Worst is 36 bits: 8257/8190 (1.01x)

[[[ BadSeeds Tests ]]]

Testing 3 internal secrets:
0x14cc886e 0x1bf4ed84 PASS

Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
Verification value is 0x00000001 - Testing took 532.010122 seconds

@dumblob
Copy link

dumblob commented Nov 2, 2022

Thanks @wangyi-fudan - will take a look!

@rurban
Copy link
Owner

rurban commented Nov 2, 2022

Great. Just a minor and rare problem, but easy to fix. I"ll update it.

@rurban rurban self-assigned this Nov 2, 2022
@wangyi-fudan
Copy link
Contributor Author

I didn't notice the --extra BadSeeds test. Now a newer version completely solved the BadSeed problem. The testing is running a long time without bad seed report, somewhat too long to finish

@rurban
Copy link
Owner

rurban commented Nov 3, 2022

You need a better machine with more threads :) my ryzen 7 runs it in a few minutes
I updated it and sent you a PR

@rurban rurban closed this as completed Nov 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants