Select Git revision
error-messages.ts
dependencySet.js 1.75 KiB
// Sudoku Solver
// Copyright (C) 2020 Christoph (Sheogorath) Kern
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published
// by the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
const Cell = require("../lib/cell");
const DependencySet = require("../lib/dependencySet");
const assert = require('assert');
describe('DependencySet', function () {
let cellSet;
// disable debug output
console.debug = function(){};
beforeEach(() => {
cellSet = [new Cell(), new Cell(), new Cell(), new Cell(), new Cell(), new Cell(), new Cell(), new Cell(), new Cell()];
});
describe('#constructor(cells)', function () {
it('should create a DependencySet', function () {
const dependencySet = new DependencySet(cellSet);
assert.deepEqual(dependencySet.cells, cellSet);
});
it('should throw an error when more than 9 cells are added', function () {
assert.throws(() => {
new DependencySet(cellSet.concat([new Cell()]));
}, Error);
});
it('should listen to changed events from cells', function () {
const count = cellSet[0].listenerCount("changed");
new DependencySet(cellSet);
assert.equal(cellSet[0].listenerCount("changed"), count + 1);
});
});
});