opendp 0.14.2-dev.20260401.2

A library of differential privacy algorithms for the statistical analysis of sensitive private data.
use super::*;
use crate::metrics::SymmetricDistance;

#[test]
fn test_find() -> Fallible<()> {
    let find = make_find(
        VectorDomain::default(),
        SymmetricDistance,
        vec!["1", "3", "4"],
    )?;
    assert_eq!(
        find.invoke(&vec!["1", "2", "3", "4", "5"])?,
        vec![Some(0), None, Some(1), Some(2), None]
    );
    Ok(())
}

#[test]
fn test_bin() -> Fallible<()> {
    let bin = make_find_bin(Default::default(), SymmetricDistance, vec![2, 3, 5])?;
    assert_eq!(
        bin.invoke(&(1..10).collect())?,
        vec![0, 1, 2, 2, 3, 3, 3, 3, 3]
    );
    Ok(())
}

#[test]
fn test_index() -> Fallible<()> {
    let index = make_index(
        VectorDomain::default(),
        SymmetricDistance,
        vec!["A", "B", "C"],
        "NA",
    )?;
    assert_eq!(
        index.invoke(&vec![0, 1, 3, 1, 5])?,
        vec!["A", "B", "NA", "B", "NA"]
    );
    Ok(())
}