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.Before; 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.Const; 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 MobilityTest { private static final Logger logger = Logger.getLogger(MobilityTest.class); private static final Atom role = new Atom("a"); private static final Atom opponent = new Atom("b"); private static final Atom a1 = new Atom("1"); private static final Atom a4 = new Atom("4"); private static final Atom pick = new Atom("pick"); private static final Atom pickedby = new Atom("pickedby"); private static final Atom control = new Atom("control"); final Predicate pPick1 = new Predicate(pick, a1); final Predicate pPick3 = new Predicate(pick, new Atom("3")); final Predicate pPick5 = new Predicate(pick, new Atom("5")); final Predicate pPick7 = new Predicate(pick, new Atom("7")); final Predicate pPick9 = new Predicate(pick, new Atom("9")); final Expression pNoop = new Atom("noop"); final Predicate pPickedByA1 = new Predicate( Const.aTrue, new Predicate(pickedby, role, a1)); final Predicate pPickedByA4 = new Predicate( Const.aTrue, new Predicate(pickedby, role, a4)); final Predicate pControlB = new Predicate( Const.aTrue, new Predicate(control, opponent)); AbstractStrategy mobility; GameNode gameNode; GameManager manager = new GameManager(); @Before public void setUp(){ ExpressionList gameRules = Parser.parseFile( "./testdata/mobility.kif" ); Game game = manager.getGameByGDL( gameRules.toString() ); mobility = new Mobility( game, role.toString(), new TimerFlag() ); gameNode = game.getInitialNode(); } @Test public void pickMove(){ Expression aMove = mobility.pickMove(gameNode); assertNotNull ( aMove ); assertTrue ( aMove instanceof Predicate ); Expression action = ((Predicate) aMove).getOperands().get( 1 ); assertEquals ( pick, action.firstOperand() ); if ( logger.isTraceEnabled() ) logger.trace(aMove); assertTrue( pPick1.equals( action ) || pPick3.equals( action ) || pPick5.equals( action ) || pPick7.equals( action ) || pPick9.equals( action ) ); } }