3 import unittest, sys, os
4 sys.path.insert(0, os.path.abspath(
".."))
5 from gnsstk.test_utils
import args, assertSequenceAlmostEqual, run_unit_tests, vec_to_list
18 Naming scheme attempts to match assertions names from unittest module.
21 test_case.assertEqual(a.rows(), b.rows())
22 test_case.assertEqual(a.cols(), b.cols())
25 for i
in range(a.rows()):
26 for j
in range(a.cols()):
27 test_case.assertEqual(a.get_value(i, j), b.get_value(i, j))
35 a = gnsstk.Matrix_double()
36 self.assertEqual(0, a.size())
37 self.assertTrue(a.empty())
38 self.assertEqual(0, a.rows())
39 self.assertEqual(0, a.cols())
42 a = gnsstk.Matrix_int(34, 67)
43 self.assertEqual(2278, a.size())
44 self.assertFalse(a.empty())
45 self.assertEqual(34, a.rows())
46 self.assertEqual(67, a.cols())
49 a = gnsstk.Matrix_int(34, 67, 5)
50 self.assertEqual(2278, a.size())
51 self.assertFalse(a.empty())
52 self.assertEqual(34, a.rows())
53 self.assertEqual(67, a.cols())
54 self.assertEqual(5, a.get_value(23, 34))
58 a = gnsstk.Matrix_double()
59 self.assertTrue(a.empty())
61 a = gnsstk.Matrix_double(12, 23, 5)
62 self.assertFalse(a.empty())
63 self.assertEqual(12, a.rows())
64 self.assertEqual(23, a.cols())
65 self.assertEqual(276, a.size())
66 self.assertEqual(276, a.max_size())
69 a = gnsstk.Matrix_double(12, 34, 5)
70 self.assertEqual(12, a.rows())
71 self.assertEqual(34, a.cols())
72 self.assertEqual(408, a.size())
76 self.assertEqual(34, a.rows())
77 self.assertEqual(56, a.cols())
78 self.assertEqual(1904, a.size())
81 _ = a.resize(1, 1, 13)
82 self.assertEqual(1, a.rows())
83 self.assertEqual(1, a.cols())
84 self.assertEqual(1, a.size())
85 self.assertEqual(13, a.get_value(0, 0))
92 a = gnsstk.Matrix_double(12, 34, 10**-9)
97 a = gnsstk.Matrix_double(12, 34, 10**-11)
99 self.assertSequenceEqual([0] * 34,
vec_to_list(a[7]))
101 a = gnsstk.Matrix_double(12, 34, 10**-11)
103 self.assertSequenceEqual([0] * 12,
vec_to_list(gnsstk.MatrixColSlice_double(a, 30)))
105 a = gnsstk.Matrix_double(12, 34, 10**-11)
107 ref = gnsstk.Matrix_double(12, 34, 0)
112 a = gnsstk.Matrix_double(45, 45, 1)
113 b = gnsstk.Matrix_double(45, 33, 0)
114 c = gnsstk.Matrix_double(45, 45, 0)
116 self.assertTrue(a.isSquare())
117 self.assertFalse(b.isSquare())
118 self.assertTrue(c.isSquare())
120 self.assertFalse(a.isUT())
121 self.assertFalse(b.isUT())
122 self.assertTrue(c.isUT())
124 self.assertFalse(a.isLT())
125 self.assertFalse(b.isLT())
126 self.assertTrue(c.isLT())
128 self.assertFalse(a.isDiagonal())
129 self.assertFalse(b.isDiagonal())
130 self.assertTrue(c.isDiagonal())
132 self.assertTrue(a.isSymmetric())
133 self.assertFalse(b.isSymmetric())
134 self.assertTrue(c.isSymmetric())
138 a = gnsstk.Matrix_double(34, 12, 1)
139 vec1 = a.colCopy(5, 23)
140 self.assertEqual(11, vec1.size())
142 vec2 = a.rowCopy(33, 7)
143 self.assertEqual(5, vec2.size())
146 self.assertEqual(12, vec3.size())
149 a = gnsstk.Matrix_double(34, 34)
152 for i
in range(a.rows()):
153 for j
in range(a.cols()):
157 self.assertSequenceEqual([1] * 34,
vec_to_list(a[1]))
158 self.assertSequenceEqual([20] * 34,
vec_to_list(a[20]))
163 self.assertSequenceEqual([20] * 34,
vec_to_list(a[1]))
164 self.assertSequenceEqual([1] * 34,
vec_to_list(a[20]))
167 a = gnsstk.Matrix_double(34, 34)
170 for i
in range(a.rows()):
171 for j
in range(a.cols()):
175 self.assertSequenceEqual([1] * 34,
vec_to_list(gnsstk.MatrixColSlice_double(a, 1)))
176 self.assertSequenceEqual([20] * 34,
vec_to_list(gnsstk.MatrixColSlice_double(a, 20)))
181 self.assertSequenceEqual([20] * 34,
vec_to_list(gnsstk.MatrixColSlice_double(a, 1)))
182 self.assertSequenceEqual([1] * 34,
vec_to_list(gnsstk.MatrixColSlice_double(a, 20)))
185 a = gnsstk.Matrix_int(5, 5)
186 for i
in range(a.rows()):
187 for j
in range(a.cols()):
193 self.assertSequenceEqual([6, 3, 4, 5, 2],
vec_to_list(gnsstk.MatrixColSlice_int(a, 1)))
194 self.assertSequenceEqual([0, 2, 1, 3, 4],
vec_to_list(a[4]))
198 a = gnsstk.Matrix_double(5, 5)
199 b = gnsstk.Matrix_double(5, 5, 10)
200 ref = gnsstk.Matrix_double(5, 5, 10)
201 a.assignFromMatrix(b)
210 a = gnsstk.Matrix_int(5, 5, 0)
211 ref = gnsstk.Matrix_int(5, 5, -78)
212 v = gnsstk.Vector_int(25, -78)
214 a.assignFromVector(v)
227 a = gnsstk.Matrix_int(5, 5, 0)
228 ref = gnsstk.Matrix_int(5, 5, 42)
234 if __name__ ==
"__main__":