127 JParser<> zap(
"Example program to test user class with arithmetic capabilities.");
135 catch(
const exception &error) {
136 FATAL(error.what() << endl);
142 const Double_t
xmin = -1.0;
143 const Double_t
xmax = +1.0;
158 DEBUG(
"A " << A << endl);
159 DEBUG(
"B " << B << endl);
160 DEBUG(
"A + B = " <<
C << endl);
161 DEBUG(
"A * alpha = " << D << endl);
162 DEBUG(
"interpolate " << E << endl);
164 ASSERT(fabs(
C.x - (A.x + B.x)) <= precision,
"test of addition");
165 ASSERT(fabs(
C.y - (A.y + B.y)) <= precision,
"test of addition");
166 ASSERT(fabs(
C.z - (A.z + B.z)) <= precision,
"test of addition");
168 ASSERT(fabs(D.x - (A.x * alpha)) <= precision,
"test of multiplication");
169 ASSERT(fabs(D.y - (A.y * alpha)) <= precision,
"test of multiplication");
170 ASSERT(fabs(D.z - (A.z * alpha)) <= precision,
"test of multiplication");
172 ASSERT(fabs(E.x - (A.x * (1.0 - alpha) + B.x * alpha)) <= precision,
"test of interpolation");
173 ASSERT(fabs(E.y - (A.y * (1.0 - alpha) + B.y * alpha)) <= precision,
"test of interpolation");
174 ASSERT(fabs(E.z - (A.z * (1.0 - alpha) + B.z * alpha)) <= precision,
"test of interpolation");
185 for (
int i = 0; i != N; ++i) {
191 x += buffer.rbegin()->x;
192 y += buffer.rbegin()->y;
193 z += buffer.rbegin()->z;
202 DEBUG(
"U " << U << endl);
205 ASSERT(fabs(U.x -
x) <= precision,
"test of averaging");
206 ASSERT(fabs(U.y -
y) <= precision,
"test of averaging");
207 ASSERT(fabs(U.z - z) <= precision,
"test of averaging");
211 double buffer[] = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 };
#define DEBUG(A)
Message macros.
#define ASSERT(A,...)
Assert macro.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Utility class to parse command line options.
T interpolate(const T &first, const T &second, const double alpha)
Interpolation between objects.
std::iterator_traits< T >::value_type getAverage(T __begin, T __end)
Get average.
static const double C
Physics constants.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary base class for inline creation of a static value or clone from a temporary object.