summaryrefslogtreecommitdiffstats
path: root/test/jrummikub/model/StoneSetTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/jrummikub/model/StoneSetTest.java')
-rw-r--r--test/jrummikub/model/StoneSetTest.java134
1 files changed, 94 insertions, 40 deletions
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