@creative-introvert/tons-of-tests 1.2.0 → 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.
Files changed (198) hide show
  1. package/README.md +44 -1
  2. package/dist/cjs/Classify.js +13 -31
  3. package/dist/cjs/Classify.js.map +1 -1
  4. package/dist/cjs/DisplayConfig.js +2 -20
  5. package/dist/cjs/DisplayConfig.js.map +1 -1
  6. package/dist/cjs/RepositoryError.js +4 -5
  7. package/dist/cjs/RepositoryError.js.map +1 -1
  8. package/dist/cjs/Test.js +2 -20
  9. package/dist/cjs/Test.js.map +1 -1
  10. package/dist/cjs/Test.repository.js +3 -21
  11. package/dist/cjs/Test.repository.js.map +1 -1
  12. package/dist/cjs/Test.repository.types.js.map +1 -1
  13. package/dist/cjs/index.js +2 -20
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/internal/Classify.js +2 -2
  16. package/dist/cjs/internal/Classify.js.map +1 -1
  17. package/dist/cjs/internal/Test.js +24 -34
  18. package/dist/cjs/internal/Test.js.map +1 -1
  19. package/dist/cjs/internal/Test.repository.sqlite.js +41 -59
  20. package/dist/cjs/internal/Test.repository.sqlite.js.map +1 -1
  21. package/dist/cjs/internal/common.js +1 -5
  22. package/dist/cjs/internal/common.js.map +1 -1
  23. package/dist/cjs/internal/diff.js +1 -5
  24. package/dist/cjs/internal/diff.js.map +1 -1
  25. package/dist/cjs/internal/format-diff.js +2 -6
  26. package/dist/cjs/internal/format-diff.js.map +1 -1
  27. package/dist/cjs/internal/lib/Schema.js +3 -3
  28. package/dist/cjs/internal/lib/Schema.js.map +1 -1
  29. package/dist/cjs/internal/lib/jsondiffpatch/contexts/diff.js +1 -5
  30. package/dist/cjs/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -1
  31. package/dist/cjs/internal/lib/jsondiffpatch/contexts/patch.js +1 -5
  32. package/dist/cjs/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -1
  33. package/dist/cjs/internal/lib/jsondiffpatch/contexts/reverse.js +1 -5
  34. package/dist/cjs/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -1
  35. package/dist/cjs/internal/lib/jsondiffpatch/diffpatcher.js +3 -25
  36. package/dist/cjs/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -1
  37. package/dist/cjs/internal/lib/jsondiffpatch/filters/arrays.js +1 -5
  38. package/dist/cjs/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -1
  39. package/dist/cjs/internal/lib/jsondiffpatch/filters/nested.js +1 -5
  40. package/dist/cjs/internal/lib/jsondiffpatch/filters/nested.js.map +1 -1
  41. package/dist/cjs/internal/lib/jsondiffpatch/formatters/annotated.js +1 -5
  42. package/dist/cjs/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -1
  43. package/dist/cjs/internal/lib/jsondiffpatch/formatters/html.js +1 -5
  44. package/dist/cjs/internal/lib/jsondiffpatch/formatters/html.js.map +1 -1
  45. package/dist/cjs/internal/lib/jsondiffpatch/formatters/jsonpatch.js +1 -5
  46. package/dist/cjs/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -1
  47. package/dist/cjs/internal/lib/jsondiffpatch/index.js +1 -5
  48. package/dist/cjs/internal/lib/jsondiffpatch/index.js.map +1 -1
  49. package/dist/cjs/internal/lib/jsondiffpatch/with-text-diffs.js +1 -5
  50. package/dist/cjs/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -1
  51. package/dist/cjs/internal/pack.js +28 -50
  52. package/dist/cjs/internal/pack.js.map +1 -1
  53. package/dist/cjs/internal/stats.js +1 -5
  54. package/dist/cjs/internal/stats.js.map +1 -1
  55. package/dist/cjs/internal/summarize.js +1 -5
  56. package/dist/cjs/internal/summarize.js.map +1 -1
  57. package/dist/cjs/package.json +1 -0
  58. package/dist/dts/Classify.d.ts +20 -57
  59. package/dist/dts/Classify.d.ts.map +1 -1
  60. package/dist/dts/DisplayConfig.d.ts +2 -1
  61. package/dist/dts/DisplayConfig.d.ts.map +1 -1
  62. package/dist/dts/RepositoryError.d.ts +21 -22
  63. package/dist/dts/RepositoryError.d.ts.map +1 -1
  64. package/dist/dts/Test.d.ts +8 -16
  65. package/dist/dts/Test.d.ts.map +1 -1
  66. package/dist/dts/Test.repository.d.ts +4 -4
  67. package/dist/dts/Test.repository.d.ts.map +1 -1
  68. package/dist/dts/Test.repository.types.d.ts +10 -20
  69. package/dist/dts/Test.repository.types.d.ts.map +1 -1
  70. package/dist/dts/internal/Classify.d.ts +1 -1
  71. package/dist/dts/internal/Classify.d.ts.map +1 -1
  72. package/dist/dts/internal/Test.d.ts +13 -6
  73. package/dist/dts/internal/Test.d.ts.map +1 -1
  74. package/dist/dts/internal/Test.repository.sqlite.d.ts +2 -2
  75. package/dist/dts/internal/Test.repository.sqlite.d.ts.map +1 -1
  76. package/dist/dts/internal/lib/Schema.d.ts +2 -2
  77. package/dist/dts/internal/lib/Schema.d.ts.map +1 -1
  78. package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts +2 -1
  79. package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts.map +1 -1
  80. package/dist/dts/internal/pack.d.ts.map +1 -1
  81. package/dist/esm/Classify.js +23 -50
  82. package/dist/esm/Classify.js.map +1 -1
  83. package/dist/esm/DisplayConfig.js +2 -28
  84. package/dist/esm/DisplayConfig.js.map +1 -1
  85. package/dist/esm/RepositoryError.js +13 -24
  86. package/dist/esm/RepositoryError.js.map +1 -1
  87. package/dist/esm/Show.js +3 -26
  88. package/dist/esm/Show.js.map +1 -1
  89. package/dist/esm/Test.js +5 -12
  90. package/dist/esm/Test.js.map +1 -1
  91. package/dist/esm/Test.repository.js +8 -41
  92. package/dist/esm/Test.repository.js.map +1 -1
  93. package/dist/esm/Test.repository.types.js +5 -12
  94. package/dist/esm/Test.repository.types.js.map +1 -1
  95. package/dist/esm/index.js +7 -45
  96. package/dist/esm/index.js.map +1 -1
  97. package/dist/esm/internal/Classify.js +16 -31
  98. package/dist/esm/internal/Classify.js.map +1 -1
  99. package/dist/esm/internal/DisplayConfig.js +1 -8
  100. package/dist/esm/internal/DisplayConfig.js.map +1 -1
  101. package/dist/esm/internal/Test.js +58 -78
  102. package/dist/esm/internal/Test.js.map +1 -1
  103. package/dist/esm/internal/Test.repository.sqlite.js +111 -142
  104. package/dist/esm/internal/Test.repository.sqlite.js.map +1 -1
  105. package/dist/esm/internal/common.js +15 -32
  106. package/dist/esm/internal/common.js.map +1 -1
  107. package/dist/esm/internal/diff.js +18 -30
  108. package/dist/esm/internal/diff.js.map +1 -1
  109. package/dist/esm/internal/format-diff.js +9 -22
  110. package/dist/esm/internal/format-diff.js.map +1 -1
  111. package/dist/esm/internal/lib/Schema.js +4 -11
  112. package/dist/esm/internal/lib/Schema.js.map +1 -1
  113. package/dist/esm/internal/lib/jsondiffpatch/clone.js +1 -7
  114. package/dist/esm/internal/lib/jsondiffpatch/clone.js.map +1 -1
  115. package/dist/esm/internal/lib/jsondiffpatch/contexts/context.js +1 -8
  116. package/dist/esm/internal/lib/jsondiffpatch/contexts/context.js.map +1 -1
  117. package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js +5 -16
  118. package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -1
  119. package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js +3 -14
  120. package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -1
  121. package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js +3 -14
  122. package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -1
  123. package/dist/esm/internal/lib/jsondiffpatch/date-reviver.js +1 -7
  124. package/dist/esm/internal/lib/jsondiffpatch/date-reviver.js.map +1 -1
  125. package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js +20 -51
  126. package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -1
  127. package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js +16 -28
  128. package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -1
  129. package/dist/esm/internal/lib/jsondiffpatch/filters/dates.js +1 -7
  130. package/dist/esm/internal/lib/jsondiffpatch/filters/dates.js.map +1 -1
  131. package/dist/esm/internal/lib/jsondiffpatch/filters/lcs.js +1 -7
  132. package/dist/esm/internal/lib/jsondiffpatch/filters/lcs.js.map +1 -1
  133. package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js +13 -27
  134. package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js.map +1 -1
  135. package/dist/esm/internal/lib/jsondiffpatch/filters/texts.js +3 -9
  136. package/dist/esm/internal/lib/jsondiffpatch/filters/texts.js.map +1 -1
  137. package/dist/esm/internal/lib/jsondiffpatch/filters/trivial.js +3 -9
  138. package/dist/esm/internal/lib/jsondiffpatch/filters/trivial.js.map +1 -1
  139. package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js +4 -16
  140. package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -1
  141. package/dist/esm/internal/lib/jsondiffpatch/formatters/base.js +1 -7
  142. package/dist/esm/internal/lib/jsondiffpatch/formatters/base.js.map +1 -1
  143. package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js +6 -21
  144. package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js.map +1 -1
  145. package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js +6 -20
  146. package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -1
  147. package/dist/esm/internal/lib/jsondiffpatch/index.js +15 -42
  148. package/dist/esm/internal/lib/jsondiffpatch/index.js.map +1 -1
  149. package/dist/esm/internal/lib/jsondiffpatch/pipe.js +1 -7
  150. package/dist/esm/internal/lib/jsondiffpatch/pipe.js.map +1 -1
  151. package/dist/esm/internal/lib/jsondiffpatch/processor.js +1 -7
  152. package/dist/esm/internal/lib/jsondiffpatch/processor.js.map +1 -1
  153. package/dist/esm/internal/lib/jsondiffpatch/types.js +1 -6
  154. package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js +22 -49
  155. package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -1
  156. package/dist/esm/internal/pack.js +26 -55
  157. package/dist/esm/internal/pack.js.map +1 -1
  158. package/dist/esm/internal/stats.js +21 -33
  159. package/dist/esm/internal/stats.js.map +1 -1
  160. package/dist/esm/internal/summarize.js +29 -41
  161. package/dist/esm/internal/summarize.js.map +1 -1
  162. package/package.json +11 -9
  163. package/dist/cjs/Error.js +0 -10
  164. package/dist/cjs/Error.js.map +0 -1
  165. package/dist/cjs/internal/Classify.spec.js +0 -223
  166. package/dist/cjs/internal/Classify.spec.js.map +0 -1
  167. package/dist/cjs/internal/Test.repository.sqlite.spec.js +0 -294
  168. package/dist/cjs/internal/Test.repository.sqlite.spec.js.map +0 -1
  169. package/dist/cjs/internal/Test.spec.js +0 -260
  170. package/dist/cjs/internal/Test.spec.js.map +0 -1
  171. package/dist/cjs/internal/format-diff.spec.js +0 -103
  172. package/dist/cjs/internal/format-diff.spec.js.map +0 -1
  173. package/dist/cjs/pack.js +0 -28
  174. package/dist/cjs/pack.js.map +0 -1
  175. package/dist/dts/Error.d.ts +0 -10
  176. package/dist/dts/Error.d.ts.map +0 -1
  177. package/dist/dts/internal/Classify.spec.d.ts +0 -2
  178. package/dist/dts/internal/Classify.spec.d.ts.map +0 -1
  179. package/dist/dts/internal/Test.repository.sqlite.spec.d.ts +0 -2
  180. package/dist/dts/internal/Test.repository.sqlite.spec.d.ts.map +0 -1
  181. package/dist/dts/internal/Test.spec.d.ts +0 -2
  182. package/dist/dts/internal/Test.spec.d.ts.map +0 -1
  183. package/dist/dts/internal/format-diff.spec.d.ts +0 -2
  184. package/dist/dts/internal/format-diff.spec.d.ts.map +0 -1
  185. package/dist/dts/pack.d.ts +0 -2
  186. package/dist/dts/pack.d.ts.map +0 -1
  187. package/dist/esm/Error.js +0 -10
  188. package/dist/esm/Error.js.map +0 -1
  189. package/dist/esm/internal/Classify.spec.js +0 -223
  190. package/dist/esm/internal/Classify.spec.js.map +0 -1
  191. package/dist/esm/internal/Test.repository.sqlite.spec.js +0 -294
  192. package/dist/esm/internal/Test.repository.sqlite.spec.js.map +0 -1
  193. package/dist/esm/internal/Test.spec.js +0 -241
  194. package/dist/esm/internal/Test.spec.js.map +0 -1
  195. package/dist/esm/internal/format-diff.spec.js +0 -103
  196. package/dist/esm/internal/format-diff.spec.js.map +0 -1
  197. package/dist/esm/pack.js +0 -28
  198. package/dist/esm/pack.js.map +0 -1
