ts-data-forge 11.0.0 → 11.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/dist/number/branded-types/finite-number.d.mts +47 -61
  2. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  3. package/dist/number/branded-types/finite-number.mjs +37 -41
  4. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  5. package/dist/number/branded-types/int.d.mts +40 -46
  6. package/dist/number/branded-types/int.d.mts.map +1 -1
  7. package/dist/number/branded-types/int.mjs +29 -31
  8. package/dist/number/branded-types/int.mjs.map +1 -1
  9. package/dist/number/branded-types/int16.d.mts +65 -58
  10. package/dist/number/branded-types/int16.d.mts.map +1 -1
  11. package/dist/number/branded-types/int16.mjs +49 -45
  12. package/dist/number/branded-types/int16.mjs.map +1 -1
  13. package/dist/number/branded-types/int32.d.mts +65 -58
  14. package/dist/number/branded-types/int32.d.mts.map +1 -1
  15. package/dist/number/branded-types/int32.mjs +49 -45
  16. package/dist/number/branded-types/int32.mjs.map +1 -1
  17. package/dist/number/branded-types/negative-finite-number.d.mts +68 -59
  18. package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
  19. package/dist/number/branded-types/negative-finite-number.mjs +52 -46
  20. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  21. package/dist/number/branded-types/negative-int.d.mts +60 -48
  22. package/dist/number/branded-types/negative-int.d.mts.map +1 -1
  23. package/dist/number/branded-types/negative-int.mjs +40 -36
  24. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  25. package/dist/number/branded-types/negative-safe-int.d.mts +57 -56
  26. package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
  27. package/dist/number/branded-types/negative-safe-int.mjs +40 -41
  28. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  29. package/dist/number/branded-types/non-negative-finite-number.d.mts +74 -64
  30. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  31. package/dist/number/branded-types/non-negative-finite-number.mjs +58 -51
  32. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  33. package/dist/number/branded-types/non-negative-int16.d.mts +64 -57
  34. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
  35. package/dist/number/branded-types/non-negative-int16.mjs +47 -43
  36. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  37. package/dist/number/branded-types/non-negative-int32.d.mts +64 -58
  38. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
  39. package/dist/number/branded-types/non-negative-int32.mjs +47 -44
  40. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  41. package/dist/number/branded-types/non-positive-finite-number.d.mts +64 -54
  42. package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
  43. package/dist/number/branded-types/non-positive-finite-number.mjs +48 -41
  44. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  45. package/dist/number/branded-types/non-positive-int.d.mts +41 -146
  46. package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
  47. package/dist/number/branded-types/non-positive-int.mjs +27 -107
  48. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  49. package/dist/number/branded-types/non-positive-safe-int.d.mts +54 -53
  50. package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
  51. package/dist/number/branded-types/non-positive-safe-int.mjs +37 -39
  52. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  53. package/dist/number/branded-types/non-zero-finite-number.d.mts +62 -49
  54. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  55. package/dist/number/branded-types/non-zero-finite-number.mjs +46 -37
  56. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  57. package/dist/number/branded-types/non-zero-int.d.mts +51 -38
  58. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  59. package/dist/number/branded-types/non-zero-int.mjs +31 -27
  60. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  61. package/dist/number/branded-types/non-zero-int16.d.mts +52 -53
  62. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  63. package/dist/number/branded-types/non-zero-int16.mjs +36 -39
  64. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  65. package/dist/number/branded-types/non-zero-int32.d.mts +52 -54
  66. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  67. package/dist/number/branded-types/non-zero-int32.mjs +36 -40
  68. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  69. package/dist/number/branded-types/non-zero-safe-int.d.mts +53 -54
  70. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  71. package/dist/number/branded-types/non-zero-safe-int.mjs +36 -40
  72. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  73. package/dist/number/branded-types/non-zero-uint16.d.mts +52 -53
  74. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  75. package/dist/number/branded-types/non-zero-uint16.mjs +35 -39
  76. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  77. package/dist/number/branded-types/non-zero-uint32.d.mts +52 -53
  78. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  79. package/dist/number/branded-types/non-zero-uint32.mjs +35 -39
  80. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  81. package/dist/number/branded-types/positive-finite-number.d.mts +74 -63
  82. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  83. package/dist/number/branded-types/positive-finite-number.mjs +58 -50
  84. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  85. package/dist/number/branded-types/positive-int.d.mts +46 -68
  86. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  87. package/dist/number/branded-types/positive-int.mjs +34 -49
  88. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  89. package/dist/number/branded-types/positive-int16.d.mts +61 -57
  90. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  91. package/dist/number/branded-types/positive-int16.mjs +44 -43
  92. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  93. package/dist/number/branded-types/positive-int32.d.mts +61 -57
  94. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  95. package/dist/number/branded-types/positive-int32.mjs +44 -43
  96. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  97. package/dist/number/branded-types/positive-safe-int.d.mts +62 -57
  98. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  99. package/dist/number/branded-types/positive-safe-int.mjs +45 -43
  100. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  101. package/dist/number/branded-types/positive-uint16.d.mts +61 -57
  102. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  103. package/dist/number/branded-types/positive-uint16.mjs +44 -43
  104. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  105. package/dist/number/branded-types/positive-uint32.d.mts +61 -58
  106. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  107. package/dist/number/branded-types/positive-uint32.mjs +44 -44
  108. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  109. package/dist/number/branded-types/safe-int.d.mts +43 -62
  110. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  111. package/dist/number/branded-types/safe-int.mjs +35 -42
  112. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  113. package/dist/number/branded-types/safe-uint.d.mts +62 -57
  114. package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
  115. package/dist/number/branded-types/safe-uint.mjs +46 -44
  116. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  117. package/dist/number/branded-types/uint.d.mts +63 -50
  118. package/dist/number/branded-types/uint.d.mts.map +1 -1
  119. package/dist/number/branded-types/uint.mjs +42 -39
  120. package/dist/number/branded-types/uint.mjs.map +1 -1
  121. package/dist/number/branded-types/uint16.d.mts +60 -58
  122. package/dist/number/branded-types/uint16.d.mts.map +1 -1
  123. package/dist/number/branded-types/uint16.mjs +44 -43
  124. package/dist/number/branded-types/uint16.mjs.map +1 -1
  125. package/dist/number/branded-types/uint32.d.mts +59 -55
  126. package/dist/number/branded-types/uint32.d.mts.map +1 -1
  127. package/dist/number/branded-types/uint32.mjs +42 -42
  128. package/dist/number/branded-types/uint32.mjs.map +1 -1
  129. package/dist/number/enum/int8.d.mts +56 -65
  130. package/dist/number/enum/int8.d.mts.map +1 -1
  131. package/dist/number/enum/int8.mjs +44 -43
  132. package/dist/number/enum/int8.mjs.map +1 -1
  133. package/dist/number/enum/uint8.d.mts +60 -58
  134. package/dist/number/enum/uint8.d.mts.map +1 -1
  135. package/dist/number/enum/uint8.mjs +44 -43
  136. package/dist/number/enum/uint8.mjs.map +1 -1
  137. package/package.json +2 -1
  138. package/src/number/branded-types/finite-number.mts +47 -61
  139. package/src/number/branded-types/int.mts +40 -46
  140. package/src/number/branded-types/int16.mts +65 -58
  141. package/src/number/branded-types/int32.mts +65 -58
  142. package/src/number/branded-types/negative-finite-number.mts +68 -68
  143. package/src/number/branded-types/negative-int.mts +60 -57
  144. package/src/number/branded-types/negative-safe-int.mts +57 -65
  145. package/src/number/branded-types/non-negative-finite-number.mts +74 -64
  146. package/src/number/branded-types/non-negative-int16.mts +64 -57
  147. package/src/number/branded-types/non-negative-int32.mts +64 -58
  148. package/src/number/branded-types/non-positive-finite-number.mts +64 -54
  149. package/src/number/branded-types/non-positive-int.mts +41 -146
  150. package/src/number/branded-types/non-positive-safe-int.mts +54 -53
  151. package/src/number/branded-types/non-zero-finite-number.mts +62 -51
  152. package/src/number/branded-types/non-zero-int.mts +51 -38
  153. package/src/number/branded-types/non-zero-int16.mts +52 -53
  154. package/src/number/branded-types/non-zero-int32.mts +52 -54
  155. package/src/number/branded-types/non-zero-safe-int.mts +53 -54
  156. package/src/number/branded-types/non-zero-uint16.mts +52 -53
  157. package/src/number/branded-types/non-zero-uint32.mts +52 -53
  158. package/src/number/branded-types/positive-finite-number.mts +74 -63
  159. package/src/number/branded-types/positive-int.mts +46 -68
  160. package/src/number/branded-types/positive-int16.mts +61 -57
  161. package/src/number/branded-types/positive-int32.mts +61 -57
  162. package/src/number/branded-types/positive-safe-int.mts +62 -57
  163. package/src/number/branded-types/positive-uint16.mts +61 -57
  164. package/src/number/branded-types/positive-uint32.mts +61 -58
  165. package/src/number/branded-types/safe-int.mts +43 -62
  166. package/src/number/branded-types/safe-uint.mts +62 -57
  167. package/src/number/branded-types/uint.mts +63 -50
  168. package/src/number/branded-types/uint16.mts +60 -58
  169. package/src/number/branded-types/uint32.mts +59 -55
  170. package/src/number/enum/int8.mts +56 -65
  171. package/src/number/enum/uint8.mts +60 -58
