@valkyriestudios/utils 4.0.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 (362) 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 +75 -0
  11. package/README.md +70 -2
  12. package/array/dedupe.js +14 -14
  13. package/array/is.js +5 -4
  14. package/array/isNotEmpty.js +15 -0
  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 80.0.3987.87 (Linux x86_64)/lcov-report/base.css +224 -0
  82. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/block-navigation.js +79 -0
  83. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/favicon.png +0 -0
  84. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/index.html +291 -0
  85. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/prettify.css +1 -0
  86. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/prettify.js +2 -0
  87. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/sort-arrow-sprite.png +0 -0
  88. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/sorter.js +170 -0
  89. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/array/dedupe.js.html +113 -0
  90. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/array/index.html +126 -0
  91. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/array/is.js.html +95 -0
  92. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/boolean/index.html +111 -0
  93. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/boolean/is.js.html +95 -0
  94. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/caching/index.html +111 -0
  95. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/caching/memoize.js.html +125 -0
  96. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/date/index.html +111 -0
  97. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/date/is.js.html +95 -0
  98. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/deep/define.js.html +101 -0
  99. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/deep/freeze.js.html +146 -0
  100. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/deep/get.js.html +182 -0
  101. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/deep/index.html +171 -0
  102. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/deep/seal.js.html +146 -0
  103. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/deep/set.js.html +215 -0
  104. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/equal.js.html +269 -0
  105. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/formdata/index.html +111 -0
  106. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/formdata/is.js.html +95 -0
  107. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/function/index.html +171 -0
  108. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/function/is.js.html +98 -0
  109. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/function/noop.js.html +95 -0
  110. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/function/noopresolve.js.html +98 -0
  111. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/function/noopreturn.js.html +98 -0
  112. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/function/sleep.js.html +119 -0
  113. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/hash/fnv1A.js.html +218 -0
  114. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/hash/guid.js.html +170 -0
  115. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/hash/index.html +126 -0
  116. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/index.html +111 -0
  117. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/number/index.html +171 -0
  118. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/number/is.js.html +104 -0
  119. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/number/isNumericalNaN.js.html +95 -0
  120. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/number/randomBetween.js.html +131 -0
  121. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/number/round.js.html +134 -0
  122. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/number/toPercentage.js.html +146 -0
  123. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/define.js.html +113 -0
  124. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/defineFrozen.js.html +101 -0
  125. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/defineSealed.js.html +101 -0
  126. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/forValues.js.html +128 -0
  127. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/index.html +216 -0
  128. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/is.js.html +95 -0
  129. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/merge.js.html +152 -0
  130. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/pick.js.html +146 -0
  131. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/object/zip.js.html +134 -0
  132. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/regexp/index.html +111 -0
  133. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/regexp/is.js.html +95 -0
  134. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/string/index.html +111 -0
  135. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov-report/src/string/is.js.html +95 -0
  136. package/coverage/Chrome Headless 80.0.3987.87 (Linux x86_64)/lcov.info +822 -0
  137. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/base.css +224 -0
  138. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/block-navigation.js +79 -0
  139. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/favicon.png +0 -0
  140. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/index.html +291 -0
  141. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/prettify.css +1 -0
  142. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/prettify.js +2 -0
  143. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/sort-arrow-sprite.png +0 -0
  144. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/sorter.js +170 -0
  145. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/dedupe.js.html +113 -0
  146. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/index.html +141 -0
  147. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/is.js.html +95 -0
  148. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/isNotEmpty.js.html +104 -0
  149. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/boolean/index.html +111 -0
  150. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/boolean/is.js.html +95 -0
  151. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/caching/index.html +111 -0
  152. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/caching/memoize.js.html +125 -0
  153. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/date/index.html +111 -0
  154. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/date/is.js.html +95 -0
  155. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/define.js.html +101 -0
  156. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/freeze.js.html +146 -0
  157. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/get.js.html +182 -0
  158. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/index.html +171 -0
  159. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/seal.js.html +146 -0
  160. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/set.js.html +215 -0
  161. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/equal.js.html +269 -0
  162. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/formdata/index.html +111 -0
  163. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/formdata/is.js.html +95 -0
  164. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/index.html +171 -0
  165. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/is.js.html +98 -0
  166. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/noop.js.html +95 -0
  167. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/noopresolve.js.html +98 -0
  168. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/noopreturn.js.html +98 -0
  169. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/sleep.js.html +119 -0
  170. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/hash/fnv1A.js.html +227 -0
  171. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/hash/guid.js.html +170 -0
  172. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/hash/index.html +126 -0
  173. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/index.html +126 -0
  174. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/is.js.html +185 -0
  175. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/index.html +186 -0
  176. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/is.js.html +107 -0
  177. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/isBetween.js.html +116 -0
  178. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/isNumericalNaN.js.html +95 -0
  179. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/randomBetween.js.html +131 -0
  180. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/round.js.html +134 -0
  181. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/toPercentage.js.html +146 -0
  182. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/define.js.html +113 -0
  183. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/defineFrozen.js.html +101 -0
  184. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/defineSealed.js.html +101 -0
  185. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/forValues.js.html +128 -0
  186. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/index.html +231 -0
  187. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/is.js.html +95 -0
  188. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/isNotEmpty.js.html +104 -0
  189. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/merge.js.html +152 -0
  190. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/pick.js.html +146 -0
  191. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/zip.js.html +134 -0
  192. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/regexp/index.html +111 -0
  193. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/regexp/is.js.html +95 -0
  194. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/index.html +141 -0
  195. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/is.js.html +95 -0
  196. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/isBetween.js.html +128 -0
  197. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/isNotEmpty.js.html +104 -0
  198. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov.info +940 -0
  199. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/index.html +14 -14
  200. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/array/dedupe.js.html +1 -1
  201. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/array/index.html +1 -1
  202. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/array/is.js.html +1 -1
  203. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/boolean/index.html +1 -1
  204. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/boolean/is.js.html +1 -1
  205. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/caching/index.html +1 -1
  206. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/caching/memoize.js.html +1 -1
  207. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/date/index.html +1 -1
  208. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/date/is.js.html +1 -1
  209. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/deep/define.js.html +1 -1
  210. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/deep/freeze.js.html +1 -1
  211. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/deep/get.js.html +1 -1
  212. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/deep/index.html +1 -1
  213. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/deep/seal.js.html +1 -1
  214. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/deep/set.js.html +1 -1
  215. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/equal.js.html +1 -1
  216. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/formdata/index.html +1 -1
  217. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/formdata/is.js.html +1 -1
  218. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/function/index.html +21 -6
  219. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/function/is.js.html +1 -1
  220. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/function/noop.js.html +1 -1
  221. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/function/noopresolve.js.html +1 -1
  222. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/function/noopreturn.js.html +1 -1
  223. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/function/sleep.js.html +119 -0
  224. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/hash/fnv1A.js.html +1 -1
  225. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/hash/guid.js.html +1 -1
  226. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/hash/index.html +1 -1
  227. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/index.html +1 -1
  228. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/number/index.html +1 -1
  229. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/number/is.js.html +1 -1
  230. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/number/isNumericalNaN.js.html +1 -1
  231. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/number/randomBetween.js.html +1 -1
  232. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/number/round.js.html +1 -1
  233. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/number/toPercentage.js.html +1 -1
  234. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/define.js.html +1 -1
  235. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/defineFrozen.js.html +1 -1
  236. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/defineSealed.js.html +1 -1
  237. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/forValues.js.html +1 -1
  238. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/index.html +1 -1
  239. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/is.js.html +1 -1
  240. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/merge.js.html +1 -1
  241. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/pick.js.html +1 -1
  242. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/object/zip.js.html +1 -1
  243. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/regexp/index.html +1 -1
  244. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/regexp/is.js.html +1 -1
  245. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/string/index.html +1 -1
  246. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov-report/src/string/is.js.html +1 -1
  247. package/coverage/HeadlessChrome 80.0.3987 (Linux 0.0.0)/lcov.info +18 -0
  248. package/coverage/lcov-report/base.css +5 -4
  249. package/coverage/lcov-report/block-navigation.js +71 -48
  250. package/coverage/lcov-report/favicon.png +0 -0
  251. package/coverage/lcov-report/index.html +247 -50
  252. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  253. package/coverage/lcov-report/sorter.js +51 -14
  254. package/coverage/lcov-report/src/array/dedupe.js.html +145 -0
  255. package/coverage/lcov-report/src/array/index.html +146 -0
  256. package/coverage/lcov-report/src/array/is.js.html +100 -0
  257. package/coverage/lcov-report/src/array/isNotEmpty.js.html +109 -0
  258. package/coverage/lcov-report/src/boolean/index.html +116 -0
  259. package/coverage/lcov-report/src/boolean/is.js.html +100 -0
  260. package/coverage/lcov-report/src/caching/index.html +116 -0
  261. package/coverage/lcov-report/src/caching/memoize.js.html +139 -0
  262. package/coverage/lcov-report/src/date/index.html +116 -0
  263. package/coverage/lcov-report/src/date/is.js.html +100 -0
  264. package/coverage/lcov-report/src/deep/define.js.html +106 -0
  265. package/coverage/lcov-report/src/deep/freeze.js.html +151 -0
  266. package/coverage/lcov-report/src/deep/get.js.html +190 -0
  267. package/coverage/lcov-report/src/deep/index.html +176 -0
  268. package/coverage/lcov-report/src/deep/seal.js.html +151 -0
  269. package/coverage/lcov-report/src/deep/set.js.html +229 -0
  270. package/coverage/lcov-report/src/equal.js.html +280 -0
  271. package/coverage/lcov-report/src/function/index.html +176 -0
  272. package/coverage/lcov-report/src/function/is.js.html +103 -0
  273. package/coverage/lcov-report/src/function/noop.js.html +100 -0
  274. package/coverage/lcov-report/src/function/noopresolve.js.html +103 -0
  275. package/coverage/lcov-report/src/function/noopreturn.js.html +103 -0
  276. package/coverage/lcov-report/src/function/sleep.js.html +121 -0
  277. package/coverage/lcov-report/src/hash/fnv1A.js.html +238 -0
  278. package/coverage/lcov-report/src/hash/guid.js.html +184 -0
  279. package/coverage/lcov-report/src/hash/index.html +131 -0
  280. package/coverage/lcov-report/src/index.html +131 -0
  281. package/coverage/lcov-report/src/is.js.html +196 -0
  282. package/coverage/lcov-report/src/number/index.html +221 -0
  283. package/coverage/lcov-report/src/number/is.js.html +109 -0
  284. package/coverage/lcov-report/src/number/isAbove.js.html +115 -0
  285. package/coverage/lcov-report/src/number/isBelow.js.html +115 -0
  286. package/coverage/lcov-report/src/number/isBetween.js.html +121 -0
  287. package/coverage/lcov-report/src/number/isNumericalNaN.js.html +100 -0
  288. package/coverage/lcov-report/src/number/randomBetween.js.html +136 -0
  289. package/coverage/lcov-report/src/number/round.js.html +139 -0
  290. package/coverage/lcov-report/src/number/toPercentage.js.html +151 -0
  291. package/coverage/lcov-report/src/object/define.js.html +118 -0
  292. package/coverage/lcov-report/src/object/defineFrozen.js.html +106 -0
  293. package/coverage/lcov-report/src/object/defineSealed.js.html +106 -0
  294. package/coverage/lcov-report/src/object/forValues.js.html +133 -0
  295. package/coverage/lcov-report/src/object/index.html +236 -0
  296. package/coverage/lcov-report/src/object/is.js.html +100 -0
  297. package/coverage/lcov-report/src/object/isNotEmpty.js.html +109 -0
  298. package/coverage/lcov-report/src/object/merge.js.html +157 -0
  299. package/coverage/lcov-report/src/object/pick.js.html +151 -0
  300. package/coverage/lcov-report/src/object/zip.js.html +145 -0
  301. package/coverage/lcov-report/src/regexp/index.html +116 -0
  302. package/coverage/lcov-report/src/regexp/is.js.html +100 -0
  303. package/coverage/lcov-report/src/string/index.html +146 -0
  304. package/coverage/lcov-report/src/string/is.js.html +100 -0
  305. package/coverage/lcov-report/src/string/isBetween.js.html +133 -0
  306. package/coverage/lcov-report/src/string/isNotEmpty.js.html +109 -0
  307. package/coverage/lcov.info +1132 -0
  308. package/date/is.js +5 -4
  309. package/deep/define.js +8 -10
  310. package/deep/freeze.js +19 -25
  311. package/deep/get.js +29 -32
  312. package/deep/seal.js +19 -25
  313. package/deep/set.js +41 -42
  314. package/equal.js +44 -59
  315. package/function/is.js +5 -6
  316. package/function/noop.js +2 -3
  317. package/function/noopresolve.js +7 -8
  318. package/function/noopreturn.js +5 -6
  319. package/function/sleep.js +15 -0
  320. package/hash/fnv1A.js +38 -54
  321. package/hash/guid.js +22 -30
  322. package/is.js +133 -0
  323. package/number/is.js +8 -8
  324. package/number/isAbove.js +15 -0
  325. package/number/isBelow.js +15 -0
  326. package/number/isBetween.js +16 -0
  327. package/number/isNumericalNaN.js +5 -4
  328. package/number/randomBetween.js +16 -19
  329. package/number/round.js +16 -19
  330. package/number/toPercentage.js +21 -26
  331. package/object/define.js +12 -13
  332. package/object/defineFrozen.js +9 -11
  333. package/object/defineSealed.js +9 -11
  334. package/object/forValues.js +17 -22
  335. package/object/is.js +5 -4
  336. package/object/isNotEmpty.js +15 -0
  337. package/object/merge.js +21 -22
  338. package/object/pick.js +22 -29
  339. package/object/zip.js +19 -20
  340. package/package.json +15 -17
  341. package/regexp/is.js +5 -4
  342. package/string/is.js +5 -4
  343. package/string/isBetween.js +21 -0
  344. package/string/isNotEmpty.js +16 -0
  345. package/test/constants.js +79 -0
  346. package/test/src/array.test.js +104 -51
  347. package/test/src/boolean.test.js +39 -43
  348. package/test/src/caching.test.js +10 -1
  349. package/test/src/date.test.js +39 -43
  350. package/test/src/deep.test.js +155 -66
  351. package/test/src/equal.test.js +66 -57
  352. package/test/src/function.test.js +85 -68
  353. package/test/src/hash.test.js +39 -30
  354. package/test/src/is.test.js +187 -0
  355. package/test/src/number.test.js +467 -73
  356. package/test/src/object.test.js +211 -149
  357. package/test/src/regexp.test.js +39 -43
  358. package/test/src/string.test.js +216 -40
  359. package/formdata/is.js +0 -9
  360. package/karma.conf.js +0 -64
  361. package/test/src/formdata.test.js +0 -74
  362. package/test/test_index.js +0 -2
