public void FindHistogramCutoffsForVariousPercentages() { for (int i = 0; i < 1000; i++) { histogram.Add(i); } Histogram.BinarySearch(histogram.GetPercentile(0.0d)).ShouldBe(0); Histogram.BinarySearch(histogram.GetPercentile(0.5d)).ShouldBe(22); Histogram.BinarySearch(histogram.GetPercentile(0.9d)).ShouldBe(24); Histogram.BinarySearch(histogram.GetPercentile(0.99d)).ShouldBe(25); Histogram.BinarySearch(histogram.GetPercentile(1.0d)).ShouldBe(25); }
public void FindHistogramCutoffsForVariousPercentages() { for (int i = 0; i < 1000; i++) { histogram.Add(i); } Histogram.BinarySearch(histogram.GetPercentile(0.0d)).Equal(Histogram.BinarySearch(0)); Histogram.BinarySearch(histogram.GetPercentile(0.5d)).Equal(Histogram.BinarySearch(500)); Histogram.BinarySearch(histogram.GetPercentile(0.9d)).Equal(Histogram.BinarySearch(900)); Histogram.BinarySearch(histogram.GetPercentile(0.99d)).Equal(Histogram.BinarySearch(999)); Histogram.BinarySearch(histogram.GetPercentile(1.0d)).Equal(Histogram.BinarySearch(1000)); }
public void Merge() { for (int i = 0; i < 50; i++) { histogram.Add(i * 10); histogram2.Add(i * 10); } var origTotal = histogram.Total; histogram.Merge(histogram2); histogram.Total.ShouldBe(origTotal + histogram2.Total); var stats = histogram.Get(true); var stats2 = histogram2.Get(true); for (int i = 0; i < 50; i++) { var bucket = Histogram.BinarySearch(i * 10); stats[bucket].ShouldBe(2 * stats2[bucket]); } }