@@ -35,109 +35,116 @@ const isNonNegativeFiniteNumber = is;
35
35
  const asNonNegativeFiniteNumber = castType;
36
36
  const NonNegativeFiniteNumber = {
37
37
  /**
38
- * Type guard to check if a value is a NonNegativeFiniteNumber.
38
+ * Type guard that checks if a value is a non-negative finite number.
39
39
  *
40
- * @param value The value to check.
41
- * @returns `true` if the value is a non-negative finite number, `false`
42
- * otherwise.
40
+ * @param value - The value to check
41
+ * @returns `true` if the value is a non-negative finite number, `false` otherwise
42
+ * @see {@link isNonNegativeFiniteNumber} for usage examples
43
43
  */
44
44
  is,
45
45
  /**
46
- * The minimum value for a non-negative finite number.
47
- *
48
- * @readonly
46
+ * The smallest value representable as `NonNegativeFiniteNumber`.
49
47
  */
50
48
  MIN_VALUE,
51
49
  /**
52
- * Returns the smaller of two NonNegativeFiniteNumber values.
50
+ * Returns the smallest of the given non-negative finite numbers.
53
51
  *
54
- * @param a The first NonNegativeFiniteNumber.
55
- * @param b The second NonNegativeFiniteNumber.
56
- * @returns The minimum value as a NonNegativeFiniteNumber.
52
+ * @param values - The non-negative finite numbers to compare (at least one required)
53
+ * @returns The smallest value as a `NonNegativeFiniteNumber`
57
54
  */
58
55
  min: min_,
59
56
  /**
60
- * Returns the larger of two NonNegativeFiniteNumber values.
57
+ * Returns the largest of the given non-negative finite numbers.
61
58
  *
62
- * @param a The first NonNegativeFiniteNumber.
63
- * @param b The second NonNegativeFiniteNumber.
64
- * @returns The maximum value as a NonNegativeFiniteNumber.
59
+ * @param values - The non-negative finite numbers to compare (at least one required)
60
+ * @returns The largest value as a `NonNegativeFiniteNumber`
65
61
  */
66
62
  max: max_,
67
63
  /**
68
- * Clamps a number to the non-negative finite range.
64
+ * Clamps a `number` into the `NonNegativeFiniteNumber` range `[MIN_VALUE,
65
+ * MAX_VALUE]`.
69
66
  *
70
- * @param value The number to clamp.
71
- * @returns The value clamped to [0, +∞) as a NonNegativeFiniteNumber.
67
+ * @param value - The value to clamp
68
+ * @returns The clamped value as a `NonNegativeFiniteNumber`
72
69
  */
73
70
  clamp,
74
71
  /**
75
- * Rounds down a NonNegativeFiniteNumber to the nearest integer.
72
+ * Returns the greatest integer less than or equal to a non-negative finite
73
+ * number.
76
74
  *
77
- * @param x The NonNegativeFiniteNumber to round down.
78
- * @returns The floor value as a Uint.
75
+ * @param a - The non-negative finite number value
76
+ * @returns The floored value as an integer
79
77
  */
80
78
  floor,
81
79
  /**
82
- * Rounds up a NonNegativeFiniteNumber to the nearest integer.
80
+ * Returns the smallest integer greater than or equal to a non-negative finite
81
+ * number.
83
82
  *
84
- * @param x The NonNegativeFiniteNumber to round up.
85
- * @returns The ceiling value as a Uint.
83
+ * @param a - The non-negative finite number value
84
+ * @returns The ceiled value as an integer
86
85
  */
87
86
  ceil,
88
87
  /**
89
- * Rounds a NonNegativeFiniteNumber to the nearest integer.
88
+ * Returns the value of a non-negative finite number rounded to the nearest
89
+ * integer.
90
90
  *
91
- * @param x The NonNegativeFiniteNumber to round.
92
- * @returns The rounded value as a Uint.
91
+ * @param a - The non-negative finite number value
92
+ * @returns The rounded value as an integer
93
93
  */
94
94
  round,
95
95
  /**
96
- * Generates a random NonNegativeFiniteNumber value.
96
+ * Generates a random `NonNegativeFiniteNumber` within the given range.
97
+ *
98
+ * The range is inclusive on both ends.
97
99
  *
98
- * @returns A random non-negative finite number.
100
+ * @param min - The minimum value (inclusive)
101
+ * @param max - The maximum value (inclusive)
102
+ * @returns A random `NonNegativeFiniteNumber` in `[min, max]`
99
103
  */
100
104
  random,
101
105
  /**
102
- * Raises a NonNegativeFiniteNumber to the power of another
103
- * NonNegativeFiniteNumber.
106
+ * Raises `a` to the power `b`, returning `a ** b` as a
107
+ * `NonNegativeFiniteNumber`.
104
108
  *
105
- * @param a The base NonNegativeFiniteNumber.
106
- * @param b The exponent NonNegativeFiniteNumber.
107
- * @returns `a ** b` clamped to [0, +∞) as a NonNegativeFiniteNumber.
109
+ * @param a - The base non-negative finite number
110
+ * @param b - The exponent non-negative finite number
111
+ * @returns `a ** b` as a `NonNegativeFiniteNumber`
108
112
  */
109
113
  pow,
110
114
  /**
111
- * Adds two NonNegativeFiniteNumber values.
115
+ * Adds two non-negative finite numbers, returning `a + b` as a
116
+ * `NonNegativeFiniteNumber`.
112
117
  *
113
- * @param a The first NonNegativeFiniteNumber.
114
- * @param b The second NonNegativeFiniteNumber.
115
- * @returns `a + b` clamped to [0, +∞) as a NonNegativeFiniteNumber.
118
+ * @param a - The first non-negative finite number
119
+ * @param b - The second non-negative finite number
120
+ * @returns The sum of `a` and `b` as a `NonNegativeFiniteNumber`
116
121
  */
117
122
  add,
118
123
  /**
119
- * Subtracts one NonNegativeFiniteNumber from another.
124
+ * Subtracts two non-negative finite numbers, returning `a - b` as a
125
+ * `NonNegativeFiniteNumber`.
120
126
  *
121
- * @param a The minuend NonNegativeFiniteNumber.
122
- * @param b The subtrahend NonNegativeFiniteNumber.
123
- * @returns `a - b` clamped to [0, +∞) as a NonNegativeFiniteNumber (minimum
124
- * 0).
127
+ * @param a - The first non-negative finite number
128
+ * @param b - The second non-negative finite number
129
+ * @returns The difference of `a` and `b` as a `NonNegativeFiniteNumber`
125
130
  */
126
131
  sub,
127
132
  /**
128
- * Multiplies two NonNegativeFiniteNumber values.
133
+ * Multiplies two non-negative finite numbers, returning `a * b` as a
134
+ * `NonNegativeFiniteNumber`.
129
135
  *
130
- * @param a The first NonNegativeFiniteNumber.
131
- * @param b The second NonNegativeFiniteNumber.
132
- * @returns `a * b` clamped to [0, +∞) as a NonNegativeFiniteNumber.
136
+ * @param a - The first non-negative finite number
137
+ * @param b - The second non-negative finite number
138
+ * @returns The product of `a` and `b` as a `NonNegativeFiniteNumber`
133
139
  */
134
140
  mul,
135
141
  /**
136
- * Divides one NonNegativeFiniteNumber by another.
142
+ * Divides two non-negative finite numbers, returning `a / b` as a
143
+ * `NonNegativeFiniteNumber`.
137
144
  *
138
- * @param a The dividend NonNegativeFiniteNumber.
139
- * @param b The divisor NonNegativeFiniteNumber.
140
- * @returns `a / b` clamped to [0, +∞) as a NonNegativeFiniteNumber.
145
+ * @param a - The dividend
146
+ * @param b - The divisor (must be non-zero)
147
+ * @returns `a / b` as a `NonNegativeFiniteNumber`
141
148
  */
142
149
  div
143
150
  };
