diff options
author | olim <bobq4582@gmail.com> | 2024-04-17 15:04:10 +0100 |
---|---|---|
committer | olim <bobq4582@gmail.com> | 2024-04-17 15:04:10 +0100 |
commit | c04bef8c93f15ba162091db40c6062af47d22515 (patch) | |
tree | c6a6fe3dc1660d17cd013f9db0eb4133ef199fbb /src | |
parent | 31744be3393f3fcec57dccfbc4aa8a1942c08f15 (diff) | |
download | Skyblocker-c04bef8c93f15ba162091db40c6062af47d22515.tar.gz Skyblocker-c04bef8c93f15ba162091db40c6062af47d22515.tar.bz2 Skyblocker-c04bef8c93f15ba162091db40c6062af47d22515.zip |
add tests
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/dwarven/MetalDetector.java | 12 | ||||
-rw-r--r-- | src/test/java/de/hysky/skyblocker/skyblock/dwarven/MetalDetectorTest.java | 34 |
2 files changed, 40 insertions, 6 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/MetalDetector.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/MetalDetector.java index 203e1880..e302b778 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/MetalDetector.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/MetalDetector.java @@ -81,14 +81,14 @@ public class MetalDetector { new Vec3i(-37, -21, -22) // -37, -21, -22 )); - private static Vec3i minesCenter = null; + protected static Vec3i minesCenter = null; private static double previousDistance; private static Vec3d previousPlayerPos; - private static boolean newTreasure = true; + protected static boolean newTreasure = true; private static boolean startedLooking = false; - private static List<Vec3i> possibleBlocks = new ArrayList<>(); + protected static List<Vec3i> possibleBlocks = new ArrayList<>(); public static void init() { ClientReceiveMessageEvents.GAME.register(MetalDetector::getDistanceMessage); @@ -151,7 +151,7 @@ public class MetalDetector { } } - private static void updatePossibleBlocks(Double distance, Vec3d playerPos) { + protected static void updatePossibleBlocks(Double distance, Vec3d playerPos) { if (newTreasure) { possibleBlocks = new ArrayList<>(); newTreasure = false; @@ -164,8 +164,8 @@ public class MetalDetector { } } else { - for (int x = -distance.intValue(); x < distance; x++) { - for (int z = -distance.intValue(); z < distance; z++) { + for (int x = -distance.intValue(); x <= distance; x++) { + for (int z = -distance.intValue(); z <= distance; z++) { Vec3i checkPos =new Vec3i((int)(playerPos.x) + x, (int)playerPos.y, (int)playerPos.z + z); if (Math.abs(playerPos.distanceTo(Vec3d.of(checkPos)) - distance) < 0.25) { possibleBlocks.add(checkPos); diff --git a/src/test/java/de/hysky/skyblocker/skyblock/dwarven/MetalDetectorTest.java b/src/test/java/de/hysky/skyblocker/skyblock/dwarven/MetalDetectorTest.java new file mode 100644 index 00000000..22532f96 --- /dev/null +++ b/src/test/java/de/hysky/skyblocker/skyblock/dwarven/MetalDetectorTest.java @@ -0,0 +1,34 @@ +package de.hysky.skyblocker.skyblock.dwarven; + +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.Vec3i; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; + +public class MetalDetectorTest { + + @Test + void testFindPossibleBlocks() { + //test starting without knowing middle + MetalDetector.updatePossibleBlocks(10.0, new Vec3d(0, 0, 0)); + Assertions.assertEquals(MetalDetector.possibleBlocks.size(), 40); + + MetalDetector.updatePossibleBlocks(11.2, new Vec3d(5, 0, 0)); + Assertions.assertEquals(MetalDetector.possibleBlocks.size(), 2); + + MetalDetector.updatePossibleBlocks(10.0, new Vec3d(10, 0, 10)); + Assertions.assertEquals(MetalDetector.possibleBlocks.get(0), new Vec3i(0, 0, 10)); + + //test while knowing the middle location + MetalDetector.possibleBlocks = new ArrayList<>(); + MetalDetector.newTreasure = true; + MetalDetector.minesCenter = new Vec3i(0, 0, 0); + + MetalDetector.updatePossibleBlocks(24.9, new Vec3d(10, 1, 10)); + Assertions.assertEquals(MetalDetector.possibleBlocks.size(), 1); + Assertions.assertEquals(MetalDetector.possibleBlocks.get(0), new Vec3i(1, -20, 20)); + + } +} |