diff options
author | Jannis Harder <harder@informatik.uni-luebeck.de> | 2011-05-25 17:27:18 +0200 |
---|---|---|
committer | Jannis Harder <harder@informatik.uni-luebeck.de> | 2011-05-25 17:27:18 +0200 |
commit | 5e855398b9f7168dbc5c5827da19c7fcf4605b5b (patch) | |
tree | af268314b695c01bb4feaa1d9bf9793adcce9d11 | |
parent | a1c0cb89f67386738fc59426fd68737a393e1827 (diff) | |
download | JRummikub-5e855398b9f7168dbc5c5827da19c7fcf4605b5b.tar JRummikub-5e855398b9f7168dbc5c5827da19c7fcf4605b5b.zip |
Tests for counting of identical stone pairs
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@274 72836036-5685-4462-b002-a69064685172
-rw-r--r-- | mock/jrummikub/model/MockHand.java | 5 | ||||
-rw-r--r-- | src/jrummikub/model/Hand.java | 6 | ||||
-rw-r--r-- | src/jrummikub/model/IHand.java | 9 | ||||
-rw-r--r-- | test/jrummikub/model/HandTest.java | 23 |
4 files changed, 41 insertions, 2 deletions
diff --git a/mock/jrummikub/model/MockHand.java b/mock/jrummikub/model/MockHand.java index c3caf42..25e2edc 100644 --- a/mock/jrummikub/model/MockHand.java +++ b/mock/jrummikub/model/MockHand.java @@ -86,4 +86,9 @@ public class MockHand implements IHand { public boolean isInitialMeldPossible() { return false; } + + @Override + public int getIdenticalStoneCount() { + return 0; + } } diff --git a/src/jrummikub/model/Hand.java b/src/jrummikub/model/Hand.java index f415620..7294ced 100644 --- a/src/jrummikub/model/Hand.java +++ b/src/jrummikub/model/Hand.java @@ -261,4 +261,10 @@ public class Hand extends StoneTray<Stone> implements IHand { } return false; } + + @Override + public int getIdenticalStoneCount() { + // TODO Auto-generated method stub + return 0; + } } diff --git a/src/jrummikub/model/IHand.java b/src/jrummikub/model/IHand.java index afe5c12..5ac7537 100644 --- a/src/jrummikub/model/IHand.java +++ b/src/jrummikub/model/IHand.java @@ -34,5 +34,12 @@ public interface IHand extends IStoneTray<Stone> { *
* @return true if an initial meld is possible
*/
- public abstract boolean isInitialMeldPossible();
+ public boolean isInitialMeldPossible();
+
+ /**
+ * Counts the pairs of identical stones
+ *
+ * @return number of identical stone pairs
+ */
+ public int getIdenticalStoneCount();
}
diff --git a/test/jrummikub/model/HandTest.java b/test/jrummikub/model/HandTest.java index 5396bd8..abfa9ee 100644 --- a/test/jrummikub/model/HandTest.java +++ b/test/jrummikub/model/HandTest.java @@ -132,11 +132,15 @@ public class HandTest { assertEquals(56, hand.getStonePoints());
}
- private void testInitialMeld(boolean possible, List<Stone> handStones) {
+ private void dropStoneList(List<Stone> handStones) {
hand = new Hand(new GameSettings());
for (Stone stone : handStones) {
hand.drop(stone, new Position(0, 0));
}
+ }
+
+ private void testInitialMeld(boolean possible, List<Stone> handStones) {
+ dropStoneList(handStones);
assertTrue(possible == hand.isInitialMeldPossible());
}
@@ -240,4 +244,21 @@ public class HandTest { new Stone(11, BLUE), new Stone(RED)));
}
+ /** */
+ @Test
+ public void testCountIdenticalStones() {
+ dropStoneList(Arrays.asList(new Stone(1, RED), new Stone(2, RED), new Stone(1, BLUE)));
+ assertEquals(0, hand.getIdenticalStoneCount());
+ dropStoneList(Arrays.asList(new Stone(1, RED), new Stone(1, RED), new Stone(1, BLUE)));
+ assertEquals(1, hand.getIdenticalStoneCount());
+ dropStoneList(Arrays.asList(new Stone(1, RED), new Stone(1, RED), new Stone(1, BLUE), new Stone(1, BLUE)));
+ assertEquals(2, hand.getIdenticalStoneCount());
+ dropStoneList(Arrays.asList(new Stone(1, RED), new Stone(1, RED), new Stone(1, RED)));
+ assertEquals(1, hand.getIdenticalStoneCount());
+ dropStoneList(Arrays.asList(new Stone(1, RED), new Stone(1, RED), new Stone(1, RED), new Stone(1, RED)));
+ assertEquals(2, hand.getIdenticalStoneCount());
+ dropStoneList(Arrays.asList(new Stone(RED), new Stone(RED)));
+ assertEquals(0, hand.getIdenticalStoneCount());
+
+ }
}
|