@creative-introvert/tons-of-tests 2.0.0 → 2.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 (44) hide show
  1. package/README.md +157 -134
  2. package/dist/cjs/Classify.js +5 -0
  3. package/dist/cjs/Classify.js.map +1 -1
  4. package/dist/cjs/Test.js +5 -1
  5. package/dist/cjs/Test.js.map +1 -1
  6. package/dist/cjs/Test.repository.types.js.map +1 -1
  7. package/dist/cjs/internal/Test.js +107 -54
  8. package/dist/cjs/internal/Test.js.map +1 -1
  9. package/dist/cjs/internal/Test.repository.sqlite.js +77 -20
  10. package/dist/cjs/internal/Test.repository.sqlite.js.map +1 -1
  11. package/dist/cjs/internal/stats.js +8 -2
  12. package/dist/cjs/internal/stats.js.map +1 -1
  13. package/dist/cjs/internal/summarize.js +18 -13
  14. package/dist/cjs/internal/summarize.js.map +1 -1
  15. package/dist/dts/Classify.d.ts +4 -0
  16. package/dist/dts/Classify.d.ts.map +1 -1
  17. package/dist/dts/Show.d.ts +3 -3
  18. package/dist/dts/Show.d.ts.map +1 -1
  19. package/dist/dts/Test.d.ts +46 -8
  20. package/dist/dts/Test.d.ts.map +1 -1
  21. package/dist/dts/Test.repository.d.ts +3 -3
  22. package/dist/dts/Test.repository.d.ts.map +1 -1
  23. package/dist/dts/Test.repository.types.d.ts +6 -0
  24. package/dist/dts/Test.repository.types.d.ts.map +1 -1
  25. package/dist/dts/internal/Test.d.ts +15 -10
  26. package/dist/dts/internal/Test.d.ts.map +1 -1
  27. package/dist/dts/internal/Test.repository.sqlite.d.ts +2 -1
  28. package/dist/dts/internal/Test.repository.sqlite.d.ts.map +1 -1
  29. package/dist/dts/internal/stats.d.ts.map +1 -1
  30. package/dist/dts/internal/summarize.d.ts.map +1 -1
  31. package/dist/esm/Classify.js +5 -0
  32. package/dist/esm/Classify.js.map +1 -1
  33. package/dist/esm/Test.js +4 -0
  34. package/dist/esm/Test.js.map +1 -1
  35. package/dist/esm/Test.repository.types.js.map +1 -1
  36. package/dist/esm/internal/Test.js +104 -53
  37. package/dist/esm/internal/Test.js.map +1 -1
  38. package/dist/esm/internal/Test.repository.sqlite.js +77 -20
  39. package/dist/esm/internal/Test.repository.sqlite.js.map +1 -1
  40. package/dist/esm/internal/stats.js +8 -2
  41. package/dist/esm/internal/stats.js.map +1 -1
  42. package/dist/esm/internal/summarize.js +18 -13
  43. package/dist/esm/internal/summarize.js.map +1 -1
  44. package/package.json +1 -1
