09_slice_str/
09_slice_str.rs1use matten::Tensor;
9
10fn main() -> Result<(), Box<dyn std::error::Error>> {
11 let t = Tensor::new((1..=12).map(|x| x as f64).collect(), &[3, 4]);
12
13 println!("\"0, :\" = {:?}", t.slice_str("0, :")?);
14 println!("\"0:2, :\" = {:?}", t.slice_str("0:2, :")?);
15 println!("\":, 1:3\" = {:?}", t.slice_str(":, 1:3")?);
16
17 let a = t.slice_str("0:2, :")?;
19 let b = t.slice_str(" 0:2 , : ")?;
20 assert_eq!(a, b);
21 println!("whitespace-insensitive: OK");
22
23 let from_str = t.slice_str("0:2, :")?;
25 let from_builder = t.slice().range(0..2).all().build()?;
26 assert_eq!(from_str, from_builder);
27 println!("builder == slice_str: OK");
28
29 println!("bad spec: {:?}", t.slice_str("0::")); Ok(())
33}