use std::collections::BTreeSet;
use crate::meta::observe::capture_enforce_all;
#[test]
fn layer_record_iterator_preserves_all_registered_op_ids_in_snapshot() {
let records = crate::spec::op_registry::all_specs()
.into_iter()
.map(|spec| crate::meta::observe::TraceRecord {
name: "vyre_conform.layer".to_string(),
layer_id: Some("L1".to_string()),
op_id: Some(spec.id.to_string()),
verdict: Some("pass".to_string()),
start_us: 0,
duration_us: 1,
stack: vec!["L1".to_string(), spec.id.to_string()],
thread_id: 1,
})
.collect();
let trace = crate::meta::observe::TraceSnapshot { records };
let expected_ops: BTreeSet<&str> = crate::spec::op_registry::all_specs()
.iter()
.map(|spec| spec.id)
.collect();
let traced_ops: BTreeSet<&str> = trace
.layer_records()
.filter_map(|record| record.op_id.as_deref())
.collect();
assert_eq!(traced_ops, expected_ops);
}
#[test]
#[ignore = "runs the full enforce_all gauntlet, including L8 contribution scans"]
fn enforce_all_trace_contains_every_registered_op_for_every_numbered_layer() {
let observed = capture_enforce_all();
let expected_ops: BTreeSet<&str> = crate::spec::op_registry::all_specs()
.iter()
.map(|spec| spec.id)
.collect();
for layer in ["L1", "L2", "L3", "L4", "L5", "L6", "L7", "L8", "L9"] {
let traced_ops: BTreeSet<&str> = observed
.trace
.layer_records()
.filter(|record| record.layer_id.as_deref() == Some(layer))
.filter_map(|record| record.op_id.as_deref())
.collect();
assert_eq!(
traced_ops, expected_ops,
"missing op trace coverage for {layer}"
);
}
}