@@ -23,14 +23,13 @@ const columns = [{
23
23
  label: '#/∑',
24
24
  make: ({
25
25
  i,
26
- hashes
27
- }) => [_ansiColors.default.dim(`${i + 1}/${hashes.length}`)]
26
+ resultKeys
27
+ }) => [_ansiColors.default.dim(`${i + 1}/${resultKeys.length}`)]
28
28
  }, {
29
29
  name: 'hash',
30
30
  label: 'hash',
31
31
  make: ({
32
- i,
33
- hashes,
32
+ testResult,
34
33
  previousTestResult
35
34
  }) => {
36
35
  // TODO: Highlight more:
@@ -38,9 +37,15 @@ const columns = [{
38
37
  // 2. green when test "changed good"
39
38
  // 3. blue when test is new?
40
39
  const color = _effect.Option.isNone(previousTestResult) ? _ansiColors.default.green : _ansiColors.default.white;
41
- const hash = hashes[i].slice(0, 8);
40
+ const hash = testResult.hashTestCase.slice(0, 8);
42
41
  return [color(hash)];
43
42
  }
43
+ }, {
44
+ name: 'key',
45
+ label: 'key',
46
+ make: ({
47
+ testResult
48
+ }) => [testResult.key]
44
49
  }, {
45
50
  name: 'timeMillis',
46
51
  label: 'ms',
@@ -52,7 +57,7 @@ const columns = [{
52
57
  label: 'tags',
53
58
  make: ({
54
59
  testResult
55
- }) => testResult.tags
60
+ }) => [...testResult.tags]
56
61
  }, {
57
62
  name: 'input',
58
63
  label: 'input',
@@ -119,26 +124,26 @@ const showSummary = ({
119
124
  testRun,
120
125
  displayConfig,
121
126
  previousTestRun = _effect.Option.none(),
122
- selectColumns = ['index', 'hash', 'timeMillis', 'tags', 'input', 'expected', 'label', 'result_diff', 'prev_label', 'prev_result_diff']
127
+ selectColumns = ['index', 'hash', 'key', 'timeMillis', 'tags', 'input', 'expected', 'label', 'result_diff', 'prev_label', 'prev_result_diff']
123
128
  }) => {
124
129
  const cfg = {
125
130
  ...(0, _DisplayConfig.makeDefault)(),
126
131
  ...displayConfig
127
132
  };
128
- const hashes = testRun.testCaseHashes;
133
+ const resultKeys = testRun.testResultKeys;
129
134
  const _columns = columns.filter(c => selectColumns.includes(c.name)).filter(c => !c.name.startsWith('prev_') || _effect.Option.isSome(previousTestRun));
130
135
  let columnWidths = _columns.map(m => m.label.length);
131
136
  const rows = [];
132
- for (let i = 0; i < hashes.length; i++) {
133
- const hash = hashes[i];
134
- const testResult = testRun.testResultsByTestCaseHash[hash];
135
- const previousTestResult = previousTestRun.pipe(_effect.Option.flatMap(_ => _effect.Record.get(_.testResultsByTestCaseHash, hash)));
137
+ for (let i = 0; i < resultKeys.length; i++) {
138
+ const key = resultKeys[i];
139
+ const testResult = testRun.testResultsByKey[key];
140
+ const previousTestResult = previousTestRun.pipe(_effect.Option.flatMap(_ => _effect.Record.get(_.testResultsByKey, key)));
136
141
  const row = _columns.map(({
137
142
  label,
138
143
  make
139
144
  }) => [label, make({
140
145
  i,
141
- hashes: hashes,
146
+ resultKeys,
142
147
  testResult,
143
148
  previousTestResult
144
149
  })]);
@@ -1 +1 @@
1
- {"version":3,"file":"summarize.js","names":["_ansiColors","_interopRequireDefault","require","_effect","_common","_DisplayConfig","_formatDiff","_index","e","__esModule","default","columns","name","label","make","i","hashes","colors","dim","length","previousTestResult","color","Option","isNone","green","white","hash","slice","testResult","timeMillis","toFixed","tags","JSON","stringify","input","split","expected","hasPrevious","isSome","blue","red","yellow","result","formatDiff","diff","match","onNone","onSome","_","pipe","map","getOrElse","showSummary","testRun","displayConfig","previousTestRun","none","selectColumns","cfg","makeDefault","testCaseHashes","_columns","filter","c","includes","startsWith","columnWidths","m","rows","testResultsByTestCaseHash","flatMap","Record","get","row","w","Math","max","s","unstyle","maxHeight","reduce","n","_key","values","forEach","_i","push","A","makeBy","header","showHeader","showTitle","bold","showBorder","height","showRow","exports"],"sources":["../../../src/internal/summarize.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"summarize.js","names":["_ansiColors","_interopRequireDefault","require","_effect","_common","_DisplayConfig","_formatDiff","_index","e","__esModule","default","columns","name","label","make","i","resultKeys","colors","dim","length","testResult","previousTestResult","color","Option","isNone","green","white","hash","hashTestCase","slice","key","timeMillis","toFixed","tags","JSON","stringify","input","split","expected","hasPrevious","isSome","blue","red","yellow","result","formatDiff","diff","match","onNone","onSome","_","pipe","map","getOrElse","showSummary","testRun","displayConfig","previousTestRun","none","selectColumns","cfg","makeDefault","testResultKeys","_columns","filter","c","includes","startsWith","columnWidths","m","rows","testResultsByKey","flatMap","Record","get","row","w","Math","max","s","unstyle","maxHeight","reduce","n","_key","values","forEach","_i","push","A","makeBy","header","showHeader","showTitle","bold","showBorder","height","showRow","exports"],"sources":["../../../src/internal/summarize.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,10 @@ declare const Stats_base: Schema.Class<Stats, Schema.Struct<{
17
17
  readonly TN: Schema.Finite;
18
18
  readonly FP: Schema.Finite;
19
19
  readonly FN: Schema.Finite;
20
+ /** Number of evaluation results. */
20
21
  readonly total: Schema.Finite;
22
+ /** Number of distinct original test cases represented by those results. */
23
+ readonly testCases: Schema.Int;
21
24
  readonly precision: Schema.Finite;
22
25
  readonly recall: Schema.Finite;
23
26
  readonly timeMin: Schema.Option<Schema.Finite>;
@@ -25,6 +28,7 @@ declare const Stats_base: Schema.Class<Stats, Schema.Struct<{
25
28
  readonly timeMedian: Schema.Option<Schema.Finite>;
26
29
  readonly timeMean: Schema.Option<Schema.Finite>;
27
30
  }>, {}>;
31
+ /** Counts selected results; timing statistics count each selected case once. */
28
32
  export declare class Stats extends Stats_base {
29
33
  static empty(): Stats;
30
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Classify.d.ts","sourceRoot":"","sources":["../../src/Classify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAC,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAEnD,eAAO,MAAM,WAAW,oDAAuB,CAAC;AAChD,MAAM,MAAM,KAAK,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAE5C,eAAO,MAAM,MAAM;;;;;CAAkB,CAAC;AACtC,eAAO,MAAM,cAAc,gCAA0B,CAAC;AACtD,eAAO,MAAM,YAAY,8BAAwB,CAAC;AAClD,eAAO,MAAM,YAAY,8BAAwB,CAAC;AAElD,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,KAAK,CAAC;;;;;;;;;;;;;;AAE/D,qBAAa,KAAM,SAAQ,UAYzB;IACE,MAAM,CAAC,KAAK,IAAI,KAAK,CAcpB;CACJ"}
1
+ {"version":3,"file":"Classify.d.ts","sourceRoot":"","sources":["../../src/Classify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAC,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAEnD,eAAO,MAAM,WAAW,oDAAuB,CAAC;AAChD,MAAM,MAAM,KAAK,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAE5C,eAAO,MAAM,MAAM;;;;;CAAkB,CAAC;AACtC,eAAO,MAAM,cAAc,gCAA0B,CAAC;AACtD,eAAO,MAAM,YAAY,8BAAwB,CAAC;AAClD,eAAO,MAAM,YAAY,8BAAwB,CAAC;AAElD,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,KAAK,CAAC;;;;;;IAQ3D,oCAAoC;;IAEpC,2EAA2E;;;;;;;;;AAR/E,gFAAgF;AAChF,qBAAa,KAAM,SAAQ,UAezB;IACE,MAAM,CAAC,KAAK,IAAI,KAAK,CAepB;CACJ"}
@@ -16,7 +16,7 @@ export type DiffColumn = {
16
16
  export type StatsContext = {
17
17
  stats: Stats;
18
18
  };
19
- export type StatsColumnNames = 'total' | 'TP' | 'TN' | 'FP' | 'FN' | 'precision' | 'recall' | 'timeMin' | 'timeMax' | 'timeMean' | 'timeMedian';
19
+ export type StatsColumnNames = 'total' | 'testCases' | 'TP' | 'TN' | 'FP' | 'FN' | 'precision' | 'recall' | 'timeMin' | 'timeMax' | 'timeMean' | 'timeMedian';
20
20
  export type StatsColumn = {
21
21
  name: StatsColumnNames;
22
22
  label: string;
@@ -24,11 +24,11 @@ export type StatsColumn = {
24
24
  };
25
25
  export type SummarizeContext = {
26
26
  i: number;
27
- hashes: string[];
27
+ resultKeys: string[];
28
28
  testResult: TestResult;
29
29
  previousTestResult: Option.Option<TestResult>;
30
30
  };
31
- export type SummarizeColumnNames = 'index' | 'hash' | 'timeMillis' | 'input' | 'tags' | 'label' | 'expected' | 'result' | 'result_diff' | 'prev_label' | 'prev_result' | 'prev_result_diff';
31
+ export type SummarizeColumnNames = 'index' | 'hash' | 'key' | 'timeMillis' | 'input' | 'tags' | 'label' | 'expected' | 'result' | 'result_diff' | 'prev_label' | 'prev_result' | 'prev_result_diff';
32
32
  export type SummarizeColumn = {
33
33
  name: SummarizeColumnNames;
34
34
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Show.d.ts","sourceRoot":"","sources":["../../src/Show.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAC,IAAI,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAC,QAAQ,IAAI,IAAI,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,SAAS,IAAI,KAAK,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,WAAW,IAAI,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAEjE,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,IAAI,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,eAAe,GACrB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,WAAW,GACX,QAAQ,CAAC;AAEf,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,MAAM,EAAE,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACtB,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,WAAW,GACX,QAAQ,GACR,SAAS,GACT,SAAS,GACT,UAAU,GACV,YAAY,CAAC;AAEnB,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC1B,OAAO,GACP,MAAM,GACN,YAAY,GACZ,OAAO,GACP,MAAM,GACN,OAAO,GACP,UAAU,GACV,QAAQ,GACR,aAAa,GACb,YAAY,GACZ,aAAa,GACb,kBAAkB,CAAC;AAEzB,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,MAAM,EAAE,CAAC;CAC7C,CAAC"}
1
+ {"version":3,"file":"Show.d.ts","sourceRoot":"","sources":["../../src/Show.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAC,IAAI,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAC,QAAQ,IAAI,IAAI,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,SAAS,IAAI,KAAK,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,WAAW,IAAI,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAEjE,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,IAAI,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,eAAe,GACrB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,WAAW,GACX,QAAQ,CAAC;AAEf,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,MAAM,EAAE,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACtB,OAAO,GACP,WAAW,GACX,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,WAAW,GACX,QAAQ,GACR,SAAS,GACT,SAAS,GACT,UAAU,GACV,YAAY,CAAC;AAEnB,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC1B,OAAO,GACP,MAAM,GACN,KAAK,GACL,YAAY,GACZ,OAAO,GACP,MAAM,GACN,OAAO,GACP,UAAU,GACV,QAAQ,GACR,aAAa,GACb,YAAY,GACZ,aAAa,GACb,kBAAkB,CAAC;AAEzB,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,MAAM,EAAE,CAAC;CAC7C,CAAC"}
@@ -1,16 +1,40 @@
1
- import { Effect, Option, type Stream } from 'effect';
2
- import type { Classify, Label, Stats } from './Classify.js';
1
+ import { type Array, Effect, Option, type Stream } from 'effect';
2
+ import type { Label, Stats } from './Classify.js';
3
3
  import * as internal from './internal/Test.js';
4
4
  import type { TestRun, TestResultSchemas } from './Test.repository.js';
5
5
  export type TestSuiteSchemas<I, O, T> = TestResultSchemas<I, O, T>;
6
6
  export type TestCases<I, T, E = never, R = never> = ReadonlyArray<TestCase<I, T>> | Stream.Stream<TestCase<I, T>, E, R>;
7
- export type TestSuite<I = unknown, O = unknown, T = unknown, E = never, R = never> = {
7
+ export type EvaluationResult<A, B> = {
8
+ /** Non-empty and unique within the case. Keep it stable across runs. */
9
+ readonly key: string;
10
+ readonly result: A;
11
+ readonly expected: B;
12
+ readonly label: Label;
13
+ };
14
+ /**
15
+ * Returns the results to track for one completed output. Keep this function pure.
16
+ * Return at least one result, in display order. Each key must be non-empty and
17
+ * unique within the case.
18
+ */
19
+ export type Evaluate<O, T, A = O, B = T> = (output: O, expected: T) => Array.NonEmptyReadonlyArray<EvaluationResult<A, B>>;
20
+ /**
21
+ * Runs `program` once per case, then evaluates its output. `O` and `T` describe
22
+ * the whole output and expected value; `A` and `B` describe the evaluated values.
23
+ * Without `evaluate`, the default comparison returns one result with key `result`.
24
+ */
25
+ export type TestSuite<I = unknown, O = unknown, T = unknown, E = never, R = never, A = O, B = T> = {
26
+ name: string;
27
+ /** Decode cached input and the result/expected values returned by `evaluate`. */
28
+ schemas?: TestSuiteSchemas<I, A, B>;
29
+ } & ({
8
30
  testCases: TestCases<I, T, E, R>;
9
31
  program: Program<I, O, E, R>;
10
- classify?: Classify<O, T>;
11
- name: string;
12
- schemas?: TestSuiteSchemas<I, O, T>;
13
- };
32
+ evaluate: Evaluate<O, T, A, B>;
33
+ } | {
34
+ testCases: TestCases<I, T & NoInfer<B>, E, R>;
35
+ program: Program<I, O & NoInfer<A>, E, R>;
36
+ evaluate?: undefined;
37
+ });
14
38
  export type TestCase<I, T> = {
15
39
  input: I;
16
40
  expected: T;
@@ -19,17 +43,27 @@ export type TestCase<I, T> = {
19
43
  export type Program<I, O, E = never, R = never> = (input: I) => Effect.Effect<O, E, R>;
20
44
  export type TestResult<I = unknown, O = unknown, T = unknown> = {
21
45
  id: string;
46
+ /** Hash of the original input and expected value, shared by all case results. */
22
47
  hashTestCase: string;
48
+ key: string;
49
+ /** Zero-based position of the case in the suite. */
23
50
  ordering: number;
51
+ /** Zero-based position of the result in the case's evaluation array. */
52
+ resultOrdering: number;
24
53
  label: Label;
25
54
  input: I;
26
55
  result: O;
27
56
  expected: T;
28
57
  tags: readonly string[];
58
+ /** Program duration for the case, shared by all its results. */
29
59
  timeMillis: number;
30
60
  };
31
61
  export type TestRunResults<I = unknown, O = unknown, T = unknown> = TestRun & {
32
- testResultsByTestCaseHash: Record<string, TestResult<I, O, T>>;
62
+ /** Indexed by `resultKey`, which combines the case hash and evaluation key. */
63
+ testResultsByKey: Record<string, TestResult<I, O, T>>;
64
+ /** Keys into `testResultsByKey`, in display order. */
65
+ testResultKeys: string[];
66
+ /** Distinct case hashes, in display order. */
33
67
  testCaseHashes: string[];
34
68
  stats: Stats;
35
69
  };
@@ -44,5 +78,9 @@ export type TestResultPredicate<I, O, T> = (args: {
44
78
  export declare const all: typeof internal.all;
45
79
  export declare const diff: typeof internal.diff;
46
80
  export declare const makeSha256: typeof internal.makeSha256;
81
+ /** Builds the lookup key for one evaluation within its original test case. */
82
+ export declare const resultKey: typeof internal.resultKey;
47
83
  export declare const runCollectRecord: typeof internal.runCollectRecord;
84
+ /** Keeps matching results and recalculates counts and case timing statistics. */
85
+ export declare const filterResults: typeof internal.filterResults;
48
86
  //# sourceMappingURL=Test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Test.d.ts","sourceRoot":"","sources":["../../src/Test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Test.d.ts","sourceRoot":"","sources":["../../src/Test.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@ export { TestRun } from './Test.repository.types.js';
5
5
  export type { TestRepositoryShape, TestResultRead, TestResultSchemas, TestRunResults, } from './Test.repository.types.js';
6
6
  declare const TestRepository_base: Context.ServiceClass<TestRepository, "TestRepository", TestRepositoryShape>;
7
7
  export declare class TestRepository extends TestRepository_base {
8
- static get Live(): Layer.Layer<TestRepository, import("effect/sql/SqlError").SqlError, import("effect/sql/SqlClient").SqlClient>;
9
- static layer(dbPath: string): Layer.Layer<TestRepository, import("effect/sql/SqlError").SqlError, never>;
10
- static get TestLayer(): Layer.Layer<import("effect/sql/SqlClient").SqlClient | Sqlite.SqliteClient.SqliteClient | TestRepository, import("effect/sql/SqlError").SqlError, never>;
8
+ static get Live(): Layer.Layer<TestRepository, import("./RepositoryError.ts").RepositoryDecodeError | import("effect/sql/SqlError").SqlError, import("effect/sql/SqlClient").SqlClient>;
9
+ static layer(dbPath: string): Layer.Layer<TestRepository, import("./RepositoryError.ts").RepositoryDecodeError | import("effect/sql/SqlError").SqlError, never>;
10
+ static get TestLayer(): Layer.Layer<import("effect/sql/SqlClient").SqlClient | Sqlite.SqliteClient.SqliteClient | TestRepository, import("./RepositoryError.ts").RepositoryDecodeError | import("effect/sql/SqlError").SqlError, never>;
11
11
  }
12
12
  //# sourceMappingURL=Test.repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Test.repository.d.ts","sourceRoot":"","sources":["../../src/Test.repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAC,OAAO,EAAC,MAAM,4BAA4B,CAAC;AACnD,YAAY,EACR,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,cAAc,GACjB,MAAM,4BAA4B,CAAC;;AAUpC,qBAAa,cAAe,SAAQ,mBAGf;IAIjB,MAAM,KAAK,IAAI,kHAEd;IACD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,8EAK1B;IAED,MAAM,KAAK,SAAS,6JAEnB;CACJ"}
1
+ {"version":3,"file":"Test.repository.d.ts","sourceRoot":"","sources":["../../src/Test.repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAC,OAAO,EAAC,MAAM,4BAA4B,CAAC;AACnD,YAAY,EACR,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,cAAc,GACjB,MAAM,4BAA4B,CAAC;;AAUpC,qBAAa,cAAe,SAAQ,mBAGf;IAIjB,MAAM,KAAK,IAAI,yKAEd;IACD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,qIAK1B;IAED,MAAM,KAAK,SAAS,oNAEnB;CACJ"}
@@ -5,7 +5,9 @@ import type { TestResult } from './Test.js';
5
5
  export type TestResultRead = {
6
6
  id: string;
7
7
  hashTestCase: string;
8
+ key: string;
8
9
  ordering: number;
10
+ resultOrdering: number;
9
11
  label: Label;
10
12
  input: string;
11
13
  result: string;
@@ -23,7 +25,11 @@ export declare class TestRun extends TestRun_base {
23
25
  export type TestRunResults = {
24
26
  testRun: number;
25
27
  testResult: string;
28
+ ordering: number;
29
+ resultOrdering: number;
30
+ timeMillis: number;
26
31
  };
32
+ /** Decode stored input and evaluated values, including values from prior runs. */
27
33
  export type TestResultSchemas<I = unknown, O = unknown, T = unknown> = {
28
34
  input: Schema.Codec<I>;
29
35
  result: Schema.Codec<O>;
@@ -1 +1 @@
1
- {"version":3,"file":"Test.repository.types.d.ts","sourceRoot":"","sources":["../../src/Test.repository.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Test.repository.types.d.ts","sourceRoot":"","sources":["../../src/Test.repository.types.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import { Effect, Option, Schema, Stream } from 'effect';
2
- import type { Classify } from '../Classify.js';
3
- import type { Diff, Program, TestCase, TestResult, TestRunResults, TestSuite } from '../Test.js';
2
+ import type { Diff, Evaluate, Program, TestCase, TestResult, TestRunResults, TestSuite } from '../Test.js';
4
3
  import type { TestRun } from '../Test.repository.js';
5
4
  export declare const makeSha256: <I>(input: I) => string;
6
5
  declare const TestResult: {
7
- make: <I, O, T>(args: Omit<TestResult<I, O, T>, 'id' | 'hashTestCase'>) => {
6
+ make: <I, O, T>(args: Omit<TestResult<I, O, T>, 'id'>) => {
8
7
  id: string;
9
8
  hashTestCase: string;
9
+ key: string;
10
10
  ordering: number;
11
+ resultOrdering: number;
11
12
  label: import("../Classify.js").Label;
12
13
  input: I;
13
14
  result: O;
@@ -16,28 +17,32 @@ declare const TestResult: {
16
17
  timeMillis: number;
17
18
  };
18
19
  };
20
+ export declare const resultKey: ({ hashTestCase, key, }: Pick<TestResult, 'hashTestCase' | 'key'>) => string;
19
21
  export declare const TestResultSchema: Schema.Codec<TestResult>;
20
- export declare const test: <I, O, T, E, R>(args_0: {
22
+ export declare const test: <I, O, T, E, R, A, B>(args_0: {
21
23
  testCase: TestCase<I, T> & {
22
24
  ordering: number;
23
25
  };
24
26
  program: Program<I, O, E, R>;
25
- classify: Classify<O, T>;
27
+ evaluate: Evaluate<O, T, A, B>;
26
28
  }) => Effect.Effect<{
27
29
  id: string;
28
30
  hashTestCase: string;
31
+ key: string;
29
32
  ordering: number;
33
+ resultOrdering: number;
30
34
  label: import("../Classify.js").Label;
31
35
  input: I;
32
- result: O;
33
- expected: T;
36
+ result: A;
37
+ expected: B;
34
38
  tags: readonly string[];
35
39
  timeMillis: number;
36
- }, E, R>;
37
- export declare const all: <I, O, T, E, R>({ testCases, program, classify, }: TestSuite<I, O, T, E, R>, { concurrency }?: {
40
+ }[], E, R>;
41
+ export declare const all: <I, O, T, E, R, A = O, B = T>(suite: TestSuite<I, O, T, E, R, A, B>, { concurrency }?: {
38
42
  concurrency?: number | undefined;
39
- }) => Stream.Stream<TestResult<I, O, T>, E, R>;
43
+ }) => Stream.Stream<TestResult<I, A, B>, E, R>;
40
44
  export declare const runCollectRecord: (testRun: TestRun) => <I, O, T, E, R>(testResults$: Stream.Stream<TestResult<I, O, T>, E, R>) => Effect.Effect<TestRunResults<I, O, T>, E, R>;
45
+ export declare const filterResults: <I, O, T>(testRun: TestRunResults<I, O, T>, predicate: (result: TestResult<I, O, T>) => boolean) => TestRunResults<I, O, T>;
41
46
  export declare const diff: ({ testRun: { stats }, previousTestRun, }: {
42
47
  testRun: TestRunResults;
43
48
  previousTestRun: Option.Option<TestRunResults>;
@@ -1 +1 @@
1
- {"version":3,"file":"Test.d.ts","sourceRoot":"","sources":["../../../src/internal/Test.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,MAAM,EAAE,MAAM,EAAQ,MAAM,EAAQ,MAAM,EAAC,MAAM,QAAQ,CAAC;AAEzE,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EACR,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,UAAU,EACV,cAAc,EACd,SAAS,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAWnD,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,CAAC,KAAG,MAGxC,CAAC;AAEF,QAAA,MAAM,UAAU;WACL,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,cAAc,CAAC;;;;;;;;;;;CAezE,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAUpD,CAAC;AAEH,eAAO,MAAM,IAAI,GAAgC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;cAKhD,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC;aACpC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;cAClB,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;;;;;;;;;;QAc1B,CAAC;AAEH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,qCAK1B,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,oBACZ;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAC,KAClD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAiCzC,CAAC;AA4BF,eAAO,MAAM,gBAAgB,YACf,OAAO,MAChB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,gBACI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACvD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAuDzC,CAAC;AAEV,eAAO,MAAM,IAAI,6CAGd;IACC,OAAO,EAAE,cAAc,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;CAClD,KAAG,IAaC,CAAC"}
1
+ {"version":3,"file":"Test.d.ts","sourceRoot":"","sources":["../../../src/internal/Test.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,MAAM,EAAE,MAAM,EAAQ,MAAM,EAAQ,MAAM,EAAC,MAAM,QAAQ,CAAC;AAGzE,OAAO,KAAK,EACR,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,EACV,cAAc,EACd,SAAS,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAUnD,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,CAAC,KAAG,MAGxC,CAAC;AAEF,QAAA,MAAM,UAAU;WACL,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;;;;;;;;;;;;;CAmBxD,CAAC;AAEF,eAAO,MAAM,SAAS,2BAGnB,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,KAAK,CAAC,KAAG,MACP,CAAC;AAWxC,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAYpD,CAAC;AAEH,eAAO,MAAM,IAAI,GAAgC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;cAKtD,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC;aACpC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;cAClB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;;;;;;;;;;;UAkChC,CAAC;AAEH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SACpC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,oBACtB;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAC,KAClD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAyCzC,CAAC;AAgFF,eAAO,MAAM,gBAAgB,YACf,OAAO,MAChB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,gBACI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACvD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAIzC,CAAC;AAEV,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WACxB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,aACrB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,KACpD,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAOxB,CAAC;AAEF,eAAO,MAAM,IAAI,6CAGd;IACC,OAAO,EAAE,cAAc,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;CAClD,KAAG,IAaC,CAAC"}
@@ -3,10 +3,11 @@ import { Effect } from 'effect';
3
3
  import { TestRepository } from '../Test.repository.js';
4
4
  import { type TestRepositoryShape } from '../Test.repository.types.js';
5
5
  export { TestRepository };
6
+ import { RepositoryDecodeError } from '../RepositoryError.js';
6
7
  export declare const tables: {
7
8
  readonly testResults: 'test-results';
8
9
  readonly testRuns: 'test-runs';
9
10
  readonly testRunResults: 'test-run-results';
10
11
  };
11
- export declare const makeTestRepository: Effect.Effect<TestRepositoryShape, import("effect/sql/SqlError").SqlError, SqlClient.SqlClient>;
12
+ export declare const makeTestRepository: Effect.Effect<TestRepositoryShape, RepositoryDecodeError | import("effect/sql/SqlError").SqlError, SqlClient.SqlClient>;
12
13
  //# sourceMappingURL=Test.repository.sqlite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Test.repository.sqlite.d.ts","sourceRoot":"","sources":["../../../src/internal/Test.repository.sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAGH,MAAM,EAKT,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAEH,KAAK,mBAAmB,EAI3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAC,cAAc,EAAC,CAAC;AAUxB,eAAO,MAAM,MAAM;aACf,WAAW,EAAE,cAAc;aAC3B,QAAQ,EAAE,WAAW;aACrB,cAAc,EAAE,kBAAkB;CAC5B,CAAC;AAqCX,eAAO,MAAM,kBAAkB,iGAmiB7B,CAAC"}
1
+ {"version":3,"file":"Test.repository.sqlite.d.ts","sourceRoot":"","sources":["../../../src/internal/Test.repository.sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAGH,MAAM,EAKT,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAEH,KAAK,mBAAmB,EAG3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAC,cAAc,EAAC,CAAC;AACxB,OAAO,EACH,qBAAqB,EAIxB,MAAM,uBAAuB,CAAC;AAI/B,eAAO,MAAM,MAAM;aACf,WAAW,EAAE,cAAc;aAC3B,QAAQ,EAAE,WAAW;aACrB,cAAc,EAAE,kBAAkB;CAC5B,CAAC;AA+CX,eAAO,MAAM,kBAAkB,yHA0mB7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/internal/stats.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAc,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAC5E,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,YAAY,CAAC;AAyG/C,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,8CAc9B;IACC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC,CAAC;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACtC,KAAG,MAgCH,CAAC"}
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/internal/stats.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAc,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAC5E,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,YAAY,CAAC;AA8G/C,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,8CAe9B;IACC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC,CAAC;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACtC,KAAG,MAgCH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../src/internal/summarize.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,IAAI,CAAC,EAAE,MAAM,EAAS,MAAM,QAAQ,CAAC;AAElD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAER,oBAAoB,EAEvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,YAAY,CAAC;AAqI/C,eAAO,MAAM,WAAW,gEAgBrB;IACC,OAAO,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IACnD,aAAa,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;CACzD,WAgEA,CAAC"}
1
+ {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../src/internal/summarize.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,IAAI,CAAC,EAAE,MAAM,EAAS,MAAM,QAAQ,CAAC;AAElD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAER,oBAAoB,EAEvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,YAAY,CAAC;AAyI/C,eAAO,MAAM,WAAW,gEAiBrB;IACC,OAAO,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IACnD,aAAa,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;CACzD,WAgEA,CAAC"}
@@ -5,12 +5,16 @@ export const values = internal.values;
5
5
  export const defaultIsEqual = internal.defaultIsEqual;
6
6
  export const defaultIsNil = internal.defaultIsNil;
7
7
  export const makeClassify = internal.makeClassify;
8
+ /** Counts selected results; timing statistics count each selected case once. */
8
9
  export class Stats extends /*#__PURE__*/Schema.Class('Stats')({
9
10
  TP: Schema.Finite,
10
11
  TN: Schema.Finite,
11
12
  FP: Schema.Finite,
12
13
  FN: Schema.Finite,
14
+ /** Number of evaluation results. */
13
15
  total: Schema.Finite,
16
+ /** Number of distinct original test cases represented by those results. */
17
+ testCases: Schema.Int,
14
18
  precision: Schema.Finite,
15
19
  recall: Schema.Finite,
16
20
  timeMin: /*#__PURE__*/Schema.Option(Schema.Finite),
@@ -25,6 +29,7 @@ export class Stats extends /*#__PURE__*/Schema.Class('Stats')({
25
29
  FP: 0,
26
30
  FN: 0,
27
31
  total: 0,
32
+ testCases: 0,
28
33
  precision: 0,
29
34
  recall: 0,
30
35
  timeMin: Option.none(),
@@ -1 +1 @@
1
- {"version":3,"file":"Classify.js","names":["Option","Schema","internal","LabelSchema","values","defaultIsEqual","defaultIsNil","makeClassify","Stats","Class","TP","Finite","TN","FP","FN","total","precision","recall","timeMin","timeMax","timeMedian","timeMean","empty","none"],"sources":["../../src/Classify.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAQA,MAAM,EAAEC,MAAM,QAAO,QAAQ;AAErC,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAElD,OAAO,MAAMC,WAAW,GAAGD,QAAQ,CAACC,WAAW;AAG/C,OAAO,MAAMC,MAAM,GAAGF,QAAQ,CAACE,MAAM;AACrC,OAAO,MAAMC,cAAc,GAAGH,QAAQ,CAACG,cAAc;AACrD,OAAO,MAAMC,YAAY,GAAGJ,QAAQ,CAACI,YAAY;AACjD,OAAO,MAAMC,YAAY,GAAGL,QAAQ,CAACK,YAAY;AAIjD,OAAM,MAAOC,KAAM,sBAAQP,MAAM,CAACQ,KAAK,CAAQ,OAAO,CAAC,CAAC;EACpDC,EAAE,EAAET,MAAM,CAACU,MAAM;EACjBC,EAAE,EAAEX,MAAM,CAACU,MAAM;EACjBE,EAAE,EAAEZ,MAAM,CAACU,MAAM;EACjBG,EAAE,EAAEb,MAAM,CAACU,MAAM;EACjBI,KAAK,EAAEd,MAAM,CAACU,MAAM;EACpBK,SAAS,EAAEf,MAAM,CAACU,MAAM;EACxBM,MAAM,EAAEhB,MAAM,CAACU,MAAM;EACrBO,OAAO,eAAEjB,MAAM,CAACD,MAAM,CAACC,MAAM,CAACU,MAAM,CAAC;EACrCQ,OAAO,eAAElB,MAAM,CAACD,MAAM,CAACC,MAAM,CAACU,MAAM,CAAC;EACrCS,UAAU,eAAEnB,MAAM,CAACD,MAAM,CAACC,MAAM,CAACU,MAAM,CAAC;EACxCU,QAAQ,eAAEpB,MAAM,CAACD,MAAM,CAACC,MAAM,CAACU,MAAM;CACxC,CAAC;EACE,OAAOW,KAAKA,CAAA;IACR,OAAO,IAAId,KAAK,CAAC;MACbE,EAAE,EAAE,CAAC;MACLE,EAAE,EAAE,CAAC;MACLC,EAAE,EAAE,CAAC;MACLC,EAAE,EAAE,CAAC;MACLC,KAAK,EAAE,CAAC;MACRC,SAAS,EAAE,CAAC;MACZC,MAAM,EAAE,CAAC;MACTC,OAAO,EAAElB,MAAM,CAACuB,IAAI,EAAE;MACtBJ,OAAO,EAAEnB,MAAM,CAACuB,IAAI,EAAE;MACtBH,UAAU,EAAEpB,MAAM,CAACuB,IAAI,EAAE;MACzBF,QAAQ,EAAErB,MAAM,CAACuB,IAAI;KACxB,CAAC;EACN","ignoreList":[]}
1
+ {"version":3,"file":"Classify.js","names":["Option","Schema","internal","LabelSchema","values","defaultIsEqual","defaultIsNil","makeClassify","Stats","Class","TP","Finite","TN","FP","FN","total","testCases","Int","precision","recall","timeMin","timeMax","timeMedian","timeMean","empty","none"],"sources":["../../src/Classify.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAQA,MAAM,EAAEC,MAAM,QAAO,QAAQ;AAErC,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAElD,OAAO,MAAMC,WAAW,GAAGD,QAAQ,CAACC,WAAW;AAG/C,OAAO,MAAMC,MAAM,GAAGF,QAAQ,CAACE,MAAM;AACrC,OAAO,MAAMC,cAAc,GAAGH,QAAQ,CAACG,cAAc;AACrD,OAAO,MAAMC,YAAY,GAAGJ,QAAQ,CAACI,YAAY;AACjD,OAAO,MAAMC,YAAY,GAAGL,QAAQ,CAACK,YAAY;AAIjD;AACA,OAAM,MAAOC,KAAM,sBAAQP,MAAM,CAACQ,KAAK,CAAQ,OAAO,CAAC,CAAC;EACpDC,EAAE,EAAET,MAAM,CAACU,MAAM;EACjBC,EAAE,EAAEX,MAAM,CAACU,MAAM;EACjBE,EAAE,EAAEZ,MAAM,CAACU,MAAM;EACjBG,EAAE,EAAEb,MAAM,CAACU,MAAM;EACjB;EACAI,KAAK,EAAEd,MAAM,CAACU,MAAM;EACpB;EACAK,SAAS,EAAEf,MAAM,CAACgB,GAAG;EACrBC,SAAS,EAAEjB,MAAM,CAACU,MAAM;EACxBQ,MAAM,EAAElB,MAAM,CAACU,MAAM;EACrBS,OAAO,eAAEnB,MAAM,CAACD,MAAM,CAACC,MAAM,CAACU,MAAM,CAAC;EACrCU,OAAO,eAAEpB,MAAM,CAACD,MAAM,CAACC,MAAM,CAACU,MAAM,CAAC;EACrCW,UAAU,eAAErB,MAAM,CAACD,MAAM,CAACC,MAAM,CAACU,MAAM,CAAC;EACxCY,QAAQ,eAAEtB,MAAM,CAACD,MAAM,CAACC,MAAM,CAACU,MAAM;CACxC,CAAC;EACE,OAAOa,KAAKA,CAAA;IACR,OAAO,IAAIhB,KAAK,CAAC;MACbE,EAAE,EAAE,CAAC;MACLE,EAAE,EAAE,CAAC;MACLC,EAAE,EAAE,CAAC;MACLC,EAAE,EAAE,CAAC;MACLC,KAAK,EAAE,CAAC;MACRC,SAAS,EAAE,CAAC;MACZE,SAAS,EAAE,CAAC;MACZC,MAAM,EAAE,CAAC;MACTC,OAAO,EAAEpB,MAAM,CAACyB,IAAI,EAAE;MACtBJ,OAAO,EAAErB,MAAM,CAACyB,IAAI,EAAE;MACtBH,UAAU,EAAEtB,MAAM,CAACyB,IAAI,EAAE;MACzBF,QAAQ,EAAEvB,MAAM,CAACyB,IAAI;KACxB,CAAC;EACN","ignoreList":[]}
package/dist/esm/Test.js CHANGED
@@ -2,5 +2,9 @@ import * as internal from './internal/Test.js';
2
2
  export const all = internal.all;
3
3
  export const diff = internal.diff;
4
4
  export const makeSha256 = internal.makeSha256;
5
+ /** Builds the lookup key for one evaluation within its original test case. */
6
+ export const resultKey = internal.resultKey;
5
7
  export const runCollectRecord = internal.runCollectRecord;
8
+ /** Keeps matching results and recalculates counts and case timing statistics. */
9
+ export const filterResults = internal.filterResults;
6
10
  //# sourceMappingURL=Test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Test.js","names":["internal","all","diff","makeSha256","runCollectRecord"],"sources":["../../src/Test.ts"],"sourcesContent":[null],"mappings":"AAGA,OAAO,KAAKA,QAAQ,MAAM,oBAAoB;AAiE9C,OAAO,MAAMC,GAAG,GAAGD,QAAQ,CAACC,GAAG;AAC/B,OAAO,MAAMC,IAAI,GAAGF,QAAQ,CAACE,IAAI;AACjC,OAAO,MAAMC,UAAU,GAAGH,QAAQ,CAACG,UAAU;AAC7C,OAAO,MAAMC,gBAAgB,GAAGJ,QAAQ,CAACI,gBAAgB","ignoreList":[]}
1
+ {"version":3,"file":"Test.js","names":["internal","all","diff","makeSha256","resultKey","runCollectRecord","filterResults"],"sources":["../../src/Test.ts"],"sourcesContent":[null],"mappings":"AAGA,OAAO,KAAKA,QAAQ,MAAM,oBAAoB;AAyG9C,OAAO,MAAMC,GAAG,GAAGD,QAAQ,CAACC,GAAG;AAC/B,OAAO,MAAMC,IAAI,GAAGF,QAAQ,CAACE,IAAI;AACjC,OAAO,MAAMC,UAAU,GAAGH,QAAQ,CAACG,UAAU;AAC7C;AACA,OAAO,MAAMC,SAAS,GAAGJ,QAAQ,CAACI,SAAS;AAC3C,OAAO,MAAMC,gBAAgB,GAAGL,QAAQ,CAACK,gBAAgB;AACzD;AACA,OAAO,MAAMC,aAAa,GAAGN,QAAQ,CAACM,aAAa","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Test.repository.types.js","names":["Schema","TestRun","Class","id","Int","name","String","hash","NullOr"],"sources":["../../src/Test.repository.types.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAkCA,MAAM,QAAoB,QAAQ;AAkBpE,OAAM,MAAOC,OAAQ,sBAAQD,MAAM,CAACE,KAAK,CAAU,SAAS,CAAC,CAAC;EAC1DC,EAAE,EAAEH,MAAM,CAACI,GAAG;EACdC,IAAI,EAAEL,MAAM,CAACM,MAAM;EACnBC,IAAI,eAAEP,MAAM,CAACQ,MAAM,CAACR,MAAM,CAACM,MAAM;CACpC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Test.repository.types.js","names":["Schema","TestRun","Class","id","Int","name","String","hash","NullOr"],"sources":["../../src/Test.repository.types.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAkCA,MAAM,QAAoB,QAAQ;AAoBpE,OAAM,MAAOC,OAAQ,sBAAQD,MAAM,CAACE,KAAK,CAAU,SAAS,CAAC,CAAC;EAC1DC,EAAE,EAAEH,MAAM,CAACI,GAAG;EACdC,IAAI,EAAEL,MAAM,CAACM,MAAM;EACnBC,IAAI,eAAEP,MAAM,CAACQ,MAAM,CAACR,MAAM,CAACM,MAAM;CACpC,CAAC","ignoreList":[]}