#[cfg(feature = "__facade_probe_mutant")]
use provable_contracts::this_module_was_never_exported::nothing;
use provable_contracts::schema::{parse_contract_str, validate_contract};
use provable_contracts::scoring::score_contract;
const MINIMAL: &str = r"
metadata:
version: 1.0.0
description: facade probe fixture
references:
- 'facade probe — inline fixture, cites itself'
kind: registry
";
#[test]
fn parse_validate_and_score_all_resolve_through_the_facade() {
let contract = parse_contract_str(MINIMAL).expect("0.3.1 parse_contract_str signature drifted");
assert_eq!(
contract.metadata.version, "1.0.0",
"Metadata.version is no longer reachable as a public field"
);
let errors = validate_contract(&contract);
assert!(
errors.is_empty(),
"a registry contract with references should validate clean; got {errors:?}"
);
let score = score_contract(&contract, None, "facade-probe");
assert_eq!(score.stem, "facade-probe");
assert!(
(0.0..=1.0).contains(&score.composite),
"ContractScore.composite left [0,1]: {}",
score.composite
);
}
#[cfg(feature = "__facade_probe_mutant")]
#[test]
fn unreachable_mutant_arm() {
let _ = nothing;
}