@valkyriestudios/utils 4.2.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/.babelrc +1 -0
  2. package/.eslintrc.json +152 -0
  3. package/.nyc_output/79bac8a3-26d6-499d-a9d9-6f61d6c11628.json +1 -0
  4. package/.nyc_output/8a42299e-25b8-4720-a08c-cb83c830059c.json +1 -0
  5. package/.nyc_output/processinfo/79bac8a3-26d6-499d-a9d9-6f61d6c11628.json +1 -0
  6. package/.nyc_output/processinfo/8a42299e-25b8-4720-a08c-cb83c830059c.json +1 -0
  7. package/.nyc_output/processinfo/index.json +1 -0
  8. package/.nycrc +4 -0
  9. package/.travis.yml +2 -3
  10. package/CHANGELOG.md +43 -0
  11. package/README.md +20 -4
  12. package/array/dedupe.js +14 -14
  13. package/array/is.js +5 -4
  14. package/array/isNotEmpty.js +8 -9
  15. package/boolean/is.js +5 -4
  16. package/caching/memoize.js +14 -19
  17. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/base.css +224 -0
  18. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/block-navigation.js +87 -0
  19. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/favicon.png +0 -0
  20. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/index.html +296 -0
  21. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/prettify.css +1 -0
  22. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/prettify.js +2 -0
  23. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/sort-arrow-sprite.png +0 -0
  24. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/sorter.js +196 -0
  25. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/array/dedupe.js.html +118 -0
  26. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/array/index.html +146 -0
  27. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/array/is.js.html +100 -0
  28. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/array/isNotEmpty.js.html +109 -0
  29. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/boolean/index.html +116 -0
  30. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/boolean/is.js.html +100 -0
  31. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/caching/index.html +116 -0
  32. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/caching/memoize.js.html +130 -0
  33. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/date/index.html +116 -0
  34. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/date/is.js.html +100 -0
  35. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/define.js.html +106 -0
  36. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/freeze.js.html +151 -0
  37. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/get.js.html +187 -0
  38. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/index.html +176 -0
  39. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/seal.js.html +151 -0
  40. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/set.js.html +220 -0
  41. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/equal.js.html +274 -0
  42. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/formdata/index.html +116 -0
  43. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/formdata/is.js.html +100 -0
  44. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/index.html +176 -0
  45. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/is.js.html +103 -0
  46. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/noop.js.html +100 -0
  47. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/noopresolve.js.html +103 -0
  48. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/noopreturn.js.html +103 -0
  49. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/sleep.js.html +124 -0
  50. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/hash/fnv1A.js.html +232 -0
  51. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/hash/guid.js.html +175 -0
  52. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/hash/index.html +131 -0
  53. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/index.html +131 -0
  54. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/is.js.html +202 -0
  55. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/index.html +221 -0
  56. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/is.js.html +112 -0
  57. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/isAbove.js.html +115 -0
  58. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/isBelow.js.html +115 -0
  59. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/isBetween.js.html +121 -0
  60. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/isNumericalNaN.js.html +100 -0
  61. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/randomBetween.js.html +136 -0
  62. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/round.js.html +139 -0
  63. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/toPercentage.js.html +151 -0
  64. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/define.js.html +118 -0
  65. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/defineFrozen.js.html +106 -0
  66. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/defineSealed.js.html +106 -0
  67. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/forValues.js.html +133 -0
  68. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/index.html +236 -0
  69. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/is.js.html +100 -0
  70. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/isNotEmpty.js.html +109 -0
  71. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/merge.js.html +157 -0
  72. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/pick.js.html +151 -0
  73. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/zip.js.html +139 -0
  74. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/regexp/index.html +116 -0
  75. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/regexp/is.js.html +100 -0
  76. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/string/index.html +146 -0
  77. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/string/is.js.html +100 -0
  78. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/string/isBetween.js.html +133 -0
  79. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/string/isNotEmpty.js.html +109 -0
  80. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov.info +974 -0
  81. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/index.html +1 -1
  82. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/dedupe.js.html +1 -1
  83. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/index.html +1 -1
  84. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/is.js.html +1 -1
  85. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/isNotEmpty.js.html +1 -1
  86. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/boolean/index.html +1 -1
  87. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/boolean/is.js.html +1 -1
  88. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/caching/index.html +1 -1
  89. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/caching/memoize.js.html +1 -1
  90. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/date/index.html +1 -1
  91. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/date/is.js.html +1 -1
  92. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/define.js.html +1 -1
  93. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/freeze.js.html +1 -1
  94. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/get.js.html +1 -1
  95. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/index.html +1 -1
  96. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/seal.js.html +1 -1
  97. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/set.js.html +1 -1
  98. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/equal.js.html +1 -1
  99. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/formdata/index.html +1 -1
  100. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/formdata/is.js.html +1 -1
  101. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/index.html +1 -1
  102. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/is.js.html +1 -1
  103. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/noop.js.html +1 -1
  104. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/noopresolve.js.html +1 -1
  105. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/noopreturn.js.html +1 -1
  106. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/sleep.js.html +1 -1
  107. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/hash/fnv1A.js.html +1 -1
  108. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/hash/guid.js.html +1 -1
  109. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/hash/index.html +1 -1
  110. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/index.html +1 -1
  111. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/is.js.html +1 -1
  112. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/index.html +1 -1
  113. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/is.js.html +3 -3
  114. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/isBetween.js.html +1 -1
  115. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/isNumericalNaN.js.html +2 -2
  116. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/randomBetween.js.html +1 -1
  117. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/round.js.html +5 -5
  118. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/toPercentage.js.html +1 -1
  119. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/define.js.html +1 -1
  120. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/defineFrozen.js.html +1 -1
  121. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/defineSealed.js.html +1 -1
  122. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/forValues.js.html +1 -1
  123. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/index.html +1 -1
  124. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/is.js.html +1 -1
  125. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/isNotEmpty.js.html +1 -1
  126. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/merge.js.html +1 -1
  127. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/pick.js.html +1 -1
  128. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/zip.js.html +1 -1
  129. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/regexp/index.html +1 -1
  130. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/regexp/is.js.html +1 -1
  131. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/index.html +1 -1
  132. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/is.js.html +1 -1
  133. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/isBetween.js.html +1 -1
  134. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/isNotEmpty.js.html +1 -1
  135. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov.info +20 -20
  136. package/coverage/lcov-report/base.css +5 -4
  137. package/coverage/lcov-report/block-navigation.js +71 -48
  138. package/coverage/lcov-report/favicon.png +0 -0
  139. package/coverage/lcov-report/index.html +247 -50
  140. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  141. package/coverage/lcov-report/sorter.js +51 -14
  142. package/coverage/lcov-report/src/array/dedupe.js.html +145 -0
  143. package/coverage/lcov-report/src/array/index.html +146 -0
  144. package/coverage/lcov-report/src/array/is.js.html +100 -0
  145. package/coverage/lcov-report/src/array/isNotEmpty.js.html +109 -0
  146. package/coverage/lcov-report/src/boolean/index.html +116 -0
  147. package/coverage/lcov-report/src/boolean/is.js.html +100 -0
  148. package/coverage/lcov-report/src/caching/index.html +116 -0
  149. package/coverage/lcov-report/src/caching/memoize.js.html +139 -0
  150. package/coverage/lcov-report/src/date/index.html +116 -0
  151. package/coverage/lcov-report/src/date/is.js.html +100 -0
  152. package/coverage/lcov-report/src/deep/define.js.html +106 -0
  153. package/coverage/lcov-report/src/deep/freeze.js.html +151 -0
  154. package/coverage/lcov-report/src/deep/get.js.html +190 -0
  155. package/coverage/lcov-report/src/deep/index.html +176 -0
  156. package/coverage/lcov-report/src/deep/seal.js.html +151 -0
  157. package/coverage/lcov-report/src/deep/set.js.html +229 -0
  158. package/coverage/lcov-report/src/equal.js.html +280 -0
  159. package/coverage/lcov-report/src/function/index.html +176 -0
  160. package/coverage/lcov-report/src/function/is.js.html +103 -0
  161. package/coverage/lcov-report/src/function/noop.js.html +100 -0
  162. package/coverage/lcov-report/src/function/noopresolve.js.html +103 -0
  163. package/coverage/lcov-report/src/function/noopreturn.js.html +103 -0
  164. package/coverage/lcov-report/src/function/sleep.js.html +121 -0
  165. package/coverage/lcov-report/src/hash/fnv1A.js.html +238 -0
  166. package/coverage/lcov-report/src/hash/guid.js.html +184 -0
  167. package/coverage/lcov-report/src/hash/index.html +131 -0
  168. package/coverage/lcov-report/src/index.html +131 -0
  169. package/coverage/lcov-report/src/is.js.html +196 -0
  170. package/coverage/lcov-report/src/number/index.html +221 -0
  171. package/coverage/lcov-report/src/number/is.js.html +109 -0
  172. package/coverage/lcov-report/src/number/isAbove.js.html +115 -0
  173. package/coverage/lcov-report/src/number/isBelow.js.html +115 -0
  174. package/coverage/lcov-report/src/number/isBetween.js.html +121 -0
  175. package/coverage/lcov-report/src/number/isNumericalNaN.js.html +100 -0
  176. package/coverage/lcov-report/src/number/randomBetween.js.html +136 -0
  177. package/coverage/lcov-report/src/number/round.js.html +139 -0
  178. package/coverage/lcov-report/src/number/toPercentage.js.html +151 -0
  179. package/coverage/lcov-report/src/object/define.js.html +118 -0
  180. package/coverage/lcov-report/src/object/defineFrozen.js.html +106 -0
  181. package/coverage/lcov-report/src/object/defineSealed.js.html +106 -0
  182. package/coverage/lcov-report/src/object/forValues.js.html +133 -0
  183. package/coverage/lcov-report/src/object/index.html +236 -0
  184. package/coverage/lcov-report/src/object/is.js.html +100 -0
  185. package/coverage/lcov-report/src/object/isNotEmpty.js.html +109 -0
  186. package/coverage/lcov-report/src/object/merge.js.html +157 -0
  187. package/coverage/lcov-report/src/object/pick.js.html +151 -0
  188. package/coverage/lcov-report/src/object/zip.js.html +145 -0
  189. package/coverage/lcov-report/src/regexp/index.html +116 -0
  190. package/coverage/lcov-report/src/regexp/is.js.html +100 -0
  191. package/coverage/lcov-report/src/string/index.html +146 -0
  192. package/coverage/lcov-report/src/string/is.js.html +100 -0
  193. package/coverage/lcov-report/src/string/isBetween.js.html +133 -0
  194. package/coverage/lcov-report/src/string/isNotEmpty.js.html +109 -0
  195. package/coverage/lcov.info +1132 -0
  196. package/date/is.js +5 -4
  197. package/deep/define.js +8 -10
  198. package/deep/freeze.js +19 -25
  199. package/deep/get.js +29 -32
  200. package/deep/seal.js +19 -25
  201. package/deep/set.js +41 -42
  202. package/equal.js +44 -59
  203. package/function/is.js +5 -6
  204. package/function/noop.js +2 -3
  205. package/function/noopresolve.js +7 -8
  206. package/function/noopreturn.js +5 -6
  207. package/function/sleep.js +11 -17
  208. package/hash/fnv1A.js +38 -60
  209. package/hash/guid.js +22 -30
  210. package/is.js +110 -59
  211. package/number/is.js +8 -9
  212. package/number/isAbove.js +15 -0
  213. package/number/isBelow.js +15 -0
  214. package/number/isBetween.js +9 -12
  215. package/number/isNumericalNaN.js +5 -4
  216. package/number/randomBetween.js +16 -19
  217. package/number/round.js +16 -19
  218. package/number/toPercentage.js +21 -26
  219. package/object/define.js +12 -13
  220. package/object/defineFrozen.js +9 -11
  221. package/object/defineSealed.js +9 -11
  222. package/object/forValues.js +17 -22
  223. package/object/is.js +5 -4
  224. package/object/isNotEmpty.js +8 -9
  225. package/object/merge.js +21 -22
  226. package/object/pick.js +22 -29
  227. package/object/zip.js +19 -20
  228. package/package.json +15 -17
  229. package/regexp/is.js +5 -4
  230. package/string/is.js +5 -4
  231. package/string/isBetween.js +13 -20
  232. package/string/isNotEmpty.js +9 -11
  233. package/test/constants.js +0 -6
  234. package/test/src/array.test.js +38 -40
  235. package/test/src/boolean.test.js +18 -15
  236. package/test/src/caching.test.js +10 -1
  237. package/test/src/date.test.js +18 -15
  238. package/test/src/deep.test.js +155 -66
  239. package/test/src/equal.test.js +66 -57
  240. package/test/src/function.test.js +47 -45
  241. package/test/src/hash.test.js +39 -30
  242. package/test/src/is.test.js +68 -71
  243. package/test/src/number.test.js +351 -67
  244. package/test/src/object.test.js +129 -131
  245. package/test/src/regexp.test.js +18 -15
  246. package/test/src/string.test.js +59 -59
  247. package/formdata/is.js +0 -9
  248. package/karma.conf.js +0 -64
  249. package/test/src/formdata.test.js +0 -67
  250. package/test/test_index.js +0 -2
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  import isNumber from '../../src/number/is';
4
+ import isNumberAbove from '../../src/number/isAbove';
5
+ import isNumberBelow from '../../src/number/isBelow';
4
6
  import isNumberBetween from '../../src/number/isBetween';
