use dimension_shiftable_buffer::DimensionShiftableBuffer;
fn example_f32()
{
let entity = vec![1.1f32, 1.2, 1.3, 2.1, 2.2, 2.3, 3.1, 3.2, 3.3];
let dimension = 1;
let mut dsb = DimensionShiftableBuffer::<f32>::new(entity, dimension).unwrap();
let d1_i3 = dsb.get(3).unwrap();
assert_eq!(d1_i3, [2.1f32]);
dsb.shift_dimension(3).unwrap();
let d3_i2 = dsb.get(2).unwrap();
assert_eq!(d3_i2, [3.1f32, 3.2, 3.3]);
match dsb.shift_dimension(2)
{
Ok(_) => panic!("Detect an unexpected false-ok."),
Err(_) => eprintln!("Expected err.")
}
dsb.shift_dimension_truncate(2).unwrap();
let d2_i1 = dsb.get(1).unwrap();
assert_eq!(d2_i1, [1.3f32, 2.1]);
dsb.shift_dimension_padding(7, std::f32::NAN).unwrap();
let d7_i1 = dsb.get(1).unwrap();
assert_eq!(
format!("{:?}", d7_i1),
format!("{:?}", &[
3.2f32,
std::f32::NAN,
std::f32::NAN,
std::f32::NAN,
std::f32::NAN,
std::f32::NAN,
std::f32::NAN
])
)
}
fn main()
{
example_f32();
}