@rickosborne/rebound 2025.2.16
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 +1469 -0
- package/assert-bounded.cjs +44 -0
- package/assert-bounded.cjs.map +6 -0
- package/assert-bounded.d.ts +11 -0
- package/assert-bounded.d.ts.map +1 -0
- package/assert-bounded.mjs +25 -0
- package/assert-bounded.mjs.map +6 -0
- package/bound.cjs +132 -0
- package/bound.cjs.map +6 -0
- package/bound.d.ts +35 -0
- package/bound.d.ts.map +1 -0
- package/bound.mjs +113 -0
- package/bound.mjs.map +6 -0
- package/effective-range.cjs +30 -0
- package/effective-range.cjs.map +6 -0
- package/effective-range.d.ts +7 -0
- package/effective-range.d.ts.map +1 -0
- package/effective-range.mjs +11 -0
- package/effective-range.mjs.map +6 -0
- package/empty-range.cjs +45 -0
- package/empty-range.cjs.map +6 -0
- package/empty-range.d.ts +11 -0
- package/empty-range.d.ts.map +1 -0
- package/empty-range.mjs +26 -0
- package/empty-range.mjs.map +6 -0
- package/from-number-bounded.cjs +49 -0
- package/from-number-bounded.cjs.map +6 -0
- package/from-number-bounded.d.ts +12 -0
- package/from-number-bounded.d.ts.map +1 -0
- package/from-number-bounded.mjs +30 -0
- package/from-number-bounded.mjs.map +6 -0
- package/guard-bounded.cjs +38 -0
- package/guard-bounded.cjs.map +6 -0
- package/guard-bounded.d.ts +15 -0
- package/guard-bounded.d.ts.map +1 -0
- package/guard-bounded.mjs +19 -0
- package/guard-bounded.mjs.map +6 -0
- package/index.cjs +49 -0
- package/index.cjs.map +6 -0
- package/index.d.ts +32 -0
- package/index.d.ts.map +1 -0
- package/index.mjs +32 -0
- package/index.mjs.map +6 -0
- package/int255-from-01.cjs +34 -0
- package/int255-from-01.cjs.map +6 -0
- package/int255-from-01.d.ts +8 -0
- package/int255-from-01.d.ts.map +1 -0
- package/int255-from-01.mjs +15 -0
- package/int255-from-01.mjs.map +6 -0
- package/int255.cjs +34 -0
- package/int255.cjs.map +6 -0
- package/int255.d.ts +9 -0
- package/int255.d.ts.map +1 -0
- package/int255.mjs +14 -0
- package/int255.mjs.map +6 -0
- package/int360.cjs +34 -0
- package/int360.cjs.map +6 -0
- package/int360.d.ts +9 -0
- package/int360.d.ts.map +1 -0
- package/int360.mjs +14 -0
- package/int360.mjs.map +6 -0
- package/integer-from.cjs +54 -0
- package/integer-from.cjs.map +6 -0
- package/integer-from.d.ts +19 -0
- package/integer-from.d.ts.map +1 -0
- package/integer-from.mjs +35 -0
- package/integer-from.mjs.map +6 -0
- package/integer-generator.cjs +54 -0
- package/integer-generator.cjs.map +6 -0
- package/integer-generator.d.ts +9 -0
- package/integer-generator.d.ts.map +1 -0
- package/integer-generator.mjs +35 -0
- package/integer-generator.mjs.map +6 -0
- package/integer-range.cjs +50 -0
- package/integer-range.cjs.map +6 -0
- package/integer-range.d.ts +9 -0
- package/integer-range.d.ts.map +1 -0
- package/integer-range.mjs +31 -0
- package/integer-range.mjs.map +6 -0
- package/number-range.cjs +97 -0
- package/number-range.cjs.map +6 -0
- package/number-range.d.ts +20 -0
- package/number-range.d.ts.map +1 -0
- package/number-range.mjs +78 -0
- package/number-range.mjs.map +6 -0
- package/package.json +248 -0
- package/random-bounded.cjs +52 -0
- package/random-bounded.cjs.map +6 -0
- package/random-bounded.d.ts +9 -0
- package/random-bounded.d.ts.map +1 -0
- package/random-bounded.mjs +33 -0
- package/random-bounded.mjs.map +6 -0
- package/range-base.cjs +127 -0
- package/range-base.cjs.map +6 -0
- package/range-base.d.ts +29 -0
- package/range-base.d.ts.map +1 -0
- package/range-base.mjs +108 -0
- package/range-base.mjs.map +6 -0
- package/range-like.cjs +25 -0
- package/range-like.cjs.map +6 -0
- package/range-like.d.ts +20 -0
- package/range-like.d.ts.map +1 -0
- package/range-like.mjs +5 -0
- package/range-like.mjs.map +6 -0
- package/range.cjs +41 -0
- package/range.cjs.map +6 -0
- package/range.d.ts +4 -0
- package/range.d.ts.map +1 -0
- package/range.mjs +22 -0
- package/range.mjs.map +6 -0
- package/real-range.cjs +53 -0
- package/real-range.cjs.map +6 -0
- package/real-range.d.ts +8 -0
- package/real-range.d.ts.map +1 -0
- package/real-range.mjs +34 -0
- package/real-range.mjs.map +6 -0
- package/real01-from-255.cjs +37 -0
- package/real01-from-255.cjs.map +6 -0
- package/real01-from-255.d.ts +10 -0
- package/real01-from-255.d.ts.map +1 -0
- package/real01-from-255.mjs +18 -0
- package/real01-from-255.mjs.map +6 -0
- package/real01.cjs +34 -0
- package/real01.cjs.map +6 -0
- package/real01.d.ts +9 -0
- package/real01.d.ts.map +1 -0
- package/real01.mjs +14 -0
- package/real01.mjs.map +6 -0
- package/real255-from-01.cjs +28 -0
- package/real255-from-01.cjs.map +6 -0
- package/real255-from-01.d.ts +7 -0
- package/real255-from-01.d.ts.map +1 -0
- package/real255-from-01.mjs +9 -0
- package/real255-from-01.mjs.map +6 -0
- package/real255.cjs +34 -0
- package/real255.cjs.map +6 -0
- package/real255.d.ts +9 -0
- package/real255.d.ts.map +1 -0
- package/real255.mjs +14 -0
- package/real255.mjs.map +6 -0
- package/real360.cjs +34 -0
- package/real360.cjs.map +6 -0
- package/real360.d.ts +9 -0
- package/real360.d.ts.map +1 -0
- package/real360.mjs +14 -0
- package/real360.mjs.map +6 -0
- package/rebound-builder.cjs +148 -0
- package/rebound-builder.cjs.map +6 -0
- package/rebound-builder.d.ts +46 -0
- package/rebound-builder.d.ts.map +1 -0
- package/rebound-builder.mjs +129 -0
- package/rebound-builder.mjs.map +6 -0
- package/rebound.cjs +156 -0
- package/rebound.cjs.map +6 -0
- package/rebound.d.ts +70 -0
- package/rebound.d.ts.map +1 -0
- package/rebound.mjs +137 -0
- package/rebound.mjs.map +6 -0
- package/same-bounds.cjs +46 -0
- package/same-bounds.cjs.map +6 -0
- package/same-bounds.d.ts +4 -0
- package/same-bounds.d.ts.map +1 -0
- package/same-bounds.mjs +27 -0
- package/same-bounds.mjs.map +6 -0
- package/scale-bounded.cjs +59 -0
- package/scale-bounded.cjs.map +6 -0
- package/scale-bounded.d.ts +12 -0
- package/scale-bounded.d.ts.map +1 -0
- package/scale-bounded.mjs +40 -0
- package/scale-bounded.mjs.map +6 -0
- package/spec.cjs +41 -0
- package/spec.cjs.map +6 -0
- package/spec.d.ts +204 -0
- package/spec.d.ts.map +1 -0
- package/spec.mjs +21 -0
- package/spec.mjs.map +6 -0
- package/string-range.cjs +40 -0
- package/string-range.cjs.map +6 -0
- package/string-range.d.ts +8 -0
- package/string-range.d.ts.map +1 -0
- package/string-range.mjs +21 -0
- package/string-range.mjs.map +6 -0
- package/typed-function.cjs +42 -0
- package/typed-function.cjs.map +6 -0
- package/typed-function.d.ts +3 -0
- package/typed-function.d.ts.map +1 -0
- package/typed-function.mjs +23 -0
- package/typed-function.mjs.map +6 -0
- package/util.cjs +28 -0
- package/util.cjs.map +6 -0
- package/util.d.ts +3 -0
- package/util.d.ts.map +1 -0
- package/util.mjs +9 -0
- package/util.mjs.map +6 -0
package/package.json
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
{
|
|
2
|
+
"author": {
|
|
3
|
+
"name": "Rick Osborne",
|
|
4
|
+
"url": "https://rickosborne.org"
|
|
5
|
+
},
|
|
6
|
+
"dependencies": {
|
|
7
|
+
"@rickosborne/foundation": "2025.2.16",
|
|
8
|
+
"@rickosborne/guard": "2025.2.16",
|
|
9
|
+
"@rickosborne/typical": "2025.2.16"
|
|
10
|
+
},
|
|
11
|
+
"description": "Rick Osborne's utilities for working with bounded numbers",
|
|
12
|
+
"engines": {
|
|
13
|
+
"node": ">=14"
|
|
14
|
+
},
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./index.d.ts",
|
|
18
|
+
"import": "./index.mjs",
|
|
19
|
+
"require": "./index.cjs",
|
|
20
|
+
"default": "./index.mjs"
|
|
21
|
+
},
|
|
22
|
+
"./*.js": {
|
|
23
|
+
"types": "./*.d.ts",
|
|
24
|
+
"import": "./*.mjs",
|
|
25
|
+
"require": "./*.cjs",
|
|
26
|
+
"default": "./*.mjs"
|
|
27
|
+
},
|
|
28
|
+
"./assert-bounded": {
|
|
29
|
+
"types": "./assert-bounded.d.ts",
|
|
30
|
+
"import": "./assert-bounded.mjs",
|
|
31
|
+
"require": "./assert-bounded.cjs",
|
|
32
|
+
"default": "./assert-bounded.mjs"
|
|
33
|
+
},
|
|
34
|
+
"./bound": {
|
|
35
|
+
"types": "./bound.d.ts",
|
|
36
|
+
"import": "./bound.mjs",
|
|
37
|
+
"require": "./bound.cjs",
|
|
38
|
+
"default": "./bound.mjs"
|
|
39
|
+
},
|
|
40
|
+
"./effective-range": {
|
|
41
|
+
"types": "./effective-range.d.ts",
|
|
42
|
+
"import": "./effective-range.mjs",
|
|
43
|
+
"require": "./effective-range.cjs",
|
|
44
|
+
"default": "./effective-range.mjs"
|
|
45
|
+
},
|
|
46
|
+
"./empty-range": {
|
|
47
|
+
"types": "./empty-range.d.ts",
|
|
48
|
+
"import": "./empty-range.mjs",
|
|
49
|
+
"require": "./empty-range.cjs",
|
|
50
|
+
"default": "./empty-range.mjs"
|
|
51
|
+
},
|
|
52
|
+
"./from-number-bounded": {
|
|
53
|
+
"types": "./from-number-bounded.d.ts",
|
|
54
|
+
"import": "./from-number-bounded.mjs",
|
|
55
|
+
"require": "./from-number-bounded.cjs",
|
|
56
|
+
"default": "./from-number-bounded.mjs"
|
|
57
|
+
},
|
|
58
|
+
"./guard-bounded": {
|
|
59
|
+
"types": "./guard-bounded.d.ts",
|
|
60
|
+
"import": "./guard-bounded.mjs",
|
|
61
|
+
"require": "./guard-bounded.cjs",
|
|
62
|
+
"default": "./guard-bounded.mjs"
|
|
63
|
+
},
|
|
64
|
+
"./int255": {
|
|
65
|
+
"types": "./int255.d.ts",
|
|
66
|
+
"import": "./int255.mjs",
|
|
67
|
+
"require": "./int255.cjs",
|
|
68
|
+
"default": "./int255.mjs"
|
|
69
|
+
},
|
|
70
|
+
"./int255-from-01": {
|
|
71
|
+
"types": "./int255-from-01.d.ts",
|
|
72
|
+
"import": "./int255-from-01.mjs",
|
|
73
|
+
"require": "./int255-from-01.cjs",
|
|
74
|
+
"default": "./int255-from-01.mjs"
|
|
75
|
+
},
|
|
76
|
+
"./int360": {
|
|
77
|
+
"types": "./int360.d.ts",
|
|
78
|
+
"import": "./int360.mjs",
|
|
79
|
+
"require": "./int360.cjs",
|
|
80
|
+
"default": "./int360.mjs"
|
|
81
|
+
},
|
|
82
|
+
"./integer-from": {
|
|
83
|
+
"types": "./integer-from.d.ts",
|
|
84
|
+
"import": "./integer-from.mjs",
|
|
85
|
+
"require": "./integer-from.cjs",
|
|
86
|
+
"default": "./integer-from.mjs"
|
|
87
|
+
},
|
|
88
|
+
"./integer-generator": {
|
|
89
|
+
"types": "./integer-generator.d.ts",
|
|
90
|
+
"import": "./integer-generator.mjs",
|
|
91
|
+
"require": "./integer-generator.cjs",
|
|
92
|
+
"default": "./integer-generator.mjs"
|
|
93
|
+
},
|
|
94
|
+
"./integer-range": {
|
|
95
|
+
"types": "./integer-range.d.ts",
|
|
96
|
+
"import": "./integer-range.mjs",
|
|
97
|
+
"require": "./integer-range.cjs",
|
|
98
|
+
"default": "./integer-range.mjs"
|
|
99
|
+
},
|
|
100
|
+
"./number-range": {
|
|
101
|
+
"types": "./number-range.d.ts",
|
|
102
|
+
"import": "./number-range.mjs",
|
|
103
|
+
"require": "./number-range.cjs",
|
|
104
|
+
"default": "./number-range.mjs"
|
|
105
|
+
},
|
|
106
|
+
"./random-bounded": {
|
|
107
|
+
"types": "./random-bounded.d.ts",
|
|
108
|
+
"import": "./random-bounded.mjs",
|
|
109
|
+
"require": "./random-bounded.cjs",
|
|
110
|
+
"default": "./random-bounded.mjs"
|
|
111
|
+
},
|
|
112
|
+
"./range": {
|
|
113
|
+
"types": "./range.d.ts",
|
|
114
|
+
"import": "./range.mjs",
|
|
115
|
+
"require": "./range.cjs",
|
|
116
|
+
"default": "./range.mjs"
|
|
117
|
+
},
|
|
118
|
+
"./range-base": {
|
|
119
|
+
"types": "./range-base.d.ts",
|
|
120
|
+
"import": "./range-base.mjs",
|
|
121
|
+
"require": "./range-base.cjs",
|
|
122
|
+
"default": "./range-base.mjs"
|
|
123
|
+
},
|
|
124
|
+
"./range-like": {
|
|
125
|
+
"types": "./range-like.d.ts",
|
|
126
|
+
"import": "./range-like.mjs",
|
|
127
|
+
"require": "./range-like.cjs",
|
|
128
|
+
"default": "./range-like.mjs"
|
|
129
|
+
},
|
|
130
|
+
"./real-range": {
|
|
131
|
+
"types": "./real-range.d.ts",
|
|
132
|
+
"import": "./real-range.mjs",
|
|
133
|
+
"require": "./real-range.cjs",
|
|
134
|
+
"default": "./real-range.mjs"
|
|
135
|
+
},
|
|
136
|
+
"./real01": {
|
|
137
|
+
"types": "./real01.d.ts",
|
|
138
|
+
"import": "./real01.mjs",
|
|
139
|
+
"require": "./real01.cjs",
|
|
140
|
+
"default": "./real01.mjs"
|
|
141
|
+
},
|
|
142
|
+
"./real01-from-255": {
|
|
143
|
+
"types": "./real01-from-255.d.ts",
|
|
144
|
+
"import": "./real01-from-255.mjs",
|
|
145
|
+
"require": "./real01-from-255.cjs",
|
|
146
|
+
"default": "./real01-from-255.mjs"
|
|
147
|
+
},
|
|
148
|
+
"./real255": {
|
|
149
|
+
"types": "./real255.d.ts",
|
|
150
|
+
"import": "./real255.mjs",
|
|
151
|
+
"require": "./real255.cjs",
|
|
152
|
+
"default": "./real255.mjs"
|
|
153
|
+
},
|
|
154
|
+
"./real255-from-01": {
|
|
155
|
+
"types": "./real255-from-01.d.ts",
|
|
156
|
+
"import": "./real255-from-01.mjs",
|
|
157
|
+
"require": "./real255-from-01.cjs",
|
|
158
|
+
"default": "./real255-from-01.mjs"
|
|
159
|
+
},
|
|
160
|
+
"./real360": {
|
|
161
|
+
"types": "./real360.d.ts",
|
|
162
|
+
"import": "./real360.mjs",
|
|
163
|
+
"require": "./real360.cjs",
|
|
164
|
+
"default": "./real360.mjs"
|
|
165
|
+
},
|
|
166
|
+
"./rebound": {
|
|
167
|
+
"types": "./rebound.d.ts",
|
|
168
|
+
"import": "./rebound.mjs",
|
|
169
|
+
"require": "./rebound.cjs",
|
|
170
|
+
"default": "./rebound.mjs"
|
|
171
|
+
},
|
|
172
|
+
"./rebound-builder": {
|
|
173
|
+
"types": "./rebound-builder.d.ts",
|
|
174
|
+
"import": "./rebound-builder.mjs",
|
|
175
|
+
"require": "./rebound-builder.cjs",
|
|
176
|
+
"default": "./rebound-builder.mjs"
|
|
177
|
+
},
|
|
178
|
+
"./same-bounds": {
|
|
179
|
+
"types": "./same-bounds.d.ts",
|
|
180
|
+
"import": "./same-bounds.mjs",
|
|
181
|
+
"require": "./same-bounds.cjs",
|
|
182
|
+
"default": "./same-bounds.mjs"
|
|
183
|
+
},
|
|
184
|
+
"./scale-bounded": {
|
|
185
|
+
"types": "./scale-bounded.d.ts",
|
|
186
|
+
"import": "./scale-bounded.mjs",
|
|
187
|
+
"require": "./scale-bounded.cjs",
|
|
188
|
+
"default": "./scale-bounded.mjs"
|
|
189
|
+
},
|
|
190
|
+
"./spec": {
|
|
191
|
+
"types": "./spec.d.ts",
|
|
192
|
+
"import": "./spec.mjs",
|
|
193
|
+
"require": "./spec.cjs",
|
|
194
|
+
"default": "./spec.mjs"
|
|
195
|
+
},
|
|
196
|
+
"./string-range": {
|
|
197
|
+
"types": "./string-range.d.ts",
|
|
198
|
+
"import": "./string-range.mjs",
|
|
199
|
+
"require": "./string-range.cjs",
|
|
200
|
+
"default": "./string-range.mjs"
|
|
201
|
+
},
|
|
202
|
+
"./typed-function": {
|
|
203
|
+
"types": "./typed-function.d.ts",
|
|
204
|
+
"import": "./typed-function.mjs",
|
|
205
|
+
"require": "./typed-function.cjs",
|
|
206
|
+
"default": "./typed-function.mjs"
|
|
207
|
+
},
|
|
208
|
+
"./util": {
|
|
209
|
+
"types": "./util.d.ts",
|
|
210
|
+
"import": "./util.mjs",
|
|
211
|
+
"require": "./util.cjs",
|
|
212
|
+
"default": "./util.mjs"
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
"git": {
|
|
216
|
+
"authorName": "Rick Osborne",
|
|
217
|
+
"commitDateISO": "2025-02-17T01:56:13.000Z",
|
|
218
|
+
"commitHash": "2752126d79472c1f03b198ee33bcc30ff3a945a1",
|
|
219
|
+
"commitLink": "https://github.com/rickosborne/es-js-ts/commits/2752126d79472c1f03b198ee33bcc30ff3a945a1",
|
|
220
|
+
"parentHash": "94ad06ec519f22510af76f7ed91b46920aab1c7b",
|
|
221
|
+
"signingKeyId": "8e61c433fe39d4a4679ce1d5b873fb3c48464f3c",
|
|
222
|
+
"tag": "v2025.2.16"
|
|
223
|
+
},
|
|
224
|
+
"homepage": "https://github.com/rickosborne/es-js-ts",
|
|
225
|
+
"keywords": [
|
|
226
|
+
"typescript",
|
|
227
|
+
"bounds",
|
|
228
|
+
"numbers",
|
|
229
|
+
"branded"
|
|
230
|
+
],
|
|
231
|
+
"license": "CC-BY-NC-SA-4.0",
|
|
232
|
+
"main": "./index.cjs",
|
|
233
|
+
"module": "./index.mjs",
|
|
234
|
+
"name": "@rickosborne/rebound",
|
|
235
|
+
"private": false,
|
|
236
|
+
"publishConfig": {
|
|
237
|
+
"access": "public"
|
|
238
|
+
},
|
|
239
|
+
"readme": "README.md",
|
|
240
|
+
"repository": {
|
|
241
|
+
"directory": "src/packages/rebound",
|
|
242
|
+
"type": "git",
|
|
243
|
+
"url": "git+https://github.com/rickosborne/es-js-ts.git"
|
|
244
|
+
},
|
|
245
|
+
"types": "./index.d.ts",
|
|
246
|
+
"typings": "./index.d.ts",
|
|
247
|
+
"version": "2025.2.16"
|
|
248
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var random_bounded_exports = {};
|
|
21
|
+
__export(random_bounded_exports, {
|
|
22
|
+
randomBounded: () => randomBounded
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(random_bounded_exports);
|
|
25
|
+
var import_foundation = require("@rickosborne/foundation");
|
|
26
|
+
var import_typed_function = require("./typed-function.cjs");
|
|
27
|
+
const randomBounded = /* @__PURE__ */ __name((typeName, label, isLowerInc, lower, isInt, upper, isUpperInc, rng = (0, import_foundation.randomNumberGenerator)(), fnName = `random${typeName}`) => {
|
|
28
|
+
if (!Number.isFinite(upper) || !Number.isFinite(lower)) {
|
|
29
|
+
throw new RangeError(`${typeName}: Unbounded random`);
|
|
30
|
+
}
|
|
31
|
+
const high = upper + (isUpperInc ? isInt ? 1 : Number.MIN_VALUE : 0);
|
|
32
|
+
let low = lower + (isLowerInc ? 0 : isInt ? 1 : Number.MIN_VALUE);
|
|
33
|
+
const range = high - low;
|
|
34
|
+
const minRange = isInt ? 2 : 2 * Number.MIN_VALUE;
|
|
35
|
+
let fn;
|
|
36
|
+
if (range < minRange) {
|
|
37
|
+
throw new RangeError(`${typeName}: Random range too narrow`);
|
|
38
|
+
} else if (isInt) {
|
|
39
|
+
fn = /* @__PURE__ */ __name(() => rng.range(low, high), "fn");
|
|
40
|
+
} else {
|
|
41
|
+
fn = /* @__PURE__ */ __name(() => rng.float01() * range + low, "fn");
|
|
42
|
+
}
|
|
43
|
+
return (0, import_typed_function.addTypedProperties)(fn, {
|
|
44
|
+
label,
|
|
45
|
+
upper,
|
|
46
|
+
lower,
|
|
47
|
+
isUpperInc,
|
|
48
|
+
isLowerInc,
|
|
49
|
+
isInt
|
|
50
|
+
}, typeName, fnName);
|
|
51
|
+
}, "randomBounded");
|
|
52
|
+
//# sourceMappingURL=random-bounded.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/rebound/random-bounded.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAsC;AAEtC,4BAAmC;AAM5B,MAAM,gBAAgB,wBAG5B,UACA,OACA,YACA,OACA,OACA,OACA,YACA,UAA0E,yCAAsB,GAChG,SAAiB,SAAU,QAAS,OACd;AACtB,MAAI,CAAC,OAAO,SAAS,KAAK,KAAK,CAAC,OAAO,SAAS,KAAK,GAAG;AACvD,UAAM,IAAI,WAAW,GAAI,QAAS,oBAAoB;AAAA,EACvD;AACA,QAAM,OAAO,SAAS,aAAa,QAAQ,IAAI,OAAO,YAAY;AAClE,MAAI,MAAM,SAAS,aAAa,IAAI,QAAQ,IAAI,OAAO;AACvD,QAAM,QAAQ,OAAO;AACrB,QAAM,WAAW,QAAQ,IAAK,IAAI,OAAO;AACzC,MAAI;AACJ,MAAI,QAAQ,UAAU;AACrB,UAAM,IAAI,WAAW,GAAI,QAAS,2BAA2B;AAAA,EAC9D,WAAW,OAAO;AACjB,SAAK,6BAAM,IAAI,MAAM,KAAK,IAAI,GAAzB;AAAA,EACN,OAAO;AACN,SAAK,6BAAO,IAAI,QAAQ,IAAI,QAAS,KAAhC;AAAA,EACN;AACA,aAAO,0CAAmB,IAAI;AAAA,IAC7B;AAAA,IAAO;AAAA,IAAO;AAAA,IAAO;AAAA,IAAY;AAAA,IAAY;AAAA,EAC9C,GAAG,UAAU,MAAM;AACpB,GA/B6B;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TypedCheckedBounds } from "./spec.js";
|
|
2
|
+
export interface RandomBounded<N extends number> extends TypedCheckedBounds {
|
|
3
|
+
(): N;
|
|
4
|
+
}
|
|
5
|
+
export declare const randomBounded: <N extends number>(typeName: string, label: string, isLowerInc: boolean, lower: number, isInt: boolean, upper: number, isUpperInc: boolean, rng?: ({
|
|
6
|
+
float01(): number;
|
|
7
|
+
range(low: number, high: number): number;
|
|
8
|
+
}), fnName?: string) => RandomBounded<N>;
|
|
9
|
+
//# sourceMappingURL=random-bounded.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random-bounded.d.ts","sourceRoot":"","sources":["../../../src/packages/rebound/random-bounded.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGpD,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,kBAAkB;IAC1E,IAAI,CAAC,CAAC;CACN;AAED,eAAO,MAAM,aAAa,GACzB,CAAC,SAAS,MAAM,YAEN,MAAM,SACT,MAAM,cACD,OAAO,SACZ,MAAM,SACN,OAAO,SACP,MAAM,cACD,OAAO,QACd,CAAC;IAAE,OAAO,IAAI,MAAM,CAAC;IAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAAE,CAAC,WAC/D,MAAM,KACZ,aAAa,CAAC,CAAC,CAmBjB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { randomNumberGenerator } from "@rickosborne/foundation";
|
|
4
|
+
import { addTypedProperties } from "./typed-function.mjs";
|
|
5
|
+
const randomBounded = /* @__PURE__ */ __name((typeName, label, isLowerInc, lower, isInt, upper, isUpperInc, rng = randomNumberGenerator(), fnName = `random${typeName}`) => {
|
|
6
|
+
if (!Number.isFinite(upper) || !Number.isFinite(lower)) {
|
|
7
|
+
throw new RangeError(`${typeName}: Unbounded random`);
|
|
8
|
+
}
|
|
9
|
+
const high = upper + (isUpperInc ? isInt ? 1 : Number.MIN_VALUE : 0);
|
|
10
|
+
let low = lower + (isLowerInc ? 0 : isInt ? 1 : Number.MIN_VALUE);
|
|
11
|
+
const range = high - low;
|
|
12
|
+
const minRange = isInt ? 2 : 2 * Number.MIN_VALUE;
|
|
13
|
+
let fn;
|
|
14
|
+
if (range < minRange) {
|
|
15
|
+
throw new RangeError(`${typeName}: Random range too narrow`);
|
|
16
|
+
} else if (isInt) {
|
|
17
|
+
fn = /* @__PURE__ */ __name(() => rng.range(low, high), "fn");
|
|
18
|
+
} else {
|
|
19
|
+
fn = /* @__PURE__ */ __name(() => rng.float01() * range + low, "fn");
|
|
20
|
+
}
|
|
21
|
+
return addTypedProperties(fn, {
|
|
22
|
+
label,
|
|
23
|
+
upper,
|
|
24
|
+
lower,
|
|
25
|
+
isUpperInc,
|
|
26
|
+
isLowerInc,
|
|
27
|
+
isInt
|
|
28
|
+
}, typeName, fnName);
|
|
29
|
+
}, "randomBounded");
|
|
30
|
+
export {
|
|
31
|
+
randomBounded
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=random-bounded.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/rebound/random-bounded.ts"],
|
|
4
|
+
"mappings": ";;AAAA,SAAS,6BAA6B;AAEtC,SAAS,0BAA0B;AAM5B,MAAM,gBAAgB,wBAG5B,UACA,OACA,YACA,OACA,OACA,OACA,YACA,MAA0E,sBAAsB,GAChG,SAAiB,SAAU,QAAS,OACd;AACtB,MAAI,CAAC,OAAO,SAAS,KAAK,KAAK,CAAC,OAAO,SAAS,KAAK,GAAG;AACvD,UAAM,IAAI,WAAW,GAAI,QAAS,oBAAoB;AAAA,EACvD;AACA,QAAM,OAAO,SAAS,aAAa,QAAQ,IAAI,OAAO,YAAY;AAClE,MAAI,MAAM,SAAS,aAAa,IAAI,QAAQ,IAAI,OAAO;AACvD,QAAM,QAAQ,OAAO;AACrB,QAAM,WAAW,QAAQ,IAAK,IAAI,OAAO;AACzC,MAAI;AACJ,MAAI,QAAQ,UAAU;AACrB,UAAM,IAAI,WAAW,GAAI,QAAS,2BAA2B;AAAA,EAC9D,WAAW,OAAO;AACjB,SAAK,6BAAM,IAAI,MAAM,KAAK,IAAI,GAAzB;AAAA,EACN,OAAO;AACN,SAAK,6BAAO,IAAI,QAAQ,IAAI,QAAS,KAAhC;AAAA,EACN;AACA,SAAO,mBAAmB,IAAI;AAAA,IAC7B;AAAA,IAAO;AAAA,IAAO;AAAA,IAAO;AAAA,IAAY;AAAA,IAAY;AAAA,EAC9C,GAAG,UAAU,MAAM;AACpB,GA/B6B;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/range-base.cjs
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var range_base_exports = {};
|
|
21
|
+
__export(range_base_exports, {
|
|
22
|
+
RangeBase: () => RangeBase
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(range_base_exports);
|
|
25
|
+
var import_bound = require("./bound.cjs");
|
|
26
|
+
var import_range_like = require("./range-like.cjs");
|
|
27
|
+
const _RangeBase = class _RangeBase {
|
|
28
|
+
comparator;
|
|
29
|
+
isBounded;
|
|
30
|
+
isBoundedAbove;
|
|
31
|
+
isBoundedBelow;
|
|
32
|
+
isEmpty;
|
|
33
|
+
isLowerInc;
|
|
34
|
+
isSingleton;
|
|
35
|
+
isUpperInc;
|
|
36
|
+
lowerBound;
|
|
37
|
+
lowerEndpoint;
|
|
38
|
+
upperBound;
|
|
39
|
+
upperEndpoint;
|
|
40
|
+
constructor(isLowerInc, lowerBound, upperBound, isUpperInc, comparator) {
|
|
41
|
+
if (lowerBound === import_range_like.unbounded && !isLowerInc) {
|
|
42
|
+
throw new Error("Lower should be inclusive when unbounded");
|
|
43
|
+
}
|
|
44
|
+
if (upperBound === import_range_like.unbounded && !isUpperInc) {
|
|
45
|
+
throw new Error("Upper should be inclusive when unbounded");
|
|
46
|
+
}
|
|
47
|
+
this.comparator = comparator;
|
|
48
|
+
this.lowerBound = lowerBound === import_range_like.unbounded ? import_range_like.unbounded : isLowerInc ? import_bound.Bound.gte(lowerBound, comparator) : import_bound.Bound.gt(lowerBound, comparator);
|
|
49
|
+
this.upperBound = upperBound === import_range_like.unbounded ? import_range_like.unbounded : isUpperInc ? import_bound.Bound.lte(upperBound, comparator) : import_bound.Bound.lt(upperBound, comparator);
|
|
50
|
+
this.isLowerInc = isLowerInc;
|
|
51
|
+
this.isUpperInc = isUpperInc;
|
|
52
|
+
this.isBoundedAbove = upperBound !== import_range_like.unbounded;
|
|
53
|
+
this.isBoundedBelow = lowerBound !== import_range_like.unbounded;
|
|
54
|
+
this.isBounded = this.isBoundedAbove && this.isBoundedBelow;
|
|
55
|
+
if (lowerBound !== import_range_like.unbounded && upperBound !== import_range_like.unbounded && comparator(lowerBound, upperBound) === 0) {
|
|
56
|
+
if (!isLowerInc && !isUpperInc) {
|
|
57
|
+
throw new Error("Expected at least one inclusive when lower === upper");
|
|
58
|
+
}
|
|
59
|
+
this.isSingleton = isLowerInc && isUpperInc;
|
|
60
|
+
this.isEmpty = !this.isSingleton;
|
|
61
|
+
} else {
|
|
62
|
+
this.isSingleton = false;
|
|
63
|
+
this.isEmpty = false;
|
|
64
|
+
}
|
|
65
|
+
this.lowerEndpoint = lowerBound === import_range_like.unbounded ? void 0 : lowerBound;
|
|
66
|
+
this.upperEndpoint = upperBound === import_range_like.unbounded ? void 0 : upperBound;
|
|
67
|
+
}
|
|
68
|
+
assertIsA(obj) {
|
|
69
|
+
if (!this.isType(obj)) {
|
|
70
|
+
throw new RangeError(`Incorrect type: ${typeof obj}`);
|
|
71
|
+
}
|
|
72
|
+
if (!this.isA(obj)) {
|
|
73
|
+
throw new RangeError(`Out of range: ${String(obj)}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
castAs(obj) {
|
|
77
|
+
this.assertIsA(obj);
|
|
78
|
+
return obj;
|
|
79
|
+
}
|
|
80
|
+
compareTo(other) {
|
|
81
|
+
if (this.lowerBound === import_range_like.unbounded) {
|
|
82
|
+
if (other.lowerBound !== import_range_like.unbounded) return -1;
|
|
83
|
+
} else if (other.lowerBound === import_range_like.unbounded) {
|
|
84
|
+
return 1;
|
|
85
|
+
} else {
|
|
86
|
+
const lowerCompare = this.lowerBound.compareTo(other.lowerBound);
|
|
87
|
+
if (lowerCompare !== 0) {
|
|
88
|
+
return lowerCompare;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (this.upperBound === import_range_like.unbounded) {
|
|
92
|
+
if (other.upperBound !== import_range_like.unbounded) return 1;
|
|
93
|
+
} else if (other.upperBound === import_range_like.unbounded) {
|
|
94
|
+
return -1;
|
|
95
|
+
} else {
|
|
96
|
+
const upperCompare = this.upperBound.compareTo(other.upperBound);
|
|
97
|
+
if (upperCompare !== 0) {
|
|
98
|
+
return upperCompare;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return 0;
|
|
102
|
+
}
|
|
103
|
+
contains(value) {
|
|
104
|
+
return (this.lowerBound === import_range_like.unbounded || this.lowerBound.isValid(value)) && (this.upperBound === import_range_like.unbounded || this.upperBound.isValid(value));
|
|
105
|
+
}
|
|
106
|
+
encloses(other) {
|
|
107
|
+
if (other === this) {
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
if (this.comparator !== other.comparator) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
return (0, import_bound.boundComparator)(this.lowerBound, other.lowerBound) <= 0 && (0, import_bound.boundComparator)(this.upperBound, other.upperBound) >= 0;
|
|
114
|
+
}
|
|
115
|
+
isA(obj) {
|
|
116
|
+
return this.isType(obj) && this.contains(obj);
|
|
117
|
+
}
|
|
118
|
+
toString() {
|
|
119
|
+
return this.label;
|
|
120
|
+
}
|
|
121
|
+
[Symbol.toStringTag]() {
|
|
122
|
+
return this.label;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
__name(_RangeBase, "RangeBase");
|
|
126
|
+
let RangeBase = _RangeBase;
|
|
127
|
+
//# sourceMappingURL=range-base.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/rebound/range-base.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/range-base.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Comparator } from "@rickosborne/typical";
|
|
2
|
+
import { Bound } from "./bound.js";
|
|
3
|
+
import type { RangeLike, Unbounded } from "./range-like.js";
|
|
4
|
+
export declare abstract class RangeBase<T> implements RangeLike<T> {
|
|
5
|
+
readonly comparator: Comparator<T>;
|
|
6
|
+
readonly isBounded: boolean;
|
|
7
|
+
readonly isBoundedAbove: boolean;
|
|
8
|
+
readonly isBoundedBelow: boolean;
|
|
9
|
+
readonly isEmpty: boolean;
|
|
10
|
+
readonly isLowerInc: boolean;
|
|
11
|
+
readonly isSingleton: boolean;
|
|
12
|
+
readonly isUpperInc: boolean;
|
|
13
|
+
abstract readonly label: string;
|
|
14
|
+
readonly lowerBound: Bound<T> | Unbounded;
|
|
15
|
+
readonly lowerEndpoint: T | undefined;
|
|
16
|
+
readonly upperBound: Bound<T> | Unbounded;
|
|
17
|
+
readonly upperEndpoint: T | undefined;
|
|
18
|
+
protected constructor(isLowerInc: boolean, lowerBound: T | Unbounded, upperBound: T | Unbounded, isUpperInc: boolean, comparator: Comparator<T>);
|
|
19
|
+
assertIsA(obj: unknown): asserts obj is T;
|
|
20
|
+
castAs(obj: unknown): T;
|
|
21
|
+
compareTo(other: RangeLike<T>): number;
|
|
22
|
+
contains(value: T): boolean;
|
|
23
|
+
encloses(other: RangeLike<T>): boolean;
|
|
24
|
+
isA(obj: unknown): obj is T;
|
|
25
|
+
abstract isType(obj: unknown): obj is T;
|
|
26
|
+
toString(): string;
|
|
27
|
+
[Symbol.toStringTag](): string;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=range-base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-base.d.ts","sourceRoot":"","sources":["../../../src/packages/rebound/range-base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAmB,MAAM,YAAY,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5D,8BAAsB,SAAS,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IACzD,SAAgB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1C,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,cAAc,EAAE,OAAO,CAAC;IACxC,SAAgB,cAAc,EAAE,OAAO,CAAC;IACxC,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,SAAgB,WAAW,EAAE,OAAO,CAAC;IACrC,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,kBAAyB,KAAK,EAAE,MAAM,CAAC;IACvC,SAAgB,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACjD,SAAgB,aAAa,EAAE,CAAC,GAAG,SAAS,CAAC;IAC7C,SAAgB,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACjD,SAAgB,aAAa,EAAE,CAAC,GAAG,SAAS,CAAC;IAE7C,SAAS,aACR,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,CAAC,GAAG,SAAS,EACzB,UAAU,EAAE,CAAC,GAAG,SAAS,EACzB,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IA8BnB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IASzC,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC;IAKvB,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM;IAwBtC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAK3B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO;IAWtC,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC;aAIlB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC;IAEvC,QAAQ,IAAI,MAAM;IAIlB,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,MAAM;CAGvC"}
|
package/range-base.mjs
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { Bound, boundComparator } from "./bound.mjs";
|
|
4
|
+
import { unbounded } from "./range-like.mjs";
|
|
5
|
+
const _RangeBase = class _RangeBase {
|
|
6
|
+
comparator;
|
|
7
|
+
isBounded;
|
|
8
|
+
isBoundedAbove;
|
|
9
|
+
isBoundedBelow;
|
|
10
|
+
isEmpty;
|
|
11
|
+
isLowerInc;
|
|
12
|
+
isSingleton;
|
|
13
|
+
isUpperInc;
|
|
14
|
+
lowerBound;
|
|
15
|
+
lowerEndpoint;
|
|
16
|
+
upperBound;
|
|
17
|
+
upperEndpoint;
|
|
18
|
+
constructor(isLowerInc, lowerBound, upperBound, isUpperInc, comparator) {
|
|
19
|
+
if (lowerBound === unbounded && !isLowerInc) {
|
|
20
|
+
throw new Error("Lower should be inclusive when unbounded");
|
|
21
|
+
}
|
|
22
|
+
if (upperBound === unbounded && !isUpperInc) {
|
|
23
|
+
throw new Error("Upper should be inclusive when unbounded");
|
|
24
|
+
}
|
|
25
|
+
this.comparator = comparator;
|
|
26
|
+
this.lowerBound = lowerBound === unbounded ? unbounded : isLowerInc ? Bound.gte(lowerBound, comparator) : Bound.gt(lowerBound, comparator);
|
|
27
|
+
this.upperBound = upperBound === unbounded ? unbounded : isUpperInc ? Bound.lte(upperBound, comparator) : Bound.lt(upperBound, comparator);
|
|
28
|
+
this.isLowerInc = isLowerInc;
|
|
29
|
+
this.isUpperInc = isUpperInc;
|
|
30
|
+
this.isBoundedAbove = upperBound !== unbounded;
|
|
31
|
+
this.isBoundedBelow = lowerBound !== unbounded;
|
|
32
|
+
this.isBounded = this.isBoundedAbove && this.isBoundedBelow;
|
|
33
|
+
if (lowerBound !== unbounded && upperBound !== unbounded && comparator(lowerBound, upperBound) === 0) {
|
|
34
|
+
if (!isLowerInc && !isUpperInc) {
|
|
35
|
+
throw new Error("Expected at least one inclusive when lower === upper");
|
|
36
|
+
}
|
|
37
|
+
this.isSingleton = isLowerInc && isUpperInc;
|
|
38
|
+
this.isEmpty = !this.isSingleton;
|
|
39
|
+
} else {
|
|
40
|
+
this.isSingleton = false;
|
|
41
|
+
this.isEmpty = false;
|
|
42
|
+
}
|
|
43
|
+
this.lowerEndpoint = lowerBound === unbounded ? void 0 : lowerBound;
|
|
44
|
+
this.upperEndpoint = upperBound === unbounded ? void 0 : upperBound;
|
|
45
|
+
}
|
|
46
|
+
assertIsA(obj) {
|
|
47
|
+
if (!this.isType(obj)) {
|
|
48
|
+
throw new RangeError(`Incorrect type: ${typeof obj}`);
|
|
49
|
+
}
|
|
50
|
+
if (!this.isA(obj)) {
|
|
51
|
+
throw new RangeError(`Out of range: ${String(obj)}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
castAs(obj) {
|
|
55
|
+
this.assertIsA(obj);
|
|
56
|
+
return obj;
|
|
57
|
+
}
|
|
58
|
+
compareTo(other) {
|
|
59
|
+
if (this.lowerBound === unbounded) {
|
|
60
|
+
if (other.lowerBound !== unbounded) return -1;
|
|
61
|
+
} else if (other.lowerBound === unbounded) {
|
|
62
|
+
return 1;
|
|
63
|
+
} else {
|
|
64
|
+
const lowerCompare = this.lowerBound.compareTo(other.lowerBound);
|
|
65
|
+
if (lowerCompare !== 0) {
|
|
66
|
+
return lowerCompare;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (this.upperBound === unbounded) {
|
|
70
|
+
if (other.upperBound !== unbounded) return 1;
|
|
71
|
+
} else if (other.upperBound === unbounded) {
|
|
72
|
+
return -1;
|
|
73
|
+
} else {
|
|
74
|
+
const upperCompare = this.upperBound.compareTo(other.upperBound);
|
|
75
|
+
if (upperCompare !== 0) {
|
|
76
|
+
return upperCompare;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return 0;
|
|
80
|
+
}
|
|
81
|
+
contains(value) {
|
|
82
|
+
return (this.lowerBound === unbounded || this.lowerBound.isValid(value)) && (this.upperBound === unbounded || this.upperBound.isValid(value));
|
|
83
|
+
}
|
|
84
|
+
encloses(other) {
|
|
85
|
+
if (other === this) {
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
if (this.comparator !== other.comparator) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
return boundComparator(this.lowerBound, other.lowerBound) <= 0 && boundComparator(this.upperBound, other.upperBound) >= 0;
|
|
92
|
+
}
|
|
93
|
+
isA(obj) {
|
|
94
|
+
return this.isType(obj) && this.contains(obj);
|
|
95
|
+
}
|
|
96
|
+
toString() {
|
|
97
|
+
return this.label;
|
|
98
|
+
}
|
|
99
|
+
[Symbol.toStringTag]() {
|
|
100
|
+
return this.label;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
__name(_RangeBase, "RangeBase");
|
|
104
|
+
let RangeBase = _RangeBase;
|
|
105
|
+
export {
|
|
106
|
+
RangeBase
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=range-base.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/rebound/range-base.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|