@@ -1 +1 @@
1
- {"version":3,"file":"non-negative-finite-number.mjs","sources":["../../../src/number/branded-types/non-negative-finite-number.mts"],"sourcesContent":["import {\n type NonNegativeFiniteNumber as TtfImported_NonNegativeFiniteNumber,\n type Uint,\n} from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonNegativeFiniteNumber = TtfImported_NonNegativeFiniteNumber;\n\ntype ElementType = NonNegativeFiniteNumber;\n\nconst typeNameInMessage = 'a non-negative finite number';\n\nconst {\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForFloat<\n ElementType,\n 0,\n number\n>({\n MIN_VALUE: 0,\n MAX_VALUE: Number.MAX_VALUE,\n typeNameInMessage,\n} as const);\n\nconst floor = (\n x: ElementType,\n): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n Math.floor(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;\n\nconst ceil = (\n x: ElementType,\n): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n Math.ceil(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;\n\nconst round = (\n x: ElementType,\n): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n Math.round(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;\n\nexpectType<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>, Uint>(\n '=',\n);\n\n/**\n * Checks if a number is a NonNegativeFiniteNumber (a finite number >= 0).\n *\n * @param value The value to check.\n * @returns `true` if the value is a NonNegativeFiniteNumber, `false` otherwise.\n */\nexport const isNonNegativeFiniteNumber = is;\n\n/**\n * Casts a number to a NonNegativeFiniteNumber type.\n *\n * @param value The value to cast.\n * @returns The value as a NonNegativeFiniteNumber type.\n * @throws {TypeError} If the value is not a non-negative finite number.\n */\nexport const asNonNegativeFiniteNumber = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for non-negative finite\n * numbers.\n *\n * All operations maintain the non-negative constraint by clamping negative\n * results to 0, while ensuring results remain finite (excluding NaN and\n * Infinity). This type is useful for representing measurements, distances,\n * weights, and other inherently non-negative values.\n */\nexport const NonNegativeFiniteNumber = {\n /**\n * Type guard to check if a value is a NonNegativeFiniteNumber.\n *\n * @param value The value to check.\n * @returns `true` if the value is a non-negative finite number, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a non-negative finite number.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * Returns the smaller of two NonNegativeFiniteNumber values.\n *\n * @param a The first NonNegativeFiniteNumber.\n * @param b The second NonNegativeFiniteNumber.\n * @returns The minimum value as a NonNegativeFiniteNumber.\n */\n min: min_,\n\n /**\n * Returns the larger of two NonNegativeFiniteNumber values.\n *\n * @param a The first NonNegativeFiniteNumber.\n * @param b The second NonNegativeFiniteNumber.\n * @returns The maximum value as a NonNegativeFiniteNumber.\n */\n max: max_,\n\n /**\n * Clamps a number to the non-negative finite range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [0, +∞) as a NonNegativeFiniteNumber.\n */\n clamp,\n\n /**\n * Rounds down a NonNegativeFiniteNumber to the nearest integer.\n *\n * @param x The NonNegativeFiniteNumber to round down.\n * @returns The floor value as a Uint.\n */\n floor,\n\n /**\n * Rounds up a NonNegativeFiniteNumber to the nearest integer.\n *\n * @param x The NonNegativeFiniteNumber to round up.\n * @returns The ceiling value as a Uint.\n */\n ceil,\n\n /**\n * Rounds a NonNegativeFiniteNumber to the nearest integer.\n *\n * @param x The NonNegativeFiniteNumber to round.\n * @returns The rounded value as a Uint.\n */\n round,\n\n /**\n * Generates a random NonNegativeFiniteNumber value.\n *\n * @returns A random non-negative finite number.\n */\n random,\n\n /**\n * Raises a NonNegativeFiniteNumber to the power of another\n * NonNegativeFiniteNumber.\n *\n * @param a The base NonNegativeFiniteNumber.\n * @param b The exponent NonNegativeFiniteNumber.\n * @returns `a ** b` clamped to [0, +∞) as a NonNegativeFiniteNumber.\n */\n pow,\n\n /**\n * Adds two NonNegativeFiniteNumber values.\n *\n * @param a The first NonNegativeFiniteNumber.\n * @param b The second NonNegativeFiniteNumber.\n * @returns `a + b` clamped to [0, +∞) as a NonNegativeFiniteNumber.\n */\n add,\n\n /**\n * Subtracts one NonNegativeFiniteNumber from another.\n *\n * @param a The minuend NonNegativeFiniteNumber.\n * @param b The subtrahend NonNegativeFiniteNumber.\n * @returns `a - b` clamped to [0, +∞) as a NonNegativeFiniteNumber (minimum\n * 0).\n */\n sub,\n\n /**\n * Multiplies two NonNegativeFiniteNumber values.\n *\n * @param a The first NonNegativeFiniteNumber.\n * @param b The second NonNegativeFiniteNumber.\n * @returns `a * b` clamped to [0, +∞) as a NonNegativeFiniteNumber.\n */\n mul,\n\n /**\n * Divides one NonNegativeFiniteNumber by another.\n *\n * @param a The dividend NonNegativeFiniteNumber.\n * @param b The divisor NonNegativeFiniteNumber.\n * @returns `a / b` clamped to [0, +∞) as a NonNegativeFiniteNumber.\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof NonNegativeFiniteNumber,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'non-negative'\n >\n>('=');\n\nexpectType<\n typeof NonNegativeFiniteNumber,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'non-negative'\n >\n>('<=');\n"],"names":[],"mappings":";;AAWA,MAAM,iBAAA,GAAoB,8BAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,iBAAA,CAI1C;AAAA,EACA,SAAA,EAAW,CAAA;AAAA,EACX,WAAW,MAAA,CAAO,SAAA;AAAA,EAClB;AACF,CAAU,CAAA;AAEV,MAAM,QAAQ,CACZ,CAAA;AAAA;AAAA,EAGA,IAAA,CAAK,MAAM,CAAC;AAAA,CAAA;AAEd,MAAM,OAAO,CACX,CAAA;AAAA;AAAA,EAGA,IAAA,CAAK,KAAK,CAAC;AAAA,CAAA;AAEb,MAAM,QAAQ,CACZ,CAAA;AAAA;AAAA,EAGA,IAAA,CAAK,MAAM,CAAC;AAAA,CAAA;AAYP,MAAM,yBAAA,GAA4B;AASlC,MAAM,yBAAA,GAA4B;AAWlC,MAAM,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrC,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AACF;;;;"}
1
+ {"version":3,"file":"non-negative-finite-number.mjs","sources":["../../../src/number/branded-types/non-negative-finite-number.mts"],"sourcesContent":["import {\n type NonNegativeFiniteNumber as TtfImported_NonNegativeFiniteNumber,\n type Uint,\n} from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonNegativeFiniteNumber = TtfImported_NonNegativeFiniteNumber;\n\ntype ElementType = NonNegativeFiniteNumber;\n\nconst typeNameInMessage = 'a non-negative finite number';\n\nconst {\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForFloat<\n ElementType,\n 0,\n number\n>({\n MIN_VALUE: 0,\n MAX_VALUE: Number.MAX_VALUE,\n typeNameInMessage,\n} as const);\n\nconst floor = (\n x: ElementType,\n): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n Math.floor(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;\n\nconst ceil = (\n x: ElementType,\n): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n Math.ceil(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;\n\nconst round = (\n x: ElementType,\n): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n Math.round(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;\n\nexpectType<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>, Uint>(\n '=',\n);\n\n/**\n * Type guard that checks if a value is a non-negative finite number.\n *\n * Returns `true` only for a finite value — never `NaN`, `Infinity`, or\n * `-Infinity`.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative finite number, `false` otherwise\n */\nexport const isNonNegativeFiniteNumber = is;\n\n/**\n * Casts a `number` to the `NonNegativeFiniteNumber` branded type.\n *\n * Validates that the value is a non-negative finite number and returns it with\n * the `NonNegativeFiniteNumber` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonNegativeFiniteNumber`\n * @throws {TypeError} If the value is not a non-negative finite number\n */\nexport const asNonNegativeFiniteNumber = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonNegativeFiniteNumber`\n * branded type.\n *\n * The `NonNegativeFiniteNumber` type represents a non-negative finite number.\n */\nexport const NonNegativeFiniteNumber = {\n /**\n * Type guard that checks if a value is a non-negative finite number.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative finite number, `false` otherwise\n * @see {@link isNonNegativeFiniteNumber} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonNegativeFiniteNumber`.\n */\n MIN_VALUE,\n\n /**\n * Returns the smallest of the given non-negative finite numbers.\n *\n * @param values - The non-negative finite numbers to compare (at least one required)\n * @returns The smallest value as a `NonNegativeFiniteNumber`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-negative finite numbers.\n *\n * @param values - The non-negative finite numbers to compare (at least one required)\n * @returns The largest value as a `NonNegativeFiniteNumber`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `NonNegativeFiniteNumber` range `[MIN_VALUE,\n * MAX_VALUE]`.\n *\n * @param value - The value to clamp\n * @returns The clamped value as a `NonNegativeFiniteNumber`\n */\n clamp,\n\n /**\n * Returns the greatest integer less than or equal to a non-negative finite\n * number.\n *\n * @param a - The non-negative finite number value\n * @returns The floored value as an integer\n */\n floor,\n\n /**\n * Returns the smallest integer greater than or equal to a non-negative finite\n * number.\n *\n * @param a - The non-negative finite number value\n * @returns The ceiled value as an integer\n */\n ceil,\n\n /**\n * Returns the value of a non-negative finite number rounded to the nearest\n * integer.\n *\n * @param a - The non-negative finite number value\n * @returns The rounded value as an integer\n */\n round,\n\n /**\n * Generates a random `NonNegativeFiniteNumber` within the given range.\n *\n * The range is inclusive on both ends.\n *\n * @param min - The minimum value (inclusive)\n * @param max - The maximum value (inclusive)\n * @returns A random `NonNegativeFiniteNumber` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a\n * `NonNegativeFiniteNumber`.\n *\n * @param a - The base non-negative finite number\n * @param b - The exponent non-negative finite number\n * @returns `a ** b` as a `NonNegativeFiniteNumber`\n */\n pow,\n\n /**\n * Adds two non-negative finite numbers, returning `a + b` as a\n * `NonNegativeFiniteNumber`.\n *\n * @param a - The first non-negative finite number\n * @param b - The second non-negative finite number\n * @returns The sum of `a` and `b` as a `NonNegativeFiniteNumber`\n */\n add,\n\n /**\n * Subtracts two non-negative finite numbers, returning `a - b` as a\n * `NonNegativeFiniteNumber`.\n *\n * @param a - The first non-negative finite number\n * @param b - The second non-negative finite number\n * @returns The difference of `a` and `b` as a `NonNegativeFiniteNumber`\n */\n sub,\n\n /**\n * Multiplies two non-negative finite numbers, returning `a * b` as a\n * `NonNegativeFiniteNumber`.\n *\n * @param a - The first non-negative finite number\n * @param b - The second non-negative finite number\n * @returns The product of `a` and `b` as a `NonNegativeFiniteNumber`\n */\n mul,\n\n /**\n * Divides two non-negative finite numbers, returning `a / b` as a\n * `NonNegativeFiniteNumber`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns `a / b` as a `NonNegativeFiniteNumber`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof NonNegativeFiniteNumber,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'non-negative'\n >\n>('=');\n\nexpectType<\n typeof NonNegativeFiniteNumber,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'non-negative'\n >\n>('<=');\n"],"names":[],"mappings":";;AAWA,MAAM,iBAAA,GAAoB,8BAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,iBAAA,CAI1C;AAAA,EACA,SAAA,EAAW,CAAA;AAAA,EACX,WAAW,MAAA,CAAO,SAAA;AAAA,EAClB;AACF,CAAU,CAAA;AAEV,MAAM,QAAQ,CACZ,CAAA;AAAA;AAAA,EAGA,IAAA,CAAK,MAAM,CAAC;AAAA,CAAA;AAEd,MAAM,OAAO,CACX,CAAA;AAAA;AAAA,EAGA,IAAA,CAAK,KAAK,CAAC;AAAA,CAAA;AAEb,MAAM,QAAQ,CACZ,CAAA;AAAA;AAAA,EAGA,IAAA,CAAK,MAAM,CAAC;AAAA,CAAA;AAeP,MAAM,yBAAA,GAA4B;AAYlC,MAAM,yBAAA,GAA4B;AAQlC,MAAM,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrC,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AACF;;;;"}
@@ -1,19 +1,24 @@
1
1
  import { type NonNegativeInt16 as TtfImported_NonNegativeInt16 } from 'ts-type-forge';
