import AgentSystemPluginAPI.Contract.StateAction;
import Factory.GameLogic.Enums.Direction;
import SimpleFactoryPlayer.Implementation.Entities.RawField;
import SimpleFactoryPlayer.Implementation.Entities.RawState;
import SimpleFactoryPlayer.Implementation.Enums.FieldType;
import SimpleFactoryPlayer.Implementation.Enums.FriendFoe;
import SimpleFactoryPlayer.Implementation.StateActionGenerator;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.Set;
/**
* Created with IntelliJ IDEA.
* User: TwiG
* Date: 08.06.12
* Time: 16:01
* To change this template use File | Settings | File Templates.
*/
public class StateActionGeneratorTest {
RawState testState = new RawState();
RawField rawField = new RawField();
RawField rawField2 = new RawField();
RawField rawField3 = new RawField();
StateActionGenerator stateActionGenerator =new StateActionGenerator();
@Before
public void setUp() throws Exception {
rawField.setUnit(FriendFoe.NONE);
rawField.setFieldController(FriendFoe.FRIEND);
rawField.setFieldType(FieldType.FACTORY);
rawField.setRemainingTimeToSpawn(2);
testState.setLeft(rawField);
testState.setTop(rawField);
testState.setLeftTop(rawField);
rawField2.setUnit(FriendFoe.FOE);
rawField2.setFieldController(FriendFoe.FOE);
rawField2.setFieldType(FieldType.INFLUENCE);
rawField2.setRemainingTimeToSpawn(6);
testState.setDown(rawField2);
testState.setLeftDown(rawField2);
rawField3.setUnit(FriendFoe.FRIEND);
rawField3.setFieldController(FriendFoe.FOE);
rawField3.setFieldType(FieldType.NORMAL);
rawField3.setRemainingTimeToSpawn(4);
testState.setMiddle(rawField3);
testState.setRight(rawField3);
testState.setRightTop(rawField3);
testState.setRightDown(rawField3);
testState.setSignal(Direction.RIGHT);
}
@After
public void tearDown() throws Exception {}
@Test
public void testGetAllPossibleActions() throws Exception {
String encryptedState = stateActionGenerator.encryptState(testState);
Set<StateAction> actionSet ;
actionSet = stateActionGenerator.getAllPossibleActions(new StateAction(encryptedState,""));
for(StateAction stateAction : actionSet){
int toTest = Integer.parseInt(stateAction.getActionDescription());
assert(toTest== 6 ||toTest== 5 ||toTest== 0);
}
}
@Test
public void testDecryptDirection() throws Exception {
String encryptedState = stateActionGenerator.encryptState(testState);
Set<StateAction> stateActions = stateActionGenerator.getAllPossibleActions(new StateAction(encryptedState));
for(StateAction action : stateActions){
//System.out.println(stateActionGenerator.decryptDirection(action.getActionDescription()));
}
}
@Test
public void testDecryptState() throws Exception {
String encryptedState = stateActionGenerator.encryptState(testState);
//System.out.println(testState);
//System.out.println(stateActionGenerator.decryptState(encryptedState));
}
@Test
public void testDecryptField() throws Exception {
}
}