Another fix for the Table pickUpStone method
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@179 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
b57a2d5090
commit
b9fbe279c3
2 changed files with 22 additions and 4 deletions
|
@ -27,7 +27,9 @@ public class Table extends StoneTray<StoneSet> implements ITable {
|
||||||
@Override
|
@Override
|
||||||
public Pair<StoneSet, StoneSet> pickUpStone(Stone stone) {
|
public Pair<StoneSet, StoneSet> pickUpStone(Stone stone) {
|
||||||
StoneInfo info = findStoneInfo(stone);
|
StoneInfo info = findStoneInfo(stone);
|
||||||
|
|
||||||
|
System.err.println("Stone: " + stone);
|
||||||
|
|
||||||
if (info == null) {
|
if (info == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -51,6 +53,7 @@ public class Table extends StoneTray<StoneSet> implements ITable {
|
||||||
}
|
}
|
||||||
stonePosition++;
|
stonePosition++;
|
||||||
}
|
}
|
||||||
|
set = null;
|
||||||
}
|
}
|
||||||
// Stone not found
|
// Stone not found
|
||||||
if (set == null) {
|
if (set == null) {
|
||||||
|
@ -73,10 +76,14 @@ public class Table extends StoneTray<StoneSet> implements ITable {
|
||||||
private Pair<StoneSet, StoneSet> splitSet(StoneSet set, Position setPosition,
|
private Pair<StoneSet, StoneSet> splitSet(StoneSet set, Position setPosition,
|
||||||
int stonePosition) {
|
int stonePosition) {
|
||||||
pickUp(set);
|
pickUp(set);
|
||||||
|
|
||||||
Pair<StoneSet, StoneSet> firstSplit = set.splitAt(stonePosition);
|
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);
|
Pair<StoneSet, StoneSet> secondSplit = firstSplit.getSecond().splitAt(1);
|
||||||
|
System.err.println("Second split: " + secondSplit.getFirst() + " " + secondSplit.getSecond());
|
||||||
|
|
||||||
StoneSet leftSet = firstSplit.getFirst();
|
StoneSet leftSet = firstSplit.getFirst();
|
||||||
StoneSet rightSet = secondSplit.getSecond();
|
StoneSet rightSet = secondSplit.getSecond();
|
||||||
|
|
||||||
|
|
|
@ -67,12 +67,23 @@ public class TableTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPickNonexistentStone() {
|
public void testPickStoneFromEmptyTable() {
|
||||||
Stone targetStone = new Stone(BLACK);
|
Stone targetStone = new Stone(BLACK);
|
||||||
testTable.pickUpStone(targetStone);
|
testTable.pickUpStone(targetStone);
|
||||||
assertEquals(0, testTable.getSize());
|
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
|
@Test
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public void testPickUpStoneRun() {
|
public void testPickUpStoneRun() {
|
||||||
|
|
Reference in a new issue