use matten::Tensor;
use matten_mlprep::standardize_columns;
fn main() {
let x = Tensor::new(vec![1.0, 10.0, 2.0, 20.0, 3.0, 30.0], &[3, 2]);
let z = standardize_columns(&x).expect("two non-constant columns");
println!("input shape {:?}: {:?}", x.shape(), x.as_slice());
println!("z-score {:?}: {:?}", z.shape(), z.as_slice());
assert_eq!(z.shape(), x.shape());
let zs = z.as_slice();
let col0_mean = (zs[0] + zs[2] + zs[4]) / 3.0;
let col1_mean = (zs[1] + zs[3] + zs[5]) / 3.0;
assert!(col0_mean.abs() < 1e-9 && col1_mean.abs() < 1e-9);
println!("standardize_columns: OK");
}