import getNumberName from '../../../index'; describe('Number group conversion', () => { describe('0 in hundreds place', () => { describe('0 in tens place', () => { describe.each` ones | onesName ${0} | ${'zero'} ${1} | ${'one'} ${2} | ${'two'} ${3} | ${'three'} ${4} | ${'four'} ${5} | ${'five'} ${6} | ${'six'} ${7} | ${'seven'} ${8} | ${'eight'} ${9} | ${'nine'} `('$ones in ones place', ({ ones, onesName, }) => { it(`converts ${ones} to ${onesName}`, () => { expect(getNumberName(ones)).toBe(onesName); }); }); }); describe('1 in tens place', () => { describe.each` ones | onesName ${0} | ${'ten'} ${1} | ${'eleven'} ${2} | ${'twelve'} ${3} | ${'thirteen'} ${4} | ${'fourteen'} ${5} | ${'fifteen'} ${6} | ${'sixteen'} ${7} | ${'seventeen'} ${8} | ${'eighteen'} ${9} | ${'nineteen'} `('$ones in ones place', ({ ones, onesName, }) => { it(`converts 1${ones} to ${onesName}`, () => { expect(getNumberName(10 + ones)).toBe(onesName); }); }); }); describe.each` tens | tensName ${2} | ${'twenty'} ${3} | ${'thirty'} ${4} | ${'forty'} ${5} | ${'fifty'} ${6} | ${'sixty'} ${7} | ${'seventy'} ${8} | ${'eighty'} ${9} | ${'ninety'} `('$tens in tens place', ({tens, tensName}) => { describe.each` ones | onesName ${0} | ${''} ${1} | ${'one'} ${2} | ${'two'} ${3} | ${'three'} ${4} | ${'four'} ${5} | ${'five'} ${6} | ${'six'} ${7} | ${'seven'} ${8} | ${'eight'} ${9} | ${'nine'} `('$ones in ones place', ({ ones, onesName, }) => { const value = (tens * 10) + ones; const name = [tensName, onesName].join(' ').trim(); it(`converts ${value} to ${name}`, () => { expect(getNumberName(value)).toBe(name); }); }); }); }); describe.each` hundreds | hundredsName ${1} | ${'one hundred'} ${2} | ${'two hundred'} ${3} | ${'three hundred'} ${4} | ${'four hundred'} ${5} | ${'five hundred'} ${6} | ${'six hundred'} ${7} | ${'seven hundred'} ${8} | ${'eight hundred'} ${9} | ${'nine hundred'} `('$hundreds in hundreds place', ({ hundreds, hundredsName, }) => { describe('0 in tens place', () => { describe.each` ones | onesName ${0} | ${''} ${1} | ${'one'} ${2} | ${'two'} ${3} | ${'three'} ${4} | ${'four'} ${5} | ${'five'} ${6} | ${'six'} ${7} | ${'seven'} ${8} | ${'eight'} ${9} | ${'nine'} `('$ones in ones place', ({ ones, onesName, }) => { const value = (hundreds * 100) + ones; const name = [hundredsName, onesName].join(' ').trim(); it(`converts ${value} to ${name}`, () => { expect(getNumberName(value)).toBe(name); }); }); }); describe('1 in tens place', () => { describe.each` ones | onesName ${0} | ${'ten'} ${1} | ${'eleven'} ${2} | ${'twelve'} ${3} | ${'thirteen'} ${4} | ${'fourteen'} ${5} | ${'fifteen'} ${6} | ${'sixteen'} ${7} | ${'seventeen'} ${8} | ${'eighteen'} ${9} | ${'nineteen'} `('$ones in ones place', ({ ones, onesName, }) => { const value = (hundreds * 100) + 10 + ones; const name = [hundredsName, onesName].join(' ').trim(); it(`converts ${value} to ${name}`, () => { expect(getNumberName(value)).toBe(name); }); }); }); describe.each` tens | tensName ${2} | ${'twenty'} ${3} | ${'thirty'} ${4} | ${'forty'} ${5} | ${'fifty'} ${6} | ${'sixty'} ${7} | ${'seventy'} ${8} | ${'eighty'} ${9} | ${'ninety'} `('$tens in tens place', ({tens, tensName}) => { describe.each` ones | onesName ${0} | ${''} ${1} | ${'one'} ${2} | ${'two'} ${3} | ${'three'} ${4} | ${'four'} ${5} | ${'five'} ${6} | ${'six'} ${7} | ${'seven'} ${8} | ${'eight'} ${9} | ${'nine'} `('$ones in ones place', ({ ones, onesName, }) => { const value = (hundreds * 100) + (tens * 10) + ones; const name = [hundredsName, tensName, onesName].join(' ').trim(); it(`converts ${value} to ${name}`, () => { expect(getNumberName(value)).toBe(name); }); }); }); }); });