-------------------------------------------------------------------------------
--- Testing wyhash32 "wyhash v4.2 (32-bit native)" GOOD

[[[ Sanity Tests ]]]

Verification value 0x09DE8066 ....... PASS
Running sanity check 1     .......... PASS
Running AppendedZeroesTest .......... PASS

[[[ Speed Tests ]]]

Bulk speed test - 262144-byte keys
Alignment  7 -  0.652 bytes/cycle - 1865.04 MiB/sec @ 3 ghz
Alignment  6 -  0.652 bytes/cycle - 1864.97 MiB/sec @ 3 ghz
Alignment  5 -  0.652 bytes/cycle - 1863.99 MiB/sec @ 3 ghz
Alignment  4 -  0.651 bytes/cycle - 1863.89 MiB/sec @ 3 ghz
Alignment  3 -  0.652 bytes/cycle - 1864.72 MiB/sec @ 3 ghz
Alignment  2 -  0.652 bytes/cycle - 1865.19 MiB/sec @ 3 ghz
Alignment  1 -  0.652 bytes/cycle - 1864.86 MiB/sec @ 3 ghz
Alignment  0 -  0.651 bytes/cycle - 1863.00 MiB/sec @ 3 ghz
Average      -  0.652 bytes/cycle - 1864.46 MiB/sec @ 3 ghz

Small key speed test -    1-byte keys -    42.00 cycles/hash
Small key speed test -    2-byte keys -    42.00 cycles/hash
Small key speed test -    3-byte keys -    42.00 cycles/hash
Small key speed test -    4-byte keys -    43.00 cycles/hash
Small key speed test -    5-byte keys -    43.00 cycles/hash
Small key speed test -    6-byte keys -    43.00 cycles/hash
Small key speed test -    7-byte keys -    43.00 cycles/hash
Small key speed test -    8-byte keys -    43.00 cycles/hash
Small key speed test -    9-byte keys -    55.99 cycles/hash
Small key speed test -   10-byte keys -    56.00 cycles/hash
Small key speed test -   11-byte keys -    56.00 cycles/hash
Small key speed test -   12-byte keys -    61.90 cycles/hash
Small key speed test -   13-byte keys -    61.92 cycles/hash
Small key speed test -   14-byte keys -    61.91 cycles/hash
Small key speed test -   15-byte keys -    61.93 cycles/hash
Small key speed test -   16-byte keys -    61.94 cycles/hash
Small key speed test -   17-byte keys -    68.00 cycles/hash
Small key speed test -   18-byte keys -    68.00 cycles/hash
Small key speed test -   19-byte keys -    68.00 cycles/hash
Small key speed test -   20-byte keys -    74.00 cycles/hash
Small key speed test -   21-byte keys -    74.00 cycles/hash
Small key speed test -   22-byte keys -    74.00 cycles/hash
Small key speed test -   23-byte keys -    74.00 cycles/hash
Small key speed test -   24-byte keys -    74.80 cycles/hash
Small key speed test -   25-byte keys -    80.00 cycles/hash
Small key speed test -   26-byte keys -    80.00 cycles/hash
Small key speed test -   27-byte keys -    80.00 cycles/hash
Small key speed test -   28-byte keys -    86.49 cycles/hash
Small key speed test -   29-byte keys -    86.09 cycles/hash
Small key speed test -   30-byte keys -    86.30 cycles/hash
Small key speed test -   31-byte keys -    86.25 cycles/hash
Average                                    63.823 cycles/hash

[[[ 'Hashmap' Speed Tests ]]]

std::unordered_map
Init std HashMapTest:     665.891 cycles/op (104334 inserts, 1% deletions)
Running std HashMapTest:  298.668 cycles/op (5.1 stdv)

greg7mdp/parallel-hashmap
Init fast HashMapTest:    319.793 cycles/op (104334 inserts, 1% deletions)
Running fast HashMapTest: 206.871 cycles/op (5.1 stdv)  ....... PASS

[[[ Avalanche Tests ]]]

Testing   24-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.612000%
Testing   32-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.557333%
Testing   40-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.584667%
Testing   48-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.650667%
Testing   56-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.645333%
Testing   64-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.617333%
Testing   72-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.813333%
Testing   80-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.732000%
Testing   96-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.789333%
Testing  112-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.718667%
Testing  128-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.668000%
Testing  160-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.774667%
Testing  512-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.759333%
Testing 1024-bit keys ->  32-bit hashes, 300000 reps.......... worst bias is 0.772667%

[[[ Keyset 'Sparse' Tests ]]]

Keyset 'Sparse' - 16-bit keys with up to 9 bits set - 50643 keys
Testing collisions ( 32-bit) - Expected    0.3, actual      0 (0.00x)
Testing collisions (high 19-25 bits) - Worst is 25 bits: 41/38 (1.07x)
Testing collisions (low  19-25 bits) - Worst is 19 bits: 2338/2368 (0.99x)
Testing distribution - Worst bias is the 13-bit window at bit 18 - 0.322%

Keyset 'Sparse' - 24-bit keys with up to 8 bits set - 1271626 keys
Testing collisions ( 32-bit) - Expected  188.2, actual    191 (1.01x) (3)
Testing distribution - Worst bias is the 17-bit window at bit  4 - 0.096%

