public void DiagonalFind() { network = new SamplePathNetwork(dataA); IPathNode start = network.GetNode(0, 0); IPathNode goal = network.GetNode(9, 9); Path<SampleNode> p = solver.FindPath(start, goal, network); Assert.AreEqual(PathStatus.FOUND_GOAL, p.status); Assert.AreEqual(18, (int)p.pathLength); }
static void SpeedTest(string maze, int width, int height, int iterations) { var network = new SamplePathNetwork(maze, width, height); var solver = new PathSolver<SampleNode>(); for (int i = 0; i < iterations; i++) { IPathNode start = network.GetNode(rand.Next(width), rand.Next(height)); IPathNode goal = network.GetNode(rand.Next(width), rand.Next(height)); Path<SampleNode> p = solver.FindPath(start, goal, network, true); Console.WriteLine(p.status.ToString()); } }
public void EasyMaze() { const string maze = "0,0,0,0,1,0,0,0,0,0," + "1,1,1,0,1,0,0,0,0,0," + "0,0,0,0,1,0,0,0,0,0," + "0,1,1,1,1,0,0,0,0,0," + "0,0,0,0,1,0,0,0,0,0," + "0,0,0,0,1,0,0,0,0,0," + "0,0,0,0,1,0,0,0,0,0," + "0,1,1,1,1,0,0,0,0,0," + "0,0,0,0,0,0,0,0,0,0," + "0,0,0,0,0,1,1,1,0,0,"; const string mazeResult = "x,x,x,x,0,0,0,0,0,0," + "0,0,0,x,0,0,0,0,0,0," + "x,x,x,x,0,0,0,0,0,0," + "x,0,0,0,0,0,0,0,0,0," + "x,0,0,0,0,0,0,0,0,0," + "x,0,0,0,0,0,0,0,0,0," + "x,0,0,0,0,0,0,0,0,0," + "x,0,0,0,0,0,0,0,0,0," + "x,x,x,x,x,x,x,x,x,x," + "0,0,0,0,0,0,0,0,0,x,"; network = new SamplePathNetwork(maze); IPathNode start = network.GetNode(0, 0); IPathNode goal = network.GetNode(9, 9); Path<SampleNode> p = solver.FindPath(start, goal, network); PrintPath(p); Assert.AreEqual(PathStatus.FOUND_GOAL, p.status); Assert.AreEqual(25, (int)p.nodes.Length); Assert.AreEqual(mazeResult, BuildPathString(p)); }
public void GotoSameTileTest() { network = new SamplePathNetwork(dataA); IPathNode start = network.GetNode(0, 0); IPathNode goal = network.GetNode(0, 0); Path<SampleNode> p = solver.FindPath(start, goal, network); Assert.AreEqual(PathStatus.ALREADY_THERE, p.status); }