2
2
  export type NonNegativeInt16 = TtfImported_NonNegativeInt16;
3
3
  /**
4
- * Checks if a number is a NonNegativeInt16 (16-bit non-negative signed integer
5
- * in the range [0, 2^15)).
4
+ * Type guard that checks if a value is a non-negative integer in [0, 2^15).
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is a NonNegativeInt16, `false` otherwise.
6
+ * Returns `true` for a non-negative integer in [0, 2^15) — a value with no
7
+ * fractional component.
8
+ *
9
+ * @param value - The value to check
10
+ * @returns `true` if the value is a non-negative integer in [0, 2^15), `false` otherwise
9
11
  */
10
12
  export declare const isNonNegativeInt16: (a: number) => a is TtfImported_NonNegativeInt16;
11
13
  /**
12
- * Casts a number to a NonNegativeInt16 type.
14
+ * Casts a `number` to the `NonNegativeInt16` branded type.
15
+ *
16
+ * Validates that the value is a non-negative integer in [0, 2^15) and returns
17
+ * it with the `NonNegativeInt16` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as a NonNegativeInt16 type.
16
- * @throws {TypeError} If the value is not a non-negative integer in [0, 2^15).
19
+ * @param value - The value to cast
20
+ * @returns The value as a `NonNegativeInt16`
21
+ * @throws {TypeError} If the value is not a non-negative integer in [0, 2^15)
17
22
  */
