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.

48 lines
1.8 KiB

  1. import getNumberName from '../../../index';
  2. import getLocalizedNumberName from './index';
  3. describe('Landon\'s original test cases', () => {
  4. describe('Basic conversions', () => {
  5. it.each`
  6. value | traditionalEuropeanName
  7. ${1} | ${'ein'}
  8. ${1000} | ${'eintausend'}
  9. ${1000000} | ${'eine Million'}
  10. ${1000000000} | ${'eine Milliarde'}
  11. ${1000000000000} | ${'eine Billion'}
  12. ${1000000000000000} | ${'eine Billiarde'}
  13. ${1000000000000000000} | ${'eine Trillion'}
  14. `('converts $value to $traditionalEuropeanName', ({value, traditionalEuropeanName}) => {
  15. expect(getNumberName(value, {locale: getLocalizedNumberName})).toBe(traditionalEuropeanName);
  16. });
  17. });
  18. describe('Medium size numbers (<= 1e+63)', () => {
  19. describe('Table 1', () => {
  20. it.each`
  21. value | traditionalEuropeanName
  22. ${'1e+9'} | ${'Milliarde'}
  23. ${'1e+12'} | ${'Billion'}
  24. ${'1e+15'} | ${'Billiarde'}
  25. ${'1e+18'} | ${'Trillion'}
  26. ${'1e+21'} | ${'Trilliarde'}
  27. ${'1e+24'} | ${'Quadrillion'}
  28. ${'1e+27'} | ${'Quadrilliarde'}
  29. ${'1e+30'} | ${'Quintillion'}
  30. ${'1e+33'} | ${'Quintilliarde'}
  31. ${'1e+36'} | ${'Sextillion'}
  32. ${'1e+39'} | ${'Sextilliarde'}
  33. ${'1e+42'} | ${'Septillion'}
  34. ${'1e+45'} | ${'Septilliarde'}
  35. ${'1e+48'} | ${'Octillion'}
  36. ${'1e+51'} | ${'Octilliarde'}
  37. ${'1e+54'} | ${'Nonillion'}
  38. ${'1e+57'} | ${'Nonilliarde'}
  39. ${'1e+60'} | ${'Decillion'}
  40. ${'1e+63'} | ${'Decilliarde'}
  41. `('converts $value to $traditionalEuropeanName', ({value, traditionalEuropeanName}) => {
  42. expect(getNumberName(value, {locale: getLocalizedNumberName})).toBe(`eine ${traditionalEuropeanName}`);
  43. });
  44. });
  45. });
  46. });