5
7
  import isNumericalNaN from '../../src/number/isNumericalNaN';
6
8
  import toPercentage from '../../src/number/toPercentage';
@@ -15,70 +17,277 @@ import {
15
17
  fnDateValues,
16
18
  fnArrayValues,
17
19
  fnFunctionValues,
18
- fnFormDataValues,
19
20
  fnNullables,
20
21
  } from '../constants';
21
22
 
23
+ const chai = require('chai');
24
+ const spies = require('chai-spies');
25
+ chai.use(spies);
26
+
27
+ const expect = chai.expect;
28
+ const assert = chai.assert;
29
+ const should = chai.should();
30
+ const spy = chai.spy;
31
+
22
32
  describe("Number - isNumber", () => {
23
33
  it ('not see a string as a number', () => {
24
34
  let vals = fnStringValues();
25
- for (let el of vals) expect(isNumber(el)).toEqual(false);
35
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
26
36
  });
27
37
 
28
38
  it ('see a numeric value as a number', () => {
29
39
  let vals = fnNumericValues();
30
- for (let el of vals) expect(isNumber(el)).toEqual(true);
40
+ for (let el of vals) expect(isNumber(el)).to.eql(true);
31
41
  });
32
42
 
33
43
  it ('not see a numerical nan as a number', () => {
34
- expect(isNumber(1/0)).toEqual(false);
44
+ expect(isNumber(1/0)).to.eql(false);
35
45
  });
36
46
 
37
47
  it ('not see a boolean as a number', () => {
38
48
  let vals = fnBooleanValues();
39
- for (let el of vals) expect(isNumber(el)).toEqual(false);
49
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
40
50
  });
41
51
 
42
52
  it ('not see a regex as a number', () => {
43
53
  let vals = fnRegexValues();
44
- for (let el of vals) expect(isNumber(el)).toEqual(false);
54
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
45
55
  });
46
56
 
47
57
  it ('not see an object as a number', () => {
48
58
  let vals = fnObjectValues();
49
- for (let el of vals) expect(isNumber(el)).toEqual(false);
59
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
50
60
  });
51
61
 
52
62
  it ('not see a nullable as a number', () => {
53
63
  let vals = fnNullables();
54
- for (let el of vals) expect(isNumber(el)).toEqual(false);
64
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
55
65
  });
56
66
 
57
67
  it ('not see a date as a number', () => {
58
68
  let vals = fnDateValues();
59
- for (let el of vals) expect(isNumber(el)).toEqual(false);
69
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
60
70
  });
61
71
 
62
72
  it ('not see an array as a number', () => {
63
73
  let vals = fnArrayValues();
64
- for (let el of vals) expect(isNumber(el)).toEqual(false);
74
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
65
75
  });
66
76
 
67
77
  it ('not see a function as a number', () => {
68
78
  let vals = fnFunctionValues();
69
- for (let el of vals) expect(isNumber(el)).toEqual(false);
79
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
80
+ });
81
+ });
82
+
83
+ describe("Number - isNumberBelow", () => {
84
+ it ('not see a string as a number', () => {
85
+ let vals = fnStringValues();
86
+ for (let el of vals) expect(isNumberBelow(el, 0)).to.eql(false);
87
+ });
88
+
89
+ it ('treat numeric values below max correctly', () => {
90
+ let vals = [
91
+ [0, 1],
92
+ [-32, -10],
93
+ [3, 9],
94
+ [.1, .2],
95
+ ];
96
+ for (let el of vals) expect(isNumberBelow(el[0], el[1])).to.eql(true);
97
+ });
98
+
99
+ it ('treat numeric values above max as false', () => {
100
+ let vals = [
101
+ [1, 0],
102
+ [-99, -100],
103
+ [9, 1],
104
+ [-.05, -.1],
105
+ ];
106
+ for (let el of vals) expect(isNumberBelow(el[0], el[1])).to.eql(false);
107
+ });
108
+
109
+ it ('treat numeric values at max as false', () => {
110
+ let vals = [0, -100, 1, 0, .56, .89];
111
+ for (let el of vals) expect(isNumberBelow(el, el)).to.eql(false);
112
+ });
113
+
114
+ it ('not see a boolean as a number between', () => {
115
+ let vals = fnBooleanValues();
116
+ for (let el of vals) expect(isNumberBelow(el, 0)).to.eql(false);
117
+ });
118
+
119
+ it ('not see a regex as a number between', () => {
120
+ let vals = fnRegexValues();
121
+ for (let el of vals) expect(isNumberBelow(el, 0)).to.eql(false);
122
+ });
123
+
124
+ it ('not see an object as a number between', () => {
125
+ let vals = fnObjectValues();
126
+ for (let el of vals) expect(isNumberBelow(el, 0)).to.eql(false);
127
+ });
128
+
129
+ it ('not see a nullable as a number between', () => {
130
+ let vals = fnNullables();
131
+ for (let el of vals) expect(isNumberBelow(el, 0)).to.eql(false);
132
+ });
133
+
134
+ it ('not see a date as a number between', () => {
135
+ let vals = fnDateValues();
136
+ for (let el of vals) expect(isNumberBelow(el, 0)).to.eql(false);
137
+ });
138
+
139
+ it ('not see an array as a number between', () => {
140
+ let vals = fnArrayValues();
141
+ for (let el of vals) expect(isNumberBelow(el, 0)).to.eql(false);
142
+ });
143
+
144
+ it ('not see a function as a number between', () => {
145
+ let vals = fnFunctionValues();
146
+ for (let el of vals) expect(isNumberBelow(el, 0)).to.eql(false);
147
+ });
148
+
149
+ it ('not see a boolean as a number between', () => {
150
+ let vals = fnBooleanValues();
151
+ for (let el of vals) expect(isNumberBelow(0, el)).to.eql(false);
152
+ });
153
+
154
+ it ('not see a regex as a number between', () => {
155
+ let vals = fnRegexValues();
156
+ for (let el of vals) expect(isNumberBelow(0, el)).to.eql(false);
157
+ });
158
+
159
+ it ('not see an object as a number between', () => {
160
+ let vals = fnObjectValues();
161
+ for (let el of vals) expect(isNumberBelow(0, el)).to.eql(false);
162
+ });
163
+
164
+ it ('not see a nullable as a number between', () => {
165
+ let vals = fnNullables();
166
+ for (let el of vals) expect(isNumberBelow(0, el)).to.eql(false);
167
+ });
168
+
169
+ it ('not see a date as a number between', () => {
170
+ let vals = fnDateValues();
171
+ for (let el of vals) expect(isNumberBelow(0, el)).to.eql(false);
172
+ });
173
+
174
+ it ('not see an array as a number between', () => {
175
+ let vals = fnArrayValues();
176
+ for (let el of vals) expect(isNumberBelow(0, el)).to.eql(false);
177
+ });
178
+
179
+ it ('not see a function as a number between', () => {
180
+ let vals = fnFunctionValues();
181
+ for (let el of vals) expect(isNumberBelow(0, el)).to.eql(false);
182
+ });
183
+ });
184
+
185
+ describe("Number - isNumberAbove", () => {
186
+ it ('not see a string as a number', () => {
187
+ let vals = fnStringValues();
188
+ for (let el of vals) expect(isNumberAbove(el, 0)).to.eql(false);
189
+ });
190
+
191
+ it ('treat numeric values above min correctly', () => {
192
+ let vals = [
193
+ [1, 0],
194
+ [-10, -32],
195
+ [9, 3],
196
+ [.2, .1],
197
+ ];
198
+ for (let el of vals) expect(isNumberAbove(el[0], el[1])).to.eql(true);
199
+ });
200
+
201
+ it ('treat numeric values below min as false', () => {
202
+ let vals = [
203
+ [0, 1],
204
+ [-100, -99],
205
+ [1, 9],
206
+ [-.1, -.05],
207
+ ];
208
+ for (let el of vals) expect(isNumberAbove(el[0], el[1])).to.eql(false);
209
+ });
210
+
211
+ it ('treat numeric values at min as false', () => {
212
+ let vals = [0, -100, 1, 0, .56, .89];
213
+ for (let el of vals) expect(isNumberAbove(el, el)).to.eql(false);
214
+ });
215
+
216
+ it ('not see a boolean as a number between', () => {
217
+ let vals = fnBooleanValues();
218
+ for (let el of vals) expect(isNumberAbove(el, 0)).to.eql(false);
219
+ });
220
+
221
+ it ('not see a regex as a number between', () => {
222
+ let vals = fnRegexValues();
223
+ for (let el of vals) expect(isNumberAbove(el, 0)).to.eql(false);
224
+ });
225
+
226
+ it ('not see an object as a number between', () => {
227
+ let vals = fnObjectValues();
228
+ for (let el of vals) expect(isNumberAbove(el, 0)).to.eql(false);
229
+ });
230
+
231
+ it ('not see a nullable as a number between', () => {
232
+ let vals = fnNullables();
233
+ for (let el of vals) expect(isNumberAbove(el, 0)).to.eql(false);
234
+ });
235
+
236
+ it ('not see a date as a number between', () => {
237
+ let vals = fnDateValues();
238
+ for (let el of vals) expect(isNumberAbove(el, 0)).to.eql(false);
239
+ });
240
+
241
+ it ('not see an array as a number between', () => {
242
+ let vals = fnArrayValues();
243
+ for (let el of vals) expect(isNumberAbove(el, 0)).to.eql(false);
244
+ });
245
+
246
+ it ('not see a function as a number between', () => {
247
+ let vals = fnFunctionValues();
248
+ for (let el of vals) expect(isNumberAbove(el, 0)).to.eql(false);
249
+ });
250
+
251
+ it ('not see a boolean as a number between', () => {
252
+ let vals = fnBooleanValues();
253
+ for (let el of vals) expect(isNumberAbove(0, el)).to.eql(false);
254
+ });
255
+
256
+ it ('not see a regex as a number between', () => {
257
+ let vals = fnRegexValues();
258
+ for (let el of vals) expect(isNumberAbove(0, el)).to.eql(false);
259
+ });
260
+
261
+ it ('not see an object as a number between', () => {
262
+ let vals = fnObjectValues();
263
+ for (let el of vals) expect(isNumberAbove(0, el)).to.eql(false);
264
+ });
265
+
266
+ it ('not see a nullable as a number between', () => {
267
+ let vals = fnNullables();
268
+ for (let el of vals) expect(isNumberAbove(0, el)).to.eql(false);
70
269
  });
71
270
 
72
- it ('not see formdata as a number', () => {
73
- let vals = fnFormDataValues();
74
- for (let el of vals) expect(isNumber(el)).toEqual(false);
271
+ it ('not see a date as a number between', () => {
272
+ let vals = fnDateValues();
273
+ for (let el of vals) expect(isNumberAbove(0, el)).to.eql(false);
274
+ });
275
+
276
+ it ('not see an array as a number between', () => {
277
+ let vals = fnArrayValues();
278
+ for (let el of vals) expect(isNumberAbove(0, el)).to.eql(false);
279
+ });
280
+
281
+ it ('not see a function as a number between', () => {
282
+ let vals = fnFunctionValues();
283
+ for (let el of vals) expect(isNumberAbove(0, el)).to.eql(false);
75
284
  });
76
285
  });
77
286
 
78
287
  describe("Number - isNumberBetween", () => {
79
288
  it ('not see a string as a number between', () => {
80
289
  let vals = fnStringValues();
81
- for (let el of vals) expect(isNumberBetween(el, 0, 1000)).toEqual(false);
290
+ for (let el of vals) expect(isNumberBetween(el, 0, 1000)).to.eql(false);
82
291
  });
83
292
 
84
293
  it ('treat numeric values between ranges correctly', () => {
@@ -88,7 +297,7 @@ describe("Number - isNumberBetween", () => {
88
297
  [3, 1, 9],
89
298
  [.1, 0, .2],
90
299
  ];
91
- for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).toEqual(true);
300
+ for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).to.eql(true);
92
301
  });
93
302
 
94
303
  it ('treat numeric values between ranges with invalid values incorrectly', () => {
@@ -98,8 +307,8 @@ describe("Number - isNumberBetween", () => {
98
307
  [3, 1, 9],
99
308
  [.1, 0, .2],
100
309
  ];
101
- for (let el of vals) expect(isNumberBetween(el[0], `${el[1]}`, el[2])).toEqual(false);
102
- for (let el of vals) expect(isNumberBetween(el[0], el[1], `${el[2]}`)).toEqual(false);
310
+ for (let el of vals) expect(isNumberBetween(el[0], `${el[1]}`, el[2])).to.eql(false);
311
+ for (let el of vals) expect(isNumberBetween(el[0], el[1], `${el[2]}`)).to.eql(false);
103
312
  });
104
313
 
105
314
  it ('treat numeric values below lower bound as false', () => {
@@ -109,7 +318,7 @@ describe("Number - isNumberBetween", () => {
109
318
  [0, 1, 9],
110
319
  [-.1, 0, .2],
111
320
  ];
112
- for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).toEqual(false);
321
+ for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).to.eql(false);
113
322
  });
114
323
 
115
324
  it ('treat numeric values at lower bound as true', () => {
@@ -119,7 +328,7 @@ describe("Number - isNumberBetween", () => {
119
328
  [1, 1, 9],
120
329
  [0, 0, .2],
121
330
  ];
122
- for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).toEqual(true);
331
+ for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).to.eql(true);
123
332
  });
124
333
 
125
334
  it ('treat numeric values above upper bound as false', () => {
@@ -129,7 +338,7 @@ describe("Number - isNumberBetween", () => {
129
338
  [10, 1, 9],
130
339
  [.3, 0, .2],
131
340
  ];
132
- for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).toEqual(false);
341
+ for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).to.eql(false);
133
342
  });
134
343
 
135
344
  it ('treat numeric values at upper bound as true', () => {
@@ -139,144 +348,219 @@ describe("Number - isNumberBetween", () => {
139
348
  [9, 1, 9],
140
349
  [.2, 0, .2],
141
350
  ];
142
- for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).toEqual(true);
351
+ for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).to.eql(true);
352
+ });
353
+
354
+ it ('returns false when passed a min that is higher than max', () => {
355
+ expect(isNumberBetween(9, 15, 10)).to.eql(false);
356
+ });
357
+
358
+ it ('returns false when passed a min that is equal to max', () => {
359
+ expect(isNumberBetween(9, 9, 9)).to.eql(false);
360
+ });
361
+
362
+ it ('not see a boolean as a number between', () => {
363
+ let vals = fnBooleanValues();
364
+ for (let el of vals) expect(isNumberBetween(el, 0, 1000)).to.eql(false);
365
+ });
366
+
367
+ it ('not see a regex as a number between', () => {
368
+ let vals = fnRegexValues();
369
+ for (let el of vals) expect(isNumberBetween(el, 0, 1000)).to.eql(false);
370
+ });
371
+
372
+ it ('not see an object as a number between', () => {
373
+ let vals = fnObjectValues();
374
+ for (let el of vals) expect(isNumberBetween(el, 0, 1000)).to.eql(false);
375
+ });
376
+
377
+ it ('not see a nullable as a number between', () => {
378
+ let vals = fnNullables();
379
+ for (let el of vals) expect(isNumberBetween(el, 0, 1000)).to.eql(false);
380
+ });
381
+
382
+ it ('not see a date as a number between', () => {
383
+ let vals = fnDateValues();
384
+ for (let el of vals) expect(isNumberBetween(el, 0, 1000)).to.eql(false);
385
+ });
386
+
387
+ it ('not see an array as a number between', () => {
388
+ let vals = fnArrayValues();
389
+ for (let el of vals) expect(isNumberBetween(el, 0, 1000)).to.eql(false);
390
+ });
391
+
392
+ it ('not see a function as a number between', () => {
393
+ let vals = fnFunctionValues();
394
+ for (let el of vals) expect(isNumberBetween(el, 0, 1000)).to.eql(false);
143
395
  });
