Get the name of a number, even if it's stupidly big.
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
To repozytorium jest zarchiwizowane. Możesz wyświetlać pliki i je sklonować, ale nie możesz do niego przepychać zmian lub otwierać zgłoszeń/Pull Requestów.

179 wiersze
6.8 KiB

  1. import combiningPrefix from './combiningPrefix'
  2. it('should exist', () => {
  3. expect(combiningPrefix).toBeDefined()
  4. })
  5. it('should be a callable', () => {
  6. expect(typeof combiningPrefix).toBe('function')
  7. })
  8. it('should accept 4 arguments', () => {
  9. expect(combiningPrefix).toHaveLength(4)
  10. })
  11. describe('on 0 in hundreds place', () => {
  12. describe('on 0 in tens place', () => {
  13. test.each`
  14. value | display | name
  15. ${1} | ${'1'} | ${'mi'}
  16. ${2} | ${'2'} | ${'bi'}
  17. ${3} | ${'3'} | ${'tri'}
  18. ${4} | ${'4'} | ${'kuwadri'}
  19. ${5} | ${'5'} | ${'kuwinti'}
  20. ${6} | ${'6'} | ${'seksti'}
  21. ${7} | ${'7'} | ${'septi'}
  22. ${8} | ${'8'} | ${'okti'}
  23. ${9} | ${'9'} | ${'noni'}
  24. `('should return "$name" on $display', ({ value, name }) => {
  25. expect(combiningPrefix(0, 0, value)).toBe(name)
  26. })
  27. })
  28. describe.each`
  29. tens | tensName
  30. ${1} | ${'desi'}
  31. ${2} | ${'bihinti'}
  32. ${3} | ${'trihinti'}
  33. ${4} | ${'kuwadrahinti'}
  34. ${5} | ${'kuwinkuwahinti'}
  35. ${6} | ${'seksahinti'}
  36. ${7} | ${'septuwahinti'}
  37. ${8} | ${'oktohinti'}
  38. ${9} | ${'nonahinti'}
  39. `('on $tens in tens place', ({ tens, tensName }) => {
  40. test.each`
  41. ones | display
  42. ${0} | ${tensName}
  43. ${1} | ${'un' + tensName}
  44. ${2} | ${'duwo' + tensName}
  45. ${3} | ${'tre' + tensName}
  46. ${4} | ${'kuwatuwor' + tensName}
  47. ${5} | ${'kuwin' + tensName}
  48. ${6} | ${'seks' + tensName}
  49. ${7} | ${'septen' + tensName}
  50. ${8} | ${'okto' + tensName}
  51. ${9} | ${'nobem' + tensName}
  52. `(`should return "$display" for ${tens}$ones`, ({ ones, display }) => {
  53. expect(combiningPrefix(0, tens, ones)).toBe(display)
  54. })
  55. })
  56. })
  57. describe.each`
  58. hundreds | hundredsName
  59. ${1} | ${'sen'}
  60. ${2} | ${'duwosen'}
  61. ${3} | ${'tresen'}
  62. ${4} | ${'kuwadringhen'}
  63. ${5} | ${'kuwinghen'}
  64. ${6} | ${'sesen'}
  65. ${7} | ${'septinghen'}
  66. ${8} | ${'oktinghen'}
  67. ${9} | ${'nonghen'}
  68. `('on $hundreds in hundreds place', ({ hundreds, hundredsName }) => {
  69. describe.each`
  70. tens | tensName
  71. ${0} | ${'ti'}
  72. ${1} | ${'desi'}
  73. ${2} | ${'bihinti'}
  74. ${3} | ${'trihinti'}
  75. ${4} | ${'kuwadrahinti'}
  76. ${5} | ${'kuwinkuwahinti'}
  77. ${6} | ${'seksahinti'}
  78. ${7} | ${'septuwahinti'}
  79. ${8} | ${'oktohinti'}
  80. ${9} | ${'nonahinti'}
  81. `('on $tens in tens place', ({ tens, tensName }) => {
  82. test.each`
  83. ones | display
  84. ${0} | ${hundredsName + tensName}
  85. ${1} | ${hundredsName + 'un' + tensName}
  86. ${2} | ${hundredsName + 'duwo' + tensName}
  87. ${3} | ${hundredsName + 'tre' + tensName}
  88. ${4} | ${hundredsName + 'kuwatuwor' + tensName}
  89. ${5} | ${hundredsName + 'kuwin' + tensName}
  90. ${6} | ${hundredsName + 'seks' + tensName}
  91. ${7} | ${hundredsName + 'septen' + tensName}
  92. ${8} | ${hundredsName + 'okto' + tensName}
  93. ${9} | ${hundredsName + 'nobem' + tensName}
  94. `(`should return "$display" for ${hundreds}${tens}$ones`, ({ ones, display }) => {
  95. expect(combiningPrefix(hundreds, tens, ones)).toBe(display)
  96. })
  97. })
  98. })
  99. describe.each`
  100. hundredThousands | hundredThousandsName
  101. ${1} | ${'sen'}
  102. ${2} | ${'duwosen'}
  103. ${3} | ${'tresen'}
  104. ${4} | ${'kuwadringhen'}
  105. ${5} | ${'kuwinghen'}
  106. ${6} | ${'sesen'}
  107. ${7} | ${'septinghen'}
  108. ${8} | ${'oktinghen'}
  109. ${9} | ${'nonghen'}
  110. `('on $hundredThousands in hundred thousands place', ({ hundredThousands, hundredThousandsName }) => {
  111. describe.each`
  112. tenThousands | tenThousandsName
  113. ${0} | ${''}
  114. ${1} | ${'des'}
  115. ${2} | ${'bihin'}
  116. ${3} | ${'trihin'}
  117. ${4} | ${'kuwadrahin'}
  118. ${5} | ${'kuwinkuwahin'}
  119. ${6} | ${'seksahin'}
  120. ${7} | ${'septuwahin'}
  121. ${8} | ${'oktohin'}
  122. ${9} | ${'nonahin'}
  123. `('on $tenThousands in ten thousands place', ({ tenThousands, tenThousandsName }) => {
  124. test.each`
  125. thousands | display | name
  126. ${0} | ${hundredThousands + '' + tenThousands + '0000'} | ${hundredThousandsName + tenThousandsName + 'milyati'}
  127. ${1000} | ${hundredThousands + '' + tenThousands + '1000'} | ${hundredThousandsName + 'un' + tenThousandsName + 'milyati'}
  128. ${2000} | ${hundredThousands + '' + tenThousands + '2000'} | ${hundredThousandsName + 'duwo' + tenThousandsName + 'milyati'}
  129. ${3000} | ${hundredThousands + '' + tenThousands + '3000'} | ${hundredThousandsName + 'tre' + tenThousandsName + 'milyati'}
  130. ${4000} | ${hundredThousands + '' + tenThousands + '4000'} | ${hundredThousandsName + 'kuwatuwor' + tenThousandsName + 'milyati'}
  131. ${5000} | ${hundredThousands + '' + tenThousands + '5000'} | ${hundredThousandsName + 'kuwin' + tenThousandsName + 'milyati'}
  132. ${6000} | ${hundredThousands + '' + tenThousands + '6000'} | ${hundredThousandsName + 'seks' + tenThousandsName + 'milyati'}
  133. ${7000} | ${hundredThousands + '' + tenThousands + '7000'} | ${hundredThousandsName + 'septen' + tenThousandsName + 'milyati'}
  134. ${8000} | ${hundredThousands + '' + tenThousands + '8000'} | ${hundredThousandsName + 'okto' + tenThousandsName + 'milyati'}
  135. ${9000} | ${hundredThousands + '' + tenThousands + '9000'} | ${hundredThousandsName + 'nobem' + tenThousandsName + 'milyati'}
  136. `(`should return "$name" for $display`, ({ thousands, name }) => {
  137. const kiloHundreds = hundredThousands * 1000 + tenThousands * 100 + thousands / 100
  138. expect(combiningPrefix(kiloHundreds, 0, 0)).toBe(name)
  139. })
  140. })
  141. })
  142. it.each`
  143. value | display | name
  144. ${1} | ${'1000000'} | ${'milyamilyati'}
  145. ${2} | ${'2000000'} | ${'duwomilyamilyati'}
  146. ${3} | ${'3000000'} | ${'tremilyamilyati'}
  147. ${4} | ${'4000000'} | ${'kuwatuwormilyamilyati'}
  148. ${5} | ${'5000000'} | ${'kuwinmilyamilyati'}
  149. ${6} | ${'6000000'} | ${'seksmilyamilyati'}
  150. ${7} | ${'7000000'} | ${'septenmilyamilyati'}
  151. ${8} | ${'8000000'} | ${'oktomilyamilyati'}
  152. ${9} | ${'9000000'} | ${'nobemmilyamilyati'}
  153. `('should return "$name" on $display', ({ value, name }) => {
  154. expect(combiningPrefix(value * 10000, 0, 0)).toBe(name)
  155. })
  156. it.each`
  157. value | display | name
  158. ${1} | ${'1001000'} | ${'milyamilyaunmilyati'}
  159. ${2} | ${'2002000'} | ${'duwomilyamilyaduwomilyati'}
  160. ${3} | ${'3003000'} | ${'tremilyamilyatremilyati'}
  161. ${4} | ${'4004000'} | ${'kuwatuwormilyamilyakuwatuwormilyati'}
  162. ${5} | ${'5005000'} | ${'kuwinmilyamilyakuwinmilyati'}
  163. ${6} | ${'6006000'} | ${'seksmilyamilyaseksmilyati'}
  164. ${7} | ${'7007000'} | ${'septenmilyamilyaseptenmilyati'}
  165. ${8} | ${'8008000'} | ${'oktomilyamilyaoktomilyati'}
  166. ${9} | ${'9009000'} | ${'nobemmilyamilyanobemmilyati'}
  167. `('should return "$name" on $display', ({ value, name }) => {
  168. expect(combiningPrefix(value * 10010, 0, 0)).toBe(name)
  169. })