Skip to content
Snippets Groups Projects
Select Git revision
  • 3801bec7ed2512b665a97fd9ed6283a7df9de5db
  • master default protected
2 results

dependencySet.js

Blame
  • 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);
        });
      });
    });