@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.
Files changed (142) hide show
  1. package/README.md +113 -13
  2. package/dist/cjs/Classify.js +33 -2
  3. package/dist/cjs/Classify.js.map +1 -1
  4. package/dist/cjs/RepositoryError.js +45 -0
  5. package/dist/cjs/RepositoryError.js.map +1 -0
  6. package/dist/cjs/Test.js +2 -1
  7. package/dist/cjs/Test.js.map +1 -1
  8. package/dist/cjs/Test.repository.js +32 -6
  9. package/dist/cjs/Test.repository.js.map +1 -1
  10. package/dist/cjs/Test.repository.types.js +14 -0
  11. package/dist/cjs/Test.repository.types.js.map +1 -0
  12. package/dist/cjs/index.js +1 -1
  13. package/dist/cjs/internal/Classify.js +4 -32
  14. package/dist/cjs/internal/Classify.js.map +1 -1
  15. package/dist/cjs/internal/Classify.spec.js +223 -0
  16. package/dist/cjs/internal/Classify.spec.js.map +1 -0
  17. package/dist/cjs/internal/Test.js +61 -29
  18. package/dist/cjs/internal/Test.js.map +1 -1
  19. package/dist/cjs/internal/Test.repository.sqlite.js +172 -121
  20. package/dist/cjs/internal/Test.repository.sqlite.js.map +1 -1
  21. package/dist/cjs/internal/Test.repository.sqlite.spec.js +263 -170
  22. package/dist/cjs/internal/Test.repository.sqlite.spec.js.map +1 -1
  23. package/dist/cjs/internal/Test.spec.js +205 -0
  24. package/dist/cjs/internal/Test.spec.js.map +1 -0
  25. package/dist/cjs/internal/format-diff.spec.js +22 -16
  26. package/dist/cjs/internal/format-diff.spec.js.map +1 -1
  27. package/dist/cjs/internal/summarize.js.map +1 -1
  28. package/dist/cjs/pack.js.map +1 -1
  29. package/dist/dts/Classify.d.ts +58 -24
  30. package/dist/dts/Classify.d.ts.map +1 -1
  31. package/dist/dts/Error.d.ts +1 -1
  32. package/dist/dts/RepositoryError.d.ts +40 -0
  33. package/dist/dts/RepositoryError.d.ts.map +1 -0
  34. package/dist/dts/Test.d.ts +13 -6
  35. package/dist/dts/Test.d.ts.map +1 -1
  36. package/dist/dts/Test.repository.d.ts +11 -55
  37. package/dist/dts/Test.repository.d.ts.map +1 -1
  38. package/dist/dts/Test.repository.types.d.ts +66 -0
  39. package/dist/dts/Test.repository.types.d.ts.map +1 -0
  40. package/dist/dts/index.d.ts +1 -1
  41. package/dist/dts/index.d.ts.map +1 -1
  42. package/dist/dts/internal/Classify.d.ts +14 -23
  43. package/dist/dts/internal/Classify.d.ts.map +1 -1
  44. package/dist/dts/internal/Classify.spec.d.ts +2 -0
  45. package/dist/dts/internal/Classify.spec.d.ts.map +1 -0
  46. package/dist/dts/internal/Test.d.ts +8 -8
  47. package/dist/dts/internal/Test.d.ts.map +1 -1
  48. package/dist/dts/internal/Test.repository.sqlite.d.ts +9 -12
  49. package/dist/dts/internal/Test.repository.sqlite.d.ts.map +1 -1
  50. package/dist/dts/internal/Test.spec.d.ts +2 -0
  51. package/dist/dts/internal/Test.spec.d.ts.map +1 -0
  52. package/dist/dts/internal/common.d.ts +1 -1
  53. package/dist/dts/internal/common.d.ts.map +1 -1
  54. package/dist/dts/internal/diff.d.ts.map +1 -1
  55. package/dist/dts/internal/format-diff.d.ts.map +1 -1
  56. package/dist/dts/internal/lib/Schema.d.ts.map +1 -1
  57. package/dist/dts/internal/lib/jsondiffpatch/contexts/context.d.ts.map +1 -1
  58. package/dist/dts/internal/lib/jsondiffpatch/contexts/diff.d.ts.map +1 -1
  59. package/dist/dts/internal/lib/jsondiffpatch/contexts/patch.d.ts.map +1 -1
  60. package/dist/dts/internal/lib/jsondiffpatch/contexts/reverse.d.ts.map +1 -1
  61. package/dist/dts/internal/lib/jsondiffpatch/diffpatcher.d.ts.map +1 -1
  62. package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts.map +1 -1
  63. package/dist/dts/internal/lib/jsondiffpatch/formatters/annotated.d.ts.map +1 -1
  64. package/dist/dts/internal/lib/jsondiffpatch/formatters/base.d.ts +1 -1
  65. package/dist/dts/internal/lib/jsondiffpatch/formatters/base.d.ts.map +1 -1
  66. package/dist/dts/internal/lib/jsondiffpatch/formatters/html.d.ts.map +1 -1
  67. package/dist/dts/internal/lib/jsondiffpatch/formatters/jsonpatch.d.ts.map +1 -1
  68. package/dist/dts/internal/lib/jsondiffpatch/pipe.d.ts.map +1 -1
  69. package/dist/dts/internal/lib/jsondiffpatch/processor.d.ts +1 -1
  70. package/dist/dts/internal/lib/jsondiffpatch/processor.d.ts.map +1 -1
  71. package/dist/dts/internal/pack.d.ts.map +1 -1
  72. package/dist/dts/internal/stats.d.ts +1 -1
  73. package/dist/dts/internal/stats.d.ts.map +1 -1
  74. package/dist/dts/internal/summarize.d.ts +2 -2
  75. package/dist/dts/internal/summarize.d.ts.map +1 -1
  76. package/dist/esm/Classify.js +53 -3
  77. package/dist/esm/Classify.js.map +1 -1
  78. package/dist/esm/DisplayConfig.js +20 -1
  79. package/dist/esm/DisplayConfig.js.map +1 -1
  80. package/dist/esm/Error.js.map +1 -1
  81. package/dist/esm/RepositoryError.js +45 -0
  82. package/dist/esm/RepositoryError.js.map +1 -0
  83. package/dist/esm/Test.js +2 -1
  84. package/dist/esm/Test.js.map +1 -1
  85. package/dist/esm/Test.repository.js +52 -7
  86. package/dist/esm/Test.repository.js.map +1 -1
  87. package/dist/esm/Test.repository.types.js +14 -0
  88. package/dist/esm/Test.repository.types.js.map +1 -0
  89. package/dist/esm/index.js +21 -2
  90. package/dist/esm/index.js.map +1 -1
  91. package/dist/esm/internal/Classify.js +4 -32
  92. package/dist/esm/internal/Classify.js.map +1 -1
  93. package/dist/esm/internal/Classify.spec.js +223 -0
  94. package/dist/esm/internal/Classify.spec.js.map +1 -0
  95. package/dist/esm/internal/Test.js +61 -29
  96. package/dist/esm/internal/Test.js.map +1 -1
  97. package/dist/esm/internal/Test.repository.sqlite.js +192 -122
  98. package/dist/esm/internal/Test.repository.sqlite.js.map +1 -1
  99. package/dist/esm/internal/Test.repository.sqlite.spec.js +283 -171
  100. package/dist/esm/internal/Test.repository.sqlite.spec.js.map +1 -1
  101. package/dist/esm/internal/Test.spec.js +205 -0
  102. package/dist/esm/internal/Test.spec.js.map +1 -0
  103. package/dist/esm/internal/common.js +5 -1
  104. package/dist/esm/internal/common.js.map +1 -1
  105. package/dist/esm/internal/diff.js +5 -1
  106. package/dist/esm/internal/diff.js.map +1 -1
  107. package/dist/esm/internal/format-diff.js +5 -1
  108. package/dist/esm/internal/format-diff.js.map +1 -1
  109. package/dist/esm/internal/format-diff.spec.js +42 -17
  110. package/dist/esm/internal/format-diff.spec.js.map +1 -1
  111. package/dist/esm/internal/lib/Schema.js.map +1 -1
  112. package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js +5 -1
  113. package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -1
  114. package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js +5 -1
  115. package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -1
  116. package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js +5 -1
  117. package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -1
  118. package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js +25 -2
  119. package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -1
  120. package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js +5 -1
  121. package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -1
  122. package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js +5 -1
  123. package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js.map +1 -1
  124. package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js +5 -1
  125. package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -1
  126. package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js +5 -1
  127. package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js.map +1 -1
  128. package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js +5 -1
  129. package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -1
  130. package/dist/esm/internal/lib/jsondiffpatch/index.js +5 -1
  131. package/dist/esm/internal/lib/jsondiffpatch/index.js.map +1 -1
  132. package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js +5 -1
  133. package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -1
  134. package/dist/esm/internal/pack.js +20 -1
  135. package/dist/esm/internal/pack.js.map +1 -1
  136. package/dist/esm/internal/stats.js +5 -1
  137. package/dist/esm/internal/stats.js.map +1 -1
  138. package/dist/esm/internal/summarize.js +5 -1
  139. package/dist/esm/internal/summarize.js.map +1 -1
  140. package/dist/esm/pack.js +20 -1
  141. package/dist/esm/pack.js.map +1 -1
  142. 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