144
396
 
145
397
  it ('not see a boolean as a number between', () => {
146
398
  let vals = fnBooleanValues();
147
- for (let el of vals) expect(isNumberBetween(el, 0, 1000)).toEqual(false);
399
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
148
400
  });
149
401
 
150
402
  it ('not see a regex as a number between', () => {
151
403
  let vals = fnRegexValues();
152
- for (let el of vals) expect(isNumberBetween(el, 0, 1000)).toEqual(false);
404
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
153
405
  });
154
406
 
155
407
  it ('not see an object as a number between', () => {
156
408
  let vals = fnObjectValues();
157
- for (let el of vals) expect(isNumberBetween(el, 0, 1000)).toEqual(false);
409
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
158
410
  });
159
411
 
160
412
  it ('not see a nullable as a number between', () => {
161
413
  let vals = fnNullables();
162
- for (let el of vals) expect(isNumberBetween(el, 0, 1000)).toEqual(false);
414
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
163
415
  });
164
416
 
165
417
  it ('not see a date as a number between', () => {
166
418
  let vals = fnDateValues();
167
- for (let el of vals) expect(isNumberBetween(el, 0, 1000)).toEqual(false);
419
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
168
420
  });
169
421
 
170
422
  it ('not see an array as a number between', () => {
171
423
  let vals = fnArrayValues();
172
- for (let el of vals) expect(isNumberBetween(el, 0, 1000)).toEqual(false);
424
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
173
425
  });
