ppef 1.0.1 → 1.2.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 (295) hide show
  1. package/README.md +76 -125
  2. package/bin/ppef.mjs +20 -0
  3. package/dist/__tests__/cli/evaluate-command.integration.test.d.ts +8 -0
  4. package/dist/__tests__/cli/evaluate-command.integration.test.d.ts.map +1 -0
  5. package/dist/__tests__/cli/evaluate-command.integration.test.js +308 -0
  6. package/dist/__tests__/cli/evaluate-command.integration.test.js.map +1 -0
  7. package/dist/__tests__/evaluators/claims-evaluator.unit.test.d.ts +8 -0
  8. package/dist/__tests__/evaluators/claims-evaluator.unit.test.d.ts.map +1 -0
  9. package/dist/__tests__/evaluators/claims-evaluator.unit.test.js +405 -0
  10. package/dist/__tests__/evaluators/claims-evaluator.unit.test.js.map +1 -0
  11. package/dist/__tests__/evaluators/metrics-evaluator.unit.test.d.ts +8 -0
  12. package/dist/__tests__/evaluators/metrics-evaluator.unit.test.d.ts.map +1 -0
  13. package/dist/__tests__/evaluators/metrics-evaluator.unit.test.js +424 -0
  14. package/dist/__tests__/evaluators/metrics-evaluator.unit.test.js.map +1 -0
  15. package/dist/__tests__/evaluators/registry.unit.test.d.ts +7 -0
  16. package/dist/__tests__/evaluators/registry.unit.test.d.ts.map +1 -0
  17. package/dist/__tests__/evaluators/registry.unit.test.js +173 -0
  18. package/dist/__tests__/evaluators/registry.unit.test.js.map +1 -0
  19. package/dist/__tests__/evaluators/robustness-evaluator.unit.test.d.ts +8 -0
  20. package/dist/__tests__/evaluators/robustness-evaluator.unit.test.d.ts.map +1 -0
  21. package/dist/__tests__/evaluators/robustness-evaluator.unit.test.js +260 -0
  22. package/dist/__tests__/evaluators/robustness-evaluator.unit.test.js.map +1 -0
  23. package/dist/__tests__/framework-pipeline.integration.test.js +49 -20
  24. package/dist/__tests__/framework-pipeline.integration.test.js.map +1 -1
  25. package/dist/__tests__/index-exports.unit.test.d.ts +8 -0
  26. package/dist/__tests__/index-exports.unit.test.d.ts.map +1 -0
  27. package/dist/__tests__/index-exports.unit.test.js +124 -0
  28. package/dist/__tests__/index-exports.unit.test.js.map +1 -0
  29. package/dist/__tests__/registry-executor.integration.test.js +12 -9
  30. package/dist/__tests__/registry-executor.integration.test.js.map +1 -1
  31. package/dist/aggregation/__tests__/aggregators.unit.test.d.ts +7 -0
  32. package/dist/aggregation/__tests__/aggregators.unit.test.d.ts.map +1 -0
  33. package/dist/aggregation/__tests__/aggregators.unit.test.js +350 -0
  34. package/dist/aggregation/__tests__/aggregators.unit.test.js.map +1 -0
  35. package/dist/aggregation/__tests__/pipeline.unit.test.d.ts +7 -0
  36. package/dist/aggregation/__tests__/pipeline.unit.test.d.ts.map +1 -0
  37. package/dist/aggregation/__tests__/pipeline.unit.test.js +213 -0
  38. package/dist/aggregation/__tests__/pipeline.unit.test.js.map +1 -0
  39. package/dist/aggregation/aggregators.d.ts +9 -0
  40. package/dist/aggregation/aggregators.d.ts.map +1 -1
  41. package/dist/aggregation/aggregators.js +1 -1
  42. package/dist/aggregation/aggregators.js.map +1 -1
  43. package/dist/aggregation/index.d.ts +1 -1
  44. package/dist/aggregation/index.d.ts.map +1 -1
  45. package/dist/aggregation/index.js +1 -1
  46. package/dist/aggregation/index.js.map +1 -1
  47. package/dist/aggregation/pipeline.d.ts.map +1 -1
  48. package/dist/aggregation/pipeline.js +40 -3
  49. package/dist/aggregation/pipeline.js.map +1 -1
  50. package/dist/claims/index.d.ts +6 -3
  51. package/dist/claims/index.d.ts.map +1 -1
  52. package/dist/claims/index.js +6 -3
  53. package/dist/claims/index.js.map +1 -1
  54. package/dist/cli/__tests__/aggregate.command.unit.test.d.ts +7 -0
  55. package/dist/cli/__tests__/aggregate.command.unit.test.d.ts.map +1 -0
  56. package/dist/cli/__tests__/aggregate.command.unit.test.js +399 -0
  57. package/dist/cli/__tests__/aggregate.command.unit.test.js.map +1 -0
  58. package/dist/cli/__tests__/binary-sut.integration.test.d.ts +8 -0
  59. package/dist/cli/__tests__/binary-sut.integration.test.d.ts.map +1 -0
  60. package/dist/cli/__tests__/binary-sut.integration.test.js +165 -0
  61. package/dist/cli/__tests__/binary-sut.integration.test.js.map +1 -0
  62. package/dist/cli/__tests__/commands.unit.test.d.ts +10 -0
  63. package/dist/cli/__tests__/commands.unit.test.d.ts.map +1 -0
  64. package/dist/cli/__tests__/commands.unit.test.js +217 -0
  65. package/dist/cli/__tests__/commands.unit.test.js.map +1 -0
  66. package/dist/cli/__tests__/config-loader.unit.test.d.ts +7 -0
  67. package/dist/cli/__tests__/config-loader.unit.test.d.ts.map +1 -0
  68. package/dist/cli/__tests__/config-loader.unit.test.js +611 -0
  69. package/dist/cli/__tests__/config-loader.unit.test.js.map +1 -0
  70. package/dist/cli/__tests__/index.unit.test.d.ts +10 -0
  71. package/dist/cli/__tests__/index.unit.test.d.ts.map +1 -0
  72. package/dist/cli/__tests__/index.unit.test.js +65 -0
  73. package/dist/cli/__tests__/index.unit.test.js.map +1 -0
  74. package/dist/cli/__tests__/logger.unit.test.d.ts +11 -0
  75. package/dist/cli/__tests__/logger.unit.test.d.ts.map +1 -0
  76. package/dist/cli/__tests__/logger.unit.test.js +180 -0
  77. package/dist/cli/__tests__/logger.unit.test.js.map +1 -0
  78. package/dist/cli/__tests__/module-loader.unit.test.d.ts +11 -0
  79. package/dist/cli/__tests__/module-loader.unit.test.d.ts.map +1 -0
  80. package/dist/cli/__tests__/module-loader.unit.test.js +262 -0
  81. package/dist/cli/__tests__/module-loader.unit.test.js.map +1 -0
  82. package/dist/cli/__tests__/output-writer.unit.test.d.ts +10 -0
  83. package/dist/cli/__tests__/output-writer.unit.test.d.ts.map +1 -0
  84. package/dist/cli/__tests__/output-writer.unit.test.js +216 -0
  85. package/dist/cli/__tests__/output-writer.unit.test.js.map +1 -0
  86. package/dist/cli/__tests__/plan.command.unit.test.d.ts +7 -0
  87. package/dist/cli/__tests__/plan.command.unit.test.d.ts.map +1 -0
  88. package/dist/cli/__tests__/plan.command.unit.test.js +289 -0
  89. package/dist/cli/__tests__/plan.command.unit.test.js.map +1 -0
  90. package/dist/cli/__tests__/run.command.unit.test.d.ts +7 -0
  91. package/dist/cli/__tests__/run.command.unit.test.d.ts.map +1 -0
  92. package/dist/cli/__tests__/run.command.unit.test.js +422 -0
  93. package/dist/cli/__tests__/run.command.unit.test.js.map +1 -0
  94. package/dist/cli/__tests__/validate.command.unit.test.d.ts +7 -0
  95. package/dist/cli/__tests__/validate.command.unit.test.d.ts.map +1 -0
  96. package/dist/cli/__tests__/validate.command.unit.test.js +226 -0
  97. package/dist/cli/__tests__/validate.command.unit.test.js.map +1 -0
  98. package/dist/cli/command-deps.d.ts +137 -0
  99. package/dist/cli/command-deps.d.ts.map +1 -0
  100. package/dist/cli/command-deps.js +7 -0
  101. package/dist/cli/command-deps.js.map +1 -0
  102. package/dist/cli/commands/aggregate.d.ts +35 -0
  103. package/dist/cli/commands/aggregate.d.ts.map +1 -0
  104. package/dist/cli/commands/aggregate.js +124 -0
  105. package/dist/cli/commands/aggregate.js.map +1 -0
  106. package/dist/cli/commands/evaluate.d.ts +41 -0
  107. package/dist/cli/commands/evaluate.d.ts.map +1 -0
  108. package/dist/cli/commands/evaluate.js +287 -0
  109. package/dist/cli/commands/evaluate.js.map +1 -0
  110. package/dist/cli/commands/plan.d.ts +36 -0
  111. package/dist/cli/commands/plan.d.ts.map +1 -0
  112. package/dist/cli/commands/plan.js +109 -0
  113. package/dist/cli/commands/plan.js.map +1 -0
  114. package/dist/cli/commands/run.d.ts +33 -0
  115. package/dist/cli/commands/run.d.ts.map +1 -0
  116. package/dist/cli/commands/run.js +277 -0
  117. package/dist/cli/commands/run.js.map +1 -0
  118. package/dist/cli/commands/validate.d.ts +27 -0
  119. package/dist/cli/commands/validate.d.ts.map +1 -0
  120. package/dist/cli/commands/validate.js +88 -0
  121. package/dist/cli/commands/validate.js.map +1 -0
  122. package/dist/cli/config-loader.d.ts +30 -0
  123. package/dist/cli/config-loader.d.ts.map +1 -0
  124. package/dist/cli/config-loader.js +181 -0
  125. package/dist/cli/config-loader.js.map +1 -0
  126. package/dist/cli/index.d.ts +27 -0
  127. package/dist/cli/index.d.ts.map +1 -0
  128. package/dist/cli/index.js +60 -0
  129. package/dist/cli/index.js.map +1 -0
  130. package/dist/cli/logger.d.ts +75 -0
  131. package/dist/cli/logger.d.ts.map +1 -0
  132. package/dist/cli/logger.js +131 -0
  133. package/dist/cli/logger.js.map +1 -0
  134. package/dist/cli/module-loader.d.ts +68 -0
  135. package/dist/cli/module-loader.d.ts.map +1 -0
  136. package/dist/cli/module-loader.js +134 -0
  137. package/dist/cli/module-loader.js.map +1 -0
  138. package/dist/cli/output-writer.d.ts +51 -0
  139. package/dist/cli/output-writer.d.ts.map +1 -0
  140. package/dist/cli/output-writer.js +65 -0
  141. package/dist/cli/output-writer.js.map +1 -0
  142. package/dist/cli/types.d.ts +193 -0
  143. package/dist/cli/types.d.ts.map +1 -0
  144. package/dist/cli/types.js +7 -0
  145. package/dist/cli/types.js.map +1 -0
  146. package/dist/collector/__tests__/result-collector.unit.test.d.ts +7 -0
  147. package/dist/collector/__tests__/result-collector.unit.test.d.ts.map +1 -0
  148. package/dist/collector/__tests__/result-collector.unit.test.js +1021 -0
  149. package/dist/collector/__tests__/result-collector.unit.test.js.map +1 -0
  150. package/dist/collector/__tests__/schema.unit.test.d.ts +7 -0
  151. package/dist/collector/__tests__/schema.unit.test.d.ts.map +1 -0
  152. package/dist/collector/__tests__/schema.unit.test.js +360 -0
  153. package/dist/collector/__tests__/schema.unit.test.js.map +1 -0
  154. package/dist/evaluators/claims-evaluator.d.ts +87 -0
  155. package/dist/evaluators/claims-evaluator.d.ts.map +1 -0
  156. package/dist/evaluators/claims-evaluator.js +289 -0
  157. package/dist/evaluators/claims-evaluator.js.map +1 -0
  158. package/dist/evaluators/exploratory-evaluator.d.ts +136 -0
  159. package/dist/evaluators/exploratory-evaluator.d.ts.map +1 -0
  160. package/dist/evaluators/exploratory-evaluator.js +545 -0
  161. package/dist/evaluators/exploratory-evaluator.js.map +1 -0
  162. package/dist/evaluators/index.d.ts +13 -0
  163. package/dist/evaluators/index.d.ts.map +1 -0
  164. package/dist/evaluators/index.js +14 -0
  165. package/dist/evaluators/index.js.map +1 -0
  166. package/dist/evaluators/metrics-evaluator.d.ts +114 -0
  167. package/dist/evaluators/metrics-evaluator.d.ts.map +1 -0
  168. package/dist/evaluators/metrics-evaluator.js +433 -0
  169. package/dist/evaluators/metrics-evaluator.js.map +1 -0
  170. package/dist/evaluators/registry.d.ts +106 -0
  171. package/dist/evaluators/registry.d.ts.map +1 -0
  172. package/dist/evaluators/registry.js +148 -0
  173. package/dist/evaluators/registry.js.map +1 -0
  174. package/dist/evaluators/robustness-evaluator.d.ts +57 -0
  175. package/dist/evaluators/robustness-evaluator.d.ts.map +1 -0
  176. package/dist/evaluators/robustness-evaluator.js +186 -0
  177. package/dist/evaluators/robustness-evaluator.js.map +1 -0
  178. package/dist/executor/__tests__/binary-sut.unit.test.d.ts +8 -0
  179. package/dist/executor/__tests__/binary-sut.unit.test.d.ts.map +1 -0
  180. package/dist/executor/__tests__/binary-sut.unit.test.js +313 -0
  181. package/dist/executor/__tests__/binary-sut.unit.test.js.map +1 -0
  182. package/dist/executor/__tests__/checkpoint-manager.unit.test.js +83 -1
  183. package/dist/executor/__tests__/checkpoint-manager.unit.test.js.map +1 -1
  184. package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts +3 -6
  185. package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts.map +1 -1
  186. package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js +428 -159
  187. package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js.map +1 -1
  188. package/dist/executor/__tests__/checkpoint-storage.unit.test.js +148 -1
  189. package/dist/executor/__tests__/checkpoint-storage.unit.test.js.map +1 -1
  190. package/dist/executor/__tests__/executor.unit.test.js +123 -8
  191. package/dist/executor/__tests__/executor.unit.test.js.map +1 -1
  192. package/dist/executor/__tests__/memory-monitor.unit.test.d.ts +7 -0
  193. package/dist/executor/__tests__/memory-monitor.unit.test.d.ts.map +1 -0
  194. package/dist/executor/__tests__/memory-monitor.unit.test.js +285 -0
  195. package/dist/executor/__tests__/memory-monitor.unit.test.js.map +1 -0
  196. package/dist/executor/__tests__/parallel-executor.unit.test.d.ts +2 -1
  197. package/dist/executor/__tests__/parallel-executor.unit.test.d.ts.map +1 -1
  198. package/dist/executor/__tests__/parallel-executor.unit.test.js +426 -156
  199. package/dist/executor/__tests__/parallel-executor.unit.test.js.map +1 -1
  200. package/dist/executor/__tests__/resource-calculator.unit.test.d.ts +10 -0
  201. package/dist/executor/__tests__/resource-calculator.unit.test.d.ts.map +1 -0
  202. package/dist/executor/__tests__/resource-calculator.unit.test.js +104 -0
  203. package/dist/executor/__tests__/resource-calculator.unit.test.js.map +1 -0
  204. package/dist/executor/__tests__/run-id.unit.test.d.ts +8 -0
  205. package/dist/executor/__tests__/run-id.unit.test.d.ts.map +1 -0
  206. package/dist/executor/__tests__/run-id.unit.test.js +156 -0
  207. package/dist/executor/__tests__/run-id.unit.test.js.map +1 -0
  208. package/dist/executor/__tests__/worker-entry.integration.test.d.ts +24 -0
  209. package/dist/executor/__tests__/worker-entry.integration.test.d.ts.map +1 -0
  210. package/dist/executor/__tests__/worker-entry.integration.test.js +82 -0
  211. package/dist/executor/__tests__/worker-entry.integration.test.js.map +1 -0
  212. package/dist/executor/__tests__/worker-entry.unit.test.d.ts +7 -0
  213. package/dist/executor/__tests__/worker-entry.unit.test.d.ts.map +1 -0
  214. package/dist/executor/__tests__/worker-entry.unit.test.js +364 -0
  215. package/dist/executor/__tests__/worker-entry.unit.test.js.map +1 -0
  216. package/dist/executor/__tests__/worker-threads-executor.unit.test.d.ts +8 -0
  217. package/dist/executor/__tests__/worker-threads-executor.unit.test.d.ts.map +1 -0
  218. package/dist/executor/__tests__/worker-threads-executor.unit.test.js +276 -0
  219. package/dist/executor/__tests__/worker-threads-executor.unit.test.js.map +1 -0
  220. package/dist/executor/binary-sut.d.ts +105 -0
  221. package/dist/executor/binary-sut.d.ts.map +1 -0
  222. package/dist/executor/binary-sut.js +174 -0
  223. package/dist/executor/binary-sut.js.map +1 -0
  224. package/dist/executor/checkpoint-storage.d.ts.map +1 -1
  225. package/dist/executor/checkpoint-storage.js +6 -4
  226. package/dist/executor/checkpoint-storage.js.map +1 -1
  227. package/dist/executor/executor.d.ts +28 -0
  228. package/dist/executor/executor.d.ts.map +1 -1
  229. package/dist/executor/executor.js +85 -24
  230. package/dist/executor/executor.js.map +1 -1
  231. package/dist/executor/index.d.ts +4 -0
  232. package/dist/executor/index.d.ts.map +1 -1
  233. package/dist/executor/index.js +4 -0
  234. package/dist/executor/index.js.map +1 -1
  235. package/dist/executor/parallel-executor.d.ts +186 -0
  236. package/dist/executor/parallel-executor.d.ts.map +1 -1
  237. package/dist/executor/parallel-executor.js +218 -83
  238. package/dist/executor/parallel-executor.js.map +1 -1
  239. package/dist/executor/resource-calculator.d.ts +49 -0
  240. package/dist/executor/resource-calculator.d.ts.map +1 -0
  241. package/dist/executor/resource-calculator.js +129 -0
  242. package/dist/executor/resource-calculator.js.map +1 -0
  243. package/dist/executor/run-id.d.ts.map +1 -1
  244. package/dist/executor/run-id.js +8 -1
  245. package/dist/executor/run-id.js.map +1 -1
  246. package/dist/executor/worker-entry.d.ts +2 -0
  247. package/dist/executor/worker-entry.d.ts.map +1 -1
  248. package/dist/executor/worker-entry.js +46 -55
  249. package/dist/executor/worker-entry.js.map +1 -1
  250. package/dist/executor/worker-executor.d.ts +257 -0
  251. package/dist/executor/worker-executor.d.ts.map +1 -0
  252. package/dist/executor/worker-executor.js +308 -0
  253. package/dist/executor/worker-executor.js.map +1 -0
  254. package/dist/executor/worker-threads-executor.d.ts +245 -0
  255. package/dist/executor/worker-threads-executor.d.ts.map +1 -0
  256. package/dist/executor/worker-threads-executor.js +332 -0
  257. package/dist/executor/worker-threads-executor.js.map +1 -0
  258. package/dist/index.d.ts +1 -0
  259. package/dist/index.d.ts.map +1 -1
  260. package/dist/index.js +4 -2
  261. package/dist/index.js.map +1 -1
  262. package/dist/renderers/latex-renderer.d.ts +60 -0
  263. package/dist/renderers/latex-renderer.d.ts.map +1 -1
  264. package/dist/renderers/latex-renderer.js +299 -0
  265. package/dist/renderers/latex-renderer.js.map +1 -1
  266. package/dist/renderers/types.d.ts +9 -0
  267. package/dist/renderers/types.d.ts.map +1 -1
  268. package/dist/renderers/types.js.map +1 -1
  269. package/dist/robustness/__tests__/perturbations.unit.test.d.ts +11 -0
  270. package/dist/robustness/__tests__/perturbations.unit.test.d.ts.map +1 -0
  271. package/dist/robustness/__tests__/perturbations.unit.test.js +284 -0
  272. package/dist/robustness/__tests__/perturbations.unit.test.js.map +1 -0
  273. package/dist/robustness/index.d.ts +5 -2
  274. package/dist/robustness/index.d.ts.map +1 -1
  275. package/dist/robustness/index.js +4 -2
  276. package/dist/robustness/index.js.map +1 -1
  277. package/dist/statistical/__tests__/mann-whitney-u.unit.test.d.ts +7 -0
  278. package/dist/statistical/__tests__/mann-whitney-u.unit.test.d.ts.map +1 -0
  279. package/dist/statistical/__tests__/mann-whitney-u.unit.test.js +185 -0
  280. package/dist/statistical/__tests__/mann-whitney-u.unit.test.js.map +1 -0
  281. package/dist/types/evaluator.d.ts +449 -0
  282. package/dist/types/evaluator.d.ts.map +1 -0
  283. package/dist/types/evaluator.js +9 -0
  284. package/dist/types/evaluator.js.map +1 -0
  285. package/dist/types/result.d.ts +2 -0
  286. package/dist/types/result.d.ts.map +1 -1
  287. package/package.json +8 -1
  288. package/dist/claims/evaluator.d.ts +0 -33
  289. package/dist/claims/evaluator.d.ts.map +0 -1
  290. package/dist/claims/evaluator.js +0 -174
  291. package/dist/claims/evaluator.js.map +0 -1
  292. package/dist/robustness/analyzer.d.ts +0 -61
  293. package/dist/robustness/analyzer.d.ts.map +0 -1
  294. package/dist/robustness/analyzer.js +0 -191
  295. package/dist/robustness/analyzer.js.map +0 -1
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Unit tests for Robustness Evaluator
3
+ *
4
+ * Tests the robustness evaluator functionality including variance analysis
5
+ * under perturbations.
6
+ */
7
+ import { describe, it } from "node:test";
8
+ import { strict as assert } from "node:assert";
9
+ import { RobustnessEvaluator } from "../../evaluators/robustness-evaluator.js";
10
+ import { createMockResult } from "../test-helpers.js";
11
+ /**
12
+ * Test helpers
13
+ */
14
+ function createMockResults(sut, metric, values) {
15
+ return values.map((value) => createMockResult({
16
+ run: {
17
+ runId: `run-${values.indexOf(value)}`,
18
+ sut,
19
+ sutRole: "primary",
20
+ caseId: `case-${values.indexOf(value)}`,
21
+ caseClass: undefined,
22
+ },
23
+ metrics: {
24
+ numeric: { [metric]: value },
25
+ },
26
+ }));
27
+ }
28
+ function createBaseConfig(overrides) {
29
+ return {
30
+ metrics: ["accuracy"],
31
+ perturbations: ["noise"],
32
+ ...overrides,
33
+ };
34
+ }
35
+ describe("RobustnessEvaluator", () => {
36
+ describe("validateConfig", () => {
37
+ const evaluator = new RobustnessEvaluator();
38
+ it("should validate config with required fields", () => {
39
+ const config = createBaseConfig();
40
+ const result = evaluator.validateConfig(config);
41
+ assert.equal(result.valid, true);
42
+ });
43
+ it("should invalidate when metrics is not an array", () => {
44
+ const config = {
45
+ metrics: "not-an-array",
46
+ perturbations: [],
47
+ };
48
+ const result = evaluator.validateConfig(config);
49
+ assert.equal(result.valid, false);
50
+ assert.ok(result.errors?.some((e) => e.includes("metrics")));
51
+ });
52
+ it("should invalidate when perturbations is not an array", () => {
53
+ const config = {
54
+ metrics: [],
55
+ perturbations: "not-an-array",
56
+ };
57
+ const result = evaluator.validateConfig(config);
58
+ assert.equal(result.valid, false);
59
+ assert.ok(result.errors?.some((e) => e.includes("perturbations")));
60
+ });
61
+ it("should invalidate when metrics is empty", () => {
62
+ const config = createBaseConfig({ metrics: [] });
63
+ const result = evaluator.validateConfig(config);
64
+ assert.equal(result.valid, false);
65
+ assert.ok(result.errors?.some((e) => e.includes("metrics")));
66
+ });
67
+ it("should invalidate when perturbations is empty", () => {
68
+ const config = createBaseConfig({ perturbations: [] });
69
+ const result = evaluator.validateConfig(config);
70
+ assert.equal(result.valid, false);
71
+ assert.ok(result.errors?.some((e) => e.includes("perturbations")));
72
+ });
73
+ it("should validate config with intensity levels", () => {
74
+ const config = createBaseConfig({
75
+ intensityLevels: [0.1, 0.5, 1.0],
76
+ });
77
+ const result = evaluator.validateConfig(config);
78
+ assert.equal(result.valid, true);
79
+ });
80
+ it("should validate config with runs per level", () => {
81
+ const config = createBaseConfig({
82
+ runsPerLevel: 10,
83
+ });
84
+ const result = evaluator.validateConfig(config);
85
+ assert.equal(result.valid, true);
86
+ });
87
+ });
88
+ describe("evaluate", () => {
89
+ const evaluator = new RobustnessEvaluator();
90
+ it("should evaluate variance across perturbations", () => {
91
+ const config = createBaseConfig({
92
+ metrics: ["accuracy"],
93
+ perturbations: ["noise"],
94
+ });
95
+ // Create results for baseline and perturbed runs
96
+ const results = [
97
+ createMockResult({
98
+ run: {
99
+ runId: "run-0",
100
+ sut: "test-sut",
101
+ sutRole: "primary",
102
+ caseId: "case-1",
103
+ caseClass: undefined,
104
+ },
105
+ metrics: { numeric: { accuracy: 0.9 } },
106
+ }),
107
+ createMockResult({
108
+ run: {
109
+ runId: "run-1",
110
+ sut: "test-sut",
111
+ sutRole: "primary",
112
+ caseId: "case-1-noise-0.1",
113
+ caseClass: undefined,
114
+ },
115
+ metrics: { numeric: { accuracy: 0.85 } },
116
+ }),
117
+ createMockResult({
118
+ run: {
119
+ runId: "run-2",
120
+ sut: "test-sut",
121
+ sutRole: "primary",
122
+ caseId: "case-1-noise-0.2",
123
+ caseClass: undefined,
124
+ },
125
+ metrics: { numeric: { accuracy: 0.88 } },
126
+ }),
127
+ ];
128
+ const output = evaluator.evaluate(config, results);
129
+ assert.equal(output.type, "robustness");
130
+ assert.equal(output.data.version, "1.0.0");
131
+ assert.ok(output.data.results.length > 0);
132
+ });
133
+ it("should handle multiple SUTs", () => {
134
+ const config = createBaseConfig({
135
+ metrics: ["accuracy"],
136
+ perturbations: ["noise"],
137
+ });
138
+ const results = [
139
+ ...createMockResults("sut-1", "accuracy", [0.9, 0.85, 0.88]),
140
+ ...createMockResults("sut-2", "accuracy", [0.8, 0.78, 0.82]),
141
+ ];
142
+ const output = evaluator.evaluate(config, results);
143
+ assert.equal(output.type, "robustness");
144
+ assert.ok(output.data.results.length >= 2);
145
+ });
146
+ it("should handle multiple metrics", () => {
147
+ const config = createBaseConfig({
148
+ metrics: ["accuracy", "precision"],
149
+ perturbations: ["noise"],
150
+ });
151
+ const results = [
152
+ ...createMockResults("test-sut", "accuracy", [0.9, 0.85, 0.88]),
153
+ ...createMockResults("test-sut", "precision", [0.85, 0.8, 0.83]),
154
+ ];
155
+ const output = evaluator.evaluate(config, results);
156
+ assert.equal(output.type, "robustness");
157
+ assert.ok(output.data.results.length > 0);
158
+ });
159
+ it("should compute statistics for each perturbation", () => {
160
+ const config = createBaseConfig({
161
+ metrics: ["accuracy"],
162
+ perturbations: ["noise", "blur"],
163
+ });
164
+ const results = [
165
+ // Baseline
166
+ ...createMockResults("test-sut", "accuracy", [0.9]),
167
+ // Noise perturbation
168
+ ...createMockResults("test-sut", "accuracy", [0.85, 0.87, 0.86]),
169
+ // Blur perturbation
170
+ ...createMockResults("test-sut", "accuracy", [0.82, 0.83, 0.84]),
171
+ ];
172
+ const output = evaluator.evaluate(config, results);
173
+ assert.equal(output.type, "robustness");
174
+ const result = output.data.results[0];
175
+ assert.ok(result);
176
+ assert.ok(result.perturbation.length >= 2);
177
+ });
178
+ it("should use intensity levels when provided", () => {
179
+ const config = createBaseConfig({
180
+ intensityLevels: [0.1, 0.5, 1.0],
181
+ });
182
+ const results = [
183
+ ...createMockResults("test-sut", "accuracy", [0.9]),
184
+ ...createMockResults("test-sut", "accuracy", [0.88, 0.85, 0.82]),
185
+ ];
186
+ const output = evaluator.evaluate(config, results);
187
+ assert.equal(output.type, "robustness");
188
+ assert.ok(output.data.config.intensityLevels);
189
+ assert.deepEqual(output.data.config.intensityLevels, [0.1, 0.5, 1.0]);
190
+ });
191
+ it("should compute variance and coefficient of variation", () => {
192
+ const config = createBaseConfig();
193
+ // Create results with perturbation marked in config
194
+ const results = [
195
+ // Baseline (no perturbation)
196
+ createMockResult({
197
+ run: {
198
+ runId: "run-0",
199
+ sut: "test-sut",
200
+ sutRole: "primary",
201
+ caseId: "case-1",
202
+ caseClass: undefined,
203
+ },
204
+ metrics: { numeric: { accuracy: 0.9 } },
205
+ }),
206
+ // Perturbed results
207
+ ...createMockResults("test-sut", "accuracy", [0.85, 0.88, 0.87, 0.86]).map((r) => ({
208
+ ...r,
209
+ run: { ...r.run, config: { perturbation: "noise" } },
210
+ })),
211
+ ];
212
+ const output = evaluator.evaluate(config, results);
213
+ const result = output.data.results[0];
214
+ assert.ok(result);
215
+ assert.equal(result.perturbation, "noise");
216
+ assert.equal(result.metric, "accuracy");
217
+ assert.equal(result.sut, "test-sut");
218
+ // Check robustness metrics
219
+ const { robustness } = result;
220
+ assert.ok(typeof robustness.varianceUnderPerturbation === "number");
221
+ assert.ok(typeof robustness.stdUnderPerturbation === "number");
222
+ assert.ok(typeof robustness.coefficientOfVariation === "number");
223
+ // Values should be valid (not NaN) since we have perturbed results
224
+ assert.ok(!Number.isNaN(robustness.varianceUnderPerturbation));
225
+ assert.ok(!Number.isNaN(robustness.stdUnderPerturbation));
226
+ assert.ok(!Number.isNaN(robustness.coefficientOfVariation));
227
+ });
228
+ });
229
+ describe("summarize", () => {
230
+ const evaluator = new RobustnessEvaluator();
231
+ it("should create summary from output", () => {
232
+ const config = createBaseConfig();
233
+ const results = createMockResults("test-sut", "accuracy", [0.9, 0.85, 0.88]).map((r) => ({
234
+ ...r,
235
+ run: { ...r.run, config: { perturbation: "noise" } },
236
+ }));
237
+ const output = evaluator.evaluate(config, results);
238
+ const summary = evaluator.summarize(output);
239
+ assert.equal(summary.total, 1); // 1 combination of SUT and metric
240
+ });
241
+ it("should count multiple SUT-metric combinations", () => {
242
+ const config = createBaseConfig({
243
+ metrics: ["accuracy", "precision"],
244
+ });
245
+ const results = [
246
+ ...createMockResults("sut-1", "accuracy", [0.9, 0.85]),
247
+ ...createMockResults("sut-1", "precision", [0.85, 0.8]),
248
+ ...createMockResults("sut-2", "accuracy", [0.8, 0.78]),
249
+ ].map((r) => ({
250
+ ...r,
251
+ run: { ...r.run, config: { perturbation: "noise" } },
252
+ }));
253
+ const output = evaluator.evaluate(config, results);
254
+ const summary = evaluator.summarize(output);
255
+ // Evaluator creates results for all combinations: 2 SUTs × 2 metrics = 4
256
+ assert.equal(summary.total, 4);
257
+ });
258
+ });
259
+ });
260
+ //# sourceMappingURL=robustness-evaluator.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robustness-evaluator.unit.test.js","sourceRoot":"","sources":["../../../src/__tests__/evaluators/robustness-evaluator.unit.test.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,12 @@
6
6
  import { describe, it } from "node:test";
