From da68e9a162645c90e0ae816f178f25819b81652f Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Sun, 10 Sep 2023 19:01:57 -0400 Subject: Add SchedulerTest --- .../skyblocker/utils/scheduler/SchedulerTest.java | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/test/java/me/xmrvizzy/skyblocker/utils/scheduler/SchedulerTest.java (limited to 'src/test') diff --git a/src/test/java/me/xmrvizzy/skyblocker/utils/scheduler/SchedulerTest.java b/src/test/java/me/xmrvizzy/skyblocker/utils/scheduler/SchedulerTest.java new file mode 100644 index 00000000..93cd7720 --- /dev/null +++ b/src/test/java/me/xmrvizzy/skyblocker/utils/scheduler/SchedulerTest.java @@ -0,0 +1,90 @@ +package me.xmrvizzy.skyblocker.utils.scheduler; + +import org.apache.commons.lang3.mutable.MutableInt; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class SchedulerTest { + @SuppressWarnings("deprecation") + private final Scheduler scheduler = new Scheduler(); + private final MutableInt currentTick = new MutableInt(0); + private final MutableInt cycleCount1 = new MutableInt(1); + private final MutableInt cycleCount2 = new MutableInt(0); + private final MutableInt cycleCount3 = new MutableInt(0); + private final MutableInt cycleCount4 = new MutableInt(0); + private final MutableInt cycleCount5 = new MutableInt(0); + private final MutableInt cycleCount6 = new MutableInt(0); + private final MutableInt cycleCount7 = new MutableInt(0); + private final MutableInt cycleCount8 = new MutableInt(0); + + @Test + public void testSchedule() { + scheduler.schedule(() -> Assertions.assertEquals(1, currentTick.intValue()), 0); + scheduler.schedule(() -> Assertions.assertEquals(1, currentTick.intValue()), 1); + scheduler.schedule(() -> Assertions.assertEquals(2, currentTick.intValue()), 2); + scheduler.schedule(() -> Assertions.assertEquals(10, currentTick.intValue()), 10); + scheduler.schedule(() -> Assertions.assertEquals(20, currentTick.intValue()), 20); + scheduler.schedule(() -> Assertions.assertEquals(50, currentTick.intValue()), 50); + scheduler.schedule(() -> Assertions.assertEquals(100, currentTick.intValue()), 100); + scheduler.schedule(() -> Assertions.assertEquals(123, currentTick.intValue()), 123); + scheduler.scheduleCyclic(() -> {}, 1); + scheduler.scheduleCyclic(() -> {}, 1); + scheduler.scheduleCyclic(() -> {}, 1); + scheduler.scheduleCyclic(() -> {}, 1); + scheduler.scheduleCyclic(() -> { + Assertions.assertEquals(cycleCount1.intValue(), currentTick.intValue()); + cycleCount1.increment(); + }, 1); + scheduler.scheduleCyclic(() -> { + Assertions.assertEquals(1, currentTick.intValue() % 10); + Assertions.assertEquals(cycleCount2.intValue(), currentTick.intValue() / 10); + cycleCount2.increment(); + }, 10); + scheduler.scheduleCyclic(() -> { + Assertions.assertEquals(1, currentTick.intValue() % 55); + Assertions.assertEquals(cycleCount3.intValue(), currentTick.intValue() / 55); + cycleCount3.increment(); + }, 55); + scheduler.schedule(() -> scheduler.scheduleCyclic(() -> { + Assertions.assertEquals(7, currentTick.intValue() % 10); + Assertions.assertEquals(cycleCount4.intValue(), currentTick.intValue() / 10); + cycleCount4.increment(); + }, 10), 7); + scheduler.schedule(() -> scheduler.scheduleCyclic(() -> { + Assertions.assertEquals(1, currentTick.intValue() % 75); + Assertions.assertEquals(cycleCount5.intValue(), currentTick.intValue() / 75); + cycleCount5.increment(); + }, 75), 0); + scheduler.schedule(() -> scheduler.scheduleCyclic(() -> { + Assertions.assertEquals(1, currentTick.intValue() % 99); + Assertions.assertEquals(cycleCount6.intValue(), currentTick.intValue() / 99); + cycleCount6.increment(); + }, 99), 1); + scheduler.scheduleCyclic(() -> scheduler.schedule(() -> { + Assertions.assertEquals(6, currentTick.intValue() % 10); + Assertions.assertEquals(cycleCount7.intValue(), currentTick.intValue() / 10); + cycleCount7.increment(); + }, 5), 10); + scheduler.scheduleCyclic(() -> scheduler.schedule(() -> { + Assertions.assertEquals(11, currentTick.intValue() % 55); + Assertions.assertEquals(cycleCount8.intValue(), currentTick.intValue() / 55); + cycleCount8.increment(); + }, 10), 55); + while (currentTick.intValue() < 10_000_000) { + tick(); + } + Assertions.assertEquals(10000001, cycleCount1.intValue()); + Assertions.assertEquals(1000000, cycleCount2.intValue()); + Assertions.assertEquals(181819, cycleCount3.intValue()); + Assertions.assertEquals(1000000, cycleCount4.intValue()); + Assertions.assertEquals(133334, cycleCount5.intValue()); + Assertions.assertEquals(101011, cycleCount6.intValue()); + Assertions.assertEquals(1000000, cycleCount7.intValue()); + Assertions.assertEquals(181818, cycleCount8.intValue()); + } + + private void tick() { + currentTick.increment(); + scheduler.tick(); + } +} -- cgit From 44904d03f992b46b96ecc7283d054e7b92b7fe50 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Sun, 10 Sep 2023 23:35:26 -0400 Subject: Optimize Scheduler --- .../skyblocker/utils/scheduler/SchedulerTest.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src/test') diff --git a/src/test/java/me/xmrvizzy/skyblocker/utils/scheduler/SchedulerTest.java b/src/test/java/me/xmrvizzy/skyblocker/utils/scheduler/SchedulerTest.java index 93cd7720..3bc12337 100644 --- a/src/test/java/me/xmrvizzy/skyblocker/utils/scheduler/SchedulerTest.java +++ b/src/test/java/me/xmrvizzy/skyblocker/utils/scheduler/SchedulerTest.java @@ -8,7 +8,7 @@ public class SchedulerTest { @SuppressWarnings("deprecation") private final Scheduler scheduler = new Scheduler(); private final MutableInt currentTick = new MutableInt(0); - private final MutableInt cycleCount1 = new MutableInt(1); + private final MutableInt cycleCount1 = new MutableInt(0); private final MutableInt cycleCount2 = new MutableInt(0); private final MutableInt cycleCount3 = new MutableInt(0); private final MutableInt cycleCount4 = new MutableInt(0); @@ -19,7 +19,7 @@ public class SchedulerTest { @Test public void testSchedule() { - scheduler.schedule(() -> Assertions.assertEquals(1, currentTick.intValue()), 0); + scheduler.schedule(() -> Assertions.assertEquals(0, currentTick.intValue()), 0); scheduler.schedule(() -> Assertions.assertEquals(1, currentTick.intValue()), 1); scheduler.schedule(() -> Assertions.assertEquals(2, currentTick.intValue()), 2); scheduler.schedule(() -> Assertions.assertEquals(10, currentTick.intValue()), 10); @@ -36,12 +36,12 @@ public class SchedulerTest { cycleCount1.increment(); }, 1); scheduler.scheduleCyclic(() -> { - Assertions.assertEquals(1, currentTick.intValue() % 10); + Assertions.assertEquals(0, currentTick.intValue() % 10); Assertions.assertEquals(cycleCount2.intValue(), currentTick.intValue() / 10); cycleCount2.increment(); }, 10); scheduler.scheduleCyclic(() -> { - Assertions.assertEquals(1, currentTick.intValue() % 55); + Assertions.assertEquals(0, currentTick.intValue() % 55); Assertions.assertEquals(cycleCount3.intValue(), currentTick.intValue() / 55); cycleCount3.increment(); }, 55); @@ -51,7 +51,7 @@ public class SchedulerTest { cycleCount4.increment(); }, 10), 7); scheduler.schedule(() -> scheduler.scheduleCyclic(() -> { - Assertions.assertEquals(1, currentTick.intValue() % 75); + Assertions.assertEquals(0, currentTick.intValue() % 75); Assertions.assertEquals(cycleCount5.intValue(), currentTick.intValue() / 75); cycleCount5.increment(); }, 75), 0); @@ -61,19 +61,19 @@ public class SchedulerTest { cycleCount6.increment(); }, 99), 1); scheduler.scheduleCyclic(() -> scheduler.schedule(() -> { - Assertions.assertEquals(6, currentTick.intValue() % 10); + Assertions.assertEquals(5, currentTick.intValue() % 10); Assertions.assertEquals(cycleCount7.intValue(), currentTick.intValue() / 10); cycleCount7.increment(); }, 5), 10); scheduler.scheduleCyclic(() -> scheduler.schedule(() -> { - Assertions.assertEquals(11, currentTick.intValue() % 55); + Assertions.assertEquals(10, currentTick.intValue() % 55); Assertions.assertEquals(cycleCount8.intValue(), currentTick.intValue() / 55); cycleCount8.increment(); }, 10), 55); while (currentTick.intValue() < 10_000_000) { tick(); } - Assertions.assertEquals(10000001, cycleCount1.intValue()); + Assertions.assertEquals(10000000, cycleCount1.intValue()); Assertions.assertEquals(1000000, cycleCount2.intValue()); Assertions.assertEquals(181819, cycleCount3.intValue()); Assertions.assertEquals(1000000, cycleCount4.intValue()); @@ -84,7 +84,7 @@ public class SchedulerTest { } private void tick() { - currentTick.increment(); scheduler.tick(); + currentTick.increment(); } } -- cgit From 059385f9dd070beae77a77bebae34f0ca06b664a Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Mon, 11 Sep 2023 22:57:08 -0400 Subject: Make Scheduler and MessageScheduler singletons --- .../skyblocker/utils/scheduler/SchedulerTest.java | 44 +++++++++++----------- 1 file changed, 21 insertions(+), 23 deletions(-) (limited to 'src/test') diff --git a/src/test/java/me/xmrvizzy/skyblocker/utils/scheduler/SchedulerTest.java b/src/test/java/me/xmrvizzy/skyblocker/utils/scheduler/SchedulerTest.java index 3bc12337..3ec63df1 100644 --- a/src/test/java/me/xmrvizzy/skyblocker/utils/scheduler/SchedulerTest.java +++ b/src/test/java/me/xmrvizzy/skyblocker/utils/scheduler/SchedulerTest.java @@ -5,8 +5,6 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; public class SchedulerTest { - @SuppressWarnings("deprecation") - private final Scheduler scheduler = new Scheduler(); private final MutableInt currentTick = new MutableInt(0); private final MutableInt cycleCount1 = new MutableInt(0); private final MutableInt cycleCount2 = new MutableInt(0); @@ -19,53 +17,53 @@ public class SchedulerTest { @Test public void testSchedule() { - scheduler.schedule(() -> Assertions.assertEquals(0, currentTick.intValue()), 0); - scheduler.schedule(() -> Assertions.assertEquals(1, currentTick.intValue()), 1); - scheduler.schedule(() -> Assertions.assertEquals(2, currentTick.intValue()), 2); - scheduler.schedule(() -> Assertions.assertEquals(10, currentTick.intValue()), 10); - scheduler.schedule(() -> Assertions.assertEquals(20, currentTick.intValue()), 20); - scheduler.schedule(() -> Assertions.assertEquals(50, currentTick.intValue()), 50); - scheduler.schedule(() -> Assertions.assertEquals(100, currentTick.intValue()), 100); - scheduler.schedule(() -> Assertions.assertEquals(123, currentTick.intValue()), 123); - scheduler.scheduleCyclic(() -> {}, 1); - scheduler.scheduleCyclic(() -> {}, 1); - scheduler.scheduleCyclic(() -> {}, 1); - scheduler.scheduleCyclic(() -> {}, 1); - scheduler.scheduleCyclic(() -> { + Scheduler.INSTANCE.schedule(() -> Assertions.assertEquals(0, currentTick.intValue()), 0); + Scheduler.INSTANCE.schedule(() -> Assertions.assertEquals(1, currentTick.intValue()), 1); + Scheduler.INSTANCE.schedule(() -> Assertions.assertEquals(2, currentTick.intValue()), 2); + Scheduler.INSTANCE.schedule(() -> Assertions.assertEquals(10, currentTick.intValue()), 10); + Scheduler.INSTANCE.schedule(() -> Assertions.assertEquals(20, currentTick.intValue()), 20); + Scheduler.INSTANCE.schedule(() -> Assertions.assertEquals(50, currentTick.intValue()), 50); + Scheduler.INSTANCE.schedule(() -> Assertions.assertEquals(100, currentTick.intValue()), 100); + Scheduler.INSTANCE.schedule(() -> Assertions.assertEquals(123, currentTick.intValue()), 123); + Scheduler.INSTANCE.scheduleCyclic(() -> {}, 1); + Scheduler.INSTANCE.scheduleCyclic(() -> {}, 1); + Scheduler.INSTANCE.scheduleCyclic(() -> {}, 1); + Scheduler.INSTANCE.scheduleCyclic(() -> {}, 1); + Scheduler.INSTANCE.scheduleCyclic(() -> { Assertions.assertEquals(cycleCount1.intValue(), currentTick.intValue()); cycleCount1.increment(); }, 1); - scheduler.scheduleCyclic(() -> { + Scheduler.INSTANCE.scheduleCyclic(() -> { Assertions.assertEquals(0, currentTick.intValue() % 10); Assertions.assertEquals(cycleCount2.intValue(), currentTick.intValue() / 10); cycleCount2.increment(); }, 10); - scheduler.scheduleCyclic(() -> { + Scheduler.INSTANCE.scheduleCyclic(() -> { Assertions.assertEquals(0, currentTick.intValue() % 55); Assertions.assertEquals(cycleCount3.intValue(), currentTick.intValue() / 55); cycleCount3.increment(); }, 55); - scheduler.schedule(() -> scheduler.scheduleCyclic(() -> { + Scheduler.INSTANCE.schedule(() -> Scheduler.INSTANCE.scheduleCyclic(() -> { Assertions.assertEquals(7, currentTick.intValue() % 10); Assertions.assertEquals(cycleCount4.intValue(), currentTick.intValue() / 10); cycleCount4.increment(); }, 10), 7); - scheduler.schedule(() -> scheduler.scheduleCyclic(() -> { + Scheduler.INSTANCE.schedule(() -> Scheduler.INSTANCE.scheduleCyclic(() -> { Assertions.assertEquals(0, currentTick.intValue() % 75); Assertions.assertEquals(cycleCount5.intValue(), currentTick.intValue() / 75); cycleCount5.increment(); }, 75), 0); - scheduler.schedule(() -> scheduler.scheduleCyclic(() -> { + Scheduler.INSTANCE.schedule(() -> Scheduler.INSTANCE.scheduleCyclic(() -> { Assertions.assertEquals(1, currentTick.intValue() % 99); Assertions.assertEquals(cycleCount6.intValue(), currentTick.intValue() / 99); cycleCount6.increment(); }, 99), 1); - scheduler.scheduleCyclic(() -> scheduler.schedule(() -> { + Scheduler.INSTANCE.scheduleCyclic(() -> Scheduler.INSTANCE.schedule(() -> { Assertions.assertEquals(5, currentTick.intValue() % 10); Assertions.assertEquals(cycleCount7.intValue(), currentTick.intValue() / 10); cycleCount7.increment(); }, 5), 10); - scheduler.scheduleCyclic(() -> scheduler.schedule(() -> { + Scheduler.INSTANCE.scheduleCyclic(() -> Scheduler.INSTANCE.schedule(() -> { Assertions.assertEquals(10, currentTick.intValue() % 55); Assertions.assertEquals(cycleCount8.intValue(), currentTick.intValue() / 55); cycleCount8.increment(); @@ -84,7 +82,7 @@ public class SchedulerTest { } private void tick() { - scheduler.tick(); + Scheduler.INSTANCE.tick(); currentTick.increment(); } } -- cgit