diff --git a/Backtracking/NQueen.js b/Backtracking/NQueens.js similarity index 92% rename from Backtracking/NQueen.js rename to Backtracking/NQueens.js index 04c6ff3dbd..f75b384869 100644 --- a/Backtracking/NQueen.js +++ b/Backtracking/NQueens.js @@ -1,5 +1,8 @@ -class NQueen { +class NQueens { constructor (size) { + if (size < 0) { + throw RangeError('Invalid board size') + } this.board = new Array(size).fill('.').map(() => new Array(size).fill('.')) this.size = size this.solutionCount = 0 @@ -61,4 +64,4 @@ class NQueen { } } -export { NQueen } +export { NQueens } diff --git a/Backtracking/tests/NQueen.test.js b/Backtracking/tests/NQueen.test.js deleted file mode 100644 index 50000d1be1..0000000000 --- a/Backtracking/tests/NQueen.test.js +++ /dev/null @@ -1,15 +0,0 @@ -import { NQueen } from '../NQueen' - -describe('NQueen', () => { - it('should return 2 solutions for 4x4 size board', () => { - const _4Queen = new NQueen(4) - _4Queen.solve() - expect(_4Queen.solutionCount).toEqual(2) - }) - - it('should return 92 solutions for 8x8 size board', () => { - const _8Queen = new NQueen(8) - _8Queen.solve() - expect(_8Queen.solutionCount).toEqual(92) - }) -}) diff --git a/Backtracking/tests/NQueens.test.js b/Backtracking/tests/NQueens.test.js new file mode 100644 index 0000000000..6eac39ad90 --- /dev/null +++ b/Backtracking/tests/NQueens.test.js @@ -0,0 +1,19 @@ +import { NQueens } from '../NQueens' + +describe('NQueens', () => { + it('should return 2 solutions for 4x4 size board', () => { + const _4Queens = new NQueens(4) + _4Queens.solve() + expect(_4Queens.solutionCount).toEqual(2) + }) + + it('should return 92 solutions for 8x8 size board', () => { + const _8Queens = new NQueens(8) + _8Queens.solve() + expect(_8Queens.solutionCount).toEqual(92) + }) + + it('should throw RangeError for negative size board', () => { + expect(() => { return new NQueens(-1) }).toThrow(RangeError) + }) +})