@graphty/layout 1.2.3 → 1.2.5
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/dist/src/algorithms/index.d.ts +5 -0
- package/dist/src/algorithms/index.js +6 -0
- package/dist/src/algorithms/index.js.map +1 -0
- package/dist/src/algorithms/optimization/index.d.ts +7 -0
- package/dist/src/algorithms/optimization/index.js +7 -0
- package/dist/src/algorithms/optimization/index.js.map +1 -0
- package/dist/src/algorithms/optimization/kamada-kawai-solver.d.ts +32 -0
- package/dist/src/algorithms/optimization/kamada-kawai-solver.js +176 -0
- package/dist/src/algorithms/optimization/kamada-kawai-solver.js.map +1 -0
- package/dist/src/algorithms/optimization/lbfgs.d.ts +13 -0
- package/dist/src/algorithms/optimization/lbfgs.js +56 -0
- package/dist/src/algorithms/optimization/lbfgs.js.map +1 -0
- package/dist/src/algorithms/optimization/line-search.d.ts +15 -0
- package/dist/src/algorithms/optimization/line-search.js +37 -0
- package/dist/src/algorithms/optimization/line-search.js.map +1 -0
- package/dist/src/algorithms/optimization/types.d.ts +5 -0
- package/dist/src/algorithms/optimization/types.js +5 -0
- package/dist/src/algorithms/optimization/types.js.map +1 -0
- package/dist/src/algorithms/planarity/check.d.ts +17 -0
- package/dist/src/algorithms/planarity/check.js +30 -0
- package/dist/src/algorithms/planarity/check.js.map +1 -0
- package/dist/src/algorithms/planarity/embedding.d.ts +29 -0
- package/dist/src/algorithms/planarity/embedding.js +179 -0
- package/dist/src/algorithms/planarity/embedding.js.map +1 -0
- package/dist/src/algorithms/planarity/index.d.ts +7 -0
- package/dist/src/algorithms/planarity/index.js +8 -0
- package/dist/src/algorithms/planarity/index.js.map +1 -0
- package/dist/src/algorithms/planarity/lr-test.d.ts +15 -0
- package/dist/src/algorithms/planarity/lr-test.js +54 -0
- package/dist/src/algorithms/planarity/lr-test.js.map +1 -0
- package/dist/src/algorithms/planarity/special-graphs.d.ts +28 -0
- package/dist/src/algorithms/planarity/special-graphs.js +108 -0
- package/dist/src/algorithms/planarity/special-graphs.js.map +1 -0
- package/dist/src/generators/basic.d.ts +28 -0
- package/dist/src/generators/basic.js +79 -0
- package/dist/src/generators/basic.js.map +1 -0
- package/dist/src/generators/bipartite.d.ts +16 -0
- package/dist/src/generators/bipartite.js +40 -0
- package/dist/src/generators/bipartite.js.map +1 -0
- package/dist/src/generators/grid.d.ts +11 -0
- package/dist/src/generators/grid.js +37 -0
- package/dist/src/generators/grid.js.map +1 -0
- package/dist/src/generators/index.d.ts +8 -0
- package/dist/src/generators/index.js +9 -0
- package/dist/src/generators/index.js.map +1 -0
- package/dist/src/generators/random.d.ts +12 -0
- package/dist/src/generators/random.js +34 -0
- package/dist/src/generators/random.js.map +1 -0
- package/dist/src/generators/scale-free.d.ts +12 -0
- package/dist/src/generators/scale-free.js +62 -0
- package/dist/src/generators/scale-free.js.map +1 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.js +15 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/layouts/basic/index.d.ts +4 -0
- package/dist/src/layouts/basic/index.js +5 -0
- package/dist/src/layouts/basic/index.js.map +1 -0
- package/dist/src/layouts/basic/random.d.ts +14 -0
- package/dist/src/layouts/basic/random.js +27 -0
- package/dist/src/layouts/basic/random.js.map +1 -0
- package/dist/src/layouts/force-directed/arf.d.ts +13 -0
- package/dist/src/layouts/force-directed/arf.js +103 -0
- package/dist/src/layouts/force-directed/arf.js.map +1 -0
- package/dist/src/layouts/force-directed/forceatlas2.d.ts +22 -0
- package/dist/src/layouts/force-directed/forceatlas2.js +340 -0
- package/dist/src/layouts/force-directed/forceatlas2.js.map +1 -0
- package/dist/src/layouts/force-directed/fruchterman-reingold.d.ts +19 -0
- package/dist/src/layouts/force-directed/fruchterman-reingold.js +131 -0
- package/dist/src/layouts/force-directed/fruchterman-reingold.js.map +1 -0
- package/dist/src/layouts/force-directed/index.d.ts +8 -0
- package/dist/src/layouts/force-directed/index.js +9 -0
- package/dist/src/layouts/force-directed/index.js.map +1 -0
- package/dist/src/layouts/force-directed/kamada-kawai.d.ts +15 -0
- package/dist/src/layouts/force-directed/kamada-kawai.js +87 -0
- package/dist/src/layouts/force-directed/kamada-kawai.js.map +1 -0
- package/dist/src/layouts/force-directed/spring.d.ts +19 -0
- package/dist/src/layouts/force-directed/spring.js +23 -0
- package/dist/src/layouts/force-directed/spring.js.map +1 -0
- package/dist/src/layouts/geometric/circular.d.ts +14 -0
- package/dist/src/layouts/geometric/circular.js +67 -0
- package/dist/src/layouts/geometric/circular.js.map +1 -0
- package/dist/src/layouts/geometric/index.d.ts +6 -0
- package/dist/src/layouts/geometric/index.js +7 -0
- package/dist/src/layouts/geometric/index.js.map +1 -0
- package/dist/src/layouts/geometric/shell.d.ts +15 -0
- package/dist/src/layouts/geometric/shell.js +67 -0
- package/dist/src/layouts/geometric/shell.js.map +1 -0
- package/dist/src/layouts/geometric/spiral.d.ts +16 -0
- package/dist/src/layouts/geometric/spiral.js +73 -0
- package/dist/src/layouts/geometric/spiral.js.map +1 -0
- package/dist/src/layouts/hierarchical/bfs.d.ts +12 -0
- package/dist/src/layouts/hierarchical/bfs.js +62 -0
- package/dist/src/layouts/hierarchical/bfs.js.map +1 -0
- package/dist/src/layouts/hierarchical/bipartite.d.ts +16 -0
- package/dist/src/layouts/hierarchical/bipartite.js +72 -0
- package/dist/src/layouts/hierarchical/bipartite.js.map +1 -0
- package/dist/src/layouts/hierarchical/index.d.ts +6 -0
- package/dist/src/layouts/hierarchical/index.js +7 -0
- package/dist/src/layouts/hierarchical/index.js.map +1 -0
- package/dist/src/layouts/hierarchical/multipartite.d.ts +12 -0
- package/dist/src/layouts/hierarchical/multipartite.js +73 -0
- package/dist/src/layouts/hierarchical/multipartite.js.map +1 -0
- package/dist/src/layouts/index.d.ts +8 -0
- package/dist/src/layouts/index.js +9 -0
- package/dist/src/layouts/index.js.map +1 -0
- package/dist/src/layouts/specialized/index.d.ts +5 -0
- package/dist/src/layouts/specialized/index.js +6 -0
- package/dist/src/layouts/specialized/index.js.map +1 -0
- package/dist/src/layouts/specialized/planar.d.ts +14 -0
- package/dist/src/layouts/specialized/planar.js +47 -0
- package/dist/src/layouts/specialized/planar.js.map +1 -0
- package/dist/src/layouts/specialized/spectral.d.ts +14 -0
- package/dist/src/layouts/specialized/spectral.js +106 -0
- package/dist/src/layouts/specialized/spectral.js.map +1 -0
- package/dist/src/types/embedding.d.ts +9 -0
- package/dist/src/types/embedding.js +5 -0
- package/dist/src/types/embedding.js.map +1 -0
- package/dist/src/types/graph.d.ts +10 -0
- package/dist/src/types/graph.js +5 -0
- package/dist/src/types/graph.js.map +1 -0
- package/dist/src/types/index.d.ts +6 -0
- package/dist/src/types/index.js +7 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/layout.d.ts +6 -0
- package/dist/src/types/layout.js +5 -0
- package/dist/src/types/layout.js.map +1 -0
- package/dist/src/utils/graph.d.ts +34 -0
- package/dist/src/utils/graph.js +69 -0
- package/dist/src/utils/graph.js.map +1 -0
- package/dist/src/utils/index.d.ts +8 -0
- package/dist/src/utils/index.js +9 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/numpy.d.ts +17 -0
- package/dist/src/utils/numpy.js +101 -0
- package/dist/src/utils/numpy.js.map +1 -0
- package/dist/src/utils/params.d.ts +17 -0
- package/dist/src/utils/params.js +22 -0
- package/dist/src/utils/params.js.map +1 -0
- package/dist/src/utils/random.d.ts +14 -0
- package/dist/src/utils/random.js +42 -0
- package/dist/src/utils/random.js.map +1 -0
- package/dist/src/utils/rescale.d.ts +21 -0
- package/dist/src/utils/rescale.js +194 -0
- package/dist/src/utils/rescale.js.map +1 -0
- package/dist/vitest.config.js +1 -1
- package/dist/vitest.config.js.map +1 -1
- package/package.json +19 -4
- package/src/layouts/force-directed/forceatlas2.ts +23 -4
- package/src/utils/rescale.ts +90 -15
- package/.env.example +0 -11
- package/.github/workflows/ci.yml +0 -101
- package/.releaserc.json +0 -22
- package/CHANGELOG.md +0 -52
- package/CLAUDE.md +0 -104
- package/CONTRIBUTING.md +0 -1
- package/DEPLOYMENT.md +0 -59
- package/build-examples-script.js +0 -26
- package/commitlint.config.js +0 -37
- package/examples/3d-force-directed.html +0 -611
- package/examples/3d-kamada-kawai.html +0 -379
- package/examples/3d-layout-comparison.html +0 -448
- package/examples/3d-spherical-layout.html +0 -319
- package/examples/arf-layout.html +0 -524
- package/examples/bfs-layout.html +0 -487
- package/examples/bipartite-layout.html +0 -382
- package/examples/circular-layout.html +0 -292
- package/examples/forceatlas2-layout.html +0 -588
- package/examples/index.html +0 -241
- package/examples/kamada-kawai-layout.html +0 -425
- package/examples/layout-helpers.js +0 -23
- package/examples/layout.js +0 -2304
- package/examples/multipartite-layout.html +0 -410
- package/examples/planar-layout.html +0 -388
- package/examples/random-layout.html +0 -328
- package/examples/shell-layout.html +0 -323
- package/examples/spectral-layout.html +0 -335
- package/examples/spiral-layout.html +0 -447
- package/examples/spring-layout.html +0 -313
- package/test/arf-layout.test.ts +0 -443
- package/test/bfs-layout.test.ts +0 -427
- package/test/bipartite-layout.test.ts +0 -344
- package/test/circular-layout.test.ts +0 -442
- package/test/forceatlas2-layout.test.ts +0 -405
- package/test/fruchterman-reingold-layout.test.ts +0 -477
- package/test/graph-generators.test.ts +0 -450
- package/test/kamada-kawai-layout.test.ts +0 -623
- package/test/multipartite-layout.test.ts +0 -404
- package/test/planar-layout.test.ts +0 -266
- package/test/random-layout.test.ts +0 -254
- package/test/rescale-layout.test.ts +0 -373
- package/test/shell-layout.test.ts +0 -347
- package/test/spectral-layout.test.ts +0 -378
- package/test/spiral-layout.test.ts +0 -338
- package/test/spring-layout.test.ts +0 -241
- package/test/test-utils.ts +0 -34
- package/test/utils-graph.test.ts +0 -155
- package/test/utils-index.test.ts +0 -77
- package/test/utils-numpy.test.ts +0 -272
- package/test/utils-params.test.ts +0 -99
- package/test/utils-random.test.ts +0 -229
- package/tsconfig.json +0 -16
- package/vite.config.js +0 -36
- package/vitest.config.ts +0 -30
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for random number generator utilities
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { describe, it, expect } from 'vitest';
|
|
6
|
-
import { RandomNumberGenerator } from '../src/utils/random';
|
|
7
|
-
|
|
8
|
-
describe('Random Utils', () => {
|
|
9
|
-
describe('RandomNumberGenerator', () => {
|
|
10
|
-
describe('constructor', () => {
|
|
11
|
-
it('should use provided seed', () => {
|
|
12
|
-
const rng = new RandomNumberGenerator(12345);
|
|
13
|
-
expect(rng['seed']).toBe(12345);
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
it('should generate random seed when none provided', () => {
|
|
17
|
-
const rng1 = new RandomNumberGenerator();
|
|
18
|
-
const rng2 = new RandomNumberGenerator();
|
|
19
|
-
// Seeds should be different (very high probability)
|
|
20
|
-
expect(rng1['seed']).not.toBe(rng2['seed']);
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
it('should initialize state properly', () => {
|
|
24
|
-
const rng = new RandomNumberGenerator(42);
|
|
25
|
-
expect(rng['_state']).toBe(42);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it('should handle large seeds', () => {
|
|
29
|
-
const largeSeed = 999999999;
|
|
30
|
-
const rng = new RandomNumberGenerator(largeSeed);
|
|
31
|
-
expect(rng['seed']).toBe(largeSeed);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
describe('_next', () => {
|
|
36
|
-
it('should generate values between 0 and 1', () => {
|
|
37
|
-
const rng = new RandomNumberGenerator(123);
|
|
38
|
-
for (let i = 0; i < 100; i++) {
|
|
39
|
-
const value = rng['_next']();
|
|
40
|
-
expect(value).toBeGreaterThanOrEqual(0);
|
|
41
|
-
expect(value).toBeLessThan(1);
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
it('should be deterministic for same seed', () => {
|
|
46
|
-
const rng1 = new RandomNumberGenerator(456);
|
|
47
|
-
const rng2 = new RandomNumberGenerator(456);
|
|
48
|
-
|
|
49
|
-
const sequence1 = Array.from({ length: 10 }, () => rng1['_next']());
|
|
50
|
-
const sequence2 = Array.from({ length: 10 }, () => rng2['_next']());
|
|
51
|
-
|
|
52
|
-
expect(sequence1).toEqual(sequence2);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
it('should produce different sequences for different seeds', () => {
|
|
56
|
-
const rng1 = new RandomNumberGenerator(111);
|
|
57
|
-
const rng2 = new RandomNumberGenerator(222);
|
|
58
|
-
|
|
59
|
-
const sequence1 = Array.from({ length: 10 }, () => rng1['_next']());
|
|
60
|
-
const sequence2 = Array.from({ length: 10 }, () => rng2['_next']());
|
|
61
|
-
|
|
62
|
-
expect(sequence1).not.toEqual(sequence2);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
describe('rand', () => {
|
|
67
|
-
it('should return single number when no shape provided', () => {
|
|
68
|
-
const rng = new RandomNumberGenerator(789);
|
|
69
|
-
const value = rng.rand() as number;
|
|
70
|
-
expect(typeof value).toBe('number');
|
|
71
|
-
expect(value).toBeGreaterThanOrEqual(0);
|
|
72
|
-
expect(value).toBeLessThan(1);
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
it('should return single number when null shape provided', () => {
|
|
76
|
-
const rng = new RandomNumberGenerator(789);
|
|
77
|
-
const value = rng.rand(null) as number;
|
|
78
|
-
expect(typeof value).toBe('number');
|
|
79
|
-
expect(value).toBeGreaterThanOrEqual(0);
|
|
80
|
-
expect(value).toBeLessThan(1);
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
it('should return 1D array when given number shape', () => {
|
|
84
|
-
const rng = new RandomNumberGenerator(101112);
|
|
85
|
-
const values = rng.rand(5) as number[];
|
|
86
|
-
expect(Array.isArray(values)).toBe(true);
|
|
87
|
-
expect(values).toHaveLength(5);
|
|
88
|
-
values.forEach(v => {
|
|
89
|
-
expect(v).toBeGreaterThanOrEqual(0);
|
|
90
|
-
expect(v).toBeLessThan(1);
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
it('should return empty array for zero length', () => {
|
|
95
|
-
const rng = new RandomNumberGenerator(123);
|
|
96
|
-
expect(rng.rand(0)).toEqual([]);
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
it('should return 1D array when given single-element array shape', () => {
|
|
100
|
-
const rng = new RandomNumberGenerator(131415);
|
|
101
|
-
const values = rng.rand([4]) as number[];
|
|
102
|
-
expect(Array.isArray(values)).toBe(true);
|
|
103
|
-
expect(values).toHaveLength(4);
|
|
104
|
-
values.forEach(v => {
|
|
105
|
-
expect(v).toBeGreaterThanOrEqual(0);
|
|
106
|
-
expect(v).toBeLessThan(1);
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
it('should return 2D array when given 2D shape', () => {
|
|
111
|
-
const rng = new RandomNumberGenerator(161718);
|
|
112
|
-
const values = rng.rand([2, 3]) as number[][];
|
|
113
|
-
expect(Array.isArray(values)).toBe(true);
|
|
114
|
-
expect(values).toHaveLength(2);
|
|
115
|
-
values.forEach(row => {
|
|
116
|
-
expect(Array.isArray(row)).toBe(true);
|
|
117
|
-
expect(row).toHaveLength(3);
|
|
118
|
-
row.forEach(v => {
|
|
119
|
-
expect(v).toBeGreaterThanOrEqual(0);
|
|
120
|
-
expect(v).toBeLessThan(1);
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
it('should return 3D array when given 3D shape', () => {
|
|
126
|
-
const rng = new RandomNumberGenerator(192021);
|
|
127
|
-
const values = rng.rand([2, 2, 2]) as number[][][];
|
|
128
|
-
expect(Array.isArray(values)).toBe(true);
|
|
129
|
-
expect(values).toHaveLength(2);
|
|
130
|
-
values.forEach(plane => {
|
|
131
|
-
expect(Array.isArray(plane)).toBe(true);
|
|
132
|
-
expect(plane).toHaveLength(2);
|
|
133
|
-
plane.forEach(row => {
|
|
134
|
-
expect(Array.isArray(row)).toBe(true);
|
|
135
|
-
expect(row).toHaveLength(2);
|
|
136
|
-
row.forEach(v => {
|
|
137
|
-
expect(v).toBeGreaterThanOrEqual(0);
|
|
138
|
-
expect(v).toBeLessThan(1);
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
it('should handle edge cases with zeros in shape', () => {
|
|
145
|
-
const rng = new RandomNumberGenerator(222324);
|
|
146
|
-
expect(rng.rand([0])).toEqual([]);
|
|
147
|
-
expect(rng.rand([3, 0])).toEqual([[], [], []]);
|
|
148
|
-
expect(rng.rand([0, 3])).toEqual([]);
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
it('should be deterministic across calls with same seed', () => {
|
|
152
|
-
const rng1 = new RandomNumberGenerator(252627);
|
|
153
|
-
const rng2 = new RandomNumberGenerator(252627);
|
|
154
|
-
|
|
155
|
-
const values1 = rng1.rand([2, 3]) as number[][];
|
|
156
|
-
const values2 = rng2.rand([2, 3]) as number[][];
|
|
157
|
-
|
|
158
|
-
expect(values1).toEqual(values2);
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
it('should handle single element arrays', () => {
|
|
162
|
-
const rng = new RandomNumberGenerator(282930);
|
|
163
|
-
const value1D = rng.rand(1) as number[];
|
|
164
|
-
const value2D = rng.rand([1, 1]) as number[][];
|
|
165
|
-
|
|
166
|
-
expect(value1D).toHaveLength(1);
|
|
167
|
-
expect(value2D).toHaveLength(1);
|
|
168
|
-
expect(value2D[0]).toHaveLength(1);
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
it('should produce different values in sequence', () => {
|
|
172
|
-
const rng = new RandomNumberGenerator(313233);
|
|
173
|
-
const values = rng.rand(10) as number[];
|
|
174
|
-
|
|
175
|
-
// Check that not all values are the same (very high probability)
|
|
176
|
-
const uniqueValues = new Set(values);
|
|
177
|
-
expect(uniqueValues.size).toBeGreaterThan(1);
|
|
178
|
-
});
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
describe('integration tests', () => {
|
|
182
|
-
it('should work correctly for layout algorithm use cases', () => {
|
|
183
|
-
const rng = new RandomNumberGenerator(424344);
|
|
184
|
-
|
|
185
|
-
// Test typical usage patterns in layout algorithms
|
|
186
|
-
const initialPositions = rng.rand([5, 2]) as number[][];
|
|
187
|
-
expect(initialPositions).toHaveLength(5);
|
|
188
|
-
initialPositions.forEach(pos => {
|
|
189
|
-
expect(pos).toHaveLength(2);
|
|
190
|
-
expect(pos[0]).toBeGreaterThanOrEqual(0);
|
|
191
|
-
expect(pos[0]).toBeLessThan(1);
|
|
192
|
-
expect(pos[1]).toBeGreaterThanOrEqual(0);
|
|
193
|
-
expect(pos[1]).toBeLessThan(1);
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
it('should maintain quality of randomness over many calls', () => {
|
|
198
|
-
const rng = new RandomNumberGenerator(454647);
|
|
199
|
-
const values: number[] = [];
|
|
200
|
-
|
|
201
|
-
// Generate many values
|
|
202
|
-
for (let i = 0; i < 1000; i++) {
|
|
203
|
-
values.push(rng.rand() as number);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
// Basic statistical tests
|
|
207
|
-
const mean = values.reduce((a, b) => a + b) / values.length;
|
|
208
|
-
expect(mean).toBeGreaterThan(0.4); // Should be around 0.5
|
|
209
|
-
expect(mean).toBeLessThan(0.6);
|
|
210
|
-
|
|
211
|
-
// Check distribution across range
|
|
212
|
-
const firstQuartile = values.filter(v => v < 0.25).length;
|
|
213
|
-
const secondQuartile = values.filter(v => v >= 0.25 && v < 0.5).length;
|
|
214
|
-
const thirdQuartile = values.filter(v => v >= 0.5 && v < 0.75).length;
|
|
215
|
-
const fourthQuartile = values.filter(v => v >= 0.75).length;
|
|
216
|
-
|
|
217
|
-
// Each quartile should have roughly 1/4 of values (allow some variance)
|
|
218
|
-
expect(firstQuartile).toBeGreaterThan(200);
|
|
219
|
-
expect(firstQuartile).toBeLessThan(300);
|
|
220
|
-
expect(secondQuartile).toBeGreaterThan(200);
|
|
221
|
-
expect(secondQuartile).toBeLessThan(300);
|
|
222
|
-
expect(thirdQuartile).toBeGreaterThan(200);
|
|
223
|
-
expect(thirdQuartile).toBeLessThan(300);
|
|
224
|
-
expect(fourthQuartile).toBeGreaterThan(200);
|
|
225
|
-
expect(fourthQuartile).toBeLessThan(300);
|
|
226
|
-
});
|
|
227
|
-
});
|
|
228
|
-
});
|
|
229
|
-
});
|
package/tsconfig.json
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2020",
|
|
4
|
-
"module": "ES2020",
|
|
5
|
-
"moduleResolution": "node",
|
|
6
|
-
"declaration": true,
|
|
7
|
-
"outDir": "./dist",
|
|
8
|
-
"esModuleInterop": true,
|
|
9
|
-
"strict": true,
|
|
10
|
-
"sourceMap": true,
|
|
11
|
-
"lib": ["ES2020", "DOM"],
|
|
12
|
-
"skipLibCheck": true
|
|
13
|
-
},
|
|
14
|
-
"include": ["*.ts"],
|
|
15
|
-
"exclude": ["node_modules"]
|
|
16
|
-
}
|
package/vite.config.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { defineConfig, loadEnv } from 'vite';
|
|
2
|
-
|
|
3
|
-
export default defineConfig(({ mode }) => {
|
|
4
|
-
// Load env file based on `mode` in the current working directory.
|
|
5
|
-
// Set the third parameter to '' to load all env regardless of the `VITE_` prefix.
|
|
6
|
-
const env = loadEnv(mode, process.cwd(), '');
|
|
7
|
-
|
|
8
|
-
const config = {
|
|
9
|
-
server: {
|
|
10
|
-
port: 3000,
|
|
11
|
-
open: '/examples/',
|
|
12
|
-
host: true,
|
|
13
|
-
fs: {
|
|
14
|
-
// Allow serving files from the dist directory
|
|
15
|
-
allow: ['..']
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
build: {
|
|
19
|
-
// Ensure the examples can find the built files
|
|
20
|
-
outDir: 'dist'
|
|
21
|
-
},
|
|
22
|
-
publicDir: false // Disable default public directory behavior
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
// Allow HOST configuration from .env
|
|
26
|
-
if (env.HOST) {
|
|
27
|
-
config.server.host = env.HOST;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// Allow PORT configuration from .env
|
|
31
|
-
if (env.PORT) {
|
|
32
|
-
config.server.port = parseInt(env.PORT);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return config;
|
|
36
|
-
});
|
package/vitest.config.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from 'vitest/config';
|
|
2
|
-
|
|
3
|
-
export default defineConfig({
|
|
4
|
-
test: {
|
|
5
|
-
globals: true,
|
|
6
|
-
environment: 'happy-dom',
|
|
7
|
-
pool: 'forks',
|
|
8
|
-
testTimeout: 30000,
|
|
9
|
-
coverage: {
|
|
10
|
-
provider: 'v8',
|
|
11
|
-
reporter: ['text', 'json', 'html', 'lcov'],
|
|
12
|
-
include: ['src/**/*.ts'],
|
|
13
|
-
exclude: ['**/*.d.ts', '**/*.test.ts'],
|
|
14
|
-
all: true,
|
|
15
|
-
thresholds: {
|
|
16
|
-
lines: 65,
|
|
17
|
-
functions: 60,
|
|
18
|
-
branches: 85,
|
|
19
|
-
statements: 65
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
include: ['test/**/*.test.ts'],
|
|
23
|
-
reporters: ['verbose']
|
|
24
|
-
},
|
|
25
|
-
resolve: {
|
|
26
|
-
alias: {
|
|
27
|
-
'@': '/src'
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
});
|