Balance must correctly handle duplicate nodes

*** Ordered Adds ***
Testing Container of 1000000 entries with uniform DataDistribution. type = unoptimized
  max height = 10, average = 1.33485
  failed find avg comparisons = 36.5022; avg rotations = 0
  find avg comparisons = 21.4029; avg rotations = 0
  add  avg comparisons = 31.1407; avg rotations = 1.33243
  remove  avg comparisons = 39.0605; avg rotations = 1.33333
  ***CRUDE WEIGHT*** = 24.8768


*** Random Adds ***
Testing Container of 1000000 entries with uniform DataDistribution. type = unoptimized
  max height = 11, average = 1.33238
  failed find avg comparisons = 34.0509; avg rotations = 0
  find avg comparisons = 21.4029; avg rotations = 0
  add  avg comparisons = 31.1407; avg rotations = 1.334
  remove  avg comparisons = 39.4291; avg rotations = 1.33333
  ***CRUDE WEIGHT*** = 24.7167
Testing Container of 1000000 entries with normal DataDistribution. type = unoptimized
  max height = 11, average = 1.33206
  failed find avg comparisons = 34.3299; avg rotations = 0
  find avg comparisons = 21.393; avg rotations = 0
  add  avg comparisons = 31.1253; avg rotations = 1.3339
  remove  avg comparisons = 33.0856; avg rotations = 1.33336
  ***CRUDE WEIGHT*** = 24.2414
Testing Container of 1000000 entries with zipf DataDistribution. type = unoptimized
  max height = 9, average = 1.33252
  failed find avg comparisons = 37.9865; avg rotations = 0
  find avg comparisons = 21.2333; avg rotations = 0
  add  avg comparisons = 31.0932; avg rotations = 1.33333
  remove  avg comparisons = 34.5872; avg rotations = 1.33208
  ***CRUDE WEIGHT*** = 24.5127
Testing Container of 1000000 entries with uniform DataDistribution. type = balanced
  max height = 10, average = 1.33333
  failed find avg comparisons = 22.4029; avg rotations = 0
  find avg comparisons = 21.4029; avg rotations = 0
  add  avg comparisons = 31.1407; avg rotations = 1.33376
  remove  avg comparisons = 39.0458; avg rotations = 1.33333
  ***CRUDE WEIGHT*** = 23.7912
Testing Container of 1000000 entries with normal DataDistribution. type = balanced
  max height = 10, average = 1.33333
  failed find avg comparisons = 22.3913; avg rotations = 0
  find avg comparisons = 21.393; avg rotations = 0
  add  avg comparisons = 31.1253; avg rotations = 1.33292
  remove  avg comparisons = 33.2494; avg rotations = 1.33271
  ***CRUDE WEIGHT*** = 23.3355
Testing Container of 1000000 entries with zipf DataDistribution. type = balanced
  max height = 10, average = 1.33333
  failed find avg comparisons = 22.3429; avg rotations = 0
  find avg comparisons = 21.2333; avg rotations = 0
  add  avg comparisons = 31.0932; avg rotations = 1.33402
  remove  avg comparisons = 34.4145; avg rotations = 1.33383
  ***CRUDE WEIGHT*** = 23.2962
Length         Order     Find Time     Fail Time  Distribution   Description        Weight    Total Time
1000000       Ordered         16108          1721       uniform   unoptimized       24.8768         17829
1000000        Random         20131          2385       uniform   unoptimized       24.7167         22516
1000000        Random         20435          2342        normal   unoptimized       24.2414         22777
1000000        Random         14738          1762          zipf   unoptimized       24.5127         16500
1000000        Random         19518          2216       uniform      balanced       23.7912         21734
1000000        Random         19854          2239        normal      balanced       23.3355         22093
1000000        Random         14295          1680          zipf      balanced       23.2962         15975


Skiplist with string keyed entries
Creating Container of 100000 entries, random add:  302 milliseconds (0.302 seconds)
Find timing: 10 times find each element once, plus search for element not in list once for each entry, total finds = 1100000
uniform distribution
3108 milliseconds (3.108 seconds)
normal distribution
1889 milliseconds (1.889 seconds)
zipf distribution
1486 milliseconds (1.486 seconds)


Rebalance SkipList  25 milliseconds (0.025 seconds)

Find timing: 10 times find each element once, plus search for element not in list once for each entry, total finds = 1100000
uniform distribution
2112 milliseconds (2.112 seconds)
normal distribution
1845 milliseconds (1.845 seconds)
zipf distribution
1532 milliseconds (1.532 seconds)

Skiplist with hashed string keyed entries
Creating Container of 100000 entries, random add:  224 milliseconds (0.224 seconds)
Find timing: 10 times find each element once, plus search for element not in list once for each entry, total finds = 1100000
uniform distribution
1854 milliseconds (1.854 seconds)
normal distribution
1077 milliseconds (1.077 seconds)
zipf distribution
852 milliseconds (0.852 seconds)