18
23
  export declare const asNonNegativeInt16: <N extends number>(x: N) => number & {
19
24
  readonly "< 2^15": true;
@@ -33,102 +38,104 @@ export declare const asNonNegativeInt16: <N extends number>(x: N) => number & {
33
38
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
34
39
  }> & N;
35
40
  /**
36
- * Namespace providing type-safe arithmetic operations for 16-bit non-negative
37
- * integers.
41
+ * Namespace providing type-safe operations for the `NonNegativeInt16` branded
42
+ * type.
38
43
  *
39
- * All operations automatically clamp results to the valid NonNegativeInt16
40
- * range [0, 32767]. This ensures that all arithmetic maintains the 16-bit
41
- * non-negative integer constraint, with negative results clamped to 0 and
42
- * overflow results clamped to MAX_VALUE.
44
+ * The `NonNegativeInt16` type represents a non-negative integer in [0, 2^15).
45
+ * Division (`div`) uses floor division.
43
46
  */
44
47
  export declare const NonNegativeInt16: {
45
48
  /**
46
- * Type guard to check if a value is a NonNegativeInt16.
49
+ * Type guard that checks if a value is a non-negative integer in [0, 2^15).
47
50
  *
48
- * @param value The value to check.
49
- * @returns `true` if the value is a 16-bit non-negative integer, `false`
50
- * otherwise.
51
+ * @param value - The value to check
52
+ * @returns `true` if the value is a non-negative integer in [0, 2^15), `false` otherwise
53
+ * @see {@link isNonNegativeInt16} for usage examples
51
54
  */
52
55
  readonly is: (a: number) => a is TtfImported_NonNegativeInt16;
53
56
  /**
54
- * The minimum value for a 16-bit non-negative integer.
55
- *
56
- * @readonly
57
+ * The smallest value representable as `NonNegativeInt16`.
57
58
  */
58
59
  readonly MIN_VALUE: 0;
59
60
  /**
60
- * The maximum value for a 16-bit non-negative integer.
61
- *
62
- * @readonly
61
+ * The largest value representable as `NonNegativeInt16`.
63
62
  */
64
63
  readonly MAX_VALUE: number;
65
64
  /**
66
- * Returns the smaller of two NonNegativeInt16 values.
65
+ * Returns the smallest of the given non-negative integers.
67
66
  *
68
- * @param a The first NonNegativeInt16.
69
- * @param b The second NonNegativeInt16.
70
- * @returns The minimum value as a NonNegativeInt16.
67
+ * @param values - The non-negative integers to compare (at least one required)
68
+ * @returns The smallest value as a `NonNegativeInt16`
71
69
  */
72
70
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16>[]) => TtfImported_NonNegativeInt16;
73
71
  /**
74
- * Returns the larger of two NonNegativeInt16 values.
72
+ * Returns the largest of the given non-negative integers.
75
73
  *
76
- * @param a The first NonNegativeInt16.
77
- * @param b The second NonNegativeInt16.
78
- * @returns The maximum value as a NonNegativeInt16.
74
+ * @param values - The non-negative integers to compare (at least one required)
75
+ * @returns The largest value as a `NonNegativeInt16`
79
76
  */
80
77
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16>[]) => TtfImported_NonNegativeInt16;
81
78
  /**
82
- * Clamps a number to the NonNegativeInt16 range.
79
+ * Clamps a `number` into the `NonNegativeInt16` range, rounding to the
80
+ * nearest integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
83
81
  *
84
- * @param value The number to clamp.
85
- * @returns The value clamped to [0, 32767] as a NonNegativeInt16.
82
+ * @param value - The value to clamp
83
+ * @returns The clamped value as a `NonNegativeInt16`
86
84
  */