Keyset 'Sparse' - 32-bit keys with up to 7 bits set - 4514873 keys
Testing collisions ( 32-bit) - Expected 2372.2, actual   4052 (1.71x) (1680)
Testing distribution - Worst bias is the 19-bit window at bit  0 - 0.040%

Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys
Testing collisions ( 32-bit) - Expected 2460.8, actual   2562 (1.04x) (102)
Testing distribution - Worst bias is the 19-bit window at bit 16 - 0.036%

Keyset 'Sparse' - 48-bit keys with up to 6 bits set - 14196869 keys
Testing collisions ( 32-bit) - Expected 23437.8, actual  23537 (1.00x) (100)
Testing distribution - Worst bias is the 20-bit window at bit 14 - 0.024%

Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys
Testing collisions ( 32-bit) - Expected 2069.0, actual   2111 (1.02x) (43)
Testing distribution - Worst bias is the 18-bit window at bit 15 - 0.037%

Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys
Testing collisions ( 32-bit) - Expected 8021.7, actual   7998 (1.00x) (-23)
Testing distribution - Worst bias is the 19-bit window at bit 16 - 0.035%

Keyset 'Sparse' - 72-bit keys with up to 5 bits set - 15082603 keys
Testing collisions ( 32-bit) - Expected 26451.8, actual  26354 (1.00x) (-97)
Testing distribution - Worst bias is the 20-bit window at bit 15 - 0.020%

Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys
Testing collisions ( 32-bit) - Expected 1401.0, actual   1415 (1.01x) (15)
Testing distribution - Worst bias is the 19-bit window at bit 25 - 0.089%

Keyset 'Sparse' - 160-bit keys with up to 4 bits set - 26977161 keys
Testing collisions ( 32-bit) - Expected 84546.1, actual  84649 (1.00x) (103)
Testing distribution - Worst bias is the 20-bit window at bit 22 - 0.007%

Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys
Testing collisions ( 32-bit) - Expected  910.2, actual    924 (1.02x) (14)
Testing distribution - Worst bias is the 19-bit window at bit 19 - 0.080%

Keyset 'Sparse' - 512-bit keys with up to 3 bits set - 22370049 keys
Testing collisions ( 32-bit) - Expected 58155.4, actual  58376 (1.00x) (221)
Testing distribution - Worst bias is the 20-bit window at bit  3 - 0.017%

Keyset 'Sparse' - 1024-bit keys with up to 2 bits set - 524801 keys
Testing collisions ( 32-bit) - Expected   32.1, actual     31 (0.97x)
Testing distribution - Worst bias is the 16-bit window at bit 18 - 0.131%

Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys
Testing collisions ( 32-bit) - Expected  512.4, actual    485 (0.95x)
Testing distribution - Worst bias is the 18-bit window at bit  8 - 0.078%


[[[ Keyset 'Permutation' Tests ]]]

Combination Lowbits Tests:
Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys
Testing collisions ( 32-bit) - Expected  668.6, actual    704 (1.05x) (36)
Testing distribution - Worst bias is the 18-bit window at bit 21 - 0.048%


Combination Highbits Tests
Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys
Testing collisions ( 32-bit) - Expected  668.6, actual    699 (1.05x) (31)
Testing distribution - Worst bias is the 18-bit window at bit 30 - 0.058%


Combination Hi-Lo Tests:
Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys
Testing collisions ( 32-bit) - Expected 17322.9, actual  17196 (0.99x) (-126)
Testing distribution - Worst bias is the 20-bit window at bit  8 - 0.021%


Combination 0x8000000 Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 32-bit) - Expected 8186.7, actual   8225 (1.00x) (39)
Testing distribution - Worst bias is the 20-bit window at bit 28 - 0.024%


Combination 0x0000001 Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 32-bit) - Expected 8186.7, actual   8246 (1.01x) (60)
Testing distribution - Worst bias is the 20-bit window at bit 22 - 0.037%


Combination 0x800000000000000 Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 32-bit) - Expected 8186.7, actual   8306 (1.01x) (120)
Testing distribution - Worst bias is the 20-bit window at bit 21 - 0.036%


Combination 0x000000000000001 Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 32-bit) - Expected 8186.7, actual   8189 (1.00x) (3)
Testing distribution - Worst bias is the 20-bit window at bit 23 - 0.025%


Combination 16-bytes [0-1] Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 32-bit) - Expected 8186.7, actual   8155 (1.00x) (-31)
Testing distribution - Worst bias is the 20-bit window at bit 13 - 0.039%


Combination 16-bytes [0-last] Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 32-bit) - Expected 8186.7, actual   8246 (1.01x) (60)
Testing distribution - Worst bias is the 20-bit window at bit 23 - 0.035%


Combination 32-bytes [0-1] Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 32-bit) - Expected 8186.7, actual   8069 (0.99x) (-117)
Testing distribution - Worst bias is the 20-bit window at bit  9 - 0.047%


Combination 32-bytes [0-last] Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 32-bit) - Expected 8186.7, actual   8219 (1.00x) (33)
Testing distribution - Worst bias is the 20-bit window at bit 15 - 0.052%


Combination 64-bytes [0-1] Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 32-bit) - Expected 8186.7, actual   8331 (1.02x) (145)
Testing distribution - Worst bias is the 20-bit window at bit 14 - 0.042%


