aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorolim88 <bobq4582@gmail.com>2025-03-03 04:10:02 +0000
committerGitHub <noreply@github.com>2025-03-03 12:10:02 +0800
commitfa9e6b7663c6f81e08e6e3cc1cf25907522ae82a (patch)
treef4c8fe69bc8b7cf40a86ee906ff5b478f6286c64 /src/test/java
parentcd728aecd0da561aa6800f5b5b975b8ad9435e0a (diff)
downloadSkyblocker-fa9e6b7663c6f81e08e6e3cc1cf25907522ae82a.tar.gz
Skyblocker-fa9e6b7663c6f81e08e6e3cc1cf25907522ae82a.tar.bz2
Skyblocker-fa9e6b7663c6f81e08e6e3cc1cf25907522ae82a.zip
Fossil Solver (#1156)
* nearly working nearly working state however lots of the code will need refactoring once i understand what it needs to do * fix broken code still needs refactor but works now * code should work now needs a refactor next and a few small feature * add usefull infomation to tooltips * big refactor * add config option * fix bugs * improve test and tweak fossil types * add more tooltip infomation * add translations for tooltips * fix rebase * clean up code hopefully good code now. ready to finally make a pr * Fix config location * Fix static usage * Clean up names --------- Co-authored-by: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/de/hysky/skyblocker/skyblock/dwarven/fossil/FossilSolverTest.java64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/test/java/de/hysky/skyblocker/skyblock/dwarven/fossil/FossilSolverTest.java b/src/test/java/de/hysky/skyblocker/skyblock/dwarven/fossil/FossilSolverTest.java
new file mode 100644
index 00000000..99efca31
--- /dev/null
+++ b/src/test/java/de/hysky/skyblocker/skyblock/dwarven/fossil/FossilSolverTest.java
@@ -0,0 +1,64 @@
+package de.hysky.skyblocker.skyblock.dwarven.fossil;
+
+import de.hysky.skyblocker.skyblock.dwarven.fossil.Structures.TileGrid;
+import de.hysky.skyblocker.skyblock.dwarven.fossil.Structures.TileState;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import static de.hysky.skyblocker.skyblock.dwarven.fossil.FossilCalculations.getFossilChance;
+
+public class FossilSolverTest {
+
+ TileGrid dummyContainer() {
+ TileState[][] tileStates = new TileState[6][9];
+ for (int x = 0; x < 6; x++) {
+ for (int y = 0; y < 9; y++) {
+ tileStates[x][y] = TileState.UNKNOWN;
+ }
+ }
+ return new TileGrid(tileStates);
+ }
+
+ @Test
+ void testPartlyFoundFossil() {
+ TileGrid tileGrid = dummyContainer();
+ tileGrid.updateSlot(0, 2, TileState.FOSSIL);
+ tileGrid.updateSlot(0, 3, TileState.FOSSIL);
+ tileGrid.updateSlot(0, 4, TileState.FOSSIL);
+ tileGrid.updateSlot(0, 5, TileState.FOSSIL);
+ tileGrid.updateSlot(1, 5, TileState.FOSSIL);
+ Assertions.assertEquals(getFossilChance(tileGrid, null)[20], 1);
+ }
+
+ @Test
+ void testPartlyFoundFossilWithPercentage() {
+ TileGrid tileGrid = dummyContainer();
+ tileGrid.updateSlot(1, 0, TileState.FOSSIL);
+ tileGrid.updateSlot(3, 0, TileState.FOSSIL);
+ tileGrid.updateSlot(0, 1, TileState.FOSSIL);
+ Assertions.assertEquals(getFossilChance(tileGrid, "7.7")[29], 1);
+ }
+
+ @Test
+ void testPartlyNoFossilFound() {
+ TileGrid tileGrid = dummyContainer();
+ tileGrid.updateSlot(6, 1, TileState.EMPTY);
+ tileGrid.updateSlot(1, 2, TileState.EMPTY);
+ tileGrid.updateSlot(3, 2, TileState.EMPTY);
+ tileGrid.updateSlot(4, 2, TileState.EMPTY);
+ tileGrid.updateSlot(7, 2, TileState.EMPTY);
+ tileGrid.updateSlot(1, 3, TileState.EMPTY);
+ tileGrid.updateSlot(2, 3, TileState.EMPTY);
+ tileGrid.updateSlot(5, 3, TileState.EMPTY);
+ tileGrid.updateSlot(5, 4, TileState.EMPTY);
+ Assertions.assertTrue(Double.isNaN(getFossilChance(tileGrid, null)[0]));
+ }
+
+ @Test
+ void testInvalid() {
+ TileGrid tileGrid = dummyContainer();
+ tileGrid.updateSlot(0, 0, TileState.FOSSIL);
+ tileGrid.updateSlot(8, 0, TileState.FOSSIL);
+ Assertions.assertTrue(Double.isNaN(getFossilChance(tileGrid, null)[1]));
+ }
+}