use super::*;
fn test_raw_slice_generic< D : the_module::mat::Descriptor >()
where
the_module::Mat< 2, 2, f32, D > : Default + the_module::RawSliceMut< Scalar = f32 >,
{
use the_module::
{
Mat,
RawSlice,
RawSliceMut,
};
let mat = Mat::< 2, 2, f32, D >::default().raw_set( [ 1.0, 2.0, 3.0, 4.0 ] );
let slice = mat.raw_slice();
let exp = &[ 1.0, 2.0, 3.0, 4.0 ];
assert_eq!( slice, exp, "Raw slice mismatch. Expected {:?}, got {:?}", exp, slice );
}
#[ test ]
fn test_raw_slice_row_major()
{
use the_module::mat::DescriptorOrderRowMajor;
test_raw_slice_generic::< DescriptorOrderRowMajor >();
}
#[ test ]
fn test_raw_slice_column_major()
{
use the_module::mat::DescriptorOrderColumnMajor;
test_raw_slice_generic::< DescriptorOrderColumnMajor >();
}
fn test_raw_slice_mut_generic< D : the_module::mat::Descriptor >()
where
the_module::Mat< 2, 2, f32, D > : Default + the_module::RawSliceMut< Scalar = f32 >,
{
use the_module::
{
Mat,
RawSlice,
RawSliceMut,
};
let mut mat = Mat::< 2, 2, f32, D >::default();
{
let slice_mut = mat.raw_slice_mut();
slice_mut.copy_from_slice( &[ 5.0, 6.0, 7.0, 8.0 ] );
}
let exp = &[ 5.0, 6.0, 7.0, 8.0 ];
assert_eq!( mat.raw_slice(), exp, "Raw slice mutable modification failed. Expected {:?}, got {:?}", exp, mat.raw_slice() );
}
#[ test ]
fn test_raw_slice_mut_row_major()
{
use the_module::mat::DescriptorOrderRowMajor;
test_raw_slice_mut_generic::< DescriptorOrderRowMajor >();
}
#[ test ]
fn test_raw_slice_mut_column_major()
{
use the_module::mat::DescriptorOrderColumnMajor;
test_raw_slice_mut_generic::< DescriptorOrderColumnMajor >();
}
fn test_raw_set_slice_generic< D : the_module::mat::Descriptor >()
where
the_module::Mat< 2, 2, f32, D > : Default + the_module::RawSliceMut< Scalar = f32 >,
{
use the_module::
{
Mat,
RawSlice,
RawSliceMut,
};
let mut mat = Mat::< 2, 2, f32, D >::default();
mat.raw_set_slice( &[ 9.0, 10.0, 11.0, 12.0 ] );
let exp = &[ 9.0, 10.0, 11.0, 12.0 ];
assert_eq!( mat.raw_slice(), exp, "Raw set slice failed. Expected {:?}, got {:?}", exp, mat.raw_slice() );
}
#[ test ]
fn test_raw_set_slice_row_major()
{
use the_module::mat::DescriptorOrderRowMajor;
test_raw_set_slice_generic::< DescriptorOrderRowMajor >();
}
#[ test ]
fn test_raw_set_slice_column_major()
{
use the_module::mat::DescriptorOrderColumnMajor;
test_raw_set_slice_generic::< DescriptorOrderColumnMajor >();
}
fn test_raw_set_generic< D : the_module::mat::Descriptor >()
where
the_module::Mat< 2, 2, f32, D > : Default + the_module::RawSliceMut< Scalar = f32 >,
{
use the_module::
{
Mat,
RawSlice,
RawSliceMut,
};
let mat = Mat::< 2, 2, f32, D >::default().raw_set( [ 13.0, 14.0, 15.0, 16.0 ] );
let exp = &[ 13.0, 14.0, 15.0, 16.0 ];
assert_eq!( mat.raw_slice(), exp, "Raw set failed. Expected {:?}, got {:?}", exp, mat.raw_slice() );
}
#[ test ]
fn test_raw_set_row_major()
{
use the_module::mat::DescriptorOrderRowMajor;
test_raw_set_generic::< DescriptorOrderRowMajor >();
}
#[ test ]
fn test_raw_set_column_major()
{
use the_module::mat::DescriptorOrderColumnMajor;
test_raw_set_generic::< DescriptorOrderColumnMajor >();
}