@creative-introvert/tons-of-tests 0.9.1 → 1.1.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/README.md +113 -13
- package/dist/cjs/Classify.js +33 -2
- package/dist/cjs/Classify.js.map +1 -1
- package/dist/cjs/RepositoryError.js +45 -0
- package/dist/cjs/RepositoryError.js.map +1 -0
- package/dist/cjs/Test.js +2 -1
- package/dist/cjs/Test.js.map +1 -1
- package/dist/cjs/Test.repository.js +32 -6
- package/dist/cjs/Test.repository.js.map +1 -1
- package/dist/cjs/Test.repository.types.js +14 -0
- package/dist/cjs/Test.repository.types.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/internal/Classify.js +4 -32
- package/dist/cjs/internal/Classify.js.map +1 -1
- package/dist/cjs/internal/Classify.spec.js +223 -0
- package/dist/cjs/internal/Classify.spec.js.map +1 -0
- package/dist/cjs/internal/Test.js +61 -29
- package/dist/cjs/internal/Test.js.map +1 -1
- package/dist/cjs/internal/Test.repository.sqlite.js +172 -121
- package/dist/cjs/internal/Test.repository.sqlite.js.map +1 -1
- package/dist/cjs/internal/Test.repository.sqlite.spec.js +263 -170
- package/dist/cjs/internal/Test.repository.sqlite.spec.js.map +1 -1
- package/dist/cjs/internal/Test.spec.js +205 -0
- package/dist/cjs/internal/Test.spec.js.map +1 -0
- package/dist/cjs/internal/format-diff.spec.js +22 -16
- package/dist/cjs/internal/format-diff.spec.js.map +1 -1
- package/dist/cjs/internal/summarize.js.map +1 -1
- package/dist/cjs/pack.js.map +1 -1
- package/dist/dts/Classify.d.ts +58 -24
- package/dist/dts/Classify.d.ts.map +1 -1
- package/dist/dts/Error.d.ts +1 -1
- package/dist/dts/RepositoryError.d.ts +40 -0
- package/dist/dts/RepositoryError.d.ts.map +1 -0
- package/dist/dts/Test.d.ts +13 -6
- package/dist/dts/Test.d.ts.map +1 -1
- package/dist/dts/Test.repository.d.ts +11 -55
- package/dist/dts/Test.repository.d.ts.map +1 -1
- package/dist/dts/Test.repository.types.d.ts +66 -0
- package/dist/dts/Test.repository.types.d.ts.map +1 -0
- package/dist/dts/index.d.ts +1 -1
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/Classify.d.ts +14 -23
- package/dist/dts/internal/Classify.d.ts.map +1 -1
- package/dist/dts/internal/Classify.spec.d.ts +2 -0
- package/dist/dts/internal/Classify.spec.d.ts.map +1 -0
- package/dist/dts/internal/Test.d.ts +8 -8
- package/dist/dts/internal/Test.d.ts.map +1 -1
- package/dist/dts/internal/Test.repository.sqlite.d.ts +9 -12
- package/dist/dts/internal/Test.repository.sqlite.d.ts.map +1 -1
- package/dist/dts/internal/Test.spec.d.ts +2 -0
- package/dist/dts/internal/Test.spec.d.ts.map +1 -0
- package/dist/dts/internal/common.d.ts +1 -1
- package/dist/dts/internal/common.d.ts.map +1 -1
- package/dist/dts/internal/diff.d.ts.map +1 -1
- package/dist/dts/internal/format-diff.d.ts.map +1 -1
- package/dist/dts/internal/lib/Schema.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/contexts/context.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/contexts/diff.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/contexts/patch.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/contexts/reverse.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/diffpatcher.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/formatters/annotated.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/formatters/base.d.ts +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/formatters/base.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/formatters/html.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/formatters/jsonpatch.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/pipe.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/processor.d.ts +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/processor.d.ts.map +1 -1
- package/dist/dts/internal/pack.d.ts.map +1 -1
- package/dist/dts/internal/stats.d.ts +1 -1
- package/dist/dts/internal/stats.d.ts.map +1 -1
- package/dist/dts/internal/summarize.d.ts +2 -2
- package/dist/dts/internal/summarize.d.ts.map +1 -1
- package/dist/esm/Classify.js +53 -3
- package/dist/esm/Classify.js.map +1 -1
- package/dist/esm/DisplayConfig.js +20 -1
- package/dist/esm/DisplayConfig.js.map +1 -1
- package/dist/esm/Error.js.map +1 -1
- package/dist/esm/RepositoryError.js +45 -0
- package/dist/esm/RepositoryError.js.map +1 -0
- package/dist/esm/Test.js +2 -1
- package/dist/esm/Test.js.map +1 -1
- package/dist/esm/Test.repository.js +52 -7
- package/dist/esm/Test.repository.js.map +1 -1
- package/dist/esm/Test.repository.types.js +14 -0
- package/dist/esm/Test.repository.types.js.map +1 -0
- package/dist/esm/index.js +21 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/Classify.js +4 -32
- package/dist/esm/internal/Classify.js.map +1 -1
- package/dist/esm/internal/Classify.spec.js +223 -0
- package/dist/esm/internal/Classify.spec.js.map +1 -0
- package/dist/esm/internal/Test.js +61 -29
- package/dist/esm/internal/Test.js.map +1 -1
- package/dist/esm/internal/Test.repository.sqlite.js +192 -122
- package/dist/esm/internal/Test.repository.sqlite.js.map +1 -1
- package/dist/esm/internal/Test.repository.sqlite.spec.js +283 -171
- package/dist/esm/internal/Test.repository.sqlite.spec.js.map +1 -1
- package/dist/esm/internal/Test.spec.js +205 -0
- package/dist/esm/internal/Test.spec.js.map +1 -0
- package/dist/esm/internal/common.js +5 -1
- package/dist/esm/internal/common.js.map +1 -1
- package/dist/esm/internal/diff.js +5 -1
- package/dist/esm/internal/diff.js.map +1 -1
- package/dist/esm/internal/format-diff.js +5 -1
- package/dist/esm/internal/format-diff.js.map +1 -1
- package/dist/esm/internal/format-diff.spec.js +42 -17
- package/dist/esm/internal/format-diff.spec.js.map +1 -1
- package/dist/esm/internal/lib/Schema.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js +5 -1
- package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js +5 -1
- package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js +5 -1
- package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js +25 -2
- package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js +5 -1
- package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js +5 -1
- package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js +5 -1
- package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js +5 -1
- package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js +5 -1
- package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/index.js +5 -1
- package/dist/esm/internal/lib/jsondiffpatch/index.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js +5 -1
- package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -1
- package/dist/esm/internal/pack.js +20 -1
- package/dist/esm/internal/pack.js.map +1 -1
- package/dist/esm/internal/stats.js +5 -1
- package/dist/esm/internal/stats.js.map +1 -1
- package/dist/esm/internal/summarize.js +5 -1
- package/dist/esm/internal/summarize.js.map +1 -1
- package/dist/esm/pack.js +20 -1
- package/dist/esm/pack.js.map +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -20,6 +20,8 @@ A specialized test runner for predictive functions, focusing on scenarios where
|
|
|
20
20
|
|
|
21
21
|
> ⚠️ **Note**: This library is in alpha. Expect frequent breaking changes without warning. A beta phase with migration guidance is planned.
|
|
22
22
|
|
|
23
|
+
> 📖 **Upgrading to v1?** See [MIGRATION_GUIDE_V1.md](./MIGRATION_GUIDE_V1.md).
|
|
24
|
+
|
|
23
25
|
## Getting Started
|
|
24
26
|
|
|
25
27
|
### Installation
|
|
@@ -38,12 +40,13 @@ Define your test suite:
|
|
|
38
40
|
|
|
39
41
|
```ts
|
|
40
42
|
// my-test-suite.ts
|
|
43
|
+
import {Classify} from '@creative-introvert/tons-of-tests';
|
|
41
44
|
import * as CLI from '@creative-introvert/tons-of-tests-cli';
|
|
42
45
|
import {Effect} from 'effect';
|
|
43
46
|
|
|
44
47
|
const myFunction = (input: number) => Promise.resolve(input * 1.7);
|
|
45
48
|
|
|
46
|
-
|
|
49
|
+
CLI.run({
|
|
47
50
|
testSuite: {
|
|
48
51
|
name: 'with-cli-simple',
|
|
49
52
|
testCases: [
|
|
@@ -53,13 +56,21 @@ void CLI.run({
|
|
|
53
56
|
{input: 3, expected: 4},
|
|
54
57
|
{input: 4, expected: 5},
|
|
55
58
|
],
|
|
59
|
+
// `makeClassify` customises how observed vs. expected results are
|
|
60
|
+
// labelled. `isEqual` decides TP/TN vs FP/FN — here we tolerate a
|
|
61
|
+
// 0.4 absolute error, so `1.7` passes for `2`, etc.
|
|
62
|
+
classify: Classify.makeClassify({
|
|
63
|
+
isEqual: (a, b) => Math.abs(b - a) <= 0.4,
|
|
64
|
+
}),
|
|
56
65
|
program: (input: number) => Effect.promise(() => myFunction(input)),
|
|
57
66
|
},
|
|
58
67
|
dbPath: 'with-cli-simple.db',
|
|
59
|
-
concurrency:
|
|
68
|
+
concurrency: 1,
|
|
60
69
|
});
|
|
61
70
|
```
|
|
62
71
|
|
|
72
|
+
> Omit `classify` to get default strict equality; then every non-exact result is labelled FP.
|
|
73
|
+
|
|
63
74
|
#### Summarize
|
|
64
75
|
|
|
65
76
|
```
|
|
@@ -72,9 +83,9 @@ pnpx tsx my-test-suite.ts summarize
|
|
|
72
83
|
├─────┼──────────┼────────┼──────┼───────┼──────────┼────────┼──────────────┤
|
|
73
84
|
│ 1/5 │ bd04cb2c │ 0.69ms │ │ 0 │ 0 │ TP │ │
|
|
74
85
|
├─────┼──────────┼────────┼──────┼───────┼──────────┼────────┼──────────────┤
|
|
75
|
-
│ 2/5 │ 562e2cca │ 0.36ms │ │ 1 │ 2 │
|
|
86
|
+
│ 2/5 │ 562e2cca │ 0.36ms │ │ 1 │ 2 │ TP │ 2 => 1.7 │
|
|
76
87
|
├─────┼──────────┼────────┼──────┼───────┼──────────┼────────┼──────────────┤
|
|
77
|
-
│ 3/5 │ a5afd52f │ 3.30ms │ │ 2 │ 3 │
|
|
88
|
+
│ 3/5 │ a5afd52f │ 3.30ms │ │ 2 │ 3 │ TP │ 3 => 3.4 │
|
|
78
89
|
├─────┼──────────┼────────┼──────┼───────┼──────────┼────────┼──────────────┤
|
|
79
90
|
│ 4/5 │ 5f7f8725 │ 1.19ms │ │ 3 │ 4 │ FP │ 4 => 5.1 │
|
|
80
91
|
├─────┼──────────┼────────┼──────┼───────┼──────────┼────────┼──────────────┤
|
|
@@ -89,7 +100,7 @@ pnpx tsx my-test-suite.ts summarize
|
|
|
89
100
|
├───┬────┬────┬────┬────┬───────────┬────────┬──────────┬────────────┤
|
|
90
101
|
│ ∑ │ TP │ TN │ FP │ FN │ precision │ recall │ timeMean │ timeMedian │
|
|
91
102
|
├───┼────┼────┼────┼────┼───────────┼────────┼──────────┼────────────┤
|
|
92
|
-
│ 5 │
|
|
103
|
+
│ 5 │ 3 │ 0 │ 2 │ 0 │ 0.60 │ 1.00 │ 1.35ms │ 1.19ms │
|
|
93
104
|
├───┼────┼────┼────┼────┼───────────┼────────┼──────────┼────────────┤
|
|
94
105
|
│ ∑ │ TP │ TN │ FP │ FN │ precision │ recall │ timeMean │ timeMedian │
|
|
95
106
|
└───┴────┴────┴────┴────┴───────────┴────────┴──────────┴────────────┘
|
|
@@ -105,7 +116,11 @@ pnpx tsx my-test-suite.ts summarize --labels TP
|
|
|
105
116
|
├─────┬──────────┬────────┬──────┬───────┬──────────┬────────┬──────────────┤
|
|
106
117
|
│ #/∑ │ hash │ ms │ tags │ input │ expected │ label₀ │ diff result₀ │
|
|
107
118
|
├─────┼──────────┼────────┼──────┼───────┼──────────┼────────┼──────────────┤
|
|
108
|
-
│ 1/
|
|
119
|
+
│ 1/3 │ bd04cb2c │ 0.52ms │ │ 0 │ 0 │ TP │ │
|
|
120
|
+
├─────┼──────────┼────────┼──────┼───────┼──────────┼────────┼──────────────┤
|
|
121
|
+
│ 2/3 │ 562e2cca │ 0.41ms │ │ 1 │ 2 │ TP │ 2 => 1.7 │
|
|
122
|
+
├─────┼──────────┼────────┼──────┼───────┼──────────┼────────┼──────────────┤
|
|
123
|
+
│ 3/3 │ a5afd52f │ 0.74ms │ │ 2 │ 3 │ TP │ 3 => 3.4 │
|
|
109
124
|
├─────┼──────────┼────────┼──────┼───────┼──────────┼────────┼──────────────┤
|
|
110
125
|
│ #/∑ │ hash │ ms │ tags │ input │ expected │ label₀ │ diff result₀ │
|
|
111
126
|
└─────┴──────────┴────────┴──────┴───────┴──────────┴────────┴──────────────┘
|
|
@@ -116,12 +131,40 @@ pnpx tsx my-test-suite.ts summarize --labels TP
|
|
|
116
131
|
├───┬────┬────┬────┬────┬───────────┬────────┬──────────┬────────────┤
|
|
117
132
|
│ ∑ │ TP │ TN │ FP │ FN │ precision │ recall │ timeMean │ timeMedian │
|
|
118
133
|
├───┼────┼────┼────┼────┼───────────┼────────┼──────────┼────────────┤
|
|
119
|
-
│ 5 │
|
|
134
|
+
│ 5 │ 3 │ 0 │ 2 │ 0 │ 0.60 │ 1.00 │ 1.23ms │ 1.28ms │
|
|
120
135
|
├───┼────┼────┼────┼────┼───────────┼────────┼──────────┼────────────┤
|
|
121
136
|
│ ∑ │ TP │ TN │ FP │ FN │ precision │ recall │ timeMean │ timeMedian │
|
|
122
137
|
└───┴────┴────┴────┴────┴───────────┴────────┴──────────┴────────────┘
|
|
123
138
|
```
|
|
124
139
|
|
|
140
|
+
#### Summarize With Tag Filters
|
|
141
|
+
|
|
142
|
+
`--tags` includes results matching ANY of the listed tags (OR):
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
pnpx tsx my-test-suite.ts summarize --tags foo,bar
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
`--all-tags` includes results matching ALL listed tags (AND):
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
pnpx tsx my-test-suite.ts summarize --all-tags foo,bar
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Both flags compose with `--labels`.
|
|
155
|
+
|
|
156
|
+
#### Summarize From Cache
|
|
157
|
+
|
|
158
|
+
`--cached` reads the most recently inserted test results from the local DB
|
|
159
|
+
instead of re-running the program. This is useful when you want to re-format
|
|
160
|
+
or re-filter without incurring the cost of a full run:
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
pnpx tsx my-test-suite.ts summarize --cached
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
`diff --cached` behaves the same way for the current-run side of the diff.
|
|
167
|
+
|
|
125
168
|
#### Write Test Results
|
|
126
169
|
|
|
127
170
|
```bash
|
|
@@ -199,18 +242,75 @@ Checkout `workspace/examples/src/with-cli` for more examples.
|
|
|
199
242
|
```
|
|
200
243
|
pnpx tsx <file-path>
|
|
201
244
|
# e.g.
|
|
202
|
-
pnpx tsx ./workspace/examples/src/with-cli/simple.ts
|
|
245
|
+
pnpx tsx ./workspace/examples/src/with-cli/simple-run.ts
|
|
246
|
+
pnpx tsx ./workspace/examples/src/with-cli/simple-effect.ts
|
|
203
247
|
```
|
|
204
248
|
|
|
249
|
+
### Using the CLI programmatically
|
|
205
250
|
|
|
206
|
-
|
|
251
|
+
`CLI.run(config, args?)` is the process-entry helper. It parses `args ??
|
|
252
|
+
process.argv`, runs the CLI under `NodeRuntime.runMain`, and returns `void`:
|
|
207
253
|
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
254
|
+
```ts
|
|
255
|
+
import * as CLI from '@creative-introvert/tons-of-tests-cli';
|
|
256
|
+
|
|
257
|
+
void CLI.run(
|
|
258
|
+
{
|
|
259
|
+
testSuite,
|
|
260
|
+
dbPath: 'with-cli-simple.db',
|
|
261
|
+
},
|
|
262
|
+
['node', 'script', 'summarize'],
|
|
263
|
+
);
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Use `CLI.effect(config, args?)` when another Effect application owns the
|
|
267
|
+
runtime or provides dependencies required by `testSuite.program`:
|
|
268
|
+
|
|
269
|
+
```ts
|
|
270
|
+
import * as CLI from '@creative-introvert/tons-of-tests-cli';
|
|
271
|
+
import {NodeRuntime} from '@effect/platform-node';
|
|
272
|
+
import {Effect} from 'effect';
|
|
273
|
+
|
|
274
|
+
CLI.effect(
|
|
275
|
+
{
|
|
276
|
+
testSuite,
|
|
277
|
+
dbPath: 'with-cli-simple.db',
|
|
278
|
+
},
|
|
279
|
+
['node', 'script', 'summarize'],
|
|
280
|
+
).pipe(
|
|
281
|
+
Effect.provide(MyProgramLayer),
|
|
282
|
+
NodeRuntime.runMain,
|
|
283
|
+
);
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
If you need the last committed test-run hash from inside another script, use
|
|
287
|
+
the dedicated helper:
|
|
288
|
+
|
|
289
|
+
```ts
|
|
290
|
+
import * as CLI from '@creative-introvert/tons-of-tests-cli';
|
|
291
|
+
|
|
292
|
+
const hash = await CLI.getLastTestRunHash({
|
|
293
|
+
testSuite,
|
|
294
|
+
dbPath: 'with-cli-simple.db',
|
|
295
|
+
});
|
|
296
|
+
// hash: string | null
|
|
212
297
|
```
|
|
213
298
|
|
|
299
|
+
If you compose the CLI's `diff` programmatically (via `_diff` or a custom
|
|
300
|
+
harness), `diff --exit-on-diff` fails with a typed `DiffNonEmpty` error
|
|
301
|
+
when the current run has visible diffs:
|
|
302
|
+
|
|
303
|
+
```ts
|
|
304
|
+
import {DiffNonEmpty} from '@creative-introvert/tons-of-tests-cli';
|
|
305
|
+
|
|
306
|
+
// ... compose _diff into your own Effect pipeline, then:
|
|
307
|
+
Effect.catchTag('DiffNonEmpty', () => /* handle */);
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
At the process entry point (`CLI.run`), `DiffNonEmpty` is translated to
|
|
311
|
+
`process.exitCode = 1` — the user-facing "exit with code 1 on diff"
|
|
312
|
+
behavior is unchanged.
|
|
313
|
+
|
|
214
314
|
## Why No Runtime?
|
|
215
315
|
|
|
216
316
|
Most test runners like Jest and Vitest come with their own command-line interface (CLI). When you run `jest` or `vitest`, these tools automatically find your test files, execute them, and report results.
|
package/dist/cjs/Classify.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.values = exports.makeClassify = exports.defaultIsNil = exports.defaultIsEqual = exports.LabelSchema = void 0;
|
|
6
|
+
exports.values = exports.makeClassify = exports.defaultIsNil = exports.defaultIsEqual = exports.Stats = exports.LabelSchema = void 0;
|
|
7
|
+
var _effect = /*#__PURE__*/require("effect");
|
|
7
8
|
var internal = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./internal/Classify.js"));
|
|
8
9
|
function _interopRequireWildcard(e, t) {
|
|
9
10
|
if ("function" == typeof WeakMap) var r = new WeakMap(),
|
|
@@ -25,9 +26,39 @@ function _interopRequireWildcard(e, t) {
|
|
|
25
26
|
return f;
|
|
26
27
|
})(e, t);
|
|
27
28
|
}
|
|
29
|
+
const LabelSchema = exports.LabelSchema = internal.LabelSchema;
|
|
28
30
|
const values = exports.values = internal.values;
|
|
29
31
|
const defaultIsEqual = exports.defaultIsEqual = internal.defaultIsEqual;
|
|
30
32
|
const defaultIsNil = exports.defaultIsNil = internal.defaultIsNil;
|
|
31
33
|
const makeClassify = exports.makeClassify = internal.makeClassify;
|
|
32
|
-
|
|
34
|
+
class Stats extends /*#__PURE__*/_effect.Schema.Class('Stats')({
|
|
35
|
+
TP: _effect.Schema.Number,
|
|
36
|
+
TN: _effect.Schema.Number,
|
|
37
|
+
FP: _effect.Schema.Number,
|
|
38
|
+
FN: _effect.Schema.Number,
|
|
39
|
+
total: _effect.Schema.Number,
|
|
40
|
+
precision: _effect.Schema.Number,
|
|
41
|
+
recall: _effect.Schema.Number,
|
|
42
|
+
timeMin: /*#__PURE__*/_effect.Schema.OptionFromSelf(_effect.Schema.Number),
|
|
43
|
+
timeMax: /*#__PURE__*/_effect.Schema.OptionFromSelf(_effect.Schema.Number),
|
|
44
|
+
timeMedian: /*#__PURE__*/_effect.Schema.OptionFromSelf(_effect.Schema.Number),
|
|
45
|
+
timeMean: /*#__PURE__*/_effect.Schema.OptionFromSelf(_effect.Schema.Number)
|
|
46
|
+
}) {
|
|
47
|
+
static empty() {
|
|
48
|
+
return new Stats({
|
|
49
|
+
TP: 0,
|
|
50
|
+
TN: 0,
|
|
51
|
+
FP: 0,
|
|
52
|
+
FN: 0,
|
|
53
|
+
total: 0,
|
|
54
|
+
precision: 0,
|
|
55
|
+
recall: 0,
|
|
56
|
+
timeMin: _effect.Option.none(),
|
|
57
|
+
timeMax: _effect.Option.none(),
|
|
58
|
+
timeMedian: _effect.Option.none(),
|
|
59
|
+
timeMean: _effect.Option.none()
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.Stats = Stats;
|
|
33
64
|
//# sourceMappingURL=Classify.js.map
|
package/dist/cjs/Classify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Classify.js","names":["
|
|
1
|
+
{"version":3,"file":"Classify.js","names":["_effect","require","internal","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LabelSchema","exports","values","defaultIsEqual","defaultIsNil","makeClassify","Stats","Schema","Class","TP","Number","TN","FP","FN","total","precision","recall","timeMin","OptionFromSelf","timeMax","timeMedian","timeMean","empty","Option","none"],"sources":["../../src/Classify.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TestRunNotCreated = exports.RepositoryWriteError = exports.RepositoryQueryError = exports.RepositoryDecodeError = void 0;
|
|
7
|
+
var _SqlError = /*#__PURE__*/require("@effect/sql/SqlError");
|
|
8
|
+
var _effect = /*#__PURE__*/require("effect");
|
|
9
|
+
var _ParseResult = /*#__PURE__*/require("effect/ParseResult");
|
|
10
|
+
const SqlCause = /*#__PURE__*/_effect.Schema.Union(/*#__PURE__*/_effect.Schema.instanceOf(_SqlError.SqlError), /*#__PURE__*/_effect.Schema.instanceOf(_SqlError.ResultLengthMismatch));
|
|
11
|
+
class RepositoryQueryError extends /*#__PURE__*/_effect.Schema.TaggedError()('RepositoryQueryError', {
|
|
12
|
+
operation: _effect.Schema.String,
|
|
13
|
+
cause: /*#__PURE__*/_effect.Schema.instanceOf(_SqlError.SqlError)
|
|
14
|
+
}) {
|
|
15
|
+
static fromSql = operation => cause => new RepositoryQueryError({
|
|
16
|
+
operation,
|
|
17
|
+
cause
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
exports.RepositoryQueryError = RepositoryQueryError;
|
|
21
|
+
class RepositoryWriteError extends /*#__PURE__*/_effect.Schema.TaggedError()('RepositoryWriteError', {
|
|
22
|
+
operation: _effect.Schema.String,
|
|
23
|
+
cause: SqlCause
|
|
24
|
+
}) {
|
|
25
|
+
static from = operation => cause => new RepositoryWriteError({
|
|
26
|
+
operation,
|
|
27
|
+
cause
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
exports.RepositoryWriteError = RepositoryWriteError;
|
|
31
|
+
class RepositoryDecodeError extends /*#__PURE__*/_effect.Schema.TaggedError()('RepositoryDecodeError', {
|
|
32
|
+
operation: _effect.Schema.String,
|
|
33
|
+
cause: /*#__PURE__*/_effect.Schema.instanceOf(_ParseResult.ParseError)
|
|
34
|
+
}) {
|
|
35
|
+
static from = operation => cause => new RepositoryDecodeError({
|
|
36
|
+
operation,
|
|
37
|
+
cause
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
exports.RepositoryDecodeError = RepositoryDecodeError;
|
|
41
|
+
class TestRunNotCreated extends /*#__PURE__*/_effect.Schema.TaggedError()('TestRunNotCreated', {
|
|
42
|
+
name: _effect.Schema.String
|
|
43
|
+
}) {}
|
|
44
|
+
exports.TestRunNotCreated = TestRunNotCreated;
|
|
45
|
+
//# sourceMappingURL=RepositoryError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepositoryError.js","names":["_SqlError","require","_effect","_ParseResult","SqlCause","Schema","Union","instanceOf","SqlError","ResultLengthMismatch","RepositoryQueryError","TaggedError","operation","String","cause","fromSql","exports","RepositoryWriteError","from","RepositoryDecodeError","ParseError","TestRunNotCreated","name"],"sources":["../../src/RepositoryError.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,SAAA,gBAAAC,OAAA;AACA,IAAAC,OAAA,gBAAAD,OAAA;AACA,IAAAE,YAAA,gBAAAF,OAAA;AAEA,MAAMG,QAAQ,gBAAGF,OAAA,CAAAG,MAAM,CAACC,KAAK,cACzBJ,OAAA,CAAAG,MAAM,CAACE,UAAU,CAACP,SAAA,CAAAQ,QAAQ,CAAC,eAC3BN,OAAA,CAAAG,MAAM,CAACE,UAAU,CAACP,SAAA,CAAAS,oBAAoB,CAAC,CAC1C;AAEK,MAAOC,oBAAqB,sBAAQR,OAAA,CAAAG,MAAM,CAACM,WAAW,EAAwB,CAChF,sBAAsB,EACtB;EAACC,SAAS,EAAEV,OAAA,CAAAG,MAAM,CAACQ,MAAM;EAAEC,KAAK,eAAEZ,OAAA,CAAAG,MAAM,CAACE,UAAU,CAACP,SAAA,CAAAQ,QAAQ;AAAC,CAAC,CACjE;EACG,OAAOO,OAAO,GAAIH,SAAiB,IAAME,KAAe,IACpD,IAAIJ,oBAAoB,CAAC;IAACE,SAAS;IAAEE;EAAK,CAAC,CAAC;;AACnDE,OAAA,CAAAN,oBAAA,GAAAA,oBAAA;AAEK,MAAOO,oBAAqB,sBAAQf,OAAA,CAAAG,MAAM,CAACM,WAAW,EAAwB,CAChF,sBAAsB,EACtB;EAACC,SAAS,EAAEV,OAAA,CAAAG,MAAM,CAACQ,MAAM;EAAEC,KAAK,EAAEV;AAAQ,CAAC,CAC9C;EACG,OAAOc,IAAI,GACNN,SAAiB,IAAME,KAAsC,IAC1D,IAAIG,oBAAoB,CAAC;IAACL,SAAS;IAAEE;EAAK,CAAC,CAAC;;AACvDE,OAAA,CAAAC,oBAAA,GAAAA,oBAAA;AAEK,MAAOE,qBAAsB,sBAAQjB,OAAA,CAAAG,MAAM,CAACM,WAAW,EAAyB,CAClF,uBAAuB,EACvB;EAACC,SAAS,EAAEV,OAAA,CAAAG,MAAM,CAACQ,MAAM;EAAEC,KAAK,eAAEZ,OAAA,CAAAG,MAAM,CAACE,UAAU,CAACJ,YAAA,CAAAiB,UAAU;AAAC,CAAC,CACnE;EACG,OAAOF,IAAI,GAAIN,SAAiB,IAAME,KAAiB,IACnD,IAAIK,qBAAqB,CAAC;IAACP,SAAS;IAAEE;EAAK,CAAC,CAAC;;AACpDE,OAAA,CAAAG,qBAAA,GAAAA,qBAAA;AAEK,MAAOE,iBAAkB,sBAAQnB,OAAA,CAAAG,MAAM,CAACM,WAAW,EAAqB,CAC1E,mBAAmB,EACnB;EAACW,IAAI,EAAEpB,OAAA,CAAAG,MAAM,CAACQ;AAAM,CAAC,CACxB;AAAGG,OAAA,CAAAK,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
package/dist/cjs/Test.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.runCollectRecord = exports.diff = exports.all = void 0;
|
|
6
|
+
exports.runCollectRecord = exports.makeSha256 = exports.diff = exports.all = void 0;
|
|
7
7
|
var internal = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./internal/Test.js"));
|
|
8
8
|
function _interopRequireWildcard(e, t) {
|
|
9
9
|
if ("function" == typeof WeakMap) var r = new WeakMap(),
|
|
@@ -27,5 +27,6 @@ function _interopRequireWildcard(e, t) {
|
|
|
27
27
|
}
|
|
28
28
|
const all = exports.all = internal.all;
|
|
29
29
|
const diff = exports.diff = internal.diff;
|
|
30
|
+
const makeSha256 = exports.makeSha256 = internal.makeSha256;
|
|
30
31
|
const runCollectRecord = exports.runCollectRecord = internal.runCollectRecord;
|
|
31
32
|
//# sourceMappingURL=Test.js.map
|
package/dist/cjs/Test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Test.js","names":["internal","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","all","exports","diff","runCollectRecord"],"sources":["../../src/Test.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,QAAA,gBAAAC,uBAAA,cAAAC,OAAA;AAA+C,SAAAD,wBAAAE,CAAA,EAAAC,CAAA;EAAA,yBAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA;IAAA,KAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA;IAAA,IAAAM,CAAA;MAAAC,CAAA;MAAAC,CAAA;QAAAC,SAAA;QAAAC,OAAA,EAAAV;MAAA;IAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA;IAAA,IAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA;MAAA,IAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA;MAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA;IAAA;IAAA,WAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA;IAAA,OAAAO,CAAA;EAAA,GAAAR,CAAA,EAAAC,CAAA;AAAA;
|
|
1
|
+
{"version":3,"file":"Test.js","names":["internal","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","all","exports","diff","makeSha256","runCollectRecord"],"sources":["../../src/Test.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,QAAA,gBAAAC,uBAAA,cAAAC,OAAA;AAA+C,SAAAD,wBAAAE,CAAA,EAAAC,CAAA;EAAA,yBAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA;IAAA,KAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA;IAAA,IAAAM,CAAA;MAAAC,CAAA;MAAAC,CAAA;QAAAC,SAAA;QAAAC,OAAA,EAAAV;MAAA;IAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA;IAAA,IAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA;MAAA,IAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA;MAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA;IAAA;IAAA,WAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA;IAAA,OAAAO,CAAA;EAAA,GAAAR,CAAA,EAAAC,CAAA;AAAA;AAiExC,MAAMkB,GAAG,GAAAC,OAAA,CAAAD,GAAA,GAAGtB,QAAQ,CAACsB,GAAG;AACxB,MAAME,IAAI,GAAAD,OAAA,CAAAC,IAAA,GAAGxB,QAAQ,CAACwB,IAAI;AAC1B,MAAMC,UAAU,GAAAF,OAAA,CAAAE,UAAA,GAAGzB,QAAQ,CAACyB,UAAU;AACtC,MAAMC,gBAAgB,GAAAH,OAAA,CAAAG,gBAAA,GAAG1B,QAAQ,CAAC0B,gBAAgB","ignoreList":[]}
|
|
@@ -3,8 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
6
|
+
exports.TestRepository = void 0;
|
|
7
|
+
Object.defineProperty(exports, "TestRun", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _TestRepositoryTypes.TestRun;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var Sqlite = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect/sql-sqlite-node"));
|
|
14
|
+
var _effect = /*#__PURE__*/require("effect");
|
|
15
|
+
var _TestRepositorySqlite = /*#__PURE__*/require("./internal/Test.repository.sqlite.js");
|
|
16
|
+
var _TestRepositoryTypes = /*#__PURE__*/require("./Test.repository.types.js");
|
|
8
17
|
function _interopRequireWildcard(e, t) {
|
|
9
18
|
if ("function" == typeof WeakMap) var r = new WeakMap(),
|
|
10
19
|
n = new WeakMap();
|
|
@@ -25,8 +34,25 @@ function _interopRequireWildcard(e, t) {
|
|
|
25
34
|
return f;
|
|
26
35
|
})(e, t);
|
|
27
36
|
}
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
37
|
+
const makeTestLayer = () => _effect.Layer.provideMerge(TestRepository.Live, Sqlite.SqliteClient.layer({
|
|
38
|
+
filename: ':memory:'
|
|
39
|
+
}));
|
|
40
|
+
let testLayerCache;
|
|
41
|
+
class TestRepository extends /*#__PURE__*/_effect.Context.Tag('TestRepository')() {
|
|
42
|
+
// Lazy getters: makeTestRepository lives in an internal module that has
|
|
43
|
+
// its own import edge back here, so we evaluate these at access time
|
|
44
|
+
// rather than at class definition time to avoid the circular init order.
|
|
45
|
+
static get Live() {
|
|
46
|
+
return _effect.Layer.effect(this, _TestRepositorySqlite.makeTestRepository);
|
|
47
|
+
}
|
|
48
|
+
static layer(dbPath) {
|
|
49
|
+
return _effect.Layer.provide(this.Live, Sqlite.SqliteClient.layer({
|
|
50
|
+
filename: dbPath
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
static get TestLayer() {
|
|
54
|
+
return testLayerCache ??= makeTestLayer();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.TestRepository = TestRepository;
|
|
32
58
|
//# sourceMappingURL=Test.repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Test.repository.js","names":["
|
|
1
|
+
{"version":3,"file":"Test.repository.js","names":["Sqlite","_interopRequireWildcard","require","_effect","_TestRepositorySqlite","_TestRepositoryTypes","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","makeTestLayer","Layer","provideMerge","TestRepository","Live","SqliteClient","layer","filename","testLayerCache","Context","Tag","effect","makeTestRepository","dbPath","provide","TestLayer","exports"],"sources":["../../src/Test.repository.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,gBAAAC,uBAAA,cAAAC,OAAA;AACA,IAAAC,OAAA,gBAAAD,OAAA;AAEA,IAAAE,qBAAA,gBAAAF,OAAA;AAGA,IAAAG,oBAAA,gBAAAH,OAAA;AAAmD,SAAAD,wBAAAK,CAAA,EAAAC,CAAA;EAAA,yBAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA;IAAA,KAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA;IAAA,IAAAM,CAAA;MAAAC,CAAA;MAAAC,CAAA;QAAAC,SAAA;QAAAC,OAAA,EAAAV;MAAA;IAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA;IAAA,IAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA;MAAA,IAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA;MAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA;IAAA;IAAA,WAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA;IAAA,OAAAO,CAAA;EAAA,GAAAR,CAAA,EAAAC,CAAA;AAAA;AAQnD,MAAMkB,aAAa,GAAGA,CAAA,KAClBtB,OAAA,CAAAuB,KAAK,CAACC,YAAY,CACdC,cAAc,CAACC,IAAI,EACnB7B,MAAM,CAAC8B,YAAY,CAACC,KAAK,CAAC;EAACC,QAAQ,EAAE;AAAU,CAAC,CAAC,CACpD;AAEL,IAAIC,cAA4D;AAE1D,MAAOL,cAAe,sBAAQzB,OAAA,CAAA+B,OAAO,CAACC,GAAG,CAAC,gBAAgB,CAAC,EAG9D;EACC;EACA;EACA;EACA,WAAWN,IAAIA,CAAA;IACX,OAAO1B,OAAA,CAAAuB,KAAK,CAACU,MAAM,CAAC,IAAI,EAAEhC,qBAAA,CAAAiC,kBAAkB,CAAC;EACjD;EACA,OAAON,KAAKA,CAACO,MAAc;IACvB,OAAOnC,OAAA,CAAAuB,KAAK,CAACa,OAAO,CAChB,IAAI,CAACV,IAAI,EACT7B,MAAM,CAAC8B,YAAY,CAACC,KAAK,CAAC;MAACC,QAAQ,EAAEM;IAAM,CAAC,CAAC,CAChD;EACL;EAEA,WAAWE,SAASA,CAAA;IAChB,OAAQP,cAAc,KAAKR,aAAa,EAAE;EAC9C;;AACHgB,OAAA,CAAAb,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TestRun = void 0;
|
|
7
|
+
var _effect = /*#__PURE__*/require("effect");
|
|
8
|
+
class TestRun extends /*#__PURE__*/_effect.Schema.Class('TestRun')({
|
|
9
|
+
id: _effect.Schema.Int,
|
|
10
|
+
name: _effect.Schema.String,
|
|
11
|
+
hash: /*#__PURE__*/_effect.Schema.NullOr(_effect.Schema.String)
|
|
12
|
+
}) {}
|
|
13
|
+
exports.TestRun = TestRun;
|
|
14
|
+
//# sourceMappingURL=Test.repository.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Test.repository.types.js","names":["_effect","require","TestRun","Schema","Class","id","Int","name","String","hash","NullOr","exports"],"sources":["../../src/Test.repository.types.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,gBAAAC,OAAA;AAkBM,MAAOC,OAAQ,sBAAQF,OAAA,CAAAG,MAAM,CAACC,KAAK,CAAU,SAAS,CAAC,CAAC;EAC1DC,EAAE,EAAEL,OAAA,CAAAG,MAAM,CAACG,GAAG;EACdC,IAAI,EAAEP,OAAA,CAAAG,MAAM,CAACK,MAAM;EACnBC,IAAI,eAAET,OAAA,CAAAG,MAAM,CAACO,MAAM,CAACV,OAAA,CAAAG,MAAM,CAACK,MAAM;CACpC,CAAC;AAAGG,OAAA,CAAAT,OAAA,GAAAA,OAAA","ignoreList":[]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var _Classify = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Cla
|
|
|
14
14
|
exports.Classify = _Classify;
|
|
15
15
|
var _DisplayConfig = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./DisplayConfig.js"));
|
|
16
16
|
exports.DisplayConfig = _DisplayConfig;
|
|
17
|
-
var _Error = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./
|
|
17
|
+
var _Error = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./RepositoryError.js"));
|
|
18
18
|
exports.Error = _Error;
|
|
19
19
|
var _pack = /*#__PURE__*/require("./internal/pack.js");
|
|
20
20
|
var _Show = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Show.js"));
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.values = exports.recall = exports.precision = exports.min = exports.median = exports.mean = exports.max = exports.makeClassify = exports.defaultIsNil = exports.defaultIsEqual = exports.
|
|
6
|
+
exports.values = exports.recall = exports.precision = exports.min = exports.median = exports.mean = exports.max = exports.makeClassify = exports.defaultIsNil = exports.defaultIsEqual = exports.LabelSchema = void 0;
|
|
7
7
|
var _nodeUtil = /*#__PURE__*/require("node:util");
|
|
8
8
|
var _effect = /*#__PURE__*/require("effect");
|
|
9
9
|
const values = exports.values = {
|
|
@@ -27,48 +27,20 @@ const makeClassify = ({
|
|
|
27
27
|
isOutputNil = defaultIsNil,
|
|
28
28
|
isExpectedNil = defaultIsNil
|
|
29
29
|
}) => (output, expected) => {
|
|
30
|
-
const eq = isEqual(output, expected);
|
|
31
30
|
const oNil = isOutputNil(output);
|
|
32
31
|
const eNil = isExpectedNil(expected);
|
|
33
32
|
if (oNil && eNil) {
|
|
34
33
|
return values.TN;
|
|
35
34
|
}
|
|
36
|
-
if (!oNil && !eNil
|
|
37
|
-
return values.TP;
|
|
35
|
+
if (!oNil && !eNil) {
|
|
36
|
+
return isEqual(output, expected) ? values.TP : values.FP;
|
|
38
37
|
}
|
|
39
|
-
if (!oNil && eNil
|
|
38
|
+
if (!oNil && eNil) {
|
|
40
39
|
return values.FP;
|
|
41
40
|
}
|
|
42
41
|
return values.FN;
|
|
43
42
|
};
|
|
44
43
|
exports.makeClassify = makeClassify;
|
|
45
|
-
const StatsSchema = exports.StatsSchema = /*#__PURE__*/_effect.Schema.Struct({
|
|
46
|
-
TP: _effect.Schema.Number,
|
|
47
|
-
TN: _effect.Schema.Number,
|
|
48
|
-
FP: _effect.Schema.Number,
|
|
49
|
-
FN: _effect.Schema.Number,
|
|
50
|
-
precision: _effect.Schema.Number,
|
|
51
|
-
recall: _effect.Schema.Number,
|
|
52
|
-
timeMean: /*#__PURE__*/_effect.Schema.Number.pipe(_effect.Schema.Option),
|
|
53
|
-
timeMedian: /*#__PURE__*/_effect.Schema.Number.pipe(_effect.Schema.Option),
|
|
54
|
-
timeMin: /*#__PURE__*/_effect.Schema.Number.pipe(_effect.Schema.Option),
|
|
55
|
-
timeMax: /*#__PURE__*/_effect.Schema.Number.pipe(_effect.Schema.Option)
|
|
56
|
-
});
|
|
57
|
-
const Stats = exports.Stats = {
|
|
58
|
-
empty: () => ({
|
|
59
|
-
TP: 0,
|
|
60
|
-
TN: 0,
|
|
61
|
-
FP: 0,
|
|
62
|
-
FN: 0,
|
|
63
|
-
precision: 0,
|
|
64
|
-
recall: 0,
|
|
65
|
-
timeMean: _effect.Option.none(),
|
|
66
|
-
timeMedian: _effect.Option.none(),
|
|
67
|
-
timeMin: _effect.Option.none(),
|
|
68
|
-
timeMax: _effect.Option.none(),
|
|
69
|
-
total: 0
|
|
70
|
-
})
|
|
71
|
-
};
|
|
72
44
|
const precision = m => {
|
|
73
45
|
const r = m.TP / (m.TP + m.FP);
|
|
74
46
|
return Number.isNaN(r) ? 0 : r;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Classify.js","names":["_nodeUtil","require","_effect","values","exports","TN","TP","FP","FN","LabelSchema","Schema","Literal","defaultIsEqual","a","b","isDeepStrictEqual","JSON","parse","stringify","defaultIsNil","x","undefined","makeClassify","isEqual","isOutputNil","isExpectedNil","output","expected","
|
|
1
|
+
{"version":3,"file":"Classify.js","names":["_nodeUtil","require","_effect","values","exports","TN","TP","FP","FN","LabelSchema","Schema","Literal","defaultIsEqual","a","b","isDeepStrictEqual","JSON","parse","stringify","defaultIsNil","x","undefined","makeClassify","isEqual","isOutputNil","isExpectedNil","output","expected","oNil","eNil","precision","m","r","Number","isNaN","recall","min","xs","reduce","POSITIVE_INFINITY","max","NEGATIVE_INFINITY","mean","length","median","Option","none","sorted","slice","sort","index","Math","floor","fromNullable"],"sources":["../../../src/internal/Classify.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,SAAA,gBAAAC,OAAA;AAEA,IAAAC,OAAA,gBAAAD,OAAA;AAIO,MAAME,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG;EAClBE,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE;CACE;AAEH,MAAMC,WAAW,GAAAL,OAAA,CAAAK,WAAA,gBAAGP,OAAA,CAAAQ,MAAM,CAACC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAE1D,MAAMC,cAAc,GAAGA,CAAOC,CAAI,EAAEC,CAAI;AAC3C;AACA;AACA;AACA;AACA,IAAAd,SAAA,CAAAe,iBAAiB,EACbC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACL,CAAC,CAAC,CAAC,EAC7BG,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACJ,CAAC,CAAC,CAAC,CAChC;AAACV,OAAA,CAAAQ,cAAA,GAAAA,cAAA;AAEC,MAAMO,YAAY,GAAOC,CAAI,IAAcA,CAAC,KAAK,IAAI,IAAIA,CAAC,KAAKC,SAAS;AAACjB,OAAA,CAAAe,YAAA,GAAAA,YAAA;AAEzE,MAAMG,YAAY,GACrBA,CAAO;EACHC,OAAO;EACPC,WAAW,GAAGL,YAAY;EAC1BM,aAAa,GAAGN;AAAY,CAU/B,KACD,CAACO,MAAM,EAAEC,QAAQ,KAAI;EACjB,MAAMC,IAAI,GAAGJ,WAAW,CAACE,MAAM,CAAC;EAChC,MAAMG,IAAI,GAAGJ,aAAa,CAACE,QAAQ,CAAC;EAEpC,IAAIC,IAAI,IAAIC,IAAI,EAAE;IACd,OAAO1B,MAAM,CAACE,EAAE;EACpB;EAEA,IAAI,CAACuB,IAAI,IAAI,CAACC,IAAI,EAAE;IAChB,OAAON,OAAO,CAACG,MAAM,EAAEC,QAAQ,CAAC,GAAGxB,MAAM,CAACG,EAAE,GAAGH,MAAM,CAACI,EAAE;EAC5D;EAEA,IAAI,CAACqB,IAAI,IAAIC,IAAI,EAAE;IACf,OAAO1B,MAAM,CAACI,EAAE;EACpB;EAEA,OAAOJ,MAAM,CAACK,EAAE;AACpB,CAAC;AAACJ,OAAA,CAAAkB,YAAA,GAAAA,YAAA;AAEC,MAAMQ,SAAS,GAAIC,CAA2B,IAAY;EAC7D,MAAMC,CAAC,GAAGD,CAAC,CAACzB,EAAE,IAAIyB,CAAC,CAACzB,EAAE,GAAGyB,CAAC,CAACxB,EAAE,CAAC;EAC9B,OAAO0B,MAAM,CAACC,KAAK,CAACF,CAAC,CAAC,GAAG,CAAC,GAAGA,CAAC;AAClC,CAAC;AAAC5B,OAAA,CAAA0B,SAAA,GAAAA,SAAA;AAEK,MAAMK,MAAM,GAAIJ,CAA2B,IAAY;EAC1D,MAAMC,CAAC,GAAGD,CAAC,CAACzB,EAAE,IAAIyB,CAAC,CAACzB,EAAE,GAAGyB,CAAC,CAACvB,EAAE,CAAC;EAC9B,OAAOyB,MAAM,CAACC,KAAK,CAACF,CAAC,CAAC,GAAG,CAAC,GAAGA,CAAC;AAClC,CAAC;AAAC5B,OAAA,CAAA+B,MAAA,GAAAA,MAAA;AAEK,MAAMC,GAAG,GAAIC,EAAY,IAC5BA,EAAE,CAACC,MAAM,CAAC,CAACF,GAAG,EAAEhB,CAAC,KAAMA,CAAC,GAAGgB,GAAG,GAAGhB,CAAC,GAAGgB,GAAI,EAAEH,MAAM,CAACM,iBAAiB,CAAC;AAACnC,OAAA,CAAAgC,GAAA,GAAAA,GAAA;AAElE,MAAMI,GAAG,GAAIH,EAAY,IAC5BA,EAAE,CAACC,MAAM,CAAC,CAACE,GAAG,EAAEpB,CAAC,KAAMA,CAAC,GAAGoB,GAAG,GAAGpB,CAAC,GAAGoB,GAAI,EAAEP,MAAM,CAACQ,iBAAiB,CAAC;AAACrC,OAAA,CAAAoC,GAAA,GAAAA,GAAA;AAElE,MAAME,IAAI,GAAIL,EAAY,IAAwB;EACrD,IAAIA,EAAE,CAACM,MAAM,KAAK,CAAC,EAAE;IACjB,OAAOtB,SAAS;EACpB;EAEA,OAAOgB,EAAE,CAACC,MAAM,CAAC,CAACzB,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC,GAAGuB,EAAE,CAACM,MAAM;AACpD,CAAC;AAACvC,OAAA,CAAAsC,IAAA,GAAAA,IAAA;AAEK,MAAME,MAAM,GAAIP,EAAY,IAA2B;EAC1D,IAAIA,EAAE,CAACM,MAAM,KAAK,CAAC,EAAE;IACjB,OAAOzC,OAAA,CAAA2C,MAAM,CAACC,IAAI,EAAE;EACxB;EAEA,MAAMC,MAAM,GAAGV,EAAE,CAACW,KAAK,EAAE,CAACC,IAAI,CAAC,CAACpC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC;EAC/C,MAAMoC,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACL,MAAM,CAACJ,MAAM,GAAG,CAAC,CAAC;EAE3C,MAAMX,CAAC,GACHe,MAAM,CAACJ,MAAM,GAAG,CAAC,KAAK,CAAC,GACjB,CAACI,MAAM,CAACG,KAAK,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACG,KAAK,CAAC,IAAI,CAAC,GACvCH,MAAM,CAACG,KAAK,CAAC;EAEvB,OAAOhD,OAAA,CAAA2C,MAAM,CAACQ,YAAY,CAACrB,CAAC,CAAC;AACjC,CAAC;AAAC5B,OAAA,CAAAwC,MAAA,GAAAA,MAAA","ignoreList":[]}
|