ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/test/math/RectMatrixTestCase.cpp
Revision: 1575
Committed: Fri Oct 15 18:17:00 2004 UTC (19 years, 8 months ago) by tim
File size: 4467 byte(s)
Log Message:
adding Makefile

File Contents

# Content
1 #include "RectMatrixTestCase.hpp"
2
3 // Registers the fixture into the 'registry'
4 CPPUNIT_TEST_SUITE_REGISTRATION( RectMatrixTestCase );
5
6 void RectMatrixTestCase::setUp(){
7
8 m1(0, 0) = 1.0;
9 m1(0, 1) = 1.0;
10 m1(1, 0) = 3.0;
11 m1(1, 1) = 1.0;
12
13 m2(0, 0) = 1.0;
14 m2(0, 1) = 0.0;
15 m2(1, 0) = 0.0;
16 m2(1, 1) = 1.0;
17
18
19 m3(0, 0) = 1.0;
20 m3(0, 1) = 0.0;
21 m3(1, 0) = 0.0;
22 m3(1, 1) = 1.0;
23
24 m4(0, 0) = -1.0;
25 m4(0, 1) = -1.0;
26 m4(1, 0) = -3.0;
27 m4(1, 1) = -1.0;
28
29 zero(0, 0) = 0.0;
30 zero(0, 1) = 0.0;
31 zero(1, 0) = 0.0;
32 zero(1, 1) = 0.0;
33
34 one(0, 0) = 1.0;
35 one(0, 1) = 1.0;
36 one(1, 0) = 1.0;
37 one(1, 1) = 1.0;
38
39 two(0, 0) = 2.0;
40 two(0, 1) = 2.0;
41 two(1, 0) = 2.0;
42 two(1, 1) = 2.0;
43
44 a(0, 0) = 1.0;
45 a(0, 1) = 0.0;
46 a(0, 2) = 0.0;
47 a(1, 0) = 0.0;
48 a(1, 1) = 1.0;
49 a(1, 2) = 0.0;
50
51 b(0, 0) = 1.0;
52 b(0, 1) = 0.0;
53 b(1, 0) = 0.0;
54 b(1, 1) = 1.0;
55 b(2, 0) = 0.0;
56 b(2, 1) = 0.0;
57
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(){
151
152 //test default constructor
153 RMat2x2 tmp1;
154 CPPUNIT_ASSERT(tmp1 == zero);
155
156 //test RectMatrix(Real s)
157 RMat2x2 tmp2;
158 CPPUNIT_ASSERT(tmp2 == zero);
159
160 //test copy constructor
161 RMat2x2 tmp3(m1);
162 CPPUNIT_ASSERT(tmp3 == m1);
163
164 //test copy assignment
165 RMat2x2 tmp4 = m2;
166 tmp4 = tmp4;
167 CPPUNIT_ASSERT(tmp4 == m2);
168
169
170 }
171
172 void RectMatrixTestCase::testEqual() {
173 CPPUNIT_ASSERT(m2 == m3);
174 CPPUNIT_ASSERT(m2 != m3);
175
176 }
177
178 void RectMatrixTestCase::testNegate() {
179
180 CPPUNIT_ASSERT(m1 == -m4);
181 CPPUNIT_ASSERT(m1 == m4);
182 }
183
184 void RectMatrixTestCase::testAdd() {
185 RMat2x2 tmp;
186
187 CPPUNIT_ASSERT(m1 + m4 == zero);
188
189 tmp.add(m1, m1);
190
191 CPPUNIT_ASSERT(m1 * 2.0 == tmp);
192
193 tmp = one;
194 tmp *= 2.0;
195
196 CPPUNIT_ASSERT(tmp == two);
197
198 }
199
200 void RectMatrixTestCase::testSub() {
201
202 RMat2x2 tmp(m2);
203 tmp.sub(m2);
204 CPPUNIT_ASSERT(tmp == zero);
205
206 tmp = m2;
207 tmp -= m2;
208 CPPUNIT_ASSERT(tmp == zero);
209
210 tmp = m1;
211 tmp.sub(m1 , m4);
212 CPPUNIT_ASSERT(tmp == m1 * 2.0);
213
214 CPPUNIT_ASSERT(m1 -m4 == m1 * 2.0);
215
216
217 }
218
219 void RectMatrixTestCase::testMul() {
220
221 CPPUNIT_ASSERT(m1 * 1.0 == m1);
222 CPPUNIT_ASSERT(m1 * 0.0 == zero);
223 CPPUNIT_ASSERT(2.0 *m1 == m1 + m1);
224
225 //test matrix multiplication
226 CPPUNIT_ASSERT(a * b == c);
227 CPPUNIT_ASSERT(d * e == f);
228 CPPUNIT_ASSERT(g * h == i);
229
230 //test matrix vector multiplication
231 CPPUNIT_ASSERT(g * v1 == v2);
232
233 }
234
235 void RectMatrixTestCase::testDiv() {
236
237 CPPUNIT_ASSERT(m1 / 1.0 == m1);
238
239 CPPUNIT_ASSERT(m1 / 2.0 * 2.0 == m1);
240
241 }
242
243 void RectMatrixTestCase::testAccessEntries(){
244 CPPUNIT_ASSERT_DOUBLES_EQUAL(m1(1, 0), 3.0, oopse::epsilon);
245 }
246
247 void RectMatrixTestCase::testTranspose(){
248
249 CPPUNIT_ASSERT((a.transpose()).transpose() == a);
250
251 CPPUNIT_ASSERT(a.transpose() == b);
252 }

Properties

Name Value
svn:executable *