Alamo
test.cc
Go to the documentation of this file.
1#include <stdlib.h>
2
3#include "Util/Util.H"
4
6#include "Test/Set/Matrix4.H"
7
8#include "Operator/Elastic.H"
9
12
25
27
28#include "Unit/Test.H"
29
30int main (int argc, char* argv[])
31{
32 Util::Initialize(argc, argv);
33
34 int failed = 0;
35
36 Util::globalprefix = " │ ";
37
38
39 #define MODELTEST(TYPE) \
40 Util::Test::Message(#TYPE); \
41 { \
42 int subfailed = 0; \
43 subfailed += Util::Test::SubMessage("ArithmeticTest", TYPE::ArithmeticTest<TYPE>(true)); \
44 subfailed += Util::Test::SubMessage("DerivativeTest1", TYPE::DerivativeTest1<TYPE>(true)); \
45 subfailed += Util::Test::SubMessage("DerivativeTest2", TYPE::DerivativeTest2<TYPE>(true)); \
46 if (TYPE::kinvar == Model::Solid::KinematicVariable::F) \
47 { \
48 subfailed += Util::Test::SubMessage("MaterialFrameIndifference", TYPE::MaterialFrameIndifference<TYPE>(true)); \
49 } \
50 failed += Util::Test::SubFinalMessage(subfailed); \
51 }
64
65
66 Util::Test::Message("Set::Matrix4");
67 {
68 int subfailed = 0;
70 subfailed += Util::Test::SubMessage("2D - Full", test_2d_full.SymmetryTest(0));
72 subfailed += Util::Test::SubMessage("3D - Full", test_3d_full.SymmetryTest(0));
74 subfailed += Util::Test::SubMessage("3D - MajorMinor", test_3d_majorminor.SymmetryTest(0));
75 failed += Util::Test::SubFinalMessage(subfailed);
76 }
77
78 Util::Test::Message("Numeric::Interpolator<Linear>");
79 {
80 int subfailed = 0;
82 subfailed += Util::Test::SubMessage("Match",test.Match(0));
83 failed += Util::Test::SubFinalMessage(subfailed);
84 }
85
86 Util::Test::Message("Numeric::Stencil test");
87 {
88 int subfailed = 0;
90 test.Define(32);
91 // first order
92 subfailed += Util::Test::SubMessage("1-0-0",test.Derivative<1,0,0>(0));
93 subfailed += Util::Test::SubMessage("0-1-0",test.Derivative<0,1,0>(0));
94 // second order
95 subfailed += Util::Test::SubMessage("2-0-0",test.Derivative<2,0,0>(0));
96 subfailed += Util::Test::SubMessage("0-2-0",test.Derivative<0,2,0>(0));
97 subfailed += Util::Test::SubMessage("0-0-1",test.Derivative<0,2,0>(0));
98 subfailed += Util::Test::SubMessage("1-1-0",test.Derivative<1,1,0>(0));
99 // fourth order
100 subfailed += Util::Test::SubMessage("3-1-0",test.Derivative<3,1,0>(0));
101 subfailed += Util::Test::SubMessage("1-3-0",test.Derivative<1,3,0>(0));
102 subfailed += Util::Test::SubMessage("2-2-0",test.Derivative<2,2,0>(0));
103 subfailed += Util::Test::SubMessage("4-0-0",test.Derivative<4,0,0>(0));
104 subfailed += Util::Test::SubMessage("0-4-0",test.Derivative<0,4,0>(0));
105#if AMREX_SPACEDIM>2
106 // first order
107 subfailed += Util::Test::SubMessage("0-0-1",test.Derivative<0,0,1>(0));
108 // second order
109 subfailed += Util::Test::SubMessage("0-0-2",test.Derivative<0,0,2>(0));
110 subfailed += Util::Test::SubMessage("1-0-1",test.Derivative<1,0,1>(0));
111 subfailed += Util::Test::SubMessage("0-1-1",test.Derivative<0,1,1>(0));
112 // fourth order
113 subfailed += Util::Test::SubMessage("0-0-4",test.Derivative<0,0,4>(0));
114 subfailed += Util::Test::SubMessage("0-1-3",test.Derivative<0,1,3>(0));
115 subfailed += Util::Test::SubMessage("0-3-1",test.Derivative<0,3,1>(0));
116 subfailed += Util::Test::SubMessage("3-0-1",test.Derivative<3,0,1>(0));
117 subfailed += Util::Test::SubMessage("1-0-3",test.Derivative<1,0,3>(0));
118 subfailed += Util::Test::SubMessage("0-2-2",test.Derivative<0,2,2>(0));
119 subfailed += Util::Test::SubMessage("2-0-2",test.Derivative<2,0,2>(0));
120 subfailed += Util::Test::SubMessage("2-1-1",test.Derivative<2,1,1>(0));
121 subfailed += Util::Test::SubMessage("1-2-1",test.Derivative<1,2,1>(0));
122 subfailed += Util::Test::SubMessage("1-1-2",test.Derivative<1,1,2>(0));
123#endif
124 failed += Util::Test::SubFinalMessage(subfailed);
125 }
126
127 Util::Test::Message("Solver::Nonlocal::Riemann::Roe test");
128 {
129 int subfailed = 0;
131 failed += Util::Test::SubFinalMessage(subfailed);
132 }
133
134 Util::Test::Message("Unit test");
135 {
136 int subfailed = 0;
137 subfailed += Util::Test::SubMessage("Equivalence", UnitTest::Equivalence(1));
138 failed += subfailed;
139 }
140
141
143 Util::Message(INFO,failed," tests failed");
144
146 return failed;
147}
#define INFO
Definition Util.H:21
Isotropic implements the following elastic model.
Definition Laplacian.H:26
static int Test()
Definition Roe.H:255
bool Derivative(int verbose, std::string plotfile="")
Definition Stencil.H:58
void Define(amrex::IntVect _ncells)
Definition Stencil.H:22
int SymmetryTest(int)
Definition Matrix4.H:10
int Equivalence(int verbose=0)
Definition Test.H:10
int Message(std::string testname)
Definition Util.cpp:280
int SubMessage(std::string testname, int failed)
Definition Util.cpp:307
int SubFinalMessage(int failed)
Definition Util.cpp:328
std::string globalprefix
Definition Util.cpp:22
void Finalize()
Definition Util.cpp:213
void Initialize()
Definition Util.cpp:130
void Message(std::string file, std::string func, int line, Args const &... args)
Definition Util.H:126
int main(int argc, char *argv[])
Definition test.cc:30
#define MODELTEST(TYPE)