diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/BucketSequencer.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/BucketSequencer.java index d5a6fbd13..2d2d591db 100644 --- a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/BucketSequencer.java +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/BucketSequencer.java @@ -83,7 +83,9 @@ public class BucketSequencer implements ElementSequencer { for (int i = 0; i < elems.size(); i++) { T elem = elems.get(i); long ratio = ratios.get(i); - buckets.add(new OpBucket<>(elem,i,ratio)); + if (ratio>0) { + buckets.add(new OpBucket<>(elem,i,ratio)); + } } while(!buckets.isEmpty()) { diff --git a/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/planning/BucketSequencerTest.java b/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/planning/BucketSequencerTest.java new file mode 100644 index 000000000..98b90d262 --- /dev/null +++ b/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/planning/BucketSequencerTest.java @@ -0,0 +1,19 @@ +package io.nosqlbench.engine.api.activityapi.planning; + +import org.junit.Test; + +import java.util.List; + +import static org.junit.Assert.*; +import static org.assertj.core.api.Assertions.assertThat; + +public class BucketSequencerTest { + + @Test + public void testBasicRatios() { + BucketSequencer buckets = new BucketSequencer<>(); + int[] ints = buckets.seqIndexesByRatios(List.of("a","b","c"), List.of(0L, 2L, 3L)); + assertThat(ints).containsExactly(1,2,1,2,2); + } + +} diff --git a/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/planning/ConcatSequencerTest.java b/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/planning/ConcatSequencerTest.java index 651b4f0dc..3b312eaa2 100644 --- a/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/planning/ConcatSequencerTest.java +++ b/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/planning/ConcatSequencerTest.java @@ -40,10 +40,17 @@ public class ConcatSequencerTest { assertThat(ints).containsExactly(0,0,1,1,1,1,1); } + @Test + public void testSeqIndexWithZeroRatios() { + ConcatSequencer concat = new ConcatSequencer<>(); + int[] ints = concat.seqIndexesByRatios(strings(a,b), ratios(0,3)); + assertThat(ints).containsExactly(1,1,1); + } + private static List strings(String... strings) { return Arrays.asList(strings); } private static List ratios(long... longs) { return Arrays.stream(longs).boxed().collect(Collectors.toList()); } -} \ No newline at end of file +} diff --git a/engine-api/src/test/java/io/nosqlbench/engine/api/util/IntervalSequencerTest.java b/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/planning/planning/IntervalSequencerTest.java similarity index 91% rename from engine-api/src/test/java/io/nosqlbench/engine/api/util/IntervalSequencerTest.java rename to engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/planning/planning/IntervalSequencerTest.java index fe83eb80b..cd89599b4 100644 --- a/engine-api/src/test/java/io/nosqlbench/engine/api/util/IntervalSequencerTest.java +++ b/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/planning/planning/IntervalSequencerTest.java @@ -15,7 +15,7 @@ * / */ -package io.nosqlbench.engine.api.util; +package io.nosqlbench.engine.api.activityapi.planning; import io.nosqlbench.engine.api.activityapi.planning.ElementSequencer; import io.nosqlbench.engine.api.activityapi.planning.IntervalSequencer; @@ -32,6 +32,7 @@ public class IntervalSequencerTest { private static ElementSequencer seqr = new IntervalSequencer<>(); + @Test public void testFixture() { List events = fromText("A:1,B:15"); @@ -49,6 +50,13 @@ public class IntervalSequencerTest { assertThat(seq).isEqualTo("ABCDAABAABCAABA"); } + @Test + public void testO4I3L0() { + List events = fromText("O:4,I:3,L:0"); + String seq = seqr.sequenceSummary(events, ratioFunc, ""); + assertThat(seq).isEqualTo("OIOIOIO"); + } + @Test public void testO4I3() { List events = fromText("O:4,I:3"); @@ -98,4 +106,4 @@ public class IntervalSequencerTest { } -} \ No newline at end of file +}