Combination 64-bytes [0-last] Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 32-bit) - Expected 8186.7, actual   8325 (1.02x) (139)
Testing distribution - Worst bias is the 20-bit window at bit 20 - 0.031%


Combination 128-bytes [0-1] Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 32-bit) - Expected 8186.7, actual   8153 (1.00x) (-33)
Testing distribution - Worst bias is the 20-bit window at bit 14 - 0.034%


Combination 128-bytes [0-last] Tests:
Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys
Testing collisions ( 32-bit) - Expected 8186.7, actual   8345 (1.02x) (159)
Testing distribution - Worst bias is the 20-bit window at bit 25 - 0.032%


[[[ Keyset 'Window' Tests ]]]

Keyset 'Window' -  72-bit key,  20-bit window - 72 tests, 1048576 keys per test
Window at   0 - Testing collisions ( 32-bit) - Expected  128.0, actual    141 (1.10x) (14)
Window at   1 - Testing collisions ( 32-bit) - Expected  128.0, actual    140 (1.09x) (13)
Window at   2 - Testing collisions ( 32-bit) - Expected  128.0, actual    143 (1.12x) (16)
Window at   3 - Testing collisions ( 32-bit) - Expected  128.0, actual    138 (1.08x) (11)
Window at   4 - Testing collisions ( 32-bit) - Expected  128.0, actual    138 (1.08x) (11)
Window at   5 - Testing collisions ( 32-bit) - Expected  128.0, actual    117 (0.91x)
Window at   6 - Testing collisions ( 32-bit) - Expected  128.0, actual    122 (0.95x)
Window at   7 - Testing collisions ( 32-bit) - Expected  128.0, actual    130 (1.02x) (3)
Window at   8 - Testing collisions ( 32-bit) - Expected  128.0, actual    144 (1.13x) (17)
Window at   9 - Testing collisions ( 32-bit) - Expected  128.0, actual    113 (0.88x)
Window at  10 - Testing collisions ( 32-bit) - Expected  128.0, actual    132 (1.03x) (5)
Window at  11 - Testing collisions ( 32-bit) - Expected  128.0, actual    135 (1.05x) (8)
Window at  12 - Testing collisions ( 32-bit) - Expected  128.0, actual    129 (1.01x) (2)
Window at  13 - Testing collisions ( 32-bit) - Expected  128.0, actual    127 (0.99x)
Window at  14 - Testing collisions ( 32-bit) - Expected  128.0, actual    112 (0.88x)
Window at  15 - Testing collisions ( 32-bit) - Expected  128.0, actual    108 (0.84x)
Window at  16 - Testing collisions ( 32-bit) - Expected  128.0, actual    139 (1.09x) (12)
Window at  17 - Testing collisions ( 32-bit) - Expected  128.0, actual    120 (0.94x)
Window at  18 - Testing collisions ( 32-bit) - Expected  128.0, actual    135 (1.05x) (8)
Window at  19 - Testing collisions ( 32-bit) - Expected  128.0, actual    118 (0.92x)
Window at  20 - Testing collisions ( 32-bit) - Expected  128.0, actual    132 (1.03x) (5)
Window at  21 - Testing collisions ( 32-bit) - Expected  128.0, actual    119 (0.93x)
Window at  22 - Testing collisions ( 32-bit) - Expected  128.0, actual    112 (0.88x)
Window at  23 - Testing collisions ( 32-bit) - Expected  128.0, actual    110 (0.86x)
Window at  24 - Testing collisions ( 32-bit) - Expected  128.0, actual    118 (0.92x)
Window at  25 - Testing collisions ( 32-bit) - Expected  128.0, actual    113 (0.88x)
Window at  26 - Testing collisions ( 32-bit) - Expected  128.0, actual    106 (0.83x)
Window at  27 - Testing collisions ( 32-bit) - Expected  128.0, actual    145 (1.13x) (18)
Window at  28 - Testing collisions ( 32-bit) - Expected  128.0, actual    119 (0.93x)
Window at  29 - Testing collisions ( 32-bit) - Expected  128.0, actual    132 (1.03x) (5)
Window at  30 - Testing collisions ( 32-bit) - Expected  128.0, actual     99 (0.77x)
Window at  31 - Testing collisions ( 32-bit) - Expected  128.0, actual    120 (0.94x)
Window at  32 - Testing collisions ( 32-bit) - Expected  128.0, actual    123 (0.96x)
Window at  33 - Testing collisions ( 32-bit) - Expected  128.0, actual    130 (1.02x) (3)
Window at  34 - Testing collisions ( 32-bit) - Expected  128.0, actual    128 (1.00x) (1)
Window at  35 - Testing collisions ( 32-bit) - Expected  128.0, actual    141 (1.10x) (14)
Window at  36 - Testing collisions ( 32-bit) - Expected  128.0, actual    112 (0.88x)
Window at  37 - Testing collisions ( 32-bit) - Expected  128.0, actual    114 (0.89x)
Window at  38 - Testing collisions ( 32-bit) - Expected  128.0, actual    145 (1.13x) (18)
Window at  39 - Testing collisions ( 32-bit) - Expected  128.0, actual    123 (0.96x)
Window at  40 - Testing collisions ( 32-bit) - Expected  128.0, actual    126 (0.98x) (-1)
Window at  41 - Testing collisions ( 32-bit) - Expected  128.0, actual    133 (1.04x) (6)
Window at  42 - Testing collisions ( 32-bit) - Expected  128.0, actual    140 (1.09x) (13)
Window at  43 - Testing collisions ( 32-bit) - Expected  128.0, actual    120 (0.94x)
Window at  44 - Testing collisions ( 32-bit) - Expected  128.0, actual    127 (0.99x)
Window at  45 - Testing collisions ( 32-bit) - Expected  128.0, actual    140 (1.09x) (13)
Window at  46 - Testing collisions ( 32-bit) - Expected  128.0, actual    132 (1.03x) (5)
Window at  47 - Testing collisions ( 32-bit) - Expected  128.0, actual    127 (0.99x)
Window at  48 - Testing collisions ( 32-bit) - Expected  128.0, actual    109 (0.85x)
Window at  49 - Testing collisions ( 32-bit) - Expected  128.0, actual    126 (0.98x) (-1)
Window at  50 - Testing collisions ( 32-bit) - Expected  128.0, actual    136 (1.06x) (9)
Window at  51 - Testing collisions ( 32-bit) - Expected  128.0, actual    135 (1.05x) (8)
Window at  52 - Testing collisions ( 32-bit) - Expected  128.0, actual    138 (1.08x) (11)
Window at  53 - Testing collisions ( 32-bit) - Expected  128.0, actual    130 (1.02x) (3)
Window at  54 - Testing collisions ( 32-bit) - Expected  128.0, actual    145 (1.13x) (18)
Window at  55 - Testing collisions ( 32-bit) - Expected  128.0, actual    125 (0.98x)
Window at  56 - Testing collisions ( 32-bit) - Expected  128.0, actual    132 (1.03x) (5)
Window at  57 - Testing collisions ( 32-bit) - Expected  128.0, actual    137 (1.07x) (10)
Window at  58 - Testing collisions ( 32-bit) - Expected  128.0, actual    136 (1.06x) (9)
Window at  59 - Testing collisions ( 32-bit) - Expected  128.0, actual    130 (1.02x) (3)
Window at  60 - Testing collisions ( 32-bit) - Expected  128.0, actual    119 (0.93x)
Window at  61 - Testing collisions ( 32-bit) - Expected  128.0, actual    127 (0.99x)
Window at  62 - Testing collisions ( 32-bit) - Expected  128.0, actual    115 (0.90x)
Window at  63 - Testing collisions ( 32-bit) - Expected  128.0, actual    124 (0.97x)
Window at  64 - Testing collisions ( 32-bit) - Expected  128.0, actual    139 (1.09x) (12)
Window at  65 - Testing collisions ( 32-bit) - Expected  128.0, actual    134 (1.05x) (7)
Window at  66 - Testing collisions ( 32-bit) - Expected  128.0, actual    123 (0.96x)
Window at  67 - Testing collisions ( 32-bit) - Expected  128.0, actual    122 (0.95x)
Window at  68 - Testing collisions ( 32-bit) - Expected  128.0, actual    127 (0.99x)
Window at  69 - Testing collisions ( 32-bit) - Expected  128.0, actual    123 (0.96x)
Window at  70 - Testing collisions ( 32-bit) - Expected  128.0, actual    115 (0.90x)
Window at  71 - Testing collisions ( 32-bit) - Expected  128.0, actual    157 (1.23x) (30)
Window at  72 - Testing collisions ( 32-bit) - Expected  128.0, actual    141 (1.10x) (14)