- void CLI.run({
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: 10,
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 │ FP │ 2 => 1.7 │
86
+ │ 2/5 │ 562e2cca │ 0.36ms │ │ 1 │ 2 │ TP │ 2 => 1.7 │
76
87
  ├─────┼──────────┼────────┼──────┼───────┼──────────┼────────┼──────────────┤
77
- │ 3/5 │ a5afd52f │ 3.30ms │ │ 2 │ 3 │ FP │ 3 => 3.4 │
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 │ 1 │ 0 │ 4 │ 0 │ 0.20 │ 1.00 │ 1.35ms │ 1.19ms │
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/1 │ bd04cb2c │ 0.52ms │ │ 0 │ 0 │ TP │ │
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 │ 1 │ 0 │ 4 │ 0 │ 0.20 │ 1.00 │ 1.23ms │ 1.28ms │
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
- Checkout `workspace/examples` for more examples.
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
- ```bash
209
- pnpx tsx <file-path>
210
- # e.g.
211
- pnpx tsx ./workspace/examples/src/with-cli/simple.ts
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.
@@ -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
- const LabelSchema = exports.LabelSchema = internal.LabelSchema;
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
@@ -1 +1 @@
1
- {"version":3,"file":"Classify.js","names":["internal","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","values","exports","defaultIsEqual","defaultIsNil","makeClassify","LabelSchema"],"sources":["../../src/Classify.ts"],"sourcesContent":[null],"mappings":";;;;;;AAEA,IAAAA,QAAA,gBAAAC,uBAAA,cAAAC,OAAA;AAAmD,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;AAY5C,MAAMkB,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAGtB,QAAQ,CAACsB,MAAM;AAC9B,MAAME,cAAc,GAAAD,OAAA,CAAAC,cAAA,GAAGxB,QAAQ,CAACwB,cAAc;AAC9C,MAAMC,YAAY,GAAAF,OAAA,CAAAE,YAAA,GAAGzB,QAAQ,CAACyB,YAAY;AAC1C,MAAMC,YAAY,GAAAH,OAAA,CAAAG,YAAA,GAAG1B,QAAQ,CAAC0B,YAAY;AAc1C,MAAMC,WAAW,GAAAJ,OAAA,CAAAI,WAAA,GAAG3B,QAAQ,CAAC2B,WAAW","ignoreList":[]}
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
@@ -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;AA+CxC,MAAMkB,GAAG,GAAAC,OAAA,CAAAD,GAAA,GAAGtB,QAAQ,CAACsB,GAAG;AACxB,MAAME,IAAI,GAAAD,OAAA,CAAAC,IAAA,GAAGxB,QAAQ,CAACwB,IAAI;AAC1B,MAAMC,gBAAgB,GAAAF,OAAA,CAAAE,gBAAA,GAAGzB,QAAQ,CAACyB,gBAAgB","ignoreList":[]}
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.makeSqliteLiveLayer = exports.TestRepository = exports.SqliteTestLayer = exports.LiveLayer = void 0;
7
- var internal = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./internal/Test.repository.sqlite.js"));
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 TestRepository = exports.TestRepository = internal.TestRepository;
29
- const LiveLayer = exports.LiveLayer = internal.LiveLayer;
30
- const makeSqliteLiveLayer = exports.makeSqliteLiveLayer = internal.makeSqliteLiveLayer;
31
- const SqliteTestLayer = exports.SqliteTestLayer = internal.SqliteTestLayer;
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":["internal","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TestRepository","exports","LiveLayer","makeSqliteLiveLayer","SqliteTestLayer"],"sources":["../../src/Test.repository.ts"],"sourcesContent":[null],"mappings":";;;;;;AAKA,IAAAA,QAAA,gBAAAC,uBAAA,cAAAC,OAAA;AAAiE,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;AA4E1D,MAAMkB,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAGtB,QAAQ,CAACsB,cAAc;AAC9C,MAAME,SAAS,GAAAD,OAAA,CAAAC,SAAA,GAAGxB,QAAQ,CAACwB,SAAS;AACpC,MAAMC,mBAAmB,GAAAF,OAAA,CAAAE,mBAAA,GAAGzB,QAAQ,CAACyB,mBAAmB;AACxD,MAAMC,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAAG1B,QAAQ,CAAC0B,eAAe","ignoreList":[]}
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("./Error.js"));
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.StatsSchema = exports.Stats = exports.LabelSchema = void 0;
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 && eq) {
37
- return values.TP;
35
+ if (!oNil && !eNil) {
36
+ return isEqual(output, expected) ? values.TP : values.FP;
38
37
  }
39
- if (!oNil && eNil || !oNil && !eNil && !eq) {
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","eq","oNil","eNil","StatsSchema","Struct","Number","precision","recall","timeMean","pipe","Option","timeMedian","timeMin","timeMax","Stats","empty","none","total","m","r","isNaN","min","xs","reduce","POSITIVE_INFINITY","max","NEGATIVE_INFINITY","mean","length","median","sorted","slice","sort","index","Math","floor","fromNullable"],"sources":["../../../src/internal/Classify.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
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":"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","ignoreList":[]}