28 lines
869 B
TypeScript
28 lines
869 B
TypeScript
import { it, expect } from "bun:test";
|
|
import { getBestRoute } from "../getBestRoute";
|
|
import { Color, createEmptyGrid, setColor } from "@snk/types/grid";
|
|
import { createSnakeFromCells, snakeToCells } from "@snk/types/snake";
|
|
import * as grids from "@snk/types/__fixtures__/grid";
|
|
import { snake3 } from "@snk/types/__fixtures__/snake";
|
|
|
|
it("should find best route", () => {
|
|
const snk0 = [
|
|
{ x: 0, y: 0 },
|
|
{ x: 1, y: 0 },
|
|
];
|
|
|
|
const grid = createEmptyGrid(5, 5);
|
|
setColor(grid, 3, 3, 1 as Color);
|
|
|
|
const chain = getBestRoute(grid, createSnakeFromCells(snk0))!;
|
|
|
|
expect(snakeToCells(chain[1])[1]).toEqual({ x: 0, y: 0 });
|
|
|
|
expect(snakeToCells(chain[chain.length - 1])[0]).toEqual({ x: 3, y: 3 });
|
|
});
|
|
|
|
for (const [gridName, grid] of Object.entries(grids))
|
|
it(`should find a solution for ${gridName}`, () => {
|
|
getBestRoute(grid, snake3);
|
|
});
|