|
- import combiningPrefix from './combiningPrefix'
-
- it('should exist', () => {
- expect(combiningPrefix).toBeDefined()
- })
-
- it('should be a callable', () => {
- expect(typeof combiningPrefix).toBe('function')
- })
-
- it('should accept 4 arguments', () => {
- expect(combiningPrefix).toHaveLength(4)
- })
-
- describe('on 0 in hundreds place', () => {
- describe('on 0 in tens place', () => {
- test.each`
- value | display | name
- ${1} | ${'1'} | ${'mi'}
- ${2} | ${'2'} | ${'bi'}
- ${3} | ${'3'} | ${'tri'}
- ${4} | ${'4'} | ${'quadri'}
- ${5} | ${'5'} | ${'quinti'}
- ${6} | ${'6'} | ${'sexti'}
- ${7} | ${'7'} | ${'septi'}
- ${8} | ${'8'} | ${'octi'}
- ${9} | ${'9'} | ${'noni'}
- `('should return "$name" on $display', ({ value, name }) => {
- expect(combiningPrefix(0, 0, value)).toBe(name)
- })
- })
-
- describe.each`
- tens | tensName
- ${1} | ${'deci'}
- ${2} | ${'viginti'}
- ${3} | ${'triginti'}
- ${4} | ${'quadraginti'}
- ${5} | ${'quinquaginti'}
- ${6} | ${'sexaginti'}
- ${7} | ${'septuaginti'}
- ${8} | ${'octoginti'}
- ${9} | ${'nonaginti'}
- `('on $tens in tens place', ({ tens, tensName }) => {
- test.each`
- ones | display
- ${0} | ${tensName}
- ${1} | ${'un' + tensName}
- ${2} | ${'duo' + tensName}
- ${3} | ${'tre' + tensName}
- ${4} | ${'quattuor' + tensName}
- ${5} | ${'quin' + tensName}
- ${6} | ${'sex' + tensName}
- ${7} | ${'septen' + tensName}
- ${8} | ${'octo' + tensName}
- ${9} | ${'novem' + tensName}
- `(`should return "$display" for ${tens}$ones`, ({ ones, display }) => {
- expect(combiningPrefix(0, tens, ones)).toBe(display)
- })
- })
- })
-
- describe.each`
- hundreds | hundredsName
- ${1} | ${'cen'}
- ${2} | ${'duocen'}
- ${3} | ${'trecen'}
- ${4} | ${'quadringen'}
- ${5} | ${'quingen'}
- ${6} | ${'sescen'}
- ${7} | ${'septingen'}
- ${8} | ${'octingen'}
- ${9} | ${'nongen'}
- `('on $hundreds in hundreds place', ({ hundreds, hundredsName }) => {
- describe.each`
- tens | tensName
- ${0} | ${'ti'}
- ${1} | ${'deci'}
- ${2} | ${'viginti'}
- ${3} | ${'triginti'}
- ${4} | ${'quadraginti'}
- ${5} | ${'quinquaginti'}
- ${6} | ${'sexaginti'}
- ${7} | ${'septuaginti'}
- ${8} | ${'octoginti'}
- ${9} | ${'nonaginti'}
- `('on $tens in tens place', ({ tens, tensName }) => {
- test.each`
- ones | display
- ${0} | ${hundredsName + tensName}
- ${1} | ${hundredsName + 'un' + tensName}
- ${2} | ${hundredsName + 'duo' + tensName}
- ${3} | ${hundredsName + 'tre' + tensName}
- ${4} | ${hundredsName + 'quattuor' + tensName}
- ${5} | ${hundredsName + 'quin' + tensName}
- ${6} | ${hundredsName + 'sex' + tensName}
- ${7} | ${hundredsName + 'septen' + tensName}
- ${8} | ${hundredsName + 'octo' + tensName}
- ${9} | ${hundredsName + 'novem' + tensName}
- `(`should return "$display" for ${hundreds}${tens}$ones`, ({ ones, display }) => {
- expect(combiningPrefix(hundreds, tens, ones)).toBe(display)
- })
- })
- })
-
- describe.each`
- hundredThousands | hundredThousandsName
- ${1} | ${'cen'}
- ${2} | ${'duocen'}
- ${3} | ${'trecen'}
- ${4} | ${'quadringen'}
- ${5} | ${'quingen'}
- ${6} | ${'sescen'}
- ${7} | ${'septingen'}
- ${8} | ${'octingen'}
- ${9} | ${'nongen'}
- `('on $hundredThousands in hundred thousands place', ({ hundredThousands, hundredThousandsName }) => {
- describe.each`
- tenThousands | tenThousandsName
- ${0} | ${''}
- ${1} | ${'dec'}
- ${2} | ${'vigin'}
- ${3} | ${'trigin'}
- ${4} | ${'quadragin'}
- ${5} | ${'quinquagin'}
- ${6} | ${'sexagin'}
- ${7} | ${'septuagin'}
- ${8} | ${'octogin'}
- ${9} | ${'nonagin'}
- `('on $tenThousands in ten thousands place', ({ tenThousands, tenThousandsName }) => {
- test.each`
- thousands | display | name
- ${0} | ${hundredThousands + '' + tenThousands + '0000'} | ${hundredThousandsName + tenThousandsName + 'milliati'}
- ${1000} | ${hundredThousands + '' + tenThousands + '1000'} | ${hundredThousandsName + 'un' + tenThousandsName + 'milliati'}
- ${2000} | ${hundredThousands + '' + tenThousands + '2000'} | ${hundredThousandsName + 'duo' + tenThousandsName + 'milliati'}
- ${3000} | ${hundredThousands + '' + tenThousands + '3000'} | ${hundredThousandsName + 'tre' + tenThousandsName + 'milliati'}
- ${4000} | ${hundredThousands + '' + tenThousands + '4000'} | ${hundredThousandsName + 'quattuor' + tenThousandsName + 'milliati'}
- ${5000} | ${hundredThousands + '' + tenThousands + '5000'} | ${hundredThousandsName + 'quin' + tenThousandsName + 'milliati'}
- ${6000} | ${hundredThousands + '' + tenThousands + '6000'} | ${hundredThousandsName + 'sex' + tenThousandsName + 'milliati'}
- ${7000} | ${hundredThousands + '' + tenThousands + '7000'} | ${hundredThousandsName + 'septen' + tenThousandsName + 'milliati'}
- ${8000} | ${hundredThousands + '' + tenThousands + '8000'} | ${hundredThousandsName + 'octo' + tenThousandsName + 'milliati'}
- ${9000} | ${hundredThousands + '' + tenThousands + '9000'} | ${hundredThousandsName + 'novem' + tenThousandsName + 'milliati'}
- `(`should return "$name" for $display`, ({ thousands, name }) => {
- const kiloHundreds = hundredThousands * 1000 + tenThousands * 100 + thousands / 100
- expect(combiningPrefix(kiloHundreds, 0, 0)).toBe(name)
- })
- })
- })
-
- test.each`
- value | display | name
- ${1} | ${'1000000'} | ${'milliamilliati'}
- ${2} | ${'2000000'} | ${'duomilliamilliati'}
- ${3} | ${'3000000'} | ${'tremilliamilliati'}
- ${4} | ${'4000000'} | ${'quattuormilliamilliati'}
- ${5} | ${'5000000'} | ${'quinmilliamilliati'}
- ${6} | ${'6000000'} | ${'sexmilliamilliati'}
- ${7} | ${'7000000'} | ${'septenmilliamilliati'}
- ${8} | ${'8000000'} | ${'octomilliamilliati'}
- ${9} | ${'9000000'} | ${'novemmilliamilliati'}
- `('should return "$name" on $display', ({ value, name }) => {
- expect(combiningPrefix(value * 10000, 0, 0)).toBe(name)
- })
-
- test.each`
- value | display | name
- ${1} | ${'1001000'} | ${'milliamilliaunmilliati'}
- ${2} | ${'2002000'} | ${'duomilliamilliaduomilliati'}
- ${3} | ${'3003000'} | ${'tremilliamilliatremilliati'}
- ${4} | ${'4004000'} | ${'quattuormilliamilliaquattuormilliati'}
- ${5} | ${'5005000'} | ${'quinmilliamilliaquinmilliati'}
- ${6} | ${'6006000'} | ${'sexmilliamilliasexmilliati'}
- ${7} | ${'7007000'} | ${'septenmilliamilliaseptenmilliati'}
- ${8} | ${'8008000'} | ${'octomilliamilliaoctomilliati'}
- ${9} | ${'9009000'} | ${'novemmilliamillianovemmilliati'}
- `('should return "$name" on $display', ({ value, name }) => {
- expect(combiningPrefix(value * 10010, 0, 0)).toBe(name)
- })
|