87
85
  readonly clamp: (x: number) => TtfImported_NonNegativeInt16;
88
86
  /**
89
- * Generates a random NonNegativeInt16 value within the valid range.
87
+ * Generates a random `NonNegativeInt16` within the given range.
88
+ *
89
+ * The range is inclusive on both ends.
90
90
  *
91
- * @returns A random NonNegativeInt16 between 0 and 32767.
91
+ * @param min - The minimum value (inclusive)
92
+ * @param max - The maximum value (inclusive)
93
+ * @returns A random `NonNegativeInt16` in `[min, max]`
92
94
  */
93
95
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16> | undefined) => TtfImported_NonNegativeInt16;
94
96
  /**
95
- * Raises a NonNegativeInt16 to the power of another NonNegativeInt16.
97
+ * Raises `a` to the power `b`, returning `a ** b` as a `NonNegativeInt16`
98
+ * (floored to an integer).
96
99
  *
97
- * @param a The base NonNegativeInt16.
98
- * @param b The exponent NonNegativeInt16.
99
- * @returns `a ** b` clamped to [0, 32767] as a NonNegativeInt16.
100
+ * @param a - The base non-negative integer
101
+ * @param b - The exponent non-negative integer
102
+ * @returns `a ** b` as a `NonNegativeInt16`
100
103
  */
101
104
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16>) => TtfImported_NonNegativeInt16;
102
105
  /**
103
- * Adds two NonNegativeInt16 values.
106
+ * Adds two non-negative integers, returning `a + b` as a `NonNegativeInt16`.
104
107
  *
105
- * @param a The first NonNegativeInt16.
106
- * @param b The second NonNegativeInt16.
107
- * @returns `a + b` clamped to [0, 32767] as a NonNegativeInt16.
108
+ * @param a - The first non-negative integer
109
+ * @param b - The second non-negative integer
110
+ * @returns The sum of `a` and `b` as a `NonNegativeInt16`
108
111
  */
109
112
  readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16>) => TtfImported_NonNegativeInt16;
110
113
  /**
111
- * Subtracts one NonNegativeInt16 from another.
114
+ * Subtracts two non-negative integers, returning `a - b` as a
115
+ * `NonNegativeInt16`.
112
116
  *
113
- * @param a The minuend NonNegativeInt16.
114
- * @param b The subtrahend NonNegativeInt16.
115
- * @returns `a - b` clamped to [0, 32767] as a NonNegativeInt16 (minimum 0).
117
+ * @param a - The first non-negative integer
118
+ * @param b - The second non-negative integer
119
+ * @returns The difference of `a` and `b` as a `NonNegativeInt16`
116
120
  */
117
121
  readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16>) => TtfImported_NonNegativeInt16;
118
122
  /**
119
- * Multiplies two NonNegativeInt16 values.
123
+ * Multiplies two non-negative integers, returning `a * b` as a
124
+ * `NonNegativeInt16`.
120
125
  *
121
- * @param a The first NonNegativeInt16.
122
- * @param b The second NonNegativeInt16.
123
- * @returns `a * b` clamped to [0, 32767] as a NonNegativeInt16.
126
+ * @param a - The first non-negative integer
127
+ * @param b - The second non-negative integer
128
+ * @returns The product of `a` and `b` as a `NonNegativeInt16`
124
129
  */
125
130
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16>) => TtfImported_NonNegativeInt16;
126
131
  /**
127
- * Divides one NonNegativeInt16 by another using floor division.
132
+ * Divides two non-negative integers using floor division (`⌊a / b⌋`): the
133
+ * result is `a / b` rounded toward negative infinity, as a
134
+ * `NonNegativeInt16`.
128
135
  *
129
- * @param a The dividend NonNegativeInt16.
130
- * @param b The divisor NonNegativeInt16.
131
- * @returns `⌊a / b⌋` clamped to [0, 32767] as a NonNegativeInt16.
136
+ * @param a - The dividend
137
+ * @param b - The divisor (must be non-zero)
138
+ * @returns The floored quotient as a `NonNegativeInt16`
132
139
  */
