ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-3.0/test/math/RectMatrixTestCase.cpp
(Generate patch)

Comparing trunk/OOPSE-3.0/test/math/RectMatrixTestCase.cpp (file contents):
Revision 1565 by tim, Wed Oct 13 22:27:58 2004 UTC vs.
Revision 1596 by tim, Tue Oct 19 04:28:15 2004 UTC

# Line 55 | Line 55 | void RectMatrixTestCase::setUp(){
55      b(2, 0) = 0.0;
56      b(2, 1) = 0.0;
57  
58 <    
58 >    c(0, 0) = 1.0;
59 >    c(0, 1) = 0.0;
60 >    c(1, 0) = 0.0;
61 >    c(1, 1) = 1.0;      
62 >
63 >    d(0, 0) = 1.0;
64 >    d(0, 1) = 0.0;
65 >    d(0, 2) = 0.0;
66 >    d(1, 0) = 0.0;
67 >    d(1, 1) = 0.0;
68 >    d(1, 2) = 1.0;    
69 >    d(2, 0) = 0.0;
70 >    d(2, 1) = 1.0;
71 >    d(2, 2) = 0.0;  
72 >
73 >    e(0, 0) = 2.0;
74 >    e(0, 1) = 4.0;
75 >    e(0, 2) = 1.0;
76 >    e(1, 0) = 0.0;
77 >    e(1, 1) = 0.0;
78 >    e(1, 2) = 3.0;    
79 >    e(2, 0) = 0.0;
80 >    e(2, 1) = 6.0;
81 >    e(2, 2) = 5.0;  
82 >
83 >    f(0, 0) = 2.0;
84 >    f(0, 1) = 4.0;
85 >    f(0, 2) = 1.0;
86 >    f(1, 0) = 0.0;
87 >    f(1, 1) = 6.0;
88 >    f(1, 2) = 5.0;    
89 >    f(2, 0) = 0.0;
90 >    f(2, 1) = 0.0;
91 >    f(2, 2) = 3.0;  
92 >
93 >    f(0, 0) = 2.0;
94 >    f(0, 1) = 4.0;
95 >    f(0, 2) = 1.0;
96 >    f(1, 0) = 0.0;
97 >    f(1, 1) = 6.0;
98 >    f(1, 2) = 5.0;    
99 >    f(2, 0) = 0.0;
100 >    f(2, 1) = 0.0;
101 >    f(2, 2) = 3.0;  
102 >
103 >    g(0, 0) = 1.0;
104 >    g(0, 1) = 0.0;
105 >    g(0, 2) = 0.0;
106 >    g(1, 0) = -2.0;
107 >    g(1, 1) = 1.0;
108 >    g(1, 2) = 0.0;    
109 >    g(2, 0) = 0.0;
110 >    g(2, 1) = 0.0;
111 >    g(2, 2) = 1.0;  
112 >
113 >    h(0, 0) = 2.0;
114 >    h(0, 1) = 4.0;
115 >    h(0, 2) = -2.0;
116 >    h(0, 3) = 2.0;
117 >    h(1, 0) = 4.0;
118 >    h(1, 1) = 9.0;
119 >    h(1, 2) = -3.0;
120 >    h(1, 3) = 8.0;
121 >    h(2, 0) = -2.0;
122 >    h(2, 1) = -3.0;
123 >    h(2, 2) = 7.0;
124 >    h(2, 3) = 10.0;
125 >
126 >    i(0, 0) = 2.0;
127 >    i(0, 1) = 4.0;
128 >    i(0, 2) = -2.0;
129 >    i(0, 3) = 2.0;
130 >    i(1, 0) = 0.0;
131 >    i(1, 1) = 1.0;
132 >    i(1, 2) = 1.0;
133 >    i(1, 3) = 4.0;
134 >    i(2, 0) = -2.0;
135 >    i(2, 1) = -3.0;
136 >    i(2, 2) = 7.0;
137 >    i(2, 3) = 10.0;    
138 >
139 >
140 >    v1(0) = 2.0;
141 >    v1(1) = 4.0;
142 >    v1(2) = -2.0;
143 >
144 >    v2(0) = 2.0;
145 >    v2(1) = 0.0;
146 >    v2(2) = -2.0;
147 >
148   }
149  
150   void RectMatrixTestCase::testConstructor(){
# Line 82 | Line 171 | void RectMatrixTestCase::testEqual() {
171  
172   void RectMatrixTestCase::testEqual() {
173      CPPUNIT_ASSERT(m2 == m3);
174 +    CPPUNIT_ASSERT(m2 != m3);
175 +    
176   }
177  
178   void RectMatrixTestCase::testNegate() {
# Line 129 | Line 220 | void RectMatrixTestCase::testMul() {
220      CPPUNIT_ASSERT(m1 * 1.0 == m1);
221      CPPUNIT_ASSERT(m1 * 0.0 == zero);
222      CPPUNIT_ASSERT(2.0 *m1 == m1 + m1);
223 <    
223 >
224 >    //test matrix multiplication
225 >    CPPUNIT_ASSERT(a * b == c);
226 >    CPPUNIT_ASSERT(d  * e == f);
227 >    CPPUNIT_ASSERT(g  * h == i);
228 >
229 >    //test matrix vector multiplication
230 >    CPPUNIT_ASSERT(g  * v1 == v2);
231 >
232   }
233  
234   void RectMatrixTestCase::testDiv() {
# Line 141 | Line 240 | void RectMatrixTestCase::testAccessEntries(){
240   }
241  
242   void RectMatrixTestCase::testAccessEntries(){
243 <    CPPUNIT_ASSERT(m1(1, 0) == 3.0);
243 >    CPPUNIT_ASSERT_DOUBLES_EQUAL(m1(1, 0), 3.0, oopse::epsilon);
244   }
245  
246 < void RectMatrixTestCase::testTranspose(){
246 > void RectMatrixTestCase::testRowColOperations() {
247 >    Vec3 row;
248 >    Vec3 col;
249 >    RMat3x3 m;
250 >    
251 >    //test getRow
252 >    row = e.getRow(0);
253 >    CPPUNIT_ASSERT(row[0] == 2.0 && row[1] == 4.0 && row[2] == 1.0);
254  
255 +    //test setRow
256 +    row[0] = 2.0;    
257 +    row[1] = 4.0;    
258 +    row[2] = 1.0;    
259 +    m.setRow(0, row);
260 +    row[0] = 0.0;    
261 +    row[1] = 0.0;    
262 +    row[2] = 3.0;    
263 +    m.setRow(1, row);
264 +    row[0] = 0.0;    
265 +    row[1] = 6.0;    
266 +    row[2] = 5.0;    
267 +    m.setRow(2, row);
268 +    CPPUNIT_ASSERT(m == e);
269 +    
270 +    //test getCol
271 +    col = e.getCol(1);
272 +    CPPUNIT_ASSERT(col[0] == 4.0 && col[1] == 0.0 && col[2] == 6.0);    
273 +
274 +    //test setCol
275 +    col[0] = 2.0;    
276 +    col[1] = 0.0;    
277 +    col[2] = 0.0;    
278 +    m.setColum(0, col);
279 +    col[0] = 4.0;    
280 +    col[1] = 0.0;    
281 +    col[2] = 6.0;    
282 +    m.setColum(1, col);
283 +    col[0] = 1.0;    
284 +    col[1] = 3.0;    
285 +    col[2] = 5.0;    
286 +    m.setColum(2, col);
287 +    CPPUNIT_ASSERT(m == e);
288 +
289 +    //test swapRow
290 +    RMat2x3 r;
291 +    r(0, 0) = 0.0;
292 +    r(0, 1) = 1.0;
293 +    r(0, 2) = 0.0;
294 +    r(1, 0) = 1.0;
295 +    r(1, 1) = 0.0;
296 +    r(1, 2) = 0.0;
297 +    r.swapRow(0, 1);
298 +    CPPUNIT_ASSERT(r == a);
299 +
300 +    //test swapCol
301 +    RMat3x3 s;
302 +    s(0, 0) = 4.0;
303 +    s(0, 1) = 2.0;
304 +    s(0, 2) = 1.0;
305 +    s(1, 0) = 0.0;    
306 +    s(1, 1) = 0.0;
307 +    s(1, 2) = 3.0;    
308 +    s(2, 0) = 6.0;
309 +    s(2, 1) = 0.0;
310 +    s(2, 2) = 5.0;
311 +
312 +    s.swapColum(0, 1);
313 +    CPPUNIT_ASSERT(s == e);
314 +    
315 + }    
316 +
317 + void RectMatrixTestCase::testOtherMemberFunctions(){
318 +    //test transpose
319      CPPUNIT_ASSERT((a.transpose()).transpose() == a);
320      
321      CPPUNIT_ASSERT(a.transpose() == b);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines