Sha256: 222eaec63ffaf80b0174264c0f259125d87d631b79b8242eceb0d60c5bfb636b

Contents?: true

Size: 1.99 KB

Versions: 141

Compression:

Stored size: 1.99 KB

Contents

var solve = require('./alphametics');

describe('Solve the alphametics puzzle', function () {
  it('puzzle with three letters', function () {
    var puzzle = 'I + BB == ILL';
    var expected = {
      'I': 1,
      'B': 9,
      'L': 0
    };
    expect(solve(puzzle)).toEqual(expected);
  });

  xit('solution must have unique value for each letter', function () {
    var puzzle = 'A == B';
    expect(solve(puzzle)).toBeNull();
  });

  xit('leading zero solution is invalid', function () {
    var puzzle = 'ACA + DD == BD';
    expect(solve(puzzle)).toBeNull();
  });

  xit('puzzle with four letters', function () {
    var puzzle = 'AS + A == MOM';
    var expected =  {
      'A': 9,
      'S': 2,
      'M': 1,
      'O': 0
    };
    expect(solve(puzzle)).toEqual(expected);
  });

  xit('puzzle with six letters', function () {
    var puzzle = 'NO + NO + TOO == LATE';
    var expected =  {
      'N': 7,
      'O': 4,
      'T': 9,
      'L': 1,
      'A': 0,
      'E': 2
    };
    expect(solve(puzzle)).toEqual(expected);
  });

  xit('puzzle with seven letters', function () {
    var puzzle = 'HE + SEES + THE == LIGHT';
    var expected =  {
      'E': 4,
      'G': 2,
      'H': 5,
      'I': 0,
      'L': 1,
      'S': 9,
      'T': 7
    };
    expect(solve(puzzle)).toEqual(expected);
  });

  xit('puzzle with eight letters', function () {
    var puzzle = 'SEND + MORE == MONEY';
    var expected =  {
      'S': 9,
      'E': 5,
      'N': 6,
      'D': 7,
      'M': 1,
      'O': 0,
      'R': 8,
      'Y': 2
    };
    expect(solve(puzzle)).toEqual(expected);
  });

  xit('puzzle with ten letters', function () {
    var puzzle = 'AND + A + STRONG + OFFENSE + AS + A + GOOD == DEFENSE';
    var expected =   {
      'A': 5,
      'D': 3,
      'E': 4,
      'F': 7,
      'G': 8,
      'N': 0,
      'O': 2,
      'R': 1,
      'S': 6,
      'T': 9
    };
    expect(solve(puzzle)).toEqual(expected);
  });
});

Version data entries

141 entries across 141 versions & 1 rubygems

Version Path
trackler-2.2.1.119 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.118 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.117 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.116 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.115 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.114 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.113 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.111 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.110 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.109 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.108 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.107 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.106 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.105 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.104 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.103 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.102 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.101 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.100 tracks/javascript/exercises/alphametics/alphametics.spec.js
trackler-2.2.1.99 tracks/javascript/exercises/alphametics/alphametics.spec.js