ppef 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/README.md +172 -0
  2. package/bin/ppef.mjs +20 -0
  3. package/dist/__tests__/framework-pipeline.integration.test.d.ts +7 -0
  4. package/dist/__tests__/framework-pipeline.integration.test.d.ts.map +1 -0
  5. package/dist/__tests__/framework-pipeline.integration.test.js +415 -0
  6. package/dist/__tests__/framework-pipeline.integration.test.js.map +1 -0
  7. package/dist/__tests__/index-exports.unit.test.d.ts +8 -0
  8. package/dist/__tests__/index-exports.unit.test.d.ts.map +1 -0
  9. package/dist/__tests__/index-exports.unit.test.js +127 -0
  10. package/dist/__tests__/index-exports.unit.test.js.map +1 -0
  11. package/dist/__tests__/registry-executor.integration.test.d.ts +5 -0
  12. package/dist/__tests__/registry-executor.integration.test.d.ts.map +1 -0
  13. package/dist/__tests__/registry-executor.integration.test.js +352 -0
  14. package/dist/__tests__/registry-executor.integration.test.js.map +1 -0
  15. package/dist/__tests__/test-helpers.d.ts +94 -0
  16. package/dist/__tests__/test-helpers.d.ts.map +1 -0
  17. package/dist/__tests__/test-helpers.js +271 -0
  18. package/dist/__tests__/test-helpers.js.map +1 -0
  19. package/dist/aggregation/__tests__/aggregators.unit.test.d.ts +7 -0
  20. package/dist/aggregation/__tests__/aggregators.unit.test.d.ts.map +1 -0
  21. package/dist/aggregation/__tests__/aggregators.unit.test.js +350 -0
  22. package/dist/aggregation/__tests__/aggregators.unit.test.js.map +1 -0
  23. package/dist/aggregation/__tests__/pipeline.unit.test.d.ts +7 -0
  24. package/dist/aggregation/__tests__/pipeline.unit.test.d.ts.map +1 -0
  25. package/dist/aggregation/__tests__/pipeline.unit.test.js +213 -0
  26. package/dist/aggregation/__tests__/pipeline.unit.test.js.map +1 -0
  27. package/dist/aggregation/aggregators.d.ts +63 -0
  28. package/dist/aggregation/aggregators.d.ts.map +1 -0
  29. package/dist/aggregation/aggregators.js +228 -0
  30. package/dist/aggregation/aggregators.js.map +1 -0
  31. package/dist/aggregation/index.d.ts +8 -0
  32. package/dist/aggregation/index.d.ts.map +1 -0
  33. package/dist/aggregation/index.js +8 -0
  34. package/dist/aggregation/index.js.map +1 -0
  35. package/dist/aggregation/pipeline.d.ts +38 -0
  36. package/dist/aggregation/pipeline.d.ts.map +1 -0
  37. package/dist/aggregation/pipeline.js +198 -0
  38. package/dist/aggregation/pipeline.js.map +1 -0
  39. package/dist/claims/__tests__/evaluator.unit.test.d.ts +12 -0
  40. package/dist/claims/__tests__/evaluator.unit.test.d.ts.map +1 -0
  41. package/dist/claims/__tests__/evaluator.unit.test.js +801 -0
  42. package/dist/claims/__tests__/evaluator.unit.test.js.map +1 -0
  43. package/dist/claims/evaluator.d.ts +33 -0
  44. package/dist/claims/evaluator.d.ts.map +1 -0
  45. package/dist/claims/evaluator.js +174 -0
  46. package/dist/claims/evaluator.js.map +1 -0
  47. package/dist/claims/index.d.ts +7 -0
  48. package/dist/claims/index.d.ts.map +1 -0
  49. package/dist/claims/index.js +7 -0
  50. package/dist/claims/index.js.map +1 -0
  51. package/dist/cli/__tests__/aggregate.command.unit.test.d.ts +7 -0
  52. package/dist/cli/__tests__/aggregate.command.unit.test.d.ts.map +1 -0
  53. package/dist/cli/__tests__/aggregate.command.unit.test.js +396 -0
  54. package/dist/cli/__tests__/aggregate.command.unit.test.js.map +1 -0
  55. package/dist/cli/__tests__/commands.unit.test.d.ts +10 -0
  56. package/dist/cli/__tests__/commands.unit.test.d.ts.map +1 -0
  57. package/dist/cli/__tests__/commands.unit.test.js +217 -0
  58. package/dist/cli/__tests__/commands.unit.test.js.map +1 -0
  59. package/dist/cli/__tests__/index.unit.test.d.ts +10 -0
  60. package/dist/cli/__tests__/index.unit.test.d.ts.map +1 -0
  61. package/dist/cli/__tests__/index.unit.test.js +65 -0
  62. package/dist/cli/__tests__/index.unit.test.js.map +1 -0
  63. package/dist/cli/__tests__/logger.unit.test.d.ts +11 -0
  64. package/dist/cli/__tests__/logger.unit.test.d.ts.map +1 -0
  65. package/dist/cli/__tests__/logger.unit.test.js +180 -0
  66. package/dist/cli/__tests__/logger.unit.test.js.map +1 -0
  67. package/dist/cli/__tests__/module-loader.unit.test.d.ts +11 -0
  68. package/dist/cli/__tests__/module-loader.unit.test.d.ts.map +1 -0
  69. package/dist/cli/__tests__/module-loader.unit.test.js +262 -0
  70. package/dist/cli/__tests__/module-loader.unit.test.js.map +1 -0
  71. package/dist/cli/__tests__/output-writer.unit.test.d.ts +10 -0
  72. package/dist/cli/__tests__/output-writer.unit.test.d.ts.map +1 -0
  73. package/dist/cli/__tests__/output-writer.unit.test.js +216 -0
  74. package/dist/cli/__tests__/output-writer.unit.test.js.map +1 -0
  75. package/dist/cli/__tests__/plan.command.unit.test.d.ts +7 -0
  76. package/dist/cli/__tests__/plan.command.unit.test.d.ts.map +1 -0
  77. package/dist/cli/__tests__/plan.command.unit.test.js +289 -0
  78. package/dist/cli/__tests__/plan.command.unit.test.js.map +1 -0
  79. package/dist/cli/__tests__/run.command.unit.test.d.ts +7 -0
  80. package/dist/cli/__tests__/run.command.unit.test.d.ts.map +1 -0
  81. package/dist/cli/__tests__/run.command.unit.test.js +422 -0
  82. package/dist/cli/__tests__/run.command.unit.test.js.map +1 -0
  83. package/dist/cli/__tests__/validate.command.unit.test.d.ts +7 -0
  84. package/dist/cli/__tests__/validate.command.unit.test.d.ts.map +1 -0
  85. package/dist/cli/__tests__/validate.command.unit.test.js +226 -0
  86. package/dist/cli/__tests__/validate.command.unit.test.js.map +1 -0
  87. package/dist/cli/command-deps.d.ts +125 -0
  88. package/dist/cli/command-deps.d.ts.map +1 -0
  89. package/dist/cli/command-deps.js +7 -0
  90. package/dist/cli/command-deps.js.map +1 -0
  91. package/dist/cli/commands/aggregate.d.ts +35 -0
  92. package/dist/cli/commands/aggregate.d.ts.map +1 -0
  93. package/dist/cli/commands/aggregate.js +121 -0
  94. package/dist/cli/commands/aggregate.js.map +1 -0
  95. package/dist/cli/commands/plan.d.ts +36 -0
  96. package/dist/cli/commands/plan.d.ts.map +1 -0
  97. package/dist/cli/commands/plan.js +109 -0
  98. package/dist/cli/commands/plan.js.map +1 -0
  99. package/dist/cli/commands/run.d.ts +33 -0
  100. package/dist/cli/commands/run.d.ts.map +1 -0
  101. package/dist/cli/commands/run.js +185 -0
  102. package/dist/cli/commands/run.js.map +1 -0
  103. package/dist/cli/commands/validate.d.ts +27 -0
  104. package/dist/cli/commands/validate.d.ts.map +1 -0
  105. package/dist/cli/commands/validate.js +88 -0
  106. package/dist/cli/commands/validate.js.map +1 -0
  107. package/dist/cli/config-loader.d.ts +30 -0
  108. package/dist/cli/config-loader.d.ts.map +1 -0
  109. package/dist/cli/config-loader.js +181 -0
  110. package/dist/cli/config-loader.js.map +1 -0
  111. package/dist/cli/index.d.ts +26 -0
  112. package/dist/cli/index.d.ts.map +1 -0
  113. package/dist/cli/index.js +58 -0
  114. package/dist/cli/index.js.map +1 -0
  115. package/dist/cli/logger.d.ts +75 -0
  116. package/dist/cli/logger.d.ts.map +1 -0
  117. package/dist/cli/logger.js +131 -0
  118. package/dist/cli/logger.js.map +1 -0
  119. package/dist/cli/module-loader.d.ts +46 -0
  120. package/dist/cli/module-loader.d.ts.map +1 -0
  121. package/dist/cli/module-loader.js +116 -0
  122. package/dist/cli/module-loader.js.map +1 -0
  123. package/dist/cli/output-writer.d.ts +51 -0
  124. package/dist/cli/output-writer.d.ts.map +1 -0
  125. package/dist/cli/output-writer.js +65 -0
  126. package/dist/cli/output-writer.js.map +1 -0
  127. package/dist/cli/types.d.ts +174 -0
  128. package/dist/cli/types.d.ts.map +1 -0
  129. package/dist/cli/types.js +7 -0
  130. package/dist/cli/types.js.map +1 -0
  131. package/dist/collector/__tests__/result-collector.unit.test.d.ts +7 -0
  132. package/dist/collector/__tests__/result-collector.unit.test.d.ts.map +1 -0
  133. package/dist/collector/__tests__/result-collector.unit.test.js +1021 -0
  134. package/dist/collector/__tests__/result-collector.unit.test.js.map +1 -0
  135. package/dist/collector/__tests__/schema.unit.test.d.ts +7 -0
  136. package/dist/collector/__tests__/schema.unit.test.d.ts.map +1 -0
  137. package/dist/collector/__tests__/schema.unit.test.js +360 -0
  138. package/dist/collector/__tests__/schema.unit.test.js.map +1 -0
  139. package/dist/collector/index.d.ts +8 -0
  140. package/dist/collector/index.d.ts.map +1 -0
  141. package/dist/collector/index.js +8 -0
  142. package/dist/collector/index.js.map +1 -0
  143. package/dist/collector/result-collector.d.ts +159 -0
  144. package/dist/collector/result-collector.d.ts.map +1 -0
  145. package/dist/collector/result-collector.js +213 -0
  146. package/dist/collector/result-collector.js.map +1 -0
  147. package/dist/collector/schema.d.ts +34 -0
  148. package/dist/collector/schema.d.ts.map +1 -0
  149. package/dist/collector/schema.js +145 -0
  150. package/dist/collector/schema.js.map +1 -0
  151. package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.d.ts +10 -0
  152. package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.d.ts.map +1 -0
  153. package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.js +122 -0
  154. package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.js.map +1 -0
  155. package/dist/executor/__tests__/checkpoint-manager.integration.test.d.ts +7 -0
  156. package/dist/executor/__tests__/checkpoint-manager.integration.test.d.ts.map +1 -0
  157. package/dist/executor/__tests__/checkpoint-manager.integration.test.js +330 -0
  158. package/dist/executor/__tests__/checkpoint-manager.integration.test.js.map +1 -0
  159. package/dist/executor/__tests__/checkpoint-manager.unit.test.d.ts +7 -0
  160. package/dist/executor/__tests__/checkpoint-manager.unit.test.d.ts.map +1 -0
  161. package/dist/executor/__tests__/checkpoint-manager.unit.test.js +531 -0
  162. package/dist/executor/__tests__/checkpoint-manager.unit.test.js.map +1 -0
  163. package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts +8 -0
  164. package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts.map +1 -0
  165. package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js +493 -0
  166. package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js.map +1 -0
  167. package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.d.ts +8 -0
  168. package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.d.ts.map +1 -0
  169. package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.js +164 -0
  170. package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.js.map +1 -0
  171. package/dist/executor/__tests__/checkpoint-storage.unit.test.d.ts +7 -0
  172. package/dist/executor/__tests__/checkpoint-storage.unit.test.d.ts.map +1 -0
  173. package/dist/executor/__tests__/checkpoint-storage.unit.test.js +490 -0
  174. package/dist/executor/__tests__/checkpoint-storage.unit.test.js.map +1 -0
  175. package/dist/executor/__tests__/executor.unit.test.d.ts +7 -0
  176. package/dist/executor/__tests__/executor.unit.test.d.ts.map +1 -0
  177. package/dist/executor/__tests__/executor.unit.test.js +202 -0
  178. package/dist/executor/__tests__/executor.unit.test.js.map +1 -0
  179. package/dist/executor/__tests__/memory-monitor.unit.test.d.ts +7 -0
  180. package/dist/executor/__tests__/memory-monitor.unit.test.d.ts.map +1 -0
  181. package/dist/executor/__tests__/memory-monitor.unit.test.js +285 -0
  182. package/dist/executor/__tests__/memory-monitor.unit.test.js.map +1 -0
  183. package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.d.ts +12 -0
  184. package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.d.ts.map +1 -0
  185. package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.js +196 -0
  186. package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.js.map +1 -0
  187. package/dist/executor/__tests__/parallel-executor.integration.test.d.ts +7 -0
  188. package/dist/executor/__tests__/parallel-executor.integration.test.d.ts.map +1 -0
  189. package/dist/executor/__tests__/parallel-executor.integration.test.js +249 -0
  190. package/dist/executor/__tests__/parallel-executor.integration.test.js.map +1 -0
  191. package/dist/executor/__tests__/parallel-executor.unit.test.d.ts +8 -0
  192. package/dist/executor/__tests__/parallel-executor.unit.test.d.ts.map +1 -0
  193. package/dist/executor/__tests__/parallel-executor.unit.test.js +473 -0
  194. package/dist/executor/__tests__/parallel-executor.unit.test.js.map +1 -0
  195. package/dist/executor/__tests__/run-id.unit.test.d.ts +8 -0
  196. package/dist/executor/__tests__/run-id.unit.test.d.ts.map +1 -0
  197. package/dist/executor/__tests__/run-id.unit.test.js +156 -0
  198. package/dist/executor/__tests__/run-id.unit.test.js.map +1 -0
  199. package/dist/executor/__tests__/worker-entry.integration.test.d.ts +24 -0
  200. package/dist/executor/__tests__/worker-entry.integration.test.d.ts.map +1 -0
  201. package/dist/executor/__tests__/worker-entry.integration.test.js +82 -0
  202. package/dist/executor/__tests__/worker-entry.integration.test.js.map +1 -0
  203. package/dist/executor/__tests__/worker-entry.unit.test.d.ts +7 -0
  204. package/dist/executor/__tests__/worker-entry.unit.test.d.ts.map +1 -0
  205. package/dist/executor/__tests__/worker-entry.unit.test.js +364 -0
  206. package/dist/executor/__tests__/worker-entry.unit.test.js.map +1 -0
  207. package/dist/executor/checkpoint-manager.d.ts +231 -0
  208. package/dist/executor/checkpoint-manager.d.ts.map +1 -0
  209. package/dist/executor/checkpoint-manager.js +395 -0
  210. package/dist/executor/checkpoint-manager.js.map +1 -0
  211. package/dist/executor/checkpoint-storage.d.ts +230 -0
  212. package/dist/executor/checkpoint-storage.d.ts.map +1 -0
  213. package/dist/executor/checkpoint-storage.js +370 -0
  214. package/dist/executor/checkpoint-storage.js.map +1 -0
  215. package/dist/executor/checkpoint-types.d.ts +48 -0
  216. package/dist/executor/checkpoint-types.d.ts.map +1 -0
  217. package/dist/executor/checkpoint-types.js +8 -0
  218. package/dist/executor/checkpoint-types.js.map +1 -0
  219. package/dist/executor/executor.d.ts +164 -0
  220. package/dist/executor/executor.d.ts.map +1 -0
  221. package/dist/executor/executor.js +408 -0
  222. package/dist/executor/executor.js.map +1 -0
  223. package/dist/executor/index.d.ts +11 -0
  224. package/dist/executor/index.d.ts.map +1 -0
  225. package/dist/executor/index.js +11 -0
  226. package/dist/executor/index.js.map +1 -0
  227. package/dist/executor/memory-monitor.d.ts +115 -0
  228. package/dist/executor/memory-monitor.d.ts.map +1 -0
  229. package/dist/executor/memory-monitor.js +168 -0
  230. package/dist/executor/memory-monitor.js.map +1 -0
  231. package/dist/executor/parallel-executor.d.ts +239 -0
  232. package/dist/executor/parallel-executor.d.ts.map +1 -0
  233. package/dist/executor/parallel-executor.js +329 -0
  234. package/dist/executor/parallel-executor.js.map +1 -0
  235. package/dist/executor/run-id.d.ts +71 -0
  236. package/dist/executor/run-id.d.ts.map +1 -0
  237. package/dist/executor/run-id.js +74 -0
  238. package/dist/executor/run-id.js.map +1 -0
  239. package/dist/executor/worker-entry.d.ts +10 -0
  240. package/dist/executor/worker-entry.d.ts.map +1 -0
  241. package/dist/executor/worker-entry.js +42 -0
  242. package/dist/executor/worker-entry.js.map +1 -0
  243. package/dist/executor/worker-executor.d.ts +156 -0
  244. package/dist/executor/worker-executor.d.ts.map +1 -0
  245. package/dist/executor/worker-executor.js +88 -0
  246. package/dist/executor/worker-executor.js.map +1 -0
  247. package/dist/index.cjs +11 -0
  248. package/dist/index.d.ts +15 -0
  249. package/dist/index.d.ts.map +1 -0
  250. package/dist/index.js +24 -0
  251. package/dist/index.js.map +1 -0
  252. package/dist/registry/case-registry.d.ts +113 -0
  253. package/dist/registry/case-registry.d.ts.map +1 -0
  254. package/dist/registry/case-registry.js +160 -0
  255. package/dist/registry/case-registry.js.map +1 -0
  256. package/dist/registry/index.d.ts +8 -0
  257. package/dist/registry/index.d.ts.map +1 -0
  258. package/dist/registry/index.js +8 -0
  259. package/dist/registry/index.js.map +1 -0
  260. package/dist/registry/sut-registry.d.ts +96 -0
  261. package/dist/registry/sut-registry.d.ts.map +1 -0
  262. package/dist/registry/sut-registry.js +126 -0
  263. package/dist/registry/sut-registry.js.map +1 -0
  264. package/dist/renderers/index.d.ts +10 -0
  265. package/dist/renderers/index.d.ts.map +1 -0
  266. package/dist/renderers/index.js +9 -0
  267. package/dist/renderers/index.js.map +1 -0
  268. package/dist/renderers/latex-renderer.d.ts +84 -0
  269. package/dist/renderers/latex-renderer.d.ts.map +1 -0
  270. package/dist/renderers/latex-renderer.js +208 -0
  271. package/dist/renderers/latex-renderer.js.map +1 -0
  272. package/dist/renderers/types.d.ts +106 -0
  273. package/dist/renderers/types.d.ts.map +1 -0
  274. package/dist/renderers/types.js +23 -0
  275. package/dist/renderers/types.js.map +1 -0
  276. package/dist/robustness/__tests__/analyzer.unit.test.d.ts +11 -0
  277. package/dist/robustness/__tests__/analyzer.unit.test.d.ts.map +1 -0
  278. package/dist/robustness/__tests__/analyzer.unit.test.js +455 -0
  279. package/dist/robustness/__tests__/analyzer.unit.test.js.map +1 -0
  280. package/dist/robustness/__tests__/perturbations.unit.test.d.ts +11 -0
  281. package/dist/robustness/__tests__/perturbations.unit.test.d.ts.map +1 -0
  282. package/dist/robustness/__tests__/perturbations.unit.test.js +284 -0
  283. package/dist/robustness/__tests__/perturbations.unit.test.js.map +1 -0
  284. package/dist/robustness/analyzer.d.ts +61 -0
  285. package/dist/robustness/analyzer.d.ts.map +1 -0
  286. package/dist/robustness/analyzer.js +191 -0
  287. package/dist/robustness/analyzer.js.map +1 -0
  288. package/dist/robustness/index.d.ts +8 -0
  289. package/dist/robustness/index.d.ts.map +1 -0
  290. package/dist/robustness/index.js +8 -0
  291. package/dist/robustness/index.js.map +1 -0
  292. package/dist/robustness/perturbations.d.ts +46 -0
  293. package/dist/robustness/perturbations.d.ts.map +1 -0
  294. package/dist/robustness/perturbations.js +184 -0
  295. package/dist/robustness/perturbations.js.map +1 -0
  296. package/dist/statistical/__tests__/mann-whitney-u.unit.test.d.ts +7 -0
  297. package/dist/statistical/__tests__/mann-whitney-u.unit.test.d.ts.map +1 -0
  298. package/dist/statistical/__tests__/mann-whitney-u.unit.test.js +185 -0
  299. package/dist/statistical/__tests__/mann-whitney-u.unit.test.js.map +1 -0
  300. package/dist/statistical/index.d.ts +8 -0
  301. package/dist/statistical/index.d.ts.map +1 -0
  302. package/dist/statistical/index.js +8 -0
  303. package/dist/statistical/index.js.map +1 -0
  304. package/dist/statistical/mann-whitney-u.d.ts +62 -0
  305. package/dist/statistical/mann-whitney-u.d.ts.map +1 -0
  306. package/dist/statistical/mann-whitney-u.js +127 -0
  307. package/dist/statistical/mann-whitney-u.js.map +1 -0
  308. package/dist/types/aggregate.d.ts +124 -0
  309. package/dist/types/aggregate.d.ts.map +1 -0
  310. package/dist/types/aggregate.js +9 -0
  311. package/dist/types/aggregate.js.map +1 -0
  312. package/dist/types/case.d.ts +105 -0
  313. package/dist/types/case.d.ts.map +1 -0
  314. package/dist/types/case.js +10 -0
  315. package/dist/types/case.js.map +1 -0
  316. package/dist/types/claims.d.ts +122 -0
  317. package/dist/types/claims.d.ts.map +1 -0
  318. package/dist/types/claims.js +14 -0
  319. package/dist/types/claims.js.map +1 -0
  320. package/dist/types/index.d.ts +12 -0
  321. package/dist/types/index.d.ts.map +1 -0
  322. package/dist/types/index.js +7 -0
  323. package/dist/types/index.js.map +1 -0
  324. package/dist/types/perturbation.d.ts +105 -0
  325. package/dist/types/perturbation.d.ts.map +1 -0
  326. package/dist/types/perturbation.js +9 -0
  327. package/dist/types/perturbation.js.map +1 -0
  328. package/dist/types/result.d.ts +150 -0
  329. package/dist/types/result.d.ts.map +1 -0
  330. package/dist/types/result.js +12 -0
  331. package/dist/types/result.js.map +1 -0
  332. package/dist/types/sut.d.ts +128 -0
  333. package/dist/types/sut.d.ts.map +1 -0
  334. package/dist/types/sut.js +12 -0
  335. package/dist/types/sut.js.map +1 -0
  336. package/package.json +290 -7
