use hidefix::prelude::*;
use ndarray::s;
#[test]
fn chunked_2d() {
type T = f32;
let i = Index::index("tests/data/dmrpp/chunked_twoD.h5").unwrap();
let mut r = i.reader("d_4_chunks").unwrap();
let values = r.values::<T, _>(..).unwrap();
let h = hdf5::File::open("tests/data/dmrpp/chunked_twoD.h5").unwrap();
let d = h.dataset("d_4_chunks").unwrap();
let hval = d.read_raw::<T>().unwrap();
assert_eq!(values, hval);
let values = r.values::<T, _>((&[10, 10], &[15, 15])).unwrap();
let hvs = d.read_dyn::<T>().unwrap();
let hval = hvs
.slice(s![10..25, 10..25])
.iter()
.copied()
.collect::<Vec<T>>();
assert_eq!(values, hval);
}
#[test]
fn chunked_3d() {
type T = f32;
let i = Index::index("tests/data/dmrpp/chunked_threeD.h5").unwrap();
let mut r = i.reader("d_8_chunks").unwrap();
let values = r.values::<T, _>(..).unwrap();
let h = hdf5::File::open("tests/data/dmrpp/chunked_threeD.h5").unwrap();
let d = h.dataset("d_8_chunks").unwrap();
let hval = d.read_raw::<T>().unwrap();
assert_eq!(values, hval);
let values = r.values::<T, _>((&[10, 10, 10], &[1, 2, 1])).unwrap();
let hvs = d.read_dyn::<T>().unwrap();
let hval = hvs
.slice(s![10..11, 10..12, 10..11])
.iter()
.copied()
.collect::<Vec<T>>();
assert_eq!(values, hval);
}
#[test]
fn chunked_4d() {
type T = f32;
let i = Index::index("tests/data/dmrpp/chunked_fourD.h5").unwrap();
let mut r = i.reader("d_16_chunks").unwrap();
let values = r.values::<T, _>(..).unwrap();
let h = hdf5::File::open("tests/data/dmrpp/chunked_fourD.h5").unwrap();
let d = h.dataset("d_16_chunks").unwrap();
let hval = d.read_raw::<T>().unwrap();
assert_eq!(values, hval);
let values = r
.values::<T, _>((&[10, 10, 10, 5], &[15, 15, 15, 14]))
.unwrap();
let hvs = d.read_dyn::<T>().unwrap();
let hval = hvs
.slice(s![10..25, 10..25, 10..25, 5..19])
.iter()
.copied()
.collect::<Vec<T>>();
assert_eq!(values, hval);
}
#[test]
fn scalar() {
type T = i32;
let i = Index::index("tests/data/dmrpp/t_int_scalar.h5").unwrap();
let mut r = i.reader("scalar").unwrap();
let values = r.values::<T, _>(..).unwrap();
let h = hdf5::File::open("tests/data/dmrpp/t_int_scalar.h5").unwrap();
let d = h.dataset("scalar").unwrap();
let hval = d.read_raw::<T>().unwrap();
assert_eq!(values, hval);
}