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 |
|
59 |
} |
60 |
|
61 |
void RectMatrixTestCase::testConstructor(){ |
62 |
|
63 |
//test default constructor |
64 |
RMat2x2 tmp1; |
65 |
CPPUNIT_ASSERT(tmp1 == zero); |
66 |
|
67 |
//test RectMatrix(Real s) |
68 |
RMat2x2 tmp2; |
69 |
CPPUNIT_ASSERT(tmp2 == zero); |
70 |
|
71 |
//test copy constructor |
72 |
RMat2x2 tmp3(m1); |
73 |
CPPUNIT_ASSERT(tmp3 == m1); |
74 |
|
75 |
//test copy assignment |
76 |
RMat2x2 tmp4 = m2; |
77 |
tmp4 = tmp4; |
78 |
CPPUNIT_ASSERT(tmp4 == m2); |
79 |
|
80 |
|
81 |
} |
82 |
|
83 |
void RectMatrixTestCase::testEqual() { |
84 |
CPPUNIT_ASSERT(m2 == m3); |
85 |
} |
86 |
|
87 |
void RectMatrixTestCase::testNegate() { |
88 |
|
89 |
CPPUNIT_ASSERT(m1 == -m4); |
90 |
} |
91 |
|
92 |
void RectMatrixTestCase::testAdd() { |
93 |
RMat2x2 tmp; |
94 |
|
95 |
CPPUNIT_ASSERT(m1 + m4 == zero); |
96 |
|
97 |
tmp.add(m1, m1); |
98 |
|
99 |
CPPUNIT_ASSERT(m1 * 2.0 == tmp); |
100 |
|
101 |
tmp = one; |
102 |
tmp *= 2.0; |
103 |
|
104 |
CPPUNIT_ASSERT(tmp == two); |
105 |
|
106 |
} |
107 |
|
108 |
void RectMatrixTestCase::testSub() { |
109 |
|
110 |
RMat2x2 tmp(m2); |
111 |
tmp.sub(m2); |
112 |
CPPUNIT_ASSERT(tmp == zero); |
113 |
|
114 |
tmp = m2; |
115 |
tmp -= m2; |
116 |
CPPUNIT_ASSERT(tmp == zero); |
117 |
|
118 |
tmp = m1; |
119 |
tmp.sub(m1 , m4); |
120 |
CPPUNIT_ASSERT(tmp == m1 * 2.0); |
121 |
|
122 |
CPPUNIT_ASSERT(m1 -m4 == m1 * 2.0); |
123 |
|
124 |
|
125 |
} |
126 |
|
127 |
void RectMatrixTestCase::testMul() { |
128 |
|
129 |
CPPUNIT_ASSERT(m1 * 1.0 == m1); |
130 |
CPPUNIT_ASSERT(m1 * 0.0 == zero); |
131 |
CPPUNIT_ASSERT(2.0 *m1 == m1 + m1); |
132 |
|
133 |
} |
134 |
|
135 |
void RectMatrixTestCase::testDiv() { |
136 |
|
137 |
CPPUNIT_ASSERT(m1 / 1.0 == m1); |
138 |
|
139 |
CPPUNIT_ASSERT(m1 / 2.0 * 2.0 == m1); |
140 |
|
141 |
} |
142 |
|
143 |
void RectMatrixTestCase::testAccessEntries(){ |
144 |
CPPUNIT_ASSERT(m1(1, 0) == 3.0); |
145 |
} |
146 |
|
147 |
void RectMatrixTestCase::testTranspose(){ |
148 |
|
149 |
CPPUNIT_ASSERT((a.transpose()).transpose() == a); |
150 |
|
151 |
CPPUNIT_ASSERT(a.transpose() == b); |
152 |
} |