@@ -1,18 +1,11 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.test = exports.runCollectRecord = exports.makeSha256 = exports.diff = exports.all = exports.TestResultSchema = void 0;
7
- var _nodeCrypto = /*#__PURE__*/require("node:crypto");
8
- var _nodePerf_hooks = /*#__PURE__*/require("node:perf_hooks");
9
- var _effect = /*#__PURE__*/require("effect");
10
- var _Classify = /*#__PURE__*/require("../Classify.js");
11
- var _Classify2 = /*#__PURE__*/require("./Classify.js");
12
- const makeSha256 = input => {
13
- return (0, _nodeCrypto.createHash)('sha256').update(JSON.stringify(input)).digest('hex');
1
+ import { createHash } from 'node:crypto';
2
+ import { Clock, Effect, Option, pipe, Schema, Sink, Stream } from 'effect';
3
+ import { Stats } from '../Classify.js';
4
+ import { defaultIsEqual, LabelSchema, makeClassify, median, precision, recall } from './Classify.js';
5
+ export const makeSha256 = input => {
6
+ // This public synchronous helper keeps result IDs stable across releases.
7
+ return createHash('sha256').update(JSON.stringify(input)).digest('hex');
14
8
  };
15
- exports.makeSha256 = makeSha256;
16
9
  const TestResult = {
17
10
  make: args => {
18
11
  const {
@@ -41,26 +34,18 @@ const TestResult = {
41
34
  };
42
35
  }
43
36
  };
44
- const TestResultSchema = exports.TestResultSchema = /*#__PURE__*/_effect.Schema.Struct({
45
- id: _effect.Schema.String,
46
- hashTestCase: _effect.Schema.String,
47
- ordering: _effect.Schema.Int,
48
- input: _effect.Schema.Unknown,
49
- result: _effect.Schema.Unknown,
50
- expected: _effect.Schema.Unknown,
51
- label: _Classify2.LabelSchema,
52
- tags: /*#__PURE__*/_effect.Schema.Array(_effect.Schema.String),
53
- timeMillis: _effect.Schema.Number
37
+ export const TestResultSchema = /*#__PURE__*/Schema.Struct({
38
+ id: Schema.String,
39
+ hashTestCase: Schema.String,
40
+ ordering: Schema.Int,
41
+ input: Schema.Unknown,
42
+ result: Schema.Unknown,
43
+ expected: Schema.Unknown,
44
+ label: LabelSchema,
45
+ tags: /*#__PURE__*/Schema.Array(Schema.String),
46
+ timeMillis: Schema.Finite
54
47
  });
55
- const TestRunResults = {
56
- emptyFromTestRun: args => ({
57
- ...args,
58
- testResultsByTestCaseHash: {},
59
- testCaseHashes: [],
60
- stats: _Classify.Stats.empty()
61
- })
62
- };
63
- const test = ({
48
+ export const test = /*#__PURE__*/Effect.fnUntraced(function* ({
64
49
  testCase: {
65
50
  input,
66
51
  expected,
@@ -69,54 +54,51 @@ const test = ({
69
54
  },
70
55
  program,
71
56
  classify
72
- }) => {
73
- const t0 = _nodePerf_hooks.performance.now();
74
- return program(input).pipe(_effect.Effect.map(result => {
75
- const t1 = _nodePerf_hooks.performance.now();
76
- return TestResult.make({
77
- ordering,
78
- input,
79
- result,
80
- expected,
81
- tags: tags ?? [],
82
- label: classify(result, expected),
83
- timeMillis: t1 - t0
84
- });
85
- }));
86
- };
87
- exports.test = test;
88
- const all = ({
57
+ }) {
58
+ const t0 = yield* Clock.currentTimeNanos;
59
+ const result = yield* program(input);
60
+ const t1 = yield* Clock.currentTimeNanos;
61
+ return TestResult.make({
62
+ ordering,
63
+ input,
64
+ result,
65
+ expected,
66
+ tags: tags ?? [],
67
+ label: classify(result, expected),
68
+ timeMillis: Number(t1 - t0) / 1_000_000
69
+ });
70
+ });
71
+ export const all = ({
89
72
  testCases,
90
73
  program,
91
- classify = (0, _Classify2.makeClassify)({
92
- isEqual: _Classify2.defaultIsEqual
74
+ classify = makeClassify({
75
+ isEqual: defaultIsEqual
93
76
  })
94
77
  }, {
95
78
  concurrency
96
79
  } = {
97
80
  concurrency: 1
98
81
  }) => {
99
- const total = Array.isArray(testCases) ? testCases.length : undefined;
100
- const testCases$ = Array.isArray(testCases) ? _effect.Stream.fromIterable(testCases) : testCases;
101
- return (0, _effect.pipe)(testCases$, _effect.Stream.zipWithIndex, _effect.Stream.map(([testCase, ordering]) => ({
82
+ const total = Stream.isStream(testCases) ? undefined : testCases.length;
83
+ const testCases$ = Stream.isStream(testCases) ? testCases : Stream.fromIterable(testCases);
84
+ return pipe(testCases$, Stream.zipWithIndex, Stream.map(([testCase, ordering]) => ({
102
85
  ...testCase,
103
86
  ordering
104
- })), _effect.Stream.mapEffect(testCase => test({
87
+ })), Stream.mapEffect(testCase => test({
105
88
  testCase,
106
89
  program,
107
90
  classify
108
91
  }), {
109
92
  concurrency,
110
93
  unordered: false
111
- }), _effect.Stream.tap(testResult => {
94
+ }), Stream.tap(testResult => {
112
95
  const i = testResult.ordering + 1;
113
96
  const stride = total === undefined ? 10 : Math.max(Math.floor(total * 0.05), 10);
114
97
  const isMilestone = i === 1 || i % stride === 0 || total !== undefined && i === total;
115
- if (!isMilestone) return _effect.Effect.void;
116
- return _effect.Effect.logDebug(total === undefined ? `progress ${i}` : `progress ${i}/${total}`);
98
+ if (!isMilestone) return Effect.void;
99
+ return Effect.logDebug(total === undefined ? `progress ${i}` : `progress ${i}/${total}`);
117
100
  }));
118
101
  };
119
- exports.all = all;
120
102
  const emptyAcc = () => ({
121
103
  testResultsByTestCaseHash: {},
122
104
  testCaseHashes: [],
@@ -129,11 +111,9 @@ const emptyAcc = () => ({
129
111
  timeMin: Number.POSITIVE_INFINITY,
130
112
  timeMax: Number.NEGATIVE_INFINITY
131
113
  });
132
- const runCollectRecord = testRun => testResults$ => testResults$.pipe(_effect.Stream.run(
133
- // Sink.foldLeft threads the accumulator by reference within a
134
- // single fiber, so mutating in place is safe and avoids
135
- // rebuilding the object per element.
136
- _effect.Sink.foldLeft(emptyAcc(), (acc, r) => {
114
+ export const runCollectRecord = testRun => testResults$ => testResults$.pipe(Stream.run(
115
+ // Each run owns its accumulator, so updates can happen in place.
116
+ Sink.reduce(emptyAcc, (acc, r) => {
137
117
  acc.testResultsByTestCaseHash[r.hashTestCase] = r;
138
118
  acc.testCaseHashes.push(r.hashTestCase);
139
119
  acc.times.push(r.timeMillis);
@@ -142,42 +122,43 @@ _effect.Sink.foldLeft(emptyAcc(), (acc, r) => {
142
122
  if (r.timeMillis > acc.timeMax) acc.timeMax = r.timeMillis;
143
123
  if (r.label === 'TP') acc.TP++;else if (r.label === 'TN') acc.TN++;else if (r.label === 'FP') acc.FP++;else acc.FN++;
144
124
  return acc;
145
- })), _effect.Effect.map(acc => {
125
+ })), Effect.map(acc => {
146
126
  const total = acc.testCaseHashes.length;
147
127
  const hasTimes = acc.times.length > 0;
148
- const stats = new _Classify.Stats({
128
+ const stats = new Stats({
149
129
  TP: acc.TP,
150
130
  TN: acc.TN,
151
131
  FP: acc.FP,
152
132
  FN: acc.FN,
153
133
  total,
154
- precision: (0, _Classify2.precision)({
134
+ precision: precision({
155
135
  TP: acc.TP,
156
136
  FP: acc.FP
157
137
  }),
158
- recall: (0, _Classify2.recall)({
138
+ recall: recall({
159
139
  TP: acc.TP,
160
140
  FN: acc.FN
161
141
  }),
162
- timeMean: hasTimes ? _effect.Option.some(acc.timeSum / acc.times.length) : _effect.Option.none(),
163
- timeMin: hasTimes ? _effect.Option.some(acc.timeMin) : _effect.Option.none(),
164
- timeMax: hasTimes ? _effect.Option.some(acc.timeMax) : _effect.Option.none(),
165
- timeMedian: (0, _Classify2.median)(acc.times)
142
+ timeMean: hasTimes ? Option.some(acc.timeSum / acc.times.length) : Option.none(),
143
+ timeMin: hasTimes ? Option.some(acc.timeMin) : Option.none(),
144
+ timeMax: hasTimes ? Option.some(acc.timeMax) : Option.none(),
145
+ timeMedian: median(acc.times)
166
146
  });
167
147
  return {
168
- ...testRun,
148
+ id: testRun.id,
149
+ name: testRun.name,
150
+ hash: testRun.hash,
169
151
  testResultsByTestCaseHash: acc.testResultsByTestCaseHash,
170
152
  testCaseHashes: acc.testCaseHashes,
171
153
  stats
172
154
  };
173
155
  }));
174
- exports.runCollectRecord = runCollectRecord;
175
- const diff = ({
156
+ export const diff = ({
176
157
  testRun: {
177
158
  stats
178
159
  },
179
160
  previousTestRun
180
- }) => previousTestRun.pipe(_effect.Option.match({
161
+ }) => previousTestRun.pipe(Option.match({
181
162
  onNone: () => stats,
182
163
  onSome: ({
183
164
  stats: previousStats
@@ -190,5 +171,4 @@ const diff = ({
190
171
  recall: stats.recall - previousStats.recall
191
172
  })
192
173
  }));
193
- exports.diff = diff;
194
174
  //# sourceMappingURL=Test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Test.js","names":["_nodeCrypto","require","_nodePerf_hooks","_effect","_Classify","_Classify2","makeSha256","input","createHash","update","JSON","stringify","digest","exports","TestResult","make","args","label","result","expected","id","hashTestCase","TestResultSchema","Schema","Struct","String","ordering","Int","Unknown","LabelSchema","tags","Array","timeMillis","Number","TestRunResults","emptyFromTestRun","testResultsByTestCaseHash","testCaseHashes","stats","Stats","empty","test","testCase","program","classify","t0","performance","now","pipe","Effect","map","t1","all","testCases","makeClassify","isEqual","defaultIsEqual","concurrency","total","isArray","length","undefined","testCases$","Stream","fromIterable","zipWithIndex","mapEffect","unordered","tap","testResult","i","stride","Math","max","floor","isMilestone","void","logDebug","emptyAcc","times","TP","TN","FP","FN","timeSum","timeMin","POSITIVE_INFINITY","timeMax","NEGATIVE_INFINITY","runCollectRecord","testRun","testResults$","run","Sink","foldLeft","acc","r","push","hasTimes","precision","recall","timeMean","Option","some","none","timeMedian","median","diff","previousTestRun","match","onNone","onSome","previousStats"],"sources":["../../../src/internal/Test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Test.js","names":["createHash","Clock","Effect","Option","pipe","Schema","Sink","Stream","Stats","defaultIsEqual","LabelSchema","makeClassify","median","precision","recall","makeSha256","input","update","JSON","stringify","digest","TestResult","make","args","label","result","expected","id","hashTestCase","TestResultSchema","Struct","String","ordering","Int","Unknown","tags","Array","timeMillis","Finite","test","fnUntraced","testCase","program","classify","t0","currentTimeNanos","t1","Number","all","testCases","isEqual","concurrency","total","isStream","undefined","length","testCases$","fromIterable","zipWithIndex","map","mapEffect","unordered","tap","testResult","i","stride","Math","max","floor","isMilestone","void","logDebug","emptyAcc","testResultsByTestCaseHash","testCaseHashes","times","TP","TN","FP","FN","timeSum","timeMin","POSITIVE_INFINITY","timeMax","NEGATIVE_INFINITY","runCollectRecord","testRun","testResults$","run","reduce","acc","r","push","hasTimes","stats","timeMean","some","none","timeMedian","name","hash","diff","previousTestRun","match","onNone","onSome","previousStats"],"sources":["../../../src/internal/Test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}