Gets the name of a number, even if it's stupidly big. Supersedes TheoryOfNekomata/number-name.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

63 lines
1.5 KiB

  1. import getNumberName from '../..';
  2. import getLocalizedNumberName from '.';
  3. describe('Plurals', () => {
  4. describe('1 in millions place', () => {
  5. const value = 1000000
  6. const name = 'eine Million'
  7. it(`converts ${value} to ${name}`, () => {
  8. expect(getNumberName(value, { locale: getLocalizedNumberName })).toBe(name)
  9. })
  10. })
  11. describe.each`
  12. ones | onesName
  13. ${2} | ${'zwei'}
  14. ${3} | ${'drei'}
  15. ${4} | ${'vier'}
  16. ${5} | ${'fünf'}
  17. ${6} | ${'sechs'}
  18. ${7} | ${'sieben'}
  19. ${8} | ${'acht'}
  20. ${9} | ${'neun'}
  21. `('$ones in millions place', ({
  22. ones,
  23. onesName,
  24. }) => {
  25. const value = ones * 1000000
  26. const name = `${onesName} Millionen`
  27. it(`converts ${value} to ${name}`, () => {
  28. expect(getNumberName(value, { locale: getLocalizedNumberName })).toBe(name)
  29. })
  30. })
  31. describe('1 in billions place', () => {
  32. const value = 1000000000
  33. const name = 'eine Milliarde'
  34. it(`converts ${value} to ${name}`, () => {
  35. expect(getNumberName(value, { locale: getLocalizedNumberName })).toBe(name)
  36. })
  37. })
  38. describe.each`
  39. ones | onesName
  40. ${2} | ${'zwei'}
  41. ${3} | ${'drei'}
  42. ${4} | ${'vier'}
  43. ${5} | ${'fünf'}
  44. ${6} | ${'sechs'}
  45. ${7} | ${'sieben'}
  46. ${8} | ${'acht'}
  47. ${9} | ${'neun'}
  48. `('$ones in billions place', ({
  49. ones,
  50. onesName,
  51. }) => {
  52. const value = ones * 1000000000
  53. const name = `${onesName} Milliarden`
  54. it(`converts ${value} to ${name}`, () => {
  55. expect(getNumberName(value, { locale: getLocalizedNumberName })).toBe(name)
  56. })
  57. })
  58. })