7
7
  import { strict as assert } from "node:assert";
8
8
  import { aggregateResults } from "../aggregation/pipeline.js";
9
- import { createClaimSummary, evaluateClaims } from "../claims/evaluator.js";
9
+ import { ClaimsEvaluator } from "../evaluators/claims-evaluator.js";
10
10
  import { ResultCollector } from "../collector/result-collector.js";
11
11
  import { LaTeXRenderer } from "../renderers/latex-renderer.js";
12
12
  import { createMockResult } from "./test-helpers.js";
13
+ // Create a singleton evaluator instance for testing
14
+ const claimsEvaluator = new ClaimsEvaluator();
13
15
  describe("Framework Pipeline Integration", () => {
14
16
  /**
15
17
  * Create a realistic set of evaluation results for testing
@@ -109,8 +111,8 @@ describe("Framework Pipeline Integration", () => {
109
111
  // Find primary aggregate
110
112
  const dpAggregate = aggregates.find((a) => a.sut === "degree-prioritised-v1.0.0");
111
113
  assert.ok(dpAggregate);
112
- assert.ok(dpAggregate?.metrics["execution-time"]);
113
- assert.strictEqual(dpAggregate?.group.runCount, 10);
114
+ assert.ok(dpAggregate.metrics["execution-time"]);
115
+ assert.strictEqual(dpAggregate.group.runCount, 10);
114
116
  // Step 3: Define and evaluate claims
115
117
  const claims = [
116
118
  {
@@ -141,13 +143,20 @@ describe("Framework Pipeline Integration", () => {
141
143
  scope: "global",
142
144
  },
143
145
  ];
144
- const evaluations = evaluateClaims(claims, aggregates);
146
+ // Create evaluation context
147
+ const context = {
148
+ aggregates,
149
+ metadata: { source: "test" },
150
+ };
151
+ // Evaluate claims using the new evaluator API
152
+ const evalOutput = claimsEvaluator.evaluate({ claims }, context);
153
+ const evaluations = evalOutput.data.evaluations;
145
154
  assert.strictEqual(evaluations.length, 3);
146
- assert.ok(evaluations.every((e) => e.status === "satisfied" || e.status === "violated" || e.status === "inconclusive"));
147
- // Step 4: Create summary
148
- const summary = createClaimSummary(evaluations);
149
- assert.strictEqual(summary.summary.total, 3);
150
- assert.strictEqual(summary.summary.satisfied + summary.summary.violated + summary.summary.inconclusive, 3);
155
+ assert.ok(evaluations.every((e) => ["satisfied", "violated", "inconclusive"].includes(e.status)));
156
+ // Step 4: Summary is included in evaluation output
157
+ const summary = evalOutput.data.summary;
158
+ assert.strictEqual(summary.total, 3);
159
+ assert.strictEqual(summary.satisfied + summary.violated + summary.inconclusive, 3);
151
160
  // Step 5: Render
152
161
  const renderer = new LaTeXRenderer();
153
162
  const tableSpec = {
@@ -162,8 +171,8 @@ describe("Framework Pipeline Integration", () => {
162
171
  ],
163
172
  extractData: (aggs) => aggs.map((a) => ({
164
173
  method: a.sut.replace("-v1.0.0", ""),
165
- execTime: a.metrics["execution-time"]?.mean.toFixed(1),
166
- nodesExpanded: a.metrics["nodes-expanded"]?.mean.toFixed(0),
174
+ execTime: a.metrics["execution-time"].mean.toFixed(1),
175
+ nodesExpanded: a.metrics["nodes-expanded"].mean.toFixed(0),
167
176
  })),
168
177
  };
169
178
  const tableOutput = renderer.renderTable(aggregates, tableSpec);
@@ -237,15 +246,23 @@ describe("Framework Pipeline Integration", () => {
237
246
  scope: "global",
238
247
  },
239
248
  ];
240
- const evaluations = evaluateClaims(claims, aggregates);
249
+ // Evaluate claims using the new evaluator API
250
+ const context = {
251
+ aggregates,
252
+ metadata: { source: "test" },
253
+ };
254
+ const evalOutput = claimsEvaluator.evaluate({ claims }, context);
255
+ const evaluations = evalOutput.data.evaluations;
241
256
  // Both claims should be satisfied
242
257
  assert.strictEqual(evaluations.find((e) => e.claim.claimId === "SPEED")?.status, "satisfied");
243
258
  assert.strictEqual(evaluations.find((e) => e.claim.claimId === "QUALITY")?.status, "satisfied");
244
259
  // Evidence should show correct values
245
- const speedEvidence = evaluations.find((e) => e.claim.claimId === "SPEED")?.evidence;
246
- assert.strictEqual(speedEvidence?.primaryValue, 50);
247
- assert.strictEqual(speedEvidence?.baselineValue, 100);
248
- assert.strictEqual(speedEvidence?.delta, -50); // 50 - 100 = -50
260
+ const speedEvaluation = evaluations.find((e) => e.claim.claimId === "SPEED");
261
+ assert.ok(speedEvaluation);
262
+ const speedEvidence = speedEvaluation.evidence;
263
+ assert.strictEqual(speedEvidence.primaryValue, 50);
264
+ assert.strictEqual(speedEvidence.baselineValue, 100);
265
+ assert.strictEqual(speedEvidence.delta, -50); // 50 - 100 = -50
249
266
  });
250
267
  it("should properly serialize and deserialize through ResultCollector", () => {
251
268
  const collector = new ResultCollector();
@@ -282,7 +299,7 @@ describe("Framework Pipeline Integration", () => {
282
299
  ],
283
300
  extractData: (aggs) => aggs.map((a) => ({
284
301
  method: a.sut,
285
- time: a.metrics["execution-time"]?.mean.toFixed(1),
302
+ time: a.metrics["execution-time"].mean.toFixed(1),
286
303
  })),
287
304
  },
288
305
  {
@@ -296,7 +313,7 @@ describe("Framework Pipeline Integration", () => {
296
313
  ],
297
314
  extractData: (aggs) => aggs.map((a) => ({
298
315
  method: a.sut,
299
- diversity: a.metrics["path-diversity"]?.mean.toFixed(3),
316
+ diversity: a.metrics["path-diversity"].mean.toFixed(3),
300
317
  })),
301
318
  },
302
319
  ];
@@ -368,7 +385,13 @@ describe("Framework Pipeline Integration", () => {
368
385
  scope: "caseClass",
369
386
  scopeConstraints: { caseClass: "scale-free" },
370
387
  };
371
- const evaluations = evaluateClaims([scopedClaim], aggregates);
388
+ // Evaluate claims using the new evaluator API
389
+ const context = {
390
+ aggregates,
391
+ metadata: { source: "test" },
392
+ };
393
+ const evalOutput = claimsEvaluator.evaluate({ claims: [scopedClaim] }, context);
394
+ const evaluations = evalOutput.data.evaluations;
372
395
  assert.strictEqual(evaluations[0].status, "satisfied");
373
396
  });
374
397
  it("should detect violated claims correctly", () => {
@@ -405,7 +428,13 @@ describe("Framework Pipeline Integration", () => {
405
428
  direction: "less",
406
429
  scope: "global",
407
430
  };
408
- const evaluations = evaluateClaims([claim], aggregates);
431
+ // Evaluate claims using the new evaluator API
432
+ const context = {
433
+ aggregates,
434
+ metadata: { source: "test" },
435
+ };
436
+ const evalOutput = claimsEvaluator.evaluate({ claims: [claim] }, context);
437
+ const evaluations = evalOutput.data.evaluations;
409
438
  assert.strictEqual(evaluations[0].status, "violated");
410
439
  assert.ok(evaluations[0].evidence.delta > 0); // 150 - 100 = 50
411
440
  });
@@ -1 +1 @@
1
- {"version":3,"file":"framework-pipeline.integration.test.js","sourceRoot":"","sources":["../../src/__tests__/framework-pipeline.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"framework-pipeline.integration.test.js","sourceRoot":"","sources":["../../src/__tests__/framework-pipeline.integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Index Export Tests
3
+ *
4
+ * Verifies that all index.ts files can be imported and export expected symbols.
5
+ * These files have 0% coverage but are critical for the public API.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=index-exports.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-exports.unit.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/index-exports.unit.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Index Export Tests
3
+ *
4
+ * Verifies that all index.ts files can be imported and export expected symbols.
5
+ * These files have 0% coverage but are critical for the public API.
6
+ */
7
+ import assert from "node:assert/strict";
8
+ import { test, describe } from "node:test";
9
+ describe("index.ts export verification", () => {
10
+ test("src/aggregation/index.ts exports aggregators and pipeline", async () => {
11
+ // Import should not throw
12
+ const aggregationModule = await import("../aggregation/index.js");
13
+ // Verify exports exist
14
+ assert.ok(aggregationModule, "aggregation module should import");
15
+ assert.ok(typeof aggregationModule.computeComparison === "function", "should export computeComparison");
16
+ assert.ok(typeof aggregationModule.computeMaxSpeedup === "function", "should export computeMaxSpeedup");
17
+ assert.ok(typeof aggregationModule.computeRankings === "function", "should export computeRankings");
18
+ assert.ok(typeof aggregationModule.computeSpeedup === "function", "should export computeSpeedup");
19
+ assert.ok(typeof aggregationModule.computeSummaryStats === "function", "should export computeSummaryStats");
20
+ assert.ok(typeof aggregationModule.aggregateResults === "function", "should export aggregateResults");
21
+ assert.ok(typeof aggregationModule.createAggregationOutput === "function", "should export createAggregationOutput");
22
+ });
23
+ test("src/claims/index.ts exports types", async () => {
24
+ const claimsModule = await import("../claims/index.js");
25
+ assert.ok(claimsModule, "claims module should import");
26
+ // Claims module now only exports types - use evaluators module for ClaimsEvaluator class
27
+ });
28
+ test("src/collector/index.ts exports result-collector and schema", async () => {
29
+ const collectorModule = await import("../collector/index.js");
30
+ assert.ok(collectorModule, "collector module should import");
31
+ assert.ok(typeof collectorModule.ResultCollector === "function", "should export ResultCollector");
32
+ assert.ok(collectorModule.resultCollector, "should export resultCollector instance");
33
+ assert.ok(typeof collectorModule.deepFreeze === "function", "should export deepFreeze");
34
+ assert.ok(typeof collectorModule.validateCase === "function", "should export validateCase");
35
+ assert.ok(typeof collectorModule.validateResult === "function", "should export validateResult");
36
+ assert.ok(typeof collectorModule.validateSutRegistration === "function", "should export validateSutRegistration");
37
+ });
38
+ test("src/executor/index.ts exports executor types and functions", async () => {
39
+ const executorModule = await import("../executor/index.js");
40
+ assert.ok(executorModule, "executor module should import");
41
+ assert.ok(typeof executorModule.CheckpointManager === "function", "should export CheckpointManager");
42
+ assert.ok(typeof executorModule.createFileCheckpointManager === "function", "should export createFileCheckpointManager");
43
+ assert.ok(typeof executorModule.getGitCommit === "function", "should export getGitCommit");
44
+ assert.ok(typeof executorModule.createCheckpointStorage === "function", "should export createCheckpointStorage");
45
+ assert.ok(typeof executorModule.FileStorage === "function", "should export FileStorage");
46
+ assert.ok(typeof executorModule.GitStorage === "function", "should export GitStorage");
47
+ assert.ok(typeof executorModule.InMemoryLock === "function", "should export InMemoryLock");
48
+ assert.ok(typeof executorModule.NodeFileSystem === "function", "should export NodeFileSystem");
49
+ assert.ok(typeof executorModule.getGitNamespace === "function", "should export getGitNamespace");
50
+ assert.ok(typeof executorModule.createExecutor === "function", "should export createExecutor");
51
+ assert.ok(typeof executorModule.Executor === "function", "should export Executor");
52
+ assert.ok(typeof executorModule.executeParallel === "function", "should export executeParallel");
53
+ assert.ok(typeof executorModule.shardPath === "function", "should export shardPath");
54
+ assert.ok(typeof executorModule.generateConfigHash === "function", "should export generateConfigHash");
55
+ assert.ok(typeof executorModule.generateRunId === "function", "should export generateRunId");
56
+ assert.ok(typeof executorModule.parseRunId === "function", "should export parseRunId");
57
+ assert.ok(typeof executorModule.validateRunId === "function", "should export validateRunId");
58
+ assert.ok(executorModule.DEFAULT_EXECUTOR_CONFIG, "should export DEFAULT_EXECUTOR_CONFIG");
59
+ });
60
+ test("src/registry/index.ts exports registries", async () => {
61
+ const registryModule = await import("../registry/index.js");
62
+ assert.ok(registryModule, "registry module should import");
63
+ assert.ok(typeof registryModule.CaseRegistry === "function", "should export CaseRegistry");
64
+ assert.ok(typeof registryModule.SUTRegistry === "function", "should export SUTRegistry");
65
+ assert.ok(registryModule.caseRegistry, "should export caseRegistry instance");
66
+ assert.ok(registryModule.sutRegistry, "should export sutRegistry instance");
67
+ });
68
+ test("src/renderers/index.ts exports renderers and types", async () => {
69
+ const renderersModule = await import("../renderers/index.js");
70
+ assert.ok(renderersModule, "renderers module should import");
71
+ assert.ok(typeof renderersModule.LaTeXRenderer === "function", "should export LaTeXRenderer");
72
+ assert.ok(typeof renderersModule.createLatexRenderer === "function", "should export createLatexRenderer");
73
+ assert.ok(typeof renderersModule.escapeLatex === "function", "should export escapeLatex");
74
+ assert.ok(renderersModule.LATEX_CLAIM_STATUS, "should export LATEX_CLAIM_STATUS");
75
+ assert.ok(renderersModule.UNICODE_CLAIM_STATUS, "should export UNICODE_CLAIM_STATUS");
76
+ });
77
+ test("src/robustness/index.ts exports types and perturbations", async () => {
78
+ const robustnessModule = await import("../robustness/index.js");
79
+ assert.ok(robustnessModule, "robustness module should import");
80
+ // Robustness module now only exports types and perturbations - use evaluators module for RobustnessEvaluator class
81
+ assert.ok(typeof robustnessModule.createPerturbation === "function", "should export createPerturbation");
82
+ assert.ok(robustnessModule.edgeRemovalPerturbation, "should export edgeRemovalPerturbation");
83
+ assert.ok(typeof robustnessModule.getPerturbation === "function", "should export getPerturbation");
84
+ assert.ok(robustnessModule.nodeRemovalPerturbation, "should export nodeRemovalPerturbation");
85
+ assert.ok(robustnessModule.seedShiftPerturbation, "should export seedShiftPerturbation");
86
+ assert.ok(robustnessModule.weightNoisePerturbation, "should export weightNoisePerturbation");
87
+ assert.ok(robustnessModule.PERTURBATIONS, "should export PERTURBATIONS");
88
+ });
89
+ test("src/statistical/index.ts exports mann-whitney-u", async () => {
90
+ const statisticalModule = await import("../statistical/index.js");
91
+ assert.ok(statisticalModule, "statistical module should import");
92
+ assert.ok(typeof statisticalModule.mannWhitneyUTest === "function", "should export mannWhitneyUTest");
93
+ assert.ok(typeof statisticalModule.normalCDF === "function", "should export normalCDF");
94
+ assert.ok(typeof statisticalModule.cohensD === "function", "should export cohensD");
95
+ assert.ok(typeof statisticalModule.confidenceInterval === "function", "should export confidenceInterval");
96
+ });
97
+ test("src/types/index.ts exports all type definitions", async () => {
98
+ // Types are re-exported, so we verify the module loads successfully
99
+ // TypeScript types are erased at runtime, but we can verify the module exists
100
+ const typesModule = await import("../types/index.js");
101
+ assert.ok(typesModule, "types module should import");
102
+ // Note: Type-only exports are not available at runtime in JavaScript
103
+ // The fact that the import succeeds is sufficient verification
104
+ });
105
+ test("src/index.ts exports all modules (main entry point)", async () => {
106
+ const mainModule = await import("../index.js");
107
+ assert.ok(mainModule, "main module should import");
108
+ // Verify all sub-modules are re-exported
109
+ assert.ok(typeof mainModule.CaseRegistry === "function", "should export CaseRegistry from registry");
110
+ assert.ok(typeof mainModule.SUTRegistry === "function", "should export SUTRegistry from registry");
111
+ assert.ok(typeof mainModule.Executor === "function", "should export Executor from executor");
112
+ assert.ok(typeof mainModule.createExecutor === "function", "should export createExecutor from executor");
113
+ assert.ok(typeof mainModule.ResultCollector === "function", "should export ResultCollector from collector");
114
+ assert.ok(typeof mainModule.mannWhitneyUTest === "function", "should export mannWhitneyUTest from statistical");
115
+ assert.ok(typeof mainModule.computeSpeedup === "function", "should export computeSpeedup from aggregation");
116
+ // New evaluator exports
117
+ assert.ok(typeof mainModule.ClaimsEvaluator === "function", "should export ClaimsEvaluator from evaluators");
118
+ assert.ok(typeof mainModule.RobustnessEvaluator === "function", "should export RobustnessEvaluator from evaluators");
119
+ assert.ok(typeof mainModule.MetricsEvaluator === "function", "should export MetricsEvaluator from evaluators");
120
+ assert.ok(typeof mainModule.EvaluatorRegistry === "object", "should export EvaluatorRegistry from evaluators");
121
+ assert.ok(typeof mainModule.LaTeXRenderer === "function", "should export LaTeXRenderer from renderers");
122
+ });
123
+ });
124
+ //# sourceMappingURL=index-exports.unit.test.js.map