174
426
 
175
427
  it ('not see a function as a number between', () => {
176
428
  let vals = fnFunctionValues();
177
- for (let el of vals) expect(isNumberBetween(el, 0, 1000)).toEqual(false);
429
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
430
+ });
431
+
432
+ it ('not see a boolean as a number between', () => {
433
+ let vals = fnBooleanValues();
434
+ for (let el of vals) expect(isNumberBetween(0, 0, el)).to.eql(false);
435
+ });
436
+
437
+ it ('not see a regex as a number between', () => {
438
+ let vals = fnRegexValues();
439
+ for (let el of vals) expect(isNumberBetween(0, 0, el)).to.eql(false);
178
440
  });
179
441
 
180
- it ('not see formdata as a number between', () => {
181
- let vals = fnFormDataValues();
182
- for (let el of vals) expect(isNumberBetween(el, 0, 1000)).toEqual(false);
442
+ it ('not see an object as a number between', () => {
443
+ let vals = fnObjectValues();
444
+ for (let el of vals) expect(isNumberBetween(0, 0, el)).to.eql(false);
445
+ });
446
+
447
+ it ('not see a nullable as a number between', () => {
448
+ let vals = fnNullables();
449
+ for (let el of vals) expect(isNumberBetween(0, 0, el)).to.eql(false);
450
+ });
451
+
452
+ it ('not see a date as a number between', () => {
453
+ let vals = fnDateValues();
454
+ for (let el of vals) expect(isNumberBetween(0, 0, el)).to.eql(false);
455
+ });
456
+
457
+ it ('not see an array as a number between', () => {
458
+ let vals = fnArrayValues();
459
+ for (let el of vals) expect(isNumberBetween(0, 0, el)).to.eql(false);
460
+ });
461
+
462
+ it ('not see a function as a number between', () => {
463
+ let vals = fnFunctionValues();
464
+ for (let el of vals) expect(isNumberBetween(0, 0, el)).to.eql(false);
183
465
  });
184
466
  });
