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.
- package/README.md +172 -0
- package/bin/ppef.mjs +20 -0
- package/dist/__tests__/framework-pipeline.integration.test.d.ts +7 -0
- package/dist/__tests__/framework-pipeline.integration.test.d.ts.map +1 -0
- package/dist/__tests__/framework-pipeline.integration.test.js +415 -0
- package/dist/__tests__/framework-pipeline.integration.test.js.map +1 -0
- package/dist/__tests__/index-exports.unit.test.d.ts +8 -0
- package/dist/__tests__/index-exports.unit.test.d.ts.map +1 -0
- package/dist/__tests__/index-exports.unit.test.js +127 -0
- package/dist/__tests__/index-exports.unit.test.js.map +1 -0
- package/dist/__tests__/registry-executor.integration.test.d.ts +5 -0
- package/dist/__tests__/registry-executor.integration.test.d.ts.map +1 -0
- package/dist/__tests__/registry-executor.integration.test.js +352 -0
- package/dist/__tests__/registry-executor.integration.test.js.map +1 -0
- package/dist/__tests__/test-helpers.d.ts +94 -0
- package/dist/__tests__/test-helpers.d.ts.map +1 -0
- package/dist/__tests__/test-helpers.js +271 -0
- package/dist/__tests__/test-helpers.js.map +1 -0
- package/dist/aggregation/__tests__/aggregators.unit.test.d.ts +7 -0
- package/dist/aggregation/__tests__/aggregators.unit.test.d.ts.map +1 -0
- package/dist/aggregation/__tests__/aggregators.unit.test.js +350 -0
- package/dist/aggregation/__tests__/aggregators.unit.test.js.map +1 -0
- package/dist/aggregation/__tests__/pipeline.unit.test.d.ts +7 -0
- package/dist/aggregation/__tests__/pipeline.unit.test.d.ts.map +1 -0
- package/dist/aggregation/__tests__/pipeline.unit.test.js +213 -0
- package/dist/aggregation/__tests__/pipeline.unit.test.js.map +1 -0
- package/dist/aggregation/aggregators.d.ts +63 -0
- package/dist/aggregation/aggregators.d.ts.map +1 -0
- package/dist/aggregation/aggregators.js +228 -0
- package/dist/aggregation/aggregators.js.map +1 -0
- package/dist/aggregation/index.d.ts +8 -0
- package/dist/aggregation/index.d.ts.map +1 -0
- package/dist/aggregation/index.js +8 -0
- package/dist/aggregation/index.js.map +1 -0
- package/dist/aggregation/pipeline.d.ts +38 -0
- package/dist/aggregation/pipeline.d.ts.map +1 -0
- package/dist/aggregation/pipeline.js +198 -0
- package/dist/aggregation/pipeline.js.map +1 -0
- package/dist/claims/__tests__/evaluator.unit.test.d.ts +12 -0
- package/dist/claims/__tests__/evaluator.unit.test.d.ts.map +1 -0
- package/dist/claims/__tests__/evaluator.unit.test.js +801 -0
- package/dist/claims/__tests__/evaluator.unit.test.js.map +1 -0
- package/dist/claims/evaluator.d.ts +33 -0
- package/dist/claims/evaluator.d.ts.map +1 -0
- package/dist/claims/evaluator.js +174 -0
- package/dist/claims/evaluator.js.map +1 -0
- package/dist/claims/index.d.ts +7 -0
- package/dist/claims/index.d.ts.map +1 -0
- package/dist/claims/index.js +7 -0
- package/dist/claims/index.js.map +1 -0
- package/dist/cli/__tests__/aggregate.command.unit.test.d.ts +7 -0
- package/dist/cli/__tests__/aggregate.command.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/aggregate.command.unit.test.js +396 -0
- package/dist/cli/__tests__/aggregate.command.unit.test.js.map +1 -0
- package/dist/cli/__tests__/commands.unit.test.d.ts +10 -0
- package/dist/cli/__tests__/commands.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/commands.unit.test.js +217 -0
- package/dist/cli/__tests__/commands.unit.test.js.map +1 -0
- package/dist/cli/__tests__/index.unit.test.d.ts +10 -0
- package/dist/cli/__tests__/index.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/index.unit.test.js +65 -0
- package/dist/cli/__tests__/index.unit.test.js.map +1 -0
- package/dist/cli/__tests__/logger.unit.test.d.ts +11 -0
- package/dist/cli/__tests__/logger.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/logger.unit.test.js +180 -0
- package/dist/cli/__tests__/logger.unit.test.js.map +1 -0
- package/dist/cli/__tests__/module-loader.unit.test.d.ts +11 -0
- package/dist/cli/__tests__/module-loader.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/module-loader.unit.test.js +262 -0
- package/dist/cli/__tests__/module-loader.unit.test.js.map +1 -0
- package/dist/cli/__tests__/output-writer.unit.test.d.ts +10 -0
- package/dist/cli/__tests__/output-writer.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/output-writer.unit.test.js +216 -0
- package/dist/cli/__tests__/output-writer.unit.test.js.map +1 -0
- package/dist/cli/__tests__/plan.command.unit.test.d.ts +7 -0
- package/dist/cli/__tests__/plan.command.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/plan.command.unit.test.js +289 -0
- package/dist/cli/__tests__/plan.command.unit.test.js.map +1 -0
- package/dist/cli/__tests__/run.command.unit.test.d.ts +7 -0
- package/dist/cli/__tests__/run.command.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/run.command.unit.test.js +422 -0
- package/dist/cli/__tests__/run.command.unit.test.js.map +1 -0
- package/dist/cli/__tests__/validate.command.unit.test.d.ts +7 -0
- package/dist/cli/__tests__/validate.command.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/validate.command.unit.test.js +226 -0
- package/dist/cli/__tests__/validate.command.unit.test.js.map +1 -0
- package/dist/cli/command-deps.d.ts +125 -0
- package/dist/cli/command-deps.d.ts.map +1 -0
- package/dist/cli/command-deps.js +7 -0
- package/dist/cli/command-deps.js.map +1 -0
- package/dist/cli/commands/aggregate.d.ts +35 -0
- package/dist/cli/commands/aggregate.d.ts.map +1 -0
- package/dist/cli/commands/aggregate.js +121 -0
- package/dist/cli/commands/aggregate.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +36 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +109 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/run.d.ts +33 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +185 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +27 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +88 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/config-loader.d.ts +30 -0
- package/dist/cli/config-loader.d.ts.map +1 -0
- package/dist/cli/config-loader.js +181 -0
- package/dist/cli/config-loader.js.map +1 -0
- package/dist/cli/index.d.ts +26 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +58 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/logger.d.ts +75 -0
- package/dist/cli/logger.d.ts.map +1 -0
- package/dist/cli/logger.js +131 -0
- package/dist/cli/logger.js.map +1 -0
- package/dist/cli/module-loader.d.ts +46 -0
- package/dist/cli/module-loader.d.ts.map +1 -0
- package/dist/cli/module-loader.js +116 -0
- package/dist/cli/module-loader.js.map +1 -0
- package/dist/cli/output-writer.d.ts +51 -0
- package/dist/cli/output-writer.d.ts.map +1 -0
- package/dist/cli/output-writer.js +65 -0
- package/dist/cli/output-writer.js.map +1 -0
- package/dist/cli/types.d.ts +174 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +7 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/collector/__tests__/result-collector.unit.test.d.ts +7 -0
- package/dist/collector/__tests__/result-collector.unit.test.d.ts.map +1 -0
- package/dist/collector/__tests__/result-collector.unit.test.js +1021 -0
- package/dist/collector/__tests__/result-collector.unit.test.js.map +1 -0
- package/dist/collector/__tests__/schema.unit.test.d.ts +7 -0
- package/dist/collector/__tests__/schema.unit.test.d.ts.map +1 -0
- package/dist/collector/__tests__/schema.unit.test.js +360 -0
- package/dist/collector/__tests__/schema.unit.test.js.map +1 -0
- package/dist/collector/index.d.ts +8 -0
- package/dist/collector/index.d.ts.map +1 -0
- package/dist/collector/index.js +8 -0
- package/dist/collector/index.js.map +1 -0
- package/dist/collector/result-collector.d.ts +159 -0
- package/dist/collector/result-collector.d.ts.map +1 -0
- package/dist/collector/result-collector.js +213 -0
- package/dist/collector/result-collector.js.map +1 -0
- package/dist/collector/schema.d.ts +34 -0
- package/dist/collector/schema.d.ts.map +1 -0
- package/dist/collector/schema.js +145 -0
- package/dist/collector/schema.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.d.ts +10 -0
- package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.d.ts.map +1 -0
- package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.js +122 -0
- package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-manager.integration.test.d.ts +7 -0
- package/dist/executor/__tests__/checkpoint-manager.integration.test.d.ts.map +1 -0
- package/dist/executor/__tests__/checkpoint-manager.integration.test.js +330 -0
- package/dist/executor/__tests__/checkpoint-manager.integration.test.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-manager.unit.test.d.ts +7 -0
- package/dist/executor/__tests__/checkpoint-manager.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/checkpoint-manager.unit.test.js +531 -0
- package/dist/executor/__tests__/checkpoint-manager.unit.test.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts +8 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts.map +1 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js +493 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.d.ts +8 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.js +164 -0
- package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-storage.unit.test.d.ts +7 -0
- package/dist/executor/__tests__/checkpoint-storage.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/checkpoint-storage.unit.test.js +490 -0
- package/dist/executor/__tests__/checkpoint-storage.unit.test.js.map +1 -0
- package/dist/executor/__tests__/executor.unit.test.d.ts +7 -0
- package/dist/executor/__tests__/executor.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/executor.unit.test.js +202 -0
- package/dist/executor/__tests__/executor.unit.test.js.map +1 -0
- package/dist/executor/__tests__/memory-monitor.unit.test.d.ts +7 -0
- package/dist/executor/__tests__/memory-monitor.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/memory-monitor.unit.test.js +285 -0
- package/dist/executor/__tests__/memory-monitor.unit.test.js.map +1 -0
- package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.d.ts +12 -0
- package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.d.ts.map +1 -0
- package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.js +196 -0
- package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.js.map +1 -0
- package/dist/executor/__tests__/parallel-executor.integration.test.d.ts +7 -0
- package/dist/executor/__tests__/parallel-executor.integration.test.d.ts.map +1 -0
- package/dist/executor/__tests__/parallel-executor.integration.test.js +249 -0
- package/dist/executor/__tests__/parallel-executor.integration.test.js.map +1 -0
- package/dist/executor/__tests__/parallel-executor.unit.test.d.ts +8 -0
- package/dist/executor/__tests__/parallel-executor.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/parallel-executor.unit.test.js +473 -0
- package/dist/executor/__tests__/parallel-executor.unit.test.js.map +1 -0
- package/dist/executor/__tests__/run-id.unit.test.d.ts +8 -0
- package/dist/executor/__tests__/run-id.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/run-id.unit.test.js +156 -0
- package/dist/executor/__tests__/run-id.unit.test.js.map +1 -0
- package/dist/executor/__tests__/worker-entry.integration.test.d.ts +24 -0
- package/dist/executor/__tests__/worker-entry.integration.test.d.ts.map +1 -0
- package/dist/executor/__tests__/worker-entry.integration.test.js +82 -0
- package/dist/executor/__tests__/worker-entry.integration.test.js.map +1 -0
- package/dist/executor/__tests__/worker-entry.unit.test.d.ts +7 -0
- package/dist/executor/__tests__/worker-entry.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/worker-entry.unit.test.js +364 -0
- package/dist/executor/__tests__/worker-entry.unit.test.js.map +1 -0
- package/dist/executor/checkpoint-manager.d.ts +231 -0
- package/dist/executor/checkpoint-manager.d.ts.map +1 -0
- package/dist/executor/checkpoint-manager.js +395 -0
- package/dist/executor/checkpoint-manager.js.map +1 -0
- package/dist/executor/checkpoint-storage.d.ts +230 -0
- package/dist/executor/checkpoint-storage.d.ts.map +1 -0
- package/dist/executor/checkpoint-storage.js +370 -0
- package/dist/executor/checkpoint-storage.js.map +1 -0
- package/dist/executor/checkpoint-types.d.ts +48 -0
- package/dist/executor/checkpoint-types.d.ts.map +1 -0
- package/dist/executor/checkpoint-types.js +8 -0
- package/dist/executor/checkpoint-types.js.map +1 -0
- package/dist/executor/executor.d.ts +164 -0
- package/dist/executor/executor.d.ts.map +1 -0
- package/dist/executor/executor.js +408 -0
- package/dist/executor/executor.js.map +1 -0
- package/dist/executor/index.d.ts +11 -0
- package/dist/executor/index.d.ts.map +1 -0
- package/dist/executor/index.js +11 -0
- package/dist/executor/index.js.map +1 -0
- package/dist/executor/memory-monitor.d.ts +115 -0
- package/dist/executor/memory-monitor.d.ts.map +1 -0
- package/dist/executor/memory-monitor.js +168 -0
- package/dist/executor/memory-monitor.js.map +1 -0
- package/dist/executor/parallel-executor.d.ts +239 -0
- package/dist/executor/parallel-executor.d.ts.map +1 -0
- package/dist/executor/parallel-executor.js +329 -0
- package/dist/executor/parallel-executor.js.map +1 -0
- package/dist/executor/run-id.d.ts +71 -0
- package/dist/executor/run-id.d.ts.map +1 -0
- package/dist/executor/run-id.js +74 -0
- package/dist/executor/run-id.js.map +1 -0
- package/dist/executor/worker-entry.d.ts +10 -0
- package/dist/executor/worker-entry.d.ts.map +1 -0
- package/dist/executor/worker-entry.js +42 -0
- package/dist/executor/worker-entry.js.map +1 -0
- package/dist/executor/worker-executor.d.ts +156 -0
- package/dist/executor/worker-executor.d.ts.map +1 -0
- package/dist/executor/worker-executor.js +88 -0
- package/dist/executor/worker-executor.js.map +1 -0
- package/dist/index.cjs +11 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/registry/case-registry.d.ts +113 -0
- package/dist/registry/case-registry.d.ts.map +1 -0
- package/dist/registry/case-registry.js +160 -0
- package/dist/registry/case-registry.js.map +1 -0
- package/dist/registry/index.d.ts +8 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +8 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/sut-registry.d.ts +96 -0
- package/dist/registry/sut-registry.d.ts.map +1 -0
- package/dist/registry/sut-registry.js +126 -0
- package/dist/registry/sut-registry.js.map +1 -0
- package/dist/renderers/index.d.ts +10 -0
- package/dist/renderers/index.d.ts.map +1 -0
- package/dist/renderers/index.js +9 -0
- package/dist/renderers/index.js.map +1 -0
- package/dist/renderers/latex-renderer.d.ts +84 -0
- package/dist/renderers/latex-renderer.d.ts.map +1 -0
- package/dist/renderers/latex-renderer.js +208 -0
- package/dist/renderers/latex-renderer.js.map +1 -0
- package/dist/renderers/types.d.ts +106 -0
- package/dist/renderers/types.d.ts.map +1 -0
- package/dist/renderers/types.js +23 -0
- package/dist/renderers/types.js.map +1 -0
- package/dist/robustness/__tests__/analyzer.unit.test.d.ts +11 -0
- package/dist/robustness/__tests__/analyzer.unit.test.d.ts.map +1 -0
- package/dist/robustness/__tests__/analyzer.unit.test.js +455 -0
- package/dist/robustness/__tests__/analyzer.unit.test.js.map +1 -0
- package/dist/robustness/__tests__/perturbations.unit.test.d.ts +11 -0
- package/dist/robustness/__tests__/perturbations.unit.test.d.ts.map +1 -0
- package/dist/robustness/__tests__/perturbations.unit.test.js +284 -0
- package/dist/robustness/__tests__/perturbations.unit.test.js.map +1 -0
- package/dist/robustness/analyzer.d.ts +61 -0
- package/dist/robustness/analyzer.d.ts.map +1 -0
- package/dist/robustness/analyzer.js +191 -0
- package/dist/robustness/analyzer.js.map +1 -0
- package/dist/robustness/index.d.ts +8 -0
- package/dist/robustness/index.d.ts.map +1 -0
- package/dist/robustness/index.js +8 -0
- package/dist/robustness/index.js.map +1 -0
- package/dist/robustness/perturbations.d.ts +46 -0
- package/dist/robustness/perturbations.d.ts.map +1 -0
- package/dist/robustness/perturbations.js +184 -0
- package/dist/robustness/perturbations.js.map +1 -0
- package/dist/statistical/__tests__/mann-whitney-u.unit.test.d.ts +7 -0
- package/dist/statistical/__tests__/mann-whitney-u.unit.test.d.ts.map +1 -0
- package/dist/statistical/__tests__/mann-whitney-u.unit.test.js +185 -0
- package/dist/statistical/__tests__/mann-whitney-u.unit.test.js.map +1 -0
- package/dist/statistical/index.d.ts +8 -0
- package/dist/statistical/index.d.ts.map +1 -0
- package/dist/statistical/index.js +8 -0
- package/dist/statistical/index.js.map +1 -0
- package/dist/statistical/mann-whitney-u.d.ts +62 -0
- package/dist/statistical/mann-whitney-u.d.ts.map +1 -0
- package/dist/statistical/mann-whitney-u.js +127 -0
- package/dist/statistical/mann-whitney-u.js.map +1 -0
- package/dist/types/aggregate.d.ts +124 -0
- package/dist/types/aggregate.d.ts.map +1 -0
- package/dist/types/aggregate.js +9 -0
- package/dist/types/aggregate.js.map +1 -0
- package/dist/types/case.d.ts +105 -0
- package/dist/types/case.d.ts.map +1 -0
- package/dist/types/case.js +10 -0
- package/dist/types/case.js.map +1 -0
- package/dist/types/claims.d.ts +122 -0
- package/dist/types/claims.d.ts.map +1 -0
- package/dist/types/claims.js +14 -0
- package/dist/types/claims.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/perturbation.d.ts +105 -0
- package/dist/types/perturbation.d.ts.map +1 -0
- package/dist/types/perturbation.js +9 -0
- package/dist/types/perturbation.js.map +1 -0
- package/dist/types/result.d.ts +150 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +12 -0
- package/dist/types/result.js.map +1 -0
- package/dist/types/sut.d.ts +128 -0
- package/dist/types/sut.d.ts.map +1 -0
- package/dist/types/sut.js +12 -0
- package/dist/types/sut.js.map +1 -0
- package/package.json +290 -7
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aggregation Pipeline
|
|
3
|
+
*
|
|
4
|
+
* Transforms raw evaluation results into aggregated summaries.
|
|
5
|
+
* This is the core of the Execute -> Aggregate -> Render pipeline.
|
|
6
|
+
*/
|
|
7
|
+
import { computeComparison, computeSummaryStats } from "./aggregators.js";
|
|
8
|
+
/**
|
|
9
|
+
* Default pipeline options.
|
|
10
|
+
*/
|
|
11
|
+
const DEFAULT_OPTIONS = {
|
|
12
|
+
groupByCaseClass: true,
|
|
13
|
+
computeComparisons: true,
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Aggregate evaluation results into summaries.
|
|
17
|
+
*
|
|
18
|
+
* @param results - Raw evaluation results
|
|
19
|
+
* @param options - Aggregation options
|
|
20
|
+
* @returns Aggregated results
|
|
21
|
+
*/
|
|
22
|
+
export const aggregateResults = (results, options = {}) => {
|
|
23
|
+
const options_ = { ...DEFAULT_OPTIONS, ...options };
|
|
24
|
+
const aggregates = [];
|
|
25
|
+
// Group results
|
|
26
|
+
const groups = groupResults(results, options_.groupByCaseClass ?? true);
|
|
27
|
+
// Aggregate each group
|
|
28
|
+
for (const [key, groupResults] of groups) {
|
|
29
|
+
const aggregate = aggregateGroup(key, groupResults, options_.metrics);
|
|
30
|
+
aggregates.push(aggregate);
|
|
31
|
+
}
|
|
32
|
+
// Compute comparisons if enabled
|
|
33
|
+
if (options_.computeComparisons) {
|
|
34
|
+
computeAllComparisons(aggregates, results, options_);
|
|
35
|
+
}
|
|
36
|
+
return aggregates;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Group results by SUT and optionally by case class.
|
|
40
|
+
* @param results
|
|
41
|
+
* @param groupByCaseClass
|
|
42
|
+
*/
|
|
43
|
+
const groupResults = (results, groupByCaseClass) => {
|
|
44
|
+
const groups = new Map();
|
|
45
|
+
for (const result of results) {
|
|
46
|
+
const key = groupByCaseClass && result.run.caseClass
|
|
47
|
+
? `${result.run.sut}::${result.run.caseClass}`
|
|
48
|
+
: result.run.sut;
|
|
49
|
+
const existing = groups.get(key) ?? [];
|
|
50
|
+
existing.push(result);
|
|
51
|
+
groups.set(key, existing);
|
|
52
|
+
}
|
|
53
|
+
return groups;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Aggregate a single group of results.
|
|
57
|
+
* @param key
|
|
58
|
+
* @param results
|
|
59
|
+
* @param metricNames
|
|
60
|
+
*/
|
|
61
|
+
const aggregateGroup = (key, results, metricNames) => {
|
|
62
|
+
const [sut, caseClass] = key.split("::");
|
|
63
|
+
const firstResult = results[0];
|
|
64
|
+
// Collect all unique cases
|
|
65
|
+
const uniqueCases = new Set(results.map((r) => r.run.caseId));
|
|
66
|
+
// Correctness aggregation
|
|
67
|
+
const validCount = results.filter((r) => r.correctness.valid).length;
|
|
68
|
+
const producedCount = results.filter((r) => r.correctness.producedOutput).length;
|
|
69
|
+
const matchedCount = results.filter((r) => r.correctness.matchesExpected === true).length;
|
|
70
|
+
const hasExpected = results.some((r) => r.correctness.expectedExists);
|
|
71
|
+
// Metric aggregation
|
|
72
|
+
const metricStats = {};
|
|
73
|
+
const allMetricNames = metricNames ?? getAllMetricNames(results);
|
|
74
|
+
for (const metricName of allMetricNames) {
|
|
75
|
+
const values = results
|
|
76
|
+
.map((r) => r.metrics.numeric[metricName])
|
|
77
|
+
.filter((v) => typeof v === "number" && !Number.isNaN(v));
|
|
78
|
+
if (values.length > 0) {
|
|
79
|
+
metricStats[metricName] = computeSummaryStats(values);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Coverage
|
|
83
|
+
const metricCoverage = {};
|
|
84
|
+
for (const metricName of allMetricNames) {
|
|
85
|
+
const count = results.filter((r) => metricName in r.metrics.numeric).length;
|
|
86
|
+
metricCoverage[metricName] = count / results.length;
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
sut,
|
|
90
|
+
sutRole: firstResult.run.sutRole,
|
|
91
|
+
caseClass,
|
|
92
|
+
group: {
|
|
93
|
+
runCount: results.length,
|
|
94
|
+
caseCount: uniqueCases.size,
|
|
95
|
+
},
|
|
96
|
+
correctness: {
|
|
97
|
+
validRate: results.length > 0 ? validCount / results.length : 0,
|
|
98
|
+
producedOutputRate: results.length > 0 ? producedCount / results.length : 0,
|
|
99
|
+
matchesExpectedRate: hasExpected && results.length > 0 ? matchedCount / results.length : undefined,
|
|
100
|
+
},
|
|
101
|
+
metrics: metricStats,
|
|
102
|
+
coverage: {
|
|
103
|
+
caseCoverage: 1, // Would need total cases to compute properly
|
|
104
|
+
metricCoverage,
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Get all unique metric names from results.
|
|
110
|
+
* @param results
|
|
111
|
+
*/
|
|
112
|
+
const getAllMetricNames = (results) => {
|
|
113
|
+
const names = new Set();
|
|
114
|
+
for (const result of results) {
|
|
115
|
+
for (const name of Object.keys(result.metrics.numeric)) {
|
|
116
|
+
names.add(name);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return [...names];
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Compute comparisons between primary and baseline SUTs.
|
|
123
|
+
* @param aggregates
|
|
124
|
+
* @param results
|
|
125
|
+
* @param options
|
|
126
|
+
*/
|
|
127
|
+
const computeAllComparisons = (aggregates, results, options) => {
|
|
128
|
+
// Find primary and baselines
|
|
129
|
+
const primarySut = options.primarySut ?? aggregates.find((a) => a.sutRole === "primary")?.sut;
|
|
130
|
+
const baselineSuts = options.baselineSuts ?? aggregates.filter((a) => a.sutRole === "baseline").map((a) => a.sut);
|
|
131
|
+
if (!primarySut || baselineSuts.length === 0) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
// For each primary aggregate, compute comparisons
|
|
135
|
+
const primaryAggregates = aggregates.filter((a) => a.sut === primarySut);
|
|
136
|
+
for (const primaryAgg of primaryAggregates) {
|
|
137
|
+
primaryAgg.comparisons = {};
|
|
138
|
+
for (const baselineSut of baselineSuts) {
|
|
139
|
+
// Find matching baseline aggregate (same case class)
|
|
140
|
+
const baselineAgg = aggregates.find((a) => a.sut === baselineSut && a.caseClass === primaryAgg.caseClass);
|
|
141
|
+
if (!baselineAgg)
|
|
142
|
+
continue;
|
|
143
|
+
// Compute comparison for each shared metric
|
|
144
|
+
const comparisonDeltas = {};
|
|
145
|
+
const comparisonRatios = {};
|
|
146
|
+
for (const metricName of Object.keys(primaryAgg.metrics)) {
|
|
147
|
+
const primaryStats = primaryAgg.metrics[metricName];
|
|
148
|
+
const baselineStats = baselineAgg.metrics[metricName];
|
|
149
|
+
comparisonDeltas[metricName] = primaryStats.mean - baselineStats.mean;
|
|
150
|
+
comparisonRatios[metricName] =
|
|
151
|
+
baselineStats.mean === 0 ? Infinity : primaryStats.mean / baselineStats.mean;
|
|
152
|
+
}
|
|
153
|
+
// Get raw results for detailed comparison (matched by case ID)
|
|
154
|
+
const primaryResults = results.filter((r) => r.run.sut === primarySut && r.run.caseClass === primaryAgg.caseClass);
|
|
155
|
+
const baselineResults = results.filter((r) => r.run.sut === baselineSut && r.run.caseClass === primaryAgg.caseClass);
|
|
156
|
+
// Compute statistical comparison using first shared metric
|
|
157
|
+
const sharedMetrics = Object.keys(primaryAgg.metrics).filter((m) => m in baselineAgg.metrics);
|
|
158
|
+
let comparisonMetrics;
|
|
159
|
+
if (sharedMetrics.length > 0) {
|
|
160
|
+
const metricName = sharedMetrics[0];
|
|
161
|
+
comparisonMetrics = computeComparison(primaryResults, baselineResults, metricName);
|
|
162
|
+
}
|
|
163
|
+
// Merge per-metric deltas with statistical metrics
|
|
164
|
+
primaryAgg.comparisons[baselineSut] = {
|
|
165
|
+
deltas: comparisonDeltas,
|
|
166
|
+
ratios: comparisonRatios,
|
|
167
|
+
betterRate: comparisonMetrics?.betterRate,
|
|
168
|
+
uStatistic: comparisonMetrics?.uStatistic,
|
|
169
|
+
pValue: comparisonMetrics?.pValue,
|
|
170
|
+
effectSize: comparisonMetrics?.effectSize,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Create a full aggregation output document.
|
|
177
|
+
* @param aggregates
|
|
178
|
+
* @param results
|
|
179
|
+
*/
|
|
180
|
+
export const createAggregationOutput = (aggregates, results) => {
|
|
181
|
+
const uniqueSuts = [...new Set(aggregates.map((a) => a.sut))];
|
|
182
|
+
const uniqueCaseClasses = [
|
|
183
|
+
...new Set(aggregates.map((a) => a.caseClass).filter((c) => c !== undefined)),
|
|
184
|
+
];
|
|
185
|
+
const uniqueCases = [...new Set(results.map((r) => r.run.caseId))];
|
|
186
|
+
return {
|
|
187
|
+
version: "1.0.0",
|
|
188
|
+
timestamp: new Date().toISOString(),
|
|
189
|
+
aggregates,
|
|
190
|
+
metadata: {
|
|
191
|
+
totalRuns: results.length,
|
|
192
|
+
totalCases: uniqueCases.length,
|
|
193
|
+
sutsIncluded: uniqueSuts,
|
|
194
|
+
caseClassesIncluded: uniqueCaseClasses.length > 0 ? uniqueCaseClasses : undefined,
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/aggregation/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for Claims Evaluator
|
|
3
|
+
*
|
|
4
|
+
* Tests the evaluateClaim function and related functionality including:
|
|
5
|
+
* - Satisfied claims with various directions
|
|
6
|
+
* - Violated claims
|
|
7
|
+
* - Inconclusive results from missing data
|
|
8
|
+
* - Evidence computation (delta, ratio, pValue, effectSize)
|
|
9
|
+
* - Scope filtering with caseClass constraints
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=evaluator.unit.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluator.unit.test.d.ts","sourceRoot":"","sources":["../../../src/claims/__tests__/evaluator.unit.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|