diff options
Diffstat (limited to 'src/test/java/org')
| -rw-r--r-- | src/test/java/org/HdrHistogram/HistogramSketchTest.java | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/src/test/java/org/HdrHistogram/HistogramSketchTest.java b/src/test/java/org/HdrHistogram/HistogramSketchTest.java new file mode 100644 index 0000000..52f48bc --- /dev/null +++ b/src/test/java/org/HdrHistogram/HistogramSketchTest.java @@ -0,0 +1,114 @@ +package org.HdrHistogram;
+
+import org.junit.Test;
+
+import java.nio.ByteBuffer;
+import java.util.concurrent.ThreadLocalRandom;
+
+public class HistogramSketchTest {
+ String line = "###################";
+
+ @Test
+ public void testArrayHistogram() {
+ ArrayHistogram histogram = new ArrayHistogram(1);
+ System.out.println(histogram.describe());
+ for (int i = 0; i < 10000; i++) {
+ histogram.recordValue(i);
+ }
+ System.out.println(histogram.describe());
+ for (Percentile percentile : histogram.percentileList(5)) {
+ System.out.println(percentile);
+ }
+ System.out.println(line);
+ histogram = new ArrayHistogram(1);
+ for (int i = 0; i < 10000; i++) {
+ histogram.recordValue(ThreadLocalRandom.current().nextLong(100000));
+ }
+ System.out.println(histogram.describe());
+ for (Percentile percentile : histogram.percentileList(5)) {
+ System.out.println(percentile);
+ }
+ }
+
+ @Test
+ public void testDirectArrayHistogram() {
+ ByteBuffer byteBuffer = ByteBuffer.allocate(DirectArrayHistogram.getUpdatableSerializationBytes(1, 100000, 1));
+ DirectArrayHistogram histogram = new DirectArrayHistogram(1, 100000, 1,
+ byteBuffer);
+ System.out.println(histogram.describe());
+ for (int i = 0; i < 10000; i++) {
+ histogram.recordValue(i);
+ }
+ System.out.println(histogram.describe());
+ for (Percentile percentile : histogram.percentileList(5)) {
+ System.out.println(percentile);
+ }
+ System.out.println(line);
+ histogram.resetByteBuffer(ByteBuffer.allocate(DirectArrayHistogram.getUpdatableSerializationBytes(1, 100000, 1)));
+ histogram.reset();
+ for (int i = 0; i < 10000; i++) {
+ histogram.recordValue(ThreadLocalRandom.current().nextLong(100000));
+ }
+ System.out.println(histogram.describe());
+ for (Percentile percentile : histogram.percentileList(5)) {
+ System.out.println(percentile);
+ }
+ }
+
+ @Test
+ public void testCopy() {
+ ArrayHistogram histogram1 = new ArrayHistogram(1);
+ ByteBuffer byteBuffer = ByteBuffer.allocate(DirectArrayHistogram.getUpdatableSerializationBytes(1, 100000, 1));
+ DirectArrayHistogram histogram2 = new DirectArrayHistogram(1, 100000, 1,
+ byteBuffer);
+ for (int i = 0; i < 10000; i++) {
+ histogram1.recordValue(i);
+ histogram2.recordValue(i);
+ }
+
+ ArrayHistogram copy1 = histogram1.copy();
+ ArrayHistogram copy2 = histogram2.copy();
+
+ System.out.println(histogram1.describe());
+ System.out.println(histogram2.describe());
+ System.out.println(line);
+
+ System.out.println(copy1.describe());
+ System.out.println(copy2.describe());
+ }
+
+ @Test
+ public void testArrayHistogramMerge() {
+ ArrayHistogram histogram1 = new ArrayHistogram(1);
+ for (int i = 0; i < 1000; i++) {
+ histogram1.recordValue(i);
+ }
+ byte[] bytes1 = histogram1.toBytes();
+
+ DirectMapHistogram directHistogram = DirectMapHistogram.wrapBytes(bytes1);
+ ArrayHistogram histogram2 = new ArrayHistogram(1);
+ histogram2.merge(directHistogram);
+ System.out.println(histogram2.describe());
+ }
+
+ @Test
+ public void testDirectArrayHistogramMerge() {
+ ArrayHistogram histogram1 = new ArrayHistogram(1);
+ int updatableSerializationBytes = DirectArrayHistogram.getUpdatableSerializationBytes(1, 100000, 1);
+ DirectArrayHistogram histogram2 = new DirectArrayHistogram(1, 100000, 1, ByteBuffer.allocate(updatableSerializationBytes));
+ for (int i = 0; i < 10000; i++) {
+ histogram1.recordValue(i);
+ histogram2.recordValue(i);
+ }
+ byte[] bytes1 = histogram1.toBytes();
+ byte[] bytes2 = histogram2.toBytes();
+
+ DirectArrayHistogram histogram = new DirectArrayHistogram(1, 100000, 1, ByteBuffer.allocate(updatableSerializationBytes));
+ histogram.merge(DirectMapHistogram.wrapBytes(bytes1));
+ histogram.merge(DirectMapHistogram.wrapBytes(bytes2));
+ System.out.println(histogram.describe());
+ for (Percentile percentile : histogram.percentileList(5)) {
+ System.out.println(percentile);
+ }
+ }
+}
\ No newline at end of file |
