============================================================ = Initial chained hash table ============================================================ ChainHashTable dump; size: 101 buckets [0]: [1]: [2]: [3]: [4]: [5]: [6]: [7]: [8]: [9]: [10]: [11]: [12]: [13]: [14]: [15]: [16]: [17]: [18]: [19]: [20]: [21]: [22]: [23]: [24]: [25]: [26]: [27]: [28]: [29]: [30]: [31]: [32]: [33]: [34]: [35]: [36]: [37]: [38]: [39]: [40]: [41]: [42]: [43]: [44]: [45]: [46]: [47]: [48]: [49]: [50]: [51]: [52]: [53]: [54]: [55]: [56]: [57]: [58]: [59]: [60]: [61]: [62]: [63]: [64]: [65]: [66]: [67]: [68]: [69]: [70]: [71]: [72]: [73]: [74]: [75]: [76]: [77]: [78]: [79]: [80]: [81]: [82]: [83]: [84]: [85]: [86]: [87]: [88]: [89]: [90]: [91]: [92]: [93]: [94]: [95]: [96]: [97]: [98]: [99]: [100]: Total items: 0 ============================================================ = After 1000 insertions (0 CPU ticks) ============================================================ ChainHashTable dump; size: 101 buckets [0]: 948, 847, 746, 645, 544, 443, 342, 241, 140, 39, [1]: 988, 887, 786, 685, 584, 483, 382, 281, 180, 79, [2]: 927, 826, 725, 624, 523, 422, 321, 220, 119, 18, [3]: 967, 866, 765, 664, 563, 462, 361, 260, 159, 58, [4]: 906, 805, 704, 603, 502, 401, 300, 199, 98, [5]: 946, 845, 744, 643, 542, 441, 340, 239, 138, 37, [6]: 986, 885, 784, 683, 582, 481, 380, 279, 178, 77, [7]: 925, 824, 723, 622, 521, 420, 319, 218, 117, 16, [8]: 965, 864, 763, 662, 561, 460, 359, 258, 157, 56, [9]: 904, 803, 702, 601, 500, 399, 298, 197, 96, [10]: 944, 843, 742, 641, 540, 439, 338, 237, 136, 35, [11]: 984, 883, 782, 681, 580, 479, 378, 277, 176, 75, [12]: 923, 822, 721, 620, 519, 418, 317, 216, 115, 14, [13]: 963, 862, 761, 660, 559, 458, 357, 256, 155, 54, [14]: 902, 801, 700, 599, 498, 397, 296, 195, 94, [15]: 942, 841, 740, 639, 538, 437, 336, 235, 134, 33, [16]: 982, 881, 780, 679, 578, 477, 376, 275, 174, 73, [17]: 921, 820, 719, 618, 517, 416, 315, 214, 113, 12, [18]: 961, 860, 759, 658, 557, 456, 355, 254, 153, 52, [19]: 900, 799, 698, 597, 496, 395, 294, 193, 92, [20]: 940, 839, 738, 637, 536, 435, 334, 233, 132, 31, [21]: 980, 879, 778, 677, 576, 475, 374, 273, 172, 71, [22]: 919, 818, 717, 616, 515, 414, 313, 212, 111, 10, [23]: 959, 858, 757, 656, 555, 454, 353, 252, 151, 50, [24]: 999, 898, 797, 696, 595, 494, 393, 292, 191, 90, [25]: 938, 837, 736, 635, 534, 433, 332, 231, 130, 29, [26]: 978, 877, 776, 675, 574, 473, 372, 271, 170, 69, [27]: 917, 816, 715, 614, 513, 412, 311, 210, 109, 8, [28]: 957, 856, 755, 654, 553, 452, 351, 250, 149, 48, [29]: 997, 896, 795, 694, 593, 492, 391, 290, 189, 88, [30]: 936, 835, 734, 633, 532, 431, 330, 229, 128, 27, [31]: 976, 875, 774, 673, 572, 471, 370, 269, 168, 67, [32]: 915, 814, 713, 612, 511, 410, 309, 208, 107, 6, [33]: 955, 854, 753, 652, 551, 450, 349, 248, 147, 46, [34]: 995, 894, 793, 692, 591, 490, 389, 288, 187, 86, [35]: 934, 833, 732, 631, 530, 429, 328, 227, 126, 25, [36]: 974, 873, 772, 671, 570, 469, 368, 267, 166, 65, [37]: 913, 812, 711, 610, 509, 408, 307, 206, 105, 4, [38]: 953, 852, 751, 650, 549, 448, 347, 246, 145, 44, [39]: 993, 892, 791, 690, 589, 488, 387, 286, 185, 84, [40]: 932, 831, 730, 629, 528, 427, 326, 225, 124, 23, [41]: 972, 871, 770, 669, 568, 467, 366, 265, 164, 63, [42]: 911, 810, 709, 608, 507, 406, 305, 204, 103, 2, [43]: 951, 850, 749, 648, 547, 446, 345, 244, 143, 42, [44]: 991, 890, 789, 688, 587, 486, 385, 284, 183, 82, [45]: 930, 829, 728, 627, 526, 425, 324, 223, 122, 21, [46]: 970, 869, 768, 667, 566, 465, 364, 263, 162, 61, [47]: 909, 808, 707, 606, 505, 404, 303, 202, 101, 0, [48]: 949, 848, 747, 646, 545, 444, 343, 242, 141, 40, [49]: 989, 888, 787, 686, 585, 484, 383, 282, 181, 80, [50]: 928, 827, 726, 625, 524, 423, 322, 221, 120, 19, [51]: 968, 867, 766, 665, 564, 463, 362, 261, 160, 59, [52]: 907, 806, 705, 604, 503, 402, 301, 200, 99, [53]: 947, 846, 745, 644, 543, 442, 341, 240, 139, 38, [54]: 987, 886, 785, 684, 583, 482, 381, 280, 179, 78, [55]: 926, 825, 724, 623, 522, 421, 320, 219, 118, 17, [56]: 966, 865, 764, 663, 562, 461, 360, 259, 158, 57, [57]: 905, 804, 703, 602, 501, 400, 299, 198, 97, [58]: 945, 844, 743, 642, 541, 440, 339, 238, 137, 36, [59]: 985, 884, 783, 682, 581, 480, 379, 278, 177, 76, [60]: 924, 823, 722, 621, 520, 419, 318, 217, 116, 15, [61]: 964, 863, 762, 661, 560, 459, 358, 257, 156, 55, [62]: 903, 802, 701, 600, 499, 398, 297, 196, 95, [63]: 943, 842, 741, 640, 539, 438, 337, 236, 135, 34, [64]: 983, 882, 781, 680, 579, 478, 377, 276, 175, 74, [65]: 922, 821, 720, 619, 518, 417, 316, 215, 114, 13, [66]: 962, 861, 760, 659, 558, 457, 356, 255, 154, 53, [67]: 901, 800, 699, 598, 497, 396, 295, 194, 93, [68]: 941, 840, 739, 638, 537, 436, 335, 234, 133, 32, [69]: 981, 880, 779, 678, 577, 476, 375, 274, 173, 72, [70]: 920, 819, 718, 617, 516, 415, 314, 213, 112, 11, [71]: 960, 859, 758, 657, 556, 455, 354, 253, 152, 51, [72]: 899, 798, 697, 596, 495, 394, 293, 192, 91, [73]: 939, 838, 737, 636, 535, 434, 333, 232, 131, 30, [74]: 979, 878, 777, 676, 575, 474, 373, 272, 171, 70, [75]: 918, 817, 716, 615, 514, 413, 312, 211, 110, 9, [76]: 958, 857, 756, 655, 554, 453, 352, 251, 150, 49, [77]: 998, 897, 796, 695, 594, 493, 392, 291, 190, 89, [78]: 937, 836, 735, 634, 533, 432, 331, 230, 129, 28, [79]: 977, 876, 775, 674, 573, 472, 371, 270, 169, 68, [80]: 916, 815, 714, 613, 512, 411, 310, 209, 108, 7, [81]: 956, 855, 754, 653, 552, 451, 350, 249, 148, 47, [82]: 996, 895, 794, 693, 592, 491, 390, 289, 188, 87, [83]: 935, 834, 733, 632, 531, 430, 329, 228, 127, 26, [84]: 975, 874, 773, 672, 571, 470, 369, 268, 167, 66, [85]: 914, 813, 712, 611, 510, 409, 308, 207, 106, 5, [86]: 954, 853, 752, 651, 550, 449, 348, 247, 146, 45, [87]: 994, 893, 792, 691, 590, 489, 388, 287, 186, 85, [88]: 933, 832, 731, 630, 529, 428, 327, 226, 125, 24, [89]: 973, 872, 771, 670, 569, 468, 367, 266, 165, 64, [90]: 912, 811, 710, 609, 508, 407, 306, 205, 104, 3, [91]: 952, 851, 750, 649, 548, 447, 346, 245, 144, 43, [92]: 992, 891, 790, 689, 588, 487, 386, 285, 184, 83, [93]: 931, 830, 729, 628, 527, 426, 325, 224, 123, 22, [94]: 971, 870, 769, 668, 567, 466, 365, 264, 163, 62, [95]: 910, 809, 708, 607, 506, 405, 304, 203, 102, 1, [96]: 950, 849, 748, 647, 546, 445, 344, 243, 142, 41, [97]: 990, 889, 788, 687, 586, 485, 384, 283, 182, 81, [98]: 929, 828, 727, 626, 525, 424, 323, 222, 121, 20, [99]: 969, 868, 767, 666, 565, 464, 363, 262, 161, 60, [100]: 908, 807, 706, 605, 504, 403, 302, 201, 100, Total items: 1000 ============================================================ = Initial probe hash table ============================================================ ProbeHashTable dump; size: 101 buckets [0]: EMPTY [1]: EMPTY [2]: EMPTY [3]: EMPTY [4]: EMPTY [5]: EMPTY [6]: EMPTY [7]: EMPTY [8]: EMPTY [9]: EMPTY [10]: EMPTY [11]: EMPTY [12]: EMPTY [13]: EMPTY [14]: EMPTY [15]: EMPTY [16]: EMPTY [17]: EMPTY [18]: EMPTY [19]: EMPTY [20]: EMPTY [21]: EMPTY [22]: EMPTY [23]: EMPTY [24]: EMPTY [25]: EMPTY [26]: EMPTY [27]: EMPTY [28]: EMPTY [29]: EMPTY [30]: EMPTY [31]: EMPTY [32]: EMPTY [33]: EMPTY [34]: EMPTY [35]: EMPTY [36]: EMPTY [37]: EMPTY [38]: EMPTY [39]: EMPTY [40]: EMPTY [41]: EMPTY [42]: EMPTY [43]: EMPTY [44]: EMPTY [45]: EMPTY [46]: EMPTY [47]: EMPTY [48]: EMPTY [49]: EMPTY [50]: EMPTY [51]: EMPTY [52]: EMPTY [53]: EMPTY [54]: EMPTY [55]: EMPTY [56]: EMPTY [57]: EMPTY [58]: EMPTY [59]: EMPTY [60]: EMPTY [61]: EMPTY [62]: EMPTY [63]: EMPTY [64]: EMPTY [65]: EMPTY [66]: EMPTY [67]: EMPTY [68]: EMPTY [69]: EMPTY [70]: EMPTY [71]: EMPTY [72]: EMPTY [73]: EMPTY [74]: EMPTY [75]: EMPTY [76]: EMPTY [77]: EMPTY [78]: EMPTY [79]: EMPTY [80]: EMPTY [81]: EMPTY [82]: EMPTY [83]: EMPTY [84]: EMPTY [85]: EMPTY [86]: EMPTY [87]: EMPTY [88]: EMPTY [89]: EMPTY [90]: EMPTY [91]: EMPTY [92]: EMPTY [93]: EMPTY [94]: EMPTY [95]: EMPTY [96]: EMPTY [97]: EMPTY [98]: EMPTY [99]: EMPTY [100]: EMPTY Total items: 0 ============================================================ = After 101 insertions (should see perfect hash) (0 CPU ticks) ============================================================ ProbeHashTable dump; size: 101 buckets [0]: 140 (0) [1]: 180 (1) [2]: 220 (2) [3]: 260 (3) [4]: 300 (4) [5]: 340 (5) [6]: 380 (6) [7]: 420 (7) [8]: 460 (8) [9]: 500 (9) [10]: 540 (10) [11]: 580 (11) [12]: 620 (12) [13]: 660 (13) [14]: 700 (14) [15]: 740 (15) [16]: 780 (16) [17]: 820 (17) [18]: 860 (18) [19]: 900 (19) [20]: 940 (20) [21]: 980 (21) [22]: 1020 (22) [23]: 1060 (23) [24]: 1100 (24) [25]: 1140 (25) [26]: 1180 (26) [27]: 1220 (27) [28]: 1260 (28) [29]: 1300 (29) [30]: 1340 (30) [31]: 1380 (31) [32]: 1420 (32) [33]: 1460 (33) [34]: 1500 (34) [35]: 1540 (35) [36]: 1580 (36) [37]: 1620 (37) [38]: 1660 (38) [39]: 1700 (39) [40]: 1740 (40) [41]: 1780 (41) [42]: 1820 (42) [43]: 1860 (43) [44]: 1900 (44) [45]: 1940 (45) [46]: 1980 (46) [47]: 0 (47) [48]: 40 (48) [49]: 80 (49) [50]: 120 (50) [51]: 160 (51) [52]: 200 (52) [53]: 240 (53) [54]: 280 (54) [55]: 320 (55) [56]: 360 (56) [57]: 400 (57) [58]: 440 (58) [59]: 480 (59) [60]: 520 (60) [61]: 560 (61) [62]: 600 (62) [63]: 640 (63) [64]: 680 (64) [65]: 720 (65) [66]: 760 (66) [67]: 800 (67) [68]: 840 (68) [69]: 880 (69) [70]: 920 (70) [71]: 960 (71) [72]: 1000 (72) [73]: 1040 (73) [74]: 1080 (74) [75]: 1120 (75) [76]: 1160 (76) [77]: 1200 (77) [78]: 1240 (78) [79]: 1280 (79) [80]: 1320 (80) [81]: 1360 (81) [82]: 1400 (82) [83]: 1440 (83) [84]: 1480 (84) [85]: 1520 (85) [86]: 1560 (86) [87]: 1600 (87) [88]: 1640 (88) [89]: 1680 (89) [90]: 1720 (90) [91]: 1760 (91) [92]: 1800 (92) [93]: 1840 (93) [94]: 1880 (94) [95]: 1920 (95) [96]: 1960 (96) [97]: 2000 (97) [98]: 20 (98) [99]: 60 (99) [100]: 100 (100) Total items: 101 ============================================================ = After 101 finds/removes (every bucket should be DELETED) (0 CPU ticks) ============================================================ ProbeHashTable dump; size: 101 buckets [0]: DELETED [1]: DELETED [2]: DELETED [3]: DELETED [4]: DELETED [5]: DELETED [6]: DELETED [7]: DELETED [8]: DELETED [9]: DELETED [10]: DELETED [11]: DELETED [12]: DELETED [13]: DELETED [14]: DELETED [15]: DELETED [16]: DELETED [17]: DELETED [18]: DELETED [19]: DELETED [20]: DELETED [21]: DELETED [22]: DELETED [23]: DELETED [24]: DELETED [25]: DELETED [26]: DELETED [27]: DELETED [28]: DELETED [29]: DELETED [30]: DELETED [31]: DELETED [32]: DELETED [33]: DELETED [34]: DELETED [35]: DELETED [36]: DELETED [37]: DELETED [38]: DELETED [39]: DELETED [40]: DELETED [41]: DELETED [42]: DELETED [43]: DELETED [44]: DELETED [45]: DELETED [46]: DELETED [47]: DELETED [48]: DELETED [49]: DELETED [50]: DELETED [51]: DELETED [52]: DELETED [53]: DELETED [54]: DELETED [55]: DELETED [56]: DELETED [57]: DELETED [58]: DELETED [59]: DELETED [60]: DELETED [61]: DELETED [62]: DELETED [63]: DELETED [64]: DELETED [65]: DELETED [66]: DELETED [67]: DELETED [68]: DELETED [69]: DELETED [70]: DELETED [71]: DELETED [72]: DELETED [73]: DELETED [74]: DELETED [75]: DELETED [76]: DELETED [77]: DELETED [78]: DELETED [79]: DELETED [80]: DELETED [81]: DELETED [82]: DELETED [83]: DELETED [84]: DELETED [85]: DELETED [86]: DELETED [87]: DELETED [88]: DELETED [89]: DELETED [90]: DELETED [91]: DELETED [92]: DELETED [93]: DELETED [94]: DELETED [95]: DELETED [96]: DELETED [97]: DELETED [98]: DELETED [99]: DELETED [100]: DELETED Total items: 0 ============================================================ = After 101 random insertions (0 CPU ticks) ============================================================ ProbeHashTable dump; size: 101 buckets [0]: 84353895 (93) [1]: 939819582 (99) [2]: 945117276 (95) [3]: 1350490027 (3) [4]: 304089172 (3) [5]: 1973594324 (3) [6]: 1129566413 (3) [7]: 1957747793 (7) [8]: 1681692777 (8) [9]: 1653377373 (9) [10]: 1131176229 (10) [11]: 719885386 (11) [12]: 336465782 (12) [13]: 1101513929 (12) [14]: 1911759956 (4) [15]: 846930886 (15) [16]: 1540383426 (16) [17]: 2145174067 (15) [18]: 783368690 (18) [19]: 756898537 (16) [20]: 1125898167 (20) [21]: 608413784 (20) [22]: 749241873 (22) [23]: 135497281 (18) [24]: 294702567 (24) [25]: 2084420925 (14) [26]: 1548233367 (19) [27]: 610515434 (16) [28]: 1801979802 (28) [29]: 1585990364 (21) [30]: 1365180540 (30) [31]: 1889947178 (97) [32]: 1780695788 (99) [33]: 1303455736 (33) [34]: 1632621729 (33) [35]: 1649760492 (35) [36]: 1656478042 (36) [37]: 2089018456 (37) [38]: 1827336327 (35) [39]: 1141616124 (36) [40]: 635723058 (40) [41]: 233665123 (41) [42]: 628175011 (42) [43]: 1734575198 (42) [44]: 805750846 (42) [45]: 1714636915 (45) [46]: 468703135 (45) [47]: 1374344043 (42) [48]: 1100661313 (48) [49]: 982906996 (49) [50]: 709393584 (18) [51]: 1918502651 (15) [52]: 149798315 (52) [53]: 752392754 (95) [54]: 1189641421 (54) [55]: 2053999932 (19) [56]: 1843993368 (86) [57]: 412776091 (57) [58]: 2044897763 (58) [59]: 1059961393 (59) [60]: 859484421 (59) [61]: 1315634022 (61) [62]: 1998898814 (60) [63]: 943947739 (38) [64]: 1984210012 (48) [65]: 356426808 (65) [66]: 424238335 (66) [67]: 278722862 (67) [68]: 35005211 (68) [69]: 760313750 (69) [70]: 1433925857 (70) [71]: 491705403 (71) [72]: 855636226 (44) [73]: 184803526 (73) [74]: 1474612399 (73) [75]: 1411549676 (74) [76]: 1749698586 (13) [77]: 1469348094 (48) [78]: 1956297539 (45) [79]: 1036140795 (2) [80]: 1937477084 (80) [81]: 1424268980 (81) [82]: 1025202362 (82) [83]: 1914544919 (82) [84]: 861021530 (84) [85]: 137806862 (84) [86]: 2001100545 (81) [87]: 1477171087 (87) [88]: 1264095060 (84) [89]: 511702305 (89) [90]: 572660336 (89) [91]: 42999170 (91) [92]: 596516649 (92) [93]: 1102520059 (92) [94]: 1804289383 (94) [95]: 1967513926 (94) [96]: 521595368 (92) [97]: 1369133069 (93) [98]: 1159126505 (92) [99]: 1726956429 (99) [100]: 2038664370 (99) Total items: 101 ============================================================ = After 100 insertions w/bad hash table size and func (Should see lots of collisions) ============================================================ ProbeHashTable dump; size: 100 buckets [0]: 0 (0) [1]: 100 (0) [2]: 200 (0) [3]: 300 (0) [4]: 400 (0) [5]: 500 (0) [6]: 600 (0) [7]: 700 (0) [8]: 800 (0) [9]: 900 (0) [10]: 1000 (0) [11]: 1100 (0) [12]: 1200 (0) [13]: 1300 (0) [14]: 1400 (0) [15]: 1500 (0) [16]: 1600 (0) [17]: 1700 (0) [18]: 1800 (0) [19]: 1900 (0) [20]: 20 (20) [21]: 120 (20) [22]: 220 (20) [23]: 320 (20) [24]: 420 (20) [25]: 520 (20) [26]: 620 (20) [27]: 720 (20) [28]: 820 (20) [29]: 920 (20) [30]: 1020 (20) [31]: 1120 (20) [32]: 1220 (20) [33]: 1320 (20) [34]: 1420 (20) [35]: 1520 (20) [36]: 1620 (20) [37]: 1720 (20) [38]: 1820 (20) [39]: 1920 (20) [40]: 40 (40) [41]: 140 (40) [42]: 240 (40) [43]: 340 (40) [44]: 440 (40) [45]: 540 (40) [46]: 640 (40) [47]: 740 (40) [48]: 840 (40) [49]: 940 (40) [50]: 1040 (40) [51]: 1140 (40) [52]: 1240 (40) [53]: 1340 (40) [54]: 1440 (40) [55]: 1540 (40) [56]: 1640 (40) [57]: 1740 (40) [58]: 1840 (40) [59]: 1940 (40) [60]: 60 (60) [61]: 160 (60) [62]: 260 (60) [63]: 360 (60) [64]: 460 (60) [65]: 560 (60) [66]: 660 (60) [67]: 760 (60) [68]: 860 (60) [69]: 960 (60) [70]: 1060 (60) [71]: 1160 (60) [72]: 1260 (60) [73]: 1360 (60) [74]: 1460 (60) [75]: 1560 (60) [76]: 1660 (60) [77]: 1760 (60) [78]: 1860 (60) [79]: 1960 (60) [80]: 80 (80) [81]: 180 (80) [82]: 280 (80) [83]: 380 (80) [84]: 480 (80) [85]: 580 (80) [86]: 680 (80) [87]: 780 (80) [88]: 880 (80) [89]: 980 (80) [90]: 1080 (80) [91]: 1180 (80) [92]: 1280 (80) [93]: 1380 (80) [94]: 1480 (80) [95]: 1580 (80) [96]: 1680 (80) [97]: 1780 (80) [98]: 1880 (80) [99]: 1980 (80) Total items: 100