@@ -1,172 +1,566 @@
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';
6
+ import isNumberBetween from '../../src/number/isBetween';
4
7
  import isNumericalNaN from '../../src/number/isNumericalNaN';
5
8
  import toPercentage from '../../src/number/toPercentage';
6
9
  import round from '../../src/number/round';
7
10
  import randomBetween from '../../src/number/randomBetween';
11
+ import {
12
+ fnNumericValues,
13
+ fnBooleanValues,
14
+ fnRegexValues,
15
+ fnStringValues,
16
+ fnObjectValues,
17
+ fnDateValues,
18
+ fnArrayValues,
19
+ fnFunctionValues,
20
+ fnNullables,
21
+ } from '../constants';
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;
8
31
 
9
32
  describe("Number - isNumber", () => {
10
33
  it ('not see a string as a number', () => {
11
- expect(isNumber('foo')).toEqual(false);
12
- expect(isNumber(new String('bar'))).toEqual(false);
34
+ let vals = fnStringValues();
35
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
13
36
  });
14
37
 
15
38
  it ('see a numeric value as a number', () => {
16
- expect(isNumber(1)).toEqual(true);
17
- expect(isNumber(NaN)).toEqual(true);
18
- expect(isNumber(0.000001)).toEqual(true);
19
- expect(isNumber(8e10)).toEqual(true);
20
- expect(isNumber(Math.PI)).toEqual(true);
21
- expect(isNumber(new Number(1.12345))).toEqual(true);
22
- expect(isNumber(new Number(Number.EPSILON))).toEqual(true);
39
+ let vals = fnNumericValues();
40
+ for (let el of vals) expect(isNumber(el)).to.eql(true);
41
+ });
42
+
43
+ it ('not see a numerical nan as a number', () => {
44
+ expect(isNumber(1/0)).to.eql(false);
23
45
  });
24
46
 
25
47
  it ('not see a boolean as a number', () => {
26
- expect(isNumber(true)).toEqual(false);
27
- expect(isNumber(false)).toEqual(false);
28
- expect(isNumber(Boolean(true))).toEqual(false);
29
- expect(isNumber(Boolean(false))).toEqual(false);
30
- expect(isNumber(Boolean('foo'))).toEqual(false);
31
- expect(isNumber(new Boolean(false))).toEqual(false);
48
+ let vals = fnBooleanValues();
49
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
32
50
  });
33
51
 
34
52
  it ('not see a regex as a number', () => {
35
- expect(isNumber(/abcdefg/i)).toEqual(false);
36
- expect(isNumber(new RegExp('\\w+'))).toEqual(false);
53
+ let vals = fnRegexValues();
54
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
37
55
  });
38
56
 
39
57
  it ('not see an object as a number', () => {
40
- expect(isNumber({bar:'foo'})).toEqual(false);
41
- expect(isNumber(new Object())).toEqual(false);
42
- expect(isNumber(Object.create(null))).toEqual(false);
43
- expect(isNumber(Object.create([]))).toEqual(false);
58
+ let vals = fnObjectValues();
59
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
44
60
  });
45
61
 
46
- it ('not see a null as a number', () => {
47
- expect(isNumber(null)).toEqual(false);
62
+ it ('not see a nullable as a number', () => {
63
+ let vals = fnNullables();
64
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
48
65
  });
49
66
 
50
67
  it ('not see a date as a number', () => {
51
- expect(isNumber(new Date())).toEqual(false);
52
- expect(isNumber(Date.now())).toEqual(true);
53
- });
54
-
55
- it ('not see an undefined as a number', () => {
56
- expect(isNumber(undefined)).toEqual(false);
68
+ let vals = fnDateValues();
69
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
57
70
  });
58
71
 
59
72
  it ('not see an array as a number', () => {
60
- expect(isNumber([0, 1, 2])).toEqual(false);
61
- expect(isNumber(new Array(1, 2, 3))).toEqual(false);
62
- expect(isNumber(new Array(5))).toEqual(false);
73
+ let vals = fnArrayValues();
74
+ for (let el of vals) expect(isNumber(el)).to.eql(false);
63
75
  });
64
76
 
65
77
  it ('not see a function as a number', () => {
66
- function testFunction () {}
78
+ let vals = fnFunctionValues();
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
+ });
67
163
 
68
- const testArrowFunction = () => {};
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
+ });
69
173
 
70
- expect(isNumber(testFunction)).toEqual(false);
71
- expect(isNumber(testArrowFunction)).toEqual(false);
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);
72
177
  });
