use super::*;
#[ test ]
fn assumptions()
{
let align1 = std::mem::align_of::< [ [ u8 ; 3 ] ; 3 ] >();
let align2 = std::mem::align_of::< [ u8 ; 9 ] >();
println!( "align : {align1}" );
assert_eq!( align1, align2, "Same alignment" );
let size1 = std::mem::size_of::< [ [ u8 ; 3 ] ; 3 ] >();
let size2 = std::mem::size_of::< [ u8 ; 9 ] >();
println!( "size : {size1}" );
assert_eq!( size1, size2, "Same size" );
}
#[ test ]
fn default()
{
use the_module::{ Mat, IndexingRef, Zero };
use the_module::mat::DescriptorOrderRowMajor;
let mat : Mat::< 2, 2, f32, DescriptorOrderRowMajor > = Default::default();
assert!( IndexingRef::iter_unstable( &mat ).all( | e | e.is_zero() ), "Matrix should not be zero after setting non-zero values" );
let mat = Mat::< 2, 2, f32, DescriptorOrderRowMajor >::default();
assert!( IndexingRef::iter_unstable( &mat ).all( | e | e.is_zero() ), "Matrix should not be zero after setting non-zero values" );
let mut mat = Mat::< 2, 2, f32, DescriptorOrderRowMajor >::default().set_raw( [ 1.0, 2.0, 3.0, 4.0 ] );
assert!( !IndexingRef::iter_unstable( &mat ).all( | e | e.is_zero() ), "Matrix should not be zero after setting non-zero values" );
mat = Default::default();
assert!( IndexingRef::iter_unstable( &mat ).all( | e | e.is_zero() ), "Matrix should not be zero after setting non-zero values" );
}
#[ test ]
fn test_has_index_dim()
{
use the_module::{ Mat, Indexable, Ix2 };
use the_module::mat::DescriptorOrderRowMajor;
let mat_0x0 = Mat::< 0, 0, f32, DescriptorOrderRowMajor >::default();
let expected_dim_0x0 = Ix2( 0, 0 );
let dim_0x0 = mat_0x0.dim();
assert_eq!( dim_0x0, expected_dim_0x0, "Dimension mismatch for 0x0 matrix" );
let mat_1x1 = Mat::< 1, 1, f32, DescriptorOrderRowMajor >::default();
let expected_dim_1x1 = Ix2( 1, 1 );
let dim_1x1 = mat_1x1.dim();
assert_eq!( dim_1x1, expected_dim_1x1, "Dimension mismatch for 1x1 matrix" );
let mat_2x2 = Mat::< 2, 2, f32, DescriptorOrderRowMajor >::default();
let expected_dim_2x2 = Ix2( 2, 2 );
let dim_2x2 = mat_2x2.dim();
assert_eq!( dim_2x2, expected_dim_2x2, "Dimension mismatch for 2x2 matrix" );
let mat_3x3 = Mat::< 3, 3, f32, DescriptorOrderRowMajor >::default();
let expected_dim_3x3 = Ix2( 3, 3 );
let dim_3x3 = mat_3x3.dim();
assert_eq!( dim_3x3, expected_dim_3x3, "Dimension mismatch for 3x3 matrix" );
let mat_2x3 = Mat::< 2, 3, f32, DescriptorOrderRowMajor >::default();
let expected_dim_2x3 = Ix2( 2, 3 );
let dim_2x3 = mat_2x3.dim();
assert_eq!( dim_2x3, expected_dim_2x3, "Dimension mismatch for 2x3 matrix" );
}