import getNumberName from '../../../index'; import getLocalizedNumberName from './index'; describe('Number group conversion', () => { describe('0 in hundreds place', () => { describe('0 in tens place', () => { describe.each` ones | onesName ${0} | ${'zero'} ${1} | ${'ein'} ${2} | ${'zwei'} ${3} | ${'drei'} ${4} | ${'vier'} ${5} | ${'fünf'} ${6} | ${'sechs'} ${7} | ${'sieben'} ${8} | ${'acht'} ${9} | ${'neun'} `('$ones in ones place', ({ ones, onesName, }) => { it(`converts ${ones} to ${onesName}`, () => { expect(getNumberName(ones, {locale: getLocalizedNumberName})).toBe(onesName); }); }); }); describe('1 in tens place', () => { describe.each` ones | onesName ${0} | ${'zehn'} ${1} | ${'elf'} ${2} | ${'zwölf'} ${3} | ${'dreizehn'} ${4} | ${'vierzehn'} ${5} | ${'fünfzehn'} ${6} | ${'sechzehn'} ${7} | ${'siebzehn'} ${8} | ${'achtzehn'} ${9} | ${'neunzehn'} `('$ones in ones place', ({ ones, onesName, }) => { it(`converts 1${ones} to ${onesName}`, () => { expect(getNumberName(10 + ones, {locale: getLocalizedNumberName})).toBe(onesName); }); }); }); describe.each` tens | tensName ${2} | ${'zwanzig'} ${3} | ${'dreißig'} ${4} | ${'vierzig'} ${5} | ${'fünfzig'} ${6} | ${'sechzig'} ${7} | ${'siebzig'} ${8} | ${'achtzig'} ${9} | ${'neunzig'} `('$tens in tens place', ({tens, tensName}) => { describe('0 in ones place', () => { const value = tens * 10; const name = tensName; it(`converts ${value} to ${name}`, () => { expect(getNumberName(value, {locale: getLocalizedNumberName})).toBe(name); }); }); describe.each` ones | onesName ${1} | ${'ein'} ${2} | ${'zwei'} ${3} | ${'drei'} ${4} | ${'vier'} ${5} | ${'fünf'} ${6} | ${'sechs'} ${7} | ${'sieben'} ${8} | ${'acht'} ${9} | ${'neun'} `('$ones in ones place', ({ ones, onesName, }) => { const value = (tens * 10) + ones; const name = [onesName, tensName].join('und').trim(); it(`converts ${value} to ${name}`, () => { expect(getNumberName(value, {locale: getLocalizedNumberName})).toBe(name); }); }); }); }); describe.each` hundreds | hundredsName ${1} | ${'einhundert'} ${2} | ${'zweihundert'} ${3} | ${'dreihundert'} ${4} | ${'vierhundert'} ${5} | ${'fünfhundert'} ${6} | ${'sechshundert'} ${7} | ${'siebenhundert'} ${8} | ${'achthundert'} ${9} | ${'neunhundert'} `('$hundreds in hundreds place', ({ hundreds, hundredsName, }) => { describe('0 in tens place', () => { describe.each` ones | onesName ${0} | ${''} ${1} | ${'ein'} ${2} | ${'zwei'} ${3} | ${'drei'} ${4} | ${'vier'} ${5} | ${'fünf'} ${6} | ${'sechs'} ${7} | ${'sieben'} ${8} | ${'acht'} ${9} | ${'neun'} `('$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, {locale: getLocalizedNumberName})).toBe(name); }); }); }); describe('1 in tens place', () => { describe.each` ones | onesName ${0} | ${'zehn'} ${1} | ${'elf'} ${2} | ${'zwölf'} ${3} | ${'dreizehn'} ${4} | ${'vierzehn'} ${5} | ${'fünfzehn'} ${6} | ${'sechzehn'} ${7} | ${'siebzehn'} ${8} | ${'achtzehn'} ${9} | ${'neunzehn'} `('$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, {locale: getLocalizedNumberName})).toBe(name); }); }); }); describe.each` tens | tensName ${2} | ${'zwanzig'} ${3} | ${'dreißig'} ${4} | ${'vierzig'} ${5} | ${'fünfzig'} ${6} | ${'sechzig'} ${7} | ${'siebzig'} ${8} | ${'achtzig'} ${9} | ${'neunzig'} `('$tens in tens place', ({tens, tensName}) => { describe('0 in ones place', () => { const value = (hundreds * 100) + (tens * 10); const name = [hundredsName, tensName].join('').trim(); it(`converts ${value} to ${name}`, () => { expect(getNumberName(value, {locale: getLocalizedNumberName})).toBe(name); }); }); describe.each` ones | onesName ${1} | ${'ein'} ${2} | ${'zwei'} ${3} | ${'drei'} ${4} | ${'vier'} ${5} | ${'fünf'} ${6} | ${'sechs'} ${7} | ${'sieben'} ${8} | ${'acht'} ${9} | ${'neun'} `('$ones in ones place', ({ ones, onesName, }) => { const value = (hundreds * 100) + (tens * 10) + ones; const name = [hundredsName, [onesName, tensName].join('und')].join('').trim(); it(`converts ${value} to ${name}`, () => { expect(getNumberName(value, {locale: getLocalizedNumberName})).toBe(name); }); }); }); }); });