Gets the name of a number, even if it's stupidly big. Supersedes TheoryOfNekomata/number-name.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 

189 lignes
4.8 KiB

  1. import getNumberName from '../../../index';
  2. describe('Number group conversion', () => {
  3. describe('0 in hundreds place', () => {
  4. describe('0 in tens place', () => {
  5. describe.each`
  6. ones | onesName
  7. ${0} | ${'zero'}
  8. ${1} | ${'one'}
  9. ${2} | ${'two'}
  10. ${3} | ${'three'}
  11. ${4} | ${'four'}
  12. ${5} | ${'five'}
  13. ${6} | ${'six'}
  14. ${7} | ${'seven'}
  15. ${8} | ${'eight'}
  16. ${9} | ${'nine'}
  17. `('$ones in ones place', ({
  18. ones,
  19. onesName,
  20. }) => {
  21. it(`converts ${ones} to ${onesName}`, () => {
  22. expect(getNumberName(ones)).toBe(onesName);
  23. });
  24. });
  25. });
  26. describe('1 in tens place', () => {
  27. describe.each`
  28. ones | onesName
  29. ${0} | ${'ten'}
  30. ${1} | ${'eleven'}
  31. ${2} | ${'twelve'}
  32. ${3} | ${'thirteen'}
  33. ${4} | ${'fourteen'}
  34. ${5} | ${'fifteen'}
  35. ${6} | ${'sixteen'}
  36. ${7} | ${'seventeen'}
  37. ${8} | ${'eighteen'}
  38. ${9} | ${'nineteen'}
  39. `('$ones in ones place', ({
  40. ones,
  41. onesName,
  42. }) => {
  43. it(`converts 1${ones} to ${onesName}`, () => {
  44. expect(getNumberName(10 + ones)).toBe(onesName);
  45. });
  46. });
  47. });
  48. describe.each`
  49. tens | tensName
  50. ${2} | ${'twenty'}
  51. ${3} | ${'thirty'}
  52. ${4} | ${'forty'}
  53. ${5} | ${'fifty'}
  54. ${6} | ${'sixty'}
  55. ${7} | ${'seventy'}
  56. ${8} | ${'eighty'}
  57. ${9} | ${'ninety'}
  58. `('$tens in tens place', ({tens, tensName}) => {
  59. describe.each`
  60. ones | onesName
  61. ${0} | ${''}
  62. ${1} | ${'one'}
  63. ${2} | ${'two'}
  64. ${3} | ${'three'}
  65. ${4} | ${'four'}
  66. ${5} | ${'five'}
  67. ${6} | ${'six'}
  68. ${7} | ${'seven'}
  69. ${8} | ${'eight'}
  70. ${9} | ${'nine'}
  71. `('$ones in ones place', ({
  72. ones,
  73. onesName,
  74. }) => {
  75. const value = (tens * 10) + ones;
  76. const name = [tensName, onesName].join(' ').trim();
  77. it(`converts ${value} to ${name}`, () => {
  78. expect(getNumberName(value)).toBe(name);
  79. });
  80. });
  81. });
  82. });
  83. describe.each`
  84. hundreds | hundredsName
  85. ${1} | ${'one hundred'}
  86. ${2} | ${'two hundred'}
  87. ${3} | ${'three hundred'}
  88. ${4} | ${'four hundred'}
  89. ${5} | ${'five hundred'}
  90. ${6} | ${'six hundred'}
  91. ${7} | ${'seven hundred'}
  92. ${8} | ${'eight hundred'}
  93. ${9} | ${'nine hundred'}
  94. `('$hundreds in hundreds place', ({
  95. hundreds,
  96. hundredsName,
  97. }) => {
  98. describe('0 in tens place', () => {
  99. describe.each`
  100. ones | onesName
  101. ${0} | ${''}
  102. ${1} | ${'one'}
  103. ${2} | ${'two'}
  104. ${3} | ${'three'}
  105. ${4} | ${'four'}
  106. ${5} | ${'five'}
  107. ${6} | ${'six'}
  108. ${7} | ${'seven'}
  109. ${8} | ${'eight'}
  110. ${9} | ${'nine'}
  111. `('$ones in ones place', ({
  112. ones,
  113. onesName,
  114. }) => {
  115. const value = (hundreds * 100) + ones;
  116. const name = [hundredsName, onesName].join(' ').trim();
  117. it(`converts ${value} to ${name}`, () => {
  118. expect(getNumberName(value)).toBe(name);
  119. });
  120. });
  121. });
  122. describe('1 in tens place', () => {
  123. describe.each`
  124. ones | onesName
  125. ${0} | ${'ten'}
  126. ${1} | ${'eleven'}
  127. ${2} | ${'twelve'}
  128. ${3} | ${'thirteen'}
  129. ${4} | ${'fourteen'}
  130. ${5} | ${'fifteen'}
  131. ${6} | ${'sixteen'}
  132. ${7} | ${'seventeen'}
  133. ${8} | ${'eighteen'}
  134. ${9} | ${'nineteen'}
  135. `('$ones in ones place', ({
  136. ones,
  137. onesName,
  138. }) => {
  139. const value = (hundreds * 100) + 10 + ones;
  140. const name = [hundredsName, onesName].join(' ').trim();
  141. it(`converts ${value} to ${name}`, () => {
  142. expect(getNumberName(value)).toBe(name);
  143. });
  144. });
  145. });
  146. describe.each`
  147. tens | tensName
  148. ${2} | ${'twenty'}
  149. ${3} | ${'thirty'}
  150. ${4} | ${'forty'}
  151. ${5} | ${'fifty'}
  152. ${6} | ${'sixty'}
  153. ${7} | ${'seventy'}
  154. ${8} | ${'eighty'}
  155. ${9} | ${'ninety'}
  156. `('$tens in tens place', ({tens, tensName}) => {
  157. describe.each`
  158. ones | onesName
  159. ${0} | ${''}
  160. ${1} | ${'one'}
  161. ${2} | ${'two'}
  162. ${3} | ${'three'}
  163. ${4} | ${'four'}
  164. ${5} | ${'five'}
  165. ${6} | ${'six'}
  166. ${7} | ${'seven'}
  167. ${8} | ${'eight'}
  168. ${9} | ${'nine'}
  169. `('$ones in ones place', ({
  170. ones,
  171. onesName,
  172. }) => {
  173. const value = (hundreds * 100) + (tens * 10) + ones;
  174. const name = [hundredsName, tensName, onesName].join(' ').trim();
  175. it(`converts ${value} to ${name}`, () => {
  176. expect(getNumberName(value)).toBe(name);
  177. });
  178. });
  179. });
  180. });
  181. });