aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorKevin <92656833+kevinthegreat1@users.noreply.github.com>2024-02-19 14:01:19 -0500
committerGitHub <noreply@github.com>2024-02-19 14:01:19 -0500
commit7b6eac893985c42aa10d7596eb55eb6a72e8d185 (patch)
tree7d9bfac0e684f99c4f210b07d945cc56d2f6aa8f /src/test/java
parent13fe42503c7e4369b3e128859084e2339c355ee3 (diff)
parent15268d52e7529c11dd4734005ae7b0815c68b7a4 (diff)
downloadSkyblocker-7b6eac893985c42aa10d7596eb55eb6a72e8d185.tar.gz
Skyblocker-7b6eac893985c42aa10d7596eb55eb6a72e8d185.tar.bz2
Skyblocker-7b6eac893985c42aa10d7596eb55eb6a72e8d185.zip
Merge pull request #533 from kevinthegreat1/solvers
Add Silverfish and Ice Fill Solvers
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/IceFillTest.java29
-rw-r--r--src/test/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/SilverfishTest.java40
2 files changed, 69 insertions, 0 deletions
diff --git a/src/test/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/IceFillTest.java b/src/test/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/IceFillTest.java
new file mode 100644
index 00000000..a3cbb93f
--- /dev/null
+++ b/src/test/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/IceFillTest.java
@@ -0,0 +1,29 @@
+package de.hysky.skyblocker.skyblock.dungeon.puzzle;
+
+import org.joml.Vector2i;
+import org.joml.Vector2ic;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class IceFillTest {
+ private static final boolean[][] iceFillBoard = new boolean[][]{
+ {false, false, true, false, false, false, false},
+ {false, false, false, false, false, false, false},
+ {false, false, false, true, true, false, false},
+ {false, false, false, false, false, false, false},
+ {false, false, false, false, false, false, false},
+ {false, false, false, false, false, false, false},
+ {true, false, false, false, false, false, false},
+ };
+ private static final List<Vector2ic> iceFillPath = new ArrayList<>();
+
+ @Test
+ void testIceFillSolve() {
+ IceFill.INSTANCE.solve(iceFillBoard, iceFillPath);
+ List<Vector2ic> expectedIceFillPath = List.of(new Vector2i(6, 3), new Vector2i(5, 3), new Vector2i(4, 3), new Vector2i(3, 3), new Vector2i(3, 2), new Vector2i(4, 2), new Vector2i(5, 2), new Vector2i(6, 2), new Vector2i(6, 1), new Vector2i(5, 1), new Vector2i(5, 0), new Vector2i(4, 0), new Vector2i(4, 1), new Vector2i(3, 1), new Vector2i(3, 0), new Vector2i(2, 0), new Vector2i(1, 0), new Vector2i(0, 0), new Vector2i(0, 1), new Vector2i(1, 1), new Vector2i(2, 1), new Vector2i(2, 2), new Vector2i(1, 2), new Vector2i(1, 3), new Vector2i(1, 4), new Vector2i(1, 5), new Vector2i(2, 5), new Vector2i(3, 5), new Vector2i(3, 4), new Vector2i(4, 4), new Vector2i(5, 4), new Vector2i(6, 4), new Vector2i(6, 5), new Vector2i(6, 6), new Vector2i(5, 6), new Vector2i(5, 5), new Vector2i(4, 5), new Vector2i(4, 6), new Vector2i(3, 6), new Vector2i(2, 6), new Vector2i(1, 6), new Vector2i(0, 6), new Vector2i(0, 5), new Vector2i(0, 4), new Vector2i(0, 3));
+ Assertions.assertEquals(expectedIceFillPath, iceFillPath);
+ }
+}
diff --git a/src/test/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/SilverfishTest.java b/src/test/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/SilverfishTest.java
new file mode 100644
index 00000000..cc6178e1
--- /dev/null
+++ b/src/test/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/SilverfishTest.java
@@ -0,0 +1,40 @@
+package de.hysky.skyblocker.skyblock.dungeon.puzzle;
+
+import org.joml.Vector2i;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.util.List;
+
+public class SilverfishTest {
+ private static final boolean[][] silverfishBoard = new boolean[][]{
+ {false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false},
+ {false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false},
+ {false, false, false, false, true, false, false, false, false, false, false, false, true, false, false, false, false},
+ {true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true},
+ {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false},
+ {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false},
+ {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false},
+ {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false},
+ {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false},
+ {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false},
+ {false, true, false, false, false, false, false, false, false, false, true, false, false, false, false, true, false},
+ {false, false, true, false, false, false, false, false, false, false, false, true, false, false, false, false, false},
+ {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false},
+ {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false},
+ {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false},
+ {false, false, false, false, false, false, true, false, false, false, true, false, false, false, false, false, false},
+ {false, false, true, false, false, false, false, false, false, false, false, false, false, true, false, false, false}
+ };
+
+ @Test
+ void testSilverfishSolve() {
+ for (int i = 0; i < silverfishBoard.length; i++) {
+ System.arraycopy(silverfishBoard[i], 0, Silverfish.INSTANCE.silverfishBoard[i], 0, silverfishBoard[i].length);
+ }
+ Silverfish.INSTANCE.silverfishPos = new Vector2i(15, 15);
+ Silverfish.INSTANCE.solve();
+ List<Vector2i> expectedSilverfishPath = List.of(new Vector2i(15, 15), new Vector2i(15, 11), new Vector2i(16, 11), new Vector2i(16, 3), new Vector2i(0, 3), new Vector2i(0, 4), new Vector2i(1, 4), new Vector2i(1, 2), new Vector2i(10, 2), new Vector2i(10, 9), new Vector2i(0, 9));
+ Assertions.assertEquals(expectedSilverfishPath, Silverfish.INSTANCE.silverfishPath);
+ }
+}