58 lines
1.8 KiB
TypeScript
58 lines
1.8 KiB
TypeScript
import { describe, test, expect } from "bun:test";
|
|
import { generateSolvedBoard } from "./sudoku";
|
|
import { assertValidFullBoard } from "./validate-board";
|
|
|
|
|
|
const valids = [
|
|
"534678912672195348198342567859761423426853791713924856961537284287419635345286179",
|
|
"456789123123456789789123456567891234234567891891234567678912345345678912912345678",
|
|
"234567891567891234891234567345678912678912345912345678456789123789123456123456789",
|
|
"987654321654321987321987654876543219543219876219876543765432198432198765198765432"
|
|
];
|
|
|
|
const invalids = [
|
|
"534678912672195348198342567859761423426853791713924856961537284287419635345286171",
|
|
"534678911672195348198342567859761423426853791713924856961537284287419635345286179",
|
|
"534678912572195348198342567859761423426853791713924856961537284287419635345286179",
|
|
"534678912672195348198342567859761423426863791713924856961537284287419635345286179",
|
|
];
|
|
|
|
describe("Testing the Asserter with static boards", () => {
|
|
test("valid boards", () => {
|
|
for (let board of valids) {
|
|
expect(() => assertValidFullBoard(board)).not.toThrow();
|
|
}
|
|
})
|
|
|
|
test("invalid boards", () => {
|
|
for (let board of invalids) {
|
|
expect(() => assertValidFullBoard(board)).toThrow()
|
|
}
|
|
})
|
|
});
|
|
|
|
describe("Testing the generateSolvedBoard", () => {
|
|
test("generates 10 valid boards", () => {
|
|
for (let i = 0; i < 10; i++) {
|
|
const generated = generateSolvedBoard();
|
|
assertValidFullBoard(generated);
|
|
};
|
|
});
|
|
test("generates 100 valid boards", () => {
|
|
for (let i = 0; i < 100; i++) {
|
|
const generated = generateSolvedBoard();
|
|
assertValidFullBoard(generated);
|
|
};
|
|
});
|
|
|
|
test("generates 1000 valid boards", () => {
|
|
for (let i = 0; i < 1000; i++) {
|
|
const generated = generateSolvedBoard();
|
|
assertValidFullBoard(generated);
|
|
};
|
|
});
|
|
});
|
|
|
|
|
|
|