[[[ Keyset 'Cyclic' Tests ]]]

Keyset 'Cyclic' - 8 cycles of 4 bytes - 1000000 keys
Testing collisions ( 32-bit) - Expected  116.4, actual    110 (0.94x)
Testing distribution - Worst bias is the 17-bit window at bit 16 - 0.084%

Keyset 'Cyclic' - 8 cycles of 5 bytes - 1000000 keys
Testing collisions ( 32-bit) - Expected  116.4, actual    126 (1.08x) (10)
Testing distribution - Worst bias is the 17-bit window at bit 13 - 0.092%

Keyset 'Cyclic' - 8 cycles of 6 bytes - 1000000 keys
Testing collisions ( 32-bit) - Expected  116.4, actual    114 (0.98x)
Testing distribution - Worst bias is the 17-bit window at bit 31 - 0.123%

Keyset 'Cyclic' - 8 cycles of 7 bytes - 1000000 keys
Testing collisions ( 32-bit) - Expected  116.4, actual    117 (1.01x) (1)
Testing distribution - Worst bias is the 17-bit window at bit 11 - 0.115%

Keyset 'Cyclic' - 8 cycles of 8 bytes - 1000000 keys
Testing collisions ( 32-bit) - Expected  116.4, actual    119 (1.02x) (3)
Testing distribution - Worst bias is the 17-bit window at bit  3 - 0.174%

Keyset 'Cyclic' - 8 cycles of 12 bytes - 1000000 keys
Testing collisions ( 32-bit) - Expected  116.4, actual     98 (0.84x)
Testing distribution - Worst bias is the 17-bit window at bit  1 - 0.099%


[[[ Keyset 'TwoBytes' Tests ]]]

Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys
Testing collisions ( 32-bit) - Expected   49.6, actual     41 (0.83x)
Testing distribution - Worst bias is the 16-bit window at bit 24 - 0.105%

