public void testPassiveTDAgent()
{
PassiveTDAgent<CellWorldPosition, String> agent = new PassiveTDAgent<CellWorldPosition, String>(
fourByThree, policy);
// Randomizer r = new JavaRandomizer();
Randomizer r = new MockRandomizer(new double[] { 0.1, 0.9, 0.2, 0.8,
0.3, 0.7, 0.4, 0.6, 0.5 });
MDPUtilityFunction<CellWorldPosition> uf = null;
for (int i = 0; i < 200; i++)
{
agent.executeTrial(r);
uf = agent.getUtilityFunction();
// System.Console.WriteLine(uf);
}
Assert.AreEqual(0.662, uf.getUtility(new CellWorldPosition(1, 1)),
0.001);
Assert.AreEqual(0.610, uf.getUtility(new CellWorldPosition(1, 2)),
0.001);
Assert.AreEqual(0.553, uf.getUtility(new CellWorldPosition(1, 3)),
0.001);
Assert.AreEqual(0.496, uf.getUtility(new CellWorldPosition(1, 4)),
0.001);
Assert.AreEqual(0.735, uf.getUtility(new CellWorldPosition(2, 1)),
0.001);
Assert.AreEqual(0.835, uf.getUtility(new CellWorldPosition(2, 3)),
0.001);
// AreEqual(-1.0, uf.getUtility(new
// CellWorldPosition(2,4)),0.001);//the pseudo random genrator never
// gets to this square
Assert.AreEqual(0.789, uf.getUtility(new CellWorldPosition(3, 1)),
0.001);
Assert.AreEqual(0.889, uf.getUtility(new CellWorldPosition(3, 3)),
0.001);
Assert.AreEqual(1.0, uf.getUtility(new CellWorldPosition(3, 4)),
0.001);
}