PFASST++
mocks.hpp
Go to the documentation of this file.
1 #ifndef _TESTS__EXAMPLES__BORIS__MOCKS__HPP_
2 #define _TESTS__EXAMPLES__BORIS__MOCKS__HPP_
3 
4 #include <memory>
5 
6 #include <gtest/gtest.h>
7 #include <gmock/gmock.h>
8 
9 #include "../examples/boris/physics.hpp"
10 #include "../examples/boris/particle_3d.hpp"
11 
12 using namespace pfasst::examples::boris;
13 
14 template<
15  typename scalar,
16  typename time
17 >
18 using MockPositionEncap = Position3DEncapsulation<scalar, time>;
19 
20 
21 template<
22  typename scalar,
23  typename time
24 >
25 using MockVelocityEncap = Velocity3DEncapsulation<scalar, time>;
26 
27 
28 template<
29  typename scalar,
30  typename time
31 >
32 using MockAccelerationEncap = Acceleration3DEncapsulation<scalar, time>;
33 
34 
35 template<
36  typename scalar,
37  typename time
38 >
39 using MockParticle = Particle3DEncapsulation<scalar, time>;
40 
41 
42 template<
43  typename scalar,
44  typename time,
45  template <typename, typename> class ParticleT
46 >
48  : public ElectricField<scalar, time, ParticleT>
49 {
50  private:
51  typedef ElectricField<scalar, time, MockParticle> parent_type;
52 
53  public:
54  using parent_type::evaluate;
55  MOCK_METHOD3_T(evaluate,
56  typename parent_type::particle_type::acceleration_type(vector<shared_ptr<typename parent_type::particle_type>>,
57  size_t,
58  time));
59 };
60 
61 
62 template<
63  typename scalar,
64  typename time,
65  template <typename, typename> class ParticleT
66 >
68  : public MagneticField<scalar, time, MockParticle>
69 {
70  private:
71  typedef MagneticField<scalar, time, MockParticle> parent_type;
72 
73  public:
74  using parent_type::evaluate;
75  MOCK_METHOD3_T(evaluate,
76  typename parent_type::particle_type::acceleration_type(vector<shared_ptr<typename parent_type::particle_type>>,
77  size_t,
78  time));
79 };
80 
81 
82 template<
83  typename scalar,
84  typename time
85 >
87  : public EnergyOperator<scalar, time,
88  MockParticle,
89  MockEField,
90  MockBField
91  >
92 {
93  private:
94  typedef EnergyOperator<scalar, time,
96  MockEField,
99 
100  public:
101  using parent_type::evaluate;
102  MOCK_METHOD2_T(evaluate, scalar(vector<shared_ptr<typename parent_type::particle_type>>,
103  time));
104 };
105 
106 #endif // _TESTS__EXAMPLES__BORIS__MOCKS__HPP_
ElectricField< scalar, time, MockParticle > parent_type
Definition: mocks.hpp:51
EnergyOperator< scalar, time, MockParticle, MockEField, MockBField > parent_type
Definition: mocks.hpp:98
Acceleration3DEncapsulation< scalar, time > MockAccelerationEncap
Definition: mocks.hpp:32
MagneticField< scalar, time, MockParticle > parent_type
Definition: mocks.hpp:71
Velocity3DEncapsulation< scalar, time > MockVelocityEncap
Definition: mocks.hpp:25
Particle3DEncapsulation< scalar, time > MockParticle
Definition: mocks.hpp:39
Position3DEncapsulation< scalar, time > MockPositionEncap
Definition: mocks.hpp:18