diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/jrummikub/model/StoneSetTest.java | 268 |
1 files changed, 117 insertions, 151 deletions
diff --git a/test/jrummikub/model/StoneSetTest.java b/test/jrummikub/model/StoneSetTest.java index b299d2c..aba38a5 100644 --- a/test/jrummikub/model/StoneSetTest.java +++ b/test/jrummikub/model/StoneSetTest.java @@ -26,6 +26,7 @@ public class StoneSetTest { private GameSettings lowerValueSettings = new GameSettings(); private GameSettings noLimitsSettings = new GameSettings(); private GameSettings noLimitsLowerValueSettings = new GameSettings(); + private GameSettings moreColorLowerValueSettings = new GameSettings(); /** */ @Before @@ -38,6 +39,9 @@ public class StoneSetTest { noLimitsSettings.setNoLimits(true); noLimitsLowerValueSettings.setHighestValue(10); noLimitsLowerValueSettings.setNoLimits(true); + moreColorLowerValueSettings.setStoneColors(EnumSet + .allOf(StoneColor.class)); + moreColorLowerValueSettings.setHighestValue(5); } private void assertSet(StoneSet.Type expectedType, Integer expectedValue, @@ -53,29 +57,22 @@ public class StoneSetTest { public void doubleJokerValid() { // 3 Stones // JJZ - assertSet(GROUP, 3, - Arrays.asList(new Stone(RED), new Stone(BLACK), new Stone(1, BLACK)), - defaultSettings); + assertSet(GROUP, 3, Arrays.asList(new Stone(RED), new Stone(BLACK), + new Stone(1, BLACK)), defaultSettings); // JZJ - assertSet(GROUP, 3, - Arrays.asList(new Stone(RED), new Stone(1, BLACK), new Stone(BLACK)), - defaultSettings); + assertSet(GROUP, 3, Arrays.asList(new Stone(RED), new Stone(1, BLACK), + new Stone(BLACK)), defaultSettings); // ZJJ - assertSet(RUN, 6, - Arrays.asList(new Stone(1, RED), new Stone(RED), new Stone(BLACK)), - defaultSettings); - assertSet(RUN, 33, - Arrays.asList(new Stone(10, RED), new Stone(RED), new Stone(BLACK)), - defaultSettings); - assertSet(GROUP, 30, - Arrays.asList(new Stone(10, RED), new Stone(RED), new Stone(BLACK)), - lowerValueSettings); - assertSet(GROUP, 39, - Arrays.asList(new Stone(13, RED), new Stone(RED), new Stone(BLACK)), - defaultSettings); - assertSet(RUN, 42, - Arrays.asList(new Stone(13, RED), new Stone(RED), new Stone(BLACK)), - higherValueSettings); + assertSet(RUN, 6, Arrays.asList(new Stone(1, RED), new Stone(RED), + new Stone(BLACK)), defaultSettings); + assertSet(RUN, 33, Arrays.asList(new Stone(10, RED), new Stone(RED), + new Stone(BLACK)), defaultSettings); + assertSet(GROUP, 30, Arrays.asList(new Stone(10, RED), new Stone(RED), + new Stone(BLACK)), lowerValueSettings); + assertSet(GROUP, 39, Arrays.asList(new Stone(13, RED), new Stone(RED), + new Stone(BLACK)), defaultSettings); + assertSet(RUN, 42, Arrays.asList(new Stone(13, RED), new Stone(RED), + new Stone(BLACK)), higherValueSettings); // 4 Stones // JJZZ assertSet(GROUP, 4, Arrays.asList(new Stone(RED), new Stone(BLACK), @@ -85,8 +82,9 @@ public class StoneSetTest { // ZZJJ assertSet(RUN, 10, Arrays.asList(new Stone(1, RED), new Stone(2, RED), new Stone(BLACK), new Stone(RED)), defaultSettings); - assertSet(GROUP, 4, Arrays.asList(new Stone(1, RED), new Stone(1, BLACK), - new Stone(BLACK), new Stone(RED)), defaultSettings); + assertSet(GROUP, 4, Arrays.asList(new Stone(1, RED), + new Stone(1, BLACK), new Stone(BLACK), new Stone(RED)), + defaultSettings); // ZJZJ assertSet(GROUP, 4, Arrays.asList(new Stone(1, RED), new Stone(BLACK), new Stone(1, BLACK), new Stone(RED)), defaultSettings); @@ -108,100 +106,81 @@ public class StoneSetTest { assertSet(RUN, 10, Arrays.asList(new Stone(1, RED), new Stone(RED), new Stone(BLACK), new Stone(4, RED)), defaultSettings); // More than 4 stones - assertSet(GROUP, 6, Arrays.asList(new Stone(1, RED), new Stone(1, BLUE), - new Stone(1, GREEN), new Stone(1, BLACK), new Stone(BLACK), new Stone( - RED)), moreColorSettings); + assertSet(GROUP, 6, Arrays.asList(new Stone(1, RED), + new Stone(1, BLUE), new Stone(1, GREEN), new Stone(1, BLACK), + new Stone(BLACK), new Stone(RED)), moreColorSettings); } /** */ @Test public void groups() { - assertSet(GROUP, 3, Arrays.asList(new Stone(1, RED), new Stone(1, BLACK), - new Stone(1, BLUE)), defaultSettings); - assertSet(GROUP, 3, Arrays.asList(new Stone(1, RED), new Stone(1, BLACK), - new Stone(1, BLUE)), lessColorSettings); - assertSet(GROUP, 4, Arrays.asList(new Stone(1, RED), new Stone(1, BLACK), - new Stone(1, BLUE), new Stone(1, ORANGE)), defaultSettings); - assertSet(GROUP, 6, Arrays.asList(new Stone(1, RED), new Stone(1, GREEN), - new Stone(1, GRAY), new Stone(1, BLACK), new Stone(1, BLUE), new Stone( - 1, ORANGE)), moreColorSettings); + assertSet(GROUP, 3, Arrays.asList(new Stone(1, RED), + new Stone(1, BLACK), new Stone(1, BLUE)), defaultSettings); + assertSet(GROUP, 3, Arrays.asList(new Stone(1, RED), + new Stone(1, BLACK), new Stone(1, BLUE)), lessColorSettings); + assertSet(GROUP, 4, Arrays.asList(new Stone(1, RED), + new Stone(1, BLACK), new Stone(1, BLUE), new Stone(1, ORANGE)), + defaultSettings); + assertSet(GROUP, 6, Arrays.asList(new Stone(1, RED), + new Stone(1, GREEN), new Stone(1, GRAY), new Stone(1, BLACK), + new Stone(1, BLUE), new Stone(1, ORANGE)), moreColorSettings); } /** */ @Test public void runs() { - assertSet(RUN, 6, - Arrays.asList(new Stone(1, RED), new Stone(2, RED), new Stone(3, RED)), + assertSet(RUN, 6, Arrays.asList(new Stone(1, RED), new Stone(2, RED), + new Stone(3, RED)), defaultSettings); + assertSet(RUN, 6, Arrays.asList(new Stone(1, RED), new Stone(2, RED), + new Stone(3, RED)), lowerValueSettings); + assertSet(RUN, 6, Arrays.asList(new Stone(1, RED), new Stone(2, RED), + new Stone(3, RED)), higherValueSettings); + assertSet(RUN, 22, Arrays.asList(new Stone(4, BLUE), + new Stone(5, BLUE), new Stone(6, BLUE), new Stone(7, BLUE)), defaultSettings); - assertSet(RUN, 6, - Arrays.asList(new Stone(1, RED), new Stone(2, RED), new Stone(3, RED)), - lowerValueSettings); - assertSet(RUN, 6, - Arrays.asList(new Stone(1, RED), new Stone(2, RED), new Stone(3, RED)), - higherValueSettings); - assertSet(RUN, 22, Arrays.asList(new Stone(4, BLUE), new Stone(5, BLUE), - new Stone(6, BLUE), new Stone(7, BLUE)), defaultSettings); - assertSet(RUN, 42, Arrays.asList(new Stone(13, RED), new Stone(14, RED), - new Stone(15, RED)), higherValueSettings); + assertSet(RUN, 42, Arrays.asList(new Stone(13, RED), + new Stone(14, RED), new Stone(15, RED)), higherValueSettings); } /** */ @Test public void singleJoker() { // ZJZ - assertSet( - GROUP, - 3, - Arrays.asList(new Stone(1, RED), new Stone(BLACK), new Stone(1, BLACK)), - defaultSettings); - assertSet(RUN, 6, - Arrays.asList(new Stone(1, RED), new Stone(RED), new Stone(3, RED)), - defaultSettings); + assertSet(GROUP, 3, Arrays.asList(new Stone(1, RED), new Stone(BLACK), + new Stone(1, BLACK)), defaultSettings); + assertSet(RUN, 6, Arrays.asList(new Stone(1, RED), new Stone(RED), + new Stone(3, RED)), defaultSettings); // JZZ - assertSet(GROUP, 3, - Arrays.asList(new Stone(RED), new Stone(1, RED), new Stone(1, BLACK)), - defaultSettings); - assertSet(RUN, 6, - Arrays.asList(new Stone(RED), new Stone(2, RED), new Stone(3, RED)), - defaultSettings); + assertSet(GROUP, 3, Arrays.asList(new Stone(RED), new Stone(1, RED), + new Stone(1, BLACK)), defaultSettings); + assertSet(RUN, 6, Arrays.asList(new Stone(RED), new Stone(2, RED), + new Stone(3, RED)), defaultSettings); // ZZJ - assertSet( - GROUP, - 3, - Arrays.asList(new Stone(1, RED), new Stone(1, BLACK), new Stone(BLACK)), - defaultSettings); - assertSet(RUN, 6, - Arrays.asList(new Stone(1, RED), new Stone(2, RED), new Stone(RED)), - defaultSettings); - assertSet(RUN, 39, - Arrays.asList(new Stone(12, RED), new Stone(13, RED), new Stone(RED)), - higherValueSettings); + assertSet(GROUP, 3, Arrays.asList(new Stone(1, RED), + new Stone(1, BLACK), new Stone(BLACK)), defaultSettings); + assertSet(RUN, 6, Arrays.asList(new Stone(1, RED), new Stone(2, RED), + new Stone(RED)), defaultSettings); + assertSet(RUN, 39, Arrays.asList(new Stone(12, RED), + new Stone(13, RED), new Stone(RED)), higherValueSettings); } @Test public void noLimitsTest() { - assertSet(RUN, 16, - Arrays.asList(new Stone(RED), new Stone(1, RED), new Stone(2, RED)), - noLimitsSettings); - assertSet(RUN, 26, - Arrays.asList(new Stone(12, RED), new Stone(13, RED), new Stone(RED)), - noLimitsSettings); - assertSet(RUN, 20, - Arrays.asList(new Stone(9, RED), new Stone(10, RED), new Stone(RED)), - noLimitsLowerValueSettings); + assertSet(RUN, 16, Arrays.asList(new Stone(RED), new Stone(1, RED), + new Stone(2, RED)), noLimitsSettings); + assertSet(RUN, 26, Arrays.asList(new Stone(12, RED), + new Stone(13, RED), new Stone(RED)), noLimitsSettings); + assertSet(RUN, 20, Arrays.asList(new Stone(9, RED), new Stone(10, RED), + new Stone(RED)), noLimitsLowerValueSettings); assertSet(RUN, 28, Arrays.asList(new Stone(RED), new Stone(BLACK), new Stone(1, RED), new Stone(2, RED)), noLimitsSettings); - assertSet(RUN, 26, Arrays.asList(new Stone(12, RED), new Stone(13, RED), - new Stone(1, RED)), noLimitsSettings); - assertSet( - RUN, - 16, - Arrays.asList(new Stone(13, RED), new Stone(1, RED), new Stone(2, RED)), - noLimitsSettings); + assertSet(RUN, 26, Arrays.asList(new Stone(12, RED), + new Stone(13, RED), new Stone(1, RED)), noLimitsSettings); + assertSet(RUN, 16, Arrays.asList(new Stone(13, RED), new Stone(1, RED), + new Stone(2, RED)), noLimitsSettings); - assertSet(INVALID, 0, - Arrays.asList(new Stone(13, RED), new Stone(RED), new Stone(1, RED)), - noLimitsSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(13, RED), new Stone(RED), + new Stone(1, RED)), noLimitsSettings); } // invalid @@ -211,87 +190,69 @@ public class StoneSetTest { assertSet(INVALID, 0, Arrays.asList(new Stone(RED), new Stone(BLACK), new Stone(1, BLACK), new Stone(1, RED)), lessColorSettings); // More than 4 stones - assertSet(INVALID, 0, Arrays.asList(new Stone(1, RED), new Stone(1, BLUE), - new Stone(1, GREEN), new Stone(1, BLACK), new Stone(1, VIOLET), - new Stone(1, ORANGE), new Stone(1, AQUA), new Stone(BLACK), new Stone( - RED)), moreColorSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(1, RED), new Stone(1, + BLUE), new Stone(1, GREEN), new Stone(1, BLACK), new Stone(1, + VIOLET), new Stone(1, ORANGE), new Stone(1, AQUA), new Stone( + BLACK), new Stone(RED)), moreColorSettings); } /** */ @Test public void outOfBounds() { - assertSet(INVALID, 0, - Arrays.asList(new Stone(RED), new Stone(1, RED), new Stone(2, RED)), - defaultSettings); - assertSet(INVALID, 0, - Arrays.asList(new Stone(12, RED), new Stone(13, RED), new Stone(RED)), - defaultSettings); - assertSet(INVALID, 0, - Arrays.asList(new Stone(9, RED), new Stone(10, RED), new Stone(RED)), - lowerValueSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(RED), new Stone(1, RED), + new Stone(2, RED)), defaultSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(12, RED), new Stone(13, + RED), new Stone(RED)), defaultSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(9, RED), new Stone(10, + RED), new Stone(RED)), lowerValueSettings); assertSet(INVALID, 0, Arrays.asList(new Stone(RED), new Stone(BLACK), new Stone(1, RED), new Stone(2, RED)), defaultSettings); - assertSet(INVALID, 0, Arrays.asList(new Stone(12, RED), new Stone(13, RED), - new Stone(1, RED)), defaultSettings); - assertSet( - INVALID, - 0, - Arrays.asList(new Stone(13, RED), new Stone(1, RED), new Stone(2, RED)), - defaultSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(12, RED), new Stone(13, + RED), new Stone(1, RED)), defaultSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(13, RED), new Stone(1, + RED), new Stone(2, RED)), defaultSettings); } /** */ @Test public void sameColor() { - assertSet( - INVALID, - 0, - Arrays.asList(new Stone(1, RED), new Stone(1, RED), new Stone(1, BLUE)), - defaultSettings); - assertSet(INVALID, 0, Arrays.asList(new Stone(1, RED), new Stone(1, BLUE), - new Stone(1, BLACK), new Stone(1, ORANGE), new Stone(RED)), - defaultSettings); - assertSet(INVALID, 0, Arrays.asList(new Stone(1, RED), new Stone(1, BLUE), - new Stone(1, GREEN), new Stone(1, BLACK), new Stone(1, VIOLET), - new Stone(1, GRAY), new Stone(1, ORANGE), new Stone(1, AQUA), - new Stone(RED)), moreColorSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(1, RED), + new Stone(1, RED), new Stone(1, BLUE)), defaultSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(1, RED), new Stone(1, + BLUE), new Stone(1, BLACK), new Stone(1, ORANGE), + new Stone(RED)), defaultSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(1, RED), new Stone(1, + BLUE), new Stone(1, GREEN), new Stone(1, BLACK), new Stone(1, + VIOLET), new Stone(1, GRAY), new Stone(1, ORANGE), new Stone(1, + AQUA), new Stone(RED)), moreColorSettings); } /** */ @Test public void incorrectOrder() { - assertSet(INVALID, 0, - Arrays.asList(new Stone(4, RED), new Stone(6, RED), new Stone(5, RED)), - defaultSettings); - assertSet(INVALID, 0, - Arrays.asList(new Stone(4, RED), new Stone(6, RED), new Stone(RED)), - defaultSettings); - assertSet(INVALID, 0, - Arrays.asList(new Stone(4, RED), new Stone(RED), new Stone(5, RED)), - defaultSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(4, RED), + new Stone(6, RED), new Stone(5, RED)), defaultSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(4, RED), + new Stone(6, RED), new Stone(RED)), defaultSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(4, RED), new Stone(RED), + new Stone(5, RED)), defaultSettings); } /** */ @Test public void otherInvalid() { + assertSet(INVALID, 0, Arrays.asList(new Stone(4, RED), + new Stone(5, RED), new Stone(7, RED)), defaultSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(4, RED), new Stone(5, + BLUE), new Stone(6, RED)), defaultSettings); assertSet(INVALID, 0, - Arrays.asList(new Stone(4, RED), new Stone(5, RED), new Stone(7, RED)), - defaultSettings); - assertSet( - INVALID, - 0, - Arrays.asList(new Stone(4, RED), new Stone(5, BLUE), new Stone(6, RED)), - defaultSettings); - assertSet(INVALID, 0, Arrays.asList(new Stone(4, RED), new Stone(5, RED)), - defaultSettings); - assertSet( - INVALID, - 0, - Arrays.asList(new Stone(4, BLUE), new Stone(5, RED), new Stone(6, RED)), + Arrays.asList(new Stone(4, RED), new Stone(5, RED)), defaultSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(4, BLUE), new Stone(5, + RED), new Stone(6, RED)), defaultSettings); // Regression test: - assertSet(INVALID, 0, Arrays.asList(new Stone(12, ORANGE), new Stone(12, - BLACK), new Stone(7, BLUE)), defaultSettings); + assertSet(INVALID, 0, Arrays.asList(new Stone(12, ORANGE), new Stone( + 12, BLACK), new Stone(7, BLUE)), defaultSettings); } /** */ @@ -302,11 +263,16 @@ public class StoneSetTest { defaultSettings); assertSet(GROUP, 4 * 13, Arrays.asList(new Stone(RED), new Stone(RED), new Stone(RED), new Stone(RED)), defaultSettings); - assertSet(RUN, 13 + 12 + 11 + 10 + 9, Arrays.asList(new Stone(RED), - new Stone(RED), new Stone(RED), new Stone(RED), new Stone(RED)), - defaultSettings); + assertSet(RUN, 13 + 12 + 11 + 10 + 9, + Arrays.asList(new Stone(RED), new Stone(RED), new Stone(RED), + new Stone(RED), new Stone(RED)), defaultSettings); assertSet(RUN, 5 * 10, Arrays.asList(new Stone(RED), new Stone(RED), - new Stone(RED), new Stone(RED), new Stone(12, RED)), defaultSettings); + new Stone(RED), new Stone(RED), new Stone(12, RED)), + defaultSettings); + assertSet(GROUP, 6 * 5, + Arrays.asList(new Stone(RED), new Stone(RED), new Stone(RED), + new Stone(RED), new Stone(RED), new Stone(AQUA)), + moreColorLowerValueSettings); } /** */ |