73
178
 
74
- it ('not see formdata as a number', () => {
75
- let fdata = new FormData();
76
- expect(isNumber(fdata)).toEqual(false);
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);
269
+ });
270
+
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);
284
+ });
285
+ });
286
+
287
+ describe("Number - isNumberBetween", () => {
288
+ it ('not see a string as a number between', () => {
289
+ let vals = fnStringValues();
290
+ for (let el of vals) expect(isNumberBetween(el, 0, 1000)).to.eql(false);
291
+ });
292
+
293
+ it ('treat numeric values between ranges correctly', () => {
294
+ let vals = [
295
+ [0, -1, 1],
296
+ [-32, -100, -10],
297
+ [3, 1, 9],
298
+ [.1, 0, .2],
299
+ ];
300
+ for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).to.eql(true);
301
+ });
302
+
303
+ it ('treat numeric values between ranges with invalid values incorrectly', () => {
304
+ let vals = [
305
+ [0, -1, -1],
306
+ [-1, -100, -10],
307
+ [3, 1, 9],
308
+ [.1, 0, .2],
309
+ ];
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);
312
+ });
313
+
314
+ it ('treat numeric values below lower bound as false', () => {
315
+ let vals = [
316
+ [-1, 0, 1],
317
+ [-101, -100, -10],
318
+ [0, 1, 9],
319
+ [-.1, 0, .2],
320
+ ];
321
+ for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).to.eql(false);
322
+ });
323
+
324
+ it ('treat numeric values at lower bound as true', () => {
325
+ let vals = [
326
+ [0, 0, 1],
327
+ [-100, -100, -10],
328
+ [1, 1, 9],
329
+ [0, 0, .2],
330
+ ];
331
+ for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).to.eql(true);
332
+ });
333
+
334
+ it ('treat numeric values above upper bound as false', () => {
335
+ let vals = [
336
+ [2, 0, 1],
337
+ [-9, -100, -10],
338
+ [10, 1, 9],
339
+ [.3, 0, .2],
340
+ ];
341
+ for (let el of vals) expect(isNumberBetween(el[0], el[1], el[2])).to.eql(false);
342
+ });
343
+
344
+ it ('treat numeric values at upper bound as true', () => {
345
+ let vals = [
346
+ [1, 0, 1],
347
+ [-10, -100, -10],
348
+ [9, 1, 9],
349
+ [.2, 0, .2],
350
+ ];
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);
395
+ });
396
+
397
+ it ('not see a boolean as a number between', () => {
398
+ let vals = fnBooleanValues();
399
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
400
+ });
401
+
402
+ it ('not see a regex as a number between', () => {
403
+ let vals = fnRegexValues();
404
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
405
+ });
406
+
407
+ it ('not see an object as a number between', () => {
408
+ let vals = fnObjectValues();
409
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
410
+ });
411
+
412
+ it ('not see a nullable as a number between', () => {
413
+ let vals = fnNullables();
414
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
415
+ });
416
+
417
+ it ('not see a date as a number between', () => {
418
+ let vals = fnDateValues();
419
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
420
+ });
421
+
422
+ it ('not see an array as a number between', () => {
423
+ let vals = fnArrayValues();
424
+ for (let el of vals) expect(isNumberBetween(0, el, 1000)).to.eql(false);
425
+ });
426
+
427
+ it ('not see a function as a number between', () => {
428
+ let vals = fnFunctionValues();
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);
440
+ });
441
+
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);
77
465
  });
