package org.ggp.base.util.gdl.transforms;
import java.util.List;
import org.ggp.base.util.game.TestGameRepository;
import org.ggp.base.util.gdl.grammar.Gdl;
import org.ggp.base.util.statemachine.MachineState;
import org.ggp.base.util.statemachine.Role;
import org.ggp.base.util.statemachine.StateMachine;
import org.ggp.base.util.statemachine.implementation.prover.ProverStateMachine;
import org.ggp.base.validator.StaticValidator;
import org.junit.Assert;
import org.junit.Test;
public class GdlCleanerTest extends Assert {
@Test
public void testCleanNotDistinct() throws Exception {
List<Gdl> description = new TestGameRepository().getGame("test_clean_not_distinct").getRules();
description = GdlCleaner.run(description);
StaticValidator.validateDescription(description);
StateMachine sm = new ProverStateMachine();
sm.initialize(description);
MachineState state = sm.getInitialState();
assertEquals(1, sm.getRoles().size());
Role player = sm.getRoles().get(0);
assertEquals(1, sm.getLegalMoves(state, player).size());
state = sm.getNextStates(state).get(0);
assertTrue(sm.isTerminal(state));
assertEquals(100, sm.getGoal(state, player));
}
}