preCICE v3.2.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DimensionsTest.cpp
Go to the documentation of this file.
1#include <Eigen/Core>
2#include "math/constants.hpp"
4#include "testing/Testing.hpp"
6#include "utils/String.hpp"
7
8using namespace precice;
9using namespace precice::utils;
10
11BOOST_AUTO_TEST_SUITE(DimensionTests)
12BOOST_AUTO_TEST_SUITE(UtilsTests)
13
15BOOST_AUTO_TEST_CASE(LinearizeDelinearize)
16{
18 { // 2D
19 using Eigen::Vector2d;
20 BOOST_TEST(linearize(Vector2d(0.0, 0.0)) == 0);
21 BOOST_TEST(linearize(Vector2d(1.0, 0.0)) == 1);
22 BOOST_TEST(linearize(Vector2d(0.0, 1.0)) == 2);
23 BOOST_TEST(linearize(Vector2d(1.0, 1.0)) == 3);
24
25 Vector2d delin0 = delinearize(0, 2);
26 BOOST_TEST(delin0(0) == -1.0);
27 BOOST_TEST(delin0(1) == -1.0);
28
29 Vector2d delin1 = delinearize(1, 2);
30 BOOST_TEST(delin1(0) == 1.0);
31 BOOST_TEST(delin1(1) == -1.0);
32
33 Vector2d delin2 = delinearize(2, 2);
34 BOOST_TEST(delin2(0) == -1.0);
35 BOOST_TEST(delin2(1) == 1.0);
36
37 Vector2d delin3 = delinearize(3, 2);
38 BOOST_TEST(delin3(0) == 1.0);
39 BOOST_TEST(delin3(1) == 1.0);
40 }
41
42 { // 3D
43 using Eigen::Vector3d;
44 BOOST_TEST(linearize(Vector3d(0.0, 0.0, 0.0)) == 0);
45 BOOST_TEST(linearize(Vector3d(1.0, 0.0, 0.0)) == 1);
46 BOOST_TEST(linearize(Vector3d(0.0, 1.0, 0.0)) == 2);
47 BOOST_TEST(linearize(Vector3d(1.0, 1.0, 0.0)) == 3);
48 BOOST_TEST(linearize(Vector3d(0.0, 0.0, 1.0)) == 4);
49 BOOST_TEST(linearize(Vector3d(1.0, 0.0, 1.0)) == 5);
50 BOOST_TEST(linearize(Vector3d(0.0, 1.0, 1.0)) == 6);
51 BOOST_TEST(linearize(Vector3d(1.0, 1.0, 1.0)) == 7);
52
53 Vector3d delin0 = delinearize(0, 3);
54 BOOST_TEST(delin0(0) == -1.0);
55 BOOST_TEST(delin0(1) == -1.0);
56 BOOST_TEST(delin0(2) == -1.0);
57
58 Vector3d delin1 = delinearize(1, 3);
59 BOOST_TEST(delin1(0) == 1.0);
60 BOOST_TEST(delin1(1) == -1.0);
61 BOOST_TEST(delin1(2) == -1.0);
62
63 Vector3d delin2 = delinearize(2, 3);
64 BOOST_TEST(delin2(0) == -1.0);
65 BOOST_TEST(delin2(1) == 1.0);
66 BOOST_TEST(delin2(2) == -1.0);
67
68 Vector3d delin3 = delinearize(3, 3);
69 BOOST_TEST(delin3(0) == 1.0);
70 BOOST_TEST(delin3(1) == 1.0);
71 BOOST_TEST(delin3(2) == -1.0);
72
73 Vector3d delin4 = delinearize(4, 3);
74 BOOST_TEST(delin4(0) == -1.0);
75 BOOST_TEST(delin4(1) == -1.0);
76 BOOST_TEST(delin4(2) == 1.0);
77
78 Vector3d delin5 = delinearize(5, 3);
79 BOOST_TEST(delin5(0) == 1.0);
80 BOOST_TEST(delin5(1) == -1.0);
81 BOOST_TEST(delin5(2) == 1.0);
82
83 Vector3d delin6 = delinearize(6, 3);
84 BOOST_TEST(delin6(0) == -1.0);
85 BOOST_TEST(delin6(1) == 1.0);
86 BOOST_TEST(delin6(2) == 1.0);
87
88 Vector3d delin7 = delinearize(7, 3);
89 BOOST_TEST(delin7(0) == 1.0);
90 BOOST_TEST(delin7(1) == 1.0);
91 BOOST_TEST(delin7(2) == 1.0);
92 }
93}
94
BOOST_AUTO_TEST_CASE(LinearizeDelinearize)
BOOST_AUTO_TEST_SUITE(PreProcess)
BOOST_AUTO_TEST_SUITE_END()
#define PRECICE_TEST()
Definition Testing.hpp:39
#define PRECICE_TEST_SETUP(...)
Creates and attaches a TestSetup to a Boost test case.
Definition Testing.hpp:29
contains precice-related utilities.
const Eigen::VectorXd & delinearize(int toDelinearize, int dimensions)
int linearize(const VECTOR_T &toLinearize)
Main namespace of the precice library.