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.
- package/README.md +76 -125
- package/bin/ppef.mjs +20 -0
- package/dist/__tests__/cli/evaluate-command.integration.test.d.ts +8 -0
- package/dist/__tests__/cli/evaluate-command.integration.test.d.ts.map +1 -0
- package/dist/__tests__/cli/evaluate-command.integration.test.js +308 -0
- package/dist/__tests__/cli/evaluate-command.integration.test.js.map +1 -0
- package/dist/__tests__/evaluators/claims-evaluator.unit.test.d.ts +8 -0
- package/dist/__tests__/evaluators/claims-evaluator.unit.test.d.ts.map +1 -0
- package/dist/__tests__/evaluators/claims-evaluator.unit.test.js +405 -0
- package/dist/__tests__/evaluators/claims-evaluator.unit.test.js.map +1 -0
- package/dist/__tests__/evaluators/metrics-evaluator.unit.test.d.ts +8 -0
- package/dist/__tests__/evaluators/metrics-evaluator.unit.test.d.ts.map +1 -0
- package/dist/__tests__/evaluators/metrics-evaluator.unit.test.js +424 -0
- package/dist/__tests__/evaluators/metrics-evaluator.unit.test.js.map +1 -0
- package/dist/__tests__/evaluators/registry.unit.test.d.ts +7 -0
- package/dist/__tests__/evaluators/registry.unit.test.d.ts.map +1 -0
- package/dist/__tests__/evaluators/registry.unit.test.js +173 -0
- package/dist/__tests__/evaluators/registry.unit.test.js.map +1 -0
- package/dist/__tests__/evaluators/robustness-evaluator.unit.test.d.ts +8 -0
- package/dist/__tests__/evaluators/robustness-evaluator.unit.test.d.ts.map +1 -0
- package/dist/__tests__/evaluators/robustness-evaluator.unit.test.js +260 -0
- package/dist/__tests__/evaluators/robustness-evaluator.unit.test.js.map +1 -0
- package/dist/__tests__/framework-pipeline.integration.test.js +49 -20
- package/dist/__tests__/framework-pipeline.integration.test.js.map +1 -1
- 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 +124 -0
- package/dist/__tests__/index-exports.unit.test.js.map +1 -0
- package/dist/__tests__/registry-executor.integration.test.js +12 -9
- package/dist/__tests__/registry-executor.integration.test.js.map +1 -1
- 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 +9 -0
- package/dist/aggregation/aggregators.d.ts.map +1 -1
- package/dist/aggregation/aggregators.js +1 -1
- package/dist/aggregation/aggregators.js.map +1 -1
- package/dist/aggregation/index.d.ts +1 -1
- package/dist/aggregation/index.d.ts.map +1 -1
- package/dist/aggregation/index.js +1 -1
- package/dist/aggregation/index.js.map +1 -1
- package/dist/aggregation/pipeline.d.ts.map +1 -1
- package/dist/aggregation/pipeline.js +40 -3
- package/dist/aggregation/pipeline.js.map +1 -1
- package/dist/claims/index.d.ts +6 -3
- package/dist/claims/index.d.ts.map +1 -1
- package/dist/claims/index.js +6 -3
- package/dist/claims/index.js.map +1 -1
- 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 +399 -0
- package/dist/cli/__tests__/aggregate.command.unit.test.js.map +1 -0
- package/dist/cli/__tests__/binary-sut.integration.test.d.ts +8 -0
- package/dist/cli/__tests__/binary-sut.integration.test.d.ts.map +1 -0
- package/dist/cli/__tests__/binary-sut.integration.test.js +165 -0
- package/dist/cli/__tests__/binary-sut.integration.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__/config-loader.unit.test.d.ts +7 -0
- package/dist/cli/__tests__/config-loader.unit.test.d.ts.map +1 -0
- package/dist/cli/__tests__/config-loader.unit.test.js +611 -0
- package/dist/cli/__tests__/config-loader.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 +137 -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 +124 -0
- package/dist/cli/commands/aggregate.js.map +1 -0
- package/dist/cli/commands/evaluate.d.ts +41 -0
- package/dist/cli/commands/evaluate.d.ts.map +1 -0
- package/dist/cli/commands/evaluate.js +287 -0
- package/dist/cli/commands/evaluate.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 +277 -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 +27 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +60 -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 +68 -0
- package/dist/cli/module-loader.d.ts.map +1 -0
- package/dist/cli/module-loader.js +134 -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 +193 -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/evaluators/claims-evaluator.d.ts +87 -0
- package/dist/evaluators/claims-evaluator.d.ts.map +1 -0
- package/dist/evaluators/claims-evaluator.js +289 -0
- package/dist/evaluators/claims-evaluator.js.map +1 -0
- package/dist/evaluators/exploratory-evaluator.d.ts +136 -0
- package/dist/evaluators/exploratory-evaluator.d.ts.map +1 -0
- package/dist/evaluators/exploratory-evaluator.js +545 -0
- package/dist/evaluators/exploratory-evaluator.js.map +1 -0
- package/dist/evaluators/index.d.ts +13 -0
- package/dist/evaluators/index.d.ts.map +1 -0
- package/dist/evaluators/index.js +14 -0
- package/dist/evaluators/index.js.map +1 -0
- package/dist/evaluators/metrics-evaluator.d.ts +114 -0
- package/dist/evaluators/metrics-evaluator.d.ts.map +1 -0
- package/dist/evaluators/metrics-evaluator.js +433 -0
- package/dist/evaluators/metrics-evaluator.js.map +1 -0
- package/dist/evaluators/registry.d.ts +106 -0
- package/dist/evaluators/registry.d.ts.map +1 -0
- package/dist/evaluators/registry.js +148 -0
- package/dist/evaluators/registry.js.map +1 -0
- package/dist/evaluators/robustness-evaluator.d.ts +57 -0
- package/dist/evaluators/robustness-evaluator.d.ts.map +1 -0
- package/dist/evaluators/robustness-evaluator.js +186 -0
- package/dist/evaluators/robustness-evaluator.js.map +1 -0
- package/dist/executor/__tests__/binary-sut.unit.test.d.ts +8 -0
- package/dist/executor/__tests__/binary-sut.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/binary-sut.unit.test.js +313 -0
- package/dist/executor/__tests__/binary-sut.unit.test.js.map +1 -0
- package/dist/executor/__tests__/checkpoint-manager.unit.test.js +83 -1
- package/dist/executor/__tests__/checkpoint-manager.unit.test.js.map +1 -1
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts +3 -6
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts.map +1 -1
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js +428 -159
- package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js.map +1 -1
- package/dist/executor/__tests__/checkpoint-storage.unit.test.js +148 -1
- package/dist/executor/__tests__/checkpoint-storage.unit.test.js.map +1 -1
- package/dist/executor/__tests__/executor.unit.test.js +123 -8
- package/dist/executor/__tests__/executor.unit.test.js.map +1 -1
- 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-executor.unit.test.d.ts +2 -1
- package/dist/executor/__tests__/parallel-executor.unit.test.d.ts.map +1 -1
- package/dist/executor/__tests__/parallel-executor.unit.test.js +426 -156
- package/dist/executor/__tests__/parallel-executor.unit.test.js.map +1 -1
- package/dist/executor/__tests__/resource-calculator.unit.test.d.ts +10 -0
- package/dist/executor/__tests__/resource-calculator.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/resource-calculator.unit.test.js +104 -0
- package/dist/executor/__tests__/resource-calculator.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/__tests__/worker-threads-executor.unit.test.d.ts +8 -0
- package/dist/executor/__tests__/worker-threads-executor.unit.test.d.ts.map +1 -0
- package/dist/executor/__tests__/worker-threads-executor.unit.test.js +276 -0
- package/dist/executor/__tests__/worker-threads-executor.unit.test.js.map +1 -0
- package/dist/executor/binary-sut.d.ts +105 -0
- package/dist/executor/binary-sut.d.ts.map +1 -0
- package/dist/executor/binary-sut.js +174 -0
- package/dist/executor/binary-sut.js.map +1 -0
- package/dist/executor/checkpoint-storage.d.ts.map +1 -1
- package/dist/executor/checkpoint-storage.js +6 -4
- package/dist/executor/checkpoint-storage.js.map +1 -1
- package/dist/executor/executor.d.ts +28 -0
- package/dist/executor/executor.d.ts.map +1 -1
- package/dist/executor/executor.js +85 -24
- package/dist/executor/executor.js.map +1 -1
- package/dist/executor/index.d.ts +4 -0
- package/dist/executor/index.d.ts.map +1 -1
- package/dist/executor/index.js +4 -0
- package/dist/executor/index.js.map +1 -1
- package/dist/executor/parallel-executor.d.ts +186 -0
- package/dist/executor/parallel-executor.d.ts.map +1 -1
- package/dist/executor/parallel-executor.js +218 -83
- package/dist/executor/parallel-executor.js.map +1 -1
- package/dist/executor/resource-calculator.d.ts +49 -0
- package/dist/executor/resource-calculator.d.ts.map +1 -0
- package/dist/executor/resource-calculator.js +129 -0
- package/dist/executor/resource-calculator.js.map +1 -0
- package/dist/executor/run-id.d.ts.map +1 -1
- package/dist/executor/run-id.js +8 -1
- package/dist/executor/run-id.js.map +1 -1
- package/dist/executor/worker-entry.d.ts +2 -0
- package/dist/executor/worker-entry.d.ts.map +1 -1
- package/dist/executor/worker-entry.js +46 -55
- package/dist/executor/worker-entry.js.map +1 -1
- package/dist/executor/worker-executor.d.ts +257 -0
- package/dist/executor/worker-executor.d.ts.map +1 -0
- package/dist/executor/worker-executor.js +308 -0
- package/dist/executor/worker-executor.js.map +1 -0
- package/dist/executor/worker-threads-executor.d.ts +245 -0
- package/dist/executor/worker-threads-executor.d.ts.map +1 -0
- package/dist/executor/worker-threads-executor.js +332 -0
- package/dist/executor/worker-threads-executor.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/renderers/latex-renderer.d.ts +60 -0
- package/dist/renderers/latex-renderer.d.ts.map +1 -1
- package/dist/renderers/latex-renderer.js +299 -0
- package/dist/renderers/latex-renderer.js.map +1 -1
- package/dist/renderers/types.d.ts +9 -0
- package/dist/renderers/types.d.ts.map +1 -1
- package/dist/renderers/types.js.map +1 -1
- 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/index.d.ts +5 -2
- package/dist/robustness/index.d.ts.map +1 -1
- package/dist/robustness/index.js +4 -2
- package/dist/robustness/index.js.map +1 -1
- 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/types/evaluator.d.ts +449 -0
- package/dist/types/evaluator.d.ts.map +1 -0
- package/dist/types/evaluator.js +9 -0
- package/dist/types/evaluator.js.map +1 -0
- package/dist/types/result.d.ts +2 -0
- package/dist/types/result.d.ts.map +1 -1
- package/package.json +8 -1
- package/dist/claims/evaluator.d.ts +0 -33
- package/dist/claims/evaluator.d.ts.map +0 -1
- package/dist/claims/evaluator.js +0 -174
- package/dist/claims/evaluator.js.map +0 -1
- package/dist/robustness/analyzer.d.ts +0 -61
- package/dist/robustness/analyzer.d.ts.map +0 -1
- package/dist/robustness/analyzer.js +0 -191
- 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 {
|
|
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
|
|
113
|
-
assert.strictEqual(dpAggregate
|
|
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
|
-
|
|
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) =>
|
|
147
|
-
// Step 4:
|
|
148
|
-
const summary =
|
|
149
|
-
assert.strictEqual(summary.
|
|
150
|
-
assert.strictEqual(summary.
|
|
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"]
|
|
166
|
-
nodesExpanded: a.metrics["nodes-expanded"]
|
|
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
|
-
|
|
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
|
|
246
|
-
assert.
|
|
247
|
-
|
|
248
|
-
assert.strictEqual(speedEvidence
|
|
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"]
|
|
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"]
|
|
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
|
-
|
|
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
|
-
|
|
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 @@
|
|
|
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
|