package net.ciklum.icfpc11.controller; import junit.framework.TestCase import net.ciklum.icfpc11.domain.Game import net.ciklum.icfpc11.domain.Player import net.ciklum.icfpc11.controller.ai.Strategy import net.ciklum.icfpc11.parser.Command /** * blabla * * @author vic */ @Typed public class AiPlayerTest extends TestCase { private Controller controller private AiPlayer ai public void setUp() throws Exception { ai = new AiPlayer('ai-0') controller = new Controller(Game.push(ai, new Player('p1'))) } public void tearDown() throws Exception { Game.pop() } public void testGetCurrentStrategy() { Strategy s = ai.getCurrentStrategy() assertEquals ai.rushStrategy, s assertNotNull ai.getNextCommand() Game.instance.currentProponent.getSlot(0).vitality = 0 s = ai.getCurrentStrategy() assertEquals ai.save0Strategy, s Command c = ai.getNextCommand() assertNotNull c controller.applyCommand(c) int i = 0 while (Game.instance.currentProponent.getSlot(0).vitality <= 0) { s = ai.getCurrentStrategy() assertEquals "On iteration $i: ", ai.save0Strategy, s assertEquals 200, ai.save0Strategy.slotForAddress c = s.nextCommand controller.applyCommand(c) i++ } assertEquals 1, Game.instance.currentProponent.getSlot(0).vitality } }