ts-data-forge 5.0.0 → 5.1.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 (532) hide show
  1. package/README.md +55 -6
  2. package/dist/array/impl/array-utils-creation.d.mts +14 -0
  3. package/dist/array/impl/array-utils-creation.d.mts.map +1 -1
  4. package/dist/array/impl/array-utils-creation.mjs +12 -0
  5. package/dist/array/impl/array-utils-creation.mjs.map +1 -1
  6. package/dist/array/impl/array-utils-element-access.d.mts +10 -0
  7. package/dist/array/impl/array-utils-element-access.d.mts.map +1 -1
  8. package/dist/array/impl/array-utils-element-access.mjs +7 -0
  9. package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
  10. package/dist/array/impl/array-utils-modification.d.mts +14 -0
  11. package/dist/array/impl/array-utils-modification.d.mts.map +1 -1
  12. package/dist/array/impl/array-utils-modification.mjs +1 -0
  13. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  14. package/dist/array/impl/array-utils-reducing-value.d.mts +26 -2
  15. package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -1
  16. package/dist/array/impl/array-utils-reducing-value.mjs +2 -1
  17. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  18. package/dist/array/impl/array-utils-search.d.mts +30 -0
  19. package/dist/array/impl/array-utils-search.d.mts.map +1 -1
  20. package/dist/array/impl/array-utils-search.mjs +1 -0
  21. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  22. package/dist/array/impl/array-utils-set-op.d.mts +13 -0
  23. package/dist/array/impl/array-utils-set-op.d.mts.map +1 -1
  24. package/dist/array/impl/array-utils-set-op.mjs +13 -0
  25. package/dist/array/impl/array-utils-set-op.mjs.map +1 -1
  26. package/dist/array/impl/array-utils-size.d.mts +3 -0
  27. package/dist/array/impl/array-utils-size.d.mts.map +1 -1
  28. package/dist/array/impl/array-utils-size.mjs +3 -0
  29. package/dist/array/impl/array-utils-size.mjs.map +1 -1
  30. package/dist/array/impl/array-utils-slice-clamped.d.mts +2 -0
  31. package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -1
  32. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
  33. package/dist/array/impl/array-utils-slicing.d.mts +15 -0
  34. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
  35. package/dist/array/impl/array-utils-slicing.mjs +7 -0
  36. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  37. package/dist/array/impl/array-utils-transformation.d.mts +27 -0
  38. package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
  39. package/dist/array/impl/array-utils-transformation.mjs +7 -0
  40. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  41. package/dist/array/impl/array-utils-validation.d.mts +17 -0
  42. package/dist/array/impl/array-utils-validation.d.mts.map +1 -1
  43. package/dist/array/impl/array-utils-validation.mjs +11 -0
  44. package/dist/array/impl/array-utils-validation.mjs.map +1 -1
  45. package/dist/collections/imap-mapped.mjs +1 -0
  46. package/dist/collections/imap-mapped.mjs.map +1 -1
  47. package/dist/collections/imap.d.mts +20 -0
  48. package/dist/collections/imap.d.mts.map +1 -1
  49. package/dist/collections/imap.mjs +3 -0
  50. package/dist/collections/imap.mjs.map +1 -1
  51. package/dist/collections/iset-mapped.d.mts +27 -0
  52. package/dist/collections/iset-mapped.d.mts.map +1 -1
  53. package/dist/collections/iset-mapped.mjs +7 -0
  54. package/dist/collections/iset-mapped.mjs.map +1 -1
  55. package/dist/collections/iset.d.mts +29 -0
  56. package/dist/collections/iset.d.mts.map +1 -1
  57. package/dist/collections/iset.mjs +7 -0
  58. package/dist/collections/iset.mjs.map +1 -1
  59. package/dist/collections/queue.d.mts +40 -0
  60. package/dist/collections/queue.d.mts.map +1 -1
  61. package/dist/collections/queue.mjs +9 -0
  62. package/dist/collections/queue.mjs.map +1 -1
  63. package/dist/collections/stack.d.mts +35 -0
  64. package/dist/collections/stack.d.mts.map +1 -1
  65. package/dist/collections/stack.mjs +8 -0
  66. package/dist/collections/stack.mjs.map +1 -1
  67. package/dist/entry-point.mjs +1 -1
  68. package/dist/functional/match.d.mts.map +1 -1
  69. package/dist/functional/match.mjs.map +1 -1
  70. package/dist/functional/optional/impl/optional-expect-to-be.d.mts +1 -0
  71. package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +1 -1
  72. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -1
  73. package/dist/functional/optional/impl/optional-filter.d.mts +3 -0
  74. package/dist/functional/optional/impl/optional-filter.d.mts.map +1 -1
  75. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -1
  76. package/dist/functional/optional/impl/optional-flat-map.d.mts +2 -0
  77. package/dist/functional/optional/impl/optional-flat-map.d.mts.map +1 -1
  78. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -1
  79. package/dist/functional/optional/impl/optional-from-nullable.d.mts +2 -0
  80. package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -1
  81. package/dist/functional/optional/impl/optional-from-nullable.mjs +2 -0
  82. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -1
  83. package/dist/functional/optional/impl/optional-is-optional.d.mts +2 -0
  84. package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -1
  85. package/dist/functional/optional/impl/optional-is-optional.mjs +2 -0
  86. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -1
  87. package/dist/functional/optional/impl/optional-is-some.d.mts +1 -0
  88. package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -1
  89. package/dist/functional/optional/impl/optional-is-some.mjs +1 -0
  90. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -1
  91. package/dist/functional/optional/impl/optional-map.d.mts +2 -0
  92. package/dist/functional/optional/impl/optional-map.d.mts.map +1 -1
  93. package/dist/functional/optional/impl/optional-map.mjs.map +1 -1
  94. package/dist/functional/optional/impl/optional-none.d.mts +2 -0
  95. package/dist/functional/optional/impl/optional-none.d.mts.map +1 -1
  96. package/dist/functional/optional/impl/optional-none.mjs +2 -0
  97. package/dist/functional/optional/impl/optional-none.mjs.map +1 -1
  98. package/dist/functional/optional/impl/optional-or-else.d.mts +4 -0
  99. package/dist/functional/optional/impl/optional-or-else.d.mts.map +1 -1
  100. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -1
  101. package/dist/functional/optional/impl/optional-some.d.mts +3 -1
  102. package/dist/functional/optional/impl/optional-some.d.mts.map +1 -1
  103. package/dist/functional/optional/impl/optional-some.mjs +2 -0
  104. package/dist/functional/optional/impl/optional-some.mjs.map +1 -1
  105. package/dist/functional/optional/impl/optional-to-nullable.d.mts +2 -0
  106. package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -1
  107. package/dist/functional/optional/impl/optional-to-nullable.mjs +2 -0
  108. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -1
  109. package/dist/functional/optional/impl/optional-unwrap-or.d.mts +3 -0
  110. package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +1 -1
  111. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -1
  112. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +1 -0
  113. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -1
  114. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +1 -0
  115. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -1
  116. package/dist/functional/optional/impl/optional-unwrap.d.mts +2 -0
  117. package/dist/functional/optional/impl/optional-unwrap.d.mts.map +1 -1
  118. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -1
  119. package/dist/functional/optional/impl/optional-zip.d.mts +2 -0
  120. package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -1
  121. package/dist/functional/optional/impl/optional-zip.mjs +2 -0
  122. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -1
  123. package/dist/functional/result/impl/result-err.d.mts +3 -1
  124. package/dist/functional/result/impl/result-err.d.mts.map +1 -1
  125. package/dist/functional/result/impl/result-err.mjs +2 -0
  126. package/dist/functional/result/impl/result-err.mjs.map +1 -1
  127. package/dist/functional/result/impl/result-expect-to-be.d.mts +1 -0
  128. package/dist/functional/result/impl/result-expect-to-be.d.mts.map +1 -1
  129. package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -1
  130. package/dist/functional/result/impl/result-flat-map.d.mts +5 -0
  131. package/dist/functional/result/impl/result-flat-map.d.mts.map +1 -1
  132. package/dist/functional/result/impl/result-flat-map.mjs.map +1 -1
  133. package/dist/functional/result/impl/result-fold.d.mts +4 -0
  134. package/dist/functional/result/impl/result-fold.d.mts.map +1 -1
  135. package/dist/functional/result/impl/result-fold.mjs.map +1 -1
  136. package/dist/functional/result/impl/result-from-promise.d.mts +3 -0
  137. package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -1
  138. package/dist/functional/result/impl/result-from-promise.mjs +3 -0
  139. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -1
  140. package/dist/functional/result/impl/result-from-throwable.d.mts +2 -0
  141. package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -1
  142. package/dist/functional/result/impl/result-from-throwable.mjs +4 -1
  143. package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -1
  144. package/dist/functional/result/impl/result-is-err.d.mts +2 -0
  145. package/dist/functional/result/impl/result-is-err.d.mts.map +1 -1
  146. package/dist/functional/result/impl/result-is-err.mjs +2 -0
  147. package/dist/functional/result/impl/result-is-err.mjs.map +1 -1
  148. package/dist/functional/result/impl/result-is-ok.d.mts +2 -0
  149. package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -1
  150. package/dist/functional/result/impl/result-is-ok.mjs +2 -0
  151. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -1
  152. package/dist/functional/result/impl/result-is-result.d.mts +4 -0
  153. package/dist/functional/result/impl/result-is-result.d.mts.map +1 -1
  154. package/dist/functional/result/impl/result-is-result.mjs +4 -0
  155. package/dist/functional/result/impl/result-is-result.mjs.map +1 -1
  156. package/dist/functional/result/impl/result-map-err.d.mts +3 -0
  157. package/dist/functional/result/impl/result-map-err.d.mts.map +1 -1
  158. package/dist/functional/result/impl/result-map-err.mjs.map +1 -1
  159. package/dist/functional/result/impl/result-map.d.mts +4 -0
  160. package/dist/functional/result/impl/result-map.d.mts.map +1 -1
  161. package/dist/functional/result/impl/result-map.mjs.map +1 -1
  162. package/dist/functional/result/impl/result-ok.d.mts +3 -1
  163. package/dist/functional/result/impl/result-ok.d.mts.map +1 -1
  164. package/dist/functional/result/impl/result-ok.mjs +2 -0
  165. package/dist/functional/result/impl/result-ok.mjs.map +1 -1
  166. package/dist/functional/result/impl/result-or-else.d.mts +4 -0
  167. package/dist/functional/result/impl/result-or-else.d.mts.map +1 -1
  168. package/dist/functional/result/impl/result-or-else.mjs.map +1 -1
  169. package/dist/functional/result/impl/result-swap.d.mts +2 -0
  170. package/dist/functional/result/impl/result-swap.d.mts.map +1 -1
  171. package/dist/functional/result/impl/result-swap.mjs +2 -0
  172. package/dist/functional/result/impl/result-swap.mjs.map +1 -1
  173. package/dist/functional/result/impl/result-to-optional.d.mts +2 -0
  174. package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -1
  175. package/dist/functional/result/impl/result-to-optional.mjs +2 -0
  176. package/dist/functional/result/impl/result-to-optional.mjs.map +1 -1
  177. package/dist/functional/result/impl/result-unwrap-err-or.d.mts +3 -0
  178. package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +1 -1
  179. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -1
  180. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +2 -0
  181. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -1
  182. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +2 -0
  183. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -1
  184. package/dist/functional/result/impl/result-unwrap-err.d.mts +1 -0
  185. package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -1
  186. package/dist/functional/result/impl/result-unwrap-err.mjs +1 -0
  187. package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -1
  188. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +3 -0
  189. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +1 -1
  190. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -1
  191. package/dist/functional/result/impl/result-unwrap-ok.d.mts +1 -0
  192. package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +1 -1
  193. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -1
  194. package/dist/functional/result/impl/result-unwrap-throw.d.mts +2 -0
  195. package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -1
  196. package/dist/functional/result/impl/result-unwrap-throw.mjs +2 -0
  197. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -1
  198. package/dist/functional/result/impl/result-zip.d.mts +3 -1
  199. package/dist/functional/result/impl/result-zip.d.mts.map +1 -1
  200. package/dist/functional/result/impl/result-zip.mjs +3 -1
  201. package/dist/functional/result/impl/result-zip.mjs.map +1 -1
  202. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts +2 -1
  203. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts.map +1 -1
  204. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +1 -0
  205. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +1 -1
  206. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts +1 -0
  207. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts.map +1 -1
  208. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +1 -1
  209. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts +4 -0
  210. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts.map +1 -1
  211. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +1 -1
  212. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts +2 -0
  213. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts.map +1 -1
  214. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +1 -1
  215. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts +2 -0
  216. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts.map +1 -1
  217. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +2 -0
  218. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +1 -1
  219. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts +2 -0
  220. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts.map +1 -1
  221. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +4 -1
  222. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -1
  223. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts +1 -0
  224. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts.map +1 -1
  225. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +1 -0
  226. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +1 -1
  227. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts +4 -0
  228. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts.map +1 -1
  229. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +4 -0
  230. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +1 -1
  231. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts +1 -0
  232. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts.map +1 -1
  233. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +1 -0
  234. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +1 -1
  235. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts +3 -0
  236. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts.map +1 -1
  237. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +1 -1
  238. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts +3 -0
  239. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts.map +1 -1
  240. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +1 -1
  241. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts +6 -0
  242. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts.map +1 -1
  243. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +1 -1
  244. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts +1 -1
  245. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts.map +1 -1
  246. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +1 -1
  247. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts +2 -0
  248. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts.map +1 -1
  249. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +1 -1
  250. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts +2 -0
  251. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts.map +1 -1
  252. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +2 -0
  253. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +1 -1
  254. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts +2 -0
  255. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts.map +1 -1
  256. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +1 -1
  257. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts +1 -0
  258. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts.map +1 -1
  259. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +1 -0
  260. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +1 -1
  261. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts +2 -0
  262. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts.map +1 -1
  263. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +2 -0
  264. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +1 -1
  265. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts +2 -0
  266. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts.map +1 -1
  267. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +1 -1
  268. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts +2 -0
  269. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts.map +1 -1
  270. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +1 -1
  271. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts +1 -0
  272. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts.map +1 -1
  273. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +1 -0
  274. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +1 -1
  275. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts +2 -0
  276. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts.map +1 -1
  277. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +1 -1
  278. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts +1 -0
  279. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts.map +1 -1
  280. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +1 -0
  281. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +1 -1
  282. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts +2 -0
  283. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts.map +1 -1
  284. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +2 -0
  285. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +1 -1
  286. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts +1 -1
  287. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts.map +1 -1
  288. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +1 -1
  289. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts +4 -0
  290. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts.map +1 -1
  291. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +4 -0
  292. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +1 -1
  293. package/dist/globals.d.mts +10 -0
  294. package/dist/guard/index.mjs +1 -1
  295. package/dist/guard/is-record.d.mts +31 -0
  296. package/dist/guard/is-record.d.mts.map +1 -1
  297. package/dist/guard/is-record.mjs +32 -1
  298. package/dist/guard/is-record.mjs.map +1 -1
  299. package/dist/guard/is-type.d.mts +3 -0
  300. package/dist/guard/is-type.d.mts.map +1 -1
  301. package/dist/guard/is-type.mjs +3 -0
  302. package/dist/guard/is-type.mjs.map +1 -1
  303. package/dist/guard/key-is-in.d.mts +1 -0
  304. package/dist/guard/key-is-in.d.mts.map +1 -1
  305. package/dist/guard/key-is-in.mjs +1 -0
  306. package/dist/guard/key-is-in.mjs.map +1 -1
  307. package/dist/index.mjs +1 -1
  308. package/dist/iterator/range.d.mts +4 -0
  309. package/dist/iterator/range.d.mts.map +1 -1
  310. package/dist/iterator/range.mjs +1 -0
  311. package/dist/iterator/range.mjs.map +1 -1
  312. package/dist/json/json.d.mts +21 -0
  313. package/dist/json/json.d.mts.map +1 -1
  314. package/dist/json/json.mjs +22 -0
  315. package/dist/json/json.mjs.map +1 -1
  316. package/dist/number/branded-types/int.d.mts +14 -0
  317. package/dist/number/branded-types/int.d.mts.map +1 -1
  318. package/dist/number/branded-types/int.mjs +14 -0
  319. package/dist/number/branded-types/int.mjs.map +1 -1
  320. package/dist/number/branded-types/non-zero-safe-int.mjs +2 -2
  321. package/dist/number/branded-types/positive-int.d.mts +14 -0
  322. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  323. package/dist/number/branded-types/positive-int.mjs +14 -0
  324. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  325. package/dist/number/branded-types/positive-safe-int.d.mts +21 -0
  326. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  327. package/dist/number/branded-types/positive-safe-int.mjs +22 -1
  328. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  329. package/dist/number/branded-types/safe-int.d.mts +21 -0
  330. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  331. package/dist/number/branded-types/safe-int.mjs +23 -2
  332. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  333. package/dist/number/branded-types/safe-uint.mjs +1 -1
  334. package/dist/number/branded-types/uint.d.mts +12 -0
  335. package/dist/number/branded-types/uint.d.mts.map +1 -1
  336. package/dist/number/branded-types/uint.mjs +12 -0
  337. package/dist/number/branded-types/uint.mjs.map +1 -1
  338. package/dist/number/num.d.mts +9 -0
  339. package/dist/number/num.d.mts.map +1 -1
  340. package/dist/number/num.mjs +8 -1
  341. package/dist/number/num.mjs.map +1 -1
  342. package/dist/number/refined-number-utils.d.mts +22 -0
  343. package/dist/number/refined-number-utils.d.mts.map +1 -1
  344. package/dist/number/refined-number-utils.mjs +23 -0
  345. package/dist/number/refined-number-utils.mjs.map +1 -1
  346. package/dist/object/object.d.mts +9 -0
  347. package/dist/object/object.d.mts.map +1 -1
  348. package/dist/object/object.mjs +7 -0
  349. package/dist/object/object.mjs.map +1 -1
  350. package/dist/others/map-nullable.mjs.map +1 -1
  351. package/dist/others/tuple.d.mts +11 -0
  352. package/dist/others/tuple.d.mts.map +1 -1
  353. package/dist/others/tuple.mjs +11 -0
  354. package/dist/others/tuple.mjs.map +1 -1
  355. package/dist/others/unknown-to-string.d.mts.map +1 -1
  356. package/dist/others/unknown-to-string.mjs +2 -1
  357. package/dist/others/unknown-to-string.mjs.map +1 -1
  358. package/dist/promise/promise.d.mts +4 -0
  359. package/dist/promise/promise.d.mts.map +1 -1
  360. package/dist/promise/promise.mjs +5 -0
  361. package/dist/promise/promise.mjs.map +1 -1
  362. package/package.json +20 -24
  363. package/src/array/impl/array-utils-creation.mts +20 -0
  364. package/src/array/impl/array-utils-creation.test.mts +71 -0
  365. package/src/array/impl/array-utils-element-access.mts +13 -0
  366. package/src/array/impl/array-utils-element-access.test.mts +21 -0
  367. package/src/array/impl/array-utils-iterators.test.mts +17 -0
  368. package/src/array/impl/array-utils-modification.mts +40 -0
  369. package/src/array/impl/array-utils-modification.test.mts +75 -0
  370. package/src/array/impl/array-utils-overload-type-error.test.mts +19 -0
  371. package/src/array/impl/array-utils-reducing-value.mts +55 -9
  372. package/src/array/impl/array-utils-reducing-value.test.mts +90 -0
  373. package/src/array/impl/array-utils-search.mts +53 -0
  374. package/src/array/impl/array-utils-search.test.mts +51 -0
  375. package/src/array/impl/array-utils-set-op.mts +19 -0
  376. package/src/array/impl/array-utils-set-op.test.mts +116 -0
  377. package/src/array/impl/array-utils-size.mts +3 -0
  378. package/src/array/impl/array-utils-size.test.mts +1 -0
  379. package/src/array/impl/array-utils-slice-clamped.mts +7 -0
  380. package/src/array/impl/array-utils-slice-clamped.test.mts +20 -0
  381. package/src/array/impl/array-utils-slicing.mts +27 -0
  382. package/src/array/impl/array-utils-slicing.test.mts +57 -0
  383. package/src/array/impl/array-utils-transformation.mts +58 -0
  384. package/src/array/impl/array-utils-transformation.test.mts +113 -1
  385. package/src/array/impl/array-utils-validation.mts +23 -0
  386. package/src/array/impl/array-utils-validation.test.mts +96 -0
  387. package/src/array/impl/array.test.mts +12 -0
  388. package/src/collections/imap-mapped.mts +11 -0
  389. package/src/collections/imap-mapped.test.mts +70 -0
  390. package/src/collections/imap.mts +32 -0
  391. package/src/collections/imap.test.mts +106 -0
  392. package/src/collections/iset-mapped.mts +35 -0
  393. package/src/collections/iset-mapped.test.mts +111 -0
  394. package/src/collections/iset.mts +34 -0
  395. package/src/collections/iset.test.mts +193 -0
  396. package/src/collections/queue.mts +53 -0
  397. package/src/collections/queue.test.mts +32 -0
  398. package/src/collections/stack.mts +42 -0
  399. package/src/collections/stack.test.mts +44 -0
  400. package/src/functional/match.mts +16 -0
  401. package/src/functional/match.test.mts +2 -0
  402. package/src/functional/optional/impl/optional-expect-to-be.mts +3 -0
  403. package/src/functional/optional/impl/optional-filter.mts +6 -0
  404. package/src/functional/optional/impl/optional-flat-map.mts +4 -0
  405. package/src/functional/optional/impl/optional-from-nullable.mts +2 -0
  406. package/src/functional/optional/impl/optional-is-optional.mts +2 -0
  407. package/src/functional/optional/impl/optional-is-some.mts +1 -0
  408. package/src/functional/optional/impl/optional-map.mts +5 -0
  409. package/src/functional/optional/impl/optional-none.mts +2 -0
  410. package/src/functional/optional/impl/optional-or-else.mts +6 -0
  411. package/src/functional/optional/impl/optional-some.mts +3 -1
  412. package/src/functional/optional/impl/optional-to-nullable.mts +2 -0
  413. package/src/functional/optional/impl/optional-unwrap-or.mts +5 -0
  414. package/src/functional/optional/impl/optional-unwrap-throw.mts +1 -0
  415. package/src/functional/optional/impl/optional-unwrap.mts +2 -0
  416. package/src/functional/optional/impl/optional-zip.mts +2 -0
  417. package/src/functional/optional.test.mts +73 -0
  418. package/src/functional/pipe.test.mts +3 -0
  419. package/src/functional/result/impl/result-err.mts +3 -1
  420. package/src/functional/result/impl/result-expect-to-be.mts +3 -0
  421. package/src/functional/result/impl/result-flat-map.mts +7 -0
  422. package/src/functional/result/impl/result-fold.mts +6 -0
  423. package/src/functional/result/impl/result-from-promise.mts +3 -0
  424. package/src/functional/result/impl/result-from-throwable.mts +6 -1
  425. package/src/functional/result/impl/result-is-err.mts +2 -0
  426. package/src/functional/result/impl/result-is-ok.mts +2 -0
  427. package/src/functional/result/impl/result-is-result.mts +4 -0
  428. package/src/functional/result/impl/result-map-err.mts +5 -0
  429. package/src/functional/result/impl/result-map.mts +6 -0
  430. package/src/functional/result/impl/result-ok.mts +3 -1
  431. package/src/functional/result/impl/result-or-else.mts +6 -0
  432. package/src/functional/result/impl/result-swap.mts +2 -0
  433. package/src/functional/result/impl/result-to-optional.mts +2 -0
  434. package/src/functional/result/impl/result-unwrap-err-or.mts +5 -0
  435. package/src/functional/result/impl/result-unwrap-err-throw.mts +2 -0
  436. package/src/functional/result/impl/result-unwrap-err.mts +1 -0
  437. package/src/functional/result/impl/result-unwrap-ok-or.mts +5 -0
  438. package/src/functional/result/impl/result-unwrap-ok.mts +2 -0
  439. package/src/functional/result/impl/result-unwrap-throw.mts +2 -0
  440. package/src/functional/result/impl/result-zip.mts +3 -1
  441. package/src/functional/result.test.mts +88 -0
  442. package/src/functional/ternary-result/impl/ternary-result-err.mts +2 -1
  443. package/src/functional/ternary-result/impl/ternary-result-expect-to-be.mts +4 -0
  444. package/src/functional/ternary-result/impl/ternary-result-flat-map.mts +7 -0
  445. package/src/functional/ternary-result/impl/ternary-result-fold.mts +5 -0
  446. package/src/functional/ternary-result/impl/ternary-result-from-promise.mts +2 -0
  447. package/src/functional/ternary-result/impl/ternary-result-from-throwable.mts +5 -1
  448. package/src/functional/ternary-result/impl/ternary-result-is-ok.mts +1 -0
  449. package/src/functional/ternary-result/impl/ternary-result-is-ternary-result.mts +4 -0
  450. package/src/functional/ternary-result/impl/ternary-result-is-warn.mts +1 -0
  451. package/src/functional/ternary-result/impl/ternary-result-map-err.mts +6 -0
  452. package/src/functional/ternary-result/impl/ternary-result-map-warn.mts +6 -0
  453. package/src/functional/ternary-result/impl/ternary-result-map.mts +9 -0
  454. package/src/functional/ternary-result/impl/ternary-result-ok.mts +1 -1
  455. package/src/functional/ternary-result/impl/ternary-result-or-else.mts +5 -0
  456. package/src/functional/ternary-result/impl/ternary-result-to-optional.mts +2 -0
  457. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-or.mts +5 -0
  458. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mts +1 -0
  459. package/src/functional/ternary-result/impl/ternary-result-unwrap-err.mts +2 -0
  460. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mts +5 -0
  461. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok.mts +3 -0
  462. package/src/functional/ternary-result/impl/ternary-result-unwrap-throw.mts +1 -0
  463. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mts +5 -0
  464. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mts +1 -0
  465. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn.mts +2 -0
  466. package/src/functional/ternary-result/impl/ternary-result-warn.mts +4 -1
  467. package/src/functional/ternary-result/impl/ternary-result-zip.mts +4 -0
  468. package/src/functional/ternary-result.test.mts +91 -0
  469. package/src/globals.d.mts +10 -0
  470. package/src/guard/has-key.test.mts +9 -0
  471. package/src/guard/is-non-empty-string.test.mts +20 -0
  472. package/src/guard/is-non-null-object.test.mts +19 -0
  473. package/src/guard/is-primitive.test.mts +23 -0
  474. package/src/guard/is-record.mts +34 -0
  475. package/src/guard/is-record.test.mts +21 -0
  476. package/src/guard/is-type.mts +3 -0
  477. package/src/guard/is-type.test.mts +134 -0
  478. package/src/guard/key-is-in.mts +1 -0
  479. package/src/iterator/range.mts +9 -0
  480. package/src/json/json.mts +29 -0
  481. package/src/json/json.test.mts +87 -0
  482. package/src/number/branded-types/finite-number.test.mts +38 -0
  483. package/src/number/branded-types/int.mts +14 -0
  484. package/src/number/branded-types/int.test.mts +42 -0
  485. package/src/number/branded-types/int16.test.mts +47 -0
  486. package/src/number/branded-types/int32.test.mts +47 -0
  487. package/src/number/branded-types/non-negative-finite-number.test.mts +40 -0
  488. package/src/number/branded-types/non-negative-int16.test.mts +43 -0
  489. package/src/number/branded-types/non-negative-int32.test.mts +43 -0
  490. package/src/number/branded-types/non-zero-finite-number.test.mts +51 -0
  491. package/src/number/branded-types/non-zero-int.test.mts +53 -0
  492. package/src/number/branded-types/non-zero-int16.test.mts +44 -0
  493. package/src/number/branded-types/non-zero-int32.test.mts +44 -0
  494. package/src/number/branded-types/non-zero-safe-int.mts +2 -2
  495. package/src/number/branded-types/non-zero-safe-int.test.mts +62 -0
  496. package/src/number/branded-types/non-zero-uint16.test.mts +37 -0
  497. package/src/number/branded-types/non-zero-uint32.test.mts +37 -0
  498. package/src/number/branded-types/positive-finite-number.test.mts +45 -0
  499. package/src/number/branded-types/positive-int.mts +14 -0
  500. package/src/number/branded-types/positive-int.test.mts +47 -0
  501. package/src/number/branded-types/positive-int16.test.mts +35 -0
  502. package/src/number/branded-types/positive-int32.test.mts +35 -0
  503. package/src/number/branded-types/positive-safe-int.mts +22 -1
  504. package/src/number/branded-types/positive-safe-int.test.mts +49 -0
  505. package/src/number/branded-types/positive-uint16.test.mts +37 -0
  506. package/src/number/branded-types/positive-uint32.test.mts +37 -0
  507. package/src/number/branded-types/safe-int.mts +23 -2
  508. package/src/number/branded-types/safe-int.test.mts +52 -0
  509. package/src/number/branded-types/safe-uint.mts +1 -1
  510. package/src/number/branded-types/safe-uint.test.mts +48 -0
  511. package/src/number/branded-types/uint.mts +12 -0
  512. package/src/number/branded-types/uint.test.mts +43 -0
  513. package/src/number/branded-types/uint16.test.mts +41 -0
  514. package/src/number/branded-types/uint32.test.mts +41 -0
  515. package/src/number/enum/int8.test.mts +6 -0
  516. package/src/number/enum/uint8.test.mts +6 -0
  517. package/src/number/num.mts +12 -1
  518. package/src/number/num.test.mts +62 -0
  519. package/src/number/refined-number-utils.mts +25 -0
  520. package/src/object/object.mts +15 -0
  521. package/src/object/object.test.mts +10 -0
  522. package/src/others/cast-mutable.test.mts +7 -0
  523. package/src/others/cast-readonly.test.mts +17 -0
  524. package/src/others/if-then.test.mts +16 -0
  525. package/src/others/map-nullable.mts +3 -0
  526. package/src/others/map-nullable.test.mts +27 -0
  527. package/src/others/memoize-function.test.mts +41 -0
  528. package/src/others/tuple.mts +11 -0
  529. package/src/others/unknown-to-string.mts +4 -1
  530. package/src/others/unknown-to-string.test.mts +10 -0
  531. package/src/promise/promise.mts +4 -0
  532. package/src/promise/promise.test.mts +1 -0
