public void testReestablishTotalCount() { ShortHistogram histogram = new ShortHistogram(highestTrackableValue, 2); histogram.recordValue(testValueLevel); histogram.recordValue(testValueLevel * 10); Assert.assertFalse(histogram.hasOverflowed()); // This should overflow a ShortHistogram: histogram.recordValueWithExpectedInterval(histogram.getHighestTrackableValue() - 1, 500); Assert.assertTrue(histogram.hasOverflowed()); histogram.reestablishTotalCount(); Assert.assertFalse(histogram.hasOverflowed()); }
public void testOverflow() { ShortHistogram histogram = new ShortHistogram(highestTrackableValue, 2); histogram.recordValue(testValueLevel); histogram.recordValue(testValueLevel * 10); Assert.assertFalse(histogram.hasOverflowed()); // This should overflow a ShortHistogram: histogram.recordValueWithExpectedInterval(histogram.getHighestTrackableValue() - 1, 500); Assert.assertTrue(histogram.hasOverflowed()); Console.WriteLine("Histogram percentile output should show overflow:"); histogram.outputPercentileDistribution(Console.Out, 5, 100.0); Console.WriteLine("\nHistogram percentile output should be in CSV format and show overflow:"); histogram.outputPercentileDistribution(Console.Out, 5, 100.0, true); Console.WriteLine(""); }
public void testScaledCopy() { Histogram histogram = new Histogram(1000, highestTrackableValue, numberOfSignificantValueDigits); histogram.recordValue(testValueLevel); histogram.recordValue(testValueLevel * 10); histogram.recordValueWithExpectedInterval(histogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copy of scaled Histogram:"); assertEqual(histogram, histogram.copy()); IntHistogram intHistogram = new IntHistogram(1000, highestTrackableValue, numberOfSignificantValueDigits); intHistogram.recordValue(testValueLevel); intHistogram.recordValue(testValueLevel * 10); intHistogram.recordValueWithExpectedInterval(intHistogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copy of scaled IntHistogram:"); assertEqual(intHistogram, intHistogram.copy()); ShortHistogram shortHistogram = new ShortHistogram(1000, highestTrackableValue, numberOfSignificantValueDigits); shortHistogram.recordValue(testValueLevel); shortHistogram.recordValue(testValueLevel * 10); shortHistogram.recordValueWithExpectedInterval(shortHistogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copy of scaled ShortHistogram:"); assertEqual(shortHistogram, shortHistogram.copy()); AtomicHistogram atomicHistogram = new AtomicHistogram(1000, highestTrackableValue, numberOfSignificantValueDigits); atomicHistogram.recordValue(testValueLevel); atomicHistogram.recordValue(testValueLevel * 10); atomicHistogram.recordValueWithExpectedInterval(atomicHistogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copy of scaled AtomicHistogram:"); assertEqual(atomicHistogram, atomicHistogram.copy()); SynchronizedHistogram syncHistogram = new SynchronizedHistogram(1000, highestTrackableValue, numberOfSignificantValueDigits); syncHistogram.recordValue(testValueLevel); syncHistogram.recordValue(testValueLevel * 10); syncHistogram.recordValueWithExpectedInterval(syncHistogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copy of scaled SynchronizedHistogram:"); assertEqual(syncHistogram, syncHistogram.copy()); }
public void testHistogramEncoding() //throws Exception { ShortHistogram shortHistogram = new ShortHistogram(highestTrackableValue, 3); IntHistogram intHistogram = new IntHistogram(highestTrackableValue, 3); Histogram histogram = new Histogram(highestTrackableValue, 3); AtomicHistogram atomicHistogram = new AtomicHistogram(highestTrackableValue, 3); SynchronizedHistogram synchronizedHistogram = new SynchronizedHistogram(highestTrackableValue, 3); for (int i = 0; i < 10000; i++) { shortHistogram.recordValueWithExpectedInterval(1000 /* 1 msec */, 10000 /* 10 msec expected interval */); intHistogram.recordValueWithExpectedInterval(2000 /* 1 msec */, 10000 /* 10 msec expected interval */); histogram.recordValueWithExpectedInterval(3000 /* 1 msec */, 10000 /* 10 msec expected interval */); atomicHistogram.recordValueWithExpectedInterval(4000 /* 1 msec */, 10000 /* 10 msec expected interval */); synchronizedHistogram.recordValueWithExpectedInterval(5000 /* 1 msec */, 10000 /* 10 msec expected interval */); } Console.WriteLine("\n\nTesting encoding of a ShortHistogram:"); ByteBuffer targetBuffer = ByteBuffer.allocate(shortHistogram.getNeededByteBufferCapacity()); shortHistogram.encodeIntoByteBuffer(targetBuffer); //Console.WriteLine("After ENCODING TargetBuffer length = {0} (position {1}), shortHistogram size = {2}", // targetBuffer.capacity(), targetBuffer.position(), shortHistogram.getTotalCount()); targetBuffer.rewind(); ShortHistogram shortHistogram2 = ShortHistogram.decodeFromByteBuffer(targetBuffer, 0); Assert.assertEquals(shortHistogram, shortHistogram2); ByteBuffer targetCompressedBuffer = ByteBuffer.allocate(shortHistogram.getNeededByteBufferCapacity()); shortHistogram.encodeIntoCompressedByteBuffer(targetCompressedBuffer); targetCompressedBuffer.rewind(); ShortHistogram shortHistogram3 = ShortHistogram.decodeFromCompressedByteBuffer(targetCompressedBuffer, 0); Assert.assertEquals(shortHistogram, shortHistogram3); Console.WriteLine("\n\nTesting encoding of a IntHistogram:"); targetBuffer = ByteBuffer.allocate(intHistogram.getNeededByteBufferCapacity()); intHistogram.encodeIntoByteBuffer(targetBuffer); //Console.WriteLine("After ENCODING TargetBuffer length = {0} (position = {1}), intHistogram size = {2}", // targetBuffer.capacity(), targetBuffer.position(), intHistogram.getTotalCount()); targetBuffer.rewind(); IntHistogram intHistogram2 = IntHistogram.decodeFromByteBuffer(targetBuffer, 0); Assert.assertEquals(intHistogram, intHistogram2); targetCompressedBuffer = ByteBuffer.allocate(intHistogram.getNeededByteBufferCapacity()); intHistogram.encodeIntoCompressedByteBuffer(targetCompressedBuffer); targetCompressedBuffer.rewind(); IntHistogram intHistogram3 = IntHistogram.decodeFromCompressedByteBuffer(targetCompressedBuffer, 0); Assert.assertEquals(intHistogram, intHistogram3); Console.WriteLine("\n\nTesting encoding of a Histogram (long):"); targetBuffer = ByteBuffer.allocate(histogram.getNeededByteBufferCapacity()); histogram.encodeIntoByteBuffer(targetBuffer); //Console.WriteLine("After ENCODING TargetBuffer length = {0} (position = {1}), histogram size = {2}", // targetBuffer.capacity(), targetBuffer.position(), histogram.getTotalCount()); targetBuffer.rewind(); Histogram histogram2 = Histogram.decodeFromByteBuffer(targetBuffer, 0); Assert.assertEquals(histogram, histogram2); targetCompressedBuffer = ByteBuffer.allocate(histogram.getNeededByteBufferCapacity()); histogram.encodeIntoCompressedByteBuffer(targetCompressedBuffer); targetCompressedBuffer.rewind(); Histogram histogram3 = Histogram.decodeFromCompressedByteBuffer(targetCompressedBuffer, 0); Assert.assertEquals(histogram, histogram3); Console.WriteLine("\n\nTesting encoding of a AtomicHistogram (long):"); targetBuffer = ByteBuffer.allocate(atomicHistogram.getNeededByteBufferCapacity()); atomicHistogram.encodeIntoByteBuffer(targetBuffer); //Console.WriteLine("After ENCODING TargetBuffer length = {0} (position {1}), atomicHistogram size = {2}", // targetBuffer.capacity(), targetBuffer.position(), atomicHistogram.getTotalCount()); targetBuffer.rewind(); AtomicHistogram atomicHistogram2 = AtomicHistogram.decodeFromByteBuffer(targetBuffer, 0); Assert.assertEquals(atomicHistogram, atomicHistogram2); targetCompressedBuffer = ByteBuffer.allocate(atomicHistogram.getNeededByteBufferCapacity()); atomicHistogram.encodeIntoCompressedByteBuffer(targetCompressedBuffer); targetCompressedBuffer.rewind(); AtomicHistogram atomicHistogram3 = AtomicHistogram.decodeFromCompressedByteBuffer(targetCompressedBuffer, 0); Assert.assertEquals(atomicHistogram, atomicHistogram3); Console.WriteLine("\n\nTesting encoding of a SynchronizedHistogram:"); targetBuffer = ByteBuffer.allocate(synchronizedHistogram.getNeededByteBufferCapacity()); synchronizedHistogram.encodeIntoByteBuffer(targetBuffer); //Console.WriteLine("After ENCODING TargetBuffer length = {0} (position {1}), synchronizedHistogram size = {2}", // targetBuffer.capacity(), targetBuffer.position(), synchronizedHistogram.getTotalCount()); targetBuffer.rewind(); SynchronizedHistogram synchronizedHistogram2 = SynchronizedHistogram.decodeFromByteBuffer(targetBuffer, 0); Assert.assertEquals(synchronizedHistogram, synchronizedHistogram2); targetCompressedBuffer = ByteBuffer.allocate(synchronizedHistogram.getNeededByteBufferCapacity()); synchronizedHistogram.encodeIntoCompressedByteBuffer(targetCompressedBuffer); targetCompressedBuffer.rewind(); SynchronizedHistogram synchronizedHistogram3 = SynchronizedHistogram.decodeFromCompressedByteBuffer(targetCompressedBuffer, 0); Assert.assertEquals(synchronizedHistogram, synchronizedHistogram3); }
public void testScaledCopyInto() { Histogram histogram = new Histogram(1000, highestTrackableValue, numberOfSignificantValueDigits); Histogram targetHistogram = new Histogram(1000, highestTrackableValue, numberOfSignificantValueDigits); histogram.recordValue(testValueLevel); histogram.recordValue(testValueLevel * 10); histogram.recordValueWithExpectedInterval(histogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copyInto for scaled Histogram:"); histogram.copyInto(targetHistogram); assertEqual(histogram, targetHistogram); histogram.recordValue(testValueLevel * 20); histogram.copyInto(targetHistogram); assertEqual(histogram, targetHistogram); IntHistogram intHistogram = new IntHistogram(1000, highestTrackableValue, numberOfSignificantValueDigits); IntHistogram targetIntHistogram = new IntHistogram(1000, highestTrackableValue, numberOfSignificantValueDigits); intHistogram.recordValue(testValueLevel); intHistogram.recordValue(testValueLevel * 10); intHistogram.recordValueWithExpectedInterval(intHistogram.getHighestTrackableValue() - 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); ShortHistogram shortHistogram = new ShortHistogram(1000, highestTrackableValue, numberOfSignificantValueDigits); ShortHistogram targetShortHistogram = new ShortHistogram(1000, highestTrackableValue, numberOfSignificantValueDigits); shortHistogram.recordValue(testValueLevel); shortHistogram.recordValue(testValueLevel * 10); shortHistogram.recordValueWithExpectedInterval(shortHistogram.getHighestTrackableValue() - 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); AtomicHistogram atomicHistogram = new AtomicHistogram(1000, highestTrackableValue, numberOfSignificantValueDigits); AtomicHistogram targetAtomicHistogram = new AtomicHistogram(1000, highestTrackableValue, numberOfSignificantValueDigits); atomicHistogram.recordValue(testValueLevel); atomicHistogram.recordValue(testValueLevel * 10); atomicHistogram.recordValueWithExpectedInterval(atomicHistogram.getHighestTrackableValue() - 1, 31000); atomicHistogram.copyInto(targetAtomicHistogram); assertEqual(atomicHistogram, targetAtomicHistogram); atomicHistogram.recordValue(testValueLevel * 20); Console.WriteLine("Testing copyInto for scaled AtomicHistogram:"); atomicHistogram.copyInto(targetAtomicHistogram); assertEqual(atomicHistogram, targetAtomicHistogram); SynchronizedHistogram syncHistogram = new SynchronizedHistogram(1000, highestTrackableValue, numberOfSignificantValueDigits); SynchronizedHistogram targetSyncHistogram = new SynchronizedHistogram(1000, highestTrackableValue, numberOfSignificantValueDigits); syncHistogram.recordValue(testValueLevel); syncHistogram.recordValue(testValueLevel * 10); syncHistogram.recordValueWithExpectedInterval(syncHistogram.getHighestTrackableValue() - 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() { Histogram histogram = new Histogram(highestTrackableValue, numberOfSignificantValueDigits); Histogram targetHistogram = new Histogram(highestTrackableValue, numberOfSignificantValueDigits); histogram.recordValue(testValueLevel); histogram.recordValue(testValueLevel * 10); histogram.recordValueWithExpectedInterval(histogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copyInto for Histogram:"); histogram.copyInto(targetHistogram); assertEqual(histogram, targetHistogram); histogram.recordValue(testValueLevel * 20); histogram.copyInto(targetHistogram); assertEqual(histogram, targetHistogram); IntHistogram intHistogram = new IntHistogram(highestTrackableValue, numberOfSignificantValueDigits); IntHistogram targetIntHistogram = new IntHistogram(highestTrackableValue, numberOfSignificantValueDigits); intHistogram.recordValue(testValueLevel); intHistogram.recordValue(testValueLevel * 10); intHistogram.recordValueWithExpectedInterval(intHistogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copyInto for IntHistogram:"); intHistogram.copyInto(targetIntHistogram); assertEqual(intHistogram, targetIntHistogram); intHistogram.recordValue(testValueLevel * 20); intHistogram.copyInto(targetIntHistogram); assertEqual(intHistogram, targetIntHistogram); ShortHistogram shortHistogram = new ShortHistogram(highestTrackableValue, numberOfSignificantValueDigits); ShortHistogram targetShortHistogram = new ShortHistogram(highestTrackableValue, numberOfSignificantValueDigits); shortHistogram.recordValue(testValueLevel); shortHistogram.recordValue(testValueLevel * 10); shortHistogram.recordValueWithExpectedInterval(shortHistogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copyInto for ShortHistogram:"); shortHistogram.copyInto(targetShortHistogram); assertEqual(shortHistogram, targetShortHistogram); shortHistogram.recordValue(testValueLevel * 20); shortHistogram.copyInto(targetShortHistogram); assertEqual(shortHistogram, targetShortHistogram); AtomicHistogram atomicHistogram = new AtomicHistogram(highestTrackableValue, numberOfSignificantValueDigits); AtomicHistogram targetAtomicHistogram = new AtomicHistogram(highestTrackableValue, numberOfSignificantValueDigits); atomicHistogram.recordValue(testValueLevel); atomicHistogram.recordValue(testValueLevel * 10); atomicHistogram.recordValueWithExpectedInterval(atomicHistogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copyInto for AtomicHistogram:"); atomicHistogram.copyInto(targetAtomicHistogram); assertEqual(atomicHistogram, targetAtomicHistogram); atomicHistogram.recordValue(testValueLevel * 20); atomicHistogram.copyInto(targetAtomicHistogram); assertEqual(atomicHistogram, targetAtomicHistogram); SynchronizedHistogram syncHistogram = new SynchronizedHistogram(highestTrackableValue, numberOfSignificantValueDigits); SynchronizedHistogram targetSyncHistogram = new SynchronizedHistogram(highestTrackableValue, numberOfSignificantValueDigits); syncHistogram.recordValue(testValueLevel); syncHistogram.recordValue(testValueLevel * 10); syncHistogram.recordValueWithExpectedInterval(syncHistogram.getHighestTrackableValue() - 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() { Histogram histogram = new Histogram(highestTrackableValue, numberOfSignificantValueDigits); histogram.recordValue(testValueLevel); histogram.recordValue(testValueLevel * 10); histogram.recordValueWithExpectedInterval(histogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copy of Histogram:"); assertEqual(histogram, histogram.copy()); IntHistogram intHistogram = new IntHistogram(highestTrackableValue, numberOfSignificantValueDigits); intHistogram.recordValue(testValueLevel); intHistogram.recordValue(testValueLevel * 10); intHistogram.recordValueWithExpectedInterval(intHistogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copy of IntHistogram:"); assertEqual(intHistogram, intHistogram.copy()); ShortHistogram shortHistogram = new ShortHistogram(highestTrackableValue, numberOfSignificantValueDigits); shortHistogram.recordValue(testValueLevel); shortHistogram.recordValue(testValueLevel * 10); shortHistogram.recordValueWithExpectedInterval(shortHistogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copy of ShortHistogram:"); assertEqual(shortHistogram, shortHistogram.copy()); AtomicHistogram atomicHistogram = new AtomicHistogram(highestTrackableValue, numberOfSignificantValueDigits); atomicHistogram.recordValue(testValueLevel); atomicHistogram.recordValue(testValueLevel * 10); atomicHistogram.recordValueWithExpectedInterval(atomicHistogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copy of AtomicHistogram:"); assertEqual(atomicHistogram, atomicHistogram.copy()); SynchronizedHistogram syncHistogram = new SynchronizedHistogram(highestTrackableValue, numberOfSignificantValueDigits); syncHistogram.recordValue(testValueLevel); syncHistogram.recordValue(testValueLevel * 10); syncHistogram.recordValueWithExpectedInterval(syncHistogram.getHighestTrackableValue() - 1, 31000); Console.WriteLine("Testing copy of SynchronizedHistogram:"); assertEqual(syncHistogram, syncHistogram.copy()); }