harn-vm 0.10.44

Async bytecode virtual machine for the Harn programming language
Documentation
use super::*;

#[test]
fn generated_catalog_owns_compact_model_display_names() {
    let catalog = artifact();
    let llama_cpp = catalog
        .models
        .iter()
        .find(|model| model.id == "qwen3.6-35b-a3b-ud-q4-k-xl" && model.provider == "llamacpp")
        .expect("llama.cpp Qwen3.6 route is exported");
    assert_eq!(llama_cpp.name, "Qwen3.6 35B (Unsloth Q4_K_XL, llama.cpp)");
    assert_eq!(llama_cpp.display_name, "Qwen3.6 35B Q4");

    assert_eq!(
        compact_model_display_name("Acme Model (regional route)"),
        "Acme Model"
    );
    assert_eq!(
        compact_model_display_name("Already compact"),
        "Already compact"
    );
    assert_eq!(
        compact_model_display_name("Qwen3.6 35B-A3B (MLX 4-bit)"),
        "Qwen3.6 35B-A3B 4-bit"
    );
    assert_eq!(
        compact_model_display_name("Acme Coder (FP8, dedicated)"),
        "Acme Coder FP8"
    );
}

#[test]
fn generated_catalog_preserves_authored_model_display_name() {
    let overlay = llm_config::parse_config_toml(
        r#"
[models."fixture/presentation-model"]
name = "Fixture Presentation Model (dedicated route)"
display_name = "Fixture Model"
provider = "openai"
context_window = 8192
"#,
    )
    .expect("overlay parses");
    let catalog = artifact_embedded(Some(&overlay), None);
    let model = catalog
        .models
        .iter()
        .find(|model| model.id == "fixture/presentation-model")
        .expect("authored presentation model is exported");
    assert_eq!(model.name, "Fixture Presentation Model (dedicated route)");
    assert_eq!(model.display_name, "Fixture Model");
}

#[test]
fn validation_rejects_empty_model_display_name() {
    let mut catalog = artifact();
    catalog.models[0].display_name.clear();
    let report = validate_artifact(&catalog);
    assert!(
        report
            .errors
            .iter()
            .any(|message| message.contains("model")
                && message.contains("display_name cannot be empty")),
        "expected model display-name validation error, got {:?}",
        report.errors
    );
}

#[test]
fn downstream_bindings_project_and_decode_model_display_name() {
    assert!(typescript_declarations().contains("display_name: string"));
    let swift = swift_binding().expect("Swift binding renders");
    assert!(swift.contains("public let displayName: String"));
    assert!(swift.contains(
        "displayName = try container.decodeIfPresent(String.self, forKey: .displayName) ?? name"
    ));
}