misscp / tests /test_appendix_completion_analysis.py
Anonymous
Initial anonymous MissCP release
32f5a65
from __future__ import annotations
import json
from pathlib import Path
import pandas as pd
def test_run_multigroup_ablation_analysis_writes_expected_outputs(tmp_path: Path) -> None:
from sepsis_mcp.appendix_multigroup_ablation import (
build_multigroup_summary,
write_multigroup_outputs,
)
overall = pd.DataFrame(
[
{
"run_id": "seed0-bin",
"grouping_variant": "binary_selected",
"group_count": 2,
"method": "missingness_aware",
"empirical_coverage": 0.90,
"max_group_coverage_gap": 0.02,
"average_set_size": 0.95,
},
{
"run_id": "seed0-k4",
"grouping_variant": "mask_cluster_k4",
"group_count": 4,
"method": "missingness_aware",
"empirical_coverage": 0.89,
"max_group_coverage_gap": 0.04,
"average_set_size": 0.96,
},
]
)
subgroup = pd.DataFrame(
[
{"run_id": "seed0-bin", "grouping_variant": "binary_selected", "method": "missingness_aware", "group": 0, "count": 120},
{"run_id": "seed0-bin", "grouping_variant": "binary_selected", "method": "missingness_aware", "group": 1, "count": 130},
{"run_id": "seed0-k4", "grouping_variant": "mask_cluster_k4", "method": "missingness_aware", "group": 0, "count": 40},
{"run_id": "seed0-k4", "grouping_variant": "mask_cluster_k4", "method": "missingness_aware", "group": 1, "count": 50},
{"run_id": "seed0-k4", "grouping_variant": "mask_cluster_k4", "method": "missingness_aware", "group": 2, "count": 55},
{"run_id": "seed0-k4", "grouping_variant": "mask_cluster_k4", "method": "missingness_aware", "group": 3, "count": 60},
]
)
summary = build_multigroup_summary(overall_summary=overall, subgroup_summary=subgroup)
paths = write_multigroup_outputs(summary=summary, output_dir=tmp_path / "multigroup")
manifest = json.loads(paths["manifest"].read_text(encoding="utf-8"))
written = pd.read_csv(paths["summary"])
assert "smallest_group_size_mean" in written.columns
assert written.loc[written["grouping_variant"] == "binary_selected", "smallest_group_size_mean"].iloc[0] == 120
assert Path(manifest["summary"]).exists()
def test_build_negative_case_summary_flags_neutral_or_worse_mcar_rows() -> None:
from sepsis_mcp.appendix_negative_case_analysis import build_negative_case_summary
combined = pd.DataFrame(
[
{"delta_m": 0.0, "mechanism": "mcar", "method": "standard", "max_group_coverage_gap_mean": 0.010, "empirical_coverage_mean": 0.902, "average_set_size_mean": 1.01},
{"delta_m": 0.0, "mechanism": "mcar", "method": "mondrian_tilted", "max_group_coverage_gap_mean": 0.012, "empirical_coverage_mean": 0.901, "average_set_size_mean": 1.02},
{"delta_m": 0.1, "mechanism": "mcar", "method": "standard", "max_group_coverage_gap_mean": 0.020, "empirical_coverage_mean": 0.903, "average_set_size_mean": 1.03},
{"delta_m": 0.1, "mechanism": "mcar", "method": "mondrian_tilted", "max_group_coverage_gap_mean": 0.019, "empirical_coverage_mean": 0.902, "average_set_size_mean": 1.04},
]
)
summary = build_negative_case_summary(combined)
assert set(summary["mechanism"]) == {"mcar"}
assert "gap_advantage_vs_standard" in summary.columns
assert bool(summary.loc[summary["delta_m"] == 0.0, "is_neutral_or_worse"].iloc[0]) is True
def test_summarize_runtime_records_computes_relative_overhead() -> None:
from sepsis_mcp.appendix_runtime_analysis import summarize_runtime_records
records = pd.DataFrame(
[
{"method": "standard", "stage": "calibration", "seconds": 0.50},
{"method": "standard", "stage": "test", "seconds": 0.10},
{"method": "missingness_aware", "stage": "calibration", "seconds": 0.55},
{"method": "missingness_aware", "stage": "test", "seconds": 0.12},
{"method": "cp_mda_exact", "stage": "calibration", "seconds": 1.50},
{"method": "cp_mda_exact", "stage": "test", "seconds": 0.30},
]
)
summary = summarize_runtime_records(records)
assert "relative_to_standard" in summary.columns
assert summary.loc[(summary["method"] == "missingness_aware") & (summary["stage"] == "calibration"), "relative_to_standard"].iloc[0] == 1.10
assert summary.loc[(summary["method"] == "cp_mda_exact") & (summary["stage"] == "test"), "relative_to_standard"].iloc[0] == 3.00
def test_write_implementation_details_emits_expected_sections(tmp_path: Path) -> None:
from sepsis_mcp.appendix_implementation_details import write_implementation_details
output_path = tmp_path / "IMPLEMENTATION_DETAILS.md"
manifest_path = tmp_path / "manifest.json"
write_implementation_details(output_path=output_path, manifest_path=manifest_path)
text = output_path.read_text(encoding="utf-8")
manifest = json.loads(manifest_path.read_text(encoding="utf-8"))
assert "Implementation Details" in text
assert "GOSSIS Classification Defaults" in text
assert "MIMIC-IV Validation Defaults" in text
assert "Conformity Scores" in text
assert Path(manifest["implementation_details"]).exists()