@creative-introvert/tons-of-tests 1.1.1 → 2.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/README.md +62 -1
- package/dist/cjs/Classify.js +13 -31
- package/dist/cjs/Classify.js.map +1 -1
- package/dist/cjs/DisplayConfig.js +2 -20
- package/dist/cjs/DisplayConfig.js.map +1 -1
- package/dist/cjs/RepositoryError.js +4 -5
- package/dist/cjs/RepositoryError.js.map +1 -1
- package/dist/cjs/Test.js +2 -20
- package/dist/cjs/Test.js.map +1 -1
- package/dist/cjs/Test.repository.js +3 -21
- package/dist/cjs/Test.repository.js.map +1 -1
- package/dist/cjs/Test.repository.types.js.map +1 -1
- package/dist/cjs/index.js +2 -20
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/Classify.js +2 -2
- package/dist/cjs/internal/Classify.js.map +1 -1
- package/dist/cjs/internal/Test.js +43 -53
- package/dist/cjs/internal/Test.js.map +1 -1
- package/dist/cjs/internal/Test.repository.sqlite.js +41 -59
- package/dist/cjs/internal/Test.repository.sqlite.js.map +1 -1
- package/dist/cjs/internal/common.js +1 -5
- package/dist/cjs/internal/common.js.map +1 -1
- package/dist/cjs/internal/diff.js +1 -5
- package/dist/cjs/internal/diff.js.map +1 -1
- package/dist/cjs/internal/format-diff.js +2 -6
- package/dist/cjs/internal/format-diff.js.map +1 -1
- package/dist/cjs/internal/lib/Schema.js +3 -3
- package/dist/cjs/internal/lib/Schema.js.map +1 -1
- package/dist/cjs/internal/lib/jsondiffpatch/contexts/diff.js +1 -5
- package/dist/cjs/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -1
- package/dist/cjs/internal/lib/jsondiffpatch/contexts/patch.js +1 -5
- package/dist/cjs/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -1
- package/dist/cjs/internal/lib/jsondiffpatch/contexts/reverse.js +1 -5
- package/dist/cjs/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -1
- package/dist/cjs/internal/lib/jsondiffpatch/diffpatcher.js +3 -25
- package/dist/cjs/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -1
- package/dist/cjs/internal/lib/jsondiffpatch/filters/arrays.js +1 -5
- package/dist/cjs/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -1
- package/dist/cjs/internal/lib/jsondiffpatch/filters/nested.js +1 -5
- package/dist/cjs/internal/lib/jsondiffpatch/filters/nested.js.map +1 -1
- package/dist/cjs/internal/lib/jsondiffpatch/formatters/annotated.js +1 -5
- package/dist/cjs/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -1
- package/dist/cjs/internal/lib/jsondiffpatch/formatters/html.js +1 -5
- package/dist/cjs/internal/lib/jsondiffpatch/formatters/html.js.map +1 -1
- package/dist/cjs/internal/lib/jsondiffpatch/formatters/jsonpatch.js +1 -5
- package/dist/cjs/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -1
- package/dist/cjs/internal/lib/jsondiffpatch/index.js +1 -5
- package/dist/cjs/internal/lib/jsondiffpatch/index.js.map +1 -1
- package/dist/cjs/internal/lib/jsondiffpatch/with-text-diffs.js +1 -5
- package/dist/cjs/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -1
- package/dist/cjs/internal/pack.js +28 -50
- package/dist/cjs/internal/pack.js.map +1 -1
- package/dist/cjs/internal/stats.js +1 -5
- package/dist/cjs/internal/stats.js.map +1 -1
- package/dist/cjs/internal/summarize.js +1 -5
- package/dist/cjs/internal/summarize.js.map +1 -1
- package/dist/cjs/package.json +1 -0
- package/dist/dts/Classify.d.ts +20 -57
- package/dist/dts/Classify.d.ts.map +1 -1
- package/dist/dts/DisplayConfig.d.ts +2 -1
- package/dist/dts/DisplayConfig.d.ts.map +1 -1
- package/dist/dts/RepositoryError.d.ts +21 -22
- package/dist/dts/RepositoryError.d.ts.map +1 -1
- package/dist/dts/Test.d.ts +10 -17
- package/dist/dts/Test.d.ts.map +1 -1
- package/dist/dts/Test.repository.d.ts +4 -4
- package/dist/dts/Test.repository.d.ts.map +1 -1
- package/dist/dts/Test.repository.types.d.ts +10 -20
- package/dist/dts/Test.repository.types.d.ts.map +1 -1
- package/dist/dts/internal/Classify.d.ts +1 -1
- package/dist/dts/internal/Classify.d.ts.map +1 -1
- package/dist/dts/internal/Test.d.ts +13 -6
- package/dist/dts/internal/Test.d.ts.map +1 -1
- package/dist/dts/internal/Test.repository.sqlite.d.ts +2 -2
- package/dist/dts/internal/Test.repository.sqlite.d.ts.map +1 -1
- package/dist/dts/internal/lib/Schema.d.ts +2 -2
- package/dist/dts/internal/lib/Schema.d.ts.map +1 -1
- package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts +2 -1
- package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts.map +1 -1
- package/dist/dts/internal/pack.d.ts.map +1 -1
- package/dist/esm/Classify.js +23 -50
- package/dist/esm/Classify.js.map +1 -1
- package/dist/esm/DisplayConfig.js +2 -28
- package/dist/esm/DisplayConfig.js.map +1 -1
- package/dist/esm/RepositoryError.js +13 -24
- package/dist/esm/RepositoryError.js.map +1 -1
- package/dist/esm/Show.js +3 -26
- package/dist/esm/Show.js.map +1 -1
- package/dist/esm/Test.js +5 -31
- package/dist/esm/Test.js.map +1 -1
- package/dist/esm/Test.repository.js +8 -41
- package/dist/esm/Test.repository.js.map +1 -1
- package/dist/esm/Test.repository.types.js +5 -12
- package/dist/esm/Test.repository.types.js.map +1 -1
- package/dist/esm/index.js +7 -45
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/Classify.js +16 -31
- package/dist/esm/internal/Classify.js.map +1 -1
- package/dist/esm/internal/DisplayConfig.js +1 -8
- package/dist/esm/internal/DisplayConfig.js.map +1 -1
- package/dist/esm/internal/Test.js +72 -92
- package/dist/esm/internal/Test.js.map +1 -1
- package/dist/esm/internal/Test.repository.sqlite.js +111 -142
- package/dist/esm/internal/Test.repository.sqlite.js.map +1 -1
- package/dist/esm/internal/common.js +15 -28
- package/dist/esm/internal/common.js.map +1 -1
- package/dist/esm/internal/diff.js +18 -30
- package/dist/esm/internal/diff.js.map +1 -1
- package/dist/esm/internal/format-diff.js +9 -22
- package/dist/esm/internal/format-diff.js.map +1 -1
- package/dist/esm/internal/lib/Schema.js +4 -11
- package/dist/esm/internal/lib/Schema.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/clone.js +1 -7
- package/dist/esm/internal/lib/jsondiffpatch/clone.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/contexts/context.js +1 -8
- package/dist/esm/internal/lib/jsondiffpatch/contexts/context.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js +5 -16
- package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js +3 -14
- package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js +3 -14
- package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/date-reviver.js +1 -7
- package/dist/esm/internal/lib/jsondiffpatch/date-reviver.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js +20 -51
- package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js +16 -28
- package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/filters/dates.js +1 -7
- package/dist/esm/internal/lib/jsondiffpatch/filters/dates.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/filters/lcs.js +1 -7
- package/dist/esm/internal/lib/jsondiffpatch/filters/lcs.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js +13 -27
- package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/filters/texts.js +3 -9
- package/dist/esm/internal/lib/jsondiffpatch/filters/texts.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/filters/trivial.js +3 -9
- package/dist/esm/internal/lib/jsondiffpatch/filters/trivial.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js +4 -16
- package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/formatters/base.js +1 -7
- package/dist/esm/internal/lib/jsondiffpatch/formatters/base.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js +6 -21
- package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js +6 -20
- package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/index.js +15 -42
- package/dist/esm/internal/lib/jsondiffpatch/index.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/pipe.js +1 -7
- package/dist/esm/internal/lib/jsondiffpatch/pipe.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/processor.js +1 -7
- package/dist/esm/internal/lib/jsondiffpatch/processor.js.map +1 -1
- package/dist/esm/internal/lib/jsondiffpatch/types.js +1 -6
- package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js +22 -49
- package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -1
- package/dist/esm/internal/pack.js +26 -55
- package/dist/esm/internal/pack.js.map +1 -1
- package/dist/esm/internal/stats.js +21 -33
- package/dist/esm/internal/stats.js.map +1 -1
- package/dist/esm/internal/summarize.js +29 -37
- package/dist/esm/internal/summarize.js.map +1 -1
- package/package.json +11 -9
- package/dist/cjs/Error.js +0 -10
- package/dist/cjs/Error.js.map +0 -1
- package/dist/cjs/internal/Classify.spec.js +0 -223
- package/dist/cjs/internal/Classify.spec.js.map +0 -1
- package/dist/cjs/internal/Test.repository.sqlite.spec.js +0 -294
- package/dist/cjs/internal/Test.repository.sqlite.spec.js.map +0 -1
- package/dist/cjs/internal/Test.spec.js +0 -205
- package/dist/cjs/internal/Test.spec.js.map +0 -1
- package/dist/cjs/internal/format-diff.spec.js +0 -103
- package/dist/cjs/internal/format-diff.spec.js.map +0 -1
- package/dist/cjs/pack.js +0 -28
- package/dist/cjs/pack.js.map +0 -1
- package/dist/dts/Error.d.ts +0 -10
- package/dist/dts/Error.d.ts.map +0 -1
- package/dist/dts/internal/Classify.spec.d.ts +0 -2
- package/dist/dts/internal/Classify.spec.d.ts.map +0 -1
- package/dist/dts/internal/Test.repository.sqlite.spec.d.ts +0 -2
- package/dist/dts/internal/Test.repository.sqlite.spec.d.ts.map +0 -1
- package/dist/dts/internal/Test.spec.d.ts +0 -2
- package/dist/dts/internal/Test.spec.d.ts.map +0 -1
- package/dist/dts/internal/format-diff.spec.d.ts +0 -2
- package/dist/dts/internal/format-diff.spec.d.ts.map +0 -1
- package/dist/dts/pack.d.ts +0 -2
- package/dist/dts/pack.d.ts.map +0 -1
- package/dist/esm/Error.js +0 -10
- package/dist/esm/Error.js.map +0 -1
- package/dist/esm/internal/Classify.spec.js +0 -223
- package/dist/esm/internal/Classify.spec.js.map +0 -1
- package/dist/esm/internal/Test.repository.sqlite.spec.js +0 -294
- package/dist/esm/internal/Test.repository.sqlite.spec.js.map +0 -1
- package/dist/esm/internal/Test.spec.js +0 -205
- package/dist/esm/internal/Test.spec.js.map +0 -1
- package/dist/esm/internal/format-diff.spec.js +0 -103
- package/dist/esm/internal/format-diff.spec.js.map +0 -1
- package/dist/esm/pack.js +0 -28
- package/dist/esm/pack.js.map +0 -1
package/README.md
CHANGED
|
@@ -24,6 +24,10 @@ A specialized test runner for predictive functions, focusing on scenarios where
|
|
|
24
24
|
|
|
25
25
|
## Getting Started
|
|
26
26
|
|
|
27
|
+
Use Node.js 24 or newer and Effect 4. The Effect packages in this repository
|
|
28
|
+
use the same exact version. The SQLite driver uses Node's built-in SQLite.
|
|
29
|
+
Existing database files and stored test hashes keep the same format.
|
|
30
|
+
|
|
27
31
|
### Installation
|
|
28
32
|
|
|
29
33
|
Install the required packages with your preferred package manager:
|
|
@@ -71,6 +75,24 @@ CLI.run({
|
|
|
71
75
|
|
|
72
76
|
> Omit `classify` to get default strict equality; then every non-exact result is labelled FP.
|
|
73
77
|
|
|
78
|
+
`testCases` can also be an Effect `Stream`, which is useful for large or generated suites that are consumed lazily by the runner:
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
import {Stream} from 'effect';
|
|
82
|
+
|
|
83
|
+
CLI.run({
|
|
84
|
+
testSuite: {
|
|
85
|
+
name: 'with-cli-stream',
|
|
86
|
+
testCases: Stream.fromIterable([
|
|
87
|
+
{input: 0, expected: 0},
|
|
88
|
+
{input: 1, expected: 2},
|
|
89
|
+
]),
|
|
90
|
+
program: (input: number) => Effect.promise(() => myFunction(input)),
|
|
91
|
+
},
|
|
92
|
+
dbPath: 'with-cli-stream.db',
|
|
93
|
+
});
|
|
94
|
+
```
|
|
95
|
+
|
|
74
96
|
#### Summarize
|
|
75
97
|
|
|
76
98
|
```
|
|
@@ -254,7 +276,7 @@ process.argv`, runs the CLI under `NodeRuntime.runMain`, and returns `void`:
|
|
|
254
276
|
```ts
|
|
255
277
|
import * as CLI from '@creative-introvert/tons-of-tests-cli';
|
|
256
278
|
|
|
257
|
-
|
|
279
|
+
CLI.run(
|
|
258
280
|
{
|
|
259
281
|
testSuite,
|
|
260
282
|
dbPath: 'with-cli-simple.db',
|
|
@@ -311,6 +333,45 @@ At the process entry point (`CLI.run`), `DiffNonEmpty` is translated to
|
|
|
311
333
|
`process.exitCode = 1` — the user-facing "exit with code 1 on diff"
|
|
312
334
|
behavior is unchanged.
|
|
313
335
|
|
|
336
|
+
## Development
|
|
337
|
+
|
|
338
|
+
The repository uses pnpm 12, TypeScript 7, Vitest 5, and the Effect compiler
|
|
339
|
+
and linter tools. Install the pnpm version pinned in `package.json`.
|
|
340
|
+
`pnpm install` also patches TypeScript and Oxlint through the `prepare` hook.
|
|
341
|
+
|
|
342
|
+
Run project commands from the repository root through direnv:
|
|
343
|
+
|
|
344
|
+
```sh
|
|
345
|
+
direnv exec . pnpm install --frozen-lockfile
|
|
346
|
+
direnv exec . just
|
|
347
|
+
direnv exec . just check
|
|
348
|
+
direnv exec . just check-fix
|
|
349
|
+
direnv exec . just typecheck
|
|
350
|
+
direnv exec . just test
|
|
351
|
+
direnv exec . just build
|
|
352
|
+
direnv exec . just verify
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
`check` runs lint and format checks. `check-fix` applies fixes. `verify` also
|
|
356
|
+
checks types, runs tests, and builds both publishable packages. `test` accepts
|
|
357
|
+
Vitest arguments, such as `just test workspace/tons-of-tests-cli`.
|
|
358
|
+
Use `test-watch` or `typecheck-watch` while editing.
|
|
359
|
+
|
|
360
|
+
The root `tsconfig.json` builds the workspace projects. Each workspace keeps
|
|
361
|
+
tests and build scripts out of its production output. `tsconfig.tools.json`
|
|
362
|
+
checks tests and tooling, while `tsconfig.typecheck.json` checks all source
|
|
363
|
+
without writing JavaScript. The build writes ESM, CommonJS, and declarations
|
|
364
|
+
to each published package's `dist` directory.
|
|
365
|
+
|
|
366
|
+
Package scripts are kept for the existing GitHub Actions jobs, which do not
|
|
367
|
+
install Just. Just calls those same scripts where both need the same command.
|
|
368
|
+
Use `changeset`, `changeset-version`, and `changeset-publish` for releases.
|
|
369
|
+
|
|
370
|
+
Oxlint permits the Effect platform, SQL, CLI, and test APIs marked unstable;
|
|
371
|
+
their versions are pinned. `Stats` and `TestRun` keep their existing structural
|
|
372
|
+
types so callers can still pass matching objects. Other Effect lint checks
|
|
373
|
+
remain enabled. VS Code uses the patched workspace TypeScript compiler.
|
|
374
|
+
|
|
314
375
|
## Why No Runtime?
|
|
315
376
|
|
|
316
377
|
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
|
@@ -6,43 +6,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.values = exports.makeClassify = exports.defaultIsNil = exports.defaultIsEqual = exports.Stats = exports.LabelSchema = void 0;
|
|
7
7
|
var _effect = /*#__PURE__*/require("effect");
|
|
8
8
|
var internal = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./internal/Classify.js"));
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
n = new WeakMap();
|
|
12
|
-
return (_interopRequireWildcard = function (e, t) {
|
|
13
|
-
if (!t && e && e.__esModule) return e;
|
|
14
|
-
var o,
|
|
15
|
-
i,
|
|
16
|
-
f = {
|
|
17
|
-
__proto__: null,
|
|
18
|
-
default: e
|
|
19
|
-
};
|
|
20
|
-
if (null === e || "object" != typeof e && "function" != typeof e) return f;
|
|
21
|
-
if (o = t ? n : r) {
|
|
22
|
-
if (o.has(e)) return o.get(e);
|
|
23
|
-
o.set(e, f);
|
|
24
|
-
}
|
|
25
|
-
for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);
|
|
26
|
-
return f;
|
|
27
|
-
})(e, t);
|
|
28
|
-
}
|
|
9
|
+
var cache;
|
|
10
|
+
function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var r, c, a = Object.defineProperty, n = { __proto__: null, default: e }; if (Object(e) !== e) return n; if (cache || "function" != typeof WeakMap || (cache = new WeakMap()), cache) { if (cache.has(e)) return cache.get(e); cache.set(e, n); } for (c in e) "default" !== c && {}.hasOwnProperty.call(e, c) && ((r = a && Object.getOwnPropertyDescriptor(e, c)) && (r.get || r.set) ? a(n, c, r) : n[c] = e[c]); return n; }
|
|
29
11
|
const LabelSchema = exports.LabelSchema = internal.LabelSchema;
|
|
30
12
|
const values = exports.values = internal.values;
|
|
31
13
|
const defaultIsEqual = exports.defaultIsEqual = internal.defaultIsEqual;
|
|
32
14
|
const defaultIsNil = exports.defaultIsNil = internal.defaultIsNil;
|
|
33
15
|
const makeClassify = exports.makeClassify = internal.makeClassify;
|
|
34
16
|
class Stats extends /*#__PURE__*/_effect.Schema.Class('Stats')({
|
|
35
|
-
TP: _effect.Schema.
|
|
36
|
-
TN: _effect.Schema.
|
|
37
|
-
FP: _effect.Schema.
|
|
38
|
-
FN: _effect.Schema.
|
|
39
|
-
total: _effect.Schema.
|
|
40
|
-
precision: _effect.Schema.
|
|
41
|
-
recall: _effect.Schema.
|
|
42
|
-
timeMin: /*#__PURE__*/_effect.Schema.
|
|
43
|
-
timeMax: /*#__PURE__*/_effect.Schema.
|
|
44
|
-
timeMedian: /*#__PURE__*/_effect.Schema.
|
|
45
|
-
timeMean: /*#__PURE__*/_effect.Schema.
|
|
17
|
+
TP: _effect.Schema.Finite,
|
|
18
|
+
TN: _effect.Schema.Finite,
|
|
19
|
+
FP: _effect.Schema.Finite,
|
|
20
|
+
FN: _effect.Schema.Finite,
|
|
21
|
+
total: _effect.Schema.Finite,
|
|
22
|
+
precision: _effect.Schema.Finite,
|
|
23
|
+
recall: _effect.Schema.Finite,
|
|
24
|
+
timeMin: /*#__PURE__*/_effect.Schema.Option(_effect.Schema.Finite),
|
|
25
|
+
timeMax: /*#__PURE__*/_effect.Schema.Option(_effect.Schema.Finite),
|
|
26
|
+
timeMedian: /*#__PURE__*/_effect.Schema.Option(_effect.Schema.Finite),
|
|
27
|
+
timeMean: /*#__PURE__*/_effect.Schema.Option(_effect.Schema.Finite)
|
|
46
28
|
}) {
|
|
47
29
|
static empty() {
|
|
48
30
|
return new Stats({
|
package/dist/cjs/Classify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Classify.js","names":["_effect","require","internal","_interopRequireWildcard","e","t","
|
|
1
|
+
{"version":3,"file":"Classify.js","names":["_effect","require","internal","_interopRequireWildcard","cache","e","t","__esModule","r","c","a","Object","defineProperty","n","__proto__","default","WeakMap","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","LabelSchema","exports","values","defaultIsEqual","defaultIsNil","makeClassify","Stats","Schema","Class","TP","Finite","TN","FP","FN","total","precision","recall","timeMin","Option","timeMax","timeMedian","timeMean","empty","none"],"sources":["../../src/Classify.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -5,25 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.makeDefault = void 0;
|
|
7
7
|
var internal = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./internal/DisplayConfig.js"));
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
n = new WeakMap();
|
|
11
|
-
return (_interopRequireWildcard = function (e, t) {
|
|
12
|
-
if (!t && e && e.__esModule) return e;
|
|
13
|
-
var o,
|
|
14
|
-
i,
|
|
15
|
-
f = {
|
|
16
|
-
__proto__: null,
|
|
17
|
-
default: e
|
|
18
|
-
};
|
|
19
|
-
if (null === e || "object" != typeof e && "function" != typeof e) return f;
|
|
20
|
-
if (o = t ? n : r) {
|
|
21
|
-
if (o.has(e)) return o.get(e);
|
|
22
|
-
o.set(e, f);
|
|
23
|
-
}
|
|
24
|
-
for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);
|
|
25
|
-
return f;
|
|
26
|
-
})(e, t);
|
|
27
|
-
}
|
|
8
|
+
var cache;
|
|
9
|
+
function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var r, c, a = Object.defineProperty, n = { __proto__: null, default: e }; if (Object(e) !== e) return n; if (cache || "function" != typeof WeakMap || (cache = new WeakMap()), cache) { if (cache.has(e)) return cache.get(e); cache.set(e, n); } for (c in e) "default" !== c && {}.hasOwnProperty.call(e, c) && ((r = a && Object.getOwnPropertyDescriptor(e, c)) && (r.get || r.set) ? a(n, c, r) : n[c] = e[c]); return n; }
|
|
28
10
|
const makeDefault = exports.makeDefault = internal.makeDefault;
|
|
29
11
|
//# sourceMappingURL=DisplayConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplayConfig.js","names":["internal","_interopRequireWildcard","require","e","t","
|
|
1
|
+
{"version":3,"file":"DisplayConfig.js","names":["internal","_interopRequireWildcard","require","cache","e","t","__esModule","r","c","a","Object","defineProperty","n","__proto__","default","WeakMap","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","makeDefault","exports"],"sources":["../../src/DisplayConfig.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,QAAA,gBAAAC,uBAAA,cAAAC,OAAA;AAAwD,IAAAC,KAAA;AAAA,SAAAF,wBAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAE,UAAA,SAAAF,CAAA,MAAAG,CAAA,EAAAC,CAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,QAAAM,MAAA,CAAAN,CAAA,MAAAA,CAAA,SAAAQ,CAAA,MAAAT,KAAA,yBAAAY,OAAA,KAAAZ,KAAA,OAAAY,OAAA,KAAAZ,KAAA,QAAAA,KAAA,CAAAa,GAAA,CAAAZ,CAAA,UAAAD,KAAA,CAAAc,GAAA,CAAAb,CAAA,GAAAD,KAAA,CAAAe,GAAA,CAAAd,CAAA,EAAAQ,CAAA,UAAAJ,CAAA,IAAAJ,CAAA,gBAAAI,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAI,CAAA,OAAAD,CAAA,GAAAE,CAAA,IAAAC,MAAA,CAAAW,wBAAA,CAAAjB,CAAA,EAAAI,CAAA,OAAAD,CAAA,CAAAU,GAAA,IAAAV,CAAA,CAAAW,GAAA,IAAAT,CAAA,CAAAG,CAAA,EAAAJ,CAAA,EAAAD,CAAA,IAAAK,CAAA,CAAAJ,CAAA,IAAAJ,CAAA,CAAAI,CAAA,WAAAI,CAAA;AAoBjD,MAAMU,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAGtB,QAAQ,CAACsB,WAAW","ignoreList":[]}
|
|
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.TestRunNotCreated = exports.RepositoryWriteError = exports.RepositoryQueryError = exports.RepositoryDecodeError = void 0;
|
|
7
|
-
var _SqlError = /*#__PURE__*/require("
|
|
7
|
+
var _SqlError = /*#__PURE__*/require("effect/sql/SqlError");
|
|
8
8
|
var _effect = /*#__PURE__*/require("effect");
|
|
9
|
-
|
|
10
|
-
const SqlCause = /*#__PURE__*/_effect.Schema.Union(/*#__PURE__*/_effect.Schema.instanceOf(_SqlError.SqlError), /*#__PURE__*/_effect.Schema.instanceOf(_SqlError.ResultLengthMismatch));
|
|
9
|
+
const SqlCause = /*#__PURE__*/_effect.Schema.Union([/*#__PURE__*/_effect.Schema.instanceOf(_SqlError.SqlError), /*#__PURE__*/_effect.Schema.instanceOf(_SqlError.ResultLengthMismatch)]);
|
|
11
10
|
class RepositoryQueryError extends /*#__PURE__*/_effect.Schema.TaggedError()('RepositoryQueryError', {
|
|
12
11
|
operation: _effect.Schema.String,
|
|
13
12
|
cause: /*#__PURE__*/_effect.Schema.instanceOf(_SqlError.SqlError)
|
|
@@ -30,7 +29,7 @@ class RepositoryWriteError extends /*#__PURE__*/_effect.Schema.TaggedError()('Re
|
|
|
30
29
|
exports.RepositoryWriteError = RepositoryWriteError;
|
|
31
30
|
class RepositoryDecodeError extends /*#__PURE__*/_effect.Schema.TaggedError()('RepositoryDecodeError', {
|
|
32
31
|
operation: _effect.Schema.String,
|
|
33
|
-
cause: /*#__PURE__*/_effect.Schema.instanceOf(
|
|
32
|
+
cause: /*#__PURE__*/_effect.Schema.instanceOf(_effect.Schema.SchemaError)
|
|
34
33
|
}) {
|
|
35
34
|
static from = operation => cause => new RepositoryDecodeError({
|
|
36
35
|
operation,
|
|
@@ -39,7 +38,7 @@ class RepositoryDecodeError extends /*#__PURE__*/_effect.Schema.TaggedError()('R
|
|
|
39
38
|
}
|
|
40
39
|
exports.RepositoryDecodeError = RepositoryDecodeError;
|
|
41
40
|
class TestRunNotCreated extends /*#__PURE__*/_effect.Schema.TaggedError()('TestRunNotCreated', {
|
|
42
|
-
|
|
41
|
+
testSuiteName: _effect.Schema.String
|
|
43
42
|
}) {}
|
|
44
43
|
exports.TestRunNotCreated = TestRunNotCreated;
|
|
45
44
|
//# sourceMappingURL=RepositoryError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepositoryError.js","names":["_SqlError","require","_effect","
|
|
1
|
+
{"version":3,"file":"RepositoryError.js","names":["_SqlError","require","_effect","SqlCause","Schema","Union","instanceOf","SqlError","ResultLengthMismatch","RepositoryQueryError","TaggedError","operation","String","cause","fromSql","exports","RepositoryWriteError","from","RepositoryDecodeError","SchemaError","TestRunNotCreated","testSuiteName"],"sources":["../../src/RepositoryError.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,SAAA,gBAAAC,OAAA;AACA,IAAAC,OAAA,gBAAAD,OAAA;AAEA,MAAME,QAAQ,gBAAGC,cAAM,CAACC,KAAK,CAAC,cAC1BD,cAAM,CAACE,UAAU,CAACC,kBAAQ,CAAC,eAC3BH,cAAM,CAACE,UAAU,CAACE,8BAAoB,CAAC,CAC1C,CAAC;AAEI,MAAOC,oBAAqB,sBAAQL,cAAM,CAACM,WAAW,EAGzD,CAAC,sBAAsB,EAAE;EACxBC,SAAS,EAAEP,cAAM,CAACQ,MAAM;EACxBC,KAAK,eAAET,cAAM,CAACE,UAAU,CAACC,kBAAQ;CACpC,CAAC;EACE,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,sBAAQZ,cAAM,CAACM,WAAW,EAGzD,CAAC,sBAAsB,EAAE;EAACC,SAAS,EAAEP,cAAM,CAACQ,MAAM;EAAEC,KAAK,EAAEV;AAAQ,CAAC,CAAC;EACpE,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,sBAAQd,cAAM,CAACM,WAAW,EAG1D,CAAC,uBAAuB,EAAE;EACzBC,SAAS,EAAEP,cAAM,CAACQ,MAAM;EACxBC,KAAK,eAAET,cAAM,CAACE,UAAU,CAACF,cAAM,CAACe,WAAW;CAC9C,CAAC;EACE,OAAOF,IAAI,GAAIN,SAAiB,IAAME,KAAyB,IAC3D,IAAIK,qBAAqB,CAAC;IAACP,SAAS;IAAEE;EAAK,CAAC,CAAC;;AACpDE,OAAA,CAAAG,qBAAA,GAAAA,qBAAA;AAEK,MAAOE,iBAAkB,sBAAQhB,cAAM,CAACM,WAAW,EAGtD,CAAC,mBAAmB,EAAE;EAACW,aAAa,EAAEjB,cAAM,CAACQ;AAAM,CAAC,CAAC;AAAGG,OAAA,CAAAK,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
package/dist/cjs/Test.js
CHANGED
|
@@ -5,26 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.runCollectRecord = exports.makeSha256 = exports.diff = exports.all = void 0;
|
|
7
7
|
var internal = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./internal/Test.js"));
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
n = new WeakMap();
|
|
11
|
-
return (_interopRequireWildcard = function (e, t) {
|
|
12
|
-
if (!t && e && e.__esModule) return e;
|
|
13
|
-
var o,
|
|
14
|
-
i,
|
|
15
|
-
f = {
|
|
16
|
-
__proto__: null,
|
|
17
|
-
default: e
|
|
18
|
-
};
|
|
19
|
-
if (null === e || "object" != typeof e && "function" != typeof e) return f;
|
|
20
|
-
if (o = t ? n : r) {
|
|
21
|
-
if (o.has(e)) return o.get(e);
|
|
22
|
-
o.set(e, f);
|
|
23
|
-
}
|
|
24
|
-
for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);
|
|
25
|
-
return f;
|
|
26
|
-
})(e, t);
|
|
27
|
-
}
|
|
8
|
+
var cache;
|
|
9
|
+
function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var r, c, a = Object.defineProperty, n = { __proto__: null, default: e }; if (Object(e) !== e) return n; if (cache || "function" != typeof WeakMap || (cache = new WeakMap()), cache) { if (cache.has(e)) return cache.get(e); cache.set(e, n); } for (c in e) "default" !== c && {}.hasOwnProperty.call(e, c) && ((r = a && Object.getOwnPropertyDescriptor(e, c)) && (r.get || r.set) ? a(n, c, r) : n[c] = e[c]); return n; }
|
|
28
10
|
const all = exports.all = internal.all;
|
|
29
11
|
const diff = exports.diff = internal.diff;
|
|
30
12
|
const makeSha256 = exports.makeSha256 = internal.makeSha256;
|
package/dist/cjs/Test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Test.js","names":["internal","_interopRequireWildcard","require","e","t","
|
|
1
|
+
{"version":3,"file":"Test.js","names":["internal","_interopRequireWildcard","require","cache","e","t","__esModule","r","c","a","Object","defineProperty","n","__proto__","default","WeakMap","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","all","exports","diff","makeSha256","runCollectRecord"],"sources":["../../src/Test.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,QAAA,gBAAAC,uBAAA,cAAAC,OAAA;AAA+C,IAAAC,KAAA;AAAA,SAAAF,wBAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAE,UAAA,SAAAF,CAAA,MAAAG,CAAA,EAAAC,CAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,QAAAM,MAAA,CAAAN,CAAA,MAAAA,CAAA,SAAAQ,CAAA,MAAAT,KAAA,yBAAAY,OAAA,KAAAZ,KAAA,OAAAY,OAAA,KAAAZ,KAAA,QAAAA,KAAA,CAAAa,GAAA,CAAAZ,CAAA,UAAAD,KAAA,CAAAc,GAAA,CAAAb,CAAA,GAAAD,KAAA,CAAAe,GAAA,CAAAd,CAAA,EAAAQ,CAAA,UAAAJ,CAAA,IAAAJ,CAAA,gBAAAI,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAI,CAAA,OAAAD,CAAA,GAAAE,CAAA,IAAAC,MAAA,CAAAW,wBAAA,CAAAjB,CAAA,EAAAI,CAAA,OAAAD,CAAA,CAAAU,GAAA,IAAAV,CAAA,CAAAW,GAAA,IAAAT,CAAA,CAAAG,CAAA,EAAAJ,CAAA,EAAAD,CAAA,IAAAK,CAAA,CAAAJ,CAAA,IAAAJ,CAAA,CAAAI,CAAA,WAAAI,CAAA;AAiExC,MAAMU,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":[]}
|
|
@@ -14,31 +14,13 @@ var Sqlite = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect/
|
|
|
14
14
|
var _effect = /*#__PURE__*/require("effect");
|
|
15
15
|
var _TestRepositorySqlite = /*#__PURE__*/require("./internal/Test.repository.sqlite.js");
|
|
16
16
|
var _TestRepositoryTypes = /*#__PURE__*/require("./Test.repository.types.js");
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
n = new WeakMap();
|
|
20
|
-
return (_interopRequireWildcard = function (e, t) {
|
|
21
|
-
if (!t && e && e.__esModule) return e;
|
|
22
|
-
var o,
|
|
23
|
-
i,
|
|
24
|
-
f = {
|
|
25
|
-
__proto__: null,
|
|
26
|
-
default: e
|
|
27
|
-
};
|
|
28
|
-
if (null === e || "object" != typeof e && "function" != typeof e) return f;
|
|
29
|
-
if (o = t ? n : r) {
|
|
30
|
-
if (o.has(e)) return o.get(e);
|
|
31
|
-
o.set(e, f);
|
|
32
|
-
}
|
|
33
|
-
for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);
|
|
34
|
-
return f;
|
|
35
|
-
})(e, t);
|
|
36
|
-
}
|
|
17
|
+
var cache;
|
|
18
|
+
function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var r, c, a = Object.defineProperty, n = { __proto__: null, default: e }; if (Object(e) !== e) return n; if (cache || "function" != typeof WeakMap || (cache = new WeakMap()), cache) { if (cache.has(e)) return cache.get(e); cache.set(e, n); } for (c in e) "default" !== c && {}.hasOwnProperty.call(e, c) && ((r = a && Object.getOwnPropertyDescriptor(e, c)) && (r.get || r.set) ? a(n, c, r) : n[c] = e[c]); return n; }
|
|
37
19
|
const makeTestLayer = () => _effect.Layer.provideMerge(TestRepository.Live, Sqlite.SqliteClient.layer({
|
|
38
20
|
filename: ':memory:'
|
|
39
21
|
}));
|
|
40
22
|
let testLayerCache;
|
|
41
|
-
class TestRepository extends /*#__PURE__*/_effect.Context.
|
|
23
|
+
class TestRepository extends /*#__PURE__*/_effect.Context.Service()('TestRepository') {
|
|
42
24
|
// Lazy getters: makeTestRepository lives in an internal module that has
|
|
43
25
|
// its own import edge back here, so we evaluate these at access time
|
|
44
26
|
// rather than at class definition time to avoid the circular init order.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Test.repository.js","names":["Sqlite","_interopRequireWildcard","require","_effect","_TestRepositorySqlite","_TestRepositoryTypes","e","t","
|
|
1
|
+
{"version":3,"file":"Test.repository.js","names":["Sqlite","_interopRequireWildcard","require","_effect","_TestRepositorySqlite","_TestRepositoryTypes","cache","e","t","__esModule","r","c","a","Object","defineProperty","n","__proto__","default","WeakMap","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","makeTestLayer","Layer","provideMerge","TestRepository","Live","SqliteClient","layer","filename","testLayerCache","Context","Service","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,IAAAI,KAAA;AAAA,SAAAL,wBAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAE,UAAA,SAAAF,CAAA,MAAAG,CAAA,EAAAC,CAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,QAAAM,MAAA,CAAAN,CAAA,MAAAA,CAAA,SAAAQ,CAAA,MAAAT,KAAA,yBAAAY,OAAA,KAAAZ,KAAA,OAAAY,OAAA,KAAAZ,KAAA,QAAAA,KAAA,CAAAa,GAAA,CAAAZ,CAAA,UAAAD,KAAA,CAAAc,GAAA,CAAAb,CAAA,GAAAD,KAAA,CAAAe,GAAA,CAAAd,CAAA,EAAAQ,CAAA,UAAAJ,CAAA,IAAAJ,CAAA,gBAAAI,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAI,CAAA,OAAAD,CAAA,GAAAE,CAAA,IAAAC,MAAA,CAAAW,wBAAA,CAAAjB,CAAA,EAAAI,CAAA,OAAAD,CAAA,CAAAU,GAAA,IAAAV,CAAA,CAAAW,GAAA,IAAAT,CAAA,CAAAG,CAAA,EAAAJ,CAAA,EAAAD,CAAA,IAAAK,CAAA,CAAAJ,CAAA,IAAAJ,CAAA,CAAAI,CAAA,WAAAI,CAAA;AAQnD,MAAMU,aAAa,GAAGA,CAAA,KAClBC,aAAK,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,sBAAQM,eAAO,CAACC,OAAO,EAGhD,CAAC,gBAAgB,CAAC;EACjB;EACA;EACA;EACA,WAAWN,IAAIA,CAAA;IACX,OAAOH,aAAK,CAACU,MAAM,CAAC,IAAI,EAAEC,wCAAkB,CAAC;EACjD;EACA,OAAON,KAAKA,CAACO,MAAc;IACvB,OAAOZ,aAAK,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":[]}
|
|
@@ -1 +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,
|
|
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,sBAAQC,cAAM,CAACC,KAAK,CAAU,SAAS,CAAC,CAAC;EAC1DC,EAAE,EAAEF,cAAM,CAACG,GAAG;EACdC,IAAI,EAAEJ,cAAM,CAACK,MAAM;EACnBC,IAAI,eAAEN,cAAM,CAACO,MAAM,CAACP,cAAM,CAACK,MAAM;CACpC,CAAC;AAAGG,OAAA,CAAAT,OAAA,GAAAA,OAAA","ignoreList":[]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -23,24 +23,6 @@ var _Test = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Test.js
|
|
|
23
23
|
exports.Test = _Test;
|
|
24
24
|
var _TestRepository = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./Test.repository.js"));
|
|
25
25
|
exports.TestRepository = _TestRepository;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
n = new WeakMap();
|
|
29
|
-
return (_interopRequireWildcard = function (e, t) {
|
|
30
|
-
if (!t && e && e.__esModule) return e;
|
|
31
|
-
var o,
|
|
32
|
-
i,
|
|
33
|
-
f = {
|
|
34
|
-
__proto__: null,
|
|
35
|
-
default: e
|
|
36
|
-
};
|
|
37
|
-
if (null === e || "object" != typeof e && "function" != typeof e) return f;
|
|
38
|
-
if (o = t ? n : r) {
|
|
39
|
-
if (o.has(e)) return o.get(e);
|
|
40
|
-
o.set(e, f);
|
|
41
|
-
}
|
|
42
|
-
for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);
|
|
43
|
-
return f;
|
|
44
|
-
})(e, t);
|
|
45
|
-
}
|
|
26
|
+
var cache;
|
|
27
|
+
function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var r, c, a = Object.defineProperty, n = { __proto__: null, default: e }; if (Object(e) !== e) return n; if (cache || "function" != typeof WeakMap || (cache = new WeakMap()), cache) { if (cache.has(e)) return cache.get(e); cache.set(e, n); } for (c in e) "default" !== c && {}.hasOwnProperty.call(e, c) && ((r = a && Object.getOwnPropertyDescriptor(e, c)) && (r.get || r.set) ? a(n, c, r) : n[c] = e[c]); return n; }
|
|
46
28
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_pack","require","_Show","_interopRequireWildcard","exports","Show","_Test","Test","_TestRepository","TestRepository","e","t","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_pack","require","_Show","_interopRequireWildcard","exports","Show","_Test","Test","_TestRepository","TestRepository","cache","e","t","__esModule","r","c","a","Object","defineProperty","n","__proto__","default","WeakMap","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;AAGA,IAAAA,KAAA,gBAAAC,OAAA;AAAwC,IAAAC,KAAA,gBAAAC,uBAAA,cAAAF,OAAA;AAAAG,OAAA,CAAAC,IAAA,GAAAH,KAAA;AAAA,IAAAI,KAAA,gBAAAH,uBAAA,cAAAF,OAAA;AAAAG,OAAA,CAAAG,IAAA,GAAAD,KAAA;AAAA,IAAAE,eAAA,gBAAAL,uBAAA,cAAAF,OAAA;AAAAG,OAAA,CAAAK,cAAA,GAAAD,eAAA;AAAA,IAAAE,KAAA;AAAA,SAAAP,wBAAAQ,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAE,UAAA,SAAAF,CAAA,MAAAG,CAAA,EAAAC,CAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,QAAAM,MAAA,CAAAN,CAAA,MAAAA,CAAA,SAAAQ,CAAA,MAAAT,KAAA,yBAAAY,OAAA,KAAAZ,KAAA,OAAAY,OAAA,KAAAZ,KAAA,QAAAA,KAAA,CAAAa,GAAA,CAAAZ,CAAA,UAAAD,KAAA,CAAAc,GAAA,CAAAb,CAAA,GAAAD,KAAA,CAAAe,GAAA,CAAAd,CAAA,EAAAQ,CAAA,UAAAJ,CAAA,IAAAJ,CAAA,gBAAAI,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAI,CAAA,OAAAD,CAAA,GAAAE,CAAA,IAAAC,MAAA,CAAAW,wBAAA,CAAAjB,CAAA,EAAAI,CAAA,OAAAD,CAAA,CAAAU,GAAA,IAAAV,CAAA,CAAAW,GAAA,IAAAT,CAAA,CAAAG,CAAA,EAAAJ,CAAA,EAAAD,CAAA,IAAAK,CAAA,CAAAJ,CAAA,IAAAJ,CAAA,CAAAI,CAAA,WAAAI,CAAA","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ const values = exports.values = {
|
|
|
12
12
|
FP: 'FP',
|
|
13
13
|
FN: 'FN'
|
|
14
14
|
};
|
|
15
|
-
const LabelSchema = exports.LabelSchema = /*#__PURE__*/_effect.Schema.
|
|
15
|
+
const LabelSchema = exports.LabelSchema = /*#__PURE__*/_effect.Schema.Literals(['TP', 'TN', 'FP', 'FN']);
|
|
16
16
|
const defaultIsEqual = (a, b) =>
|
|
17
17
|
// FIXME: Expensive, but don't know how else to cheaply remove
|
|
18
18
|
// `undefined`, which is a common source of false results.
|
|
@@ -69,7 +69,7 @@ const median = xs => {
|
|
|
69
69
|
const sorted = xs.slice().sort((a, b) => a - b);
|
|
70
70
|
const index = Math.floor(sorted.length / 2);
|
|
71
71
|
const r = sorted.length % 2 === 0 ? (sorted[index - 1] + sorted[index]) / 2 : sorted[index];
|
|
72
|
-
return _effect.Option.
|
|
72
|
+
return _effect.Option.fromNullishOr(r);
|
|
73
73
|
};
|
|
74
74
|
exports.median = median;
|
|
75
75
|
//# sourceMappingURL=Classify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Classify.js","names":["_nodeUtil","require","_effect","values","exports","TN","TP","FP","FN","LabelSchema","Schema","
|
|
1
|
+
{"version":3,"file":"Classify.js","names":["_nodeUtil","require","_effect","values","exports","TN","TP","FP","FN","LabelSchema","Schema","Literals","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","fromNullishOr"],"sources":["../../../src/internal/Classify.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.test = exports.runCollectRecord = exports.makeSha256 = exports.diff = exports.all = exports.TestResultSchema = void 0;
|
|
7
7
|
var _nodeCrypto = /*#__PURE__*/require("node:crypto");
|
|
8
|
-
var _nodePerf_hooks = /*#__PURE__*/require("node:perf_hooks");
|
|
9
8
|
var _effect = /*#__PURE__*/require("effect");
|
|
10
9
|
var _Classify = /*#__PURE__*/require("../Classify.js");
|
|
11
10
|
var _Classify2 = /*#__PURE__*/require("./Classify.js");
|
|
12
11
|
const makeSha256 = input => {
|
|
12
|
+
// This public synchronous helper keeps result IDs stable across releases.
|
|
13
13
|
return (0, _nodeCrypto.createHash)('sha256').update(JSON.stringify(input)).digest('hex');
|
|
14
14
|
};
|
|
15
15
|
exports.makeSha256 = makeSha256;
|
|
@@ -50,17 +50,9 @@ const TestResultSchema = exports.TestResultSchema = /*#__PURE__*/_effect.Schema.
|
|
|
50
50
|
expected: _effect.Schema.Unknown,
|
|
51
51
|
label: _Classify2.LabelSchema,
|
|
52
52
|
tags: /*#__PURE__*/_effect.Schema.Array(_effect.Schema.String),
|
|
53
|
-
timeMillis: _effect.Schema.
|
|
53
|
+
timeMillis: _effect.Schema.Finite
|
|
54
54
|
});
|
|
55
|
-
const
|
|
56
|
-
emptyFromTestRun: args => ({
|
|
57
|
-
...args,
|
|
58
|
-
testResultsByTestCaseHash: {},
|
|
59
|
-
testCaseHashes: [],
|
|
60
|
-
stats: _Classify.Stats.empty()
|
|
61
|
-
})
|
|
62
|
-
};
|
|
63
|
-
const test = ({
|
|
55
|
+
const test = exports.test = /*#__PURE__*/_effect.Effect.fnUntraced(function* ({
|
|
64
56
|
testCase: {
|
|
65
57
|
input,
|
|
66
58
|
expected,
|
|
@@ -69,22 +61,20 @@ const test = ({
|
|
|
69
61
|
},
|
|
70
62
|
program,
|
|
71
63
|
classify
|
|
72
|
-
})
|
|
73
|
-
const t0 =
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
};
|
|
87
|
-
exports.test = test;
|
|
64
|
+
}) {
|
|
65
|
+
const t0 = yield* _effect.Clock.currentTimeNanos;
|
|
66
|
+
const result = yield* program(input);
|
|
67
|
+
const t1 = yield* _effect.Clock.currentTimeNanos;
|
|
68
|
+
return TestResult.make({
|
|
69
|
+
ordering,
|
|
70
|
+
input,
|
|
71
|
+
result,
|
|
72
|
+
expected,
|
|
73
|
+
tags: tags ?? [],
|
|
74
|
+
label: classify(result, expected),
|
|
75
|
+
timeMillis: Number(t1 - t0) / 1_000_000
|
|
76
|
+
});
|
|
77
|
+
});
|
|
88
78
|
const all = ({
|
|
89
79
|
testCases,
|
|
90
80
|
program,
|
|
@@ -95,27 +85,27 @@ const all = ({
|
|
|
95
85
|
concurrency
|
|
96
86
|
} = {
|
|
97
87
|
concurrency: 1
|
|
98
|
-
}) =>
|
|
99
|
-
|
|
100
|
-
_effect.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
88
|
+
}) => {
|
|
89
|
+
const total = _effect.Stream.isStream(testCases) ? undefined : testCases.length;
|
|
90
|
+
const testCases$ = _effect.Stream.isStream(testCases) ? testCases : _effect.Stream.fromIterable(testCases);
|
|
91
|
+
return (0, _effect.pipe)(testCases$, _effect.Stream.zipWithIndex, _effect.Stream.map(([testCase, ordering]) => ({
|
|
92
|
+
...testCase,
|
|
93
|
+
ordering
|
|
94
|
+
})), _effect.Stream.mapEffect(testCase => test({
|
|
95
|
+
testCase,
|
|
96
|
+
program,
|
|
97
|
+
classify
|
|
98
|
+
}), {
|
|
99
|
+
concurrency,
|
|
100
|
+
unordered: false
|
|
101
|
+
}), _effect.Stream.tap(testResult => {
|
|
102
|
+
const i = testResult.ordering + 1;
|
|
103
|
+
const stride = total === undefined ? 10 : Math.max(Math.floor(total * 0.05), 10);
|
|
104
|
+
const isMilestone = i === 1 || i % stride === 0 || total !== undefined && i === total;
|
|
105
|
+
if (!isMilestone) return _effect.Effect.void;
|
|
106
|
+
return _effect.Effect.logDebug(total === undefined ? `progress ${i}` : `progress ${i}/${total}`);
|
|
107
|
+
}));
|
|
108
|
+
};
|
|
119
109
|
exports.all = all;
|
|
120
110
|
const emptyAcc = () => ({
|
|
121
111
|
testResultsByTestCaseHash: {},
|
|
@@ -130,10 +120,8 @@ const emptyAcc = () => ({
|
|
|
130
120
|
timeMax: Number.NEGATIVE_INFINITY
|
|
131
121
|
});
|
|
132
122
|
const runCollectRecord = testRun => testResults$ => testResults$.pipe(_effect.Stream.run(
|
|
133
|
-
//
|
|
134
|
-
|
|
135
|
-
// rebuilding the object per element.
|
|
136
|
-
_effect.Sink.foldLeft(emptyAcc(), (acc, r) => {
|
|
123
|
+
// Each run owns its accumulator, so updates can happen in place.
|
|
124
|
+
_effect.Sink.reduce(emptyAcc, (acc, r) => {
|
|
137
125
|
acc.testResultsByTestCaseHash[r.hashTestCase] = r;
|
|
138
126
|
acc.testCaseHashes.push(r.hashTestCase);
|
|
139
127
|
acc.times.push(r.timeMillis);
|
|
@@ -165,7 +153,9 @@ _effect.Sink.foldLeft(emptyAcc(), (acc, r) => {
|
|
|
165
153
|
timeMedian: (0, _Classify2.median)(acc.times)
|
|
166
154
|
});
|
|
167
155
|
return {
|
|
168
|
-
|
|
156
|
+
id: testRun.id,
|
|
157
|
+
name: testRun.name,
|
|
158
|
+
hash: testRun.hash,
|
|
169
159
|
testResultsByTestCaseHash: acc.testResultsByTestCaseHash,
|
|
170
160
|
testCaseHashes: acc.testCaseHashes,
|
|
171
161
|
stats
|