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
|
@@ -7,16 +7,16 @@ const typeNameInMessage = 'a non-zero finite number';
|
|
|
7
7
|
|
|
8
8
|
const {
|
|
9
9
|
abs,
|
|
10
|
-
min: min_,
|
|
11
|
-
max: max_,
|
|
12
|
-
pow,
|
|
13
10
|
add,
|
|
14
|
-
|
|
15
|
-
mul,
|
|
11
|
+
castType,
|
|
16
12
|
div,
|
|
17
|
-
randomNonZero: random,
|
|
18
13
|
is,
|
|
19
|
-
|
|
14
|
+
max: max_,
|
|
15
|
+
min: min_,
|
|
16
|
+
mul,
|
|
17
|
+
pow,
|
|
18
|
+
randomNonZero: random,
|
|
19
|
+
sub,
|
|
20
20
|
} = TsDataForgeInternals.RefinedNumberUtils.operatorsForFloat<
|
|
21
21
|
ElementType,
|
|
22
22
|
number,
|
|
@@ -33,19 +33,19 @@ const {
|
|
|
33
33
|
const floor = (
|
|
34
34
|
x: ElementType,
|
|
35
35
|
): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>
|
|
36
|
-
// eslint-disable-next-line
|
|
36
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
37
37
|
Math.floor(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
|
|
38
38
|
|
|
39
39
|
const ceil = (
|
|
40
40
|
x: ElementType,
|
|
41
41
|
): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>
|
|
42
|
-
// eslint-disable-next-line
|
|
42
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
43
43
|
Math.ceil(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
|
|
44
44
|
|
|
45
45
|
const round = (
|
|
46
46
|
x: ElementType,
|
|
47
47
|
): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>
|
|
48
|
-
// eslint-disable-next-line
|
|
48
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
49
49
|
Math.round(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
|
|
50
50
|
|
|
51
51
|
expectType<
|
|
@@ -62,6 +62,7 @@ expectType<
|
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
64
|
* Checks if a number is a NonZeroFiniteNumber (a finite number that is not 0).
|
|
65
|
+
*
|
|
65
66
|
* @param value The value to check.
|
|
66
67
|
* @returns `true` if the value is a NonZeroFiniteNumber, `false` otherwise.
|
|
67
68
|
*/
|
|
@@ -69,61 +70,34 @@ export const isNonZeroFiniteNumber = is;
|
|
|
69
70
|
|
|
70
71
|
/**
|
|
71
72
|
* Casts a number to a NonZeroFiniteNumber type.
|
|
73
|
+
*
|
|
72
74
|
* @param value The value to cast.
|
|
73
75
|
* @returns The value as a NonZeroFiniteNumber type.
|
|
74
76
|
* @throws {TypeError} If the value is not a non-zero finite number.
|
|
75
|
-
* @example
|
|
76
|
-
* ```typescript
|
|
77
|
-
* const x = asNonZeroFiniteNumber(5.5); // NonZeroFiniteNumber
|
|
78
|
-
* const y = asNonZeroFiniteNumber(-3.2); // NonZeroFiniteNumber
|
|
79
|
-
* // asNonZeroFiniteNumber(0); // throws TypeError
|
|
80
|
-
* // asNonZeroFiniteNumber(Infinity); // throws TypeError
|
|
81
|
-
* ```
|
|
82
77
|
*/
|
|
83
78
|
export const asNonZeroFiniteNumber = castType;
|
|
84
79
|
|
|
85
80
|
/**
|
|
86
|
-
* Namespace providing type-safe arithmetic operations for non-zero finite
|
|
87
|
-
*
|
|
88
|
-
* All operations maintain the non-zero constraint while ensuring results remain finite
|
|
89
|
-
* (excluding NaN and Infinity). This type is useful for values that must never be zero,
|
|
90
|
-
* such as denominators, scaling factors, and ratios.
|
|
91
|
-
*
|
|
92
|
-
* @example
|
|
93
|
-
* ```typescript
|
|
94
|
-
* const factor = asNonZeroFiniteNumber(2.5);
|
|
95
|
-
* const multiplier = asNonZeroFiniteNumber(-1.5);
|
|
96
|
-
*
|
|
97
|
-
* // Arithmetic operations that preserve non-zero constraint
|
|
98
|
-
* const result = NonZeroFiniteNumber.add(factor, multiplier); // NonZeroFiniteNumber (1.0)
|
|
99
|
-
* const difference = NonZeroFiniteNumber.sub(factor, multiplier); // NonZeroFiniteNumber (4.0)
|
|
100
|
-
* const product = NonZeroFiniteNumber.mul(factor, multiplier); // NonZeroFiniteNumber (-3.75)
|
|
101
|
-
* const quotient = NonZeroFiniteNumber.div(factor, multiplier); // NonZeroFiniteNumber (-1.666...)
|
|
102
|
-
*
|
|
103
|
-
* // Utility operations
|
|
104
|
-
* const absolute = NonZeroFiniteNumber.abs(multiplier); // NonZeroFiniteNumber (1.5)
|
|
105
|
-
* const minimum = NonZeroFiniteNumber.min(factor, multiplier); // NonZeroFiniteNumber (-1.5)
|
|
106
|
-
* const maximum = NonZeroFiniteNumber.max(factor, multiplier); // NonZeroFiniteNumber (2.5)
|
|
107
|
-
*
|
|
108
|
-
* // Rounding operations (return NonZeroInt)
|
|
109
|
-
* const rounded = NonZeroFiniteNumber.round(factor); // NonZeroInt (3)
|
|
110
|
-
* const floored = NonZeroFiniteNumber.floor(factor); // NonZeroInt (2)
|
|
111
|
-
* const ceiled = NonZeroFiniteNumber.ceil(factor); // NonZeroInt (3)
|
|
81
|
+
* Namespace providing type-safe arithmetic operations for non-zero finite
|
|
82
|
+
* numbers.
|
|
112
83
|
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
84
|
+
* All operations maintain the non-zero constraint while ensuring results remain
|
|
85
|
+
* finite (excluding NaN and Infinity). This type is useful for values that must
|
|
86
|
+
* never be zero, such as denominators, scaling factors, and ratios.
|
|
116
87
|
*/
|
|
117
88
|
export const NonZeroFiniteNumber = {
|
|
118
89
|
/**
|
|
119
90
|
* Type guard to check if a value is a NonZeroFiniteNumber.
|
|
91
|
+
*
|
|
120
92
|
* @param value The value to check.
|
|
121
|
-
* @returns `true` if the value is a non-zero finite number, `false`
|
|
93
|
+
* @returns `true` if the value is a non-zero finite number, `false`
|
|
94
|
+
* otherwise.
|
|
122
95
|
*/
|
|
123
96
|
is,
|
|
124
97
|
|
|
125
98
|
/**
|
|
126
99
|
* Returns the absolute value of a non-zero finite number.
|
|
100
|
+
*
|
|
127
101
|
* @param a The NonZeroFiniteNumber.
|
|
128
102
|
* @returns The absolute value as a NonZeroFiniteNumber.
|
|
129
103
|
*/
|
|
@@ -131,6 +105,7 @@ export const NonZeroFiniteNumber = {
|
|
|
131
105
|
|
|
132
106
|
/**
|
|
133
107
|
* Returns the smaller of two NonZeroFiniteNumber values.
|
|
108
|
+
*
|
|
134
109
|
* @param a The first NonZeroFiniteNumber.
|
|
135
110
|
* @param b The second NonZeroFiniteNumber.
|
|
136
111
|
* @returns The minimum value as a NonZeroFiniteNumber.
|
|
@@ -139,6 +114,7 @@ export const NonZeroFiniteNumber = {
|
|
|
139
114
|
|
|
140
115
|
/**
|
|
141
116
|
* Returns the larger of two NonZeroFiniteNumber values.
|
|
117
|
+
*
|
|
142
118
|
* @param a The first NonZeroFiniteNumber.
|
|
143
119
|
* @param b The second NonZeroFiniteNumber.
|
|
144
120
|
* @returns The maximum value as a NonZeroFiniteNumber.
|
|
@@ -147,6 +123,7 @@ export const NonZeroFiniteNumber = {
|
|
|
147
123
|
|
|
148
124
|
/**
|
|
149
125
|
* Rounds down a NonZeroFiniteNumber to the nearest integer.
|
|
126
|
+
*
|
|
150
127
|
* @param x The NonZeroFiniteNumber to round down.
|
|
151
128
|
* @returns The floor value as a NonZeroInt.
|
|
152
129
|
*/
|
|
@@ -154,6 +131,7 @@ export const NonZeroFiniteNumber = {
|
|
|
154
131
|
|
|
155
132
|
/**
|
|
156
133
|
* Rounds up a NonZeroFiniteNumber to the nearest integer.
|
|
134
|
+
*
|
|
157
135
|
* @param x The NonZeroFiniteNumber to round up.
|
|
158
136
|
* @returns The ceiling value as a NonZeroInt.
|
|
159
137
|
*/
|
|
@@ -161,6 +139,7 @@ export const NonZeroFiniteNumber = {
|
|
|
161
139
|
|
|
162
140
|
/**
|
|
163
141
|
* Rounds a NonZeroFiniteNumber to the nearest integer.
|
|
142
|
+
*
|
|
164
143
|
* @param x The NonZeroFiniteNumber to round.
|
|
165
144
|
* @returns The rounded value as a NonZeroInt.
|
|
166
145
|
*/
|
|
@@ -168,12 +147,14 @@ export const NonZeroFiniteNumber = {
|
|
|
168
147
|
|
|
169
148
|
/**
|
|
170
149
|
* Generates a random NonZeroFiniteNumber value.
|
|
150
|
+
*
|
|
171
151
|
* @returns A random non-zero finite number.
|
|
172
152
|
*/
|
|
173
153
|
random,
|
|
174
154
|
|
|
175
155
|
/**
|
|
176
156
|
* Raises a NonZeroFiniteNumber to the power of another NonZeroFiniteNumber.
|
|
157
|
+
*
|
|
177
158
|
* @param a The base NonZeroFiniteNumber.
|
|
178
159
|
* @param b The exponent NonZeroFiniteNumber.
|
|
179
160
|
* @returns `a ** b` as a NonZeroFiniteNumber.
|
|
@@ -182,6 +163,7 @@ export const NonZeroFiniteNumber = {
|
|
|
182
163
|
|
|
183
164
|
/**
|
|
184
165
|
* Adds two NonZeroFiniteNumber values.
|
|
166
|
+
*
|
|
185
167
|
* @param a The first NonZeroFiniteNumber.
|
|
186
168
|
* @param b The second NonZeroFiniteNumber.
|
|
187
169
|
* @returns `a + b` as a NonZeroFiniteNumber.
|
|
@@ -190,6 +172,7 @@ export const NonZeroFiniteNumber = {
|
|
|
190
172
|
|
|
191
173
|
/**
|
|
192
174
|
* Subtracts one NonZeroFiniteNumber from another.
|
|
175
|
+
*
|
|
193
176
|
* @param a The minuend NonZeroFiniteNumber.
|
|
194
177
|
* @param b The subtrahend NonZeroFiniteNumber.
|
|
195
178
|
* @returns `a - b` as a NonZeroFiniteNumber.
|
|
@@ -198,6 +181,7 @@ export const NonZeroFiniteNumber = {
|
|
|
198
181
|
|
|
199
182
|
/**
|
|
200
183
|
* Multiplies two NonZeroFiniteNumber values.
|
|
184
|
+
*
|
|
201
185
|
* @param a The first NonZeroFiniteNumber.
|
|
202
186
|
* @param b The second NonZeroFiniteNumber.
|
|
203
187
|
* @returns `a * b` as a NonZeroFiniteNumber.
|
|
@@ -206,6 +190,7 @@ export const NonZeroFiniteNumber = {
|
|
|
206
190
|
|
|
207
191
|
/**
|
|
208
192
|
* Divides one NonZeroFiniteNumber by another.
|
|
193
|
+
*
|
|
209
194
|
* @param a The dividend NonZeroFiniteNumber.
|
|
210
195
|
* @param b The divisor NonZeroFiniteNumber.
|
|
211
196
|
* @returns `a / b` as a NonZeroFiniteNumber.
|
|
@@ -7,16 +7,16 @@ const typeNameInMessage = 'a non-zero integer';
|
|
|
7
7
|
|
|
8
8
|
const {
|
|
9
9
|
abs,
|
|
10
|
-
min: min_,
|
|
11
|
-
max: max_,
|
|
12
|
-
pow,
|
|
13
10
|
add,
|
|
14
|
-
|
|
15
|
-
mul,
|
|
11
|
+
castType,
|
|
16
12
|
div,
|
|
17
|
-
randomNonZero: random,
|
|
18
13
|
is,
|
|
19
|
-
|
|
14
|
+
max: max_,
|
|
15
|
+
min: min_,
|
|
16
|
+
mul,
|
|
17
|
+
pow,
|
|
18
|
+
randomNonZero: random,
|
|
19
|
+
sub,
|
|
20
20
|
} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
|
|
21
21
|
ElementType,
|
|
22
22
|
number,
|
|
@@ -31,6 +31,7 @@ const {
|
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
33
|
* Checks if a number is a NonZeroInt.
|
|
34
|
+
*
|
|
34
35
|
* @param value The value to check.
|
|
35
36
|
* @returns `true` if the value is a NonZeroInt, `false` otherwise.
|
|
36
37
|
*/
|
|
@@ -38,49 +39,24 @@ export const isNonZeroInt = is;
|
|
|
38
39
|
|
|
39
40
|
/**
|
|
40
41
|
* Casts a number to a NonZeroInt type.
|
|
42
|
+
*
|
|
41
43
|
* @param value The value to cast.
|
|
42
44
|
* @returns The value as a NonZeroInt type.
|
|
43
45
|
* @throws {TypeError} If the value is not a non-zero integer.
|
|
44
|
-
* @example
|
|
45
|
-
* ```typescript
|
|
46
|
-
* const x = asNonZeroInt(5); // NonZeroInt
|
|
47
|
-
* const y = asNonZeroInt(-3); // NonZeroInt
|
|
48
|
-
* // asNonZeroInt(0); // throws TypeError
|
|
49
|
-
* // asNonZeroInt(1.5); // throws TypeError
|
|
50
|
-
* ```
|
|
51
46
|
*/
|
|
52
47
|
export const asNonZeroInt = castType;
|
|
53
48
|
|
|
54
49
|
/**
|
|
55
50
|
* Namespace providing type-safe arithmetic operations for non-zero integers.
|
|
56
51
|
*
|
|
57
|
-
* All operations maintain the non-zero constraint, ensuring that results are
|
|
58
|
-
* Division operations return floor division
|
|
59
|
-
*
|
|
60
|
-
* @example
|
|
61
|
-
* ```typescript
|
|
62
|
-
* const a = asNonZeroInt(10);
|
|
63
|
-
* const b = asNonZeroInt(-5);
|
|
64
|
-
*
|
|
65
|
-
* // Arithmetic operations
|
|
66
|
-
* const sum = NonZeroInt.add(a, b); // NonZeroInt (5)
|
|
67
|
-
* const diff = NonZeroInt.sub(a, b); // NonZeroInt (15)
|
|
68
|
-
* const product = NonZeroInt.mul(a, b); // NonZeroInt (-50)
|
|
69
|
-
* const quotient = NonZeroInt.div(a, b); // NonZeroInt (-2)
|
|
70
|
-
*
|
|
71
|
-
* // Utility operations
|
|
72
|
-
* const absolute = NonZeroInt.abs(b); // NonZeroInt (5)
|
|
73
|
-
* const power = NonZeroInt.pow(a, asNonZeroInt(2)); // NonZeroInt (100)
|
|
74
|
-
* const minimum = NonZeroInt.min(a, b); // NonZeroInt (-5)
|
|
75
|
-
* const maximum = NonZeroInt(a, b); // NonZeroInt (10)
|
|
76
|
-
*
|
|
77
|
-
* // Random generation
|
|
78
|
-
* const randomInt = NonZeroInt.random(); // NonZeroInt (random non-zero integer)
|
|
79
|
-
* ```
|
|
52
|
+
* All operations maintain the non-zero constraint, ensuring that results are
|
|
53
|
+
* always valid NonZeroInt values. Division operations return floor division
|
|
54
|
+
* results, and all arithmetic maintains integer precision.
|
|
80
55
|
*/
|
|
81
56
|
export const NonZeroInt = {
|
|
82
57
|
/**
|
|
83
58
|
* Type guard to check if a value is a NonZeroInt.
|
|
59
|
+
*
|
|
84
60
|
* @param value The value to check.
|
|
85
61
|
* @returns `true` if the value is a non-zero integer, `false` otherwise.
|
|
86
62
|
*/
|
|
@@ -88,6 +64,7 @@ export const NonZeroInt = {
|
|
|
88
64
|
|
|
89
65
|
/**
|
|
90
66
|
* Returns the absolute value of a non-zero integer.
|
|
67
|
+
*
|
|
91
68
|
* @param a The non-zero integer.
|
|
92
69
|
* @returns The absolute value as a NonZeroInt.
|
|
93
70
|
*/
|
|
@@ -95,6 +72,7 @@ export const NonZeroInt = {
|
|
|
95
72
|
|
|
96
73
|
/**
|
|
97
74
|
* Returns the smaller of two non-zero integers.
|
|
75
|
+
*
|
|
98
76
|
* @param a The first non-zero integer.
|
|
99
77
|
* @param b The second non-zero integer.
|
|
100
78
|
* @returns The minimum value as a NonZeroInt.
|
|
@@ -103,6 +81,7 @@ export const NonZeroInt = {
|
|
|
103
81
|
|
|
104
82
|
/**
|
|
105
83
|
* Returns the larger of two non-zero integers.
|
|
84
|
+
*
|
|
106
85
|
* @param a The first non-zero integer.
|
|
107
86
|
* @param b The second non-zero integer.
|
|
108
87
|
* @returns The maximum value as a NonZeroInt.
|
|
@@ -111,12 +90,14 @@ export const NonZeroInt = {
|
|
|
111
90
|
|
|
112
91
|
/**
|
|
113
92
|
* Generates a random non-zero integer.
|
|
93
|
+
*
|
|
114
94
|
* @returns A random NonZeroInt value.
|
|
115
95
|
*/
|
|
116
96
|
random,
|
|
117
97
|
|
|
118
98
|
/**
|
|
119
99
|
* Raises a non-zero integer to the power of another non-zero integer.
|
|
100
|
+
*
|
|
120
101
|
* @param a The base non-zero integer.
|
|
121
102
|
* @param b The exponent non-zero integer.
|
|
122
103
|
* @returns `a ** b` as a NonZeroInt.
|
|
@@ -125,6 +106,7 @@ export const NonZeroInt = {
|
|
|
125
106
|
|
|
126
107
|
/**
|
|
127
108
|
* Adds two non-zero integers.
|
|
109
|
+
*
|
|
128
110
|
* @param a The first non-zero integer.
|
|
129
111
|
* @param b The second non-zero integer.
|
|
130
112
|
* @returns `a + b` as a NonZeroInt.
|
|
@@ -133,6 +115,7 @@ export const NonZeroInt = {
|
|
|
133
115
|
|
|
134
116
|
/**
|
|
135
117
|
* Subtracts one non-zero integer from another.
|
|
118
|
+
*
|
|
136
119
|
* @param a The minuend non-zero integer.
|
|
137
120
|
* @param b The subtrahend non-zero integer.
|
|
138
121
|
* @returns `a - b` as a NonZeroInt.
|
|
@@ -141,6 +124,7 @@ export const NonZeroInt = {
|
|
|
141
124
|
|
|
142
125
|
/**
|
|
143
126
|
* Multiplies two non-zero integers.
|
|
127
|
+
*
|
|
144
128
|
* @param a The first non-zero integer.
|
|
145
129
|
* @param b The second non-zero integer.
|
|
146
130
|
* @returns `a * b` as a NonZeroInt.
|
|
@@ -149,6 +133,7 @@ export const NonZeroInt = {
|
|
|
149
133
|
|
|
150
134
|
/**
|
|
151
135
|
* Divides one non-zero integer by another using floor division.
|
|
136
|
+
*
|
|
152
137
|
* @param a The dividend non-zero integer.
|
|
153
138
|
* @param b The divisor non-zero integer.
|
|
154
139
|
* @returns `⌊a / b⌋` as a NonZeroInt.
|
|
@@ -6,20 +6,20 @@ type ElementType = NonZeroInt16;
|
|
|
6
6
|
const typeNameInMessage = 'a non-zero integer in [-2^15, 2^15)';
|
|
7
7
|
|
|
8
8
|
const {
|
|
9
|
-
MIN_VALUE,
|
|
10
9
|
MAX_VALUE,
|
|
10
|
+
MIN_VALUE,
|
|
11
11
|
abs,
|
|
12
|
-
min: min_,
|
|
13
|
-
max: max_,
|
|
14
|
-
pow,
|
|
15
12
|
add,
|
|
16
|
-
sub,
|
|
17
|
-
mul,
|
|
18
|
-
div,
|
|
19
|
-
randomNonZero: random,
|
|
20
|
-
is,
|
|
21
13
|
castType,
|
|
22
14
|
clamp,
|
|
15
|
+
div,
|
|
16
|
+
is,
|
|
17
|
+
max: max_,
|
|
18
|
+
min: min_,
|
|
19
|
+
mul,
|
|
20
|
+
pow,
|
|
21
|
+
randomNonZero: random,
|
|
22
|
+
sub,
|
|
23
23
|
} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
|
|
24
24
|
ElementType,
|
|
25
25
|
number,
|
|
@@ -33,7 +33,9 @@ const {
|
|
|
33
33
|
} as const);
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
|
-
* Checks if a number is a NonZeroInt16 (16-bit non-zero signed integer in the
|
|
36
|
+
* Checks if a number is a NonZeroInt16 (16-bit non-zero signed integer in the
|
|
37
|
+
* range [-2^15, 2^15) excluding 0).
|
|
38
|
+
*
|
|
37
39
|
* @param value The value to check.
|
|
38
40
|
* @returns `true` if the value is a NonZeroInt16, `false` otherwise.
|
|
39
41
|
*/
|
|
@@ -41,69 +43,49 @@ export const isNonZeroInt16 = is;
|
|
|
41
43
|
|
|
42
44
|
/**
|
|
43
45
|
* Casts a number to a NonZeroInt16 type.
|
|
46
|
+
*
|
|
44
47
|
* @param value The value to cast.
|
|
45
48
|
* @returns The value as a NonZeroInt16 type.
|
|
46
49
|
* @throws {TypeError} If the value is not a non-zero integer in [-2^15, 2^15).
|
|
47
|
-
* @example
|
|
48
|
-
* ```typescript
|
|
49
|
-
* const x = asNonZeroInt16(1000); // NonZeroInt16
|
|
50
|
-
* const y = asNonZeroInt16(-1000); // NonZeroInt16
|
|
51
|
-
* // asNonZeroInt16(0); // throws TypeError
|
|
52
|
-
* // asNonZeroInt16(32768); // throws TypeError
|
|
53
|
-
* ```
|
|
54
50
|
*/
|
|
55
51
|
export const asNonZeroInt16 = castType;
|
|
56
52
|
|
|
57
53
|
/**
|
|
58
|
-
* Namespace providing type-safe arithmetic operations for 16-bit non-zero
|
|
59
|
-
*
|
|
60
|
-
* All operations automatically clamp results to the valid NonZeroInt16 range [-32768, 32767]
|
|
61
|
-
* excluding 0. This ensures that all arithmetic maintains the 16-bit non-zero signed integer
|
|
62
|
-
* constraint, preventing zero results and overflow.
|
|
63
|
-
*
|
|
64
|
-
* @example
|
|
65
|
-
* ```typescript
|
|
66
|
-
* const a = asNonZeroInt16(30000);
|
|
67
|
-
* const b = asNonZeroInt16(-10000);
|
|
68
|
-
*
|
|
69
|
-
* // Arithmetic operations with automatic clamping and non-zero constraint
|
|
70
|
-
* const sum = NonZeroInt16.add(a, b); // NonZeroInt16 (20000)
|
|
71
|
-
* const diff = NonZeroInt16.sub(a, b); // NonZeroInt16 (32767 - clamped to MAX_VALUE)
|
|
72
|
-
* const product = NonZeroInt16.mul(a, b); // NonZeroInt16 (-32768 - clamped to MIN_VALUE)
|
|
73
|
-
*
|
|
74
|
-
* // Utility operations
|
|
75
|
-
* const absolute = NonZeroInt16.abs(b); // NonZeroInt16 (10000)
|
|
76
|
-
* const minimum = NonZeroInt16.min(a, b); // NonZeroInt16 (-10000)
|
|
77
|
-
* const maximum = NonZeroInt16.max(a, b); // NonZeroInt16 (30000)
|
|
54
|
+
* Namespace providing type-safe arithmetic operations for 16-bit non-zero
|
|
55
|
+
* signed integers.
|
|
78
56
|
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
* ```
|
|
57
|
+
* All operations automatically clamp results to the valid NonZeroInt16 range
|
|
58
|
+
* [-32768, 32767] excluding 0. This ensures that all arithmetic maintains the
|
|
59
|
+
* 16-bit non-zero signed integer constraint, preventing zero results and
|
|
60
|
+
* overflow.
|
|
84
61
|
*/
|
|
85
62
|
export const NonZeroInt16 = {
|
|
86
63
|
/**
|
|
87
64
|
* Type guard to check if a value is a NonZeroInt16.
|
|
65
|
+
*
|
|
88
66
|
* @param value The value to check.
|
|
89
|
-
* @returns `true` if the value is a 16-bit non-zero signed integer, `false`
|
|
67
|
+
* @returns `true` if the value is a 16-bit non-zero signed integer, `false`
|
|
68
|
+
* otherwise.
|
|
90
69
|
*/
|
|
91
70
|
is,
|
|
92
71
|
|
|
93
72
|
/**
|
|
94
73
|
* The minimum value for a 16-bit non-zero signed integer.
|
|
74
|
+
*
|
|
95
75
|
* @readonly
|
|
96
76
|
*/
|
|
97
77
|
MIN_VALUE,
|
|
98
78
|
|
|
99
79
|
/**
|
|
100
80
|
* The maximum value for a 16-bit non-zero signed integer.
|
|
81
|
+
*
|
|
101
82
|
* @readonly
|
|
102
83
|
*/
|
|
103
84
|
MAX_VALUE,
|
|
104
85
|
|
|
105
86
|
/**
|
|
106
87
|
* Returns the absolute value of a 16-bit non-zero signed integer.
|
|
88
|
+
*
|
|
107
89
|
* @param a The NonZeroInt16 value.
|
|
108
90
|
* @returns The absolute value as a NonZeroInt16, clamped to valid range.
|
|
109
91
|
*/
|
|
@@ -111,6 +93,7 @@ export const NonZeroInt16 = {
|
|
|
111
93
|
|
|
112
94
|
/**
|
|
113
95
|
* Returns the smaller of two NonZeroInt16 values.
|
|
96
|
+
*
|
|
114
97
|
* @param a The first NonZeroInt16.
|
|
115
98
|
* @param b The second NonZeroInt16.
|
|
116
99
|
* @returns The minimum value as a NonZeroInt16.
|
|
@@ -119,6 +102,7 @@ export const NonZeroInt16 = {
|
|
|
119
102
|
|
|
120
103
|
/**
|
|
121
104
|
* Returns the larger of two NonZeroInt16 values.
|
|
105
|
+
*
|
|
122
106
|
* @param a The first NonZeroInt16.
|
|
123
107
|
* @param b The second NonZeroInt16.
|
|
124
108
|
* @returns The maximum value as a NonZeroInt16.
|
|
@@ -127,6 +111,7 @@ export const NonZeroInt16 = {
|
|
|
127
111
|
|
|
128
112
|
/**
|
|
129
113
|
* Clamps a number to the NonZeroInt16 range (avoiding zero).
|
|
114
|
+
*
|
|
130
115
|
* @param value The number to clamp.
|
|
131
116
|
* @returns The value clamped to [-32768, 32767] \ {0} as a NonZeroInt16.
|
|
132
117
|
*/
|
|
@@ -134,12 +119,15 @@ export const NonZeroInt16 = {
|
|
|
134
119
|
|
|
135
120
|
/**
|
|
136
121
|
* Generates a random NonZeroInt16 value within the valid range.
|
|
137
|
-
*
|
|
122
|
+
*
|
|
123
|
+
* @returns A random NonZeroInt16 between MIN_VALUE and MAX_VALUE (excluding
|
|
124
|
+
* 0).
|
|
138
125
|
*/
|
|
139
126
|
random,
|
|
140
127
|
|
|
141
128
|
/**
|
|
142
129
|
* Raises a NonZeroInt16 to the power of another NonZeroInt16.
|
|
130
|
+
*
|
|
143
131
|
* @param a The base NonZeroInt16.
|
|
144
132
|
* @param b The exponent NonZeroInt16.
|
|
145
133
|
* @returns `a ** b` clamped to [-32768, 32767] as a NonZeroInt16.
|
|
@@ -148,6 +136,7 @@ export const NonZeroInt16 = {
|
|
|
148
136
|
|
|
149
137
|
/**
|
|
150
138
|
* Adds two NonZeroInt16 values.
|
|
139
|
+
*
|
|
151
140
|
* @param a The first NonZeroInt16.
|
|
152
141
|
* @param b The second NonZeroInt16.
|
|
153
142
|
* @returns `a + b` clamped to [-32768, 32767] as a NonZeroInt16.
|
|
@@ -156,6 +145,7 @@ export const NonZeroInt16 = {
|
|
|
156
145
|
|
|
157
146
|
/**
|
|
158
147
|
* Subtracts one NonZeroInt16 from another.
|
|
148
|
+
*
|
|
159
149
|
* @param a The minuend NonZeroInt16.
|
|
160
150
|
* @param b The subtrahend NonZeroInt16.
|
|
161
151
|
* @returns `a - b` clamped to [-32768, 32767] as a NonZeroInt16.
|
|
@@ -164,6 +154,7 @@ export const NonZeroInt16 = {
|
|
|
164
154
|
|
|
165
155
|
/**
|
|
166
156
|
* Multiplies two NonZeroInt16 values.
|
|
157
|
+
*
|
|
167
158
|
* @param a The first NonZeroInt16.
|
|
168
159
|
* @param b The second NonZeroInt16.
|
|
169
160
|
* @returns `a * b` clamped to [-32768, 32767] as a NonZeroInt16.
|
|
@@ -172,6 +163,7 @@ export const NonZeroInt16 = {
|
|
|
172
163
|
|
|
173
164
|
/**
|
|
174
165
|
* Divides one NonZeroInt16 by another using floor division.
|
|
166
|
+
*
|
|
175
167
|
* @param a The dividend NonZeroInt16.
|
|
176
168
|
* @param b The divisor NonZeroInt16.
|
|
177
169
|
* @returns `⌊a / b⌋` clamped to [-32768, 32767] as a NonZeroInt16.
|
|
@@ -11,8 +11,8 @@ describe('NonZeroInt16', () => {
|
|
|
11
11
|
test('accepts valid non-zero int16 values', () => {
|
|
12
12
|
expect(() => asNonZeroInt16(1)).not.toThrow();
|
|
13
13
|
expect(() => asNonZeroInt16(-1)).not.toThrow();
|
|
14
|
-
expect(() => asNonZeroInt16(
|
|
15
|
-
expect(() => asNonZeroInt16(-
|
|
14
|
+
expect(() => asNonZeroInt16(32_767)).not.toThrow(); // 2^15 - 1
|
|
15
|
+
expect(() => asNonZeroInt16(-32_768)).not.toThrow(); // -2^15
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
test('rejects zero', () => {
|
|
@@ -20,10 +20,10 @@ describe('NonZeroInt16', () => {
|
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
test('rejects values outside int16 range', () => {
|
|
23
|
-
expect(() => asNonZeroInt16(
|
|
24
|
-
expect(() => asNonZeroInt16(-
|
|
25
|
-
expect(() => asNonZeroInt16(
|
|
26
|
-
expect(() => asNonZeroInt16(-
|
|
23
|
+
expect(() => asNonZeroInt16(32_768)).toThrow(TypeError); // 2^15
|
|
24
|
+
expect(() => asNonZeroInt16(-32_769)).toThrow(TypeError); // -2^15 - 1
|
|
25
|
+
expect(() => asNonZeroInt16(65_536)).toThrow(TypeError);
|
|
26
|
+
expect(() => asNonZeroInt16(-65_536)).toThrow(TypeError);
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
test('rejects non-integers', () => {
|
|
@@ -37,8 +37,8 @@ describe('NonZeroInt16', () => {
|
|
|
37
37
|
test('returns the same value for valid inputs', () => {
|
|
38
38
|
expect(asNonZeroInt16(5)).toBe(5);
|
|
39
39
|
expect(asNonZeroInt16(-10)).toBe(-10);
|
|
40
|
-
expect(asNonZeroInt16(
|
|
41
|
-
expect(asNonZeroInt16(-
|
|
40
|
+
expect(asNonZeroInt16(32_767)).toBe(32_767);
|
|
41
|
+
expect(asNonZeroInt16(-32_768)).toBe(-32_768);
|
|
42
42
|
});
|
|
43
43
|
|
|
44
44
|
test.each([
|
|
@@ -48,8 +48,8 @@ describe('NonZeroInt16', () => {
|
|
|
48
48
|
{ name: '1.2', value: 1.2 },
|
|
49
49
|
{ name: '-3.4', value: -3.4 },
|
|
50
50
|
{ name: '0', value: 0 },
|
|
51
|
-
{ name: '32768', value:
|
|
52
|
-
{ name: '-32769', value: -
|
|
51
|
+
{ name: '32768', value: 32_768 },
|
|
52
|
+
{ name: '-32769', value: -32_769 },
|
|
53
53
|
] as const)(
|
|
54
54
|
`asNonZeroInt16($name) should throw a TypeError`,
|
|
55
55
|
({ value }) => {
|
|
@@ -66,8 +66,8 @@ describe('NonZeroInt16', () => {
|
|
|
66
66
|
test('correctly identifies non-zero int16 values', () => {
|
|
67
67
|
expect(isNonZeroInt16(1)).toBe(true);
|
|
68
68
|
expect(isNonZeroInt16(-1)).toBe(true);
|
|
69
|
-
expect(isNonZeroInt16(
|
|
70
|
-
expect(isNonZeroInt16(-
|
|
69
|
+
expect(isNonZeroInt16(32_767)).toBe(true);
|
|
70
|
+
expect(isNonZeroInt16(-32_768)).toBe(true);
|
|
71
71
|
});
|
|
72
72
|
|
|
73
73
|
test('correctly identifies zero', () => {
|
|
@@ -75,10 +75,10 @@ describe('NonZeroInt16', () => {
|
|
|
75
75
|
});
|
|
76
76
|
|
|
77
77
|
test('correctly identifies values outside int16 range', () => {
|
|
78
|
-
expect(isNonZeroInt16(
|
|
79
|
-
expect(isNonZeroInt16(-
|
|
80
|
-
expect(isNonZeroInt16(
|
|
81
|
-
expect(isNonZeroInt16(-
|
|
78
|
+
expect(isNonZeroInt16(32_768)).toBe(false);
|
|
79
|
+
expect(isNonZeroInt16(-32_769)).toBe(false);
|
|
80
|
+
expect(isNonZeroInt16(65_536)).toBe(false);
|
|
81
|
+
expect(isNonZeroInt16(-65_536)).toBe(false);
|
|
82
82
|
});
|
|
83
83
|
|
|
84
84
|
test('correctly identifies non-integers', () => {
|
|
@@ -100,8 +100,8 @@ describe('NonZeroInt16', () => {
|
|
|
100
100
|
|
|
101
101
|
describe('constants', () => {
|
|
102
102
|
test('MIN_VALUE and MAX_VALUE', () => {
|
|
103
|
-
expect(NonZeroInt16.MIN_VALUE).toBe(-
|
|
104
|
-
expect(NonZeroInt16.MAX_VALUE).toBe(
|
|
103
|
+
expect(NonZeroInt16.MIN_VALUE).toBe(-32_768);
|
|
104
|
+
expect(NonZeroInt16.MAX_VALUE).toBe(32_767);
|
|
105
105
|
});
|
|
106
106
|
});
|
|
107
107
|
|
|
@@ -124,19 +124,19 @@ describe('NonZeroInt16', () => {
|
|
|
124
124
|
|
|
125
125
|
test('add (with clamping)', () => {
|
|
126
126
|
const result = NonZeroInt16.add(
|
|
127
|
-
asNonZeroInt16(
|
|
127
|
+
asNonZeroInt16(32_000),
|
|
128
128
|
asNonZeroInt16(1000),
|
|
129
129
|
);
|
|
130
|
-
expect(result).toBe(
|
|
130
|
+
expect(result).toBe(32_767); // clamped to max
|
|
131
131
|
expect(NonZeroInt16.add(a, b)).toBe(150);
|
|
132
132
|
});
|
|
133
133
|
|
|
134
134
|
test('sub (with clamping)', () => {
|
|
135
135
|
const result = NonZeroInt16.sub(
|
|
136
|
-
asNonZeroInt16(-
|
|
136
|
+
asNonZeroInt16(-32_000),
|
|
137
137
|
asNonZeroInt16(1000),
|
|
138
138
|
);
|
|
139
|
-
expect(result).toBe(-
|
|
139
|
+
expect(result).toBe(-32_768); // clamped to min
|
|
140
140
|
expect(NonZeroInt16.sub(a, b)).toBe(50);
|
|
141
141
|
});
|
|
142
142
|
|
|
@@ -145,7 +145,7 @@ describe('NonZeroInt16', () => {
|
|
|
145
145
|
asNonZeroInt16(1000),
|
|
146
146
|
asNonZeroInt16(100),
|
|
147
147
|
);
|
|
148
|
-
expect(result).toBe(
|
|
148
|
+
expect(result).toBe(32_767); // clamped to max
|
|
149
149
|
expect(NonZeroInt16.mul(asNonZeroInt16(10), asNonZeroInt16(5))).toBe(50);
|
|
150
150
|
});
|
|
151
151
|
|
|
@@ -157,7 +157,7 @@ describe('NonZeroInt16', () => {
|
|
|
157
157
|
|
|
158
158
|
test('pow (with clamping)', () => {
|
|
159
159
|
const result = NonZeroInt16.pow(asNonZeroInt16(200), asNonZeroInt16(3));
|
|
160
|
-
expect(result).toBe(
|
|
160
|
+
expect(result).toBe(32_767); // clamped to max
|
|
161
161
|
expect(NonZeroInt16.pow(asNonZeroInt16(2), asNonZeroInt16(3))).toBe(8);
|
|
162
162
|
});
|
|
163
163
|
});
|
|
@@ -180,8 +180,8 @@ describe('NonZeroInt16', () => {
|
|
|
180
180
|
test('generates values within NonZeroInt16 range', () => {
|
|
181
181
|
for (const _ of range(10)) {
|
|
182
182
|
const result = NonZeroInt16.random(-20, 20);
|
|
183
|
-
expect(result).toBeGreaterThanOrEqual(-
|
|
184
|
-
expect(result).toBeLessThanOrEqual(
|
|
183
|
+
expect(result).toBeGreaterThanOrEqual(-32_768);
|
|
184
|
+
expect(result).toBeLessThanOrEqual(32_767);
|
|
185
185
|
}
|
|
186
186
|
});
|
|
187
187
|
});
|