Skip to content

Commit db00bb3

Browse files
authored
test: add a buffer of one tick to #expectedTimeNeeded (#49)
1 parent 4a4734b commit db00bb3

File tree

5 files changed

+14
-18
lines changed

5 files changed

+14
-18
lines changed

task/src/main/java/org/aero/common/task/count/AbstractCountingRunnable.java

+4-6
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,18 @@
1717
package org.aero.common.task.count;
1818

1919
import java.util.concurrent.atomic.AtomicLong;
20-
import java.util.function.Consumer;
2120
import java.util.function.Supplier;
2221

2322
@SuppressWarnings("MissingJavadocType")
2423
public abstract class AbstractCountingRunnable implements CountingRunnable {
2524

2625
protected final Supplier<Boolean> condition;
27-
protected final Consumer<Boolean> callback;
26+
protected final Runnable callback;
2827
protected final int step;
2928
protected final AtomicLong count;
3029

3130
@SuppressWarnings("MissingJavadocMethod")
32-
public AbstractCountingRunnable(final int step, final long count, final Supplier<Boolean> condition, final Consumer<Boolean> callback) {
31+
public AbstractCountingRunnable(final int step, final long count, final Supplier<Boolean> condition, final Runnable callback) {
3332
this.step = step;
3433
this.count = new AtomicLong(count);
3534
this.condition = condition;
@@ -39,11 +38,10 @@ public AbstractCountingRunnable(final int step, final long count, final Supplier
3938
@SuppressWarnings("MissingJavadocMethod")
4039
@Override
4140
public void run() {
42-
final boolean result = this.condition.get();
43-
if (result) {
41+
if (this.condition.get()) {
4442
this.count.getAndAdd(this.step);
4543
}
46-
this.callback.accept(result);
44+
this.callback.run();
4745
}
4846

4947
@SuppressWarnings("MissingJavadocMethod")

task/src/main/java/org/aero/common/task/count/CountingRunnable.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.aero.common.core.builder.IBuilder;
2020
import org.jetbrains.annotations.NotNull;
2121

22-
import java.util.function.Consumer;
2322
import java.util.function.Supplier;
2423

2524
@SuppressWarnings("MissingJavadocType")
@@ -49,7 +48,7 @@ interface Builder extends IBuilder<CountingRunnable> {
4948
@NotNull Builder condition(Supplier<Boolean> condition);
5049

5150
@SuppressWarnings("MissingJavadocMethod")
52-
@NotNull Builder callback(Consumer<Boolean> callback);
51+
@NotNull Builder callback(Runnable callback);
5352

5453
}
5554
}

task/src/main/java/org/aero/common/task/count/CountingRunnableImpl.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import org.jetbrains.annotations.NotNull;
2020

21-
import java.util.function.Consumer;
2221
import java.util.function.Supplier;
2322

2423
@SuppressWarnings("MissingJavadocType")
@@ -33,7 +32,7 @@ static final class BuilderImpl implements CountingRunnable.Builder {
3332
private int step = 1;
3433
private long initial = 0;
3534
private Supplier<Boolean> condition;
36-
private Consumer<Boolean> callback;
35+
private Runnable callback;
3736

3837
BuilderImpl() {
3938

@@ -58,7 +57,7 @@ static final class BuilderImpl implements CountingRunnable.Builder {
5857
}
5958

6059
@SuppressWarnings("MissingJavadocMethod")
61-
public @NotNull CountingRunnableImpl.BuilderImpl callback(final Consumer<Boolean> callback) {
60+
public @NotNull CountingRunnableImpl.BuilderImpl callback(final Runnable callback) {
6261
this.callback = callback;
6362
return this;
6463
}

task/src/main/java/org/aero/common/task/counter/CounterImpl.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,12 @@ final class CounterImpl implements Counter {
5353
this.tickHandler = builder.tickHandler;
5454
this.finishHandler = builder.finishHandler;
5555
this.cancelHandler = builder.cancelHandler;
56-
this.startCount = builder.startCount;
5756
this.stopCount = builder.stopCount;
5857
this.tick = builder.tick;
5958
this.tickUnit = builder.tickUnit;
6059
this.status = CounterStatus.IDLING;
61-
this.step = this.stopCount > this.startCount ? 1 : -1;
60+
this.step = this.stopCount > builder.startCount ? 1 : -1;
61+
this.startCount = builder.startCount - this.step;
6262
}
6363

6464
@Override
@@ -203,11 +203,11 @@ private boolean condition() {
203203
}
204204

205205
this.handleTick();
206-
return this.runnable.count() * this.step < this.stopCount * this.step;
206+
return true;
207207
}
208208

209-
private void tick(final boolean result) {
210-
if (result) {
209+
private void tick() {
210+
if (this.step * (this.step - this.runnable.count() + this.stopCount) > 0) {
211211
return;
212212
}
213213

task/src/test/java/org/aero/common/task/counter/CounterTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -221,8 +221,8 @@ void testCancelCallback(final Counter.Builder counterBuilder) {
221221
}
222222

223223
private long expectedTimeNeeded(final Counter counter) {
224-
//A buffer of one tick added.
225-
return counter.tickUnit().toMillis(this.ticksToFinish(counter) * counter.tickValue());
224+
//Adding a buffer of one tick
225+
return counter.tickUnit().toMillis((this.ticksToFinish(counter) + 1) * counter.tickValue());
226226
}
227227

228228
private long ticksToFinish(final Counter counter) {

0 commit comments

Comments
 (0)