@@ -10,15 +10,21 @@ describe('NonNegativeFiniteNumber test', () => {
10
10
  describe(asNonNegativeFiniteNumber, () => {
11
11
  test('accepts valid non-negative finite numbers', () => {
12
12
  expect(() => asNonNegativeFiniteNumber(0)).not.toThrow();
13
+
13
14
  expect(() => asNonNegativeFiniteNumber(1)).not.toThrow();
15
+
14
16
  expect(() => asNonNegativeFiniteNumber(3.14)).not.toThrow();
17
+
15
18
  expect(() => asNonNegativeFiniteNumber(0.5)).not.toThrow();
19
+
16
20
  expect(() => asNonNegativeFiniteNumber(Number.MAX_VALUE)).not.toThrow();
17
21
  });
18
22
 
19
23
  test('rejects negative numbers', () => {
20
24
  expect(() => asNonNegativeFiniteNumber(-1)).toThrow(TypeError);
25
+
21
26
  expect(() => asNonNegativeFiniteNumber(-0.1)).toThrow(TypeError);
27
+
22
28
  expect(() => asNonNegativeFiniteNumber(-Number.MAX_VALUE)).toThrow(
23
29
  TypeError,
24
30
  );
@@ -26,9 +32,11 @@ describe('NonNegativeFiniteNumber test', () => {
26
32
 
27
33
  test('rejects non-finite numbers', () => {
28
34
  expect(() => asNonNegativeFiniteNumber(Number.NaN)).toThrow(TypeError);
35
+
29
36
  expect(() => asNonNegativeFiniteNumber(Number.POSITIVE_INFINITY)).toThrow(
30
37
  TypeError,
31
38
  );
39
+
32
40
  expect(() => asNonNegativeFiniteNumber(Number.NEGATIVE_INFINITY)).toThrow(
33
41
  TypeError,
34
42
  );
@@ -36,7 +44,9 @@ describe('NonNegativeFiniteNumber test', () => {
36
44
 
37
45
  test('returns the same value for valid inputs', () => {
38
46
  expect(asNonNegativeFiniteNumber(5.5)).toBe(5.5);
47
+
39
48
  expect(asNonNegativeFiniteNumber(0)).toBe(0);
49
+
40
50
  expect(asNonNegativeFiniteNumber(10)).toBe(10);
41
51
  });
42
52
 
@@ -58,21 +68,29 @@ describe('NonNegativeFiniteNumber test', () => {
58
68
  describe(isNonNegativeFiniteNumber, () => {
59
69
  test('correctly identifies non-negative finite numbers', () => {
60
70
  expect(isNonNegativeFiniteNumber(0)).toBe(true);
71
+
61
72
  expect(isNonNegativeFiniteNumber(1)).toBe(true);
73
+
62
74
  expect(isNonNegativeFiniteNumber(3.14)).toBe(true);
75
+
63
76
  expect(isNonNegativeFiniteNumber(0.5)).toBe(true);
77
+
64
78
  expect(isNonNegativeFiniteNumber(Number.MAX_VALUE)).toBe(true);
65
79
  });
66
80
 
67
81
  test('correctly identifies negative numbers', () => {
68
82
  expect(isNonNegativeFiniteNumber(-1)).toBe(false);
83
+
69
84
  expect(isNonNegativeFiniteNumber(-0.1)).toBe(false);
85
+
70
86
  expect(isNonNegativeFiniteNumber(-Number.MAX_VALUE)).toBe(false);
71
87
  });
72
88
 
73
89
  test('correctly identifies non-finite numbers', () => {
74
90
  expect(isNonNegativeFiniteNumber(Number.NaN)).toBe(false);
91
+
75
92
  expect(isNonNegativeFiniteNumber(Number.POSITIVE_INFINITY)).toBe(false);
93
+
76
94
  expect(isNonNegativeFiniteNumber(Number.NEGATIVE_INFINITY)).toBe(false);
77
95
  });
78
96
  });
@@ -80,9 +98,11 @@ describe('NonNegativeFiniteNumber test', () => {
80
98
  describe('NonNegativeFiniteNumber.is', () => {
81
99
  test('same as isNonNegativeFiniteNumber function', () => {
82
100
  expect(NonNegativeFiniteNumber.is(5)).toBe(isNonNegativeFiniteNumber(5));
101
+
83
102
  expect(NonNegativeFiniteNumber.is(-1)).toBe(
84
103
  isNonNegativeFiniteNumber(-1),
85
104
  );
105
+
86
106
  expect(NonNegativeFiniteNumber.is(0)).toBe(isNonNegativeFiniteNumber(0));
87
107
  });
88
108
  });
@@ -95,37 +115,50 @@ describe('NonNegativeFiniteNumber test', () => {
95
115
 
96
116
  describe('mathematical operations', () => {
97
117
  const a = asNonNegativeFiniteNumber(5.5);
118
+
98
119
  const b = asNonNegativeFiniteNumber(2.5);
120
+
99
121
  const c = asNonNegativeFiniteNumber(0);
100
122
 
101
123
  test('min and max', () => {
102
124
  expect(NonNegativeFiniteNumber.min(a, b)).toBe(2.5);
125
+
103
126
  expect(NonNegativeFiniteNumber.max(a, b)).toBe(5.5);
127
+
104
128
  expect(NonNegativeFiniteNumber.min(a, c)).toBe(0);
129
+
105
130
  expect(NonNegativeFiniteNumber.max(a, c)).toBe(5.5);
106
131
  });
107
132
 
108
133
  test('floor, ceil, round', () => {
109
134
  expect(NonNegativeFiniteNumber.floor(a)).toBe(5);
135
+
110
136
  expect(NonNegativeFiniteNumber.ceil(a)).toBe(6);
137
+
111
138
  expect(NonNegativeFiniteNumber.round(a)).toBe(6);
139
+
112
140
  expect(NonNegativeFiniteNumber.floor(b)).toBe(2);
141
+
113
142
  expect(NonNegativeFiniteNumber.ceil(b)).toBe(3);
143
+
114
144
  expect(NonNegativeFiniteNumber.round(b)).toBe(3);
115
145
  });
116
146
 
117
147
  test('add (never goes below 0)', () => {
118
148
  expect(NonNegativeFiniteNumber.add(a, b)).toBe(8);
149
+
119
150
  expect(NonNegativeFiniteNumber.add(a, c)).toBe(5.5);
120
151
  });
121
152
 
122
153
  test('sub (never goes below 0)', () => {
123
154
  expect(NonNegativeFiniteNumber.sub(a, b)).toBe(3);
155
+
124
156
  expect(NonNegativeFiniteNumber.sub(b, a)).toBe(0); // clamped to 0
125
157
  });
126
158
 
127
159
  test('mul (never goes below 0)', () => {
128
160
  expect(NonNegativeFiniteNumber.mul(a, b)).toBe(13.75);
161
+
129
162
  expect(NonNegativeFiniteNumber.mul(a, c)).toBe(0);
130
163
  });
131
164
 
@@ -142,6 +175,7 @@ describe('NonNegativeFiniteNumber test', () => {
142
175
  asNonNegativeFiniteNumber(3),
143
176
  ),
144
177
  ).toBe(8);
178
+
145
179
  expect(
146
180
  NonNegativeFiniteNumber.pow(
147
181
  asNonNegativeFiniteNumber(3),
@@ -154,26 +188,32 @@ describe('NonNegativeFiniteNumber test', () => {
154
188
  describe('random', () => {
155
189
  test('generates non-negative numbers within specified range', () => {
156
190
  const min = asNonNegativeFiniteNumber(1.5);
191
+
157
192
  const max = asNonNegativeFiniteNumber(10.3);
158
193
 
159
194
  for (const _ of range(10)) {
160
195
  const result = NonNegativeFiniteNumber.random(min, max);
161
196
 
162
197
  expect(result).toBeGreaterThanOrEqual(min);
198
+
163
199
  expect(result).toBeLessThanOrEqual(max);
200
+
164
201
  expect(NonNegativeFiniteNumber.is(result)).toBe(true);
202
+
165
203
  expect(result).toBeGreaterThanOrEqual(0);
166
204
  }
167
205
  });
168
206
 
169
207
  test('generates numbers starting from 0', () => {
170
208
  const min = asNonNegativeFiniteNumber(0);
209
+
171
210
  const max = asNonNegativeFiniteNumber(5);
172
211
 
173
212
  for (const _ of range(10)) {
174
213
  const result = NonNegativeFiniteNumber.random(min, max);
175
214
 
176
215
  expect(result).toBeGreaterThanOrEqual(0);
216
+
177
217
  expect(result).toBeLessThanOrEqual(5);
178
218
  }
179
219
  });
@@ -11,37 +11,49 @@ describe('NonNegativeInt16 test', () => {
11
11
  describe(asNonNegativeInt16, () => {
12
12
  test('accepts valid non-negative int16 values', () => {
13
13
  expect(() => asNonNegativeInt16(0)).not.toThrow();
14
+
14
15
  expect(() => asNonNegativeInt16(1)).not.toThrow();
16
+
15
17
  expect(() => asNonNegativeInt16(1000)).not.toThrow();
18
+
16
19
  expect(() => asNonNegativeInt16(32_767)).not.toThrow(); // 2^15 - 1
17
20
  });
18
21
 
19
22
  test('rejects negative integers', () => {
20
23
  expect(() => asNonNegativeInt16(-1)).toThrow(TypeError);
24
+
21
25
  expect(() => asNonNegativeInt16(-42)).toThrow(TypeError);
26
+
22
27
  expect(() => asNonNegativeInt16(-32_768)).toThrow(TypeError);
23
28
  });
24
29
 
25
30
  test('rejects values outside int16 range', () => {
26
31
  expect(() => asNonNegativeInt16(32_768)).toThrow(TypeError); // 2^15
32
+
27
33
  expect(() => asNonNegativeInt16(65_536)).toThrow(TypeError);
28
34
  });
29
35
 
30
36
  test('rejects non-integers', () => {
31
37
  expect(() => asNonNegativeInt16(Number.NaN)).toThrow(TypeError);
38
+
32
39
  expect(() => asNonNegativeInt16(Number.POSITIVE_INFINITY)).toThrow(
33
40
  TypeError,
34
41
  );
42
+
35
43
  expect(() => asNonNegativeInt16(Number.NEGATIVE_INFINITY)).toThrow(
36
44
  TypeError,
37
45
  );
46
+
38
47
  expect(() => asNonNegativeInt16(1.2)).toThrow(TypeError);
48
+
39
49
  expect(() => asNonNegativeInt16(-3.4)).toThrow(TypeError);
40
50
  });
41
51
 
42
52
  test('returns the same value for valid inputs', () => {
43
53
  expect(asNonNegativeInt16(0)).toBe(0);
54
+
44
55
  expect(asNonNegativeInt16(5)).toBe(5);
56
+
45
57
  expect(asNonNegativeInt16(32_767)).toBe(32_767);
46
58
  });
47
59
 
@@ -68,27 +80,37 @@ describe('NonNegativeInt16 test', () => {
68
80
  describe(isNonNegativeInt16, () => {
69
81
  test('correctly identifies non-negative int16 values', () => {
70
82
  expect(isNonNegativeInt16(0)).toBe(true);
83
+
71
84
  expect(isNonNegativeInt16(1)).toBe(true);
85
+
72
86
  expect(isNonNegativeInt16(1000)).toBe(true);
87
+
73
88
  expect(isNonNegativeInt16(32_767)).toBe(true);
74
89
  });
75
90
 
76
91
  test('correctly identifies negative integers', () => {
77
92
  expect(isNonNegativeInt16(-1)).toBe(false);
93
+
78
94
  expect(isNonNegativeInt16(-42)).toBe(false);
95
+
79
96
  expect(isNonNegativeInt16(-32_768)).toBe(false);
80
97
  });
81
98
 
82
99
  test('correctly identifies values outside int16 range', () => {
83
100
  expect(isNonNegativeInt16(32_768)).toBe(false);
101
+
84
102
  expect(isNonNegativeInt16(65_536)).toBe(false);
85
103
  });
86
104
 
87
105
  test('correctly identifies non-integers', () => {
88
106
  expect(isNonNegativeInt16(Number.NaN)).toBe(false);
107
+
89
108
  expect(isNonNegativeInt16(Number.POSITIVE_INFINITY)).toBe(false);
109
+
90
110
  expect(isNonNegativeInt16(Number.NEGATIVE_INFINITY)).toBe(false);
111
+
91
112
  expect(isNonNegativeInt16(1.2)).toBe(false);
113
+
92
114
  expect(isNonNegativeInt16(-3.4)).toBe(false);
93
115
  });
94
116
  });
@@ -96,7 +118,9 @@ describe('NonNegativeInt16 test', () => {
96
118
  describe('NonNegativeInt16.is', () => {
97
119
  test('same as isNonNegativeInt16 function', () => {
98
120
  expect(NonNegativeInt16.is(5)).toBe(isNonNegativeInt16(5));
121
+
99
122
  expect(NonNegativeInt16.is(0)).toBe(isNonNegativeInt16(0));
123
+
100
124
  expect(NonNegativeInt16.is(-1)).toBe(isNonNegativeInt16(-1));
101
125
  });
102
126
  });
@@ -104,19 +128,25 @@ describe('NonNegativeInt16 test', () => {
104
128
  describe('constants', () => {
105
129
  test('MIN_VALUE and MAX_VALUE', () => {
106
130
  expect(NonNegativeInt16.MIN_VALUE).toBe(0);
131
+
107
132
  expect(NonNegativeInt16.MAX_VALUE).toBe(32_767);
108
133
  });
109
134
  });
110
135
 
111
136
  describe('mathematical operations', () => {
112
137
  const a = asNonNegativeInt16(100);
138
+
113
139
  const b = asNonNegativeInt16(50);
140
+
114
141
  const c = asNonNegativeInt16(0);
115
142
 
116
143
  test('min and max', () => {
117
144
  expect(NonNegativeInt16.min(a, b)).toBe(50);
145
+
118
146
  expect(NonNegativeInt16.max(a, b)).toBe(100);
147
+
119
148
  expect(NonNegativeInt16.min(a, c)).toBe(0);
149
+
120
150
  expect(NonNegativeInt16.max(a, c)).toBe(100);
121
151
  });
122
152
 
@@ -127,12 +157,15 @@ describe('NonNegativeInt16 test', () => {
127
157
  );
128
158
 
129
159
  expect(result).toBe(32_767); // clamped to max
160
+
130
161
  expect(NonNegativeInt16.add(a, b)).toBe(150);
131
162
  });
132
163
 
133
164
  test('sub (never goes below 0)', () => {
134
165
  expect(NonNegativeInt16.sub(a, b)).toBe(50);
166
+
135
167
  expect(NonNegativeInt16.sub(b, a)).toBe(0); // clamped to 0
168
+
136
169
  expect(NonNegativeInt16.sub(c, a)).toBe(0); // clamped to 0
137
170
  });
138
171
 
@@ -143,6 +176,7 @@ describe('NonNegativeInt16 test', () => {
143
176
  );
144
177
 
145
178
  expect(result).toBe(32_767); // clamped to max
179
+
146
180
  expect(
147
181
  NonNegativeInt16.mul(asNonNegativeInt16(10), asNonNegativeInt16(5)),
148
182
  ).toBe(50);
@@ -150,9 +184,11 @@ describe('NonNegativeInt16 test', () => {
150
184
 
151
185
  test('div (floor division, never goes below 0)', () => {
152
186
  expect(NonNegativeInt16.div(a, asPositiveInt16(50))).toBe(2);
187
+
153
188
  expect(
154
189
  NonNegativeInt16.div(asNonNegativeInt16(7), asPositiveInt16(3)),
155
190
  ).toBe(2);
191
+
156
192
  expect(
157
193
  NonNegativeInt16.div(asNonNegativeInt16(50), asPositiveInt16(100)),
158
194
  ).toBe(0); // floor(50/100) = 0
@@ -165,6 +201,7 @@ describe('NonNegativeInt16 test', () => {
165
201
  );
166
202
 
167
203
  expect(result).toBe(32_767); // clamped to max
204
+
168
205
  expect(
169
206
  NonNegativeInt16.pow(asNonNegativeInt16(2), asNonNegativeInt16(3)),
170
207
  ).toBe(8);
@@ -174,15 +211,20 @@ describe('NonNegativeInt16 test', () => {
174
211
  describe('random', () => {
175
212
  test('generates non-negative int16 values within specified range', () => {
176
213
  const min = 0;
214
+
177
215
  const max = 20;
178
216
 
179
217
  for (const _ of range(10)) {
180
218
  const result = NonNegativeInt16.random(min, max);
181
219
 
182
220
  expect(result).toBeGreaterThanOrEqual(min);
221
+
183
222
  expect(result).toBeLessThanOrEqual(max);
223
+
184
224
  expect(NonNegativeInt16.is(result)).toBe(true);
225
+
185
226
  expect(Number.isInteger(result)).toBe(true);
227
+
186
228
  expect(result).toBeGreaterThanOrEqual(0);
187
229
  }
188
230
  });
@@ -192,6 +234,7 @@ describe('NonNegativeInt16 test', () => {
192
234
  const result = NonNegativeInt16.random(0, 30);
193
235
 
194
236
  expect(result).toBeGreaterThanOrEqual(0);
237
+
195
238
  expect(result).toBeLessThanOrEqual(32_767);
196
239
  }
197
240
  });
@@ -11,37 +11,49 @@ describe('NonNegativeInt32 test', () => {
11
11
  describe(asNonNegativeInt32, () => {
12
12
  test('accepts valid non-negative int32 values', () => {
13
13
  expect(() => asNonNegativeInt32(0)).not.toThrow();
14
+
14
15
  expect(() => asNonNegativeInt32(1)).not.toThrow();
16
+
15
17
  expect(() => asNonNegativeInt32(1000)).not.toThrow();
18
+
16
19
  expect(() => asNonNegativeInt32(2_147_483_647)).not.toThrow(); // 2^31 - 1
17
20
  });
18
21
 
19
22
  test('rejects negative integers', () => {
20
23
  expect(() => asNonNegativeInt32(-1)).toThrow(TypeError);
24
+
21
25
  expect(() => asNonNegativeInt32(-42)).toThrow(TypeError);
26
+
22
27
  expect(() => asNonNegativeInt32(-2_147_483_648)).toThrow(TypeError);
23
28
  });
24
29
 
25
30
  test('rejects values outside int32 range', () => {
26
31
  expect(() => asNonNegativeInt32(2_147_483_648)).toThrow(TypeError); // 2^31
32
+
27
33
  expect(() => asNonNegativeInt32(4_294_967_296)).toThrow(TypeError);
28
34
  });
29
35
 
30
36
  test('rejects non-integers', () => {
31
37
  expect(() => asNonNegativeInt32(Number.NaN)).toThrow(TypeError);
38
+
32
39
  expect(() => asNonNegativeInt32(Number.POSITIVE_INFINITY)).toThrow(
33
40
  TypeError,
34
41
  );
42
+
35
43
  expect(() => asNonNegativeInt32(Number.NEGATIVE_INFINITY)).toThrow(
36
44
  TypeError,
37
45
  );
46
+
38
47
  expect(() => asNonNegativeInt32(1.2)).toThrow(TypeError);
48
+
39
49
  expect(() => asNonNegativeInt32(-3.4)).toThrow(TypeError);
40
50
  });
41
51
 
42
52
  test('returns the same value for valid inputs', () => {
43
53
  expect(asNonNegativeInt32(0)).toBe(0);
54
+
44
55
  expect(asNonNegativeInt32(5)).toBe(5);
56
+
45
57
  expect(asNonNegativeInt32(2_147_483_647)).toBe(2_147_483_647);
46
58
  });
47
59
 
@@ -68,27 +80,37 @@ describe('NonNegativeInt32 test', () => {
68
80
  describe(isNonNegativeInt32, () => {
69
81
  test('correctly identifies non-negative int32 values', () => {
70
82
  expect(isNonNegativeInt32(0)).toBe(true);
83
+
71
84
  expect(isNonNegativeInt32(1)).toBe(true);
85
+
72
86
  expect(isNonNegativeInt32(1000)).toBe(true);
87
+
73
88
  expect(isNonNegativeInt32(2_147_483_647)).toBe(true);
74
89
  });
75
90
 
76
91
  test('correctly identifies negative integers', () => {
77
92
  expect(isNonNegativeInt32(-1)).toBe(false);
93
+
78
94
  expect(isNonNegativeInt32(-42)).toBe(false);
95
+
79
96
  expect(isNonNegativeInt32(-2_147_483_648)).toBe(false);
80
97
  });
81
98
 
82
99
  test('correctly identifies values outside int32 range', () => {
83
100
  expect(isNonNegativeInt32(2_147_483_648)).toBe(false);
101
+
84
102
  expect(isNonNegativeInt32(4_294_967_296)).toBe(false);
85
103
  });
86
104
 
87
105
  test('correctly identifies non-integers', () => {
88
106
  expect(isNonNegativeInt32(Number.NaN)).toBe(false);
107
+
89
108
  expect(isNonNegativeInt32(Number.POSITIVE_INFINITY)).toBe(false);
109
+
90
110
  expect(isNonNegativeInt32(Number.NEGATIVE_INFINITY)).toBe(false);
111
+
91
112
  expect(isNonNegativeInt32(1.2)).toBe(false);
113
+
92
114
  expect(isNonNegativeInt32(-3.4)).toBe(false);
93
115
  });
94
116
  });
@@ -96,7 +118,9 @@ describe('NonNegativeInt32 test', () => {
96
118
  describe('NonNegativeInt32.is', () => {
97
119
  test('same as isNonNegativeInt32 function', () => {
98
120
  expect(NonNegativeInt32.is(5)).toBe(isNonNegativeInt32(5));
121
+
99
122
  expect(NonNegativeInt32.is(0)).toBe(isNonNegativeInt32(0));
123
+
100
124
  expect(NonNegativeInt32.is(-1)).toBe(isNonNegativeInt32(-1));
101
125
  });
102
126
  });
@@ -104,19 +128,25 @@ describe('NonNegativeInt32 test', () => {
104
128
  describe('constants', () => {
105
129
  test('MIN_VALUE and MAX_VALUE', () => {
106
130
  expect(NonNegativeInt32.MIN_VALUE).toBe(0);
131
+
107
132
  expect(NonNegativeInt32.MAX_VALUE).toBe(2_147_483_647);
108
133
  });
109
134
  });
110
135
 
111
136
  describe('mathematical operations', () => {
112
137
  const a = asNonNegativeInt32(1_000_000);
138
+
113
139
  const b = asNonNegativeInt32(500_000);
140
+
114
141
  const c = asNonNegativeInt32(0);
115
142
 
116
143
  test('min and max', () => {
117
144
  expect(NonNegativeInt32.min(a, b)).toBe(500_000);
145
+
118
146
  expect(NonNegativeInt32.max(a, b)).toBe(1_000_000);
147
+
119
148
  expect(NonNegativeInt32.min(a, c)).toBe(0);
149
+
120
150
  expect(NonNegativeInt32.max(a, c)).toBe(1_000_000);
121
151
  });
122
152
 
@@ -127,12 +157,15 @@ describe('NonNegativeInt32 test', () => {
127
157
  );
128
158
 
129
159
  expect(result).toBe(2_147_483_647); // clamped to max
160
+
130
161
  expect(NonNegativeInt32.add(a, b)).toBe(1_500_000);
131
162
  });
132
163
 
133
164
  test('sub (never goes below 0)', () => {
134
165
  expect(NonNegativeInt32.sub(a, b)).toBe(500_000);
166
+
135
167
  expect(NonNegativeInt32.sub(b, a)).toBe(0); // clamped to 0
168
+
136
169
  expect(NonNegativeInt32.sub(c, a)).toBe(0); // clamped to 0
137
170
  });
138
171
 
@@ -143,6 +176,7 @@ describe('NonNegativeInt32 test', () => {
143
176
  );
144
177
 
145
178
  expect(result).toBe(2_147_483_647); // clamped to max
179
+
146
180
  expect(
147
181
  NonNegativeInt32.mul(asNonNegativeInt32(1000), asNonNegativeInt32(5)),
148
182
  ).toBe(5000);
@@ -150,9 +184,11 @@ describe('NonNegativeInt32 test', () => {
150
184
 
151
185
  test('div (floor division, never goes below 0)', () => {
152
186
  expect(NonNegativeInt32.div(a, asPositiveInt32(500_000))).toBe(2);
187
+
153
188
  expect(
154
189
  NonNegativeInt32.div(asNonNegativeInt32(7), asPositiveInt32(3)),
155
190
  ).toBe(2);
191
+
156
192
  expect(
157
193
  NonNegativeInt32.div(
158
194
  asNonNegativeInt32(500_000),
@@ -168,6 +204,7 @@ describe('NonNegativeInt32 test', () => {
168
204
  );
169
205
 
170
206
  expect(result).toBe(2_147_483_647); // clamped to max
207
+
171
208
  expect(
172
209
  NonNegativeInt32.pow(asNonNegativeInt32(2), asNonNegativeInt32(3)),
173
210
  ).toBe(8);
@@ -177,15 +214,20 @@ describe('NonNegativeInt32 test', () => {
177
214
  describe('random', () => {
178
215
  test('generates non-negative int32 values within specified range', () => {
179
216
  const min = 0;
217
+
180
218
  const max = 20;
181
219
 
182
220
  for (const _ of range(10)) {
183
221
  const result = NonNegativeInt32.random(min, max);
184
222
 
185
223
  expect(result).toBeGreaterThanOrEqual(min);
224
+
186
225
  expect(result).toBeLessThanOrEqual(max);
226
+
187
227
  expect(NonNegativeInt32.is(result)).toBe(true);
228
+
188
229
  expect(Number.isInteger(result)).toBe(true);
230
+
189
231
  expect(result).toBeGreaterThanOrEqual(0);
190
232
  }
191
233
  });
@@ -195,6 +237,7 @@ describe('NonNegativeInt32 test', () => {
195
237
  const result = NonNegativeInt32.random(0, 30);
196
238
 
197
239
  expect(result).toBeGreaterThanOrEqual(0);
240
+
198
241
  expect(result).toBeLessThanOrEqual(2_147_483_647);
199
242
  }
200
243
  });