185
467
 
186
468
  describe("Number - toPercentage", () => {
187
469
  it ('should correctly calculate the percentage', () => {
188
- expect(toPercentage(0.5)).toEqual(50);
470
+ expect(toPercentage(0.5)).to.eql(50);
189
471
  });
190
472
 
191
473
  it ('should correctly calculate the percentage with precision', () => {
192
- expect(toPercentage(0.50106579, 0)).toEqual(50);
193
- expect(toPercentage(0.50106579, 1)).toEqual(50.1);
194
- expect(toPercentage(0.50116579, 2)).toEqual(50.12);
195
- expect(toPercentage(0.50116579, 3)).toEqual(50.117);
196
- expect(toPercentage(0.50116579, 4)).toEqual(50.1166);
197
- expect(toPercentage(0.50116579, 5)).toEqual(50.11658);
474
+ expect(toPercentage(0.50106579, 0)).to.eql(50);
475
+ expect(toPercentage(0.50106579, 1)).to.eql(50.1);
476
+ expect(toPercentage(0.50116579, 2)).to.eql(50.12);
477
+ expect(toPercentage(0.50116579, 3)).to.eql(50.117);
478
+ expect(toPercentage(0.50116579, 4)).to.eql(50.1166);
479
+ expect(toPercentage(0.50116579, 5)).to.eql(50.11658);
198
480
  });
199
481
 
200
482
  it ('should correctly apply range logic when provided', () => {
201
- expect(toPercentage(5, 0, -10, 10)).toEqual(75);
202
- expect(toPercentage(-356, 0, -1000, 1000)).toEqual(32);
203
- expect(toPercentage(-356.52, 3, -1000, 1000)).toEqual(32.174);
204
- expect(toPercentage(0.005, 0, 0, 0.1)).toEqual(5);
483
+ expect(toPercentage(5, 0, -10, 10)).to.eql(75);
484
+ expect(toPercentage(-356, 0, -1000, 1000)).to.eql(32);
485
+ expect(toPercentage(-356.52, 3, -1000, 1000)).to.eql(32.174);
486
+ expect(toPercentage(0.005, 0, 0, 0.1)).to.eql(5);
205
487
  });
206
488
 
207
489
  it ('should throw an error if the value is not numeric', () => {
208
490
  expect(function () {
209
491
  toPercentage('hello', 2, 0, 1);
210
492
  toPercentage(false, 2, 0, 1);
211
- }).toThrowError(TypeError);
493
+ }).to.throw(TypeError);
212
494
  });