Keyset 'TwoBytes' - up-to-8-byte keys, 5471025 total keys
Testing collisions ( 32-bit) - Expected 3483.1, actual   3478 (1.00x) (-5)
Testing distribution - Worst bias is the 19-bit window at bit 26 - 0.031%

Keyset 'TwoBytes' - up-to-12-byte keys, 18616785 total keys
Testing collisions ( 32-bit) - Expected 40289.5, actual  40050 (0.99x) (-239)
Testing distribution - Worst bias is the 20-bit window at bit 31 - 0.023%

Keyset 'TwoBytes' - up-to-16-byte keys, 44251425 total keys
Testing collisions ( 32-bit) - Expected 227182.3, actual 226908 (1.00x) (-274)
Testing distribution - Worst bias is the 20-bit window at bit 19 - 0.007%

Keyset 'TwoBytes' - up-to-20-byte keys, 86536545 total keys
Testing collisions ( 32-bit) - Expected 865959.1, actual 866590 (1.00x) (631)
Testing distribution - Worst bias is the 20-bit window at bit 12 - 0.003%

Keyset 'TwoBytes' - up-to-24-byte keys, 149633745 total keys
Testing collisions ( 32-bit) - Expected 2576560.5, actual 2576223 (1.00x) (-337)
Testing distribution - Worst bias is the 19-bit window at bit 11 - 0.002%


[[[ Keyset 'Text' Tests ]]]

Keyset 'Text' - keys of form "FooXXXXBar" - 14776336 keys
Testing collisions ( 32-bit) - Expected 25389.0, actual  25632 (1.01x) (243)
Testing distribution - Worst bias is the 20-bit window at bit 24 - 0.021%

Keyset 'Text' - keys of form "FooBarXXXX" - 14776336 keys
Testing collisions ( 32-bit) - Expected 25389.0, actual  25285 (1.00x) (-104)
Testing distribution - Worst bias is the 20-bit window at bit 15 - 0.022%

Keyset 'Text' - keys of form "XXXXFooBar" - 14776336 keys
Testing collisions ( 32-bit) - Expected 25389.0, actual  25457 (1.00x) (68)
Testing distribution - Worst bias is the 17-bit window at bit 16 - 0.009%

Keyset 'Words' - 4000000 random keys of len 6-16 from alnum charset
Testing collisions ( 32-bit) - Expected 1862.1, actual   1782 (0.96x)
Testing distribution - Worst bias is the 19-bit window at bit 25 - 0.037%

Keyset 'Words' - 4000000 random keys of len 6-16 from password charset
Testing collisions ( 32-bit) - Expected 1862.1, actual   1888 (1.01x) (26)
Testing distribution - Worst bias is the 19-bit window at bit  4 - 0.051%

Keyset 'Words' - 104334 dict words
Testing collisions ( 32-bit) - Expected    1.3, actual      2 (1.58x) (1)
Testing collisions (high 20-28 bits) - Worst is 28 bits: 22/20 (1.09x)
Testing collisions (low  20-28 bits) - Worst is 25 bits: 168/162 (1.04x)
Testing distribution - Worst bias is the 14-bit window at bit 29 - 0.260%


[[[ Keyset 'Zeroes' Tests ]]]

Keyset 'Zeroes' - 204800 keys
Testing collisions ( 32-bit) - Expected    4.9, actual      7 (1.43x) (3)
Testing collisions (high 21-29 bits) - Worst is 29 bits: 45/39 (1.15x)
Testing collisions (low  21-29 bits) - Worst is 28 bits: 82/78 (1.05x)
Testing distribution - Worst bias is the 15-bit window at bit  5 - 0.304%


[[[ Keyset 'Seed' Tests ]]]

Keyset 'Seed' - 5000000 keys
Testing collisions ( 32-bit) - Expected 2909.3, actual   2805 (0.96x)
Testing distribution - Worst bias is the 19-bit window at bit 24 - 0.030%


[[[ Keyset 'PerlinNoise' Tests ]]]

Testing 16777216 coordinates (L2) : 
Testing collisions ( 32-bit) - Expected 32725.4, actual  32872 (1.00x) (147)

Testing AV variant, 128 count with 4 spacing, 4-12:
Testing collisions ( 32-bit) - Expected 1116.2, actual   1107 (0.99x) (-9)


[[[ Diff 'Differential' Tests ]]]

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

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

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


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

Testing bit 0
Testing collisions ( 32-bit) - Expected  511.9, actual    511 (1.00x)
Testing distribution - Worst bias is the 18-bit window at bit 17 - 0.085%

Testing bit 1
Testing collisions ( 32-bit) - Expected  511.9, actual    500 (0.98x)
Testing distribution - Worst bias is the 18-bit window at bit 30 - 0.070%

Testing bit 2
Testing collisions ( 32-bit) - Expected  511.9, actual    535 (1.05x) (24)
Testing distribution - Worst bias is the 18-bit window at bit 20 - 0.062%

Testing bit 3
Testing collisions ( 32-bit) - Expected  511.9, actual    516 (1.01x) (5)
Testing distribution - Worst bias is the 18-bit window at bit 26 - 0.060%

Testing bit 4
Testing collisions ( 32-bit) - Expected  511.9, actual    503 (0.98x) (-8)
Testing distribution - Worst bias is the 18-bit window at bit 12 - 0.067%

