From 5e855398b9f7168dbc5c5827da19c7fcf4605b5b Mon Sep 17 00:00:00 2001 From: Jannis Harder Date: Wed, 25 May 2011 17:27:18 +0200 Subject: Tests for counting of identical stone pairs git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@274 72836036-5685-4462-b002-a69064685172 --- mock/jrummikub/model/MockHand.java | 5 +++++ src/jrummikub/model/Hand.java | 6 ++++++ src/jrummikub/model/IHand.java | 9 ++++++++- 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 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 { * * @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 handStones) { + private void dropStoneList(List handStones) { hand = new Hand(new GameSettings()); for (Stone stone : handStones) { hand.drop(stone, new Position(0, 0)); } + } + + private void testInitialMeld(boolean possible, List 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()); + + } } -- cgit v1.2.3