public void testMultiGoalProblem()
{
Map romaniaMap = new SimplifiedRoadMapOfPartOfRomania();
Problem problem = new Problem(SimplifiedRoadMapOfPartOfRomania.ARAD,
MapFunctionFactory.getActionsFunction(romaniaMap),
MapFunctionFactory.getResultFunction(), new DualMapGoalTest(
SimplifiedRoadMapOfPartOfRomania.BUCHAREST,
SimplifiedRoadMapOfPartOfRomania.HIRSOVA),
new MapStepCostFunction(romaniaMap));
Search search = new BreadthFirstSearch(new GraphSearch());
SearchAgent agent = new SearchAgent(problem, search);
Assert
.Equals(
"[Action[name==moveTo, location==Sibiu], Action[name==moveTo, location==Fagaras], Action[name==moveTo, location==Bucharest], Action[name==moveTo, location==Urziceni], Action[name==moveTo, location==Hirsova]]",
agent.getActions().ToString());
Assert.Equals(5, agent.getActions().Count);
Assert.Equals("14", agent.getInstrumentation()[
"nodesExpanded"]);
Assert.Equals("1", agent.getInstrumentation()[
"queueSize"]);
Assert.Equals("5", agent.getInstrumentation()[
"maxQueueSize"]);
}