@@ -0,0 +1,127 @@
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 evaluator", async () => {
24
+ const claimsModule = await import("../claims/index.js");
25
+ assert.ok(claimsModule, "claims module should import");
26
+ assert.ok(typeof claimsModule.evaluateClaim === "function", "should export evaluateClaim");
27
+ assert.ok(typeof claimsModule.evaluateClaims === "function", "should export evaluateClaims");
28
+ assert.ok(typeof claimsModule.createClaimSummary === "function", "should export createClaimSummary");
29
+ });
30
+ test("src/collector/index.ts exports result-collector and schema", async () => {
31
+ const collectorModule = await import("../collector/index.js");
32
+ assert.ok(collectorModule, "collector module should import");
33
+ assert.ok(typeof collectorModule.ResultCollector === "function", "should export ResultCollector");
34
+ assert.ok(collectorModule.resultCollector, "should export resultCollector instance");
35
+ assert.ok(typeof collectorModule.deepFreeze === "function", "should export deepFreeze");
36
+ assert.ok(typeof collectorModule.validateCase === "function", "should export validateCase");
37
+ assert.ok(typeof collectorModule.validateResult === "function", "should export validateResult");
38
+ assert.ok(typeof collectorModule.validateSutRegistration === "function", "should export validateSutRegistration");
39
+ });
40
+ test("src/executor/index.ts exports executor types and functions", async () => {
41
+ const executorModule = await import("../executor/index.js");
42
+ assert.ok(executorModule, "executor module should import");
43
+ assert.ok(typeof executorModule.CheckpointManager === "function", "should export CheckpointManager");
44
+ assert.ok(typeof executorModule.createFileCheckpointManager === "function", "should export createFileCheckpointManager");
45
+ assert.ok(typeof executorModule.getGitCommit === "function", "should export getGitCommit");
46
+ assert.ok(typeof executorModule.createCheckpointStorage === "function", "should export createCheckpointStorage");
47
+ assert.ok(typeof executorModule.FileStorage === "function", "should export FileStorage");
48
+ assert.ok(typeof executorModule.GitStorage === "function", "should export GitStorage");
49
+ assert.ok(typeof executorModule.InMemoryLock === "function", "should export InMemoryLock");
50
+ assert.ok(typeof executorModule.NodeFileSystem === "function", "should export NodeFileSystem");
51
+ assert.ok(typeof executorModule.getGitNamespace === "function", "should export getGitNamespace");
52
+ assert.ok(typeof executorModule.createExecutor === "function", "should export createExecutor");
53
+ assert.ok(typeof executorModule.Executor === "function", "should export Executor");
54
+ assert.ok(typeof executorModule.executeParallel === "function", "should export executeParallel");
55
+ assert.ok(typeof executorModule.shardPath === "function", "should export shardPath");
56
+ assert.ok(typeof executorModule.generateConfigHash === "function", "should export generateConfigHash");
57
+ assert.ok(typeof executorModule.generateRunId === "function", "should export generateRunId");
58
+ assert.ok(typeof executorModule.parseRunId === "function", "should export parseRunId");
59
+ assert.ok(typeof executorModule.validateRunId === "function", "should export validateRunId");
60
+ assert.ok(executorModule.DEFAULT_EXECUTOR_CONFIG, "should export DEFAULT_EXECUTOR_CONFIG");
61
+ });
62
+ test("src/registry/index.ts exports registries", async () => {
63
+ const registryModule = await import("../registry/index.js");
64
+ assert.ok(registryModule, "registry module should import");
65
+ assert.ok(typeof registryModule.CaseRegistry === "function", "should export CaseRegistry");
66
+ assert.ok(typeof registryModule.SUTRegistry === "function", "should export SUTRegistry");
67
+ assert.ok(registryModule.caseRegistry, "should export caseRegistry instance");
68
+ assert.ok(registryModule.sutRegistry, "should export sutRegistry instance");
69
+ });
70
+ test("src/renderers/index.ts exports renderers and types", async () => {
71
+ const renderersModule = await import("../renderers/index.js");
72
+ assert.ok(renderersModule, "renderers module should import");
73
+ assert.ok(typeof renderersModule.LaTeXRenderer === "function", "should export LaTeXRenderer");
74
+ assert.ok(typeof renderersModule.createLatexRenderer === "function", "should export createLatexRenderer");
75
+ assert.ok(typeof renderersModule.escapeLatex === "function", "should export escapeLatex");
76
+ assert.ok(renderersModule.LATEX_CLAIM_STATUS, "should export LATEX_CLAIM_STATUS");
77
+ assert.ok(renderersModule.UNICODE_CLAIM_STATUS, "should export UNICODE_CLAIM_STATUS");
78
+ });
79
+ test("src/robustness/index.ts exports analyzer and perturbations", async () => {
80
+ const robustnessModule = await import("../robustness/index.js");
81
+ assert.ok(robustnessModule, "robustness module should import");
82
+ assert.ok(typeof robustnessModule.analyzeRobustnessForMetric === "function", "should export analyzeRobustnessForMetric");
83
+ assert.ok(typeof robustnessModule.analyzeRobustnessWithCurve === "function", "should export analyzeRobustnessWithCurve");
84
+ assert.ok(typeof robustnessModule.compareRobustness === "function", "should export compareRobustness");
85
+ assert.ok(typeof robustnessModule.createRobustnessAnalysis === "function", "should export createRobustnessAnalysis");
86
+ assert.ok(typeof robustnessModule.createPerturbation === "function", "should export createPerturbation");
87
+ assert.ok(robustnessModule.edgeRemovalPerturbation, "should export edgeRemovalPerturbation");
88
+ assert.ok(typeof robustnessModule.getPerturbation === "function", "should export getPerturbation");
89
+ assert.ok(robustnessModule.nodeRemovalPerturbation, "should export nodeRemovalPerturbation");
90
+ assert.ok(robustnessModule.seedShiftPerturbation, "should export seedShiftPerturbation");
91
+ assert.ok(robustnessModule.weightNoisePerturbation, "should export weightNoisePerturbation");
92
+ assert.ok(robustnessModule.PERTURBATIONS, "should export PERTURBATIONS");
93
+ });
94
+ test("src/statistical/index.ts exports mann-whitney-u", async () => {
95
+ const statisticalModule = await import("../statistical/index.js");
96
+ assert.ok(statisticalModule, "statistical module should import");
97
+ assert.ok(typeof statisticalModule.mannWhitneyUTest === "function", "should export mannWhitneyUTest");
98
+ assert.ok(typeof statisticalModule.normalCDF === "function", "should export normalCDF");
99
+ assert.ok(typeof statisticalModule.cohensD === "function", "should export cohensD");
100
+ assert.ok(typeof statisticalModule.confidenceInterval === "function", "should export confidenceInterval");
101
+ });
102
+ test("src/types/index.ts exports all type definitions", async () => {
103
+ // Types are re-exported, so we verify the module loads successfully
104
+ // TypeScript types are erased at runtime, but we can verify the module exists
105
+ const typesModule = await import("../types/index.js");
106
+ assert.ok(typesModule, "types module should import");
107
+ // Note: Type-only exports are not available at runtime in JavaScript
108
+ // The fact that the import succeeds is sufficient verification
109
+ });
110
+ test("src/index.ts exports all modules (main entry point)", async () => {
111
+ const mainModule = await import("../index.js");
112
+ assert.ok(mainModule, "main module should import");
113
+ // Verify all sub-modules are re-exported
114
+ // Types module (type-only exports, so we check other modules)
115
+ assert.ok(typeof mainModule.CaseRegistry === "function", "should export CaseRegistry from registry");
116
+ assert.ok(typeof mainModule.SUTRegistry === "function", "should export SUTRegistry from registry");
117
+ assert.ok(typeof mainModule.Executor === "function", "should export Executor from executor");
118
+ assert.ok(typeof mainModule.createExecutor === "function", "should export createExecutor from executor");
119
+ assert.ok(typeof mainModule.ResultCollector === "function", "should export ResultCollector from collector");
120
+ assert.ok(typeof mainModule.mannWhitneyUTest === "function", "should export mannWhitneyUTest from statistical");
121
+ assert.ok(typeof mainModule.computeSpeedup === "function", "should export computeSpeedup from aggregation");
122
+ assert.ok(typeof mainModule.evaluateClaim === "function", "should export evaluateClaim from claims");
123
+ assert.ok(typeof mainModule.analyzeRobustnessForMetric === "function", "should export analyzeRobustnessForMetric from robustness");
124
+ assert.ok(typeof mainModule.LaTeXRenderer === "function", "should export LaTeXRenderer from renderers");
125
+ });
126
+ });
127
+ //# sourceMappingURL=index-exports.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-exports.unit.test.js","sourceRoot":"","sources":["../../src/__tests__/index-exports.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Integration tests for SUT Registry and Case Registry
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=registry-executor.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-executor.integration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/registry-executor.integration.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,352 @@
1
+ /**
2
+ * Integration tests for SUT Registry and Case Registry
3
+ */
4
+ import { beforeEach, describe, it } from "node:test";
5
+ import { strict as assert } from "node:assert";
6
+ import { CaseRegistry } from "../registry/case-registry.js";
7
+ import { SUTRegistry } from "../registry/sut-registry.js";
8
+ describe("Registry + Executor Integration", () => {
9
+ describe("SUTRegistry", () => {
10
+ let sutRegistry;
11
+ beforeEach(() => {
12
+ sutRegistry = new SUTRegistry();
13
+ });
14
+ it("should register and retrieve SUTs", () => {
15
+ const registration = {
16
+ id: "test-sut-v1.0.0",
17
+ name: "Test SUT",
18
+ version: "1.0.0",
19
+ role: "primary",
20
+ config: { maxDepth: 3 },
21
+ tags: ["test", "primary"],
22
+ };
23
+ const factory = () => ({
24
+ id: "test-sut-v1.0.0",
25
+ config: {},
26
+ run: async () => ({ result: "success" }),
27
+ });
28
+ sutRegistry.register(registration, factory);
29
+ assert.strictEqual(sutRegistry.has("test-sut-v1.0.0"), true);
30
+ assert.strictEqual(sutRegistry.size, 1);
31
+ const retrieved = sutRegistry.get("test-sut-v1.0.0");
32
+ assert.ok(retrieved);
33
+ assert.strictEqual(retrieved.registration.name, "Test SUT");
34
+ assert.strictEqual(retrieved.registration.role, "primary");
35
+ });
36
+ it("should prevent duplicate registration", () => {
37
+ const registration = {
38
+ id: "duplicate-sut",
39
+ name: "Duplicate",
40
+ version: "1.0.0",
41
+ role: "primary",
42
+ config: {},
43
+ tags: [],
44
+ };
45
+ const factory = () => ({
46
+ id: "duplicate-sut",
47
+ config: {},
48
+ run: async () => ({ result: "ok" }),
49
+ });
50
+ sutRegistry.register(registration, factory);
51
+ assert.throws(() => sutRegistry.register(registration, factory), Error);
52
+ });
53
+ it("should filter by role", () => {
54
+ sutRegistry
55
+ .register({ id: "primary-1", name: "P1", version: "1.0.0", role: "primary", config: {}, tags: [] }, () => ({ id: "primary-1", config: {}, run: async () => ({ result: "p1" }) }))
56
+ .register({ id: "primary-2", name: "P2", version: "1.0.0", role: "primary", config: {}, tags: [] }, () => ({ id: "primary-2", config: {}, run: async () => ({ result: "p2" }) }))
57
+ .register({
58
+ id: "baseline-1",
59
+ name: "B1",
60
+ version: "1.0.0",
61
+ role: "baseline",
62
+ config: {},
63
+ tags: [],
64
+ }, () => ({ id: "baseline-1", config: {}, run: async () => ({ result: "b1" }) }));
65
+ const primarySuts = sutRegistry.getByRole("primary");
66
+ const baselineSuts = sutRegistry.getByRole("baseline");
67
+ assert.strictEqual(primarySuts.length, 2);
68
+ assert.strictEqual(baselineSuts.length, 1);
69
+ });
70
+ it("should filter by tag", () => {
71
+ sutRegistry
72
+ .register({
73
+ id: "sut-1",
74
+ name: "S1",
75
+ version: "1.0.0",
76
+ role: "primary",
77
+ config: {},
78
+ tags: ["expansion", "bidirectional"],
79
+ }, () => ({ id: "sut-1", config: {}, run: async () => ({ result: "s1" }) }))
80
+ .register({
81
+ id: "sut-2",
82
+ name: "S2",
83
+ version: "1.0.0",
84
+ role: "primary",
85
+ config: {},
86
+ tags: ["expansion"],
87
+ }, () => ({ id: "sut-2", config: {}, run: async () => ({ result: "s2" }) }))
88
+ .register({
89
+ id: "sut-3",
90
+ name: "S3",
91
+ version: "1.0.0",
92
+ role: "baseline",
93
+ config: {},
94
+ tags: ["ranking"],
95
+ }, () => ({ id: "sut-3", config: {}, run: async () => ({ result: "s3" }) }));
96
+ const expansionSuts = sutRegistry.getByTag("expansion");
97
+ const bidirectionalSuts = sutRegistry.getByTag("bidirectional");
98
+ assert.strictEqual(expansionSuts.length, 2);
99
+ assert.strictEqual(bidirectionalSuts.length, 1);
100
+ });
101
+ it("should throw for unknown SUT in getOrThrow", () => {
102
+ assert.throws(() => sutRegistry.getOrThrow("nonexistent"), Error);
103
+ });
104
+ it("should create SUT instances", () => {
105
+ let capturedConfig;
106
+ sutRegistry.register({
107
+ id: "configurable-sut",
108
+ name: "Config",
109
+ version: "1.0.0",
110
+ role: "primary",
111
+ config: {},
112
+ tags: [],
113
+ }, (config) => {
114
+ capturedConfig = config;
115
+ return {
116
+ id: "configurable-sut",
117
+ config: { ...config },
118
+ run: async () => ({ result: "configured" }),
119
+ };
120
+ });
121
+ const instance = sutRegistry.create("configurable-sut", { maxDepth: 5 });
122
+ assert.ok(instance);
123
+ assert.deepStrictEqual(capturedConfig, { maxDepth: 5 });
124
+ });
125
+ it("should list all registrations", () => {
126
+ sutRegistry
127
+ .register({ id: "sut-a", name: "A", version: "1.0.0", role: "primary", config: {}, tags: [] }, () => ({ id: "sut-a", config: {}, run: async () => ({ result: "a" }) }))
128
+ .register({ id: "sut-b", name: "B", version: "1.0.0", role: "baseline", config: {}, tags: [] }, () => ({ id: "sut-b", config: {}, run: async () => ({ result: "b" }) }));
129
+ const ids = sutRegistry.list();
130
+ const registrations = sutRegistry.listRegistrations();
131
+ assert.ok(ids.includes("sut-a"));
132
+ assert.ok(ids.includes("sut-b"));
133
+ assert.strictEqual(registrations.length, 2);
134
+ assert.strictEqual(registrations.find((r) => r.id === "sut-a")?.name, "A");
135
+ });
136
+ it("should clear all registrations", () => {
137
+ sutRegistry.register({ id: "sut", name: "S", version: "1.0.0", role: "primary", config: {}, tags: [] }, () => ({ id: "sut", config: {}, run: async () => ({ result: "s" }) }));
138
+ assert.strictEqual(sutRegistry.size, 1);
139
+ sutRegistry.clear();
140
+ assert.strictEqual(sutRegistry.size, 0);
141
+ assert.strictEqual(sutRegistry.has("sut"), false);
142
+ });
143
+ });
144
+ describe("CaseRegistry", () => {
145
+ let caseRegistry;
146
+ beforeEach(() => {
147
+ caseRegistry = new CaseRegistry();
148
+ });
149
+ const createTestCase = (id, caseClass, tags) => ({
150
+ case: {
151
+ caseId: id,
152
+ name: `Test Case ${id}`,
153
+ caseClass,
154
+ inputs: { summary: { graphName: id } },
155
+ tags,
156
+ },
157
+ getInput: async () => ({ nodes: ["a", "b", "c"] }),
158
+ getInputs: () => ["a", "b"],
159
+ });
160
+ it("should register and retrieve cases", () => {
161
+ const caseDefinition = createTestCase("case-001", "scale-free");
162
+ caseRegistry.register(caseDefinition);
163
+ assert.strictEqual(caseRegistry.has("case-001"), true);
164
+ assert.strictEqual(caseRegistry.size, 1);
165
+ const retrieved = caseRegistry.get("case-001");
166
+ assert.ok(retrieved);
167
+ assert.strictEqual(retrieved.case.name, "Test Case case-001");
168
+ assert.strictEqual(retrieved.case.caseClass, "scale-free");
169
+ });
170
+ it("should prevent duplicate case registration", () => {
171
+ const caseDefinition = createTestCase("duplicate-case");
172
+ caseRegistry.register(caseDefinition);
173
+ assert.throws(() => caseRegistry.register(caseDefinition), Error);
174
+ });
175
+ it("should register multiple cases", () => {
176
+ const cases = [
177
+ createTestCase("case-1", "scale-free"),
178
+ createTestCase("case-2", "scale-free"),
179
+ createTestCase("case-3", "random"),
180
+ ];
181
+ caseRegistry.registerAll(cases);
182
+ assert.strictEqual(caseRegistry.size, 3);
183
+ });
184
+ it("should filter by case class", () => {
185
+ caseRegistry.registerAll([
186
+ createTestCase("sf-1", "scale-free"),
187
+ createTestCase("sf-2", "scale-free"),
188
+ createTestCase("rand-1", "random"),
189
+ ]);
190
+ const scaleFree = caseRegistry.getByClass("scale-free");
191
+ const random = caseRegistry.getByClass("random");
192
+ assert.strictEqual(scaleFree.length, 2);
193
+ assert.strictEqual(random.length, 1);
194
+ });
195
+ it("should filter by tag", () => {
196
+ caseRegistry.registerAll([
197
+ createTestCase("case-1", undefined, ["small", "synthetic"]),
198
+ createTestCase("case-2", undefined, ["large", "real-world"]),
199
+ createTestCase("case-3", undefined, ["small"]),
200
+ ]);
201
+ const smallCases = caseRegistry.getByTag("small");
202
+ const realWorldCases = caseRegistry.getByTag("real-world");
203
+ assert.strictEqual(smallCases.length, 2);
204
+ assert.strictEqual(realWorldCases.length, 1);
205
+ });
206
+ it("should list unique case classes", () => {
207
+ caseRegistry.registerAll([
208
+ createTestCase("c1", "scale-free"),
209
+ createTestCase("c2", "scale-free"),
210
+ createTestCase("c3", "random"),
211
+ createTestCase("c4", "small-world"),
212
+ ]);
213
+ const classes = caseRegistry.listClasses();
214
+ assert.strictEqual(classes.length, 3);
215
+ assert.ok(classes.includes("scale-free"));
216
+ assert.ok(classes.includes("random"));
217
+ assert.ok(classes.includes("small-world"));
218
+ });
219
+ it("should create input from case", async () => {
220
+ caseRegistry.register(createTestCase("expandable-case"));
221
+ const input = await caseRegistry.getInput("expandable-case");
222
+ assert.deepStrictEqual(input.nodes, ["a", "b", "c"]);
223
+ });
224
+ it("should get inputs from case", () => {
225
+ caseRegistry.register(createTestCase("seeded-case"));
226
+ const inputs = caseRegistry.getInputs("seeded-case");
227
+ assert.deepStrictEqual(inputs, ["a", "b"]);
228
+ });
229
+ it("should throw for unknown case in getOrThrow", () => {
230
+ assert.throws(() => caseRegistry.getOrThrow("nonexistent"), Error);
231
+ });
232
+ it("should list all cases", () => {
233
+ caseRegistry.registerAll([createTestCase("c1"), createTestCase("c2")]);
234
+ const ids = caseRegistry.list();
235
+ const cases = caseRegistry.listCases();
236
+ assert.ok(ids.includes("c1"));
237
+ assert.ok(ids.includes("c2"));
238
+ assert.strictEqual(cases.length, 2);
239
+ });
240
+ it("should clear all cases", () => {
241
+ caseRegistry.register(createTestCase("c1"));
242
+ assert.strictEqual(caseRegistry.size, 1);
243
+ caseRegistry.clear();
244
+ assert.strictEqual(caseRegistry.size, 0);
245
+ });
246
+ });
247
+ describe("Combined Registry Usage", () => {
248
+ it("should support typical experiment setup pattern", async () => {
249
+ const sutRegistry = new SUTRegistry();
250
+ const caseRegistry = new CaseRegistry();
251
+ // Register SUTs
252
+ sutRegistry
253
+ .register({
254
+ id: "degree-prioritised-v1.0.0",
255
+ name: "Degree-Prioritised Expansion",
256
+ version: "1.0.0",
257
+ role: "primary",
258
+ config: { hubThreshold: 0.9 },
259
+ tags: ["expansion", "bidirectional"],
260
+ }, () => ({
261
+ id: "degree-prioritised-v1.0.0",
262
+ config: {},
263
+ run: async ({ expander, seeds }) => ({
264
+ paths: seeds.map((s) => [s, ...expander.nodes.slice(0, 2)]),
265
+ }),
266
+ }))
267
+ .register({
268
+ id: "standard-bfs-v1.0.0",
269
+ name: "Standard BFS",
270
+ version: "1.0.0",
271
+ role: "baseline",
272
+ config: {},
273
+ tags: ["expansion"],
274
+ }, () => ({
275
+ id: "standard-bfs-v1.0.0",
276
+ config: {},
277
+ run: async ({ expander, seeds }) => ({
278
+ paths: seeds.map((s) => [s, ...expander.nodes]),
279
+ }),
280
+ }));
281
+ // Register cases
282
+ caseRegistry.registerAll([
283
+ {
284
+ case: {
285
+ caseId: "karate-v1",
286
+ name: "Zachary Karate Club",
287
+ caseClass: "social-network",
288
+ inputs: { summary: { nodes: 34, edges: 78 } },
289
+ },
290
+ getInput: async () => ({ nodes: ["1", "2", "3", "34"] }),
291
+ getInputs: () => ({
292
+ expander: null,
293
+ seeds: ["1", "34"],
294
+ }),
295
+ },
296
+ {
297
+ case: {
298
+ caseId: "dolphins-v1",
299
+ name: "Dolphin Network",
300
+ caseClass: "social-network",
301
+ inputs: { summary: { nodes: 62, edges: 159 } },
302
+ },
303
+ getInput: async () => ({ nodes: ["beak", "fin", "tail"] }),
304
+ getInputs: () => ({
305
+ expander: null,
306
+ seeds: ["beak", "tail"],
307
+ }),
308
+ },
309
+ ]);
310
+ // Verify setup
311
+ assert.strictEqual(sutRegistry.size, 2);
312
+ assert.strictEqual(caseRegistry.size, 2);
313
+ // Get primary and baselines
314
+ const primarySuts = sutRegistry.getByRole("primary");
315
+ const baselineSuts = sutRegistry.getByRole("baseline");
316
+ assert.strictEqual(primarySuts.length, 1);
317
+ assert.strictEqual(primarySuts[0].registration.id, "degree-prioritised-v1.0.0");
318
+ assert.strictEqual(baselineSuts.length, 1);
319
+ // Execute for one case
320
+ const expander = await caseRegistry.getInput("karate-v1");
321
+ const inputs = caseRegistry.getInputs("karate-v1");
322
+ const instance = sutRegistry.create("degree-prioritised-v1.0.0");
323
+ const result = await instance.run({ expander, seeds: inputs.seeds });
324
+ assert.strictEqual(result.paths.length, 2); // One path per seed
325
+ assert.strictEqual(result.paths[0][0], "1"); // First seed
326
+ });
327
+ it("should verify registration data is accessible", () => {
328
+ const sutRegistry = new SUTRegistry();
329
+ sutRegistry.register({
330
+ id: "dp-v1.0.0",
331
+ name: "Degree-Prioritised",
332
+ version: "1.0.0",
333
+ role: "primary",
334
+ config: { maxDepth: 3, hubThreshold: 0.9 },
335
+ tags: ["bidirectional"],
336
+ description: "Hub-avoiding expansion algorithm",
337
+ }, () => ({
338
+ id: "dp-v1.0.0",
339
+ config: {},
340
+ run: async () => ({}),
341
+ }));
342
+ const dp = sutRegistry.get("dp-v1.0.0");
343
+ assert.ok(dp);
344
+ assert.strictEqual(dp.registration.role, "primary");
345
+ assert.strictEqual(dp.registration.config.maxDepth, 3);
346
+ assert.strictEqual(dp.registration.config.hubThreshold, 0.9);
347
+ assert.ok(dp.registration.tags.includes("bidirectional"));
348
+ assert.strictEqual(dp.registration.description, "Hub-avoiding expansion algorithm");
349
+ });
350
+ });
351
+ });
352
+ //# sourceMappingURL=registry-executor.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-executor.integration.test.js","sourceRoot":"","sources":["../../src/__tests__/registry-executor.integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Test Helpers for Framework Tests
3
+ *
4
+ * Factory functions for creating mock evaluation results, aggregates,
5
+ * and claims for testing the evaluation framework.
6
+ */
7
+ import type { AggregatedResult, SummaryStats } from "../types/aggregate.js";
8
+ import type { ClaimEvaluation, ClaimEvidence, ClaimStatus, EvaluationClaim } from "../types/claims.js";
9
+ import type { EvaluationResult } from "../types/result.js";
10
+ import type { SutRole } from "../types/sut.js";
11
+ /**
12
+ * Create a mock EvaluationResult with sensible defaults.
13
+ *
14
+ * @param overrides - Partial fields to override defaults
15
+ * @returns A complete EvaluationResult
16
+ */
17
+ export declare const createMockResult: (overrides?: Partial<EvaluationResult>) => EvaluationResult;
18
+ /**
19
+ * Create multiple mock results for a specific SUT.
20
+ *
21
+ * @param count - Number of results to create
22
+ * @param sut - SUT identifier
23
+ * @param role - SUT role (default: "primary")
24
+ * @param caseClass - Optional case class
25
+ * @returns Array of EvaluationResults
26
+ */
27
+ export declare const createMockResults: (count: number, sut: string, role?: SutRole, caseClass?: string) => EvaluationResult[];
28
+ /**
29
+ * Create mock SummaryStats.
30
+ *
31
+ * @param values - Array of values to compute stats from
32
+ * @returns SummaryStats
33
+ */
34
+ export declare const createMockSummaryStats: (values: number[]) => SummaryStats;
35
+ /**
36
+ * Create mock AggregatedResult.
37
+ *
38
+ * @param sut - SUT identifier
39
+ * @param role - SUT role
40
+ * @param caseClass - Optional case class
41
+ * @param metrics - Optional metrics map
42
+ * @returns AggregatedResult
43
+ */
44
+ export declare const createMockAggregate: (sut: string, role?: SutRole, caseClass?: string, metrics?: Record<string, SummaryStats>) => AggregatedResult;
45
+ /**
46
+ * Create mock aggregates for testing comparisons.
47
+ *
48
+ * @returns Array with primary and baseline aggregates
49
+ */
50
+ export declare const createMockAggregates: () => AggregatedResult[];
51
+ /**
52
+ * Create a mock EvaluationClaim.
53
+ *
54
+ * @param overrides - Partial fields to override defaults
55
+ * @returns EvaluationClaim
56
+ */
57
+ export declare const createMockClaim: (overrides?: Partial<EvaluationClaim>) => EvaluationClaim;
58
+ /**
59
+ * Create mock ClaimEvidence.
60
+ *
61
+ * @param overrides - Partial fields to override defaults
62
+ * @returns ClaimEvidence
63
+ */
64
+ export declare const createMockEvidence: (overrides?: Partial<ClaimEvidence>) => ClaimEvidence;
65
+ /**
66
+ * Create mock ClaimEvaluation.
67
+ *
68
+ * @param status - Claim status
69
+ * @param claim - Optional claim
70
+ * @param evidence - Optional evidence
71
+ * @returns ClaimEvaluation
72
+ */
73
+ export declare const createMockClaimEvaluation: (status?: ClaimStatus, claim?: Partial<EvaluationClaim>, evidence?: Partial<ClaimEvidence>) => ClaimEvaluation;
74
+ /**
75
+ * Create an array of mock results with varying metrics.
76
+ * Useful for testing aggregation and statistics.
77
+ *
78
+ * @param executionTimes - Array of execution times
79
+ * @param sut - SUT identifier
80
+ * @param role - SUT role
81
+ * @returns Array of EvaluationResults
82
+ */
83
+ export declare const createMockResultsWithMetrics: (executionTimes: number[], sut: string, role?: SutRole) => EvaluationResult[];
84
+ /**
85
+ * Create a minimal valid result for validation tests.
86
+ * Returns the bare minimum fields required by the schema.
87
+ */
88
+ export declare const createMinimalValidResult: () => EvaluationResult;
89
+ /**
90
+ * Create an invalid result missing required fields.
91
+ * Useful for testing validation logic.
92
+ */
93
+ export declare const createInvalidResult: () => unknown;
94
+ //# sourceMappingURL=test-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../src/__tests__/test-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EACX,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAEX,gBAAgB,EAKhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,YAAY,OAAO,CAAC,gBAAgB,CAAC,KAAG,gBA4CxE,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC7B,OAAO,MAAM,EACb,KAAK,MAAM,EACX,OAAM,OAAmB,EACzB,YAAY,MAAM,KAChB,gBAAgB,EAkBjB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,EAAE,KAAG,YAkCzD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAC/B,KAAK,MAAM,EACX,OAAM,OAAmB,EACzB,YAAY,MAAM,EAClB,UAAU,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KACpC,gBAsBF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAO,gBAAgB,EAavD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,YAAY,OAAO,CAAC,eAAe,CAAC,KAAG,eASrE,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,YAAY,OAAO,CAAC,aAAa,CAAC,KAAG,aAStE,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,GACrC,SAAQ,WAAyB,EACjC,QAAQ,OAAO,CAAC,eAAe,CAAC,EAChC,WAAW,OAAO,CAAC,aAAa,CAAC,KAC/B,eAID,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,GACxC,gBAAgB,MAAM,EAAE,EACxB,KAAK,MAAM,EACX,OAAM,OAAmB,KACvB,gBAAgB,EAejB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAO,gBAwB1C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAO,OAKrC,CAAC"}