partial-array 0.1.3

Provides potentially partially-filled arrays
Documentation
use crate::PartialArray;

#[test]
fn partial_array_is_partial_eq_if_t_is() {
    fn assert<T: PartialEq>(_: T) {}

    assert(PartialArray::<u8, 5>::default());
    assert(PartialArray::<f32, 1>::default());
    assert(PartialArray::<String, 4>::default());
}

#[test]
fn partial_array_is_eq_if_t_is() {
    fn assert<T: Eq>(_: T) {}

    assert(PartialArray::<u8, 5>::default());
    assert(PartialArray::<String, 4>::default());
}

#[test]
fn slice_comparison() {
    let a = PartialArray::<f32, 3>::from([0.0, 0.5, 0.75]);
    let b: &[f32] = &[0.0, 0.5, 0.75];
    let c: &[f32] = &[0.1, 0.5, 0.75];

    assert_eq!(a, b);
    assert_eq!(b, a);

    assert_ne!(a, c);
    assert_ne!(c, a);
    assert_ne!(b, c);
    assert_ne!(c, b);
}

#[test]
fn array_comparison() {
    let a = PartialArray::<f32, 3>::from([0.0, 0.5, 0.75]);
    let b: [f32; 3] = [0.0, 0.5, 0.75];
    let c: [f32; 3] = [0.1, 0.5, 0.75];

    assert_eq!(a, b);
    assert_eq!(b, a);

    assert_ne!(a, c);
    assert_ne!(c, a);
    assert_ne!(b, c);
    assert_ne!(c, b);
}

#[test]
fn partial_array_comparison() {
    let a = PartialArray::<f32, 3>::from([0.0, 0.5, 0.75]);
    let b = PartialArray::<f32, 3>::from([0.0, 0.5, 0.75]);
    let c = PartialArray::<f32, 3>::from([0.1, 0.5, 0.75]);

    assert_eq!(a, b);
    assert_eq!(b, a);

    assert_ne!(a, c);
    assert_ne!(c, a);
    assert_ne!(b, c);
    assert_ne!(c, b);
}