relay-knowledge 1.1.16

Graph-database-based knowledge graph project.
Documentation
use super::*;

#[test]
fn rejects_invalid_sampling_boundaries() {
    assert!(validate_sampling(-0.1, 1.0, 30.0).is_err());
    assert!(validate_sampling(2.1, 1.0, 30.0).is_err());
    assert!(validate_sampling(0.7, 1.1, 30.0).is_err());
    assert!(validate_sampling(0.7, 1.0, 0.0).is_err());
    assert!(validate_sampling(0.7, 1.0, 300.1).is_err());
    assert!(validate_sampling(0.7, 1.0, 30.0).is_ok());
}

#[test]
fn normalizes_profile_names_and_provider_urls() {
    assert_eq!(
        validate_profile_name(" primary.profile ").unwrap(),
        "primary.profile"
    );
    assert!(validate_profile_name("bad profile").is_err());
    assert_eq!(
        normalized_base_url(
            ModelProviderKind::OpenAiCompatible,
            Some(" https://api.example.com/v1/ ".to_owned())
        )
        .unwrap(),
        "https://api.example.com/v1"
    );
    assert!(normalized_base_url(ModelProviderKind::OpenAiCompatible, None).is_err());
}

#[test]
fn rejects_duplicate_request_headers() {
    let headers = vec![
        ModelRequestHeader {
            name: "X-Api-Key".to_owned(),
            value: Some("one".to_owned()),
            secret: true,
            configured: false,
        },
        ModelRequestHeader {
            name: "x-api-key".to_owned(),
            value: Some("two".to_owned()),
            secret: true,
            configured: false,
        },
    ];

    assert!(validate_headers(headers, None).is_err());
}