Пример #1
0
        public void HistogramSupportsLargeNumbersOfValues()
        {
            var histogram = new InternalHistogram();
            ulong expectedSampleCount = 0;

            for (var i = short.MinValue; i < short.MaxValue; ++i)
            {
                histogram.AddValue(i);
                histogram.AddValue(i);
                histogram.AddValue(i);
                expectedSampleCount += 3;
            }
            Assert.AreEqual(expectedSampleCount, histogram.SampleCount);

            var outputData = new Dictionary<long, uint>();
            histogram.UpdateDictionary(outputData);
            for (var i = short.MinValue; i < short.MaxValue; ++i)
            {
                Assert.AreEqual((uint)3, outputData[i]);
            }
        }
Пример #2
0
        public void HistogramCountsOccurencesOfAddedValues()
        {
            const int oneTimeValue = 7;
            const int multiTimeValue = 42;
            const uint multiTimeValueCount = 13;

            var histogram = new InternalHistogram();
            histogram.AddValue(oneTimeValue);
            for (var i = 0; i < multiTimeValueCount; ++i)
            {
                histogram.AddValue(multiTimeValue);
            }

            var values = new Dictionary<long, uint>();
            histogram.UpdateDictionary(values);
            Assert.AreEqual((uint)1, values[oneTimeValue]);
            Assert.AreEqual(multiTimeValueCount, values[multiTimeValue]);
            Assert.AreEqual(2, values.Count);
        }
Пример #3
0
        public void HistogramUpdateDictionaryDoesNotOverwriteContents()
        {
            var initialData = new Dictionary<long, uint>();
            const long initialDataKey = 867;
            const uint initialDataValue = 5309;
            initialData.Add(initialDataKey, initialDataValue);

            const int histogramValue = 33;
            var histogram = new InternalHistogram();
            histogram.AddValue(histogramValue);
            histogram.AddValue(histogramValue);

            histogram.UpdateDictionary(initialData);
            Assert.AreEqual(2, initialData.Count);
            Assert.AreEqual(initialDataValue, initialData[initialDataKey]);
            Assert.AreEqual((uint)2, initialData[histogramValue]);
        }
Пример #4
0
 public void HistogramInitialContentsAreEmpty()
 {
     var histogram = new InternalHistogram();
     Assert.AreEqual((ulong)0, histogram.SampleCount);
     var d = new Dictionary<long, uint>();
     histogram.UpdateDictionary(d);
     Assert.AreEqual(0, d.Count);
 }