# | Line 166 | Line 166 | void RectMatrixTestCase::testConstructor(){ | |
---|---|---|
166 | tmp4 = tmp4; | |
167 | CPPUNIT_ASSERT(tmp4 == m2); | |
168 | ||
169 | + | double tmp5[4]; |
170 | + | tmp5[0] = 1.0; |
171 | + | tmp5[1] = 1.0; |
172 | + | tmp5[2] = 3.0; |
173 | + | tmp5[3] = 1.0; |
174 | + | |
175 | + | RMat2x2 tmp6(tmp5); |
176 | + | CPPUNIT_ASSERT(tmp6 == m1); |
177 | + | |
178 | ||
179 | } | |
180 | ||
# | Line 237 | Line 246 | void RectMatrixTestCase::testDiv() { | |
246 | ||
247 | CPPUNIT_ASSERT(m1 / 2.0 * 2.0 == m1); | |
248 | ||
249 | + | |
250 | } | |
251 | ||
252 | void RectMatrixTestCase::testAccessEntries(){ | |
253 | CPPUNIT_ASSERT_DOUBLES_EQUAL(m1(1, 0), 3.0, oopse::epsilon); | |
254 | } | |
255 | ||
256 | < | void RectMatrixTestCase::testTranspose(){ |
256 | > | void RectMatrixTestCase::testRowColOperations() { |
257 | > | Vec3 row; |
258 | > | Vec3 col; |
259 | > | RMat3x3 m; |
260 | > | |
261 | > | //test getRow |
262 | > | row = e.getRow(0); |
263 | > | CPPUNIT_ASSERT_DOUBLES_EQUAL(row[0], 2.0, oopse::epsilon); |
264 | > | CPPUNIT_ASSERT_DOUBLES_EQUAL(row[1], 4.0, oopse::epsilon); |
265 | > | CPPUNIT_ASSERT_DOUBLES_EQUAL(row[2], 1.0, oopse::epsilon); |
266 | > | //test setRow |
267 | > | row[0] = 2.0; |
268 | > | row[1] = 4.0; |
269 | > | row[2] = 1.0; |
270 | > | m.setRow(0, row); |
271 | > | row[0] = 0.0; |
272 | > | row[1] = 0.0; |
273 | > | row[2] = 3.0; |
274 | > | m.setRow(1, row); |
275 | > | row[0] = 0.0; |
276 | > | row[1] = 6.0; |
277 | > | row[2] = 5.0; |
278 | > | m.setRow(2, row); |
279 | > | CPPUNIT_ASSERT(m == e); |
280 | > | |
281 | > | //test getCol |
282 | > | col = e.getColumn(1); |
283 | > | CPPUNIT_ASSERT_DOUBLES_EQUAL(col[0], 4.0, oopse::epsilon); |
284 | > | CPPUNIT_ASSERT_DOUBLES_EQUAL(col[1], 0.0, oopse::epsilon); |
285 | > | CPPUNIT_ASSERT_DOUBLES_EQUAL(col[2], 6.0, oopse::epsilon); |
286 | > | //test setCol |
287 | > | col[0] = 2.0; |
288 | > | col[1] = 0.0; |
289 | > | col[2] = 0.0; |
290 | > | m.setColumn(0, col); |
291 | > | col[0] = 4.0; |
292 | > | col[1] = 0.0; |
293 | > | col[2] = 6.0; |
294 | > | m.setColumn(1, col); |
295 | > | col[0] = 1.0; |
296 | > | col[1] = 3.0; |
297 | > | col[2] = 5.0; |
298 | > | m.setColumn(2, col); |
299 | > | CPPUNIT_ASSERT(m == e); |
300 | ||
301 | + | //test swapRow |
302 | + | RMat2x3 r; |
303 | + | r(0, 0) = 0.0; |
304 | + | r(0, 1) = 1.0; |
305 | + | r(0, 2) = 0.0; |
306 | + | r(1, 0) = 1.0; |
307 | + | r(1, 1) = 0.0; |
308 | + | r(1, 2) = 0.0; |
309 | + | r.swapRow(0, 1); |
310 | + | CPPUNIT_ASSERT(r == a); |
311 | + | |
312 | + | //test swapCol |
313 | + | RMat3x3 s; |
314 | + | s(0, 0) = 4.0; |
315 | + | s(0, 1) = 2.0; |
316 | + | s(0, 2) = 1.0; |
317 | + | s(1, 0) = 0.0; |
318 | + | s(1, 1) = 0.0; |
319 | + | s(1, 2) = 3.0; |
320 | + | s(2, 0) = 6.0; |
321 | + | s(2, 1) = 0.0; |
322 | + | s(2, 2) = 5.0; |
323 | + | |
324 | + | s.swapColumn(0, 1); |
325 | + | CPPUNIT_ASSERT(s == e); |
326 | + | |
327 | + | double* p = s.getArrayPointer(); |
328 | + | |
329 | + | p[0] = 2.0; |
330 | + | p[1] = 4.0; |
331 | + | p[2] = 1.0; |
332 | + | p[3] = 0.0; |
333 | + | p[4] = 6.0; |
334 | + | p[5] = 5.0; |
335 | + | p[6] = 0.0; |
336 | + | p[7] = 0.0; |
337 | + | p[8] = 3.0; |
338 | + | |
339 | + | CPPUNIT_ASSERT(s == f); |
340 | + | } |
341 | + | |
342 | + | void RectMatrixTestCase::testOtherMemberFunctions(){ |
343 | + | //test transpose |
344 | CPPUNIT_ASSERT((a.transpose()).transpose() == a); | |
345 | ||
346 | CPPUNIT_ASSERT(a.transpose() == b); | |
347 | + | |
348 | + | //test getArray |
349 | + | |
350 | + | double tmp[4]; |
351 | + | m4.getArray(tmp); |
352 | + | CPPUNIT_ASSERT_DOUBLES_EQUAL(tmp[0], -1.0, oopse::epsilon); |
353 | + | CPPUNIT_ASSERT_DOUBLES_EQUAL(tmp[1], -1.0, oopse::epsilon); |
354 | + | CPPUNIT_ASSERT_DOUBLES_EQUAL(tmp[2], -3.0, oopse::epsilon); |
355 | + | CPPUNIT_ASSERT_DOUBLES_EQUAL(tmp[3], -1.0, oopse::epsilon); |
356 | + | |
357 | } |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |