Asserting action count in tests. minor changes.

This commit is contained in:
magenoxx 2014-08-15 10:52:37 +04:00
parent ef92e006d0
commit de6d1bf46b
7 changed files with 33 additions and 8 deletions

View file

@ -27,9 +27,6 @@
*/
package mage.player.ai;
import mage.constants.Outcome;
import mage.constants.PhaseStep;
import mage.constants.RangeOfInfluence;
import mage.abilities.Ability;
import mage.abilities.ActivatedAbility;
import mage.abilities.SpellAbility;
@ -40,6 +37,9 @@ import mage.abilities.keyword.*;
import mage.cards.Card;
import mage.cards.Cards;
import mage.choices.Choice;
import mage.constants.Outcome;
import mage.constants.PhaseStep;
import mage.constants.RangeOfInfluence;
import mage.game.Game;
import mage.game.combat.Combat;
import mage.game.combat.CombatGroup;
@ -52,6 +52,7 @@ import mage.player.ai.ma.optimizers.TreeOptimizer;
import mage.player.ai.ma.optimizers.impl.DiscardCardOptimizer;
import mage.player.ai.ma.optimizers.impl.EquipOptimizer;
import mage.player.ai.ma.optimizers.impl.LevelUpOptimizer;
import mage.player.ai.ma.optimizers.impl.OutcomeOptimizer;
import mage.player.ai.util.CombatInfo;
import mage.player.ai.util.CombatUtil;
import mage.players.Player;
@ -62,7 +63,6 @@ import mage.target.Targets;
import java.io.File;
import java.util.*;
import java.util.concurrent.*;
import mage.player.ai.ma.optimizers.impl.OutcomeOptimizer;
/**
*
@ -1364,6 +1364,11 @@ public class ComputerPlayer6 extends ComputerPlayer implements Player {
}
}
@Override
public int getActionCount() {
return suggested.size();
}
protected String listTargets(Game game, Targets targets) {
StringBuilder sb = new StringBuilder();
if (targets != null) {

View file

@ -91,5 +91,4 @@ public class PersistTest extends CardTestPlayerBase {
}
// some tests were moved to LastKnownInformationTest
}

View file

@ -51,6 +51,7 @@ public class LastKnownInformationTest extends CardTestPlayerBase {
setStopAt(1, PhaseStep.END_TURN);
execute();
assertActionCount(playerB, 0);
assertPermanentCount(playerA, "Safehold Elite", 1);
assertPowerToughness(playerA, "Safehold Elite", 1, 1);
// because enchanted Safehold Elite's P/T was 2/2, Murder Investigation has to put 2 Soldier onto the battlefield

View file

@ -85,6 +85,11 @@ public class TestPlayer extends ComputerPlayer {
actions.add(new PlayerAction(turnNum, step, action));
}
@Override
public int getActionCount() {
return actions.size();
}
public void addChoice(String choice) {
choices.add(choice);
}
@ -366,7 +371,7 @@ public class TestPlayer extends ComputerPlayer {
if (groups.length > 2 && groups[2].startsWith("spellOnStack=")) {
String spellOnStack = groups[2].substring(13);
for (StackObject stackObject: game.getStack()) {
if (stackObject.getStackAbility().toString().indexOf(spellOnStack) >= 0) {
if (stackObject.getStackAbility().toString().contains(spellOnStack)) {
return true;
}
}
@ -374,7 +379,7 @@ public class TestPlayer extends ComputerPlayer {
} else if (groups.length > 2 && groups[2].startsWith("!spellOnStack=")) {
String spellNotOnStack = groups[2].substring(14);
for (StackObject stackObject: game.getStack()) {
if (stackObject.getStackAbility().toString().equals(spellNotOnStack)) {
if (stackObject.getStackAbility().toString().contains(spellNotOnStack)) {
return false;
}
}
@ -388,7 +393,7 @@ public class TestPlayer extends ComputerPlayer {
String spellOnTopOFStack = groups[2].substring(18);
if (game.getStack().size() > 0) {
StackObject stackObject = game.getStack().getFirst();
if (stackObject != null && stackObject.getStackAbility().toString().indexOf(spellOnTopOFStack) >= 0) {
if (stackObject != null && stackObject.getStackAbility().toString().contains(spellOnTopOFStack)) {
return true;
}
}

View file

@ -621,6 +621,15 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
Assert.assertEquals("(Graveyard) Card counts are not equal (" + cardName + ")", count, actualCount);
}
/**
* Asserts added actions count. Usefull to make sure that all actions were executed.
* @param player
* @param count
*/
public void assertActionCount(TestPlayer player, int count) {
Assert.assertEquals("Actions left are not equal: ", count, player.getActionCount());
}
public Permanent getPermanent(String cardName, Player player) {
return getPermanent(cardName, player.getId());
}

View file

@ -204,6 +204,7 @@ public interface Player extends MageItem, Copyable<Player> {
boolean isTestMode();
void setTestMode(boolean value);
void addAction(String action);
int getActionCount();
void setAllowBadMoves(boolean allowBadMoves);
void init(Game game);

View file

@ -2220,6 +2220,11 @@ public abstract class PlayerImpl implements Player, Serializable {
// do nothing
}
@Override
public int getActionCount() {
return 0;
}
@Override
public void setAllowBadMoves(boolean allowBadMoves) {
// do nothing