ndarray-stats 0.5.1

Statistical routines for ArrayBase, the n-dimensional array data structure provided by ndarray.
Documentation
use ndarray::prelude::*;
use ndarray_stats::MaybeNan;
use noisy_float::types::{n64, N64};

#[test]
fn remove_nan_mut_nonstandard_layout() {
    fn eq_unordered(mut a: Vec<N64>, mut b: Vec<N64>) -> bool {
        a.sort();
        b.sort();
        a == b
    }
    let a = aview1(&[1., 2., f64::NAN, f64::NAN, 3., f64::NAN, 4., 5.]);
    {
        let mut a = a.to_owned();
        let v = f64::remove_nan_mut(a.slice_mut(s![..;2]));
        assert!(eq_unordered(v.to_vec(), vec![n64(1.), n64(3.), n64(4.)]));
    }
    {
        let mut a = a.to_owned();
        let v = f64::remove_nan_mut(a.slice_mut(s![..;-1]));
        assert!(eq_unordered(
            v.to_vec(),
            vec![n64(5.), n64(4.), n64(3.), n64(2.), n64(1.)],
        ));
    }
    {
        let mut a = a.to_owned();
        let v = f64::remove_nan_mut(a.slice_mut(s![..;-2]));
        assert!(eq_unordered(v.to_vec(), vec![n64(5.), n64(2.)]));
    }
}