public void testPassiveADPAgent()
{
PassiveADPAgent<CellWorldPosition, String> agent = new PassiveADPAgent<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 < 100; i++)
{
agent.executeTrial(r);
uf = agent.getUtilityFunction();
}
Assert.AreEqual(0.676, uf.getUtility(new CellWorldPosition(1, 1)),
0.001);
Assert.AreEqual(0.626, uf.getUtility(new CellWorldPosition(1, 2)),
0.001);
Assert.AreEqual(0.573, uf.getUtility(new CellWorldPosition(1, 3)),
0.001);
Assert.AreEqual(0.519, uf.getUtility(new CellWorldPosition(1, 4)),
0.001);
Assert.AreEqual(0.746, uf.getUtility(new CellWorldPosition(2, 1)),
0.001);
Assert.AreEqual(0.865, 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.796, uf.getUtility(new CellWorldPosition(3, 1)),
0.001);
Assert.AreEqual(0.906, uf.getUtility(new CellWorldPosition(3, 3)),
0.001);
Assert.AreEqual(1.0, uf.getUtility(new CellWorldPosition(3, 4)),
0.001);
}