Testing bit 5
Testing collisions ( 32-bit) - Expected  511.9, actual    514 (1.00x) (3)
Testing distribution - Worst bias is the 18-bit window at bit 22 - 0.057%

Testing bit 6
Testing collisions ( 32-bit) - Expected  511.9, actual    540 (1.05x) (29)
Testing distribution - Worst bias is the 18-bit window at bit 18 - 0.068%

Testing bit 7
Testing collisions ( 32-bit) - Expected  511.9, actual    503 (0.98x) (-8)
Testing distribution - Worst bias is the 18-bit window at bit 27 - 0.070%

Testing bit 8
Testing collisions ( 32-bit) - Expected  511.9, actual    474 (0.93x)
Testing distribution - Worst bias is the 18-bit window at bit  8 - 0.056%

Testing bit 9
Testing collisions ( 32-bit) - Expected  511.9, actual    564 (1.10x) (53)
Testing distribution - Worst bias is the 18-bit window at bit 31 - 0.100%

Testing bit 10
Testing collisions ( 32-bit) - Expected  511.9, actual    484 (0.95x)
Testing distribution - Worst bias is the 18-bit window at bit  8 - 0.070%

Testing bit 11
Testing collisions ( 32-bit) - Expected  511.9, actual    516 (1.01x) (5)
Testing distribution - Worst bias is the 18-bit window at bit 26 - 0.086%

Testing bit 12
Testing collisions ( 32-bit) - Expected  511.9, actual    537 (1.05x) (26)
Testing distribution - Worst bias is the 18-bit window at bit 30 - 0.073%

Testing bit 13
Testing collisions ( 32-bit) - Expected  511.9, actual    507 (0.99x) (-4)
Testing distribution - Worst bias is the 18-bit window at bit 30 - 0.061%

Testing bit 14
Testing collisions ( 32-bit) - Expected  511.9, actual    485 (0.95x)
Testing distribution - Worst bias is the 18-bit window at bit 14 - 0.066%

Testing bit 15
Testing collisions ( 32-bit) - Expected  511.9, actual    562 (1.10x) (51)
Testing distribution - Worst bias is the 18-bit window at bit  6 - 0.065%

Testing bit 16
Testing collisions ( 32-bit) - Expected  511.9, actual    525 (1.03x) (14)
Testing distribution - Worst bias is the 18-bit window at bit  3 - 0.055%

Testing bit 17
Testing collisions ( 32-bit) - Expected  511.9, actual    521 (1.02x) (10)
Testing distribution - Worst bias is the 18-bit window at bit  7 - 0.049%

Testing bit 18
Testing collisions ( 32-bit) - Expected  511.9, actual    487 (0.95x)
Testing distribution - Worst bias is the 18-bit window at bit  6 - 0.064%

Testing bit 19
Testing collisions ( 32-bit) - Expected  511.9, actual    509 (0.99x) (-2)
Testing distribution - Worst bias is the 18-bit window at bit 21 - 0.065%

Testing bit 20
Testing collisions ( 32-bit) - Expected  511.9, actual    512 (1.00x) (1)
Testing distribution - Worst bias is the 18-bit window at bit  4 - 0.077%

Testing bit 21
Testing collisions ( 32-bit) - Expected  511.9, actual    470 (0.92x)
Testing distribution - Worst bias is the 18-bit window at bit 11 - 0.072%

Testing bit 22
Testing collisions ( 32-bit) - Expected  511.9, actual    510 (1.00x) (-1)
Testing distribution - Worst bias is the 16-bit window at bit 14 - 0.033%

Testing bit 23
Testing collisions ( 32-bit) - Expected  511.9, actual    476 (0.93x)
Testing distribution - Worst bias is the 18-bit window at bit 16 - 0.081%

Testing bit 24
Testing collisions ( 32-bit) - Expected  511.9, actual    484 (0.95x)
Testing distribution - Worst bias is the 18-bit window at bit 19 - 0.050%

Testing bit 25
Testing collisions ( 32-bit) - Expected  511.9, actual    502 (0.98x) (-9)
Testing distribution - Worst bias is the 18-bit window at bit 31 - 0.064%

Testing bit 26
Testing collisions ( 32-bit) - Expected  511.9, actual    507 (0.99x) (-4)
Testing distribution - Worst bias is the 18-bit window at bit 21 - 0.070%

Testing bit 27
Testing collisions ( 32-bit) - Expected  511.9, actual    492 (0.96x)
Testing distribution - Worst bias is the 18-bit window at bit 29 - 0.052%

Testing bit 28
Testing collisions ( 32-bit) - Expected  511.9, actual    522 (1.02x) (11)
Testing distribution - Worst bias is the 18-bit window at bit  9 - 0.066%

Testing bit 29
Testing collisions ( 32-bit) - Expected  511.9, actual    546 (1.07x) (35)
Testing distribution - Worst bias is the 16-bit window at bit 15 - 0.039%

Testing bit 30
Testing collisions ( 32-bit) - Expected  511.9, actual    492 (0.96x)
Testing distribution - Worst bias is the 18-bit window at bit  5 - 0.049%

Testing bit 31
Testing collisions ( 32-bit) - Expected  511.9, actual    499 (0.97x)
Testing distribution - Worst bias is the 18-bit window at bit 11 - 0.100%

