iskaprekar
Version:
Is the integer a Kaprekar number
42 lines (39 loc) • 1.71 kB
JavaScript
var assert = require('chai').assert;
var isKaprekar = require('../');
var splitNumber = require('../').splitNumber;
var combineNumber = require('../').combineNumber;
describe('isKaprekar', function() {
it('should result true when calling with Kaprekar numbers', function() {
assert.equal(isKaprekar(1), true);
assert.equal(isKaprekar(45), true);
assert.equal(isKaprekar(4950), true);
assert.equal(isKaprekar(95121), true);
assert.equal(isKaprekar(499500), true);
});
it('should result false when calling with non-Kaprekar numbers', function() {
assert.equal(isKaprekar(2), false);
assert.equal(isKaprekar(50), false);
assert.equal(isKaprekar(5000), false);
assert.equal(isKaprekar(95000), false);
assert.equal(isKaprekar(499000), false);
});
});
describe('splitNumber', function() {
it('should return correct array with different integers', function() {
assert.deepEqual(splitNumber(1), [ 1 ]);
assert.deepEqual(splitNumber(12), [ 1, 2 ]);
assert.deepEqual(splitNumber(123), [ 1, 2, 3 ]);
assert.deepEqual(splitNumber(1234), [ 1, 2, 3, 4 ]);
});
it('should return an array of numbers', function() {
assert.typeOf(splitNumber(1)[0], 'number');
});
});
describe('combineNumber', function() {
it('should return correct integer with different arrays', function() {
assert.deepEqual(combineNumber([ 1 ]), 1);
assert.deepEqual(combineNumber([ 1, 2 ]), 12);
assert.deepEqual(combineNumber([ 1, 2, 3 ]), 123);
assert.deepEqual(combineNumber([ 1, 2, 3, 4 ]), 1234);
});
});