78
466
  });
79
467
 
80
468
  describe("Number - toPercentage", () => {
81
469
  it ('should correctly calculate the percentage', () => {
82
- expect(toPercentage(0.5)).toEqual(50);
470
+ expect(toPercentage(0.5)).to.eql(50);
83
471
  });
84
472
 
85
473
  it ('should correctly calculate the percentage with precision', () => {
86
- expect(toPercentage(0.50106579, 0)).toEqual(50);
87
- expect(toPercentage(0.50106579, 1)).toEqual(50.1);
88
- expect(toPercentage(0.50116579, 2)).toEqual(50.12);
89
- expect(toPercentage(0.50116579, 3)).toEqual(50.117);
90
- expect(toPercentage(0.50116579, 4)).toEqual(50.1166);
91
- 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);
92
480
  });
93
481
 
94
482
  it ('should correctly apply range logic when provided', () => {
95
- expect(toPercentage(5, 0, -10, 10)).toEqual(75);
96
- expect(toPercentage(-356, 0, -1000, 1000)).toEqual(32);
97
- expect(toPercentage(-356.52, 3, -1000, 1000)).toEqual(32.174);
98
- 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);
99
487
  });
100
488
 
101
489
  it ('should throw an error if the value is not numeric', () => {
102
490
  expect(function () {
103
491
  toPercentage('hello', 2, 0, 1);
104
492
  toPercentage(false, 2, 0, 1);
105
- }).toThrowError(TypeError);
493
+ }).to.throw(TypeError);
106
494
  });
