@holoscript/std 3.1.1 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/__tests__/EconomicPrimitives.test.d.ts +2 -0
- package/dist/__tests__/EconomicTraits.test.d.ts +2 -0
- package/dist/__tests__/SimulationLabPrimitives.test.d.ts +2 -0
- package/dist/__tests__/collections.test.d.ts +2 -0
- package/dist/__tests__/events.test.d.ts +2 -0
- package/dist/__tests__/index.test.d.ts +2 -0
- package/dist/__tests__/index.test.d.ts.map +1 -0
- package/dist/__tests__/materials.test.d.ts +2 -0
- package/dist/__tests__/math.test.d.ts +2 -0
- package/dist/__tests__/physics.test.d.ts +2 -0
- package/dist/__tests__/spatial.test.d.ts +2 -0
- package/dist/__tests__/standard-library-fundamentals.test.d.ts +2 -0
- package/dist/__tests__/standard-library-fundamentals.test.d.ts.map +1 -0
- package/dist/__tests__/string-and-time-utilities.test.d.ts +2 -0
- package/dist/__tests__/string-and-time-utilities.test.d.ts.map +1 -0
- package/dist/__tests__/string-decoupled.test.d.ts +2 -0
- package/dist/__tests__/string.test.d.ts +2 -0
- package/dist/__tests__/time.test.d.ts +2 -0
- package/dist/chunk-DZHAVOCH.js +686 -0
- package/dist/chunk-DZHAVOCH.js.map +1 -0
- package/dist/chunk-P4O3WNG2.js +287 -0
- package/dist/chunk-P4O3WNG2.js.map +1 -0
- package/dist/chunk-PFX2JM4X.js +683 -0
- package/dist/chunk-PFX2JM4X.js.map +1 -0
- package/dist/chunk-PR4QN5HX.js +43 -0
- package/dist/chunk-PR4QN5HX.js.map +1 -0
- package/dist/chunk-WS6W35YC.js +443 -0
- package/dist/chunk-WS6W35YC.js.map +1 -0
- package/dist/chunk-XBA4ARST.js +9313 -0
- package/dist/chunk-XBA4ARST.js.map +1 -0
- package/dist/chunk-XJIFG7G3.js +348 -0
- package/dist/chunk-XJIFG7G3.js.map +1 -0
- package/dist/chunk-ZXVZAQCZ.js +470 -0
- package/dist/chunk-ZXVZAQCZ.js.map +1 -0
- package/dist/collections.cjs +715 -0
- package/dist/collections.cjs.map +1 -0
- package/dist/collections.d.ts +177 -0
- package/dist/collections.js +18 -0
- package/dist/collections.js.map +1 -0
- package/dist/events.d.ts +32 -0
- package/dist/fs/__tests__/file-watch-system.test.d.ts +2 -0
- package/dist/fs/__tests__/file-watch-system.test.d.ts.map +1 -0
- package/dist/fs/__tests__/path-utilities.test.d.ts +2 -0
- package/dist/fs/__tests__/path-utilities.test.d.ts.map +1 -0
- package/dist/fs/__tests__/path.test.d.ts +2 -0
- package/dist/fs/__tests__/path.test.d.ts.map +1 -0
- package/dist/fs/fs.d.ts +288 -0
- package/dist/fs/fs.d.ts.map +1 -0
- package/dist/fs/index.cjs +9338 -0
- package/dist/fs/index.cjs.map +1 -0
- package/dist/fs/index.d.ts +51 -0
- package/dist/fs/index.d.ts.map +1 -0
- package/dist/fs/index.js +204 -0
- package/dist/fs/index.js.map +1 -0
- package/dist/fs/path.d.ts +135 -0
- package/dist/fs/path.d.ts.map +1 -0
- package/dist/fs/watch.d.ts +133 -0
- package/dist/fs/watch.d.ts.map +1 -0
- package/dist/index.cjs +13326 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +102 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1275 -190
- package/dist/index.js.map +1 -0
- package/dist/materials.d.ts +50 -0
- package/dist/math.cjs +595 -0
- package/dist/math.cjs.map +1 -0
- package/dist/math.d.ts +162 -0
- package/dist/math.js +54 -0
- package/dist/math.js.map +1 -0
- package/dist/physics.d.ts +59 -0
- package/dist/spatial.d.ts +82 -0
- package/dist/string.basic.test.d.ts +5 -0
- package/dist/string.basic.test.d.ts.map +1 -0
- package/dist/string.cjs +422 -0
- package/dist/string.cjs.map +1 -0
- package/dist/string.d.ts +212 -0
- package/dist/string.d.ts.map +1 -1
- package/dist/string.js +108 -0
- package/dist/string.js.map +1 -0
- package/dist/string.test.d.ts +5 -0
- package/dist/string.test.d.ts.map +1 -0
- package/dist/time.cjs +512 -0
- package/dist/time.cjs.map +1 -0
- package/dist/time.d.ts +215 -0
- package/dist/time.js +44 -0
- package/dist/time.js.map +1 -0
- package/dist/traits/ARTraits.d.ts +14 -0
- package/dist/traits/EconomicPrimitives.cjs +335 -0
- package/dist/traits/EconomicPrimitives.cjs.map +1 -0
- package/dist/traits/EconomicPrimitives.d.ts +345 -0
- package/dist/traits/EconomicPrimitives.js +56 -0
- package/dist/traits/EconomicPrimitives.js.map +1 -0
- package/dist/traits/EconomicTraits.cjs +471 -0
- package/dist/traits/EconomicTraits.cjs.map +1 -0
- package/dist/traits/EconomicTraits.d.ts +71 -0
- package/dist/traits/EconomicTraits.js +18 -0
- package/dist/traits/EconomicTraits.js.map +1 -0
- package/dist/traits/IoTTraits.d.ts +14 -0
- package/dist/traits/SimulationLabPrimitives.d.ts +187 -0
- package/dist/traits/SimulationLabTraits.d.ts +42 -0
- package/dist/traits/VRRTraits.d.ts +150 -0
- package/dist/traits/__tests__/ARTraits.test.d.ts +2 -0
- package/dist/traits/__tests__/ARTraits.test.d.ts.map +1 -0
- package/dist/traits/__tests__/EconomicPrimitives.test.d.ts +2 -0
- package/dist/traits/__tests__/EconomicPrimitives.test.d.ts.map +1 -0
- package/dist/traits/__tests__/EconomicTraits.test.d.ts +2 -0
- package/dist/traits/__tests__/EconomicTraits.test.d.ts.map +1 -0
- package/dist/types.d.ts +202 -0
- package/dist/types.d.ts.map +1 -1
- package/error-utf8.log +6 -0
- package/error.log +0 -0
- package/package.json +35 -18
- package/src/__tests__/index.test.ts +14 -0
- package/src/__tests__/{Sprint33.test.ts → standard-library-fundamentals.test.ts} +91 -74
- package/src/__tests__/{Sprint56.test.ts → string-and-time-utilities.test.ts} +64 -64
- package/src/__tests__/string-decoupled.test.ts +6 -9
- package/src/fs/__tests__/file-watch-system.test.ts +675 -0
- package/src/fs/__tests__/path-utilities.test.ts +375 -0
- package/src/fs/__tests__/path.test.ts +287 -0
- package/src/fs/fs.ts +692 -0
- package/src/fs/index.ts +194 -0
- package/src/fs/path.ts +310 -0
- package/src/fs/watch.ts +413 -0
- package/src/index.ts +3 -1
- package/src/math.ts +1 -1
- package/src/string.basic.test.ts +1 -1
- package/src/string.test.ts +4 -4
- package/src/string.ts +32 -17
- package/src/time.ts +1 -1
- package/src/traits/ARTraits.ts +2 -2
- package/src/traits/IoTTraits.ts +2 -2
- package/src/traits/VRRTraits.ts +2 -2
- package/src/traits/__tests__/ARTraits.test.ts +8 -0
- package/src/traits/__tests__/EconomicPrimitives.test.ts +14 -0
- package/src/traits/__tests__/EconomicTraits.test.ts +16 -0
- package/src/types.ts +10 -3
- package/std_error.log +5 -0
- package/tsup.config.ts +20 -0
- package/dist/__tests__/Sprint33.test.d.ts.map +0 -1
- package/dist/__tests__/Sprint56.test.d.ts.map +0 -1
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
1
|
+
/**
|
|
2
|
+
* @holoscript/std acceptance tests
|
|
3
3
|
* Covers: string formatting/validation/escaping, time utilities (Stopwatch,
|
|
4
4
|
* CountdownTimer, debounce, throttle, retry, measure), and
|
|
5
5
|
* collections (HoloMap, HoloSet, PriorityQueue).
|
|
6
6
|
*/
|
|
7
7
|
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
8
8
|
import {
|
|
9
|
-
// String
|
|
9
|
+
// String — formatting
|
|
10
10
|
format,
|
|
11
11
|
formatBytes,
|
|
12
12
|
formatDuration,
|
|
13
13
|
formatNumber,
|
|
14
14
|
numberWithCommas,
|
|
15
|
-
// String
|
|
15
|
+
// String — HTML/regex
|
|
16
16
|
escapeHtml,
|
|
17
17
|
unescapeHtml,
|
|
18
18
|
escapeRegex,
|
|
19
19
|
slugify,
|
|
20
|
-
// String
|
|
20
|
+
// String — validation
|
|
21
21
|
isValidIdentifier,
|
|
22
22
|
isNumeric,
|
|
23
23
|
isAlphanumeric,
|
|
24
24
|
isAlpha,
|
|
25
25
|
isBlank,
|
|
26
26
|
isNotBlank,
|
|
27
|
-
// String
|
|
27
|
+
// String — manipulation
|
|
28
28
|
truncate,
|
|
29
29
|
truncateMiddle,
|
|
30
30
|
center,
|
|
@@ -57,9 +57,9 @@ import {
|
|
|
57
57
|
|
|
58
58
|
import { HoloMap, HoloSet, PriorityQueue, List } from '../collections.js';
|
|
59
59
|
|
|
60
|
-
//
|
|
61
|
-
// String
|
|
62
|
-
//
|
|
60
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
61
|
+
// String — formatting
|
|
62
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
63
63
|
describe('format', () => {
|
|
64
64
|
it('replaces named placeholders', () => {
|
|
65
65
|
expect(format('Hello {name}!', { name: 'Alice' })).toBe('Hello Alice!');
|
|
@@ -113,12 +113,12 @@ describe('formatDuration', () => {
|
|
|
113
113
|
expect(formatDuration(2500)).toBe('2.5s');
|
|
114
114
|
});
|
|
115
115
|
|
|
116
|
-
it('minutes
|
|
117
|
-
expect(formatDuration(90000)).toBe('
|
|
116
|
+
it('minutes', () => {
|
|
117
|
+
expect(formatDuration(90000)).toBe('1.5m');
|
|
118
118
|
});
|
|
119
119
|
|
|
120
|
-
it('hours
|
|
121
|
-
expect(formatDuration(3900000)).toBe('1h
|
|
120
|
+
it('hours', () => {
|
|
121
|
+
expect(formatDuration(3900000)).toBe('1.1h');
|
|
122
122
|
});
|
|
123
123
|
});
|
|
124
124
|
|
|
@@ -132,9 +132,9 @@ describe('numberWithCommas', () => {
|
|
|
132
132
|
});
|
|
133
133
|
});
|
|
134
134
|
|
|
135
|
-
//
|
|
136
|
-
// String
|
|
137
|
-
//
|
|
135
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
136
|
+
// String — HTML / regex escaping
|
|
137
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
138
138
|
describe('escapeHtml', () => {
|
|
139
139
|
it('escapes ampersand', () => {
|
|
140
140
|
expect(escapeHtml('a & b')).toBe('a & b');
|
|
@@ -211,9 +211,9 @@ describe('slugify', () => {
|
|
|
211
211
|
});
|
|
212
212
|
});
|
|
213
213
|
|
|
214
|
-
//
|
|
215
|
-
// String
|
|
216
|
-
//
|
|
214
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
215
|
+
// String — validation
|
|
216
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
217
217
|
describe('isValidIdentifier', () => {
|
|
218
218
|
it('accepts simple identifier', () => {
|
|
219
219
|
expect(isValidIdentifier('myVar')).toBe(true);
|
|
@@ -275,9 +275,9 @@ describe('isAlphanumeric / isAlpha / isBlank / isNotBlank', () => {
|
|
|
275
275
|
});
|
|
276
276
|
});
|
|
277
277
|
|
|
278
|
-
//
|
|
279
|
-
// String
|
|
280
|
-
//
|
|
278
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
279
|
+
// String — manipulation
|
|
280
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
281
281
|
describe('truncate', () => {
|
|
282
282
|
it('does not truncate short strings', () => {
|
|
283
283
|
expect(truncate('hi', 10)).toBe('hi');
|
|
@@ -288,8 +288,8 @@ describe('truncate', () => {
|
|
|
288
288
|
});
|
|
289
289
|
|
|
290
290
|
it('custom ellipsis', () => {
|
|
291
|
-
//
|
|
292
|
-
expect(truncate('hello world', 7, '
|
|
291
|
+
// Use ASCII marker to avoid Unicode encoding variance in this fixture.
|
|
292
|
+
expect(truncate('hello world', 7, '*')).toBe('hello *');
|
|
293
293
|
});
|
|
294
294
|
});
|
|
295
295
|
|
|
@@ -417,9 +417,9 @@ describe('randomString', () => {
|
|
|
417
417
|
});
|
|
418
418
|
});
|
|
419
419
|
|
|
420
|
-
//
|
|
421
|
-
// Time
|
|
422
|
-
//
|
|
420
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
421
|
+
// Time — measure
|
|
422
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
423
423
|
describe('measure', () => {
|
|
424
424
|
it('returns result and duration', async () => {
|
|
425
425
|
const { result, duration } = await measure(() => 42);
|
|
@@ -434,9 +434,9 @@ describe('measure', () => {
|
|
|
434
434
|
});
|
|
435
435
|
});
|
|
436
436
|
|
|
437
|
-
//
|
|
438
|
-
// Time
|
|
439
|
-
//
|
|
437
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
438
|
+
// Time — retry
|
|
439
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
440
440
|
describe('retry', () => {
|
|
441
441
|
it('returns immediately on first success', async () => {
|
|
442
442
|
let calls = 0;
|
|
@@ -490,9 +490,9 @@ describe('retry', () => {
|
|
|
490
490
|
});
|
|
491
491
|
});
|
|
492
492
|
|
|
493
|
-
//
|
|
494
|
-
// Time
|
|
495
|
-
//
|
|
493
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
494
|
+
// Time — debounce
|
|
495
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
496
496
|
describe('debounce', () => {
|
|
497
497
|
it('does not call immediately', () => {
|
|
498
498
|
vi.useFakeTimers();
|
|
@@ -528,9 +528,9 @@ describe('debounce', () => {
|
|
|
528
528
|
});
|
|
529
529
|
});
|
|
530
530
|
|
|
531
|
-
//
|
|
532
|
-
// Time
|
|
533
|
-
//
|
|
531
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
532
|
+
// Time — throttle
|
|
533
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
534
534
|
describe('throttle', () => {
|
|
535
535
|
it('calls function on first invocation', () => {
|
|
536
536
|
vi.useFakeTimers();
|
|
@@ -564,9 +564,9 @@ describe('throttle', () => {
|
|
|
564
564
|
});
|
|
565
565
|
});
|
|
566
566
|
|
|
567
|
-
//
|
|
568
|
-
// Time
|
|
569
|
-
//
|
|
567
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
568
|
+
// Time — Stopwatch
|
|
569
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
570
570
|
describe('Stopwatch', () => {
|
|
571
571
|
it('starts not running', () => {
|
|
572
572
|
const sw = new Stopwatch();
|
|
@@ -628,15 +628,15 @@ describe('Stopwatch', () => {
|
|
|
628
628
|
const lapTime = sw.lap();
|
|
629
629
|
expect(typeof lapTime).toBe('number');
|
|
630
630
|
expect(lapTime).toBeGreaterThan(0);
|
|
631
|
-
// After lap(), stopwatch restarted
|
|
631
|
+
// After lap(), stopwatch restarted — elapsed should be less than before
|
|
632
632
|
expect(sw.elapsed).toBeLessThan(lapTime);
|
|
633
633
|
sw.stop();
|
|
634
634
|
});
|
|
635
635
|
});
|
|
636
636
|
|
|
637
|
-
//
|
|
638
|
-
// Time
|
|
639
|
-
//
|
|
637
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
638
|
+
// Time — CountdownTimer
|
|
639
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
640
640
|
describe('CountdownTimer', () => {
|
|
641
641
|
it('starts not running', () => {
|
|
642
642
|
const ct = new CountdownTimer(1000);
|
|
@@ -684,9 +684,9 @@ describe('CountdownTimer', () => {
|
|
|
684
684
|
});
|
|
685
685
|
});
|
|
686
686
|
|
|
687
|
-
//
|
|
688
|
-
// Time
|
|
689
|
-
//
|
|
687
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
688
|
+
// Time — IntervalTimer
|
|
689
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
690
690
|
describe('IntervalTimer', () => {
|
|
691
691
|
it('starts not running', () => {
|
|
692
692
|
const it = new IntervalTimer(() => {}, 1000);
|
|
@@ -726,9 +726,9 @@ describe('IntervalTimer', () => {
|
|
|
726
726
|
});
|
|
727
727
|
});
|
|
728
728
|
|
|
729
|
-
//
|
|
730
|
-
// Time
|
|
731
|
-
//
|
|
729
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
730
|
+
// Time — schedule
|
|
731
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
732
732
|
describe('schedule', () => {
|
|
733
733
|
it('fires callback after delay', async () => {
|
|
734
734
|
const fn = vi.fn();
|
|
@@ -746,9 +746,9 @@ describe('schedule', () => {
|
|
|
746
746
|
});
|
|
747
747
|
});
|
|
748
748
|
|
|
749
|
-
//
|
|
750
|
-
// Time
|
|
751
|
-
//
|
|
749
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
750
|
+
// Time — DateTime
|
|
751
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
752
752
|
describe('DateTime', () => {
|
|
753
753
|
it('toISO returns ISO string', () => {
|
|
754
754
|
const iso = DateTime.toISO(new Date(2024, 0, 15));
|
|
@@ -784,9 +784,9 @@ describe('DateTime', () => {
|
|
|
784
784
|
});
|
|
785
785
|
});
|
|
786
786
|
|
|
787
|
-
//
|
|
788
|
-
// Collections
|
|
789
|
-
//
|
|
787
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
788
|
+
// Collections — HoloMap
|
|
789
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
790
790
|
describe('HoloMap', () => {
|
|
791
791
|
it('creates empty map', () => {
|
|
792
792
|
const m = HoloMap.of<string, number>();
|
|
@@ -879,9 +879,9 @@ describe('HoloMap', () => {
|
|
|
879
879
|
});
|
|
880
880
|
});
|
|
881
881
|
|
|
882
|
-
//
|
|
883
|
-
// Collections
|
|
884
|
-
//
|
|
882
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
883
|
+
// Collections — HoloSet
|
|
884
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
885
885
|
describe('HoloSet', () => {
|
|
886
886
|
it('creates empty set', () => {
|
|
887
887
|
const s = HoloSet.of<number>();
|
|
@@ -951,9 +951,9 @@ describe('HoloSet', () => {
|
|
|
951
951
|
});
|
|
952
952
|
});
|
|
953
953
|
|
|
954
|
-
//
|
|
955
|
-
// Collections
|
|
956
|
-
//
|
|
954
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
955
|
+
// Collections — PriorityQueue
|
|
956
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
957
957
|
describe('PriorityQueue', () => {
|
|
958
958
|
it('creates empty queue', () => {
|
|
959
959
|
const pq = new PriorityQueue<number>();
|
|
@@ -1008,9 +1008,9 @@ describe('PriorityQueue', () => {
|
|
|
1008
1008
|
});
|
|
1009
1009
|
});
|
|
1010
1010
|
|
|
1011
|
-
//
|
|
1012
|
-
// Collections
|
|
1013
|
-
//
|
|
1011
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
1012
|
+
// Collections — List (extended)
|
|
1013
|
+
// â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
1014
1014
|
describe('List (extended)', () => {
|
|
1015
1015
|
it('range creates sequential list (exclusive end)', () => {
|
|
1016
1016
|
const l = List.range(1, 6);
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import { describe, it, expect } from 'vitest';
|
|
2
|
-
|
|
3
|
-
// Auto-generated test for string-decoupled
|
|
4
|
-
// Source: packages/std/src/string.ts
|
|
2
|
+
import * as strings from '../string.js';
|
|
5
3
|
|
|
6
4
|
describe('string-decoupled', () => {
|
|
7
|
-
it('should
|
|
8
|
-
|
|
9
|
-
expect(
|
|
5
|
+
it('should export basic string utilities', () => {
|
|
6
|
+
expect(strings.capitalize).toBeDefined();
|
|
7
|
+
expect(strings.capitalize('hello')).toBe('Hello');
|
|
10
8
|
});
|
|
11
9
|
|
|
12
|
-
it('should
|
|
13
|
-
|
|
14
|
-
expect(true).toBe(true);
|
|
10
|
+
it('should handle whitespace utilities', () => {
|
|
11
|
+
expect(strings.removeWhitespace(' h e l l o ')).toBe('hello');
|
|
15
12
|
});
|
|
16
13
|
});
|