static HistogramDataAccessTest() { LongHistogram = new LongHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); ScaledHistogram = new LongHistogram(1000, HighestTrackableValue * 512, NumberOfSignificantValueDigits); RawHistogram = new LongHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); var scaledRawHistogram = new LongHistogram(1000, HighestTrackableValue * 512, NumberOfSignificantValueDigits); // Log hypothetical scenario: 100 seconds of "perfect" 1msec results, sampled // 100 times per second (10,000 results), followed by a 100 second pause with // a single (100 second) recorded result. Recording is done indicating an expected // interval between samples of 10 msec: for (var i = 0; i < 10000; i++) { LongHistogram.RecordValueWithExpectedInterval(1000 /* 1 msec */, 10000 /* 10 msec expected interval */); ScaledHistogram.RecordValueWithExpectedInterval(1000 * 512 /* 1 msec */, 10000 * 512 /* 10 msec expected interval */); RawHistogram.RecordValue(1000 /* 1 msec */); scaledRawHistogram.RecordValue(1000 * 512/* 1 msec */); } LongHistogram.RecordValueWithExpectedInterval(100000000L /* 100 sec */, 10000 /* 10 msec expected interval */); ScaledHistogram.RecordValueWithExpectedInterval(100000000L * 512 /* 100 sec */, 10000 * 512 /* 10 msec expected interval */); RawHistogram.RecordValue(100000000L /* 100 sec */); scaledRawHistogram.RecordValue(100000000L * 512 /* 100 sec */); PostCorrectedHistogram = RawHistogram.CopyCorrectedForCoordinatedOmission(10000 /* 10 msec expected interval */); PostCorrectedScaledHistogram = scaledRawHistogram.CopyCorrectedForCoordinatedOmission(10000 * 512 /* 10 msec expected interval */); }
static HistogramDataAccessTest() { LongHistogram = new LongHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); ScaledHistogram = new LongHistogram(1000, HighestTrackableValue * 512, NumberOfSignificantValueDigits); RawHistogram = new LongHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); var scaledRawHistogram = new LongHistogram(1000, HighestTrackableValue * 512, NumberOfSignificantValueDigits); // Log hypothetical scenario: 100 seconds of "perfect" 1msec results, sampled // 100 times per second (10,000 results), followed by a 100 second pause with // a single (100 second) recorded result. Recording is done indicating an expected // interval between samples of 10 msec: for (var i = 0; i < 10000; i++) { LongHistogram.RecordValueWithExpectedInterval(1000 /* 1 msec */, 10000 /* 10 msec expected interval */); ScaledHistogram.RecordValueWithExpectedInterval(1000 * 512 /* 1 msec */, 10000 * 512 /* 10 msec expected interval */); RawHistogram.RecordValue(1000 /* 1 msec */); scaledRawHistogram.RecordValue(1000 * 512 /* 1 msec */); } LongHistogram.RecordValueWithExpectedInterval(100000000L /* 100 sec */, 10000 /* 10 msec expected interval */); ScaledHistogram.RecordValueWithExpectedInterval(100000000L * 512 /* 100 sec */, 10000 * 512 /* 10 msec expected interval */); RawHistogram.RecordValue(100000000L /* 100 sec */); scaledRawHistogram.RecordValue(100000000L * 512 /* 100 sec */); PostCorrectedHistogram = RawHistogram.CopyCorrectedForCoordinatedOmission(10000 /* 10 msec expected interval */); PostCorrectedScaledHistogram = scaledRawHistogram.CopyCorrectedForCoordinatedOmission(10000 * 512 /* 10 msec expected interval */); }
public void TestRecordValueWithExpectedInterval() { var longHistogram = new LongHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); longHistogram.RecordValueWithExpectedInterval(TestValueLevel, TestValueLevel / 4); var rawHistogram = new LongHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); rawHistogram.RecordValue(TestValueLevel); // The data will include corrected samples: Assert.AreEqual(1L, longHistogram.GetCountAtValue((TestValueLevel * 1) / 4)); Assert.AreEqual(1L, longHistogram.GetCountAtValue((TestValueLevel * 2) / 4)); Assert.AreEqual(1L, longHistogram.GetCountAtValue((TestValueLevel * 3) / 4)); Assert.AreEqual(1L, longHistogram.GetCountAtValue((TestValueLevel * 4) / 4)); Assert.AreEqual(4L, longHistogram.TotalCount); // But the raw data will not: Assert.AreEqual(0L, rawHistogram.GetCountAtValue((TestValueLevel * 1) / 4)); Assert.AreEqual(0L, rawHistogram.GetCountAtValue((TestValueLevel * 2) / 4)); Assert.AreEqual(0L, rawHistogram.GetCountAtValue((TestValueLevel * 3) / 4)); Assert.AreEqual(1L, rawHistogram.GetCountAtValue((TestValueLevel * 4) / 4)); Assert.AreEqual(1L, rawHistogram.TotalCount); }
public void TestScaledCopy() { var longHistogram = new LongHistogram(1000, HighestTrackableValue, NumberOfSignificantValueDigits); longHistogram.RecordValue(TestValueLevel); longHistogram.RecordValue(TestValueLevel * 10); longHistogram.RecordValueWithExpectedInterval(longHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copy of scaled Histogram:"); AssertEqual(longHistogram, longHistogram.Copy()); var intHistogram = new IntHistogram(1000, HighestTrackableValue, NumberOfSignificantValueDigits); intHistogram.RecordValue(TestValueLevel); intHistogram.RecordValue(TestValueLevel * 10); intHistogram.RecordValueWithExpectedInterval(intHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copy of scaled IntHistogram:"); AssertEqual(intHistogram, intHistogram.Copy()); var shortHistogram = new ShortHistogram(1000, HighestTrackableValue, NumberOfSignificantValueDigits); shortHistogram.RecordValue(TestValueLevel); shortHistogram.RecordValue(TestValueLevel * 10); shortHistogram.RecordValueWithExpectedInterval(shortHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copy of scaled ShortHistogram:"); AssertEqual(shortHistogram, shortHistogram.Copy()); var syncHistogram = new SynchronizedHistogram(1000, HighestTrackableValue, NumberOfSignificantValueDigits); syncHistogram.RecordValue(TestValueLevel); syncHistogram.RecordValue(TestValueLevel * 10); syncHistogram.RecordValueWithExpectedInterval(syncHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copy of scaled SynchronizedHistogram:"); AssertEqual(syncHistogram, syncHistogram.Copy()); }
public void TestScaledCopyInto() { var longHistogram = new LongHistogram(1000, HighestTrackableValue, NumberOfSignificantValueDigits); var targetLongHistogram = new LongHistogram(1000, HighestTrackableValue, NumberOfSignificantValueDigits); longHistogram.RecordValue(TestValueLevel); longHistogram.RecordValue(TestValueLevel * 10); longHistogram.RecordValueWithExpectedInterval(longHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copyInto for scaled Histogram:"); longHistogram.CopyInto(targetLongHistogram); AssertEqual(longHistogram, targetLongHistogram); longHistogram.RecordValue(TestValueLevel * 20); longHistogram.CopyInto(targetLongHistogram); AssertEqual(longHistogram, targetLongHistogram); var intHistogram = new IntHistogram(1000, HighestTrackableValue, NumberOfSignificantValueDigits); var targetIntHistogram = new IntHistogram(1000, HighestTrackableValue, NumberOfSignificantValueDigits); intHistogram.RecordValue(TestValueLevel); intHistogram.RecordValue(TestValueLevel * 10); intHistogram.RecordValueWithExpectedInterval(intHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copyInto for scaled IntHistogram:"); intHistogram.CopyInto(targetIntHistogram); AssertEqual(intHistogram, targetIntHistogram); intHistogram.RecordValue(TestValueLevel * 20); intHistogram.CopyInto(targetIntHistogram); AssertEqual(intHistogram, targetIntHistogram); var shortHistogram = new ShortHistogram(1000, HighestTrackableValue, NumberOfSignificantValueDigits); var targetShortHistogram = new ShortHistogram(1000, HighestTrackableValue, NumberOfSignificantValueDigits); shortHistogram.RecordValue(TestValueLevel); shortHistogram.RecordValue(TestValueLevel * 10); shortHistogram.RecordValueWithExpectedInterval(shortHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copyInto for scaled ShortHistogram:"); shortHistogram.CopyInto(targetShortHistogram); AssertEqual(shortHistogram, targetShortHistogram); shortHistogram.RecordValue(TestValueLevel * 20); shortHistogram.CopyInto(targetShortHistogram); AssertEqual(shortHistogram, targetShortHistogram); var syncHistogram = new SynchronizedHistogram(1000, HighestTrackableValue, NumberOfSignificantValueDigits); var targetSyncHistogram = new SynchronizedHistogram(1000, HighestTrackableValue, NumberOfSignificantValueDigits); syncHistogram.RecordValue(TestValueLevel); syncHistogram.RecordValue(TestValueLevel * 10); syncHistogram.RecordValueWithExpectedInterval(syncHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copyInto for scaled SynchronizedHistogram:"); syncHistogram.CopyInto(targetSyncHistogram); AssertEqual(syncHistogram, targetSyncHistogram); syncHistogram.RecordValue(TestValueLevel * 20); syncHistogram.CopyInto(targetSyncHistogram); AssertEqual(syncHistogram, targetSyncHistogram); }
public void TestCopyInto() { var longHistogram = new LongHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); var targetLongHistogram = new LongHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); longHistogram.RecordValue(TestValueLevel); longHistogram.RecordValue(TestValueLevel * 10); longHistogram.RecordValueWithExpectedInterval(longHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copyInto for Histogram:"); longHistogram.CopyInto(targetLongHistogram); AssertEqual(longHistogram, targetLongHistogram); longHistogram.RecordValue(TestValueLevel * 20); longHistogram.CopyInto(targetLongHistogram); AssertEqual(longHistogram, targetLongHistogram); var intHistogram = new IntHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); var targetIntHistogram = new IntHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); intHistogram.RecordValue(TestValueLevel); intHistogram.RecordValue(TestValueLevel * 10); intHistogram.RecordValueWithExpectedInterval(intHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copyInto for IntHistogram:"); intHistogram.CopyInto(targetIntHistogram); AssertEqual(intHistogram, targetIntHistogram); intHistogram.RecordValue(TestValueLevel * 20); intHistogram.CopyInto(targetIntHistogram); AssertEqual(intHistogram, targetIntHistogram); var shortHistogram = new ShortHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); var targetShortHistogram = new ShortHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); shortHistogram.RecordValue(TestValueLevel); shortHistogram.RecordValue(TestValueLevel * 10); shortHistogram.RecordValueWithExpectedInterval(shortHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copyInto for ShortHistogram:"); shortHistogram.CopyInto(targetShortHistogram); AssertEqual(shortHistogram, targetShortHistogram); shortHistogram.RecordValue(TestValueLevel * 20); shortHistogram.CopyInto(targetShortHistogram); AssertEqual(shortHistogram, targetShortHistogram); Console.WriteLine("Testing copyInto for AtomicHistogram:"); var syncHistogram = new SynchronizedHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); var targetSyncHistogram = new SynchronizedHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); syncHistogram.RecordValue(TestValueLevel); syncHistogram.RecordValue(TestValueLevel * 10); syncHistogram.RecordValueWithExpectedInterval(syncHistogram.HighestTrackableValue - 1, 31000); // Should this really be 31, if it is the test takes 1min!!!); Console.WriteLine("Testing copyInto for SynchronizedHistogram:"); syncHistogram.CopyInto(targetSyncHistogram); AssertEqual(syncHistogram, targetSyncHistogram); syncHistogram.RecordValue(TestValueLevel * 20); syncHistogram.CopyInto(targetSyncHistogram); AssertEqual(syncHistogram, targetSyncHistogram); }
public void TestCopy() { var longHistogram = new LongHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); longHistogram.RecordValue(TestValueLevel); longHistogram.RecordValue(TestValueLevel * 10); longHistogram.RecordValueWithExpectedInterval(longHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copy of Histogram:"); AssertEqual(longHistogram, longHistogram.Copy()); var intHistogram = new IntHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); intHistogram.RecordValue(TestValueLevel); intHistogram.RecordValue(TestValueLevel * 10); intHistogram.RecordValueWithExpectedInterval(intHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copy of IntHistogram:"); AssertEqual(intHistogram, intHistogram.Copy()); var shortHistogram = new ShortHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); shortHistogram.RecordValue(TestValueLevel); shortHistogram.RecordValue(TestValueLevel * 10); shortHistogram.RecordValueWithExpectedInterval(shortHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copy of ShortHistogram:"); AssertEqual(shortHistogram, shortHistogram.Copy()); var syncHistogram = new SynchronizedHistogram(HighestTrackableValue, NumberOfSignificantValueDigits); syncHistogram.RecordValue(TestValueLevel); syncHistogram.RecordValue(TestValueLevel * 10); syncHistogram.RecordValueWithExpectedInterval(syncHistogram.HighestTrackableValue - 1, 31000); Console.WriteLine("Testing copy of SynchronizedHistogram:"); AssertEqual(syncHistogram, syncHistogram.Copy()); }