@vcostin/roman-numbers
Version:
TDD cata for roman-numbers, and it's working, at least from 0 til 4999
116 lines (87 loc) • 3.14 kB
JavaScript
var expect = require('chai').expect;
var romanNumbers = require('../index');
describe('testing roman number converter', function () {
'use strict';
it('Expect to throw Error if number is outside 0 and 4999 range', function () {
expect(function () {
romanNumbers(-1);
}).to.throw('The number should be in 0 and 4999 range');
expect(function () {
romanNumbers(5000);
}).to.throw('The number should be in 0 and 4999 range');
});
it('Expect to throw TypeError if imput is not a number or integer', function () {
expect(function () {
romanNumbers(null);
}).to.throw('Input should be a integer number');
expect(function () {
romanNumbers(2.22);
}).to.throw('Input should be a integer number');
});
it('Expect to return a string', function () {
expect(romanNumbers(1)).to.be.a('string');
});
it('Expect to return "nulla" from 0', function () {
expect(romanNumbers(0)).to.be.equal('nulla');
});
it('Expect to return "I" from 1', function () {
expect(romanNumbers(1)).to.be.equal('I');
});
it('Expect to return "II" from 2', function () {
expect(romanNumbers(2)).to.be.equal('II');
});
it('Expect to return "III" from 3', function () {
expect(romanNumbers(3)).to.be.equal('III');
});
it('Expect to return "IV" from 4', function () {
expect(romanNumbers(4)).to.be.equal('IV');
});
it('Expect to return "V" from 5', function () {
expect(romanNumbers(5)).to.be.equal('V');
});
it('Expect to return "VI" from 6', function () {
expect(romanNumbers(6)).to.be.equal('VI');
});
it('Expect to return "IX" from 9', function () {
expect(romanNumbers(9)).to.be.equal('IX');
});
it('Expect to return "X" from 10', function () {
expect(romanNumbers(10)).to.be.equal('X');
});
it('Expect to return "XX" from 20', function () {
expect(romanNumbers(20)).to.be.equal('XX');
});
it('Expect to return "XXVI" from 26', function () {
expect(romanNumbers(20)).to.be.equal('XX');
});
it('Expect to return "XL" from 40', function () {
expect(romanNumbers(40)).to.be.equal('XL');
});
it('Expect to return "L" from 50', function () {
expect(romanNumbers(50)).to.be.equal('L');
});
it('Expect to return "XC" from 90', function () {
expect(romanNumbers(90)).to.be.equal('XC');
});
it('Expect to return "C" from 100', function () {
expect(romanNumbers(100)).to.be.equal('C');
});
it('Expect to return "XD" from 490', function () {
expect(romanNumbers(490)).to.be.equal('XD');
});
it('Expect to return "D" from 500', function () {
expect(romanNumbers(500)).to.be.equal('D');
});
it('Expect to return "CM" from 900', function () {
expect(romanNumbers(900)).to.be.equal('CM');
});
it('Expect to return "M" from 1000', function () {
expect(romanNumbers(1000)).to.be.equal('M');
});
it('Expect to return "MCMXCIX" from 1999', function () {
expect(romanNumbers(1999)).to.be.equal('MCMXCIX');
});
it('Expect to return "MCMXCVIII" from 1998', function () {
expect(romanNumbers(2998)).to.be.equal('MMCMXCVIII');
});
});