package dev.llan.model.board; import dev.llan.model.Game; import dev.llan.model.GameContainer; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.util.List; import static org.junit.jupiter.api.Assertions.*; class PointTest { private Grid grid; @BeforeEach void setUp() { GameContainer.getInstance().initGame(); Game game = GameContainer.getInstance().getCurrentGame(); grid = game.getMap().getGrid(); } @Test void getDistance() { Point a = new Point(1, 1); Point b = new Point(5, 10); double answer = 9.84886; double distance = Point.getDistance(a, b); assertEquals(answer, distance, 0.0001); } @Test void findImmediateNeighbors() { Point a = new Point(3, 3); List neighbors = a.findImmediateNeighbors(grid); assertEquals(8, neighbors.size()); } @Test void findRestrictedImmediateNeighbors() { Point a = new Point(0, 0); List neighbors = a.findImmediateNeighbors(grid); assertEquals(3, neighbors.size()); } @Test void findWithin() { Point a = new Point(5, 5); List neighbors = a.findWithin(grid, 2.9, true); assertEquals(24, neighbors.size()); } @Test void findRestrictedWithin() { Point a = new Point(0, 0); List neighbors = a.findWithin(grid, 2.9, true); assertEquals(8, neighbors.size()); } @Test void findNearestVacant() { Point a = new Point(0, 0); grid.tileAt(new Point(1, 0)).setType(Tile.TileType.OCCUPIED); grid.tileAt(new Point(1, 1)).setType(Tile.TileType.OCCUPIED); grid.tileAt(new Point(0, 1)).setType(Tile.TileType.OCCUPIED); List closest = a.findClosestVacant(grid); assertFalse(closest.contains(new Point(1, 0))); assertFalse(closest.contains(new Point(1, 1))); assertFalse(closest.contains(new Point(0, 1))); assertTrue(closest.contains(new Point(2, 0))); } }