diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-05-09 00:33:31 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-05-09 00:33:31 +0200 |
commit | b9fbe279c3d6e750f7c90ad0b244d315c9744bb2 (patch) | |
tree | 851c990deb831b4f61282682cc99e39d76301414 | |
parent | b57a2d5090cc1c6460b1ce806713964af9ec60f4 (diff) | |
download | JRummikub-b9fbe279c3d6e750f7c90ad0b244d315c9744bb2.tar JRummikub-b9fbe279c3d6e750f7c90ad0b244d315c9744bb2.zip |
Another fix for the Table pickUpStone method
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@179 72836036-5685-4462-b002-a69064685172
-rw-r--r-- | src/jrummikub/model/Table.java | 13 | ||||
-rw-r--r-- | test/jrummikub/model/TableTest.java | 13 |
2 files changed, 22 insertions, 4 deletions
diff --git a/src/jrummikub/model/Table.java b/src/jrummikub/model/Table.java index 7787bea..df50bbf 100644 --- a/src/jrummikub/model/Table.java +++ b/src/jrummikub/model/Table.java @@ -27,7 +27,9 @@ public class Table extends StoneTray<StoneSet> implements ITable { @Override public Pair<StoneSet, StoneSet> pickUpStone(Stone stone) { StoneInfo info = findStoneInfo(stone); - + + System.err.println("Stone: " + stone); + if (info == null) { return null; } @@ -51,6 +53,7 @@ public class Table extends StoneTray<StoneSet> implements ITable { } stonePosition++; } + set = null; } // Stone not found if (set == null) { @@ -73,10 +76,14 @@ public class Table extends StoneTray<StoneSet> implements ITable { private Pair<StoneSet, StoneSet> splitSet(StoneSet set, Position setPosition, int stonePosition) { pickUp(set); - + Pair<StoneSet, StoneSet> firstSplit = set.splitAt(stonePosition); + System.err.println("Size: " + set.size()); + System.err.println("stonePosition: " + stonePosition); + System.err.println("Frist split: " + firstSplit.getFirst() + " " + firstSplit.getSecond()); Pair<StoneSet, StoneSet> secondSplit = firstSplit.getSecond().splitAt(1); - + System.err.println("Second split: " + secondSplit.getFirst() + " " + secondSplit.getSecond()); + StoneSet leftSet = firstSplit.getFirst(); StoneSet rightSet = secondSplit.getSecond(); diff --git a/test/jrummikub/model/TableTest.java b/test/jrummikub/model/TableTest.java index e113ba7..a806e14 100644 --- a/test/jrummikub/model/TableTest.java +++ b/test/jrummikub/model/TableTest.java @@ -67,13 +67,24 @@ public class TableTest { } @Test - public void testPickNonexistentStone() { + public void testPickStoneFromEmptyTable() { Stone targetStone = new Stone(BLACK); testTable.pickUpStone(targetStone); assertEquals(0, testTable.getSize()); } @Test + public void testPickNonexistentStone() { + Stone targetStone = new Stone(BLACK); + Stone droppedStone = new Stone(RED); + StoneSet set = new StoneSet(droppedStone); + testTable.drop(set, new Position(0, 0)); + testTable.pickUpStone(targetStone); + assertEquals(1, testTable.getSize()); + assertSame(testTable.findStoneSet(droppedStone), set); + } + + @Test @SuppressWarnings("unused") public void testPickUpStoneRun() { Stone targetStone = new Stone(BLACK); |