|
2 | 2 |
|
3 | 3 | import org.junit.Test;
|
4 | 4 |
|
5 |
| -import static org.junit.Assert.assertEquals; |
6 |
| -import static org.junit.Assert.assertNotEquals; |
| 5 | +import java.util.Random; |
| 6 | + |
| 7 | +import static org.junit.Assert.*; |
| 8 | +import static org.mockito.Mockito.mock; |
| 9 | +import static org.mockito.Mockito.when; |
7 | 10 |
|
8 | 11 |
|
9 | 12 | public class PointTest {
|
@@ -47,6 +50,82 @@ public void alternativeConstructorTest() {
|
47 | 50 | assertEquals(wp, new WalkPosition(new Position(wp)));
|
48 | 51 | assertEquals(wp.toTilePosition(), new TilePosition(wp));
|
49 | 52 | assertEquals(wp, new WalkPosition(wp));
|
| 53 | + } |
| 54 | + |
| 55 | + @Test |
| 56 | + public void isValidChecks() { |
| 57 | + Game game = mock(Game.class); |
| 58 | + when(game.mapPixelWidth()).thenReturn(32 * 256); |
| 59 | + when(game.mapPixelHeight()).thenReturn(32 * 256); |
| 60 | + |
| 61 | + assertTrue(new Position(0,0).isValid(game)); |
| 62 | + assertTrue(new Position(1, 1).isValid(game)); |
| 63 | + |
| 64 | + assertFalse(new Position(-1, -1).isValid(game)); |
| 65 | + assertFalse(new Position(1, -1).isValid(game)); |
| 66 | + |
| 67 | + assertTrue(new TilePosition(0, 0).isValid(game)); |
| 68 | + assertFalse(new TilePosition(256, 256).isValid(game)); |
| 69 | + } |
| 70 | + |
| 71 | + @Test |
| 72 | + public void randomPointTests() { |
| 73 | + Random r = new Random(); |
| 74 | + int bound = 100_000; |
| 75 | + |
| 76 | + for (int i=0; i < 100; i++) { |
| 77 | + TilePosition tp1 = new TilePosition(r.nextInt(bound), r.nextInt(bound)); |
| 78 | + TilePosition tp2 = new TilePosition(tp1); |
| 79 | + assertEquals(tp1, tp2); |
| 80 | + |
| 81 | + Position p1 = new Position(tp1); |
| 82 | + Position p2 = tp1.toPosition(); |
| 83 | + assertEquals(p1, p2); |
| 84 | + assertEquals(tp1.x * 32, p1.x); |
| 85 | + assertEquals(tp1.y * 32 , p2.y); |
| 86 | + |
| 87 | + WalkPosition wp1 = new WalkPosition(tp1); |
| 88 | + WalkPosition wp2 = tp1.toWalkPosition(); |
| 89 | + assertEquals(wp1, wp2); |
| 90 | + assertEquals(tp1.x * 4, wp1.x); |
| 91 | + assertEquals(tp1.y * 4 , wp2.y); |
| 92 | + |
| 93 | + } |
| 94 | + |
| 95 | + for (int i=0; i < 100; i++) { |
| 96 | + WalkPosition wp1 = new WalkPosition(r.nextInt(bound), r.nextInt(bound)); |
| 97 | + WalkPosition wp2 = new WalkPosition(wp1); |
| 98 | + assertEquals(wp1, wp2); |
| 99 | + |
| 100 | + Position p1 = new Position(wp1); |
| 101 | + Position p2 = wp1.toPosition(); |
| 102 | + assertEquals(p1, p2); |
| 103 | + assertEquals(wp1.x * 8, p1.x); |
| 104 | + assertEquals(wp1.y * 8 , p2.y); |
| 105 | + |
| 106 | + TilePosition tp1 = new TilePosition(wp1); |
| 107 | + TilePosition tp2 = wp1.toTilePosition(); |
| 108 | + assertEquals(tp1, tp2); |
| 109 | + assertEquals(wp1.x / 4, tp1.x); |
| 110 | + assertEquals(wp1.y / 4 , tp2.y); |
| 111 | + } |
| 112 | + |
| 113 | + for (int i=0; i < 100; i++) { |
| 114 | + Position p1 = new Position(r.nextInt(bound), r.nextInt(bound)); |
| 115 | + Position p2 = new Position(p1); |
| 116 | + assertEquals(p1, p2); |
| 117 | + |
| 118 | + WalkPosition wp1 = new WalkPosition(p1); |
| 119 | + WalkPosition wp2 = p1.toWalkPosition(); |
| 120 | + assertEquals(wp1, wp2); |
| 121 | + assertEquals(p1.x / 8, wp1.x); |
| 122 | + assertEquals(p1.y / 8 , wp2.y); |
50 | 123 |
|
| 124 | + TilePosition tp1 = new TilePosition(p1); |
| 125 | + TilePosition tp2 = p1.toTilePosition(); |
| 126 | + assertEquals(tp1, tp2); |
| 127 | + assertEquals(p1.x / 32, tp1.x); |
| 128 | + assertEquals(p1.y / 32 , tp2.y); |
| 129 | + } |
51 | 130 | }
|
52 | 131 | }
|
0 commit comments