133
140
  readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt16>, y: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | import("ts-type-forge").NormalizeBrandUnion<number & {
134
141
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"non-negative-int16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-negative-int16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,IAAI,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAItF,MAAM,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AA+B5D;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,kDAAK,CAAC;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;MAAW,CAAC;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"non-negative-int16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-negative-int16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,IAAI,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAItF,MAAM,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AA+B5D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,kDAAK,CAAC;AAErC;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;MAAW,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;;;;;OAMG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;;OAQG;;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -25,92 +25,96 @@ const isNonNegativeInt16 = is;
25
25
  const asNonNegativeInt16 = castType;
26
26
  const NonNegativeInt16 = {
27
27
  /**
28
- * Type guard to check if a value is a NonNegativeInt16.
28
+ * Type guard that checks if a value is a non-negative integer in [0, 2^15).
29
29
  *
30
- * @param value The value to check.
31
- * @returns `true` if the value is a 16-bit non-negative integer, `false`
32
- * otherwise.
30
+ * @param value - The value to check
31
+ * @returns `true` if the value is a non-negative integer in [0, 2^15), `false` otherwise
32
+ * @see {@link isNonNegativeInt16} for usage examples
33
33
  */
34
34
  is,
35
35
  /**
36
- * The minimum value for a 16-bit non-negative integer.
37
- *
38
- * @readonly
36
+ * The smallest value representable as `NonNegativeInt16`.
39
37
  */
40
38
  MIN_VALUE,
41
39
  /**
42
- * The maximum value for a 16-bit non-negative integer.
43
- *
44
- * @readonly
40
+ * The largest value representable as `NonNegativeInt16`.
45
41
  */
46
42
  MAX_VALUE,
47
43
  /**
48
- * Returns the smaller of two NonNegativeInt16 values.
44
+ * Returns the smallest of the given non-negative integers.
49
45
  *
50
- * @param a The first NonNegativeInt16.
51
- * @param b The second NonNegativeInt16.
52
- * @returns The minimum value as a NonNegativeInt16.
46
+ * @param values - The non-negative integers to compare (at least one required)
47
+ * @returns The smallest value as a `NonNegativeInt16`
53
48
  */
54
49
  min: min_,
55
50
  /**
56
- * Returns the larger of two NonNegativeInt16 values.
51
+ * Returns the largest of the given non-negative integers.
57
52
  *
58
- * @param a The first NonNegativeInt16.
59
- * @param b The second NonNegativeInt16.
60
- * @returns The maximum value as a NonNegativeInt16.
53
+ * @param values - The non-negative integers to compare (at least one required)
54
+ * @returns The largest value as a `NonNegativeInt16`
61
55
  */
62
56
  max: max_,
63
57
  /**
64
- * Clamps a number to the NonNegativeInt16 range.
58
+ * Clamps a `number` into the `NonNegativeInt16` range, rounding to the
59
+ * nearest integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
65
60
  *
66
- * @param value The number to clamp.
67
- * @returns The value clamped to [0, 32767] as a NonNegativeInt16.
61
+ * @param value - The value to clamp
62
+ * @returns The clamped value as a `NonNegativeInt16`
68
63
  */
69
64
  clamp,
70
65
  /**
71
- * Generates a random NonNegativeInt16 value within the valid range.
66
+ * Generates a random `NonNegativeInt16` within the given range.
67
+ *
68
+ * The range is inclusive on both ends.
72
69
  *
73
- * @returns A random NonNegativeInt16 between 0 and 32767.
70
+ * @param min - The minimum value (inclusive)
71
+ * @param max - The maximum value (inclusive)
72
+ * @returns A random `NonNegativeInt16` in `[min, max]`
74
73
  */
75
74
  random,
76
75
  /**
77
- * Raises a NonNegativeInt16 to the power of another NonNegativeInt16.
76
+ * Raises `a` to the power `b`, returning `a ** b` as a `NonNegativeInt16`
77
+ * (floored to an integer).
78
78
  *
79
- * @param a The base NonNegativeInt16.
80
- * @param b The exponent NonNegativeInt16.
81
- * @returns `a ** b` clamped to [0, 32767] as a NonNegativeInt16.
79
+ * @param a - The base non-negative integer
80
+ * @param b - The exponent non-negative integer
81
+ * @returns `a ** b` as a `NonNegativeInt16`
82
82
  */
83
83
  pow,
84
84
  /**
85
- * Adds two NonNegativeInt16 values.
85
+ * Adds two non-negative integers, returning `a + b` as a `NonNegativeInt16`.
86
86
  *
87
- * @param a The first NonNegativeInt16.
88
- * @param b The second NonNegativeInt16.
89
- * @returns `a + b` clamped to [0, 32767] as a NonNegativeInt16.
87
+ * @param a - The first non-negative integer
88
+ * @param b - The second non-negative integer
89
+ * @returns The sum of `a` and `b` as a `NonNegativeInt16`
90
90
  */
91
91
  add,
92
92
  /**
93
- * Subtracts one NonNegativeInt16 from another.
93
+ * Subtracts two non-negative integers, returning `a - b` as a
94
+ * `NonNegativeInt16`.
94
95
  *
95
- * @param a The minuend NonNegativeInt16.
96
- * @param b The subtrahend NonNegativeInt16.
97
- * @returns `a - b` clamped to [0, 32767] as a NonNegativeInt16 (minimum 0).
96
+ * @param a - The first non-negative integer
97
+ * @param b - The second non-negative integer
98
+ * @returns The difference of `a` and `b` as a `NonNegativeInt16`
98
99
  */
99
100
  sub,
100
101
  /**
101
- * Multiplies two NonNegativeInt16 values.
102
+ * Multiplies two non-negative integers, returning `a * b` as a
103
+ * `NonNegativeInt16`.
102
104
  *
103
- * @param a The first NonNegativeInt16.
104
- * @param b The second NonNegativeInt16.
105
- * @returns `a * b` clamped to [0, 32767] as a NonNegativeInt16.
105
+ * @param a - The first non-negative integer
106
+ * @param b - The second non-negative integer
107
+ * @returns The product of `a` and `b` as a `NonNegativeInt16`
106
108
  */
107
109
  mul,
108
110
  /**
109
- * Divides one NonNegativeInt16 by another using floor division.
111
+ * Divides two non-negative integers using floor division (`⌊a / b⌋`): the
112
+ * result is `a / b` rounded toward negative infinity, as a
113
+ * `NonNegativeInt16`.
110
114
  *
111
- * @param a The dividend NonNegativeInt16.
112
- * @param b The divisor NonNegativeInt16.
113
- * @returns `⌊a / b⌋` clamped to [0, 32767] as a NonNegativeInt16.
115
+ * @param a - The dividend
116
+ * @param b - The divisor (must be non-zero)
117
+ * @returns The floored quotient as a `NonNegativeInt16`
114
118
  */
115
119
  div
116
120
  };
@@ -1 +1 @@
1
- {"version":3,"file":"non-negative-int16.mjs","sources":["../../../src/number/branded-types/non-negative-int16.mts"],"sourcesContent":["import { type NonNegativeInt16 as TtfImported_NonNegativeInt16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonNegativeInt16 = TtfImported_NonNegativeInt16;\n\ntype ElementType = NonNegativeInt16;\n\nconst typeNameInMessage = 'a non-negative integer in [0, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 0,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 0,\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a NonNegativeInt16 (16-bit non-negative signed integer\n * in the range [0, 2^15)).\n *\n * @param value The value to check.\n * @returns `true` if the value is a NonNegativeInt16, `false` otherwise.\n */\nexport const isNonNegativeInt16 = is;\n\n/**\n * Casts a number to a NonNegativeInt16 type.\n *\n * @param value The value to cast.\n * @returns The value as a NonNegativeInt16 type.\n * @throws {TypeError} If the value is not a non-negative integer in [0, 2^15).\n */\nexport const asNonNegativeInt16 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 16-bit non-negative\n * integers.\n *\n * All operations automatically clamp results to the valid NonNegativeInt16\n * range [0, 32767]. This ensures that all arithmetic maintains the 16-bit\n * non-negative integer constraint, with negative results clamped to 0 and\n * overflow results clamped to MAX_VALUE.\n */\nexport const NonNegativeInt16 = {\n /**\n * Type guard to check if a value is a NonNegativeInt16.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 16-bit non-negative integer, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a 16-bit non-negative integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 16-bit non-negative integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the smaller of two NonNegativeInt16 values.\n *\n * @param a The first NonNegativeInt16.\n * @param b The second NonNegativeInt16.\n * @returns The minimum value as a NonNegativeInt16.\n */\n min: min_,\n\n /**\n * Returns the larger of two NonNegativeInt16 values.\n *\n * @param a The first NonNegativeInt16.\n * @param b The second NonNegativeInt16.\n * @returns The maximum value as a NonNegativeInt16.\n */\n max: max_,\n\n /**\n * Clamps a number to the NonNegativeInt16 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [0, 32767] as a NonNegativeInt16.\n */\n clamp,\n\n /**\n * Generates a random NonNegativeInt16 value within the valid range.\n *\n * @returns A random NonNegativeInt16 between 0 and 32767.\n */\n random,\n\n /**\n * Raises a NonNegativeInt16 to the power of another NonNegativeInt16.\n *\n * @param a The base NonNegativeInt16.\n * @param b The exponent NonNegativeInt16.\n * @returns `a ** b` clamped to [0, 32767] as a NonNegativeInt16.\n */\n pow,\n\n /**\n * Adds two NonNegativeInt16 values.\n *\n * @param a The first NonNegativeInt16.\n * @param b The second NonNegativeInt16.\n * @returns `a + b` clamped to [0, 32767] as a NonNegativeInt16.\n */\n add,\n\n /**\n * Subtracts one NonNegativeInt16 from another.\n *\n * @param a The minuend NonNegativeInt16.\n * @param b The subtrahend NonNegativeInt16.\n * @returns `a - b` clamped to [0, 32767] as a NonNegativeInt16 (minimum 0).\n */\n sub,\n\n /**\n * Multiplies two NonNegativeInt16 values.\n *\n * @param a The first NonNegativeInt16.\n * @param b The second NonNegativeInt16.\n * @returns `a * b` clamped to [0, 32767] as a NonNegativeInt16.\n */\n mul,\n\n /**\n * Divides one NonNegativeInt16 by another using floor division.\n *\n * @param a The dividend NonNegativeInt16.\n * @param b The divisor NonNegativeInt16.\n * @returns `⌊a / b⌋` clamped to [0, 32767] as a NonNegativeInt16.\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof NonNegativeInt16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('=');\n\nexpectType<\n typeof NonNegativeInt16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,qCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AASH,MAAM,kBAAA,GAAqB;AAS3B,MAAM,kBAAA,GAAqB;AAW3B,MAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AACF;;;;"}
1
+ {"version":3,"file":"non-negative-int16.mjs","sources":["../../../src/number/branded-types/non-negative-int16.mts"],"sourcesContent":["import { type NonNegativeInt16 as TtfImported_NonNegativeInt16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonNegativeInt16 = TtfImported_NonNegativeInt16;\n\ntype ElementType = NonNegativeInt16;\n\nconst typeNameInMessage = 'a non-negative integer in [0, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 0,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 0,\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-negative integer in [0, 2^15).\n *\n * Returns `true` for a non-negative integer in [0, 2^15) — a value with no\n * fractional component.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative integer in [0, 2^15), `false` otherwise\n */\nexport const isNonNegativeInt16 = is;\n\n/**\n * Casts a `number` to the `NonNegativeInt16` branded type.\n *\n * Validates that the value is a non-negative integer in [0, 2^15) and returns\n * it with the `NonNegativeInt16` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonNegativeInt16`\n * @throws {TypeError} If the value is not a non-negative integer in [0, 2^15)\n */\nexport const asNonNegativeInt16 = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonNegativeInt16` branded\n * type.\n *\n * The `NonNegativeInt16` type represents a non-negative integer in [0, 2^15).\n * Division (`div`) uses floor division.\n */\nexport const NonNegativeInt16 = {\n /**\n * Type guard that checks if a value is a non-negative integer in [0, 2^15).\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative integer in [0, 2^15), `false` otherwise\n * @see {@link isNonNegativeInt16} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonNegativeInt16`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonNegativeInt16`.\n */\n MAX_VALUE,\n\n /**\n * Returns the smallest of the given non-negative integers.\n *\n * @param values - The non-negative integers to compare (at least one required)\n * @returns The smallest value as a `NonNegativeInt16`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-negative integers.\n *\n * @param values - The non-negative integers to compare (at least one required)\n * @returns The largest value as a `NonNegativeInt16`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `NonNegativeInt16` range, rounding to the\n * nearest integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.\n *\n * @param value - The value to clamp\n * @returns The clamped value as a `NonNegativeInt16`\n */\n clamp,\n\n /**\n * Generates a random `NonNegativeInt16` within the given range.\n *\n * The range is inclusive on both ends.\n *\n * @param min - The minimum value (inclusive)\n * @param max - The maximum value (inclusive)\n * @returns A random `NonNegativeInt16` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonNegativeInt16`\n * (floored to an integer).\n *\n * @param a - The base non-negative integer\n * @param b - The exponent non-negative integer\n * @returns `a ** b` as a `NonNegativeInt16`\n */\n pow,\n\n /**\n * Adds two non-negative integers, returning `a + b` as a `NonNegativeInt16`.\n *\n * @param a - The first non-negative integer\n * @param b - The second non-negative integer\n * @returns The sum of `a` and `b` as a `NonNegativeInt16`\n */\n add,\n\n /**\n * Subtracts two non-negative integers, returning `a - b` as a\n * `NonNegativeInt16`.\n *\n * @param a - The first non-negative integer\n * @param b - The second non-negative integer\n * @returns The difference of `a` and `b` as a `NonNegativeInt16`\n */\n sub,\n\n /**\n * Multiplies two non-negative integers, returning `a * b` as a\n * `NonNegativeInt16`.\n *\n * @param a - The first non-negative integer\n * @param b - The second non-negative integer\n * @returns The product of `a` and `b` as a `NonNegativeInt16`\n */\n mul,\n\n /**\n * Divides two non-negative integers using floor division (`⌊a / b⌋`): the\n * result is `a / b` rounded toward negative infinity, as a\n * `NonNegativeInt16`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as a `NonNegativeInt16`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof NonNegativeInt16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('=');\n\nexpectType<\n typeof NonNegativeInt16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,qCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,kBAAA,GAAqB;AAY3B,MAAM,kBAAA,GAAqB;AAS3B,MAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA;AACF;;;;"}