Testing bit 32
Testing collisions ( 32-bit) - Expected  511.9, actual    502 (0.98x) (-9)
Testing distribution - Worst bias is the 18-bit window at bit 14 - 0.057%

Testing bit 33
Testing collisions ( 32-bit) - Expected  511.9, actual    518 (1.01x) (7)
Testing distribution - Worst bias is the 18-bit window at bit 27 - 0.070%

Testing bit 34
Testing collisions ( 32-bit) - Expected  511.9, actual    492 (0.96x)
Testing distribution - Worst bias is the 18-bit window at bit 22 - 0.080%

Testing bit 35
Testing collisions ( 32-bit) - Expected  511.9, actual    511 (1.00x)
Testing distribution - Worst bias is the 18-bit window at bit  8 - 0.057%

Testing bit 36
Testing collisions ( 32-bit) - Expected  511.9, actual    497 (0.97x)
Testing distribution - Worst bias is the 18-bit window at bit  9 - 0.078%

Testing bit 37
Testing collisions ( 32-bit) - Expected  511.9, actual    542 (1.06x) (31)
Testing distribution - Worst bias is the 18-bit window at bit 31 - 0.054%

Testing bit 38
Testing collisions ( 32-bit) - Expected  511.9, actual    534 (1.04x) (23)
Testing distribution - Worst bias is the 18-bit window at bit 18 - 0.042%

Testing bit 39
Testing collisions ( 32-bit) - Expected  511.9, actual    482 (0.94x)
Testing distribution - Worst bias is the 18-bit window at bit 23 - 0.047%

Testing bit 40
Testing collisions ( 32-bit) - Expected  511.9, actual    483 (0.94x)
Testing distribution - Worst bias is the 18-bit window at bit  7 - 0.062%

Testing bit 41
Testing collisions ( 32-bit) - Expected  511.9, actual    532 (1.04x) (21)
Testing distribution - Worst bias is the 18-bit window at bit 10 - 0.081%

Testing bit 42
Testing collisions ( 32-bit) - Expected  511.9, actual    550 (1.07x) (39)
Testing distribution - Worst bias is the 18-bit window at bit 11 - 0.110%

Testing bit 43
Testing collisions ( 32-bit) - Expected  511.9, actual    506 (0.99x) (-5)
Testing distribution - Worst bias is the 18-bit window at bit 10 - 0.093%

Testing bit 44
Testing collisions ( 32-bit) - Expected  511.9, actual    507 (0.99x) (-4)
Testing distribution - Worst bias is the 18-bit window at bit 18 - 0.081%

Testing bit 45
Testing collisions ( 32-bit) - Expected  511.9, actual    478 (0.93x)
Testing distribution - Worst bias is the 18-bit window at bit  0 - 0.084%

Testing bit 46
Testing collisions ( 32-bit) - Expected  511.9, actual    527 (1.03x) (16)
Testing distribution - Worst bias is the 18-bit window at bit 15 - 0.074%

Testing bit 47
Testing collisions ( 32-bit) - Expected  511.9, actual    540 (1.05x) (29)
Testing distribution - Worst bias is the 18-bit window at bit 18 - 0.057%

Testing bit 48
Testing collisions ( 32-bit) - Expected  511.9, actual    542 (1.06x) (31)
Testing distribution - Worst bias is the 18-bit window at bit 11 - 0.067%

Testing bit 49
Testing collisions ( 32-bit) - Expected  511.9, actual    487 (0.95x)
Testing distribution - Worst bias is the 18-bit window at bit  9 - 0.062%

Testing bit 50
Testing collisions ( 32-bit) - Expected  511.9, actual    516 (1.01x) (5)
Testing distribution - Worst bias is the 18-bit window at bit 11 - 0.079%

Testing bit 51
Testing collisions ( 32-bit) - Expected  511.9, actual    493 (0.96x)
Testing distribution - Worst bias is the 18-bit window at bit  2 - 0.088%

Testing bit 52
Testing collisions ( 32-bit) - Expected  511.9, actual    511 (1.00x)
Testing distribution - Worst bias is the 18-bit window at bit  9 - 0.070%

Testing bit 53
Testing collisions ( 32-bit) - Expected  511.9, actual    507 (0.99x) (-4)
Testing distribution - Worst bias is the 18-bit window at bit  7 - 0.067%

Testing bit 54
Testing collisions ( 32-bit) - Expected  511.9, actual    546 (1.07x) (35)
Testing distribution - Worst bias is the 18-bit window at bit 19 - 0.065%

Testing bit 55
Testing collisions ( 32-bit) - Expected  511.9, actual    514 (1.00x) (3)
Testing distribution - Worst bias is the 18-bit window at bit 19 - 0.083%

Testing bit 56
Testing collisions ( 32-bit) - Expected  511.9, actual    495 (0.97x)
Testing distribution - Worst bias is the 18-bit window at bit 20 - 0.091%

Testing bit 57
Testing collisions ( 32-bit) - Expected  511.9, actual    499 (0.97x)
Testing distribution - Worst bias is the 18-bit window at bit 10 - 0.066%

Testing bit 58
Testing collisions ( 32-bit) - Expected  511.9, actual    490 (0.96x)
Testing distribution - Worst bias is the 18-bit window at bit  1 - 0.113%

