Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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]);
            }
        }