Search in sources :

Example 6 with AgentPercept

use of aima.core.environment.wumpusworld.AgentPercept in project aima-java by aimacode.

the class WumpusKnowledgeBaseTest method testAskCurrentPosition.

@Test
public void testAskCurrentPosition() {
    // Create very small cave in order to make inference for tests faster.
    WumpusKnowledgeBase KB = new WumpusKnowledgeBase(dpll, 2);
    // NOTE: in the 2x2 cave for this set of assertion tests, 
    // we are going to have no pits and the wumpus in [2,2]
    // this needs to be correctly set up in order to keep the KB consistent.
    int t = 0;
    AgentPosition current;
    step(KB, new AgentPercept(false, false, false, false, false), t);
    current = KB.askCurrentPosition(t);
    Assert.assertEquals(new AgentPosition(1, 1, AgentPosition.Orientation.FACING_EAST), current);
    KB.makeActionSentence(new Forward(current), t);
    t++;
    step(KB, new AgentPercept(true, false, false, false, false), t);
    current = KB.askCurrentPosition(t);
    Assert.assertEquals(new AgentPosition(2, 1, AgentPosition.Orientation.FACING_EAST), current);
    KB.makeActionSentence(new TurnLeft(current.getOrientation()), t);
    t++;
    step(KB, new AgentPercept(true, false, false, false, false), t);
    current = KB.askCurrentPosition(t);
    Assert.assertEquals(new AgentPosition(2, 1, AgentPosition.Orientation.FACING_NORTH), current);
    KB.makeActionSentence(new TurnLeft(current.getOrientation()), t);
    t++;
    step(KB, new AgentPercept(true, false, false, false, false), t);
    current = KB.askCurrentPosition(t);
    Assert.assertEquals(new AgentPosition(2, 1, AgentPosition.Orientation.FACING_WEST), current);
    KB.makeActionSentence(new Forward(current), t);
    t++;
    step(KB, new AgentPercept(false, false, false, false, false), t);
    current = KB.askCurrentPosition(t);
    Assert.assertEquals(new AgentPosition(1, 1, AgentPosition.Orientation.FACING_WEST), current);
    KB.makeActionSentence(new Forward(current), t);
    t++;
    step(KB, new AgentPercept(false, false, false, true, false), t);
    current = KB.askCurrentPosition(t);
    Assert.assertEquals(new AgentPosition(1, 1, AgentPosition.Orientation.FACING_WEST), current);
}
Also used : TurnLeft(aima.core.environment.wumpusworld.action.TurnLeft) AgentPercept(aima.core.environment.wumpusworld.AgentPercept) AgentPosition(aima.core.environment.wumpusworld.AgentPosition) Forward(aima.core.environment.wumpusworld.action.Forward) WumpusKnowledgeBase(aima.core.environment.wumpusworld.WumpusKnowledgeBase) Test(org.junit.Test)

Example 7 with AgentPercept

use of aima.core.environment.wumpusworld.AgentPercept in project aima-java by aimacode.

the class WumpusKnowledgeBaseTest method testAskNotUnsafeRooms.

@SuppressWarnings("serial")
@Test
public void testAskNotUnsafeRooms() {
    WumpusKnowledgeBase KB;
    int t = 0;
    KB = new WumpusKnowledgeBase(dpll, 2);
    step(KB, new AgentPercept(false, false, false, false, false), t);
    Assert.assertEquals(new HashSet<Room>() {

        {
            add(new Room(1, 1));
            add(new Room(1, 2));
            add(new Room(2, 1));
        }
    }, KB.askNotUnsafeRooms(t));
    KB = new WumpusKnowledgeBase(dpll, 2);
    step(KB, new AgentPercept(true, false, false, false, false), t);
    Assert.assertEquals(new HashSet<Room>() {

        {
            add(new Room(1, 1));
            add(new Room(1, 2));
            add(new Room(2, 1));
            add(new Room(2, 2));
        }
    }, KB.askNotUnsafeRooms(t));
}
Also used : AgentPercept(aima.core.environment.wumpusworld.AgentPercept) WumpusKnowledgeBase(aima.core.environment.wumpusworld.WumpusKnowledgeBase) Room(aima.core.environment.wumpusworld.Room) Test(org.junit.Test)

Example 8 with AgentPercept

use of aima.core.environment.wumpusworld.AgentPercept in project aima-java by aimacode.

the class WumpusKnowledgeBaseTest method testAskGlitter.

@Test
public void testAskGlitter() {
    WumpusKnowledgeBase KB = new WumpusKnowledgeBase(dpll, 2);
    step(KB, new AgentPercept(false, false, false, false, false), 0);
    Assert.assertFalse(KB.askGlitter(0));
    step(KB, new AgentPercept(false, false, false, false, false), 1);
    Assert.assertFalse(KB.askGlitter(1));
    step(KB, new AgentPercept(false, false, true, false, false), 2);
    Assert.assertTrue(KB.askGlitter(2));
    step(KB, new AgentPercept(false, false, false, false, false), 3);
    Assert.assertFalse(KB.askGlitter(3));
}
Also used : AgentPercept(aima.core.environment.wumpusworld.AgentPercept) WumpusKnowledgeBase(aima.core.environment.wumpusworld.WumpusKnowledgeBase) Test(org.junit.Test)

Aggregations

AgentPercept (aima.core.environment.wumpusworld.AgentPercept)8 Test (org.junit.Test)8 WumpusKnowledgeBase (aima.core.environment.wumpusworld.WumpusKnowledgeBase)7 AgentPosition (aima.core.environment.wumpusworld.AgentPosition)4 Room (aima.core.environment.wumpusworld.Room)4 Forward (aima.core.environment.wumpusworld.action.Forward)4 Action (aima.core.agent.Action)1 HybridWumpusAgent (aima.core.environment.wumpusworld.HybridWumpusAgent)1 Climb (aima.core.environment.wumpusworld.action.Climb)1 Grab (aima.core.environment.wumpusworld.action.Grab)1 TurnLeft (aima.core.environment.wumpusworld.action.TurnLeft)1 TurnRight (aima.core.environment.wumpusworld.action.TurnRight)1