Testing bit 59
Testing collisions ( 32-bit) - Expected  511.9, actual    490 (0.96x)
Testing distribution - Worst bias is the 18-bit window at bit  3 - 0.070%

Testing bit 60
Testing collisions ( 32-bit) - Expected  511.9, actual    522 (1.02x) (11)
Testing distribution - Worst bias is the 17-bit window at bit  9 - 0.063%

Testing bit 61
Testing collisions ( 32-bit) - Expected  511.9, actual    489 (0.96x)
Testing distribution - Worst bias is the 18-bit window at bit  4 - 0.071%

Testing bit 62
Testing collisions ( 32-bit) - Expected  511.9, actual    517 (1.01x) (6)
Testing distribution - Worst bias is the 18-bit window at bit 24 - 0.073%

Testing bit 63
Testing collisions ( 32-bit) - Expected  511.9, actual    539 (1.05x) (28)
Testing distribution - Worst bias is the 18-bit window at bit  5 - 0.073%


[[[ MomentChi2 Tests ]]]

Analyze hashes produced from a serie of linearly increasing numbers of 32-bit, using a step of 2 ... 
Target values to approximate : 1391290.000000 - 686.666667 
4 threads starting...  done
Popcount 1 stats : 1391319.905890 - 687.443372
Popcount 0 stats : 1391309.173389 - 687.302111
MomentChi2 for bits 1 :  0.650867 
MomentChi2 for bits 0 :   0.26756 

Derivative stats (transition from 2 consecutive values) : 
Popcount 1 stats : 1391283.282833 - 687.239058
Popcount 0 stats : 1391259.740689 - 687.182738
MomentChi2 for deriv b1 :  0.0328409 
MomentChi2 for deriv b0 :  0.666467 

  Great 


[[[ Prng Tests ]]]

Skipping PRNG test; it is designed for hashes >= 64-bits

Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
Verification value is 0x00000001 - Testing took 806.595032 seconds
-------------------------------------------------------------------------------
[[[ BadSeeds Tests ]]]

Testing 4 internal secrets:
0x51a43a0f 
Broken seed 0x51a43a0f => 0 with key[16] of all 0 bytes confirmed => hash 0 !!!!
0x522235ae 
Broken seed 0x522235ae => 0 with key[16] of all 0 bytes confirmed => hash 0 !!!!
0x99ac2b20  !!!!
Bad seed 0x99ac2b20 for len 16 confirmed => hashes: 1163385220 1163385220 1583405780 1651789912 1693585424 3481276758  !!!!
Testing collisions ( 32-bit) - Expected    0.0, actual      1 (286331153.07x) (1) !!!!
0x9a4f1376 
Broken seed 0x9a4f1376 => 0 with key[16] of all 0 bytes confirmed => hash 0 !!!!

Testing the first 0xffffffff seeds ...
4 threads starting...
at 0 at 40000000 at 80000000 at c0000000 0x01ffffff 0x41ffffff 0x81ffffff 0x43ffffff 0x83ffffff 0x03ffffff 0x85ffffff 0x45ffffff 0x05ffffff 0x87ffffff 0x07ffffff 0x47ffffff 0x09ffffff 0x89ffffff 0x49ffffff 0x0bffffff 0x8bffffff 0x4bffffff 0x0dffffff 0x8dffffff 0x4dffffff 0x0fffffff 0x8fffffff 0x4fffffff 
Broken seed 0x51a43a0f => 0 with key[16] of all 0 bytes
0x11ffffff 0x51ffffff 0x91ffffff 
Broken seed 0x522235ae => 0 with key[16] of all 0 bytes
0x13ffffff 0x53ffffff 0x93ffffff 0x15ffffff 0x95ffffff 0x55ffffff 0x97ffffff 0x17ffffff 0x57ffffff  !!!!
Bad seed 0x99ac2b20
Testing collisions ( 32-bit) - Expected    0.0, actual      1 (715827882.67x) (1) !!!!
0x99ffffff 0x59ffffff 0x19ffffff 
Broken seed 0x9a4f1376 => 0 with key[16] of all 0 bytes
0x1bffffff 0x5bffffff 0x9bffffff 0x1dffffff 0x5dffffff 0x9dffffff 0x1fffffff 0x5fffffff 0x9fffffff 0x61ffffff 0x21ffffff 0xa1ffffff 0x63ffffff 0x23ffffff 0xa3ffffff 0x65ffffff 0x25ffffff 0xa5ffffff 0x67ffffff 0x27ffffff 0xa7ffffff 0x69ffffff 0x29ffffff 0xa9ffffff 0x6bffffff 0x2bffffff 0xabffffff 0x6dffffff 0x2dffffff 0xadffffff 0x6fffffff 0x2fffffff 0xafffffff 0x71ffffff 0x31ffffff 0xb1ffffff 0x73ffffff 0x33ffffff 0xb3ffffff 0x75ffffff 0x35ffffff 0xb5ffffff 0x77ffffff 0x37ffffff 0xb7ffffff 0x79ffffff 0x39ffffff 0xb9ffffff 0x7bffffff 0x3bffffff 0xbbffffff 0x7dffffff 0x3dffffff 0xbdffffff 0x7fffffff 0x3fffffff 0xbfffffff All 4 threads ended
FAIL
Ensure to add these bad seeds to the list of secrets in main.cpp

*********FAIL*********
