@pawells/math-extended 1.0.1 → 1.0.2
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/package.json +1 -1
- package/build/angles.spec.d.ts +0 -2
- package/build/angles.spec.d.ts.map +0 -1
- package/build/angles.spec.js +0 -147
- package/build/angles.spec.js.map +0 -1
- package/build/clamp.spec.d.ts +0 -2
- package/build/clamp.spec.d.ts.map +0 -1
- package/build/clamp.spec.js +0 -19
- package/build/clamp.spec.js.map +0 -1
- package/build/documentation-validation.spec.d.ts +0 -11
- package/build/documentation-validation.spec.d.ts.map +0 -1
- package/build/documentation-validation.spec.js +0 -401
- package/build/documentation-validation.spec.js.map +0 -1
- package/build/interpolation.spec.d.ts +0 -2
- package/build/interpolation.spec.d.ts.map +0 -1
- package/build/interpolation.spec.js +0 -480
- package/build/interpolation.spec.js.map +0 -1
- package/build/matrices/arithmetic.spec.d.ts +0 -2
- package/build/matrices/arithmetic.spec.d.ts.map +0 -1
- package/build/matrices/arithmetic.spec.js +0 -915
- package/build/matrices/arithmetic.spec.js.map +0 -1
- package/build/matrices/asserts.spec.d.ts +0 -2
- package/build/matrices/asserts.spec.d.ts.map +0 -1
- package/build/matrices/asserts.spec.js +0 -565
- package/build/matrices/asserts.spec.js.map +0 -1
- package/build/matrices/core.spec.d.ts +0 -2
- package/build/matrices/core.spec.d.ts.map +0 -1
- package/build/matrices/core.spec.js +0 -634
- package/build/matrices/core.spec.js.map +0 -1
- package/build/matrices/decompositions.spec.d.ts +0 -2
- package/build/matrices/decompositions.spec.d.ts.map +0 -1
- package/build/matrices/decompositions.spec.js +0 -195
- package/build/matrices/decompositions.spec.js.map +0 -1
- package/build/matrices/linear-algebra.spec.d.ts +0 -2
- package/build/matrices/linear-algebra.spec.d.ts.map +0 -1
- package/build/matrices/linear-algebra.spec.js +0 -355
- package/build/matrices/linear-algebra.spec.js.map +0 -1
- package/build/matrices/normalization.spec.d.ts +0 -2
- package/build/matrices/normalization.spec.d.ts.map +0 -1
- package/build/matrices/normalization.spec.js +0 -335
- package/build/matrices/normalization.spec.js.map +0 -1
- package/build/matrices/transformations.spec.d.ts +0 -2
- package/build/matrices/transformations.spec.d.ts.map +0 -1
- package/build/matrices/transformations.spec.js +0 -755
- package/build/matrices/transformations.spec.js.map +0 -1
- package/build/quaternions/asserts.spec.d.ts +0 -2
- package/build/quaternions/asserts.spec.d.ts.map +0 -1
- package/build/quaternions/asserts.spec.js +0 -320
- package/build/quaternions/asserts.spec.js.map +0 -1
- package/build/quaternions/conversions.spec.d.ts +0 -2
- package/build/quaternions/conversions.spec.d.ts.map +0 -1
- package/build/quaternions/conversions.spec.js +0 -344
- package/build/quaternions/conversions.spec.js.map +0 -1
- package/build/quaternions/core.spec.d.ts +0 -2
- package/build/quaternions/core.spec.d.ts.map +0 -1
- package/build/quaternions/core.spec.js +0 -294
- package/build/quaternions/core.spec.js.map +0 -1
- package/build/quaternions/interpolation.spec.d.ts +0 -2
- package/build/quaternions/interpolation.spec.d.ts.map +0 -1
- package/build/quaternions/interpolation.spec.js +0 -64
- package/build/quaternions/interpolation.spec.js.map +0 -1
- package/build/quaternions/predefined.spec.d.ts +0 -2
- package/build/quaternions/predefined.spec.d.ts.map +0 -1
- package/build/quaternions/predefined.spec.js +0 -35
- package/build/quaternions/predefined.spec.js.map +0 -1
- package/build/random.spec.d.ts +0 -2
- package/build/random.spec.d.ts.map +0 -1
- package/build/random.spec.js +0 -267
- package/build/random.spec.js.map +0 -1
- package/build/vectors/asserts.spec.d.ts +0 -2
- package/build/vectors/asserts.spec.d.ts.map +0 -1
- package/build/vectors/asserts.spec.js +0 -260
- package/build/vectors/asserts.spec.js.map +0 -1
- package/build/vectors/core.spec.d.ts +0 -2
- package/build/vectors/core.spec.d.ts.map +0 -1
- package/build/vectors/core.spec.js +0 -343
- package/build/vectors/core.spec.js.map +0 -1
- package/build/vectors/interpolation.spec.d.ts +0 -2
- package/build/vectors/interpolation.spec.d.ts.map +0 -1
- package/build/vectors/interpolation.spec.js +0 -378
- package/build/vectors/interpolation.spec.js.map +0 -1
- package/build/vectors/predefined.spec.d.ts +0 -2
- package/build/vectors/predefined.spec.d.ts.map +0 -1
- package/build/vectors/predefined.spec.js +0 -333
- package/build/vectors/predefined.spec.js.map +0 -1
package/build/random.spec.js
DELETED
|
@@ -1,267 +0,0 @@
|
|
|
1
|
-
import { RandomInt, RandomFloat, RandomChoice, RandomSample, RandomShuffle, RandomBool, RandomNormal, } from './random.ts';
|
|
2
|
-
describe('Math > Random ', () => {
|
|
3
|
-
describe('RandomInt', () => {
|
|
4
|
-
test('Generate a Random Integer within a Positive Range', () => {
|
|
5
|
-
const min = 1;
|
|
6
|
-
const max = 10;
|
|
7
|
-
const result = RandomInt(min, max);
|
|
8
|
-
expect(result).toBeGreaterThanOrEqual(min);
|
|
9
|
-
expect(result).toBeLessThanOrEqual(max);
|
|
10
|
-
expect(Number.isInteger(result)).toBe(true);
|
|
11
|
-
});
|
|
12
|
-
test('Generate a Random Integer within a Negative Range', () => {
|
|
13
|
-
const min = -10;
|
|
14
|
-
const max = -1;
|
|
15
|
-
const result = RandomInt(min, max);
|
|
16
|
-
expect(result).toBeGreaterThanOrEqual(min);
|
|
17
|
-
expect(result).toBeLessThanOrEqual(max);
|
|
18
|
-
expect(Number.isInteger(result)).toBe(true);
|
|
19
|
-
});
|
|
20
|
-
test('If the minimum value and maximum value are the same, return the minimum value.', () => {
|
|
21
|
-
const min = 5;
|
|
22
|
-
const max = 5;
|
|
23
|
-
const result = RandomInt(min, max);
|
|
24
|
-
expect(result).toBe(min);
|
|
25
|
-
});
|
|
26
|
-
test('If the minimum value is greater than the maximum value, return NaN.', () => {
|
|
27
|
-
const min = 10;
|
|
28
|
-
const max = 5;
|
|
29
|
-
const result = RandomInt(min, max);
|
|
30
|
-
expect(result).toBeNaN();
|
|
31
|
-
});
|
|
32
|
-
test('Should include both min and max values over multiple runs', () => {
|
|
33
|
-
const min = 1;
|
|
34
|
-
const max = 3;
|
|
35
|
-
const results = new Set();
|
|
36
|
-
// Run enough times to likely hit all values
|
|
37
|
-
for (let i = 0; i < 100; i++) {
|
|
38
|
-
results.add(RandomInt(min, max));
|
|
39
|
-
}
|
|
40
|
-
expect(results.has(min)).toBe(true);
|
|
41
|
-
expect(results.has(max)).toBe(true);
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
describe('RandomFloat', () => {
|
|
45
|
-
test('Generate a Random Float within Range', () => {
|
|
46
|
-
const min = 0;
|
|
47
|
-
const max = 1;
|
|
48
|
-
const result = RandomFloat(min, max);
|
|
49
|
-
expect(result).toBeGreaterThanOrEqual(min);
|
|
50
|
-
expect(result).toBeLessThan(max);
|
|
51
|
-
expect(typeof result).toBe('number');
|
|
52
|
-
});
|
|
53
|
-
test('Generate a Random Float within Negative Range', () => {
|
|
54
|
-
const min = -5.5;
|
|
55
|
-
const max = -1.1;
|
|
56
|
-
const result = RandomFloat(min, max);
|
|
57
|
-
expect(result).toBeGreaterThanOrEqual(min);
|
|
58
|
-
expect(result).toBeLessThan(max);
|
|
59
|
-
});
|
|
60
|
-
test('If minimum equals maximum, return NaN', () => {
|
|
61
|
-
const min = 5.5;
|
|
62
|
-
const max = 5.5;
|
|
63
|
-
const result = RandomFloat(min, max);
|
|
64
|
-
expect(result).toBeNaN();
|
|
65
|
-
});
|
|
66
|
-
test('If minimum is greater than maximum, return NaN', () => {
|
|
67
|
-
const min = 10.5;
|
|
68
|
-
const max = 5.5;
|
|
69
|
-
const result = RandomFloat(min, max);
|
|
70
|
-
expect(result).toBeNaN();
|
|
71
|
-
});
|
|
72
|
-
test('Should generate different values over multiple runs', () => {
|
|
73
|
-
const results = new Set();
|
|
74
|
-
for (let i = 0; i < 10; i++) {
|
|
75
|
-
results.add(RandomFloat(0, 1));
|
|
76
|
-
}
|
|
77
|
-
// Should have generated different values (very unlikely to get duplicates)
|
|
78
|
-
expect(results.size).toBeGreaterThan(1);
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
describe('RandomChoice', () => {
|
|
82
|
-
test('Choose from array of numbers', () => {
|
|
83
|
-
const array = [1, 2, 3, 4, 5];
|
|
84
|
-
const result = RandomChoice(array);
|
|
85
|
-
expect(array).toContain(result);
|
|
86
|
-
});
|
|
87
|
-
test('Choose from array of strings', () => {
|
|
88
|
-
const array = ['red', 'green', 'blue'];
|
|
89
|
-
const result = RandomChoice(array);
|
|
90
|
-
expect(array).toContain(result);
|
|
91
|
-
});
|
|
92
|
-
test('Return undefined for empty array', () => {
|
|
93
|
-
const array = [];
|
|
94
|
-
const result = RandomChoice(array);
|
|
95
|
-
expect(result).toBeUndefined();
|
|
96
|
-
});
|
|
97
|
-
test('Return the only element for single-element array', () => {
|
|
98
|
-
const array = [42];
|
|
99
|
-
const result = RandomChoice(array);
|
|
100
|
-
expect(result).toBe(42);
|
|
101
|
-
});
|
|
102
|
-
test('Should eventually choose all elements over multiple runs', () => {
|
|
103
|
-
const array = [1, 2, 3];
|
|
104
|
-
const results = new Set();
|
|
105
|
-
for (let i = 0; i < 50; i++) {
|
|
106
|
-
const choice = RandomChoice(array);
|
|
107
|
-
if (choice !== undefined) {
|
|
108
|
-
results.add(choice);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
expect(results.size).toBe(3);
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
describe('RandomSample', () => {
|
|
115
|
-
test('Sample multiple elements without replacement', () => {
|
|
116
|
-
const array = [1, 2, 3, 4, 5];
|
|
117
|
-
const result = RandomSample(array, 3);
|
|
118
|
-
expect(result).toHaveLength(3);
|
|
119
|
-
expect(new Set(result).size).toBe(3); // All unique
|
|
120
|
-
result.forEach((item) => {
|
|
121
|
-
expect(array).toContain(item);
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
test('Sample all elements', () => {
|
|
125
|
-
const array = [1, 2, 3];
|
|
126
|
-
const result = RandomSample(array, 3);
|
|
127
|
-
expect(result).toHaveLength(3);
|
|
128
|
-
expect(new Set(result).size).toBe(3);
|
|
129
|
-
});
|
|
130
|
-
test('Return empty array for invalid inputs', () => {
|
|
131
|
-
const array = [1, 2, 3];
|
|
132
|
-
expect(RandomSample(array, 0)).toEqual([]);
|
|
133
|
-
expect(RandomSample(array, -1)).toEqual([]);
|
|
134
|
-
expect(RandomSample(array, 5)).toEqual([]); // More than available
|
|
135
|
-
expect(RandomSample([], 1)).toEqual([]);
|
|
136
|
-
});
|
|
137
|
-
test('Sample single element', () => {
|
|
138
|
-
const array = [1, 2, 3, 4, 5];
|
|
139
|
-
const result = RandomSample(array, 1);
|
|
140
|
-
expect(result).toHaveLength(1);
|
|
141
|
-
expect(array).toContain(result[0]);
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
describe('RandomShuffle', () => {
|
|
145
|
-
test('Shuffle modifies original array by default', () => {
|
|
146
|
-
const original = [1, 2, 3, 4, 5];
|
|
147
|
-
const copy = [...original];
|
|
148
|
-
const result = RandomShuffle(original);
|
|
149
|
-
expect(result).toBe(original);
|
|
150
|
-
expect(result).toHaveLength(copy.length);
|
|
151
|
-
// Should contain all original elements
|
|
152
|
-
copy.forEach((item) => {
|
|
153
|
-
expect(result).toContain(item);
|
|
154
|
-
});
|
|
155
|
-
});
|
|
156
|
-
test('Shuffle with clone=true does not modify original array', () => {
|
|
157
|
-
const original = [1, 2, 3, 4, 5];
|
|
158
|
-
const copy = [...original];
|
|
159
|
-
const result = RandomShuffle(original, true);
|
|
160
|
-
expect(result).not.toBe(original);
|
|
161
|
-
expect(original).toEqual(copy);
|
|
162
|
-
expect(result).toHaveLength(original.length);
|
|
163
|
-
// Should contain all original elements
|
|
164
|
-
original.forEach((item) => {
|
|
165
|
-
expect(result).toContain(item);
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
test('Shuffle with clone=false modifies original array', () => {
|
|
169
|
-
const original = [1, 2, 3, 4, 5];
|
|
170
|
-
const copy = [...original];
|
|
171
|
-
const result = RandomShuffle(original, false);
|
|
172
|
-
expect(result).toBe(original);
|
|
173
|
-
expect(result).toHaveLength(copy.length);
|
|
174
|
-
// Should contain all original elements
|
|
175
|
-
copy.forEach((item) => {
|
|
176
|
-
expect(result).toContain(item);
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
test('Shuffle empty array', () => {
|
|
180
|
-
const array = [];
|
|
181
|
-
const result = RandomShuffle(array);
|
|
182
|
-
expect(result).toEqual([]);
|
|
183
|
-
});
|
|
184
|
-
test('Shuffle single element array', () => {
|
|
185
|
-
const array = [42];
|
|
186
|
-
const result = RandomShuffle(array);
|
|
187
|
-
expect(result).toEqual([42]);
|
|
188
|
-
});
|
|
189
|
-
test('Should eventually produce different arrangements', () => {
|
|
190
|
-
const arrangements = new Set();
|
|
191
|
-
for (let i = 0; i < 20; i++) {
|
|
192
|
-
const array = [1, 2, 3];
|
|
193
|
-
RandomShuffle(array);
|
|
194
|
-
arrangements.add(JSON.stringify(array));
|
|
195
|
-
}
|
|
196
|
-
// Should have generated at least 2 different arrangements
|
|
197
|
-
expect(arrangements.size).toBeGreaterThan(1);
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
describe('RandomBool', () => {
|
|
201
|
-
test('Generate random boolean with default probability', () => {
|
|
202
|
-
const result = RandomBool();
|
|
203
|
-
expect(typeof result).toBe('boolean');
|
|
204
|
-
});
|
|
205
|
-
test('Generate random boolean with custom probability', () => {
|
|
206
|
-
// Test with very high probability
|
|
207
|
-
let trueCount = 0;
|
|
208
|
-
for (let i = 0; i < 100; i++) {
|
|
209
|
-
if (RandomBool(0.9)) {
|
|
210
|
-
trueCount++;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
// Should be mostly true (allowing some variance)
|
|
214
|
-
expect(trueCount).toBeGreaterThan(70);
|
|
215
|
-
// Test with very low probability
|
|
216
|
-
let falseCount = 0;
|
|
217
|
-
for (let i = 0; i < 100; i++) {
|
|
218
|
-
if (!RandomBool(0.1)) {
|
|
219
|
-
falseCount++;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
// Should be mostly false (allowing some variance)
|
|
223
|
-
expect(falseCount).toBeGreaterThan(70);
|
|
224
|
-
});
|
|
225
|
-
test('Return false for invalid probabilities', () => {
|
|
226
|
-
expect(RandomBool(-0.1)).toBe(false);
|
|
227
|
-
expect(RandomBool(1.1)).toBe(false);
|
|
228
|
-
});
|
|
229
|
-
test('Return true for probability 1.0', () => {
|
|
230
|
-
for (let i = 0; i < 10; i++) {
|
|
231
|
-
expect(RandomBool(1.0)).toBe(true);
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
test('Return false for probability 0.0', () => {
|
|
235
|
-
for (let i = 0; i < 10; i++) {
|
|
236
|
-
expect(RandomBool(0.0)).toBe(false);
|
|
237
|
-
}
|
|
238
|
-
});
|
|
239
|
-
});
|
|
240
|
-
describe('RandomNormal', () => {
|
|
241
|
-
test('Generate random normal distribution with default parameters', () => {
|
|
242
|
-
const results = [];
|
|
243
|
-
for (let i = 0; i < 1000; i++) {
|
|
244
|
-
results.push(RandomNormal());
|
|
245
|
-
}
|
|
246
|
-
const mean = results.reduce((sum, val) => sum + val, 0) / results.length;
|
|
247
|
-
const variance = results.reduce((sum, val) => sum + Math.pow(val - mean, 2), 0) / results.length;
|
|
248
|
-
// Should be approximately standard normal (mean ≈ 0, variance ≈ 1)
|
|
249
|
-
expect(Math.abs(mean)).toBeLessThan(0.1);
|
|
250
|
-
expect(Math.abs(variance - 1)).toBeLessThan(0.2);
|
|
251
|
-
});
|
|
252
|
-
test('Generate random normal distribution with custom parameters', () => {
|
|
253
|
-
const targetMean = 100;
|
|
254
|
-
const targetStd = 15;
|
|
255
|
-
const results = [];
|
|
256
|
-
for (let i = 0; i < 1000; i++) {
|
|
257
|
-
results.push(RandomNormal(targetMean, targetStd));
|
|
258
|
-
}
|
|
259
|
-
const mean = results.reduce((sum, val) => sum + val, 0) / results.length;
|
|
260
|
-
const variance = results.reduce((sum, val) => sum + Math.pow(val - mean, 2), 0) / results.length;
|
|
261
|
-
const stdDev = Math.sqrt(variance);
|
|
262
|
-
// Should be approximately the target distribution expect(Math.abs(mean - targetMean)).toBeLessThan(2);
|
|
263
|
-
expect(Math.abs(stdDev - targetStd)).toBeLessThan(2);
|
|
264
|
-
});
|
|
265
|
-
});
|
|
266
|
-
});
|
|
267
|
-
//# sourceMappingURL=random.spec.js.map
|
package/build/random.spec.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"random.spec.js","sourceRoot":"","sources":["../src/random.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asserts.spec.d.ts","sourceRoot":"","sources":["../../src/vectors/asserts.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
import { VectorError, AssertVector, AssertVector2, AssertVector3, AssertVector4, AssertVectorValue, AssertVectors, } from './asserts.js';
|
|
2
|
-
describe('Vector Assertions', () => {
|
|
3
|
-
describe('VectorError', () => {
|
|
4
|
-
it('should create a VectorError with message', () => {
|
|
5
|
-
const error = new VectorError('test message');
|
|
6
|
-
expect(error).toBeInstanceOf(Error);
|
|
7
|
-
expect(error).toBeInstanceOf(VectorError);
|
|
8
|
-
expect(error.name).toBe('VectorError');
|
|
9
|
-
expect(error.message).toBe('test message');
|
|
10
|
-
});
|
|
11
|
-
it('should create a VectorError without message', () => {
|
|
12
|
-
const error = new VectorError();
|
|
13
|
-
expect(error).toBeInstanceOf(Error);
|
|
14
|
-
expect(error).toBeInstanceOf(VectorError);
|
|
15
|
-
expect(error.name).toBe('VectorError');
|
|
16
|
-
expect(error.message).toBe('');
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
describe('AssertVector', () => {
|
|
20
|
-
it('should pass for valid vectors', () => {
|
|
21
|
-
expect(() => AssertVector([1, 2, 3])).not.toThrow();
|
|
22
|
-
expect(() => AssertVector([0])).not.toThrow();
|
|
23
|
-
expect(() => AssertVector([1.5, -2.7, 3.14])).not.toThrow();
|
|
24
|
-
expect(() => AssertVector([])).not.toThrow();
|
|
25
|
-
});
|
|
26
|
-
it('should throw for non-arrays', () => {
|
|
27
|
-
expect(() => AssertVector(null)).toThrow(VectorError);
|
|
28
|
-
expect(() => AssertVector(undefined)).toThrow(VectorError);
|
|
29
|
-
expect(() => AssertVector(123)).toThrow(VectorError);
|
|
30
|
-
expect(() => AssertVector('string')).toThrow(VectorError);
|
|
31
|
-
expect(() => AssertVector({})).toThrow(VectorError);
|
|
32
|
-
});
|
|
33
|
-
it('should throw for arrays with non-number elements', () => {
|
|
34
|
-
expect(() => AssertVector([1, 2, 'string'])).toThrow(VectorError);
|
|
35
|
-
expect(() => AssertVector([1, null, 3])).toThrow(VectorError);
|
|
36
|
-
expect(() => AssertVector([1, undefined, 3])).toThrow(VectorError);
|
|
37
|
-
expect(() => AssertVector([1, {}, 3])).toThrow(VectorError);
|
|
38
|
-
expect(() => AssertVector([NaN])).toThrow(VectorError);
|
|
39
|
-
});
|
|
40
|
-
it('should respect size constraints', () => {
|
|
41
|
-
// Exact size
|
|
42
|
-
expect(() => AssertVector([1, 2], { size: 2 })).not.toThrow();
|
|
43
|
-
expect(() => AssertVector([1, 2, 3], { size: 2 })).toThrow(VectorError);
|
|
44
|
-
expect(() => AssertVector([1], { size: 2 })).toThrow(VectorError);
|
|
45
|
-
// Minimum size
|
|
46
|
-
expect(() => AssertVector([1, 2, 3], { minSize: 2 })).not.toThrow();
|
|
47
|
-
expect(() => AssertVector([1, 2], { minSize: 2 })).not.toThrow();
|
|
48
|
-
expect(() => AssertVector([1], { minSize: 2 })).toThrow(VectorError);
|
|
49
|
-
// Maximum size
|
|
50
|
-
expect(() => AssertVector([1], { maxSize: 2 })).not.toThrow();
|
|
51
|
-
expect(() => AssertVector([1, 2], { maxSize: 2 })).not.toThrow();
|
|
52
|
-
expect(() => AssertVector([1, 2, 3], { maxSize: 2 })).toThrow(VectorError);
|
|
53
|
-
});
|
|
54
|
-
it('should respect combined constraints', () => {
|
|
55
|
-
expect(() => AssertVector([1, 2], { minSize: 1, maxSize: 3 })).not.toThrow();
|
|
56
|
-
expect(() => AssertVector([1], { minSize: 2, maxSize: 3 })).toThrow(VectorError);
|
|
57
|
-
expect(() => AssertVector([1, 2, 3, 4], { minSize: 1, maxSize: 3 })).toThrow(VectorError);
|
|
58
|
-
});
|
|
59
|
-
it('should use custom exception properties', () => {
|
|
60
|
-
const customException = { message: 'Custom error', customProp: true };
|
|
61
|
-
expect(() => AssertVector('invalid', {}, customException)).toThrow('Custom error');
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
describe('AssertVector2', () => {
|
|
65
|
-
it('should pass for valid 2D vectors', () => {
|
|
66
|
-
expect(() => AssertVector2([1, 2])).not.toThrow();
|
|
67
|
-
expect(() => AssertVector2([0, 0])).not.toThrow();
|
|
68
|
-
expect(() => AssertVector2([-1.5, 2.7])).not.toThrow();
|
|
69
|
-
});
|
|
70
|
-
it('should throw for invalid 2D vectors', () => {
|
|
71
|
-
expect(() => AssertVector2([1])).toThrow(VectorError);
|
|
72
|
-
expect(() => AssertVector2([1, 2, 3])).toThrow(VectorError);
|
|
73
|
-
expect(() => AssertVector2([])).toThrow(VectorError);
|
|
74
|
-
expect(() => AssertVector2([1, 'string'])).toThrow(VectorError);
|
|
75
|
-
expect(() => AssertVector2('invalid')).toThrow(VectorError);
|
|
76
|
-
});
|
|
77
|
-
it('should use custom exception properties', () => {
|
|
78
|
-
const customException = { message: 'Custom 2D error' };
|
|
79
|
-
expect(() => AssertVector2([1], customException)).toThrow('Custom 2D error');
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
describe('AssertVector3', () => {
|
|
83
|
-
it('should pass for valid 3D vectors', () => {
|
|
84
|
-
expect(() => AssertVector3([1, 2, 3])).not.toThrow();
|
|
85
|
-
expect(() => AssertVector3([0, 0, 0])).not.toThrow();
|
|
86
|
-
expect(() => AssertVector3([-1.5, 2.7, -3.14])).not.toThrow();
|
|
87
|
-
});
|
|
88
|
-
it('should throw for invalid 3D vectors', () => {
|
|
89
|
-
expect(() => AssertVector3([1, 2])).toThrow(VectorError);
|
|
90
|
-
expect(() => AssertVector3([1, 2, 3, 4])).toThrow(VectorError);
|
|
91
|
-
expect(() => AssertVector3([])).toThrow(VectorError);
|
|
92
|
-
expect(() => AssertVector3([1, 2, 'string'])).toThrow(VectorError);
|
|
93
|
-
expect(() => AssertVector3('invalid')).toThrow(VectorError);
|
|
94
|
-
});
|
|
95
|
-
it('should use custom exception properties', () => {
|
|
96
|
-
const customException = { message: 'Custom 3D error' };
|
|
97
|
-
expect(() => AssertVector3([1, 2], customException)).toThrow('Custom 3D error');
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
describe('AssertVector4', () => {
|
|
101
|
-
it('should pass for valid 4D vectors', () => {
|
|
102
|
-
expect(() => AssertVector4([1, 2, 3, 4])).not.toThrow();
|
|
103
|
-
expect(() => AssertVector4([0, 0, 0, 0])).not.toThrow();
|
|
104
|
-
expect(() => AssertVector4([-1.5, 2.7, -3.14, 4.2])).not.toThrow();
|
|
105
|
-
});
|
|
106
|
-
it('should throw for invalid 4D vectors', () => {
|
|
107
|
-
expect(() => AssertVector4([1, 2, 3])).toThrow(VectorError);
|
|
108
|
-
expect(() => AssertVector4([1, 2, 3, 4, 5])).toThrow(VectorError);
|
|
109
|
-
expect(() => AssertVector4([])).toThrow(VectorError);
|
|
110
|
-
expect(() => AssertVector4([1, 2, 3, 'string'])).toThrow(VectorError);
|
|
111
|
-
expect(() => AssertVector4('invalid')).toThrow(VectorError);
|
|
112
|
-
});
|
|
113
|
-
it('should use custom exception properties', () => {
|
|
114
|
-
const customException = { message: 'Custom 4D error' };
|
|
115
|
-
expect(() => AssertVector4([1, 2, 3], customException)).toThrow('Custom 4D error');
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
describe('AssertVectorValue', () => {
|
|
119
|
-
it('should pass for valid numbers', () => {
|
|
120
|
-
expect(() => AssertVectorValue(1)).not.toThrow();
|
|
121
|
-
expect(() => AssertVectorValue(0)).not.toThrow();
|
|
122
|
-
expect(() => AssertVectorValue(-1.5)).not.toThrow();
|
|
123
|
-
expect(() => AssertVectorValue(3.14159)).not.toThrow();
|
|
124
|
-
expect(() => AssertVectorValue(Infinity)).not.toThrow();
|
|
125
|
-
expect(() => AssertVectorValue(-Infinity)).not.toThrow();
|
|
126
|
-
});
|
|
127
|
-
it('should throw for invalid values', () => {
|
|
128
|
-
expect(() => AssertVectorValue(NaN)).toThrow(VectorError);
|
|
129
|
-
expect(() => AssertVectorValue('string')).toThrow(VectorError);
|
|
130
|
-
expect(() => AssertVectorValue(null)).toThrow(VectorError);
|
|
131
|
-
expect(() => AssertVectorValue(undefined)).toThrow(VectorError);
|
|
132
|
-
expect(() => AssertVectorValue({})).toThrow(VectorError);
|
|
133
|
-
expect(() => AssertVectorValue([])).toThrow(VectorError);
|
|
134
|
-
});
|
|
135
|
-
it('should include index in error message when provided', () => {
|
|
136
|
-
expect(() => AssertVectorValue('invalid', {}, { index: 42 })).toThrow('Vector[42] Not a Number');
|
|
137
|
-
});
|
|
138
|
-
it('should throw with generic message when no index provided', () => {
|
|
139
|
-
expect(() => AssertVectorValue('invalid')).toThrow('Vector element must be a number, got string');
|
|
140
|
-
});
|
|
141
|
-
it('should use custom exception properties', () => {
|
|
142
|
-
const customException = { message: 'Custom value error' };
|
|
143
|
-
expect(() => AssertVectorValue('invalid', {}, customException)).toThrow('Custom value error');
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
describe('AssertVectorValue (extended constraints)', () => {
|
|
147
|
-
it('should throw if finite=true and value is Infinity', () => {
|
|
148
|
-
expect(() => AssertVectorValue(Infinity, { finite: true })).toThrow('Vector Must be Finite');
|
|
149
|
-
expect(() => AssertVectorValue(-Infinity, { finite: true })).toThrow('Vector Must be Finite');
|
|
150
|
-
});
|
|
151
|
-
it('should throw if integer=true and value is not integer', () => {
|
|
152
|
-
expect(() => AssertVectorValue(1.5, { integer: true })).toThrow('Vector Must be an Integer');
|
|
153
|
-
});
|
|
154
|
-
it('should throw if eq is set and value does not match', () => {
|
|
155
|
-
expect(() => AssertVectorValue(2, { eq: 3 })).toThrow('Vector Must be equal to 3');
|
|
156
|
-
});
|
|
157
|
-
it('should throw if gt is set and value is not greater', () => {
|
|
158
|
-
expect(() => AssertVectorValue(2, { gt: 2 })).toThrow('Vector Must be greater than 2');
|
|
159
|
-
expect(() => AssertVectorValue(1, { gt: 2 })).toThrow('Vector Must be greater than 2');
|
|
160
|
-
});
|
|
161
|
-
it('should throw if gte is set and value is less', () => {
|
|
162
|
-
expect(() => AssertVectorValue(1, { gte: 2 })).toThrow('Vector Must be greater than or equal to 2');
|
|
163
|
-
});
|
|
164
|
-
it('should throw if lt is set and value is not less', () => {
|
|
165
|
-
expect(() => AssertVectorValue(3, { lt: 2 })).toThrow('Vector Must be less than 2');
|
|
166
|
-
expect(() => AssertVectorValue(2, { lt: 2 })).toThrow('Vector Must be less than 2');
|
|
167
|
-
});
|
|
168
|
-
it('should throw if lte is set and value is greater', () => {
|
|
169
|
-
expect(() => AssertVectorValue(3, { lte: 2 })).toThrow('Vector Must be less than or equal to 2');
|
|
170
|
-
});
|
|
171
|
-
it('should include index in all constraint error messages', () => {
|
|
172
|
-
expect(() => AssertVectorValue(Infinity, { finite: true }, { index: 5 })).toThrow('Vector[5] Must be Finite');
|
|
173
|
-
expect(() => AssertVectorValue(1.5, { integer: true }, { index: 6 })).toThrow('Vector[6] Must be an Integer');
|
|
174
|
-
expect(() => AssertVectorValue(2, { eq: 3 }, { index: 7 })).toThrow('Vector[7] Must be equal to 3');
|
|
175
|
-
expect(() => AssertVectorValue(2, { gt: 2 }, { index: 8 })).toThrow('Vector[8] Must be greater than 2');
|
|
176
|
-
expect(() => AssertVectorValue(1, { gte: 2 }, { index: 9 })).toThrow('Vector[9] Must be greater than or equal to 2');
|
|
177
|
-
expect(() => AssertVectorValue(3, { lt: 2 }, { index: 10 })).toThrow('Vector[10] Must be less than 2');
|
|
178
|
-
expect(() => AssertVectorValue(3, { lte: 2 }, { index: 11 })).toThrow('Vector[11] Must be less than or equal to 2');
|
|
179
|
-
});
|
|
180
|
-
});
|
|
181
|
-
describe('AssertVectors', () => {
|
|
182
|
-
describe('individual arguments syntax', () => {
|
|
183
|
-
it('should pass for valid vectors of same size', () => {
|
|
184
|
-
expect(() => AssertVectors([[1, 2], [3, 4]])).not.toThrow();
|
|
185
|
-
expect(() => AssertVectors([[1, 2, 3], [4, 5, 6], [7, 8, 9]])).not.toThrow();
|
|
186
|
-
expect(() => AssertVectors([[1]])).not.toThrow();
|
|
187
|
-
});
|
|
188
|
-
it('should throw for vectors of different sizes', () => {
|
|
189
|
-
expect(() => AssertVectors([[1, 2], [3, 4, 5]])).toThrow(VectorError);
|
|
190
|
-
expect(() => AssertVectors([[1], [2, 3], [4, 5, 6]])).toThrow(VectorError);
|
|
191
|
-
});
|
|
192
|
-
it('should throw for invalid vectors', () => {
|
|
193
|
-
expect(() => AssertVectors([[1, 2], 'invalid'])).toThrow(VectorError);
|
|
194
|
-
expect(() => AssertVectors([[1, 2], [3, 'string']])).toThrow(VectorError);
|
|
195
|
-
});
|
|
196
|
-
it('should throw when no vectors provided', () => {
|
|
197
|
-
expect(() => AssertVectors([])).toThrow(VectorError);
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
describe('array with args syntax', () => {
|
|
201
|
-
it('should pass for valid vectors with same size check', () => {
|
|
202
|
-
const vectors = [[1, 2], [3, 4]];
|
|
203
|
-
expect(() => AssertVectors(vectors, { sameSize: true })).not.toThrow();
|
|
204
|
-
});
|
|
205
|
-
it('should pass for valid vectors without same size check', () => {
|
|
206
|
-
const vectors = [[1, 2], [3, 4, 5]];
|
|
207
|
-
expect(() => AssertVectors(vectors, { sameSize: false })).not.toThrow();
|
|
208
|
-
});
|
|
209
|
-
it('should throw for vectors of different sizes when sameSize is true', () => {
|
|
210
|
-
const vectors = [[1, 2], [3, 4, 5]];
|
|
211
|
-
expect(() => AssertVectors(vectors, { sameSize: true })).toThrow(VectorError);
|
|
212
|
-
});
|
|
213
|
-
it('should respect size constraints', () => {
|
|
214
|
-
const vectors = [[1, 2], [3, 4]];
|
|
215
|
-
expect(() => AssertVectors(vectors, { size: 2 })).not.toThrow();
|
|
216
|
-
expect(() => AssertVectors(vectors, { size: 3 })).toThrow(VectorError);
|
|
217
|
-
expect(() => AssertVectors(vectors, { minSize: 1 })).not.toThrow();
|
|
218
|
-
expect(() => AssertVectors(vectors, { minSize: 3 })).toThrow(VectorError);
|
|
219
|
-
expect(() => AssertVectors(vectors, { maxSize: 3 })).not.toThrow();
|
|
220
|
-
expect(() => AssertVectors(vectors, { maxSize: 1 })).toThrow(VectorError);
|
|
221
|
-
});
|
|
222
|
-
it('should use custom exception properties', () => {
|
|
223
|
-
const vectors = [[1, 2], [3, 4, 5]];
|
|
224
|
-
const customException = { message: 'Custom vectors error' };
|
|
225
|
-
expect(() => AssertVectors(vectors, { sameSize: true }, customException)).toThrow('Custom vectors error');
|
|
226
|
-
});
|
|
227
|
-
it('should throw when empty array provided', () => {
|
|
228
|
-
expect(() => AssertVectors([], {})).toThrow(VectorError);
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
describe('edge cases', () => {
|
|
232
|
-
it('should handle single vector correctly', () => {
|
|
233
|
-
expect(() => AssertVectors([[1, 2]])).not.toThrow();
|
|
234
|
-
const vectors = [[1, 2]];
|
|
235
|
-
expect(() => AssertVectors(vectors, { sameSize: true })).not.toThrow();
|
|
236
|
-
});
|
|
237
|
-
it('should handle mixed valid and invalid vectors', () => {
|
|
238
|
-
// @ts-expect-error - second vector contains a string, which is not a valid vector element
|
|
239
|
-
expect(() => AssertVectors([1, 2], [3, 'invalid'])).toThrow(VectorError);
|
|
240
|
-
expect(() => AssertVectors([[1, 2], [3, 'invalid']], {})).toThrow(VectorError);
|
|
241
|
-
expect(() => AssertVectors([[1, 2], [3, 'invalid']], {})).toThrow(VectorError);
|
|
242
|
-
});
|
|
243
|
-
it('should detect args object correctly', () => {
|
|
244
|
-
// This should be treated as individual vectors, not array + args
|
|
245
|
-
// @ts-expect-error - second argument is not a valid options object, should be treated as a vector
|
|
246
|
-
expect(() => AssertVectors([1, 2], { notAnArgsObject: true })).toThrow(VectorError);
|
|
247
|
-
});
|
|
248
|
-
});
|
|
249
|
-
describe('error messages', () => {
|
|
250
|
-
it('should provide descriptive error for size mismatch', () => {
|
|
251
|
-
expect(() => AssertVectors([[1, 2], [3, 4, 5]])).toThrow('Vectors at index 0 and 1 do not have the same size (2 vs 3)');
|
|
252
|
-
});
|
|
253
|
-
it('should provide descriptive error for no vectors', () => {
|
|
254
|
-
const emptyVectors = [];
|
|
255
|
-
expect(() => AssertVectors(emptyVectors, { sameSize: true })).toThrow('Vectors array is empty');
|
|
256
|
-
});
|
|
257
|
-
});
|
|
258
|
-
});
|
|
259
|
-
});
|
|
260
|
-
//# sourceMappingURL=asserts.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asserts.spec.js","sourceRoot":"","sources":["../../src/vectors/asserts.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,GACb,MAAM,cAAc,CAAC;AAEtB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAClC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YACnD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,cAAc,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3D,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC3D,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAClE,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9D,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACnE,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC1C,aAAa;YACb,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9D,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACxE,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAElE,eAAe;YACf,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACpE,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjE,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErE,eAAe;YACf,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9D,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjE,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC7E,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACjF,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YACtE,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAChE,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACrD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACrD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACzD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC/D,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACnE,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACxD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACxD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAClE,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACxD,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC/D,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3D,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAChE,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACzD,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACnE,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;YAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACzD,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAC7F,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAChE,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YACvF,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;QACrG,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YACpF,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAChE,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;YAC9G,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YAC9G,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YACpG,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;YACxG,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;YACrH,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YACvG,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;QACrH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC9B,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAC5C,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;gBACrD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC7E,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;gBACtD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACtE,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACtE,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;gBAChD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACvC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;gBAC7D,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACxE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;gBAChE,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACzE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;gBAC5E,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;gBAC1C,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChE,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAEvE,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACnE,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAE1E,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACnE,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;gBACjD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;gBAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAC3G,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;gBACjD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YAC3B,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;gBAChD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAEpD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACxE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACxD,0FAA0F;gBAC1F,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAEzE,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC/E,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;gBAC9C,iEAAiE;gBACjE,kGAAkG;gBAClG,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC/B,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;gBAC7D,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC;YACzH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;gBAC1D,MAAM,YAAY,GAAc,EAAE,CAAC;gBACnC,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;YACjG,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.spec.d.ts","sourceRoot":"","sources":["../../src/vectors/core.spec.ts"],"names":[],"mappings":""}
|