package aima.test.core.unit.environment.map; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import aima.core.environment.map.ExtendableMap; import aima.core.environment.map.MapStepCostFunction; import aima.core.environment.map.MoveToAction; /** * @author Ciaran O'Reilly * */ public class MapStepCostFunctionTest { MapStepCostFunction mscf; @Before public void setUp() { ExtendableMap aMap = new ExtendableMap(); aMap.addBidirectionalLink("A", "B", 5.0); aMap.addBidirectionalLink("A", "C", 6.0); aMap.addBidirectionalLink("B", "C", 4.0); aMap.addBidirectionalLink("C", "D", 7.0); aMap.addUnidirectionalLink("B", "E", 14.0); mscf = new MapStepCostFunction(aMap); } @Test public void testCosts() { Assert.assertEquals(5.0, mscf.c("A", new MoveToAction("B"), "B"), 0.001); Assert.assertEquals(6.0, mscf.c("A", new MoveToAction("C"), "C"), 0.001); Assert.assertEquals(4.0, mscf.c("B", new MoveToAction("C"), "C"), 0.001); Assert.assertEquals(7.0, mscf.c("C", new MoveToAction("D"), "D"), 0.001); Assert.assertEquals(14.0, mscf.c("B", new MoveToAction("E"), "E"), 0.001); // Assert.assertEquals(5.0, mscf.c("B", new MoveToAction("A"), "A"), 0.001); Assert.assertEquals(6.0, mscf.c("C", new MoveToAction("A"), "A"), 0.001); Assert.assertEquals(4.0, mscf.c("C", new MoveToAction("B"), "B"), 0.001); Assert.assertEquals(7.0, mscf.c("D", new MoveToAction("C"), "C"), 0.001); // Assert.assertEquals(1.0, mscf.c("X", new MoveToAction("Z"), "Z"), 0.001); Assert.assertEquals(1.0, mscf.c("A", new MoveToAction("Z"), "Z"), 0.001); Assert.assertEquals(1.0, mscf.c("A", new MoveToAction("D"), "D"), 0.001); Assert.assertEquals(1.0, mscf.c("A", new MoveToAction("B"), "E"), 0.001); } }