From 862058d80f201416edc199877a52a2c5597cb401 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Fri, 9 Dec 2022 14:27:58 -0600 Subject: [PATCH] make TriangularStep ctor public --- ...ularStepFunction.java => TriangularStep.java} | 14 +++++++------- ...FunctionTest.java => TriangularStepTest.java} | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) rename virtdata-lib-basics/src/main/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/{TriangularStepFunction.java => TriangularStep.java} (85%) rename virtdata-lib-basics/src/test/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/{TriangularStepFunctionTest.java => TriangularStepTest.java} (89%) diff --git a/virtdata-lib-basics/src/main/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/TriangularStepFunction.java b/virtdata-lib-basics/src/main/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/TriangularStep.java similarity index 85% rename from virtdata-lib-basics/src/main/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/TriangularStepFunction.java rename to virtdata-lib-basics/src/main/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/TriangularStep.java index 9d7d8f8ae..c9bc86a9f 100644 --- a/virtdata-lib-basics/src/main/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/TriangularStepFunction.java +++ b/virtdata-lib-basics/src/main/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/TriangularStep.java @@ -38,7 +38,7 @@ import java.util.function.LongUnaryOperator; * join the project or let us know.

*/ @ThreadSafeMapper -public class TriangularStepFunction implements LongUnaryOperator { +public class TriangularStep implements LongUnaryOperator { private final Hash hasher = new Hash(); private final long average; @@ -47,9 +47,9 @@ public class TriangularStepFunction implements LongUnaryOperator { private final long variance; - @Example({"TriangularStepFunction(100,20)","Create a sequence of values where the average is 100, but the range of values is between 80 and 120."}) - @Example({"TriangularStepFunction(80,10)","Create a sequence of values where the average is 80, but the range of values is between 70 and 90."}) - TriangularStepFunction(long average, long variance) { + @Example({"TriangularStep(100,20)","Create a sequence of values where the average is 100, but the range of values is between 80 and 120."}) + @Example({"TriangularStep(80,10)","Create a sequence of values where the average is 80, but the range of values is between 70 and 90."}) + public TriangularStep(long average, long variance) { if (average<=0 || variance < 0 || variance > average) { throw new RuntimeException( "The average must be positive, variance non-negative and the variance must be less than the average. " + @@ -61,7 +61,7 @@ public class TriangularStepFunction implements LongUnaryOperator { this.sizer = new HashRange(average-variance,average+variance); } - TriangularStepFunction(long average) { + TriangularStep(long average) { this(average, average/2); } @@ -71,9 +71,9 @@ public class TriangularStepFunction implements LongUnaryOperator { long count = operand / average; // offset within window long offset = operand % average; - // base of window + // base of window, same as count*average long base = operand - offset; - // variate up to window size + // variate + or - from average long variance = sizer.applyAsLong(base); // variate offset from start of window long slice = base + variance; diff --git a/virtdata-lib-basics/src/test/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/TriangularStepFunctionTest.java b/virtdata-lib-basics/src/test/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/TriangularStepTest.java similarity index 89% rename from virtdata-lib-basics/src/test/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/TriangularStepFunctionTest.java rename to virtdata-lib-basics/src/test/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/TriangularStepTest.java index a835fa3d5..8a8ab8574 100644 --- a/virtdata-lib-basics/src/test/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/TriangularStepFunctionTest.java +++ b/virtdata-lib-basics/src/test/java/io/nosqlbench/virtdata/library/basics/shared/from_long/to_long/TriangularStepTest.java @@ -25,14 +25,14 @@ import java.util.stream.IntStream; import static org.assertj.core.api.Assertions.assertThat; -public class TriangularStepFunctionTest { +public class TriangularStepTest { private static final int LABEL=0; private static final int FREQUENCY=1; @Test - public void testExample1() { - TriangularStepFunction e1 = new TriangularStepFunction(100, 20); + public void testStepExample1() { + TriangularStep e1 = new TriangularStep(100, 20); int[] runLengths = this.rleStatsFor(e1, 0, 10000); System.out.println(Arrays.toString(runLengths)); assertThat(IntStream.of(runLengths).min().orElseThrow()).isEqualTo(80L); @@ -40,8 +40,8 @@ public class TriangularStepFunctionTest { } @Test - public void testExample2() { - TriangularStepFunction e1 = new TriangularStepFunction(80, 10); + public void testStepExample2() { + TriangularStep e1 = new TriangularStep(80, 10); int[] runLengths = this.rleStatsFor(e1, 0, 10000); System.out.println(Arrays.toString(runLengths)); assertThat(IntStream.of(runLengths).min().orElseThrow()).isEqualTo(70L); @@ -50,7 +50,7 @@ public class TriangularStepFunctionTest { @Test public void testIncrementalVariance() { - TriangularStepFunction f = new TriangularStepFunction(100, 0); + TriangularStep f = new TriangularStep(100, 0); assertThat(f.applyAsLong(0L)).isEqualTo(0L); assertThat(f.applyAsLong(1L)).isEqualTo(0L); assertThat(f.applyAsLong(99L)).isEqualTo(0L); @@ -60,7 +60,7 @@ public class TriangularStepFunctionTest { @Test public void testVariance() { long first=0; - TriangularStepFunction f = new TriangularStepFunction(100,1); + TriangularStep f = new TriangularStep(100,1); var rlestats = rleStatsFor(f, 0, 100000); LongSummaryStatistics stats99to101 = statsForRle((int) f.applyAsLong(first),rlestats); assertThat(stats99to101.getMin()).isEqualTo(99L); @@ -74,7 +74,7 @@ public class TriangularStepFunctionTest { assertThat(histoStats.getAverage()).isEqualTo(100); } - private int[] rleStatsFor(TriangularStepFunction f, long firstTrialIncl, long lastTrialExcl) { + private int[] rleStatsFor(TriangularStep f, long firstTrialIncl, long lastTrialExcl) { long firstBucket = f.applyAsLong(firstTrialIncl); long lastBucket = f.applyAsLong(lastTrialExcl); if (firstBucket>Integer.MAX_VALUE||lastBucket>Integer.MAX_VALUE) {