use matten::Tensor;
use matten_mlprep::train_test_split_seeded;
fn main() {
let x = Tensor::new(vec![10.0, 20.0, 30.0, 40.0, 50.0], &[5, 1]);
let (train, test) = train_test_split_seeded(&x, 0.6, 7).expect("valid split"); println!("train {:?}: {:?}", train.shape(), train.as_slice());
println!("test {:?}: {:?}", test.shape(), test.as_slice());
assert_eq!(train.shape(), &[3, 1]);
assert_eq!(test.shape(), &[2, 1]);
let (train2, test2) = train_test_split_seeded(&x, 0.6, 7).expect("valid split");
assert_eq!(train.as_slice(), train2.as_slice());
assert_eq!(test.as_slice(), test2.as_slice());
println!("same seed -> reproduced split: OK");
let (train3, _) = train_test_split_seeded(&x, 0.6, 8).expect("valid split");
println!(
"different seed -> train {:?}: {:?}",
train3.shape(),
train3.as_slice()
);
println!("train_test_split_seeded: OK");
}