39 double data[] = {1., 2., 3.};
45 logger.assert_always(
x0.size() == 0,
"Constructor creates a vector of the wrong size");
46 logger.assert_always(
x1.size() == 1,
"Constructor creates a vector of the wrong size");
47 logger.assert_always(y1.size() == 1,
"Constructor creates a vector of the wrong size");
48 logger.assert_always(y1 ==
x1,
"Copied array does not pass equality test");
49 logger.assert_always(
std::abs(y1[0] -
x1[0]) < 1
e-12,
"Copy constructor does not copy values");
50 logger.assert_always(destroy.
size() == 4,
"Constructor creates a vector of the wrong size");
51 logger.assert_always(convenient.size() == 4,
"Constructor creates a vector of the wrong size");
52 logger.assert_always(fromArray.size() == 3,
"Constructor creates a vector of the wrong size");
55 logger.assert_always(moved.size() == 4,
"Constructor creates a vector of the wrong size");
56 logger.assert_always(
std::abs(moved[2] - 4.) < 1
e-12,
"Constructor from array does not copy!");
57 logger.assert_always(
std::abs(fromArray(0) - 1.) < 1
e-12,
"Constructor from array does not copy!");
58 logger.assert_always(
std::abs(fromArray(1) - 2.) < 1
e-12,
"Constructor from array does not copy!");
59 logger.assert_always(
std::abs(fromArray[2] - 3.) < 1
e-12,
"Constructor from array does not copy!");
60 logger.assert_always(
std::abs(convenient[0] - 5.) < 1
e-12,
"Initializer list constructor does not copy!");
61 logger.assert_always(
std::abs(convenient[1] - 6.) < 1
e-12,
"Initializer list constructor does not copy!");
62 logger.assert_always(
std::abs(convenient[2] - 8.) < 1
e-12,
"Initializer list constructor does not copy!");
63 logger.assert_always(
std::abs(convenient[3] - 9.) < 1
e-12,
"Initializer list constructor does not copy!");
65 logger.assert_always(assigned.
size() == 4,
"Constructor creates a vector of the wrong size");
66 logger.assert_always(
std::abs(assigned[2] - 4.) < 1
e-12,
"Constructor from array does not copy!");
68 logger.assert_always(destroy.
size() == 4,
"Assignment operator creates a vector of the wrong size");
69 logger.assert_always(
std::abs(convenient(0) - 5.) < 1
e-12,
"Assignment operator from array does not copy!");
70 logger.assert_always(
std::abs(convenient[1] - 6.) < 1
e-12,
"Assignment operator from array does not copy!");
71 logger.assert_always(
std::abs(convenient(2) - 8.) < 1
e-12,
"Assignment operator from array does not copy!");
72 logger.assert_always(
std::abs(convenient(3) - 9.) < 1
e-12,
"Assignment operator from array does not copy!");
81 logger.assert_always(pr2.
size() == 2,
"Constructor creates a vector of the wrong size");
82 logger.assert_always(pc2.
size() == 2,
"Constructor creates a vector of the wrong size");
83 for (std::size_t
i = 0;
i < 2; ++
i)
85 logger.assert_always((
std::abs(pc2[
i] - 0.8 -
i) < 1
e-12),
"assignment operator");
86 logger.assert_always((
std::abs(pr2[
i] - 0.8 -
i) < 1
e-12),
"assignment operator");
88 logger.assert_always((pr2 == pc2 && pc2 == pr2 && pc2 == p2 && !(pr2 == pv2 || pv2 == pr2 || p2 == pv2)),
"equality operator");
89 logger.assert_always(!(pr2 == pw2 || pw2 == pr2 || p2 == pw2 || pr2 == px2 || px2 == pr2 || p2 == px2 || pr2 == py2 || py2 == pr2 || p2 == py2),
"equality operator");
91 for (std::size_t
i = 0;
i < 2; ++
i)
93 logger.assert_always((
std::abs(pc2[
i] - 1.6 - 2 *
i) < 1
e-12),
"increment operator");
96 for (std::size_t
i = 0;
i < 2; ++
i)
98 logger.assert_always((
std::abs(pc2[
i] - 0.8 - 2 *
i) < 1
e-12),
"decrement operator");
101 for (std::size_t
i = 0;
i < 2; ++
i)
103 logger.assert_always((
std::abs(pc2[
i] - 3.2 - 8 *
i) < 1
e-12),
"multiply operator");
105 for (std::size_t
i = 0;
i < 2; ++
i)
107 logger.assert_always((
std::abs((pc2 * -0.25)[
i] + 0.8 + 2 *
i) < 1
e-12),
"multiplication");
109 for (std::size_t
i = 0;
i < 2; ++
i)
111 logger.assert_always((
std::abs((pc2 + pv2)[
i] - 4. - 8 *
i) < 1
e-12),
"addition");
113 for (std::size_t
i = 0;
i < 2; ++
i)
115 logger.assert_always((
std::abs((pv2 - pc2)[
i] + 2.4 + 8 *
i) < 1
e-12),
"subtraction");
117 for (std::size_t
i = 0;
i < 2; ++
i)
121 for (std::size_t
i = 0;
i < 2; ++
i)
123 logger.assert_always((
std::abs((0.25 * pc2)[
i] - 0.8 - 2 *
i) < 1
e-12),
"left multiplication");
125 logger.assert_always((
std::abs((pv2 * pc2) - 1.44 * 8) < 1
e-12),
"in-product");
127 for (std::size_t
i = 0;
i < 2; ++
i)
129 logger.assert_always((
std::abs(pc2[
i] - 0.8 - 2 *
i) < 1
e-12),
"divide operator");
131 for (std::size_t
i = 0;
i < 2; ++
i)
133 logger.assert_always((
std::abs((pc2 / -0.25)[
i] + 3.2 + 8 *
i) < 1
e-12),
"division");
136 for (std::size_t
i = 0;
i < 2; ++
i)
138 logger.assert_always((
std::abs(pc2[
i] + 1.6 +
i) < 1
e-12),
"combined multiply and addition (y = ax + y)");
144 logger.assert_always(
std::abs(magicCopy(0) - 5.) < 1
e-12,
"Assignment operator from array does not copy!");
145 logger.assert_always(
std::abs(magicCopy(1) - 6.) < 1
e-12,
"Assignment operator from array does not copy!");
146 logger.assert_always(
std::abs(magicCopy(2) - 8.) < 1
e-12,
"Assignment operator from array does not copy!");
147 logger.assert_always(
std::abs(magicCopy(3) - 9.) < 1
e-12,
"Assignment operator from array does not copy!");
148 convenient.data()[3] = 2.;
149 logger.assert_always(
std::abs(magicCopy(3) - 9.) < 1
e-12,
"Assignment operator from array does not copy!");
150 logger.assert_always(
std::abs(convenient(3) - 2.) < 1
e-12,
"Assignment operator from array does not copy!");
AnnoyingScalar abs(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:135
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
int data[]
Definition: Map_placement_new.cpp:1
Definition: SmallVector.h:42
unsigned int size() const
Definition: SmallVector.h:213
#define INFO(i)
Definition: mumps_solver.h:54
Vector< double > x1(const Vector< double > &coord)
Cartesian coordinates centered at the point (0.5,1)
Definition: poisson/poisson_with_singularity/two_d_poisson.cc:86
Vector< double > x0(2, 0.0)