use contextgraph_conformance::{
CCHECK_BUDGET_BOUND, CCHECK_DETERMINISM, CCHECK_QUARANTINE, CCHECK_TOTAL_PARTITION,
CheckStatus, ReferenceComposingHost, run_composition_conformance,
};
#[tokio::test]
async fn the_reference_composition_layer_upholds_every_composition_rule() {
let report =
run_composition_conformance(&ReferenceComposingHost, "reference: compose_for_prompt").await;
assert!(
report.passed(),
"the reference composition layer must satisfy the suite it defines; failures: {:?}",
report
.failures()
.map(|check| format!("{}: {}", check.name, check.evidence))
.collect::<Vec<_>>()
);
assert_eq!(report.checks.len(), 4);
for name in [
CCHECK_BUDGET_BOUND,
CCHECK_TOTAL_PARTITION,
CCHECK_QUARANTINE,
CCHECK_DETERMINISM,
] {
let status = report
.checks
.iter()
.find(|check| check.name == name)
.unwrap_or_else(|| panic!("report is missing the `{name}` check"))
.status;
assert_eq!(status, CheckStatus::Pass, "{name}: {report:?}");
}
assert_eq!(report.target, "reference: compose_for_prompt");
}