harn-vm 0.10.89

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

#[test]
fn every_configured_provider_prefix_is_inferred_before_model_shape() {
    assert_eq!(infer_provider("local:gemma-4-e4b-it"), "ollama");
    assert_eq!(infer_provider("ollama:qwen3:30b-a3b"), "ollama");
    assert_eq!(infer_provider("local:owner/model"), "ollama");
    assert_eq!(infer_provider("hf:Qwen/Qwen3.6-35B-A3B"), "huggingface");

    for provider in provider_names() {
        let selector = format!("{provider}:catalog-native-model");
        let expected = if provider == "local" {
            "ollama"
        } else {
            provider.as_str()
        };
        assert_eq!(
            infer_provider(&selector),
            expected,
            "configured provider prefix must bypass generic model-shape inference"
        );
    }
}

#[test]
fn every_configured_provider_prefix_is_removed_during_resolution() {
    for (selector, model_id) in [
        ("local:gemma-4-e4b-it", "gemma-4-e4b-it"),
        ("ollama:qwen3:30b-a3b", "qwen3:30b-a3b"),
        ("ollama/gemma4:26b", "gemma4:26b"),
    ] {
        let model = resolve_model_info(selector);
        assert_eq!(model.id, model_id);
        assert_eq!(model.provider, "ollama");
    }

    let hf = resolve_model_info("hf:Qwen/Qwen3.6-35B-A3B");
    assert_eq!(hf.id, "Qwen/Qwen3.6-35B-A3B");
    assert_eq!(hf.provider, "huggingface");

    for selector in ["cerebras/gpt-oss-120b", "cerebras/zai-glm-4.7"] {
        let model = resolve_model_info(selector);
        assert_eq!(model.id, selector.trim_start_matches("cerebras/"));
        assert_eq!(model.provider, "cerebras");
    }

    for provider in provider_names() {
        let model = resolve_model_info(&format!("{provider}:catalog-native-model"));
        assert_eq!(model.id, "catalog-native-model");
        let expected = if provider == "local" {
            "ollama"
        } else {
            provider.as_str()
        };
        assert_eq!(model.provider, expected);
    }
}