You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
2.0 KiB

package xu.solver.heuristic;
import core.problem.State;
import core.solver.Node;
import core.solver.heuristic.EvaluationType;
import xu.problem.pathfinding.Direction;
import xu.problem.pathfinding.Move;
import xu.problem.pathfinding.Point;
import xu.problem.pathfinding.Position;
import static org.junit.jupiter.api.Assertions.*;
class LinkedFrontierTest {
@org.junit.jupiter.api.Test
void offer() {
LinkedFrontier frontier = new LinkedFrontier(Node.evaluator(EvaluationType.FULL));
State position = new Position(4, 4);
Node parent = new Node(position, null, null, 0, 15);
position = new Position(5, 5);
Node node = new Node(position, parent, new Move(Direction.SE), 0, 15);
frontier.offer(node);
position = new Position(5, 6);
node = new Node(position, node, new Move(Direction.S), 1, 13);
frontier.offer(node);
position = new Position(6, 6);
node = new Node(position, node, new Move(Direction.E), 2, 13);
frontier.offer(node);
position = new Position(7, 6);
node = new Node(position, node, new Move(Direction.E), 3, 9);
frontier.offer(node);
for (Node node1: frontier){
System.out.println(node1);
}
System.out.println();
position = new Position(9, 6);
node = new Node(position, node, new Move(Direction.E), 2, 13);
System.out.println(frontier.getNode(node.getState()));
position = new Position(6, 6);
node = new Node(position, node, new Move(Direction.W), 22, 13);
System.out.println(frontier.contains(node));
System.out.println();
position = new Position(5, 6);
node = new Node(position, node, new Move(Direction.S), 3, 10);
frontier.discardOrReplace(node);
for (Node node1: frontier){
System.out.println(node1);
}
System.out.println();
while (!frontier.isEmpty()){
frontier.poll().draw();
}
}
}