213
495
 
214
496
  it ('should throw an error if the min is not numeric', () => {
215
497
  expect(function () {
216
498
  toPercentage(0.5, 2, false, 1);
217
499
  toPercentage(0.5, 2, 'Hello', 1);
218
- }).toThrowError(TypeError);
500
+ }).to.throw(TypeError);
219
501
  });
220
502
 
221
503
  it ('should throw an error if the max is not numeric', () => {
222
504
  expect(function () {
223
505
  toPercentage(0.5, 2, 0, 'Hello');
224
506
  toPercentage(0.5, 2, 0, false);
225
- }).toThrowError(TypeError);
507
+ }).to.throw(TypeError);
226
508
  });
227
509
  });
228
510
 
229
511
  describe("Number - isNumericalNaN", () => {
230
512
  it ('not see a valid number as a NaN', () => {
231
- expect(isNumericalNaN(42)).toEqual(false);
513
+ expect(isNumericalNaN(42)).to.eql(false);
232
514
  });
233
515
 
234
516
  it ('not see a string as a NaN', () => {
235
- expect(isNumericalNaN('foo')).toEqual(false);
236
- expect(isNumericalNaN('NaN')).toEqual(false);
517
+ expect(isNumericalNaN('foo')).to.eql(false);
518
+ expect(isNumericalNaN('NaN')).to.eql(false);
237
519
  });
238
520
 
239
521
  it ('not see an object as a NaN', () => {
240
- expect(isNumericalNaN({ foo: 'bar' })).toEqual(false);
522
+ expect(isNumericalNaN({ foo: 'bar' })).to.eql(false);
241
523
  });
242
524
 
243
525
  it ('not see an array as a NaN', () => {
244
- expect(isNumericalNaN([0, 1, 2])).toEqual(false);
526
+ expect(isNumericalNaN([0, 1, 2])).to.eql(false);
245
527
  });
246
528
 
247
529
  it ('see a NaN as a NaN', () => {
248
- expect(isNumericalNaN(NaN)).toEqual(true);
530
+ expect(isNumericalNaN(NaN)).to.eql(true);
249
531
  });
250
532
 
251
533
  it ('sees infinity as a NaN', () => {
252
- expect(isNumericalNaN(Infinity)).toEqual(true);
534
+ expect(isNumericalNaN(Infinity)).to.eql(true);
253
535
  });
254
536
  });
