use ariadnetor_tensor::{DenseTensorData, MemoryOrder};
#[test]
fn test_replace_slice_column_major() {
let mut t =
DenseTensorData::<f64>::from_raw_parts(vec![0.0; 16], vec![4, 4], MemoryOrder::ColumnMajor);
let sub = DenseTensorData::<f64>::from_raw_parts(
vec![1.0, 3.0, 2.0, 4.0],
vec![2, 2],
MemoryOrder::ColumnMajor,
);
t.replace_slice(&sub, &[1, 1]);
assert_eq!(t.data()[5], 1.0); assert_eq!(t.data()[6], 3.0); assert_eq!(t.data()[9], 2.0); assert_eq!(t.data()[10], 4.0); assert_eq!(t.data()[0], 0.0); assert_eq!(t.data()[15], 0.0); }
#[test]
fn test_replace_slice_cow() {
let mut a =
DenseTensorData::<f64>::from_raw_parts(vec![0.0; 4], vec![2, 2], MemoryOrder::ColumnMajor);
let b = a.clone();
let sub =
DenseTensorData::<f64>::from_raw_parts(vec![1.0], vec![1, 1], MemoryOrder::ColumnMajor);
a.replace_slice(&sub, &[0, 0]);
assert_eq!(a.data()[0], 1.0);
assert_eq!(b.data()[0], 0.0); }