@cocacola-lover/knight_path_finder
Version:
Iterative path finding Algorithms for knight on a chessboard
34 lines (25 loc) • 1.32 kB
JavaScript
import {ChessPointers, Board} from './../dist/index';
test("Build Board works properly", () => {
const board = new Board(10, 10);
expect(board.squares.length).toBe(10);
for (let i = 0; i < 10; i++) expect(board.squares[0].length).toBe(10);
expect(board.createKnightPointer(0, 3)).toEqual(board.createKnightPointer(0,3));
expect(board.createKnightPointer(0, 3)).not.toBe(board.createKnightPointer(0,3));
});
test("ChessPointer works properly", () => {
const board = new Board(10, 10);
const pointer = board.createKnightPointer(0, 0);
expect(pointer.getPassableNeighbours()).toEqual([
new ChessPointers.KnightPointer(2, 1, board.squares),
new ChessPointers.KnightPointer(1, 2, board.squares),
])
const neighbourSquares = board.createKnightPointer(2, 1).getPassableNeighbours().map((e) => e.at());
[
new ChessPointers.KnightPointer(0, 0, board.squares),
new ChessPointers.KnightPointer(0, 2, board.squares),
new ChessPointers.KnightPointer(4, 0, board.squares),
new ChessPointers.KnightPointer(4, 2, board.squares),
new ChessPointers.KnightPointer(3, 3, board.squares),
new ChessPointers.KnightPointer(1, 3, board.squares),
].forEach((pointer) => expect(neighbourSquares).toContain(pointer.at()))
});