255
537
 
256
538
  describe("Number - round", () => {
257
539
  it ('should correctly round a value', () => {
258
- expect(round(5.123456789)).toEqual(5);
540
+ expect(round(5.123456789)).to.eql(5);
259
541
  });
260
542
 
261
543
  it ('should correctly round a value with precision', () => {
262
- expect(round(5.123456789, 0)).toEqual(5);
263
- expect(round(5.123456789, 1)).toEqual(5.1);
264
- expect(round(5.123456789, 2)).toEqual(5.12);
265
- expect(round(5.123456789, 3)).toEqual(5.123);
266
- expect(round(5.123456789, 4)).toEqual(5.1235);
267
- expect(round(5.123456789, 5)).toEqual(5.12346);
544
+ expect(round(5.123456789, 0)).to.eql(5);
545
+ expect(round(5.123456789, 1)).to.eql(5.1);
546
+ expect(round(5.123456789, 2)).to.eql(5.12);
547
+ expect(round(5.123456789, 3)).to.eql(5.123);
548
+ expect(round(5.123456789, 4)).to.eql(5.1235);
549
+ expect(round(5.123456789, 5)).to.eql(5.12346);
550
+ expect(round(42.139691918126184, 3)).to.eql(42.14);
551
+ expect(round(42.134691918126184, 3)).to.eql(42.135);
268
552
  });
269
553
 
270
554
  it ('should throw an error if the value is not numeric', () => {
271
555
  expect(function () {
272
556
  round('hello', 2);
273
- }).toThrowError(TypeError);
557
+ }).to.throw(TypeError);
274
558
  });
