88#include < gtest/gtest.h>
99#include < gmock/gmock.h>
1010
11+ using namespace ::testing;
12+
1113#include < pfasst/quadrature.hpp>
1214
1315using namespace std ;
@@ -74,13 +76,13 @@ TEST(NodesTest, GaussLegendreNodes)
7476 };
7577
7678 auto l3 = pfasst::compute_nodes<long double >(3 , pfasst::QuadratureType::GaussLegendre);
77- EXPECT_THAT (l3, testing:: Pointwise (DoubleNear (), l3e));
79+ EXPECT_THAT (l3, Pointwise (DoubleNear (), l3e));
7880
7981 auto l5 = pfasst::compute_nodes<long double >(5 , pfasst::QuadratureType::GaussLegendre);
80- EXPECT_THAT (l5, testing:: Pointwise (DoubleNear (), l5e));
82+ EXPECT_THAT (l5, Pointwise (DoubleNear (), l5e));
8183
8284 auto l7 = pfasst::compute_nodes<long double >(7 , pfasst::QuadratureType::GaussLegendre);
83- EXPECT_THAT (l7, testing:: Pointwise (DoubleNear (), l7e));
85+ EXPECT_THAT (l7, Pointwise (DoubleNear (), l7e));
8486}
8587
8688TEST (NodesTest, GaussLobattoNodes)
@@ -122,19 +124,19 @@ TEST(NodesTest, GaussLobattoNodes)
122124 };
123125
124126 auto l2 = pfasst::compute_nodes<long double >(2 , pfasst::QuadratureType::GaussLobatto);
125- EXPECT_THAT (l2, testing:: Pointwise (DoubleNear (), l2e));
127+ EXPECT_THAT (l2, Pointwise (DoubleNear (), l2e));
126128
127129 auto l3 = pfasst::compute_nodes<long double >(3 , pfasst::QuadratureType::GaussLobatto);
128- EXPECT_THAT (l3, testing:: Pointwise (DoubleNear (), l3e));
130+ EXPECT_THAT (l3, Pointwise (DoubleNear (), l3e));
129131
130132 auto l5 = pfasst::compute_nodes<long double >(5 , pfasst::QuadratureType::GaussLobatto);
131- EXPECT_THAT (l5, testing:: Pointwise (DoubleNear (), l5e));
133+ EXPECT_THAT (l5, Pointwise (DoubleNear (), l5e));
132134
133135 auto l7 = pfasst::compute_nodes<long double >(7 , pfasst::QuadratureType::GaussLobatto);
134- EXPECT_THAT (l7, testing:: Pointwise (DoubleNear (), l7e));
136+ EXPECT_THAT (l7, Pointwise (DoubleNear (), l7e));
135137
136138 auto l9 = pfasst::compute_nodes<long double >(9 , pfasst::QuadratureType::GaussLobatto);
137- EXPECT_THAT (l9, testing:: Pointwise (DoubleNear (), l9e));
139+ EXPECT_THAT (l9, Pointwise (DoubleNear (), l9e));
138140}
139141
140142TEST (NodesTest, ClenshawCurtisNodes)
@@ -176,19 +178,19 @@ TEST(NodesTest, ClenshawCurtisNodes)
176178 };
177179
178180 auto cc2 = pfasst::compute_nodes<long double >(2 , pfasst::QuadratureType::ClenshawCurtis);
179- EXPECT_THAT (cc2, testing:: Pointwise (DoubleNear (), cc2e));
181+ EXPECT_THAT (cc2, Pointwise (DoubleNear (), cc2e));
180182
181183 auto cc3 = pfasst::compute_nodes<long double >(3 , pfasst::QuadratureType::ClenshawCurtis);
182- EXPECT_THAT (cc3, testing:: Pointwise (DoubleNear (), cc3e));
184+ EXPECT_THAT (cc3, Pointwise (DoubleNear (), cc3e));
183185
184186 auto cc5 = pfasst::compute_nodes<long double >(5 , pfasst::QuadratureType::ClenshawCurtis);
185- EXPECT_THAT (cc5, testing:: Pointwise (DoubleNear (), cc5e));
187+ EXPECT_THAT (cc5, Pointwise (DoubleNear (), cc5e));
186188
187189 auto cc7 = pfasst::compute_nodes<long double >(7 , pfasst::QuadratureType::ClenshawCurtis);
188- EXPECT_THAT (cc7, testing:: Pointwise (DoubleNear (), cc7e));
190+ EXPECT_THAT (cc7, Pointwise (DoubleNear (), cc7e));
189191
190192 auto cc9 = pfasst::compute_nodes<long double >(9 , pfasst::QuadratureType::ClenshawCurtis);
191- EXPECT_THAT (cc9, testing:: Pointwise (DoubleNear (), cc9e));
193+ EXPECT_THAT (cc9, Pointwise (DoubleNear (), cc9e));
192194}
193195
194196TEST (NodesTest, UniformNodes)
@@ -210,13 +212,13 @@ TEST(NodesTest, UniformNodes)
210212 };
211213
212214 auto u2 = pfasst::compute_nodes<long double >(2 , pfasst::QuadratureType::Uniform);
213- EXPECT_THAT (u2, testing:: Pointwise (DoubleNear (), u2e));
215+ EXPECT_THAT (u2, Pointwise (DoubleNear (), u2e));
214216
215217 auto u3 = pfasst::compute_nodes<long double >(3 , pfasst::QuadratureType::Uniform);
216- EXPECT_THAT (u3, testing:: Pointwise (DoubleNear (), u3e));
218+ EXPECT_THAT (u3, Pointwise (DoubleNear (), u3e));
217219
218220 auto u5 = pfasst::compute_nodes<long double >(5 , pfasst::QuadratureType::Uniform);
219- EXPECT_THAT (u5, testing:: Pointwise (DoubleNear (), u5e));
221+ EXPECT_THAT (u5, Pointwise (DoubleNear (), u5e));
220222}
221223
222224TEST (QuadratureTest, GaussLobattoNodes)
@@ -232,7 +234,7 @@ TEST(QuadratureTest, GaussLobattoNodes)
232234 0.20833333333333333
233235 };
234236
235- EXPECT_THAT (s3.data (), testing:: Pointwise (DoubleNear (), s3e));
237+ EXPECT_THAT (s3.data (), Pointwise (DoubleNear (), s3e));
236238
237239 auto l5 = pfasst::compute_nodes<long double >(5 , pfasst::QuadratureType::GaussLobatto);
238240 auto a5 = pfasst::augment_nodes (l5);
@@ -258,7 +260,7 @@ TEST(QuadratureTest, GaussLobattoNodes)
258260 0.11974476934341168251615379970493965 ,
259261 0.067728432186156897969267419174073482
260262 };
261- EXPECT_THAT (s5.data (), testing:: Pointwise (DoubleNear (), s5e));
263+ EXPECT_THAT (s5.data (), Pointwise (DoubleNear (), s5e));
262264}
263265
264266TEST (QuadratureTest, ClenshawCurtisNodes)
@@ -279,11 +281,60 @@ TEST(QuadratureTest, ClenshawCurtisNodes)
279281 0.16319444444444444444444444444444444 ,
280282 0.10243055555555555555555555555555556
281283 };
282- EXPECT_THAT (s4.data (), testing:: Pointwise (DoubleNear (), s4e));
284+ EXPECT_THAT (s4.data (), Pointwise (DoubleNear (), s4e));
283285}
284286
287+ class QmatTest
288+ : public ::TestWithParam<tuple<size_t , pfasst::QuadratureType>>
289+ {
290+ protected:
291+ size_t nnodes;
292+ pfasst::QuadratureType qtype;
293+ vector<long double > nodes;
294+ matrix<long double > q;
295+
296+ public:
297+ virtual void SetUp ()
298+ {
299+ nnodes = get<0 >(GetParam ());
300+ qtype = get<1 >(GetParam ());
301+
302+ auto cnodes = pfasst::compute_nodes<long double >(nnodes, qtype);
303+ auto n1 = pfasst::augment_nodes (cnodes);
304+ nodes = get<0 >(n1);
305+ q = pfasst::compute_quadrature (nodes, nodes, get<1 >(n1), pfasst::QuadratureMatrix::Q);
306+
307+ cout << " Quadrature type no. " << int (qtype) << " -- Number of nodes " << nnodes << endl;
308+
309+ }
310+
311+ virtual void TearDown ()
312+ {}
313+ };
314+
315+ TEST_P (QmatTest, AllNodes)
316+ {
317+ long double qsum;
318+ for (size_t m = 0 ; m < q.size1 (); ++m) {
319+ qsum = 0 ;
320+ for (size_t j = 0 ; j < q.size2 (); ++j) {
321+ qsum += q (m,j);
322+ }
323+ EXPECT_NEAR (qsum, nodes[m+1 ], (long double )(3E-12 ));
324+ }
325+ }
326+
327+ INSTANTIATE_TEST_CASE_P (Quadrature, QmatTest,
328+ ::Combine (::Range<size_t >(2 , 14 ),
329+ Values<pfasst::QuadratureType>(pfasst::QuadratureType::GaussLegendre,
330+ pfasst::QuadratureType::GaussLobatto,
331+ pfasst::QuadratureType::GaussRadau,
332+ pfasst::QuadratureType::ClenshawCurtis,
333+ pfasst::QuadratureType::Uniform)));
334+
335+
285336int main (int argc, char ** argv)
286337{
287- testing:: InitGoogleTest (&argc, argv);
338+ InitGoogleTest (&argc, argv);
288339 return RUN_ALL_TESTS ();
289340}
0 commit comments