107
495
 
108
496
  it ('should throw an error if the min is not numeric', () => {
109
497
  expect(function () {
110
498
  toPercentage(0.5, 2, false, 1);
111
499
  toPercentage(0.5, 2, 'Hello', 1);
112
- }).toThrowError(TypeError);
500
+ }).to.throw(TypeError);
113
501
  });
114
502
 
115
503
  it ('should throw an error if the max is not numeric', () => {
116
504
  expect(function () {
117
505
  toPercentage(0.5, 2, 0, 'Hello');
118
506
  toPercentage(0.5, 2, 0, false);
119
- }).toThrowError(TypeError);
507
+ }).to.throw(TypeError);
120
508
  });
121
509
  });
122
510
 
123
511
  describe("Number - isNumericalNaN", () => {
124
512
  it ('not see a valid number as a NaN', () => {
125
- expect(isNumericalNaN(42)).toEqual(false);
513
+ expect(isNumericalNaN(42)).to.eql(false);
126
514
  });
127
515
 
128
516
  it ('not see a string as a NaN', () => {
129
- expect(isNumericalNaN('foo')).toEqual(false);
130
- expect(isNumericalNaN('NaN')).toEqual(false);
517
+ expect(isNumericalNaN('foo')).to.eql(false);
518
+ expect(isNumericalNaN('NaN')).to.eql(false);
131
519
  });
132
520
 
133
521
  it ('not see an object as a NaN', () => {
134
- expect(isNumericalNaN({ foo: 'bar' })).toEqual(false);
522
+ expect(isNumericalNaN({ foo: 'bar' })).to.eql(false);
135
523
  });
136
524
 
137
525
  it ('not see an array as a NaN', () => {
138
- expect(isNumericalNaN([0, 1, 2])).toEqual(false);
526
+ expect(isNumericalNaN([0, 1, 2])).to.eql(false);
139
527
  });
140
528
 
141
529
  it ('see a NaN as a NaN', () => {
142
- expect(isNumericalNaN(NaN)).toEqual(true);
530
+ expect(isNumericalNaN(NaN)).to.eql(true);
531
+ });
532
+
533
+ it ('sees infinity as a NaN', () => {
534
+ expect(isNumericalNaN(Infinity)).to.eql(true);
143
535
  });
144
536
  });
