mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-07-04 03:42:21 -04:00
feat(tool): roman-arabic numbers converter
This commit is contained in:
parent
3ae61147a9
commit
655019cf23
5 changed files with 154 additions and 0 deletions
|
@ -0,0 +1,73 @@
|
|||
import { expect, describe, it } from 'vitest';
|
||||
import { arabicToRoman } from './roman-numeral-converter.service';
|
||||
|
||||
describe('roman-numeral-converter', () => {
|
||||
describe('arabicToRoman', () => {
|
||||
it('should convert numbers lower than 1 to empty string', () => {
|
||||
expect(arabicToRoman(-100)).toEqual('');
|
||||
expect(arabicToRoman(-42)).toEqual('');
|
||||
expect(arabicToRoman(-26)).toEqual('');
|
||||
expect(arabicToRoman(-10)).toEqual('');
|
||||
expect(arabicToRoman(0)).toEqual('');
|
||||
expect(arabicToRoman(0.5)).toEqual('');
|
||||
expect(arabicToRoman(0.9)).toEqual('');
|
||||
});
|
||||
|
||||
it('should convert floating points number to the lower integer in roman version', () => {
|
||||
expect(arabicToRoman(-100)).toEqual('');
|
||||
expect(arabicToRoman(-42)).toEqual('');
|
||||
expect(arabicToRoman(-26)).toEqual('');
|
||||
expect(arabicToRoman(-10)).toEqual('');
|
||||
expect(arabicToRoman(0)).toEqual('');
|
||||
expect(arabicToRoman(0.5)).toEqual('');
|
||||
expect(arabicToRoman(0.9)).toEqual('');
|
||||
});
|
||||
|
||||
it('should convert positive integers to roman numbers', () => {
|
||||
expect(arabicToRoman(1)).toEqual('I');
|
||||
expect(arabicToRoman(2)).toEqual('II');
|
||||
expect(arabicToRoman(3)).toEqual('III');
|
||||
expect(arabicToRoman(4)).toEqual('IV');
|
||||
expect(arabicToRoman(5)).toEqual('V');
|
||||
expect(arabicToRoman(6)).toEqual('VI');
|
||||
expect(arabicToRoman(7)).toEqual('VII');
|
||||
expect(arabicToRoman(8)).toEqual('VIII');
|
||||
expect(arabicToRoman(9)).toEqual('IX');
|
||||
expect(arabicToRoman(10)).toEqual('X');
|
||||
expect(arabicToRoman(11)).toEqual('XI');
|
||||
expect(arabicToRoman(12)).toEqual('XII');
|
||||
expect(arabicToRoman(13)).toEqual('XIII');
|
||||
expect(arabicToRoman(14)).toEqual('XIV');
|
||||
expect(arabicToRoman(15)).toEqual('XV');
|
||||
expect(arabicToRoman(16)).toEqual('XVI');
|
||||
expect(arabicToRoman(17)).toEqual('XVII');
|
||||
expect(arabicToRoman(18)).toEqual('XVIII');
|
||||
expect(arabicToRoman(19)).toEqual('XIX');
|
||||
expect(arabicToRoman(20)).toEqual('XX');
|
||||
expect(arabicToRoman(21)).toEqual('XXI');
|
||||
expect(arabicToRoman(24)).toEqual('XXIV');
|
||||
expect(arabicToRoman(28)).toEqual('XXVIII');
|
||||
expect(arabicToRoman(29)).toEqual('XXIX');
|
||||
expect(arabicToRoman(30)).toEqual('XXX');
|
||||
expect(arabicToRoman(40)).toEqual('XL');
|
||||
expect(arabicToRoman(50)).toEqual('L');
|
||||
expect(arabicToRoman(60)).toEqual('LX');
|
||||
expect(arabicToRoman(70)).toEqual('LXX');
|
||||
expect(arabicToRoman(80)).toEqual('LXXX');
|
||||
expect(arabicToRoman(90)).toEqual('XC');
|
||||
expect(arabicToRoman(100)).toEqual('C');
|
||||
expect(arabicToRoman(200)).toEqual('CC');
|
||||
expect(arabicToRoman(300)).toEqual('CCC');
|
||||
expect(arabicToRoman(400)).toEqual('CD');
|
||||
expect(arabicToRoman(500)).toEqual('D');
|
||||
expect(arabicToRoman(600)).toEqual('DC');
|
||||
expect(arabicToRoman(700)).toEqual('DCC');
|
||||
expect(arabicToRoman(800)).toEqual('DCCC');
|
||||
expect(arabicToRoman(900)).toEqual('CM');
|
||||
expect(arabicToRoman(999)).toEqual('CMXCIX');
|
||||
expect(arabicToRoman(1000)).toEqual('M');
|
||||
expect(arabicToRoman(2000)).toEqual('MM');
|
||||
expect(arabicToRoman(9000)).toEqual('MMMMMMMMM');
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue