diff options
Diffstat (limited to 'test/jrummikub/model')
-rw-r--r-- | test/jrummikub/model/GameStateTest.java | 1 | ||||
-rw-r--r-- | test/jrummikub/model/StoneSetTest.java | 134 |
2 files changed, 95 insertions, 40 deletions
diff --git a/test/jrummikub/model/GameStateTest.java b/test/jrummikub/model/GameStateTest.java index 5681904..5a55aef 100644 --- a/test/jrummikub/model/GameStateTest.java +++ b/test/jrummikub/model/GameStateTest.java @@ -31,4 +31,5 @@ public class GameStateTest { testGame.nextPlayer(); assertSame(Color.red, testGame.getActivePlayer().getColor()); } + } diff --git a/test/jrummikub/model/StoneSetTest.java b/test/jrummikub/model/StoneSetTest.java index e2962d4..4b83c94 100644 --- a/test/jrummikub/model/StoneSetTest.java +++ b/test/jrummikub/model/StoneSetTest.java @@ -16,92 +16,146 @@ import static org.junit.Assert.*; */ public class StoneSetTest { - private void assertSet(StoneSet.Type expectedType, List<Stone> stones) { + private void assertSet(StoneSet.Type expectedType, Integer expectedValue, + List<Stone> stones) { StoneSet set = new StoneSet(stones); - assertSame(expectedType, set.classify()); + assertSame(expectedType, set.classify().getFirst()); + assertEquals(expectedValue, set.classify().getSecond()); } - // valid + // valid+point count /** */ @Test public void doubleJoker() { - assertSet(GROUP, - Arrays.asList(new Stone(RED), new Stone(BLACK), new Stone(1, BLACK))); + // 3 Stones + // JJZ + assertSet(GROUP, 3, Arrays.asList(new Stone(RED), new Stone(BLACK), + new Stone(1, BLACK))); + // JZJ + assertSet(GROUP, 3, Arrays.asList(new Stone(RED), new Stone(1, BLACK), + new Stone(BLACK))); + // ZJJ + assertSet(RUN, 6, Arrays.asList(new Stone(1, RED), new Stone(RED), + new Stone(BLACK))); + // 4 Stones + // JJZZ + assertSet(GROUP, 4, Arrays.asList(new Stone(RED), new Stone(BLACK), + new Stone(1, BLACK), new Stone(1, RED))); + assertSet(RUN, 10, Arrays.asList(new Stone(RED), new Stone(BLACK), + new Stone(3, RED), new Stone(4, RED))); + // ZZJJ + assertSet(RUN, 10, Arrays.asList(new Stone(1, RED), new Stone(2, RED), + new Stone(BLACK), new Stone(RED))); + assertSet(GROUP, 4, Arrays.asList(new Stone(1, RED), + new Stone(1, BLACK), new Stone(BLACK), new Stone(RED))); + // ZJZJ + assertSet(GROUP, 4, Arrays.asList(new Stone(1, RED), new Stone(BLACK), + new Stone(1, BLACK), new Stone(RED))); + assertSet(RUN, 10, Arrays.asList(new Stone(1, RED), new Stone(RED), + new Stone(3, RED), new Stone(BLACK))); + // JZJZ + assertSet(GROUP, 4, Arrays.asList(new Stone(RED), new Stone(1, BLACK), + new Stone(BLACK), new Stone(1, RED))); + assertSet(RUN, 10, Arrays.asList(new Stone(RED), new Stone(2, RED), + new Stone(BLACK), new Stone(4, RED))); + // JZZJ + assertSet(GROUP, 4, Arrays.asList(new Stone(RED), new Stone(1, BLACK), + new Stone(1, RED), new Stone(BLACK))); + assertSet(RUN, 10, Arrays.asList(new Stone(RED), new Stone(2, RED), + new Stone(3, RED), new Stone(BLACK))); + // ZJJZ + assertSet(GROUP, 4, Arrays.asList(new Stone(1, RED), new Stone(BLACK), + new Stone(RED), new Stone(1, BLACK))); + assertSet(RUN, 10, Arrays.asList(new Stone(1, RED), new Stone(RED), + new Stone(BLACK), new Stone(4, RED))); } /** */ @Test public void groups() { - assertSet(GROUP, Arrays.asList(new Stone(1, RED), new Stone(1, BLACK), - new Stone(1, BLUE))); - assertSet(GROUP, Arrays.asList(new Stone(1, RED), new Stone(1, BLACK), - new Stone(1, BLUE), new Stone(1, ORANGE))); + assertSet(GROUP, 3, Arrays.asList(new Stone(1, RED), + new Stone(1, BLACK), new Stone(1, BLUE))); + assertSet(GROUP, 4, Arrays.asList(new Stone(1, RED), + new Stone(1, BLACK), new Stone(1, BLUE), new Stone(1, ORANGE))); } /** */ @Test public void runs() { - assertSet(RUN, - Arrays.asList(new Stone(1, RED), new Stone(2, RED), new Stone(3, RED))); - assertSet(RUN, Arrays.asList(new Stone(4, BLUE), new Stone(5, BLUE), - new Stone(6, BLUE))); + assertSet(RUN, 6, Arrays.asList(new Stone(1, RED), new Stone(2, RED), + new Stone(3, RED))); + assertSet(RUN, 22, Arrays.asList(new Stone(4, BLUE), new Stone(5, BLUE), + new Stone(6, BLUE), new Stone(7, BLUE))); } /** */ @Test public void singleJoker() { - assertSet(GROUP, - Arrays.asList(new Stone(1, RED), new Stone(1, BLACK), new Stone(RED))); - assertSet(RUN, - Arrays.asList(new Stone(2, RED), new Stone(3, RED), new Stone(BLACK))); + // ZJZ + assertSet(GROUP, 3, Arrays.asList(new Stone(1, RED), new Stone(BLACK), + new Stone(1, BLACK))); + assertSet(RUN, 6, Arrays.asList(new Stone(1, RED), new Stone(RED), + new Stone(3, RED))); + // JZZ + assertSet(GROUP, 3, Arrays.asList(new Stone(RED), new Stone(1, RED), + new Stone(1, BLACK))); + assertSet(RUN, 6, Arrays.asList(new Stone(RED), new Stone(2, RED), + new Stone(3, RED))); + // ZZJ + assertSet(GROUP, 3, Arrays.asList(new Stone(1, RED), + new Stone(1, BLACK), new Stone(BLACK))); + assertSet(RUN, 6, Arrays.asList(new Stone(1, RED), new Stone(2, RED), + new Stone(RED))); } // invalid /** */ @Test public void outOfBounds() { - assertSet(INVALID, Arrays.asList(new Stone(RED), new Stone(1, RED), + assertSet(INVALID, 0, Arrays.asList(new Stone(RED), new Stone(1, RED), new Stone(2, RED))); - assertSet(INVALID, Arrays.asList(new Stone(12, RED), - new Stone(13, RED), new Stone(RED))); - assertSet(INVALID, Arrays.asList(new Stone(RED), new Stone(BLACK), + assertSet(INVALID, 0, Arrays.asList(new Stone(12, RED), new Stone(13, + RED), new Stone(RED))); + assertSet(INVALID, 0, Arrays.asList(new Stone(RED), new Stone(BLACK), new Stone(1, RED), new Stone(2, RED))); } /** */ @Test public void sameColor() { - assertSet(INVALID, - Arrays.asList(new Stone(1, RED), new Stone(1, RED), new Stone(1, BLUE))); - assertSet(INVALID, Arrays.asList(new Stone(1, RED), new Stone(1, BLUE), - new Stone(1, BLACK), new Stone(1, ORANGE), new Stone(RED))); + assertSet(INVALID, 0, Arrays.asList(new Stone(1, RED), + new Stone(1, RED), new Stone(1, BLUE))); + assertSet(INVALID, 0, Arrays.asList(new Stone(1, RED), new Stone(1, + BLUE), new Stone(1, BLACK), new Stone(1, ORANGE), + new Stone(RED))); } /** */ @Test public void incorrectOrder() { - assertSet(INVALID, - Arrays.asList(new Stone(4, RED), new Stone(6, RED), new Stone(5, RED))); - assertSet(INVALID, - Arrays.asList(new Stone(4, RED), new Stone(6, RED), new Stone(RED))); - assertSet(INVALID, - Arrays.asList(new Stone(4, RED), new Stone(RED), new Stone(5, RED))); + assertSet(INVALID, 0, Arrays.asList(new Stone(4, RED), + new Stone(6, RED), new Stone(5, RED))); + assertSet(INVALID, 0, Arrays.asList(new Stone(4, RED), + new Stone(6, RED), new Stone(RED))); + assertSet(INVALID, 0, Arrays.asList(new Stone(4, RED), new Stone(RED), + new Stone(5, RED))); } /** */ @Test public void otherInvalid() { - assertSet(INVALID, - Arrays.asList(new Stone(4, RED), new Stone(5, RED), new Stone(7, RED))); - assertSet(INVALID, - Arrays.asList(new Stone(4, RED), new Stone(5, BLUE), new Stone(6, RED))); - assertSet(INVALID, Arrays.asList(new Stone(4, RED), new Stone(5, RED))); - assertSet(INVALID, - Arrays.asList(new Stone(4, BLUE), new Stone(5, RED), new Stone(6, RED))); + assertSet(INVALID, 0, Arrays.asList(new Stone(4, RED), + new Stone(5, RED), new Stone(7, RED))); + assertSet(INVALID, 0, Arrays.asList(new Stone(4, RED), new Stone(5, + BLUE), new Stone(6, RED))); + assertSet(INVALID, 0, + Arrays.asList(new Stone(4, RED), new Stone(5, RED))); + assertSet(INVALID, 0, Arrays.asList(new Stone(4, BLUE), new Stone(5, + RED), new Stone(6, RED))); // Regression test: - assertSet(INVALID, Arrays.asList(new Stone(12, ORANGE), new Stone(12, - BLACK), new Stone(7, BLUE))); + assertSet(INVALID, 0, Arrays.asList(new Stone(12, ORANGE), new Stone( + 12, BLACK), new Stone(7, BLUE))); } // invalid Split |