275
559
  });
276
560
 
277
561
  describe("Number - randomBetween", () => {
278
562
  it ('should return a random number', () => {
279
- expect(randomBetween()).toEqual(jasmine.any(Number));
563
+ assert.typeOf(randomBetween(), 'Number');
280
564
  });
281
565
 
282
566
  it ('should return a random number between min and max', () => {
@@ -286,7 +570,7 @@ describe("Number - randomBetween", () => {
286
570
  if (random < 0 && random > 1000) between = false;
287
571
  }
288
572
 
289
- expect(between).toEqual(true);
573
+ expect(between).to.eql(true);
290
574
  });
291
575
 
292
576
  it ('should return a unique random number over subsequent calls', () => {
@@ -295,18 +579,18 @@ describe("Number - randomBetween", () => {
295
579
  const random = randomBetween(0, 100);
296
580
  cache[`${random}`] = random;
297
581
  }
298
- expect(Object.keys(cache).length).toEqual(100000);
582
+ expect(Object.keys(cache).length).to.eql(100000);
299
583
  });
300
584
 
301
585
  it ('should throw an error if the min/max is not numeric', () => {
302
586
  expect(function () {
303
587
  randomBetween('min', 2);
304
- }).toThrowError(TypeError);
588
+ }).to.throw(TypeError);
305
589
  expect(function () {
306
590
  randomBetween(2, 'max');
307
- }).toThrowError(TypeError);
591
+ }).to.throw(TypeError);
308
592
  expect(function () {
309
593
  randomBetween(2, 5);
310
- }).not.toThrowError(TypeError);
594
+ }).not.to.throw(TypeError);
311
595
  });
312
596
  });