ts-data-forge 3.3.0 → 4.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.
- package/README.md +37 -13
- package/dist/array/impl/array-utils-creation.d.mts +116 -0
- package/dist/array/impl/array-utils-creation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-creation.mjs +110 -0
- package/dist/array/impl/array-utils-creation.mjs.map +1 -0
- package/dist/array/impl/array-utils-element-access.d.mts +60 -0
- package/dist/array/impl/array-utils-element-access.d.mts.map +1 -0
- package/dist/array/impl/array-utils-element-access.mjs +66 -0
- package/dist/array/impl/array-utils-element-access.mjs.map +1 -0
- package/dist/array/impl/array-utils-iterators.d.mts +59 -0
- package/dist/array/impl/array-utils-iterators.d.mts.map +1 -0
- package/dist/array/impl/array-utils-iterators.mjs +104 -0
- package/dist/array/impl/array-utils-iterators.mjs.map +1 -0
- package/dist/array/impl/array-utils-modification.d.mts +154 -0
- package/dist/array/impl/array-utils-modification.d.mts.map +1 -0
- package/dist/array/impl/array-utils-modification.mjs +139 -0
- package/dist/array/impl/array-utils-modification.mjs.map +1 -0
- package/dist/array/impl/array-utils-reducing-value.d.mts +213 -0
- package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -0
- package/dist/array/impl/array-utils-reducing-value.mjs +162 -0
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -0
- package/dist/array/impl/array-utils-search.d.mts +178 -0
- package/dist/array/impl/array-utils-search.d.mts.map +1 -0
- package/dist/array/impl/array-utils-search.mjs +153 -0
- package/dist/array/impl/array-utils-search.mjs.map +1 -0
- package/dist/array/impl/array-utils-set-op.d.mts +100 -0
- package/dist/array/impl/array-utils-set-op.d.mts.map +1 -0
- package/dist/array/impl/array-utils-set-op.mjs +137 -0
- package/dist/array/impl/array-utils-set-op.mjs.map +1 -0
- package/dist/array/impl/array-utils-size.d.mts +24 -0
- package/dist/array/impl/array-utils-size.d.mts.map +1 -0
- package/dist/array/impl/array-utils-size.mjs +28 -0
- package/dist/array/impl/array-utils-size.mjs.map +1 -0
- package/dist/array/impl/array-utils-slice-clamped.d.mts +18 -0
- package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -0
- package/dist/array/impl/array-utils-slice-clamped.mjs +49 -0
- package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -0
- package/dist/array/impl/array-utils-slicing.d.mts +120 -0
- package/dist/array/impl/array-utils-slicing.d.mts.map +1 -0
- package/dist/array/impl/array-utils-slicing.mjs +140 -0
- package/dist/array/impl/array-utils-slicing.mjs.map +1 -0
- package/dist/array/impl/array-utils-transformation.d.mts +348 -0
- package/dist/array/impl/array-utils-transformation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-transformation.mjs +329 -0
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -0
- package/dist/array/impl/array-utils-validation.d.mts +149 -0
- package/dist/array/impl/array-utils-validation.d.mts.map +1 -0
- package/dist/array/impl/array-utils-validation.mjs +166 -0
- package/dist/array/impl/array-utils-validation.mjs.map +1 -0
- package/dist/array/impl/index.d.mts +13 -0
- package/dist/array/impl/index.d.mts.map +1 -0
- package/dist/array/impl/index.mjs +13 -0
- package/dist/array/impl/index.mjs.map +1 -0
- package/dist/array/index.d.mts +1 -1
- package/dist/array/index.d.mts.map +1 -1
- package/dist/array/index.mjs +2 -1
- package/dist/array/index.mjs.map +1 -1
- package/dist/collections/imap-mapped.d.mts +83 -254
- package/dist/collections/imap-mapped.d.mts.map +1 -1
- package/dist/collections/imap-mapped.mjs +40 -170
- package/dist/collections/imap-mapped.mjs.map +1 -1
- package/dist/collections/imap.d.mts +436 -164
- package/dist/collections/imap.d.mts.map +1 -1
- package/dist/collections/imap.mjs +83 -101
- package/dist/collections/imap.mjs.map +1 -1
- package/dist/collections/iset-mapped.d.mts +828 -345
- package/dist/collections/iset-mapped.d.mts.map +1 -1
- package/dist/collections/iset-mapped.mjs +200 -242
- package/dist/collections/iset-mapped.mjs.map +1 -1
- package/dist/collections/iset.d.mts +397 -205
- package/dist/collections/iset.d.mts.map +1 -1
- package/dist/collections/iset.mjs +102 -184
- package/dist/collections/iset.mjs.map +1 -1
- package/dist/collections/queue.d.mts +155 -136
- package/dist/collections/queue.d.mts.map +1 -1
- package/dist/collections/queue.mjs +59 -160
- package/dist/collections/queue.mjs.map +1 -1
- package/dist/collections/stack.d.mts +154 -155
- package/dist/collections/stack.d.mts.map +1 -1
- package/dist/collections/stack.mjs +58 -207
- package/dist/collections/stack.mjs.map +1 -1
- package/dist/entry-point.d.mts +2 -0
- package/dist/entry-point.d.mts.map +1 -1
- package/dist/entry-point.mjs +8 -5
- package/dist/entry-point.mjs.map +1 -1
- package/dist/expect-type.d.mts +43 -172
- package/dist/expect-type.d.mts.map +1 -1
- package/dist/expect-type.mjs +43 -172
- package/dist/expect-type.mjs.map +1 -1
- package/dist/functional/index.d.mts +2 -2
- package/dist/functional/index.d.mts.map +1 -1
- package/dist/functional/index.mjs +4 -2
- package/dist/functional/index.mjs.map +1 -1
- package/dist/functional/match.d.mts +35 -140
- package/dist/functional/match.d.mts.map +1 -1
- package/dist/functional/match.mjs.map +1 -1
- package/dist/functional/optional/impl/index.d.mts +18 -0
- package/dist/functional/optional/impl/index.d.mts.map +1 -0
- package/dist/functional/optional/impl/index.mjs +17 -0
- package/dist/functional/optional/impl/index.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-expect-to-be.d.mts +29 -0
- package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-expect-to-be.mjs +25 -0
- package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-filter.d.mts +29 -0
- package/dist/functional/optional/impl/optional-filter.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-filter.mjs +28 -0
- package/dist/functional/optional/impl/optional-filter.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-flat-map.d.mts +33 -0
- package/dist/functional/optional/impl/optional-flat-map.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-flat-map.mjs +21 -0
- package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-from-nullable.d.mts +24 -0
- package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-from-nullable.mjs +29 -0
- package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-is-none.d.mts +22 -0
- package/dist/functional/optional/impl/optional-is-none.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-is-none.mjs +25 -0
- package/dist/functional/optional/impl/optional-is-none.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-is-optional.d.mts +18 -0
- package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-is-optional.mjs +27 -0
- package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-is-some.d.mts +22 -0
- package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-is-some.mjs +25 -0
- package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-map.d.mts +31 -0
- package/dist/functional/optional/impl/optional-map.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-map.mjs +25 -0
- package/dist/functional/optional/impl/optional-map.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-none.d.mts +16 -0
- package/dist/functional/optional/impl/optional-none.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-none.mjs +20 -0
- package/dist/functional/optional/impl/optional-none.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-or-else.d.mts +35 -0
- package/dist/functional/optional/impl/optional-or-else.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-or-else.mjs +19 -0
- package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-some.d.mts +19 -0
- package/dist/functional/optional/impl/optional-some.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-some.mjs +26 -0
- package/dist/functional/optional/impl/optional-some.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-to-nullable.d.mts +27 -0
- package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-to-nullable.mjs +31 -0
- package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-or.d.mts +33 -0
- package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-or.mjs +19 -0
- package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +29 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.mjs +38 -0
- package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap.d.mts +28 -0
- package/dist/functional/optional/impl/optional-unwrap.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-unwrap.mjs +11 -0
- package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -0
- package/dist/functional/optional/impl/optional-zip.d.mts +31 -0
- package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -0
- package/dist/functional/optional/impl/optional-zip.mjs +39 -0
- package/dist/functional/optional/impl/optional-zip.mjs.map +1 -0
- package/dist/functional/optional/impl/tag.d.mts +5 -0
- package/dist/functional/optional/impl/tag.d.mts.map +1 -0
- package/dist/functional/optional/impl/tag.mjs +7 -0
- package/dist/functional/optional/impl/tag.mjs.map +1 -0
- package/dist/functional/optional/impl/types.d.mts +22 -0
- package/dist/functional/optional/impl/types.d.mts.map +1 -0
- package/dist/functional/optional/impl/types.mjs +2 -0
- package/dist/functional/optional/impl/types.mjs.map +1 -0
- package/dist/functional/optional/index.d.mts +2 -0
- package/dist/functional/optional/index.d.mts.map +1 -0
- package/dist/functional/optional/index.mjs +3 -0
- package/dist/functional/optional/index.mjs.map +1 -0
- package/dist/functional/pipe.d.mts +63 -117
- package/dist/functional/pipe.d.mts.map +1 -1
- package/dist/functional/pipe.mjs +4 -3
- package/dist/functional/pipe.mjs.map +1 -1
- package/dist/functional/result/impl/index.d.mts +24 -0
- package/dist/functional/result/impl/index.d.mts.map +1 -0
- package/dist/functional/result/impl/index.mjs +23 -0
- package/dist/functional/result/impl/index.mjs.map +1 -0
- package/dist/functional/result/impl/result-err.d.mts +25 -0
- package/dist/functional/result/impl/result-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-err.mjs +32 -0
- package/dist/functional/result/impl/result-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-expect-to-be.d.mts +27 -0
- package/dist/functional/result/impl/result-expect-to-be.d.mts.map +1 -0
- package/dist/functional/result/impl/result-expect-to-be.mjs +26 -0
- package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -0
- package/dist/functional/result/impl/result-flat-map.d.mts +39 -0
- package/dist/functional/result/impl/result-flat-map.d.mts.map +1 -0
- package/dist/functional/result/impl/result-flat-map.mjs +24 -0
- package/dist/functional/result/impl/result-flat-map.mjs.map +1 -0
- package/dist/functional/result/impl/result-fold.d.mts +45 -0
- package/dist/functional/result/impl/result-fold.d.mts.map +1 -0
- package/dist/functional/result/impl/result-fold.mjs +26 -0
- package/dist/functional/result/impl/result-fold.mjs.map +1 -0
- package/dist/functional/result/impl/result-from-promise.d.mts +32 -0
- package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -0
- package/dist/functional/result/impl/result-from-promise.mjs +32 -0
- package/dist/functional/result/impl/result-from-promise.mjs.map +1 -0
- package/dist/functional/result/impl/result-from-throwable.d.mts +29 -0
- package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -0
- package/dist/functional/result/impl/result-from-throwable.mjs +46 -0
- package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -0
- package/dist/functional/result/impl/result-is-err.d.mts +20 -0
- package/dist/functional/result/impl/result-is-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-is-err.mjs +23 -0
- package/dist/functional/result/impl/result-is-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-is-ok.d.mts +20 -0
- package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -0
- package/dist/functional/result/impl/result-is-ok.mjs +23 -0
- package/dist/functional/result/impl/result-is-ok.mjs.map +1 -0
- package/dist/functional/result/impl/result-is-result.d.mts +17 -0
- package/dist/functional/result/impl/result-is-result.d.mts.map +1 -0
- package/dist/functional/result/impl/result-is-result.mjs +26 -0
- package/dist/functional/result/impl/result-is-result.mjs.map +1 -0
- package/dist/functional/result/impl/result-map-err.d.mts +33 -0
- package/dist/functional/result/impl/result-map-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-map-err.mjs +25 -0
- package/dist/functional/result/impl/result-map-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-map.d.mts +34 -0
- package/dist/functional/result/impl/result-map.d.mts.map +1 -0
- package/dist/functional/result/impl/result-map.mjs +25 -0
- package/dist/functional/result/impl/result-map.mjs.map +1 -0
- package/dist/functional/result/impl/result-ok.d.mts +25 -0
- package/dist/functional/result/impl/result-ok.d.mts.map +1 -0
- package/dist/functional/result/impl/result-ok.mjs +32 -0
- package/dist/functional/result/impl/result-ok.mjs.map +1 -0
- package/dist/functional/result/impl/result-or-else.d.mts +32 -0
- package/dist/functional/result/impl/result-or-else.d.mts.map +1 -0
- package/dist/functional/result/impl/result-or-else.mjs +20 -0
- package/dist/functional/result/impl/result-or-else.mjs.map +1 -0
- package/dist/functional/result/impl/result-swap.d.mts +20 -0
- package/dist/functional/result/impl/result-swap.d.mts.map +1 -0
- package/dist/functional/result/impl/result-swap.mjs +28 -0
- package/dist/functional/result/impl/result-swap.mjs.map +1 -0
- package/dist/functional/result/impl/result-to-optional.d.mts +28 -0
- package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -0
- package/dist/functional/result/impl/result-to-optional.mjs +34 -0
- package/dist/functional/result/impl/result-to-optional.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-or.d.mts +29 -0
- package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-or.mjs +20 -0
- package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +30 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.mjs +47 -0
- package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err.d.mts +31 -0
- package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-err.mjs +36 -0
- package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +29 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.mjs +20 -0
- package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok.d.mts +23 -0
- package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-ok.mjs +11 -0
- package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -0
- package/dist/functional/result/impl/result-unwrap-throw.d.mts +30 -0
- package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -0
- package/dist/functional/result/impl/result-unwrap-throw.mjs +41 -0
- package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -0
- package/dist/functional/result/impl/result-zip.d.mts +29 -0
- package/dist/functional/result/impl/result-zip.d.mts.map +1 -0
- package/dist/functional/result/impl/result-zip.mjs +38 -0
- package/dist/functional/result/impl/result-zip.mjs.map +1 -0
- package/dist/functional/result/impl/tag.d.mts +5 -0
- package/dist/functional/result/impl/tag.d.mts.map +1 -0
- package/dist/functional/result/impl/tag.mjs +7 -0
- package/dist/functional/result/impl/tag.mjs.map +1 -0
- package/dist/functional/result/impl/types.d.mts +29 -0
- package/dist/functional/result/impl/types.d.mts.map +1 -0
- package/dist/functional/result/impl/types.mjs +2 -0
- package/dist/functional/result/impl/types.mjs.map +1 -0
- package/dist/functional/result/index.d.mts +2 -0
- package/dist/functional/result/index.d.mts.map +1 -0
- package/dist/functional/result/index.mjs +3 -0
- package/dist/functional/result/index.mjs.map +1 -0
- package/dist/globals.d.mts +95 -5
- package/dist/guard/has-key.d.mts +23 -74
- package/dist/guard/has-key.d.mts.map +1 -1
- package/dist/guard/has-key.mjs +23 -74
- package/dist/guard/has-key.mjs.map +1 -1
- package/dist/guard/is-non-empty-string.d.mts +20 -87
- package/dist/guard/is-non-empty-string.d.mts.map +1 -1
- package/dist/guard/is-non-empty-string.mjs +20 -87
- package/dist/guard/is-non-empty-string.mjs.map +1 -1
- package/dist/guard/is-non-null-object.d.mts +14 -84
- package/dist/guard/is-non-null-object.d.mts.map +1 -1
- package/dist/guard/is-non-null-object.mjs +14 -84
- package/dist/guard/is-non-null-object.mjs.map +1 -1
- package/dist/guard/is-primitive.d.mts +13 -126
- package/dist/guard/is-primitive.d.mts.map +1 -1
- package/dist/guard/is-primitive.mjs +13 -126
- package/dist/guard/is-primitive.mjs.map +1 -1
- package/dist/guard/is-record.d.mts +21 -132
- package/dist/guard/is-record.d.mts.map +1 -1
- package/dist/guard/is-record.mjs +21 -132
- package/dist/guard/is-record.mjs.map +1 -1
- package/dist/guard/is-type.d.mts +201 -238
- package/dist/guard/is-type.d.mts.map +1 -1
- package/dist/guard/is-type.mjs +201 -238
- package/dist/guard/is-type.mjs.map +1 -1
- package/dist/guard/key-is-in.d.mts +22 -139
- package/dist/guard/key-is-in.d.mts.map +1 -1
- package/dist/guard/key-is-in.mjs +22 -139
- package/dist/guard/key-is-in.mjs.map +1 -1
- package/dist/index.d.mts +0 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +0 -5
- package/dist/index.mjs.map +1 -1
- package/dist/iterator/range.d.mts +29 -62
- package/dist/iterator/range.d.mts.map +1 -1
- package/dist/iterator/range.mjs.map +1 -1
- package/dist/json/json.d.mts +191 -122
- package/dist/json/json.d.mts.map +1 -1
- package/dist/json/json.mjs +246 -144
- package/dist/json/json.mjs.map +1 -1
- package/dist/number/branded-types/finite-number.d.mts +24 -156
- package/dist/number/branded-types/finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/finite-number.mjs +28 -160
- package/dist/number/branded-types/finite-number.mjs.map +1 -1
- package/dist/number/branded-types/int.d.mts +122 -120
- package/dist/number/branded-types/int.d.mts.map +1 -1
- package/dist/number/branded-types/int.mjs +123 -121
- package/dist/number/branded-types/int.mjs.map +1 -1
- package/dist/number/branded-types/int16.d.mts +22 -30
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int16.mjs +23 -31
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.d.mts +22 -31
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/int32.mjs +23 -32
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +28 -36
- package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs +32 -40
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +24 -34
- package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs +25 -35
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +26 -35
- package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs +27 -36
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts +22 -37
- package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs +26 -41
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +15 -30
- package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int.mjs +16 -31
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +27 -35
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +28 -36
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +29 -36
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +30 -37
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +37 -38
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +40 -41
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +24 -35
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +25 -36
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +24 -35
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +25 -36
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +26 -40
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs +30 -44
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +133 -123
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.mjs +134 -124
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +24 -35
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.mjs +25 -36
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +24 -35
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.mjs +25 -36
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +159 -33
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs +161 -35
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +24 -35
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.mjs +25 -36
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +26 -36
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.mjs +27 -37
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +140 -99
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.mjs +143 -102
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +24 -33
- package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
- package/dist/number/branded-types/safe-uint.mjs +26 -35
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.d.mts +121 -30
- package/dist/number/branded-types/uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint.mjs +122 -31
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +26 -34
- package/dist/number/branded-types/uint16.d.mts.map +1 -1
- package/dist/number/branded-types/uint16.mjs +27 -35
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +26 -68
- package/dist/number/branded-types/uint32.d.mts.map +1 -1
- package/dist/number/branded-types/uint32.mjs +27 -69
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.d.mts +37 -101
- package/dist/number/enum/int8.d.mts.map +1 -1
- package/dist/number/enum/int8.mjs +40 -171
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.d.mts +45 -55
- package/dist/number/enum/uint8.d.mts.map +1 -1
- package/dist/number/enum/uint8.mjs +47 -156
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/dist/number/num.d.mts +145 -206
- package/dist/number/num.d.mts.map +1 -1
- package/dist/number/num.mjs +143 -199
- package/dist/number/num.mjs.map +1 -1
- package/dist/number/refined-number-utils.d.mts +97 -21
- package/dist/number/refined-number-utils.d.mts.map +1 -1
- package/dist/number/refined-number-utils.mjs +91 -22
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/dist/object/object.d.mts +126 -208
- package/dist/object/object.d.mts.map +1 -1
- package/dist/object/object.mjs +68 -102
- package/dist/object/object.mjs.map +1 -1
- package/dist/others/cast-mutable.d.mts +12 -88
- package/dist/others/cast-mutable.d.mts.map +1 -1
- package/dist/others/cast-mutable.mjs +13 -89
- package/dist/others/cast-mutable.mjs.map +1 -1
- package/dist/others/cast-readonly.d.mts +12 -168
- package/dist/others/cast-readonly.d.mts.map +1 -1
- package/dist/others/cast-readonly.mjs +13 -169
- package/dist/others/cast-readonly.mjs.map +1 -1
- package/dist/others/if-then.d.mts +6 -83
- package/dist/others/if-then.d.mts.map +1 -1
- package/dist/others/if-then.mjs +6 -83
- package/dist/others/if-then.mjs.map +1 -1
- package/dist/others/map-nullable.d.mts +12 -136
- package/dist/others/map-nullable.d.mts.map +1 -1
- package/dist/others/map-nullable.mjs.map +1 -1
- package/dist/others/memoize-function.d.mts +14 -157
- package/dist/others/memoize-function.d.mts.map +1 -1
- package/dist/others/memoize-function.mjs +14 -157
- package/dist/others/memoize-function.mjs.map +1 -1
- package/dist/others/tuple.d.mts +33 -151
- package/dist/others/tuple.d.mts.map +1 -1
- package/dist/others/tuple.mjs +33 -151
- package/dist/others/tuple.mjs.map +1 -1
- package/dist/others/unknown-to-string.d.mts +11 -125
- package/dist/others/unknown-to-string.d.mts.map +1 -1
- package/dist/others/unknown-to-string.mjs +12 -126
- package/dist/others/unknown-to-string.mjs.map +1 -1
- package/dist/promise/promise.d.mts +33 -21
- package/dist/promise/promise.d.mts.map +1 -1
- package/dist/promise/promise.mjs +36 -24
- package/dist/promise/promise.mjs.map +1 -1
- package/package.json +58 -44
- package/src/array/impl/array-utils-creation.mts +192 -0
- package/src/array/{array-utils-creation.test.mts → impl/array-utils-creation.test.mts} +121 -72
- package/src/array/impl/array-utils-element-access.mts +115 -0
- package/src/array/impl/array-utils-element-access.test.mts +151 -0
- package/src/array/impl/array-utils-iterators.mts +79 -0
- package/src/array/impl/array-utils-iterators.test.mts +98 -0
- package/src/array/impl/array-utils-modification.mts +434 -0
- package/src/array/{array-utils-modification.test.mts → impl/array-utils-modification.test.mts} +41 -28
- package/src/array/{array-utils-overload-type-error.test.mts → impl/array-utils-overload-type-error.test.mts} +33 -33
- package/src/array/impl/array-utils-reducing-value.mts +535 -0
- package/src/array/{array-utils-reducing-value.test.mts → impl/array-utils-reducing-value.test.mts} +53 -58
- package/src/array/impl/array-utils-search.mts +509 -0
- package/src/array/impl/array-utils-search.test.mts +346 -0
- package/src/array/impl/array-utils-set-op.mts +166 -0
- package/src/array/{array-utils-set-op.test.mts → impl/array-utils-set-op.test.mts} +42 -35
- package/src/array/impl/array-utils-size.mts +30 -0
- package/src/array/impl/array-utils-size.test.mts +9 -0
- package/src/array/impl/array-utils-slice-clamped.mts +51 -0
- package/src/array/{array-utils-slice-clamped.test.mts → impl/array-utils-slice-clamped.test.mts} +13 -13
- package/src/array/impl/array-utils-slicing.mts +275 -0
- package/src/array/impl/array-utils-slicing.test.mts +158 -0
- package/src/array/impl/array-utils-transformation.mts +746 -0
- package/src/array/{array-utils-transformation.test.mts → impl/array-utils-transformation.test.mts} +662 -889
- package/src/array/impl/array-utils-validation.mts +241 -0
- package/src/array/{array-utils-validation.test.mts → impl/array-utils-validation.test.mts} +194 -107
- package/src/array/{array.test.mts → impl/array.test.mts} +2 -2
- package/src/array/impl/index.mts +12 -0
- package/src/array/index.mts +1 -1
- package/src/collections/imap-mapped.mts +99 -265
- package/src/collections/imap.mts +477 -174
- package/src/collections/imap.test.mts +12 -19
- package/src/collections/iset-mapped.mts +892 -358
- package/src/collections/iset.mts +429 -213
- package/src/collections/queue.mts +174 -200
- package/src/collections/stack.mts +172 -245
- package/src/collections/stack.test.mts +9 -1
- package/src/entry-point.mts +2 -0
- package/src/expect-type.mts +43 -172
- package/src/functional/index.mts +2 -2
- package/src/functional/match.mts +35 -145
- package/src/functional/optional/impl/index.mts +17 -0
- package/src/functional/optional/impl/optional-expect-to-be.mts +65 -0
- package/src/functional/optional/impl/optional-filter.mts +71 -0
- package/src/functional/optional/impl/optional-flat-map.mts +67 -0
- package/src/functional/optional/impl/optional-from-nullable.mts +28 -0
- package/src/functional/optional/impl/optional-is-none.mts +25 -0
- package/src/functional/optional/impl/optional-is-optional.mts +27 -0
- package/src/functional/optional/impl/optional-is-some.mts +25 -0
- package/src/functional/optional/impl/optional-map.mts +69 -0
- package/src/functional/optional/impl/optional-none.mts +17 -0
- package/src/functional/optional/impl/optional-or-else.mts +73 -0
- package/src/functional/optional/impl/optional-some.mts +23 -0
- package/src/functional/optional/impl/optional-to-nullable.mts +31 -0
- package/src/functional/optional/impl/optional-unwrap-or.mts +64 -0
- package/src/functional/optional/impl/optional-unwrap-throw.mts +39 -0
- package/src/functional/optional/impl/optional-unwrap.mts +41 -0
- package/src/functional/optional/impl/optional-zip.mts +40 -0
- package/src/functional/optional/impl/tag.mts +6 -0
- package/src/functional/optional/impl/types.mts +28 -0
- package/src/functional/optional/index.mts +1 -0
- package/src/functional/optional.test.mts +11 -9
- package/src/functional/pipe.mts +65 -118
- package/src/functional/pipe.test.mts +1 -1
- package/src/functional/result/impl/index.mts +23 -0
- package/src/functional/result/impl/result-err.mts +29 -0
- package/src/functional/result/impl/result-expect-to-be.mts +63 -0
- package/src/functional/result/impl/result-flat-map.mts +79 -0
- package/src/functional/result/impl/result-fold.mts +95 -0
- package/src/functional/result/impl/result-from-promise.mts +39 -0
- package/src/functional/result/impl/result-from-throwable.mts +42 -0
- package/src/functional/result/impl/result-is-err.mts +23 -0
- package/src/functional/result/impl/result-is-ok.mts +23 -0
- package/src/functional/result/impl/result-is-result.mts +23 -0
- package/src/functional/result/impl/result-map-err.mts +72 -0
- package/src/functional/result/impl/result-map.mts +73 -0
- package/src/functional/result/impl/result-ok.mts +29 -0
- package/src/functional/result/impl/result-or-else.mts +63 -0
- package/src/functional/result/impl/result-swap.mts +28 -0
- package/src/functional/result/impl/result-to-optional.mts +34 -0
- package/src/functional/result/impl/result-unwrap-err-or.mts +60 -0
- package/src/functional/result/impl/result-unwrap-err-throw.mts +53 -0
- package/src/functional/result/impl/result-unwrap-err.mts +36 -0
- package/src/functional/result/impl/result-unwrap-ok-or.mts +60 -0
- package/src/functional/result/impl/result-unwrap-ok.mts +35 -0
- package/src/functional/result/impl/result-unwrap-throw.mts +43 -0
- package/src/functional/result/impl/result-zip.mts +39 -0
- package/src/functional/result/impl/tag.mts +6 -0
- package/src/functional/result/impl/types.mts +35 -0
- package/src/functional/result/index.mts +1 -0
- package/src/functional/result.test.mts +14 -6
- package/src/globals.d.mts +95 -5
- package/src/guard/has-key.mts +23 -74
- package/src/guard/is-non-empty-string.mts +20 -87
- package/src/guard/is-non-empty-string.test.mts +1 -1
- package/src/guard/is-non-null-object.mts +14 -84
- package/src/guard/is-non-null-object.test.mts +4 -4
- package/src/guard/is-primitive.mts +13 -126
- package/src/guard/is-primitive.test.mts +4 -4
- package/src/guard/is-record.mts +21 -132
- package/src/guard/is-type.mts +201 -238
- package/src/guard/is-type.test.mts +10 -10
- package/src/guard/key-is-in.mts +22 -139
- package/src/index.mts +0 -2
- package/src/iterator/range.mts +29 -62
- package/src/json/json.mts +202 -134
- package/src/json/json.test.mts +1 -3
- package/src/number/branded-types/finite-number.mts +34 -166
- package/src/number/branded-types/int.mts +129 -127
- package/src/number/branded-types/int16.mts +31 -39
- package/src/number/branded-types/int16.test.mts +24 -24
- package/src/number/branded-types/int32.mts +31 -40
- package/src/number/branded-types/int32.test.mts +39 -39
- package/src/number/branded-types/non-negative-finite-number.mts +39 -47
- package/src/number/branded-types/non-negative-int16.mts +33 -43
- package/src/number/branded-types/non-negative-int16.test.mts +16 -16
- package/src/number/branded-types/non-negative-int32.mts +35 -44
- package/src/number/branded-types/non-negative-int32.test.mts +30 -30
- package/src/number/branded-types/non-zero-finite-number.mts +32 -47
- package/src/number/branded-types/non-zero-int.mts +22 -37
- package/src/number/branded-types/non-zero-int16.mts +36 -44
- package/src/number/branded-types/non-zero-int16.test.mts +26 -26
- package/src/number/branded-types/non-zero-int32.mts +38 -45
- package/src/number/branded-types/non-zero-int32.test.mts +45 -42
- package/src/number/branded-types/non-zero-safe-int.mts +48 -49
- package/src/number/branded-types/non-zero-uint16.mts +33 -44
- package/src/number/branded-types/non-zero-uint16.test.mts +16 -16
- package/src/number/branded-types/non-zero-uint32.mts +33 -44
- package/src/number/branded-types/non-zero-uint32.test.mts +28 -28
- package/src/number/branded-types/positive-finite-number.mts +37 -51
- package/src/number/branded-types/positive-int.mts +142 -132
- package/src/number/branded-types/positive-int16.mts +33 -44
- package/src/number/branded-types/positive-int16.test.mts +14 -14
- package/src/number/branded-types/positive-int32.mts +33 -44
- package/src/number/branded-types/positive-int32.test.mts +26 -26
- package/src/number/branded-types/positive-safe-int.mts +169 -43
- package/src/number/branded-types/positive-uint16.mts +33 -44
- package/src/number/branded-types/positive-uint16.test.mts +16 -16
- package/src/number/branded-types/positive-uint32.mts +35 -45
- package/src/number/branded-types/positive-uint32.test.mts +31 -28
- package/src/number/branded-types/safe-int.mts +151 -110
- package/src/number/branded-types/safe-uint.mts +34 -43
- package/src/number/branded-types/uint.mts +129 -38
- package/src/number/branded-types/uint16.mts +35 -43
- package/src/number/branded-types/uint16.test.mts +16 -16
- package/src/number/branded-types/uint32.mts +35 -77
- package/src/number/branded-types/uint32.test.mts +28 -28
- package/src/number/enum/int8.mts +42 -173
- package/src/number/enum/int8.test.mts +9 -9
- package/src/number/enum/uint8.mts +49 -158
- package/src/number/enum/uint8.test.mts +8 -8
- package/src/number/num.mts +157 -212
- package/src/number/num.test.mts +4 -4
- package/src/number/refined-number-utils.mts +109 -26
- package/src/object/object.mts +130 -212
- package/src/object/object.test.mts +29 -0
- package/src/others/cast-mutable.mts +13 -89
- package/src/others/cast-mutable.test.mts +80 -0
- package/src/others/cast-readonly.mts +13 -169
- package/src/others/if-then.mts +6 -83
- package/src/others/map-nullable.mts +12 -136
- package/src/others/map-nullable.test.mts +6 -6
- package/src/others/memoize-function.mts +14 -157
- package/src/others/tuple.mts +33 -151
- package/src/others/unknown-to-string.mts +12 -126
- package/src/others/unknown-to-string.test.mts +13 -1
- package/src/promise/promise.mts +34 -21
- package/src/promise/promise.test.mts +43 -0
- package/dist/array/array-utils.d.mts +0 -2956
- package/dist/array/array-utils.d.mts.map +0 -1
- package/dist/array/array-utils.mjs +0 -1838
- package/dist/array/array-utils.mjs.map +0 -1
- package/dist/functional/optional.d.mts +0 -360
- package/dist/functional/optional.d.mts.map +0 -1
- package/dist/functional/optional.mjs +0 -268
- package/dist/functional/optional.mjs.map +0 -1
- package/dist/functional/result.d.mts +0 -611
- package/dist/functional/result.d.mts.map +0 -1
- package/dist/functional/result.mjs +0 -545
- package/dist/functional/result.mjs.map +0 -1
- package/src/array/array-utils-search.test.mts +0 -169
- package/src/array/array-utils-slicing.test.mts +0 -274
- package/src/array/array-utils.mts +0 -4834
- package/src/functional/optional.mts +0 -591
- package/src/functional/result.mts +0 -986
|
@@ -6,19 +6,19 @@ type ElementType = PositiveInt16;
|
|
|
6
6
|
const typeNameInMessage = 'a positive integer in [1, 2^15)';
|
|
7
7
|
|
|
8
8
|
const {
|
|
9
|
-
MIN_VALUE,
|
|
10
9
|
MAX_VALUE,
|
|
11
|
-
|
|
12
|
-
max: max_,
|
|
13
|
-
pow,
|
|
10
|
+
MIN_VALUE,
|
|
14
11
|
add,
|
|
15
|
-
sub,
|
|
16
|
-
mul,
|
|
17
|
-
div,
|
|
18
|
-
random,
|
|
19
|
-
is,
|
|
20
12
|
castType,
|
|
21
13
|
clamp,
|
|
14
|
+
div,
|
|
15
|
+
is,
|
|
16
|
+
max: max_,
|
|
17
|
+
min: min_,
|
|
18
|
+
mul,
|
|
19
|
+
pow,
|
|
20
|
+
random,
|
|
21
|
+
sub,
|
|
22
22
|
} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
|
|
23
23
|
ElementType,
|
|
24
24
|
1,
|
|
@@ -31,7 +31,9 @@ const {
|
|
|
31
31
|
} as const);
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
|
-
* Checks if a number is a PositiveInt16 (16-bit positive signed integer in the
|
|
34
|
+
* Checks if a number is a PositiveInt16 (16-bit positive signed integer in the
|
|
35
|
+
* range [1, 2^15)).
|
|
36
|
+
*
|
|
35
37
|
* @param value The value to check.
|
|
36
38
|
* @returns `true` if the value is a PositiveInt16, `false` otherwise.
|
|
37
39
|
*/
|
|
@@ -39,70 +41,49 @@ export const isPositiveInt16 = is;
|
|
|
39
41
|
|
|
40
42
|
/**
|
|
41
43
|
* Casts a number to a PositiveInt16 type.
|
|
44
|
+
*
|
|
42
45
|
* @param value The value to cast.
|
|
43
46
|
* @returns The value as a PositiveInt16 type.
|
|
44
47
|
* @throws {TypeError} If the value is not a positive integer in [1, 2^15).
|
|
45
|
-
* @example
|
|
46
|
-
* ```typescript
|
|
47
|
-
* const x = asPositiveInt16(1000); // PositiveInt16
|
|
48
|
-
* const y = asPositiveInt16(32767); // PositiveInt16
|
|
49
|
-
* // asPositiveInt16(0); // throws TypeError
|
|
50
|
-
* // asPositiveInt16(-1); // throws TypeError
|
|
51
|
-
* // asPositiveInt16(32768); // throws TypeError
|
|
52
|
-
* ```
|
|
53
48
|
*/
|
|
54
49
|
export const asPositiveInt16 = castType;
|
|
55
50
|
|
|
56
51
|
/**
|
|
57
|
-
* Namespace providing type-safe arithmetic operations for 16-bit positive
|
|
58
|
-
*
|
|
59
|
-
* All operations automatically clamp results to the valid PositiveInt16 range [1, 32767].
|
|
60
|
-
* This ensures that all arithmetic maintains the 16-bit positive integer constraint,
|
|
61
|
-
* with results below 1 clamped to MIN_VALUE and overflow results clamped to MAX_VALUE.
|
|
62
|
-
*
|
|
63
|
-
* @example
|
|
64
|
-
* ```typescript
|
|
65
|
-
* const a = asPositiveInt16(30000);
|
|
66
|
-
* const b = asPositiveInt16(5000);
|
|
67
|
-
*
|
|
68
|
-
* // Arithmetic operations with automatic clamping
|
|
69
|
-
* const sum = PositiveInt16.add(a, b); // PositiveInt16 (32767 - clamped to MAX_VALUE)
|
|
70
|
-
* const diff = PositiveInt16.sub(a, b); // PositiveInt16 (25000)
|
|
71
|
-
* const reverseDiff = PositiveInt16.sub(b, a); // PositiveInt16 (1 - clamped to MIN_VALUE)
|
|
72
|
-
* const product = PositiveInt16.mul(a, b); // PositiveInt16 (32767 - clamped due to overflow)
|
|
73
|
-
*
|
|
74
|
-
* // Range operations
|
|
75
|
-
* const clamped = PositiveInt16.clamp(0); // PositiveInt16 (1)
|
|
76
|
-
* const minimum = PositiveInt16.min(a, b); // PositiveInt16 (5000)
|
|
77
|
-
* const maximum = PositiveInt16.max(a, b); // PositiveInt16 (30000)
|
|
52
|
+
* Namespace providing type-safe arithmetic operations for 16-bit positive
|
|
53
|
+
* integers.
|
|
78
54
|
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
55
|
+
* All operations automatically clamp results to the valid PositiveInt16 range
|
|
56
|
+
* [1, 32767]. This ensures that all arithmetic maintains the 16-bit positive
|
|
57
|
+
* integer constraint, with results below 1 clamped to MIN_VALUE and overflow
|
|
58
|
+
* results clamped to MAX_VALUE.
|
|
83
59
|
*/
|
|
84
60
|
export const PositiveInt16 = {
|
|
85
61
|
/**
|
|
86
62
|
* Type guard to check if a value is a PositiveInt16.
|
|
63
|
+
*
|
|
87
64
|
* @param value The value to check.
|
|
88
|
-
* @returns `true` if the value is a 16-bit positive integer, `false`
|
|
65
|
+
* @returns `true` if the value is a 16-bit positive integer, `false`
|
|
66
|
+
* otherwise.
|
|
89
67
|
*/
|
|
90
68
|
is,
|
|
91
69
|
|
|
92
70
|
/**
|
|
93
71
|
* The minimum value for a 16-bit positive integer.
|
|
72
|
+
*
|
|
94
73
|
* @readonly
|
|
95
74
|
*/
|
|
96
75
|
MIN_VALUE,
|
|
97
76
|
|
|
98
77
|
/**
|
|
99
78
|
* The maximum value for a 16-bit positive integer.
|
|
79
|
+
*
|
|
100
80
|
* @readonly
|
|
101
81
|
*/
|
|
102
82
|
MAX_VALUE,
|
|
103
83
|
|
|
104
84
|
/**
|
|
105
85
|
* Returns the smaller of two PositiveInt16 values.
|
|
86
|
+
*
|
|
106
87
|
* @param a The first PositiveInt16.
|
|
107
88
|
* @param b The second PositiveInt16.
|
|
108
89
|
* @returns The minimum value as a PositiveInt16.
|
|
@@ -111,6 +92,7 @@ export const PositiveInt16 = {
|
|
|
111
92
|
|
|
112
93
|
/**
|
|
113
94
|
* Returns the larger of two PositiveInt16 values.
|
|
95
|
+
*
|
|
114
96
|
* @param a The first PositiveInt16.
|
|
115
97
|
* @param b The second PositiveInt16.
|
|
116
98
|
* @returns The maximum value as a PositiveInt16.
|
|
@@ -119,6 +101,7 @@ export const PositiveInt16 = {
|
|
|
119
101
|
|
|
120
102
|
/**
|
|
121
103
|
* Clamps a number to the PositiveInt16 range.
|
|
104
|
+
*
|
|
122
105
|
* @param value The number to clamp.
|
|
123
106
|
* @returns The value clamped to [1, 32767] as a PositiveInt16.
|
|
124
107
|
*/
|
|
@@ -126,12 +109,14 @@ export const PositiveInt16 = {
|
|
|
126
109
|
|
|
127
110
|
/**
|
|
128
111
|
* Generates a random PositiveInt16 value within the valid range.
|
|
112
|
+
*
|
|
129
113
|
* @returns A random PositiveInt16 between 1 and 32767.
|
|
130
114
|
*/
|
|
131
115
|
random,
|
|
132
116
|
|
|
133
117
|
/**
|
|
134
118
|
* Raises a PositiveInt16 to the power of another PositiveInt16.
|
|
119
|
+
*
|
|
135
120
|
* @param a The base PositiveInt16.
|
|
136
121
|
* @param b The exponent PositiveInt16.
|
|
137
122
|
* @returns `a ** b` clamped to [1, 32767] as a PositiveInt16.
|
|
@@ -140,6 +125,7 @@ export const PositiveInt16 = {
|
|
|
140
125
|
|
|
141
126
|
/**
|
|
142
127
|
* Adds two PositiveInt16 values.
|
|
128
|
+
*
|
|
143
129
|
* @param a The first PositiveInt16.
|
|
144
130
|
* @param b The second PositiveInt16.
|
|
145
131
|
* @returns `a + b` clamped to [1, 32767] as a PositiveInt16.
|
|
@@ -148,6 +134,7 @@ export const PositiveInt16 = {
|
|
|
148
134
|
|
|
149
135
|
/**
|
|
150
136
|
* Subtracts one PositiveInt16 from another.
|
|
137
|
+
*
|
|
151
138
|
* @param a The minuend PositiveInt16.
|
|
152
139
|
* @param b The subtrahend PositiveInt16.
|
|
153
140
|
* @returns `a - b` clamped to [1, 32767] as a PositiveInt16 (minimum 1).
|
|
@@ -156,6 +143,7 @@ export const PositiveInt16 = {
|
|
|
156
143
|
|
|
157
144
|
/**
|
|
158
145
|
* Multiplies two PositiveInt16 values.
|
|
146
|
+
*
|
|
159
147
|
* @param a The first PositiveInt16.
|
|
160
148
|
* @param b The second PositiveInt16.
|
|
161
149
|
* @returns `a * b` clamped to [1, 32767] as a PositiveInt16.
|
|
@@ -164,6 +152,7 @@ export const PositiveInt16 = {
|
|
|
164
152
|
|
|
165
153
|
/**
|
|
166
154
|
* Divides one PositiveInt16 by another using floor division.
|
|
155
|
+
*
|
|
167
156
|
* @param a The dividend PositiveInt16.
|
|
168
157
|
* @param b The divisor PositiveInt16.
|
|
169
158
|
* @returns `⌊a / b⌋` clamped to [1, 32767] as a PositiveInt16.
|
|
@@ -11,7 +11,7 @@ describe('PositiveInt16', () => {
|
|
|
11
11
|
test('accepts valid positive int16 values', () => {
|
|
12
12
|
expect(() => asPositiveInt16(1)).not.toThrow();
|
|
13
13
|
expect(() => asPositiveInt16(1000)).not.toThrow();
|
|
14
|
-
expect(() => asPositiveInt16(
|
|
14
|
+
expect(() => asPositiveInt16(32_767)).not.toThrow(); // 2^15 - 1
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
test('rejects zero', () => {
|
|
@@ -19,8 +19,8 @@ describe('PositiveInt16', () => {
|
|
|
19
19
|
});
|
|
20
20
|
|
|
21
21
|
test('rejects values outside int16 range', () => {
|
|
22
|
-
expect(() => asPositiveInt16(
|
|
23
|
-
expect(() => asPositiveInt16(
|
|
22
|
+
expect(() => asPositiveInt16(32_768)).toThrow(TypeError); // 2^15
|
|
23
|
+
expect(() => asPositiveInt16(65_536)).toThrow(TypeError);
|
|
24
24
|
});
|
|
25
25
|
|
|
26
26
|
test('rejects negative integers', () => {
|
|
@@ -43,7 +43,7 @@ describe('PositiveInt16', () => {
|
|
|
43
43
|
test('returns the same value for valid inputs', () => {
|
|
44
44
|
expect(asPositiveInt16(5)).toBe(5);
|
|
45
45
|
expect(asPositiveInt16(1)).toBe(1);
|
|
46
|
-
expect(asPositiveInt16(
|
|
46
|
+
expect(asPositiveInt16(32_767)).toBe(32_767);
|
|
47
47
|
});
|
|
48
48
|
|
|
49
49
|
test.each([
|
|
@@ -54,7 +54,7 @@ describe('PositiveInt16', () => {
|
|
|
54
54
|
{ name: '-3.4', value: -3.4 },
|
|
55
55
|
{ name: '0', value: 0 },
|
|
56
56
|
{ name: '-1', value: -1 },
|
|
57
|
-
{ name: '32768', value:
|
|
57
|
+
{ name: '32768', value: 32_768 },
|
|
58
58
|
] as const)(
|
|
59
59
|
`asPositiveInt16($name) should throw a TypeError`,
|
|
60
60
|
({ value }) => {
|
|
@@ -71,7 +71,7 @@ describe('PositiveInt16', () => {
|
|
|
71
71
|
test('correctly identifies positive int16 values', () => {
|
|
72
72
|
expect(isPositiveInt16(1)).toBe(true);
|
|
73
73
|
expect(isPositiveInt16(1000)).toBe(true);
|
|
74
|
-
expect(isPositiveInt16(
|
|
74
|
+
expect(isPositiveInt16(32_767)).toBe(true);
|
|
75
75
|
});
|
|
76
76
|
|
|
77
77
|
test('correctly identifies zero', () => {
|
|
@@ -79,8 +79,8 @@ describe('PositiveInt16', () => {
|
|
|
79
79
|
});
|
|
80
80
|
|
|
81
81
|
test('correctly identifies values outside int16 range', () => {
|
|
82
|
-
expect(isPositiveInt16(
|
|
83
|
-
expect(isPositiveInt16(
|
|
82
|
+
expect(isPositiveInt16(32_768)).toBe(false);
|
|
83
|
+
expect(isPositiveInt16(65_536)).toBe(false);
|
|
84
84
|
});
|
|
85
85
|
|
|
86
86
|
test('correctly identifies negative integers', () => {
|
|
@@ -108,7 +108,7 @@ describe('PositiveInt16', () => {
|
|
|
108
108
|
describe('constants', () => {
|
|
109
109
|
test('MIN_VALUE and MAX_VALUE', () => {
|
|
110
110
|
expect(PositiveInt16.MIN_VALUE).toBe(1);
|
|
111
|
-
expect(PositiveInt16.MAX_VALUE).toBe(
|
|
111
|
+
expect(PositiveInt16.MAX_VALUE).toBe(32_767);
|
|
112
112
|
});
|
|
113
113
|
});
|
|
114
114
|
|
|
@@ -123,10 +123,10 @@ describe('PositiveInt16', () => {
|
|
|
123
123
|
|
|
124
124
|
test('add (with clamping to positive int16 range)', () => {
|
|
125
125
|
const result = PositiveInt16.add(
|
|
126
|
-
asPositiveInt16(
|
|
126
|
+
asPositiveInt16(32_000),
|
|
127
127
|
asPositiveInt16(1000),
|
|
128
128
|
);
|
|
129
|
-
expect(result).toBe(
|
|
129
|
+
expect(result).toBe(32_767); // clamped to max
|
|
130
130
|
expect(PositiveInt16.add(a, b)).toBe(150);
|
|
131
131
|
});
|
|
132
132
|
|
|
@@ -140,7 +140,7 @@ describe('PositiveInt16', () => {
|
|
|
140
140
|
asPositiveInt16(1000),
|
|
141
141
|
asPositiveInt16(100),
|
|
142
142
|
);
|
|
143
|
-
expect(result).toBe(
|
|
143
|
+
expect(result).toBe(32_767); // clamped to max
|
|
144
144
|
expect(PositiveInt16.mul(asPositiveInt16(10), asPositiveInt16(5))).toBe(
|
|
145
145
|
50,
|
|
146
146
|
);
|
|
@@ -159,7 +159,7 @@ describe('PositiveInt16', () => {
|
|
|
159
159
|
asPositiveInt16(200),
|
|
160
160
|
asPositiveInt16(3),
|
|
161
161
|
);
|
|
162
|
-
expect(result).toBe(
|
|
162
|
+
expect(result).toBe(32_767); // clamped to max
|
|
163
163
|
expect(PositiveInt16.pow(asPositiveInt16(2), asPositiveInt16(3))).toBe(8);
|
|
164
164
|
});
|
|
165
165
|
});
|
|
@@ -183,7 +183,7 @@ describe('PositiveInt16', () => {
|
|
|
183
183
|
for (const _ of range(10)) {
|
|
184
184
|
const result = PositiveInt16.random(1, 30);
|
|
185
185
|
expect(result).toBeGreaterThanOrEqual(1);
|
|
186
|
-
expect(result).toBeLessThanOrEqual(
|
|
186
|
+
expect(result).toBeLessThanOrEqual(32_767);
|
|
187
187
|
}
|
|
188
188
|
});
|
|
189
189
|
});
|
|
@@ -6,19 +6,19 @@ type ElementType = PositiveInt32;
|
|
|
6
6
|
const typeNameInMessage = 'a positive integer in [1, 2^31)';
|
|
7
7
|
|
|
8
8
|
const {
|
|
9
|
-
MIN_VALUE,
|
|
10
9
|
MAX_VALUE,
|
|
11
|
-
|
|
12
|
-
max: max_,
|
|
13
|
-
pow,
|
|
10
|
+
MIN_VALUE,
|
|
14
11
|
add,
|
|
15
|
-
sub,
|
|
16
|
-
mul,
|
|
17
|
-
div,
|
|
18
|
-
random,
|
|
19
|
-
is,
|
|
20
12
|
castType,
|
|
21
13
|
clamp,
|
|
14
|
+
div,
|
|
15
|
+
is,
|
|
16
|
+
max: max_,
|
|
17
|
+
min: min_,
|
|
18
|
+
mul,
|
|
19
|
+
pow,
|
|
20
|
+
random,
|
|
21
|
+
sub,
|
|
22
22
|
} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
|
|
23
23
|
ElementType,
|
|
24
24
|
1,
|
|
@@ -31,7 +31,9 @@ const {
|
|
|
31
31
|
} as const);
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
|
-
* Checks if a number is a PositiveInt32 (32-bit positive signed integer in the
|
|
34
|
+
* Checks if a number is a PositiveInt32 (32-bit positive signed integer in the
|
|
35
|
+
* range [1, 2^31)).
|
|
36
|
+
*
|
|
35
37
|
* @param value The value to check.
|
|
36
38
|
* @returns `true` if the value is a PositiveInt32, `false` otherwise.
|
|
37
39
|
*/
|
|
@@ -39,70 +41,49 @@ export const isPositiveInt32 = is;
|
|
|
39
41
|
|
|
40
42
|
/**
|
|
41
43
|
* Casts a number to a PositiveInt32 type.
|
|
44
|
+
*
|
|
42
45
|
* @param value The value to cast.
|
|
43
46
|
* @returns The value as a PositiveInt32 type.
|
|
44
47
|
* @throws {TypeError} If the value is not a positive integer in [1, 2^31).
|
|
45
|
-
* @example
|
|
46
|
-
* ```typescript
|
|
47
|
-
* const x = asPositiveInt32(1000); // PositiveInt32
|
|
48
|
-
* const y = asPositiveInt32(2147483647); // PositiveInt32
|
|
49
|
-
* // asPositiveInt32(0); // throws TypeError
|
|
50
|
-
* // asPositiveInt32(-1); // throws TypeError
|
|
51
|
-
* // asPositiveInt32(2147483648); // throws TypeError
|
|
52
|
-
* ```
|
|
53
48
|
*/
|
|
54
49
|
export const asPositiveInt32 = castType;
|
|
55
50
|
|
|
56
51
|
/**
|
|
57
|
-
* Namespace providing type-safe arithmetic operations for 32-bit positive
|
|
58
|
-
*
|
|
59
|
-
* All operations automatically clamp results to the valid PositiveInt32 range [1, 2147483647].
|
|
60
|
-
* This ensures that all arithmetic maintains the 32-bit positive integer constraint,
|
|
61
|
-
* with results below 1 clamped to MIN_VALUE and overflow results clamped to MAX_VALUE.
|
|
62
|
-
*
|
|
63
|
-
* @example
|
|
64
|
-
* ```typescript
|
|
65
|
-
* const a = asPositiveInt32(2000000000);
|
|
66
|
-
* const b = asPositiveInt32(500000000);
|
|
67
|
-
*
|
|
68
|
-
* // Arithmetic operations with automatic clamping and positive constraint
|
|
69
|
-
* const sum = PositiveInt32.add(a, b); // PositiveInt32 (2147483647 - clamped to MAX_VALUE)
|
|
70
|
-
* const diff = PositiveInt32.sub(a, b); // PositiveInt32 (1500000000)
|
|
71
|
-
* const reverseDiff = PositiveInt32.sub(b, a); // PositiveInt32 (1 - clamped to MIN_VALUE)
|
|
72
|
-
* const product = PositiveInt32.mul(a, b); // PositiveInt32 (2147483647 - clamped due to overflow)
|
|
73
|
-
*
|
|
74
|
-
* // Range operations (maintaining positive constraint)
|
|
75
|
-
* const clamped = PositiveInt32.clamp(-1000); // PositiveInt32 (1)
|
|
76
|
-
* const minimum = PositiveInt32.min(a, b); // PositiveInt32 (500000000)
|
|
77
|
-
* const maximum = PositiveInt32.max(a, b); // PositiveInt32 (2000000000)
|
|
52
|
+
* Namespace providing type-safe arithmetic operations for 32-bit positive
|
|
53
|
+
* integers.
|
|
78
54
|
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
55
|
+
* All operations automatically clamp results to the valid PositiveInt32 range
|
|
56
|
+
* [1, 2147483647]. This ensures that all arithmetic maintains the 32-bit
|
|
57
|
+
* positive integer constraint, with results below 1 clamped to MIN_VALUE and
|
|
58
|
+
* overflow results clamped to MAX_VALUE.
|
|
83
59
|
*/
|
|
84
60
|
export const PositiveInt32 = {
|
|
85
61
|
/**
|
|
86
62
|
* Type guard to check if a value is a PositiveInt32.
|
|
63
|
+
*
|
|
87
64
|
* @param value The value to check.
|
|
88
|
-
* @returns `true` if the value is a 32-bit positive integer, `false`
|
|
65
|
+
* @returns `true` if the value is a 32-bit positive integer, `false`
|
|
66
|
+
* otherwise.
|
|
89
67
|
*/
|
|
90
68
|
is,
|
|
91
69
|
|
|
92
70
|
/**
|
|
93
71
|
* The minimum value for a 32-bit positive integer.
|
|
72
|
+
*
|
|
94
73
|
* @readonly
|
|
95
74
|
*/
|
|
96
75
|
MIN_VALUE,
|
|
97
76
|
|
|
98
77
|
/**
|
|
99
78
|
* The maximum value for a 32-bit positive integer.
|
|
79
|
+
*
|
|
100
80
|
* @readonly
|
|
101
81
|
*/
|
|
102
82
|
MAX_VALUE,
|
|
103
83
|
|
|
104
84
|
/**
|
|
105
85
|
* Returns the smaller of two PositiveInt32 values.
|
|
86
|
+
*
|
|
106
87
|
* @param a The first PositiveInt32.
|
|
107
88
|
* @param b The second PositiveInt32.
|
|
108
89
|
* @returns The minimum value as a PositiveInt32.
|
|
@@ -111,6 +92,7 @@ export const PositiveInt32 = {
|
|
|
111
92
|
|
|
112
93
|
/**
|
|
113
94
|
* Returns the larger of two PositiveInt32 values.
|
|
95
|
+
*
|
|
114
96
|
* @param a The first PositiveInt32.
|
|
115
97
|
* @param b The second PositiveInt32.
|
|
116
98
|
* @returns The maximum value as a PositiveInt32.
|
|
@@ -119,6 +101,7 @@ export const PositiveInt32 = {
|
|
|
119
101
|
|
|
120
102
|
/**
|
|
121
103
|
* Clamps a number to the PositiveInt32 range.
|
|
104
|
+
*
|
|
122
105
|
* @param value The number to clamp.
|
|
123
106
|
* @returns The value clamped to [1, 2147483647] as a PositiveInt32.
|
|
124
107
|
*/
|
|
@@ -126,12 +109,14 @@ export const PositiveInt32 = {
|
|
|
126
109
|
|
|
127
110
|
/**
|
|
128
111
|
* Generates a random PositiveInt32 value within the valid range.
|
|
112
|
+
*
|
|
129
113
|
* @returns A random PositiveInt32 between 1 and 2147483647.
|
|
130
114
|
*/
|
|
131
115
|
random,
|
|
132
116
|
|
|
133
117
|
/**
|
|
134
118
|
* Raises a PositiveInt32 to the power of another PositiveInt32.
|
|
119
|
+
*
|
|
135
120
|
* @param a The base PositiveInt32.
|
|
136
121
|
* @param b The exponent PositiveInt32.
|
|
137
122
|
* @returns `a ** b` clamped to [1, 2147483647] as a PositiveInt32.
|
|
@@ -140,6 +125,7 @@ export const PositiveInt32 = {
|
|
|
140
125
|
|
|
141
126
|
/**
|
|
142
127
|
* Adds two PositiveInt32 values.
|
|
128
|
+
*
|
|
143
129
|
* @param a The first PositiveInt32.
|
|
144
130
|
* @param b The second PositiveInt32.
|
|
145
131
|
* @returns `a + b` clamped to [1, 2147483647] as a PositiveInt32.
|
|
@@ -148,6 +134,7 @@ export const PositiveInt32 = {
|
|
|
148
134
|
|
|
149
135
|
/**
|
|
150
136
|
* Subtracts one PositiveInt32 from another.
|
|
137
|
+
*
|
|
151
138
|
* @param a The minuend PositiveInt32.
|
|
152
139
|
* @param b The subtrahend PositiveInt32.
|
|
153
140
|
* @returns `a - b` clamped to [1, 2147483647] as a PositiveInt32 (minimum 1).
|
|
@@ -156,6 +143,7 @@ export const PositiveInt32 = {
|
|
|
156
143
|
|
|
157
144
|
/**
|
|
158
145
|
* Multiplies two PositiveInt32 values.
|
|
146
|
+
*
|
|
159
147
|
* @param a The first PositiveInt32.
|
|
160
148
|
* @param b The second PositiveInt32.
|
|
161
149
|
* @returns `a * b` clamped to [1, 2147483647] as a PositiveInt32.
|
|
@@ -164,6 +152,7 @@ export const PositiveInt32 = {
|
|
|
164
152
|
|
|
165
153
|
/**
|
|
166
154
|
* Divides one PositiveInt32 by another using floor division.
|
|
155
|
+
*
|
|
167
156
|
* @param a The dividend PositiveInt32.
|
|
168
157
|
* @param b The divisor PositiveInt32.
|
|
169
158
|
* @returns `⌊a / b⌋` clamped to [1, 2147483647] as a PositiveInt32.
|
|
@@ -11,7 +11,7 @@ describe('PositiveInt32', () => {
|
|
|
11
11
|
test('accepts valid positive int32 values', () => {
|
|
12
12
|
expect(() => asPositiveInt32(1)).not.toThrow();
|
|
13
13
|
expect(() => asPositiveInt32(1000)).not.toThrow();
|
|
14
|
-
expect(() => asPositiveInt32(
|
|
14
|
+
expect(() => asPositiveInt32(2_147_483_647)).not.toThrow(); // 2^31 - 1
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
test('rejects zero', () => {
|
|
@@ -19,8 +19,8 @@ describe('PositiveInt32', () => {
|
|
|
19
19
|
});
|
|
20
20
|
|
|
21
21
|
test('rejects values outside int32 range', () => {
|
|
22
|
-
expect(() => asPositiveInt32(
|
|
23
|
-
expect(() => asPositiveInt32(
|
|
22
|
+
expect(() => asPositiveInt32(2_147_483_648)).toThrow(TypeError); // 2^31
|
|
23
|
+
expect(() => asPositiveInt32(4_294_967_296)).toThrow(TypeError);
|
|
24
24
|
});
|
|
25
25
|
|
|
26
26
|
test('rejects negative integers', () => {
|
|
@@ -43,7 +43,7 @@ describe('PositiveInt32', () => {
|
|
|
43
43
|
test('returns the same value for valid inputs', () => {
|
|
44
44
|
expect(asPositiveInt32(5)).toBe(5);
|
|
45
45
|
expect(asPositiveInt32(1)).toBe(1);
|
|
46
|
-
expect(asPositiveInt32(
|
|
46
|
+
expect(asPositiveInt32(2_147_483_647)).toBe(2_147_483_647);
|
|
47
47
|
});
|
|
48
48
|
|
|
49
49
|
test.each([
|
|
@@ -54,7 +54,7 @@ describe('PositiveInt32', () => {
|
|
|
54
54
|
{ name: '-3.4', value: -3.4 },
|
|
55
55
|
{ name: '0', value: 0 },
|
|
56
56
|
{ name: '-1', value: -1 },
|
|
57
|
-
{ name: '2147483648', value:
|
|
57
|
+
{ name: '2147483648', value: 2_147_483_648 },
|
|
58
58
|
] as const)(
|
|
59
59
|
`asPositiveInt32($name) should throw a TypeError`,
|
|
60
60
|
({ value }) => {
|
|
@@ -71,7 +71,7 @@ describe('PositiveInt32', () => {
|
|
|
71
71
|
test('correctly identifies positive int32 values', () => {
|
|
72
72
|
expect(isPositiveInt32(1)).toBe(true);
|
|
73
73
|
expect(isPositiveInt32(1000)).toBe(true);
|
|
74
|
-
expect(isPositiveInt32(
|
|
74
|
+
expect(isPositiveInt32(2_147_483_647)).toBe(true);
|
|
75
75
|
});
|
|
76
76
|
|
|
77
77
|
test('correctly identifies zero', () => {
|
|
@@ -79,8 +79,8 @@ describe('PositiveInt32', () => {
|
|
|
79
79
|
});
|
|
80
80
|
|
|
81
81
|
test('correctly identifies values outside int32 range', () => {
|
|
82
|
-
expect(isPositiveInt32(
|
|
83
|
-
expect(isPositiveInt32(
|
|
82
|
+
expect(isPositiveInt32(2_147_483_648)).toBe(false);
|
|
83
|
+
expect(isPositiveInt32(4_294_967_296)).toBe(false);
|
|
84
84
|
});
|
|
85
85
|
|
|
86
86
|
test('correctly identifies negative integers', () => {
|
|
@@ -108,58 +108,58 @@ describe('PositiveInt32', () => {
|
|
|
108
108
|
describe('constants', () => {
|
|
109
109
|
test('MIN_VALUE and MAX_VALUE', () => {
|
|
110
110
|
expect(PositiveInt32.MIN_VALUE).toBe(1);
|
|
111
|
-
expect(PositiveInt32.MAX_VALUE).toBe(
|
|
111
|
+
expect(PositiveInt32.MAX_VALUE).toBe(2_147_483_647);
|
|
112
112
|
});
|
|
113
113
|
});
|
|
114
114
|
|
|
115
115
|
describe('mathematical operations', () => {
|
|
116
|
-
const a = asPositiveInt32(
|
|
117
|
-
const b = asPositiveInt32(
|
|
116
|
+
const a = asPositiveInt32(1_000_000);
|
|
117
|
+
const b = asPositiveInt32(500_000);
|
|
118
118
|
|
|
119
119
|
test('min and max', () => {
|
|
120
|
-
expect(PositiveInt32.min(a, b)).toBe(
|
|
121
|
-
expect(PositiveInt32.max(a, b)).toBe(
|
|
120
|
+
expect(PositiveInt32.min(a, b)).toBe(500_000);
|
|
121
|
+
expect(PositiveInt32.max(a, b)).toBe(1_000_000);
|
|
122
122
|
});
|
|
123
123
|
|
|
124
124
|
test('add (with clamping to positive int32 range)', () => {
|
|
125
125
|
const result = PositiveInt32.add(
|
|
126
|
-
asPositiveInt32(
|
|
126
|
+
asPositiveInt32(2_147_483_000),
|
|
127
127
|
asPositiveInt32(1000),
|
|
128
128
|
);
|
|
129
|
-
expect(result).toBe(
|
|
130
|
-
expect(PositiveInt32.add(a, b)).toBe(
|
|
129
|
+
expect(result).toBe(2_147_483_647); // clamped to max
|
|
130
|
+
expect(PositiveInt32.add(a, b)).toBe(1_500_000);
|
|
131
131
|
});
|
|
132
132
|
|
|
133
133
|
test('sub (never goes below 1)', () => {
|
|
134
|
-
expect(PositiveInt32.sub(a, b)).toBe(
|
|
134
|
+
expect(PositiveInt32.sub(a, b)).toBe(500_000);
|
|
135
135
|
expect(PositiveInt32.sub(b, a)).toBe(1); // clamped to 1
|
|
136
136
|
});
|
|
137
137
|
|
|
138
138
|
test('mul (with clamping to positive int32 range)', () => {
|
|
139
139
|
const result = PositiveInt32.mul(
|
|
140
|
-
asPositiveInt32(
|
|
141
|
-
asPositiveInt32(
|
|
140
|
+
asPositiveInt32(100_000),
|
|
141
|
+
asPositiveInt32(100_000),
|
|
142
142
|
);
|
|
143
|
-
expect(result).toBe(
|
|
143
|
+
expect(result).toBe(2_147_483_647); // clamped to max
|
|
144
144
|
expect(PositiveInt32.mul(asPositiveInt32(1000), asPositiveInt32(5))).toBe(
|
|
145
145
|
5000,
|
|
146
146
|
);
|
|
147
147
|
});
|
|
148
148
|
|
|
149
149
|
test('div (floor division, never goes below 1)', () => {
|
|
150
|
-
expect(PositiveInt32.div(a, asPositiveInt32(
|
|
150
|
+
expect(PositiveInt32.div(a, asPositiveInt32(500_000))).toBe(2);
|
|
151
151
|
expect(PositiveInt32.div(asPositiveInt32(7), asPositiveInt32(3))).toBe(2);
|
|
152
152
|
expect(
|
|
153
|
-
PositiveInt32.div(asPositiveInt32(
|
|
153
|
+
PositiveInt32.div(asPositiveInt32(500_000), asPositiveInt32(1_000_000)),
|
|
154
154
|
).toBe(1); // floor(500000/1000000) = 0, clamped to 1
|
|
155
155
|
});
|
|
156
156
|
|
|
157
157
|
test('pow (with clamping to positive int32 range)', () => {
|
|
158
158
|
const result = PositiveInt32.pow(
|
|
159
|
-
asPositiveInt32(
|
|
159
|
+
asPositiveInt32(10_000),
|
|
160
160
|
asPositiveInt32(3),
|
|
161
161
|
);
|
|
162
|
-
expect(result).toBe(
|
|
162
|
+
expect(result).toBe(2_147_483_647); // clamped to max
|
|
163
163
|
expect(PositiveInt32.pow(asPositiveInt32(2), asPositiveInt32(3))).toBe(8);
|
|
164
164
|
});
|
|
165
165
|
});
|
|
@@ -183,7 +183,7 @@ describe('PositiveInt32', () => {
|
|
|
183
183
|
for (const _ of range(10)) {
|
|
184
184
|
const result = PositiveInt32.random(1, 30);
|
|
185
185
|
expect(result).toBeGreaterThanOrEqual(1);
|
|
186
|
-
expect(result).toBeLessThanOrEqual(
|
|
186
|
+
expect(result).toBeLessThanOrEqual(2_147_483_647);
|
|
187
187
|
}
|
|
188
188
|
});
|
|
189
189
|
});
|
|
@@ -192,7 +192,7 @@ describe('PositiveInt32', () => {
|
|
|
192
192
|
test('type relationships', () => {
|
|
193
193
|
expectType<PositiveInt32, number>('<=');
|
|
194
194
|
|
|
195
|
-
expectTypeOf(asPositiveInt32(
|
|
195
|
+
expectTypeOf(asPositiveInt32(1_000_000)).toExtend<PositiveInt32>();
|
|
196
196
|
});
|
|
197
197
|
});
|
|
198
198
|
});
|