From fa9e6b7663c6f81e08e6e3cc1cf25907522ae82a Mon Sep 17 00:00:00 2001 From: olim88 Date: Mon, 3 Mar 2025 04:10:02 +0000 Subject: 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> --- .../skyblock/dwarven/fossil/FossilSolverTest.java | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/test/java/de/hysky/skyblocker/skyblock/dwarven/fossil/FossilSolverTest.java (limited to 'src/test/java') 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])); + } +} -- cgit