diff options
| author | olim88 <bobq4582@gmail.com> | 2025-03-03 04:10:02 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-03 12:10:02 +0800 |
| commit | fa9e6b7663c6f81e08e6e3cc1cf25907522ae82a (patch) | |
| tree | f4c8fe69bc8b7cf40a86ee906ff5b478f6286c64 /src/test/java | |
| parent | cd728aecd0da561aa6800f5b5b975b8ad9435e0a (diff) | |
| download | Skyblocker-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.java | 64 |
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])); + } +} |
