1use dimension_shiftable_buffer::DimensionShiftableBuffer;
2
3fn example_f32()
4{
5 let entity = vec![1.1f32, 1.2, 1.3, 2.1, 2.2, 2.3, 3.1, 3.2, 3.3];
10 let dimension = 1;
11
12 let mut dsb = DimensionShiftableBuffer::<f32>::new(entity, dimension).unwrap();
13
14 let d1_i3 = dsb.get(3).unwrap();
15 assert_eq!(d1_i3, [2.1f32]);
16
17 dsb.shift_dimension(3).unwrap();
18
19 let d3_i2 = dsb.get(2).unwrap();
20 assert_eq!(d3_i2, [3.1f32, 3.2, 3.3]);
21
22 match dsb.shift_dimension(2)
23 {
24 Ok(_) => panic!("Detect an unexpected false-ok."),
25 Err(_) => eprintln!("Expected err.")
26 }
27
28 dsb.shift_dimension_truncate(2).unwrap();
29
30 let d2_i1 = dsb.get(1).unwrap();
31 assert_eq!(d2_i1, [1.3f32, 2.1]);
32
33 dsb.shift_dimension_padding(7, std::f32::NAN).unwrap();
34 let d7_i1 = dsb.get(1).unwrap();
35 assert_eq!(
36 format!("{:?}", d7_i1),
38 format!("{:?}", &[
39 3.2f32,
41 std::f32::NAN,
43 std::f32::NAN,
45 std::f32::NAN,
46 std::f32::NAN,
47 std::f32::NAN,
48 std::f32::NAN
49 ])
50 )
51}
52
53fn main()
54{
55 example_f32();
56}