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