implement SudokuSolver.validate() method and write unit tests for method

This commit is contained in:
StevanFreeborn
2022-05-20 21:25:24 -05:00
parent a1a7c1984e
commit 25a78cb208
2 changed files with 41 additions and 2 deletions
+9
View File
@@ -1,18 +1,27 @@
class SudokuSolver { class SudokuSolver {
validate(puzzleString) { validate(puzzleString) {
return puzzleString.length == 81 && !puzzleString.match(/[^\.\d]/g);
} }
checkRowPlacement(puzzleString, row, column, value) { checkRowPlacement(puzzleString, row, column, value) {
} }
checkColPlacement(puzzleString, row, column, value) { checkColPlacement(puzzleString, row, column, value) {
} }
checkRegionPlacement(puzzleString, row, column, value) { checkRegionPlacement(puzzleString, row, column, value) {
} }
solve(puzzleString) { solve(puzzleString) {
+32 -2
View File
@@ -1,9 +1,39 @@
const chai = require('chai'); const chai = require('chai');
const assert = chai.assert; const assert = chai.assert;
const Solver = require('../controllers/sudoku-solver.js'); const { puzzlesAndSolutions } = require('../controllers/puzzle-strings');
let solver; const Solver = require('../controllers/sudoku-solver');
const solver = new Solver();
suite('UnitTests', () => { suite('UnitTests', () => {
test('SudokuSolver.validate(puzzleString) valid puzzle string of 81 characters', (done) => {
const input = puzzlesAndSolutions[0][0];
assert.equal(solver.validate(input), true);
done();
});
test('SudokuSolver.validate(puzzleString) puzzle string of 81 characters with invalid characters', (done) => {
const input = puzzlesAndSolutions[0][0].replace(/\./g, '?');
assert.equal(solver.validate(input), false);
done();
});
test('SudokuSolver.validate(puzzleString) puzzle string of 82 characters with valid characters', (done) => {
const input = puzzlesAndSolutions[0][0] + '0';
assert.equal(solver.validate(input), false);
done();
});
}); });