package de.tu_dresden.inf.ggp06_2.strategies; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.apache.log4j.Logger; import org.junit.Test; import de.tu_dresden.inf.ggp06_2.gamedb.logic.GameManager; import de.tu_dresden.inf.ggp06_2.parser.Parser; import de.tu_dresden.inf.ggp06_2.resolver.Atom; import de.tu_dresden.inf.ggp06_2.resolver.Expression; import de.tu_dresden.inf.ggp06_2.resolver.ExpressionList; import de.tu_dresden.inf.ggp06_2.resolver.Predicate; import de.tu_dresden.inf.ggp06_2.resolver.structures.GameNode; import de.tu_dresden.inf.ggp06_2.simulator.Game; import de.tu_dresden.inf.ggp06_2.simulator.flags.TimerFlag; public class SinglePlayerSearchTest { private static final Logger logger = Logger.getLogger(SinglePlayerSearchTest.class); private static final Atom aA = new Atom("a"); AbstractStrategy singlePlayerSearch; GameNode gameNode; GameManager manager = new GameManager(); Game game; @Test public void pickMoveButtonsLights(){ ExpressionList gameRules = Parser.parseFile( "./testdata/buttons_lights.kif" ); logger.info( ""+gameRules ); game = manager.getGameByGDL( gameRules.toString() ); singlePlayerSearch = new SinglePlayerSearch( game, "robot", new TimerFlag() ); logger.info( "=== Button lights ===" ); Expression aMove = singlePlayerSearch.pickMove(game.getInitialNode()); assertNotNull ( aMove ); assertTrue ( aMove instanceof Predicate ); Atom light = (Atom) ((Predicate) aMove).getOperands().get( 1 ); assertEquals ( aA, light ); logger.info( aMove ); } //Test public void pickMove8Puzzel(){ ExpressionList gameRules = Parser.parseFile( "./testdata/games/8Puzzel.kif" ); logger.info( ""+gameRules ); game = manager.getGameByGDL( gameRules.toString() ); singlePlayerSearch = new SinglePlayerSearch( game, "player", new TimerFlag() ); logger.info( "=== 8Ppuzzel ===" ); Expression aMove = singlePlayerSearch.pickMove(game.getInitialNode()); assertNotNull ( aMove ); assertTrue ( aMove instanceof Predicate ); Atom light = (Atom) ((Predicate) aMove).getOperands().get( 1 ); assertEquals ( aA, light ); logger.info( aMove ); } //Test public void pickMoveHanoi(){ ExpressionList gameRules = Parser.parseFile( "./testdata/games/Hanoi.kif" ); logger.info( ""+gameRules ); game = manager.getGameByGDL( gameRules.toString() ); singlePlayerSearch = new SinglePlayerSearch( game, "player", new TimerFlag() ); logger.info( "=== Hanoi ===" ); Expression aMove = singlePlayerSearch.pickMove(game.getInitialNode()); assertNotNull ( aMove ); assertTrue ( aMove instanceof Predicate ); logger.info( "picked move: "+aMove ); } }