54 unsigned int nbok = 0;
57 trace.beginBlock (
"Testing create ..." );
62 trace.info() << m34d<<std::endl;
64 m34d.setComponent(1,2, 0.5);
65 trace.info() << m34d<<std::endl;
67 nbok += (m34d(1,2) == 0.5) ? 1 : 0;
69 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
70 <<
"true == true" << std::endl;
75 matrix.constant(12.3);
76 trace.info() << matrix;
79 res = res && (matrix(i,j) == 12.3);
82 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
83 <<
"all equals to 12.3" << std::endl;
93 unsigned int nbok = 0;
102 M34d m34dbis, resadd, ressub;
110 m34d.setComponent(i,j,i*j);
111 m34dbis.setComponent(i,j,i+j);
112 resadd.setComponent(i,j,i*j+i+j);
113 ressub.setComponent(i,j,i*j-(
double)i-(
double)j);
117 trace.info() << m34d <<std::endl;
118 trace.info() << m34dbis<<std::endl;
120 trace.beginBlock (
"Testing add ..." );
121 nbok += ((m34d + m34dbis) == resadd) ? 1 : 0;
123 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
124 <<
"ok" << std::endl;
125 nbok += ((m34dbis + m34d) == resadd) ? 1 : 0;
127 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
128 <<
"ok commutative" << std::endl;
132 nbok += (other == m34d) ? 1 : 0;
134 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
135 <<
"ok +=" << std::endl;
139 trace.beginBlock (
"Testing substraction ..." );
140 nbok += ((m34d - m34dbis) == ressub) ? 1 : 0;
142 trace.info()<<ressub<<std::endl;
143 trace.info()<<m34d - m34dbis<<std::endl;
145 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
146 <<
"ok simple" << std::endl;
149 trace.beginBlock (
"Testing scalar product/divide ..." );
150 nbok += ( (two*2.0) == four) ? 1 : 0;
152 trace.info()<<ressub<<std::endl;
153 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
154 <<
" [2]*2 == [4]" << std::endl;
156 nbok += ( two == four/2.0) ? 1 : 0;
158 trace.info()<<ressub<<std::endl;
159 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
160 <<
" [2]= [4]/2" << std::endl;
164 trace.beginBlock (
"Testing transpose ..." );
165 M43d transp = m34d.transpose();
166 nbok += (transp.transpose() == m34d) ? 1 : 0;
168 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
169 <<
"ok idem potent" << std::endl;
172 trace.beginBlock (
"Testing product ..." );
179 trace.info() << two * one<<std::endl;
180 nbok += (two * one == eight33) ? 1 : 0;
182 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
183 <<
" [2]*[1] = [8]" << std::endl;
244 unsigned int nbok = 0;
250 mat2.setComponent(1,1,2);
252 trace.beginBlock(
"det2x2 tests...");
253 trace.info() << mat2<<std::endl;
254 trace.info() << mat2.determinant() << std::endl;
255 nbok += (mat2.determinant() == 2) ? 1 : 0;
257 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
258 <<
" 2" << std::endl;
264 mat.setComponent(1,1,2);
265 mat.setComponent(2,2,4);
267 trace.beginBlock(
"det3x3 tests...");
268 trace.info() << mat<<std::endl;
269 nbok += (mat.determinant() == 8) ? 1 : 0;
271 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
272 <<
" 8" << std::endl;
279 mat44.setComponent(1,1,2);
280 mat44.setComponent(2,2,4);
281 mat44.setComponent(3,3,4);
283 trace.beginBlock(
"det4x4 tests...");
284 trace.info() << mat44 <<std::endl;
285 trace.info() << mat44.determinant() << std::endl;
286 nbok += (mat44.determinant() == 32) ? 1 : 0;
288 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
289 <<
" 32" << std::endl;
307 unsigned int nbok = 0;
310 trace.beginBlock(
"Inverse tests 2X2...");
315 mat2.setComponent(1,1,2);
320 trace.info() << mat2<<std::endl;
321 trace.info() << mat2.inverse() << std::endl;
322 nbok += (( mat2 * mat2.inverse() )== Id2 ) ? 1 : 0;
324 trace.info() <<
"(" << nbok <<
"/" << nb <<
") "
325 <<
" M*M^-1=Id" << std::endl;
329 trace.beginBlock(
"Inverse tests 6x6 random...");
334 for(
unsigned int i=0; i< 6; i++)
335 for(
unsigned int j=0; j< 6; j++)
341 trace.info() <<
"M= "<<mat<<std::endl;
342 trace.info() <<
"M^-1=" <<mat.inverse() << std::endl;
343 trace.info() <<
"det(M)= "<<mat.determinant() <<std::endl;
344 trace.info() <<
"M*M^-1= "<<mat.inverse()*mat << std::endl;
356 unsigned int nbok = 0;
359 trace.beginBlock(
"Initilizer-list constructor test" );
360 SimpleMatrix<double, 3, 3> mat = {1, 2, 3, 4, 5, 6, 7, 8, 9};
361 trace.info() << mat << std::endl;
363 trace.info() <<
"Testing values: ";
364 trace.info() << mat( 0, 0 );
365 nbok += ( mat( 0, 0 ) == 1 ) ? 1 : 0;
367 trace.info() <<
"(" << nbok <<
"/" << nb <<
") ";
369 trace.info() << mat( 0, 1 );
370 nbok += ( mat( 0, 1 ) == 2 ) ? 1 : 0;
372 trace.info() <<
"(" << nbok <<
"/" << nb <<
") ";
374 trace.info() << mat( 2, 2 );
375 nbok += ( mat( 2, 2 ) == 9 ) ? 1 : 0;
377 trace.info() <<
"(" << nbok <<
"/" << nb <<
") ";
379 trace.info() << std::endl;