#[test]
fn f_contract_001_contract_gate_exists() {
let lib_path = project_root()
.join("crates")
.join("apr-cli")
.join("src")
.join("lib.rs");
let content = std::fs::read_to_string(&lib_path).expect("lib.rs readable");
assert!(
content.contains("fn validate_model_contract"),
"F-CONTRACT-001: validate_model_contract must exist"
);
assert!(
content.contains("fn extract_model_paths"),
"F-CONTRACT-001: extract_model_paths must exist"
);
}
#[test]
fn f_contract_002_skip_contract_bypasses_gate() {
let lib_path = project_root()
.join("crates")
.join("apr-cli")
.join("src")
.join("lib.rs");
let content = std::fs::read_to_string(&lib_path).expect("lib.rs readable");
assert!(
content.contains("skip_contract"),
"F-CONTRACT-002: skip_contract must be a field in CLI"
);
assert!(
content.contains("if") && content.contains("skip_contract"),
"F-CONTRACT-002: Code must conditionally skip contract validation"
);
}
#[test]
fn f_contract_003_diagnostic_commands_exempt() {
let lib_path = project_root()
.join("crates")
.join("apr-cli")
.join("src")
.join("lib.rs");
let content = std::fs::read_to_string(&lib_path).expect("lib.rs readable");
assert!(
content.contains("fn extract_model_paths"),
"F-CONTRACT-003: extract_model_paths must exist"
);
assert!(
content.contains("vec![]"),
"F-CONTRACT-003: Some commands must return empty path vec (exempt from gate)"
);
}
#[test]
fn f_contract_004_all_zeros_embedding_rejected() {
let vocab_size = 100;
let hidden_dim = 64;
let data = vec![0.0_f32; vocab_size * hidden_dim];
let result = ValidatedEmbedding::new(data, vocab_size, hidden_dim);
assert!(
result.is_err(),
"F-CONTRACT-004: All-zeros embedding must be rejected by density gate"
);
let err = result.unwrap_err();
assert!(
err.rule_id.contains("DATA-QUALITY"),
"F-CONTRACT-004: Rejection must cite DATA-QUALITY rule, got: {}",
err.rule_id
);
}
#[test]
fn f_contract_005_nan_tensor_rejected() {
let vocab_size = 100;
let hidden_dim = 64;
let mut data: Vec<f32> = (0..vocab_size * hidden_dim)
.map(|i| (i as f32 * 0.01).sin() * 0.1)
.collect();
data[42] = f32::NAN;
let result = ValidatedEmbedding::new(data, vocab_size, hidden_dim);
assert!(
result.is_err(),
"F-CONTRACT-005: NaN in embedding must be rejected"
);
}
#[test]
fn f_contract_006_no_column_major_type_exists() {
let _row_major = RowMajor;
let dirs = [project_root().join("src"), project_root().join("crates")];
let mut violations = Vec::new();
for dir in &dirs {
for path in collect_rs_files(dir) {
let content = std::fs::read_to_string(&path).unwrap_or_default();
for line in content.lines() {
let trimmed = line.trim();
if trimmed.starts_with("//") || trimmed.starts_with("///") {
continue;
}
if trimmed.contains("struct ColumnMajor")
|| trimmed.contains("enum ColumnMajor")
|| trimmed.contains("type ColumnMajor")
{
violations.push(format!("{}: '{trimmed}'", path.display()));
}
}
}
}
assert!(
violations.is_empty(),
"F-CONTRACT-006: ColumnMajor type must NOT exist.\nViolations:\n{}",
violations.join("\n")
);
}
#[test]
fn f_contract_007_lm_head_is_marked_critical() {
let contract = LayoutContract::new();
let lm_head = contract.get_gguf_contract("output.weight");
assert!(
lm_head.is_some(),
"F-CONTRACT-007: output.weight must be in layout contract"
);
assert!(
lm_head.expect("lm_head").is_critical,
"F-CONTRACT-007: output.weight must be marked critical"
);
}
#[test]
fn f_prove_001_cargo_build_succeeds() {
assert!(
!KNOWN_FAMILIES.is_empty(),
"F-PROVE-001: Build-time constants must be populated"
);
}
#[test]
fn f_prove_002_invalid_yaml_would_break_build() {
let build_rs = project_root().join("build.rs");
let content = std::fs::read_to_string(&build_rs).expect("build.rs readable");
assert!(
content.contains("model_families") || content.contains("yaml"),
"F-PROVE-002: build.rs must process model family YAML files"
);
assert!(
content.contains("const_assert") || content.contains("const _: () = assert!"),
"F-PROVE-002: build.rs must generate const assertions"
);
}
#[test]
fn f_prove_003_gqa_violation_would_break_build() {
if let Some(gen_path) = find_generated_file("model_families_generated.rs") {
let content = std::fs::read_to_string(&gen_path).expect("generated file readable");
assert!(
content.contains("GQA") || content.contains("num_kv_heads"),
"F-PROVE-003: Generated proofs must include GQA constraints"
);
}
}
#[test]
fn f_prove_004_rope_parity_violation_would_break_build() {
if let Some(gen_path) = find_generated_file("model_families_generated.rs") {
let content = std::fs::read_to_string(&gen_path).expect("generated file readable");
assert!(
content.contains("RoPE") || content.contains("even"),
"F-PROVE-004: Generated proofs must include RoPE parity"
);
}
}
#[test]
fn f_prove_005_ffn_expansion_violation_would_break_build() {
if let Some(gen_path) = find_generated_file("model_families_generated.rs") {
let content = std::fs::read_to_string(&gen_path).expect("generated file readable");
assert!(
content.contains("FFN expansion") || content.contains("intermediate_dim"),
"F-PROVE-005: Generated proofs must include FFN expansion"
);
}
}
#[test]
fn f_prove_006_oracle_validate_catches_hf_mismatch() {
let oracle_path = project_root()
.join("crates")
.join("apr-cli")
.join("src")
.join("commands")
.join("oracle.rs");
let content = std::fs::read_to_string(&oracle_path).expect("oracle.rs must exist");
assert!(
content.contains("validate") || content.contains("Validate"),
"F-PROVE-006: oracle.rs must have validation logic"
);
assert!(
content.contains("hf")
|| content.contains("HuggingFace")
|| content.contains("huggingface")
|| content.contains("config.json"),
"F-PROVE-006: oracle must reference HuggingFace for cross-validation"
);
}
#[test]
fn f_prove_007_proof_count_is_exactly_297() {
let gen_path = find_generated_file("model_families_generated.rs");
let gen_path = gen_path.unwrap_or_else(|| {
panic!("F-PROVE-007: Cannot find model_families_generated.rs. Run `cargo build` first.")
});
let content = std::fs::read_to_string(&gen_path).expect("generated file readable");
let count = content
.lines()
.filter(|line| line.contains("const _: () = assert!"))
.count();
assert_eq!(
count, 297,
"F-PROVE-007: Expected 297 proofs, found {count}"
);
}
#[test]
fn f_surface_001_all_36_top_level_commands_exist() {
f_cli_001_all_36_top_level_commands_parse();
}
#[test]
fn f_surface_002_all_10_nested_commands_exist() {
f_cli_002_all_10_nested_subcommands_parse();
}
#[test]
fn f_surface_003_no_undocumented_commands() {
let spec_path = project_root()
.join("docs")
.join("specifications")
.join("qwen2.5-coder-showcase-demo.md");
let spec = std::fs::read_to_string(&spec_path).expect("spec readable");
let lib_path = project_root()
.join("crates")
.join("apr-cli")
.join("src")
.join("lib.rs");
let lib_content = std::fs::read_to_string(&lib_path).expect("lib.rs readable");
let variants = extract_enum_variant_names(&lib_content, "pub enum Commands");
for variant in &variants {
let kebab = variant
.chars()
.enumerate()
.fold(String::new(), |mut acc, (i, c)| {
if c.is_uppercase() && i > 0 {
acc.push('-');
}
acc.push(c.to_ascii_lowercase());
acc
});
let lowercase = variant.to_lowercase();
assert!(
spec.contains(&format!("`apr {kebab}`"))
|| spec.contains(&format!("apr {kebab}"))
|| spec.contains(&format!("`apr {lowercase}`"))
|| spec.contains(&format!("apr {lowercase}"))
|| spec.contains(&format!("`{kebab}`"))
|| spec.contains(&format!("`{lowercase}`"))
|| spec.contains(variant),
"F-SURFACE-003: Command '{variant}' (apr {kebab}) must be documented in spec"
);
}
}
#[test]
fn f_surface_004_every_command_referenced_in_spec() {
let spec_path = project_root()
.join("docs")
.join("specifications")
.join("qwen2.5-coder-showcase-demo.md");
let spec = std::fs::read_to_string(&spec_path).expect("spec readable");
let required_commands = [
"apr run",
"apr chat",
"apr serve",
"apr import",
"apr export",
"apr convert",
"apr inspect",
"apr validate",
"apr tensors",
"apr diff",
"apr oracle",
"apr qa",
"apr rosetta",
];
for cmd in &required_commands {
assert!(
spec.contains(cmd),
"F-SURFACE-004: '{cmd}' must be referenced in spec"
);
}
}
#[test]
fn f_surface_005_contract_classification_matches_code() {
let lib_path = project_root()
.join("crates")
.join("apr-cli")
.join("src")
.join("lib.rs");
let content = std::fs::read_to_string(&lib_path).expect("lib.rs readable");
assert!(
content.contains("fn extract_model_paths"),
"F-SURFACE-005: extract_model_paths must exist for contract classification"
);
assert!(
content.contains("diagnostic")
|| content.contains("DIAGNOSTIC")
|| content.contains("exempt"),
"F-SURFACE-005: Contract classification must document diagnostic exemptions"
);
}