145
537
 
146
538
  describe("Number - round", () => {
147
539
  it ('should correctly round a value', () => {
148
- expect(round(5.123456789)).toEqual(5);
540
+ expect(round(5.123456789)).to.eql(5);
149
541
  });
150
542
 
151
543
  it ('should correctly round a value with precision', () => {
152
- expect(round(5.123456789, 0)).toEqual(5);
153
- expect(round(5.123456789, 1)).toEqual(5.1);
154
- expect(round(5.123456789, 2)).toEqual(5.12);
155
- expect(round(5.123456789, 3)).toEqual(5.123);
156
- expect(round(5.123456789, 4)).toEqual(5.1235);
157
- 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);
158
552
  });
159
553
 
160
554
  it ('should throw an error if the value is not numeric', () => {
161
555
  expect(function () {
162
556
  round('hello', 2);
163
- }).toThrowError(TypeError);
557
+ }).to.throw(TypeError);
164
558
  });
165
559
  });
166
560
 
167
561
  describe("Number - randomBetween", () => {
168
562
  it ('should return a random number', () => {
169
- expect(randomBetween()).toEqual(jasmine.any(Number));
563
+ assert.typeOf(randomBetween(), 'Number');
170
564
  });
171
565
 
172
566
  it ('should return a random number between min and max', () => {
@@ -176,7 +570,7 @@ describe("Number - randomBetween", () => {
176
570
  if (random < 0 && random > 1000) between = false;
177
571
  }
178
572
 
179
- expect(between).toEqual(true);
573
+ expect(between).to.eql(true);
180
574
  });
181
575
 
182
576
  it ('should return a unique random number over subsequent calls', () => {
@@ -185,18 +579,18 @@ describe("Number - randomBetween", () => {
185
579
  const random = randomBetween(0, 100);
186
580
  cache[`${random}`] = random;
187
581
  }
188
- expect(Object.keys(cache).length).toEqual(100000);
582
+ expect(Object.keys(cache).length).to.eql(100000);
189
583
  });
190
584
 
191
585
  it ('should throw an error if the min/max is not numeric', () => {
192
586
  expect(function () {
193
587
  randomBetween('min', 2);
194
- }).toThrowError(TypeError);
588
+ }).to.throw(TypeError);
195
589
  expect(function () {
196
590
  randomBetween(2, 'max');
197
- }).toThrowError(TypeError);
591
+ }).to.throw(TypeError);
198
592
  expect(function () {
199
593
  randomBetween(2, 5);
200
- }).not.toThrowError(TypeError);
594
+ }).not.to.throw(TypeError);
201
595
  });
202
596
  });