Crap8 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. --- Testing Crap8 (Crap8)
  2. [[[ Sanity Tests ]]]
  3. Verification value 0x743E97A1 : Passed!
  4. Running sanity check 1..........PASS
  5. Running sanity check 2..........PASS
  6. [[[ Speed Tests ]]]
  7. Bulk speed test - 262144-byte keys
  8. Alignment 0 - 1.071 bytes/cycle - 3064.24 MiB/sec @ 3 ghz
  9. Alignment 1 - 1.063 bytes/cycle - 3042.28 MiB/sec @ 3 ghz
  10. Alignment 2 - 1.063 bytes/cycle - 3042.26 MiB/sec @ 3 ghz
  11. Alignment 3 - 1.063 bytes/cycle - 3042.28 MiB/sec @ 3 ghz
  12. Alignment 4 - 1.071 bytes/cycle - 3064.15 MiB/sec @ 3 ghz
  13. Alignment 5 - 1.063 bytes/cycle - 3042.34 MiB/sec @ 3 ghz
  14. Alignment 6 - 1.063 bytes/cycle - 3042.34 MiB/sec @ 3 ghz
  15. Alignment 7 - 1.063 bytes/cycle - 3042.36 MiB/sec @ 3 ghz
  16. Small key speed test - 1-byte keys - 22.16 cycles/hash
  17. Small key speed test - 2-byte keys - 20.99 cycles/hash
  18. Small key speed test - 3-byte keys - 21.65 cycles/hash
  19. Small key speed test - 4-byte keys - 22.18 cycles/hash
  20. Small key speed test - 5-byte keys - 29.00 cycles/hash
  21. Small key speed test - 6-byte keys - 29.29 cycles/hash
  22. Small key speed test - 7-byte keys - 22.87 cycles/hash
  23. Small key speed test - 8-byte keys - 30.43 cycles/hash
  24. Small key speed test - 9-byte keys - 28.98 cycles/hash
  25. Small key speed test - 10-byte keys - 23.01 cycles/hash
  26. Small key speed test - 11-byte keys - 22.86 cycles/hash
  27. Small key speed test - 12-byte keys - 30.74 cycles/hash
  28. Small key speed test - 13-byte keys - 30.95 cycles/hash
  29. Small key speed test - 14-byte keys - 31.41 cycles/hash
  30. Small key speed test - 15-byte keys - 31.54 cycles/hash
  31. Small key speed test - 16-byte keys - 34.21 cycles/hash
  32. Small key speed test - 17-byte keys - 34.70 cycles/hash
  33. Small key speed test - 18-byte keys - 36.12 cycles/hash
  34. Small key speed test - 19-byte keys - 36.13 cycles/hash
  35. Small key speed test - 20-byte keys - 35.56 cycles/hash
  36. Small key speed test - 21-byte keys - 35.66 cycles/hash
  37. Small key speed test - 22-byte keys - 36.12 cycles/hash
  38. Small key speed test - 23-byte keys - 36.89 cycles/hash
  39. Small key speed test - 24-byte keys - 37.79 cycles/hash
  40. Small key speed test - 25-byte keys - 39.94 cycles/hash
  41. Small key speed test - 26-byte keys - 41.28 cycles/hash
  42. Small key speed test - 27-byte keys - 41.82 cycles/hash
  43. Small key speed test - 28-byte keys - 40.06 cycles/hash
  44. Small key speed test - 29-byte keys - 43.25 cycles/hash
  45. Small key speed test - 30-byte keys - 44.23 cycles/hash
  46. Small key speed test - 31-byte keys - 45.68 cycles/hash
  47. [[[ Differential Tests ]]]
  48. Testing 8303632 up-to-5-bit differentials in 64-bit keys -> 32 bit hashes.
  49. 1000 reps, 8303632000 total tests, expecting 1.93 random collisions..........
  50. 1 total collisions, of which 1 single collisions were ignored
  51. Testing 11017632 up-to-4-bit differentials in 128-bit keys -> 32 bit hashes.
  52. 1000 reps, 11017632000 total tests, expecting 2.57 random collisions..........
  53. 4 total collisions, of which 4 single collisions were ignored
  54. Testing 2796416 up-to-3-bit differentials in 256-bit keys -> 32 bit hashes.
  55. 1000 reps, 2796416000 total tests, expecting 0.65 random collisions..........
  56. 2 total collisions, of which 2 single collisions were ignored
  57. [[[ Avalanche Tests ]]]
  58. Testing 32-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.674000%
  59. Testing 40-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.656667%
  60. Testing 48-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.717333%
  61. Testing 56-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.655333%
  62. Testing 64-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.587333%
  63. Testing 72-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.696000%
  64. Testing 80-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.745333%
  65. Testing 88-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.813333%
  66. Testing 96-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.681333%
  67. Testing 104-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.660667%
  68. Testing 112-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.904000%
  69. Testing 120-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.778000%
  70. Testing 128-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.715333%
  71. Testing 136-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.792667%
  72. Testing 144-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.702000%
  73. Testing 152-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 0.618667%
  74. [[[ Keyset 'Cyclic' Tests ]]]
  75. Keyset 'Cyclic' - 8 cycles of 4 bytes - 10000000 keys
  76. Testing collisions - Expected 11641.53, actual 770183.00 (66.16x) !!!!!
  77. Testing distribution - Worst bias is the 20-bit window at bit 26 - 2.095% !!!!!
  78. Keyset 'Cyclic' - 8 cycles of 5 bytes - 10000000 keys
  79. Testing collisions - Expected 11641.53, actual 40146.00 ( 3.45x) !!!!!
  80. Testing distribution - Worst bias is the 20-bit window at bit 24 - 0.118%
  81. Keyset 'Cyclic' - 8 cycles of 6 bytes - 10000000 keys
  82. Testing collisions - Expected 11641.53, actual 67940.00 ( 5.84x) !!!!!
  83. Testing distribution - Worst bias is the 20-bit window at bit 25 - 0.249%
  84. Keyset 'Cyclic' - 8 cycles of 7 bytes - 10000000 keys
  85. Testing collisions - Expected 11641.53, actual 40770.00 ( 3.50x) !!!!!
  86. Testing distribution - Worst bias is the 20-bit window at bit 24 - 0.106%
  87. Keyset 'Cyclic' - 8 cycles of 8 bytes - 10000000 keys
  88. Testing collisions - Expected 11641.53, actual 213349.00 (18.33x) !!!!!
  89. Testing distribution - Worst bias is the 20-bit window at bit 24 - 0.762%
  90. *********FAIL*********
  91. [[[ Keyset 'TwoBytes' Tests ]]]
  92. Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys
  93. Testing collisions - Expected 49.57, actual 49.00 ( 0.99x)
  94. Testing distribution - Worst bias is the 16-bit window at bit 19 - 0.155%
  95. Keyset 'TwoBytes' - up-to-8-byte keys, 5471025 total keys
  96. Testing collisions - Expected 3484.56, actual 4706.00 ( 1.35x)
  97. Testing distribution - Worst bias is the 20-bit window at bit 6 - 0.097%
  98. Keyset 'TwoBytes' - up-to-12-byte keys, 18616785 total keys
  99. Testing collisions - Expected 40347.77, actual 55272.00 ( 1.37x)
  100. Testing distribution - Worst bias is the 20-bit window at bit 14 - 0.020%
  101. Keyset 'TwoBytes' - up-to-16-byte keys, 44251425 total keys
  102. Testing collisions - Expected 227963.15, actual 277866.00 ( 1.22x)
  103. Testing distribution - Worst bias is the 20-bit window at bit 26 - 0.016%
  104. Keyset 'TwoBytes' - up-to-20-byte keys, 86536545 total keys
  105. Testing collisions - Expected 871784.70, actual 983322.00 ( 1.13x)
  106. Testing distribution - Worst bias is the 20-bit window at bit 26 - 0.007%
  107. [[[ Keyset 'Sparse' Tests ]]]
  108. Keyset 'Sparse' - 32-bit keys with up to 6 bits set - 1149017 keys
  109. Testing collisions - Expected 153.70, actual 146.00 ( 0.95x)
  110. Testing distribution - Worst bias is the 17-bit window at bit 29 - 0.071%
  111. Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys
  112. Testing collisions - Expected 2461.72, actual 2830.00 ( 1.15x)
  113. Testing distribution - Worst bias is the 19-bit window at bit 13 - 0.049%
  114. Keyset 'Sparse' - 48-bit keys with up to 5 bits set - 1925357 keys
  115. Testing collisions - Expected 431.55, actual 698.00 ( 1.62x)
  116. Testing distribution - Worst bias is the 17-bit window at bit 6 - 0.069%
  117. Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys
  118. Testing collisions - Expected 2069.66, actual 2550.00 ( 1.23x)
  119. Testing distribution - Worst bias is the 19-bit window at bit 16 - 0.047%
  120. Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys
  121. Testing collisions - Expected 8026.87, actual 9242.00 ( 1.15x)
  122. Testing distribution - Worst bias is the 20-bit window at bit 18 - 0.034%
  123. Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys
  124. Testing collisions - Expected 1401.34, actual 26291.00 (18.76x) !!!!!
  125. Testing distribution - Worst bias is the 19-bit window at bit 16 - 0.277%
  126. Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys
  127. Testing collisions - Expected 910.36, actual 168122.00 (184.68x) !!!!!
  128. Testing distribution - Worst bias is the 19-bit window at bit 21 - 7.194% !!!!!
  129. Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys
  130. Testing collisions - Expected 512.50, actual 125630.00 (245.13x) !!!!!
  131. Testing distribution - Worst bias is the 18-bit window at bit 29 - 41.411% !!!!!
  132. *********FAIL*********
  133. [[[ Keyset 'Combination Lowbits' Tests ]]]
  134. Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
  135. Testing collisions - Expected 42799.01, actual 18078730.00 (422.41x) !!!!!
  136. Testing distribution - Worst bias is the 20-bit window at bit 21 - 52.841% !!!!!
  137. *********FAIL*********
  138. [[[ Keyset 'Combination Highbits' Tests ]]]
  139. Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
  140. Testing collisions - Expected 42799.01, actual 46782.00 ( 1.09x)
  141. Testing distribution - Worst bias is the 20-bit window at bit 9 - 0.022%
  142. [[[ Keyset 'Combination 0x8000000' Tests ]]]
  143. Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
  144. Testing collisions - Expected 512.00, actual 688.00 ( 1.34x)
  145. Testing distribution - Worst bias is the 18-bit window at bit 7 - 0.093%
  146. [[[ Keyset 'Combination 0x0000001' Tests ]]]
  147. Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
  148. Testing collisions - Expected 512.00, actual 2097110.00 (4095.93x) !!!!!
  149. Testing distribution - Worst bias is the 18-bit window at bit 0 - 99.998% !!!!!
  150. *********FAIL*********
  151. [[[ Keyset 'Combination Hi-Lo' Tests ]]]
  152. Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys
  153. Testing collisions - Expected 17339.30, actual 4497785.00 (259.40x) !!!!!
  154. Testing distribution - Worst bias is the 20-bit window at bit 30 - 9.586% !!!!!
  155. *********FAIL*********
  156. [[[ Keyset 'Window' Tests ]]]
  157. Keyset 'Windowed' - 64-bit key, 20-bit window - 64 tests, 1048576 keys per test
  158. Window at 0 - Testing collisions - Expected 128.00, actual 136.00 ( 1.06x)
  159. Window at 1 - Testing collisions - Expected 128.00, actual 132.00 ( 1.03x)
  160. Window at 2 - Testing collisions - Expected 128.00, actual 141.00 ( 1.10x)
  161. Window at 3 - Testing collisions - Expected 128.00, actual 144.00 ( 1.13x)
  162. Window at 4 - Testing collisions - Expected 128.00, actual 126.00 ( 0.98x)
  163. Window at 5 - Testing collisions - Expected 128.00, actual 121.00 ( 0.95x)
  164. Window at 6 - Testing collisions - Expected 128.00, actual 133.00 ( 1.04x)
  165. Window at 7 - Testing collisions - Expected 128.00, actual 123.00 ( 0.96x)
  166. Window at 8 - Testing collisions - Expected 128.00, actual 106.00 ( 0.83x)
  167. Window at 9 - Testing collisions - Expected 128.00, actual 139.00 ( 1.09x)
  168. Window at 10 - Testing collisions - Expected 128.00, actual 141.00 ( 1.10x)
  169. Window at 11 - Testing collisions - Expected 128.00, actual 143.00 ( 1.12x)
  170. Window at 12 - Testing collisions - Expected 128.00, actual 128.00 ( 1.00x)
  171. Window at 13 - Testing collisions - Expected 128.00, actual 145.00 ( 1.13x)
  172. Window at 14 - Testing collisions - Expected 128.00, actual 121.00 ( 0.95x)
  173. Window at 15 - Testing collisions - Expected 128.00, actual 134.00 ( 1.05x)
  174. Window at 16 - Testing collisions - Expected 128.00, actual 133.00 ( 1.04x)
  175. Window at 17 - Testing collisions - Expected 128.00, actual 114.00 ( 0.89x)
  176. Window at 18 - Testing collisions - Expected 128.00, actual 147.00 ( 1.15x)
  177. Window at 19 - Testing collisions - Expected 128.00, actual 133.00 ( 1.04x)
  178. Window at 20 - Testing collisions - Expected 128.00, actual 127.00 ( 0.99x)
  179. Window at 21 - Testing collisions - Expected 128.00, actual 129.00 ( 1.01x)
  180. Window at 22 - Testing collisions - Expected 128.00, actual 115.00 ( 0.90x)
  181. Window at 23 - Testing collisions - Expected 128.00, actual 110.00 ( 0.86x)
  182. Window at 24 - Testing collisions - Expected 128.00, actual 129.00 ( 1.01x)
  183. Window at 25 - Testing collisions - Expected 128.00, actual 146.00 ( 1.14x)
  184. Window at 26 - Testing collisions - Expected 128.00, actual 144.00 ( 1.13x)
  185. Window at 27 - Testing collisions - Expected 128.00, actual 141.00 ( 1.10x)
  186. Window at 28 - Testing collisions - Expected 128.00, actual 108.00 ( 0.84x)
  187. Window at 29 - Testing collisions - Expected 128.00, actual 136.00 ( 1.06x)
  188. Window at 30 - Testing collisions - Expected 128.00, actual 149.00 ( 1.16x)
  189. Window at 31 - Testing collisions - Expected 128.00, actual 132.00 ( 1.03x)
  190. Window at 32 - Testing collisions - Expected 128.00, actual 145.00 ( 1.13x)
  191. Window at 33 - Testing collisions - Expected 128.00, actual 137.00 ( 1.07x)
  192. Window at 34 - Testing collisions - Expected 128.00, actual 145.00 ( 1.13x)
  193. Window at 35 - Testing collisions - Expected 128.00, actual 107.00 ( 0.84x)
  194. Window at 36 - Testing collisions - Expected 128.00, actual 133.00 ( 1.04x)
  195. Window at 37 - Testing collisions - Expected 128.00, actual 128.00 ( 1.00x)
  196. Window at 38 - Testing collisions - Expected 128.00, actual 132.00 ( 1.03x)
  197. Window at 39 - Testing collisions - Expected 128.00, actual 129.00 ( 1.01x)
  198. Window at 40 - Testing collisions - Expected 128.00, actual 154.00 ( 1.20x)
  199. Window at 41 - Testing collisions - Expected 128.00, actual 123.00 ( 0.96x)
  200. Window at 42 - Testing collisions - Expected 128.00, actual 131.00 ( 1.02x)
  201. Window at 43 - Testing collisions - Expected 128.00, actual 142.00 ( 1.11x)
  202. Window at 44 - Testing collisions - Expected 128.00, actual 135.00 ( 1.05x)
  203. Window at 45 - Testing collisions - Expected 128.00, actual 148.00 ( 1.16x)
  204. Window at 46 - Testing collisions - Expected 128.00, actual 133.00 ( 1.04x)
  205. Window at 47 - Testing collisions - Expected 128.00, actual 119.00 ( 0.93x)
  206. Window at 48 - Testing collisions - Expected 128.00, actual 135.00 ( 1.05x)
  207. Window at 49 - Testing collisions - Expected 128.00, actual 119.00 ( 0.93x)
  208. Window at 50 - Testing collisions - Expected 128.00, actual 124.00 ( 0.97x)
  209. Window at 51 - Testing collisions - Expected 128.00, actual 117.00 ( 0.91x)
  210. Window at 52 - Testing collisions - Expected 128.00, actual 133.00 ( 1.04x)
  211. Window at 53 - Testing collisions - Expected 128.00, actual 145.00 ( 1.13x)
  212. Window at 54 - Testing collisions - Expected 128.00, actual 119.00 ( 0.93x)
  213. Window at 55 - Testing collisions - Expected 128.00, actual 151.00 ( 1.18x)
  214. Window at 56 - Testing collisions - Expected 128.00, actual 146.00 ( 1.14x)
  215. Window at 57 - Testing collisions - Expected 128.00, actual 141.00 ( 1.10x)
  216. Window at 58 - Testing collisions - Expected 128.00, actual 143.00 ( 1.12x)
  217. Window at 59 - Testing collisions - Expected 128.00, actual 139.00 ( 1.09x)
  218. Window at 60 - Testing collisions - Expected 128.00, actual 110.00 ( 0.86x)
  219. Window at 61 - Testing collisions - Expected 128.00, actual 127.00 ( 0.99x)
  220. Window at 62 - Testing collisions - Expected 128.00, actual 144.00 ( 1.13x)
  221. Window at 63 - Testing collisions - Expected 128.00, actual 125.00 ( 0.98x)
  222. Window at 64 - Testing collisions - Expected 128.00, actual 136.00 ( 1.06x)
  223. [[[ Keyset 'Text' Tests ]]]
  224. Keyset 'Text' - keys of form "Foo[XXXX]Bar" - 14776336 keys
  225. Testing collisions - Expected 25418.13, actual 25364.00 ( 1.00x)
  226. Testing distribution - Worst bias is the 20-bit window at bit 6 - 0.013%
  227. Keyset 'Text' - keys of form "FooBar[XXXX]" - 14776336 keys
  228. Testing collisions - Expected 25418.13, actual 25499.00 ( 1.00x)
  229. Testing distribution - Worst bias is the 20-bit window at bit 7 - 0.018%
  230. Keyset 'Text' - keys of form "[XXXX]FooBar" - 14776336 keys
  231. Testing collisions - Expected 25418.13, actual 25148.00 ( 0.99x)
  232. Testing distribution - Worst bias is the 20-bit window at bit 28 - 0.015%
  233. [[[ Keyset 'Zeroes' Tests ]]]
  234. Keyset 'Zeroes' - 65536 keys
  235. Testing collisions - Expected 0.50, actual 1.00 ( 2.00x) !!!!!
  236. Testing distribution - Worst bias is the 13-bit window at bit 15 - 0.512%
  237. *********FAIL*********
  238. [[[ Keyset 'Seed' Tests ]]]
  239. Keyset 'Seed' - 1000000 keys
  240. Testing collisions - Expected 116.42, actual 108.00 ( 0.93x)
  241. Testing distribution - Worst bias is the 17-bit window at bit 27 - 0.126%
  242. Input vcode 0x587ed362, Output vcode 0x8bf2e658, Result vcode 0x00000001
  243. Verification value is 0x00000001 - Testing took 1732.406913 seconds