public void QueueTest() { PriorityQueue <AStarWorkingNode> q = new PriorityQueue <AStarWorkingNode>(); AStarWorkingNode node1 = new AStarWorkingNode(new PathNode()) { GScore = 1.0f, HScore = 5.0f }; AStarWorkingNode node2 = new AStarWorkingNode(new PathNode()) { GScore = 0.2f, HScore = 4.5f }; AStarWorkingNode node3 = new AStarWorkingNode(new PathNode()) { GScore = 0.5f, HScore = 5.0f }; q.Enqueue(node1); q.Enqueue(node2); q.Enqueue(node3); AStarWorkingNode node; node = q.Dequeue(); Assert.AreEqual(4.7f, node.FScore); node = q.Dequeue(); Assert.AreEqual(5.5f, node.FScore); node = q.Dequeue(); Assert.AreEqual(6.0f, node.FScore); }
public void WorkingNodeEquallityTest() { PathNode pNode1 = new PathNode(); PathNode pNode2 = new PathNode(); AStarWorkingNode wNode1 = new AStarWorkingNode(pNode1); AStarWorkingNode wNode2 = new AStarWorkingNode(pNode1); AStarWorkingNode wNode3 = new AStarWorkingNode(pNode2); Assert.AreEqual(true, wNode1.Equals(wNode2)); Assert.AreEqual(false, wNode1.Equals(wNode3)); // Test Hash Set HashSet <AStarWorkingNode> set = new HashSet <AStarWorkingNode>(); set.Add(wNode1); Assert.AreEqual(true, set.Contains(wNode2)); Assert.AreEqual(false, set.Contains(wNode3)); }