38#include <boost/test/tools/floating_point_comparison.hpp>
39#include <boost/test/unit_test.hpp>
93 static const unsigned int Value = 10;
104 BOOST_CHECK(p1(i) == 2.7);
105 BOOST_CHECK(p1[i] == 2.7);
110 BOOST_CHECK(p2(0) == 0.0);
116 BOOST_CHECK(p3(i) == 2.7);
117 BOOST_CHECK(p3[i] == 2.7);
124 BOOST_CHECK_EQUAL(p2(i), 2.7);
125 BOOST_CHECK_EQUAL(p2[i], 2.7);
137 BOOST_CHECK(v1(0) == 1.1);
138 BOOST_CHECK(v1(1) == 1.2);
139 BOOST_CHECK(v1(2) == 1.3);
145 BOOST_CHECK(v1[0] == 1.4);
146 BOOST_CHECK(v1[1] == 1.5);
147 BOOST_CHECK(v1[2] == 1.6);
153 BOOST_CHECK(v1[0] == 1.7);
154 BOOST_CHECK(v1[1] == 1.8);
155 BOOST_CHECK(v1[2] == 1.9);
157 BOOST_CHECK(v1.
x() == 1.7);
158 BOOST_CHECK(v1.
y() == 1.8);
159 BOOST_CHECK(v1.
z() == 1.9);
166 BOOST_CHECK(v1 == v2);
167 BOOST_CHECK(!(v1 != v2));
170 BOOST_CHECK(v3 != v1);
173 BOOST_CHECK(v4 != v1);
182 double vals[] = {1, -2, 3};
185 double epsilon = 1e-11;
186 BOOST_CHECK_EQUAL(v.
L1Norm(), 1.0 + 2.0 + 3.0);
187 BOOST_CHECK_CLOSE(v.
L2Norm(),
sqrt(1.0 + 4.0 + 9.0), epsilon);
197 double matrix_buf[] = {1.0, 4.0, 7.0, 2.0, 5.0, 8.0, 3.0, 6.0, 9.0};
198 double vector_buf[] = {20.0, 30.0, 40.0};
204 double result_buf[] = {200.0, 470.0, 740.0};
206 BOOST_CHECK_EQUAL(result, expected_result);
214 double matrix_buf[] = {1.0, 4.0, 7.0, 2.0, 5.0, 8.0, 3.0, 6.0, 9.0};
215 double vector_buf[] = {20.0, 30.0, 40.0};
217 std::shared_ptr<NekMatrix<double>> m(
223 double result_buf[] = {400.0, 940.0, 1480.0};
225 BOOST_CHECK_EQUAL(result, expected_result);
233 double m1_buf[] = {1.0, 3.0, 2.0, 4.0};
234 double m2_buf[] = {5.0, 7.0, 6.0, 8.0};
235 double m3_buf[] = {9.0, 11.0, 10.0, 12.0};
236 double vector_buf[] = {20.0, 30.0};
238 std::shared_ptr<NekMatrix<double>> m1(
240 std::shared_ptr<NekMatrix<double>> m2(
242 std::shared_ptr<NekMatrix<double>> m3(
246 b.SetBlock(0, 0, m1);
247 b.SetBlock(1, 0, m2);
248 b.SetBlock(2, 0, m3);
253 double result_buf[] = {80.0, 180.0, 280.0, 380.0, 480.0, 580.0};
255 BOOST_CHECK_EQUAL(result, expected_result);
260 double m_buf[] = {1, 4, 7, 2, 5, 8, 3, 6, 9};
261 double v_buf[] = {10, 11, 12};
262 double expected_result_buf[] = {68, 167, 266};
263 double expected_transpose_result_buf[] = {138, 171, 204};
270 3, expected_transpose_result_buf);
274 BOOST_CHECK_EQUAL(variableResult, expected_result);
275 BOOST_CHECK_EQUAL(constantResult, expected_result);
278 constantResult = m * v_constant;
279 variableResult = m * v_variable;
280 BOOST_CHECK_EQUAL(variableResult, expected_transpose_result);
281 BOOST_CHECK_EQUAL(constantResult, expected_transpose_result);
284 constantResult = m * v_constant;
285 variableResult = m * v_variable;
286 BOOST_CHECK_EQUAL(variableResult, expected_result);
287 BOOST_CHECK_EQUAL(constantResult, expected_result);
290 constantResult = transposed * v_constant;
291 variableResult = transposed * v_variable;
292 BOOST_CHECK_EQUAL(variableResult, expected_transpose_result);
293 BOOST_CHECK_EQUAL(constantResult, expected_transpose_result);
297 double m_buf[] = {1, 4, 2, 5, 3, 6};
298 double v_non_transposed_buf[] = {10, 11, 12};
299 double v_transposed_buf[] = {20, 21};
300 double expected_result_buf[] = {68, 167};
301 double expected_transpose_result_buf[] = {104, 145, 186};
310 3, expected_transpose_result_buf);
314 BOOST_CHECK_EQUAL(variableResult, expected_result);
315 BOOST_CHECK_EQUAL(constantResult, expected_result);
318 variableResult = m * v_transposed_variable;
319 constantResult = m * v_transposed_constant;
320 BOOST_CHECK_EQUAL(variableResult, expected_transpose_result);
321 BOOST_CHECK_EQUAL(constantResult, expected_transpose_result);
324 variableResult = m * v_non_transposed_variable;
325 constantResult = m * v_non_transposed_constant;
326 BOOST_CHECK_EQUAL(variableResult, expected_result);
327 BOOST_CHECK_EQUAL(constantResult, expected_result);
330 variableResult = transposed * v_transposed_variable;
331 constantResult = transposed * v_transposed_constant;
332 BOOST_CHECK_EQUAL(variableResult, expected_transpose_result);
333 BOOST_CHECK_EQUAL(constantResult, expected_transpose_result);
340 double buf[] = {1.0, 2.0, 3.0, 4.0};
344 BOOST_CHECK_EQUAL(b.
GetRows(), 3u);
346 BOOST_CHECK_EQUAL(b[0], 1.0);
347 BOOST_CHECK_EQUAL(b[1], 2.0);
348 BOOST_CHECK_EQUAL(b[2], 3.0);
351 BOOST_CHECK_EQUAL(*iter, 1.0);
353 BOOST_CHECK_EQUAL(*iter, 2.0);
355 BOOST_CHECK_EQUAL(*iter, 3.0);
357 BOOST_CHECK(iter == b.
end());
361 double buf[] = {1.0, 2.0, 3.0, 4.0};
365 BOOST_CHECK_EQUAL(b.
GetRows(), 3u);
367 BOOST_CHECK_EQUAL(b[0], 1.0);
368 BOOST_CHECK_EQUAL(b[1], 2.0);
369 BOOST_CHECK_EQUAL(b[2], 3.0);
372 BOOST_CHECK_EQUAL(*iter, 1.0);
374 BOOST_CHECK_EQUAL(*iter, 2.0);
376 BOOST_CHECK_EQUAL(*iter, 3.0);
378 BOOST_CHECK(iter == b.
end());
382 double buf[] = {1.0, 2.0, 3.0, 4.0};
386 BOOST_CHECK_EQUAL(b.
GetRows(), 3u);
388 BOOST_CHECK_EQUAL(b[0], 1.0);
389 BOOST_CHECK_EQUAL(b[1], 2.0);
390 BOOST_CHECK_EQUAL(b[2], 3.0);
393 BOOST_CHECK_EQUAL(*iter, 1.0);
395 BOOST_CHECK_EQUAL(*iter, 2.0);
397 BOOST_CHECK_EQUAL(*iter, 3.0);
399 BOOST_CHECK(iter == b.
end());
402 BOOST_CHECK_EQUAL(b[0], a[0]);
boost::call_traits< DataType >::reference x()
unsigned int GetDimension() const
Returns the number of dimensions for the point.
unsigned int GetRows() const
boost::call_traits< DataType >::reference y()
DataType InfinityNorm() const
boost::call_traits< DataType >::reference z()
VectorTestClass operator=(const VectorTestClass &rhs)
VectorTestClass(const VectorTestClass &in)=default
VectorTestClass(int data)
bool operator!=(const PointTestClass &lhs, const PointTestClass &rhs)
bool operator==(const PointTestClass &lhs, const PointTestClass &rhs)
BOOST_AUTO_TEST_CASE(TestGaussInt)
The above copyright notice and this permission notice shall be included.
NekMatrix< InnerMatrixType, BlockMatrixTag > Transpose(NekMatrix< InnerMatrixType, BlockMatrixTag > &rhs)
scalarT< T > sqrt(scalarT< T > in)
static const unsigned int Value