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

# User Rev Content
1 tim 1565 #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 tim 1571 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 tim 1565 }
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 tim 1571 CPPUNIT_ASSERT(m2 != m3);
175    
176 tim 1565 }
177    
178     void RectMatrixTestCase::testNegate() {
179    
180     CPPUNIT_ASSERT(m1 == -m4);
181 tim 1575 CPPUNIT_ASSERT(m1 == m4);
182 tim 1565 }
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 tim 1571
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 tim 1565 }
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 tim 1571 CPPUNIT_ASSERT_DOUBLES_EQUAL(m1(1, 0), 3.0, oopse::epsilon);
245 tim 1565 }
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 *