1use dimension_shiftable_buffer::{
2 Csv,
3 DimensionShiftableBuffer,
4 DimensionShiftableBufferError
5};
6
7fn example_csv()
8{
9 let delimiter = " ";
10 let source = "0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0";
11 let dimension = 3;
12 let mut dsb = DimensionShiftableBuffer::<f32>::from_csv(source, dimension, delimiter).unwrap();
14 dsb.for_each(|v| *v += 0.1);
16 for n in 0..dsb.len().unwrap()
18 {
19 for v in dsb.get_mut(n).unwrap()
20 {
21 *v *= *v;
22 }
23 }
24 for i in 0..18
26 {
28 match dsb.get(i)
29 {
30 Ok(dimensional_elements) =>
31 {
32 for (i_sub, actual) in dimensional_elements.iter().enumerate()
33 {
34 let i_flatten = i * dimension as usize + i_sub;
35 let expected = (i_flatten as f32 + 0.1) * (i_flatten as f32 + 0.1);
36 assert_eq!(actual, &expected);
37 }
38 },
39 Err(e) =>
40 {
41 match e
42 {
43 DimensionShiftableBufferError::OutOfRange {
44 limit: _,
45 requested: _
46 } => (),
47 _ => panic!("unexpected err: {:?}", e)
48 }
49 },
50 }
51 }
52 println!("<<print CSV, as a sequential slice>>\n{}", dsb.to_csv(", "));
53 println!(
54 "<<print CSV, as a dimmensional slices>>\n{}",
55 dsb.to_csv_dimensional(", ", "\n").unwrap()
56 );
57}
58
59fn main()
60{
61 example_csv();
62}