sim-lib-search-core 0.1.0

Pure open search, observation, ranking-evidence, and research bundle records for SIM.
Documentation
fn raw(b: &[u8]) -> ContentId {
    Datum::Bytes(b.to_vec()).content_id().unwrap()
}
#[test]
fn query_order_remains_distinct_observations() {
    let a = SearchObservation::checked("https://EXAMPLE.com/?a=1&b=2", None, None).unwrap();
    let b = SearchObservation::checked("https://example.com/?b=2&a=1", None, None).unwrap();
    assert_ne!(a, b)
}
#[test]
fn citation_round_trip_requires_exact_quote() {
    let rep = WebRepresentation::checked(
        raw(b"raw"),
        "alpha beta".into(),
        sim_lib_web_core::RepresentationMetadata {
            codec: "text".into(),
            codec_version: "1".into(),
            media_type: "text/plain".into(),
            charset: None,
            language: None,
            fidelity_warnings: vec![],
        },
        DecodeLimits::default(),
    )
    .unwrap();
    let citation = Citation::checked(&rep, rep.select(6, 10).unwrap()).unwrap();
    assert_eq!(
        Citation::from_datum(&citation.to_datum(), &rep, DecodeLimits::default()).unwrap(),
        citation
    );
    let other = WebRepresentation::checked(
        raw(b"other"),
        "alpha zeta".into(),
        sim_lib_web_core::RepresentationMetadata {
            codec: "text".into(),
            codec_version: "1".into(),
            media_type: "text/plain".into(),
            charset: None,
            language: None,
            fidelity_warnings: vec![],
        },
        DecodeLimits::default(),
    )
    .unwrap();
    assert!(Citation::from_datum(&citation.to_datum(), &other, DecodeLimits::default()).is_err())
}
#[test]
fn provider_claim_is_not_a_citation() {
    let claim = ProviderClaim {
        provider: "p".into(),
        uri: "https://example.com".into(),
        title: None,
        snippet: Some("beta".into()),
        position: Some(1),
    };
    assert_eq!(claim.snippet.as_deref(), Some("beta"));
    assert_eq!(
        RECORD_DESCRIPTORS
            .iter()
            .filter(|d| d.symbol.ends_with("Citation"))
            .count(),
        1
    )
}
use super::*;