53{
   56 
   57  double      precision;
   59 
   60  try {
   61 
   62    JParser<> zap(
"Example program to test multi-dimensional map.");
 
   63 
   66 
   67    zap(argc, argv);
   68  }
   69  catch(const exception &error) {
   70    FATAL(error.what() << endl);
 
   71  }
   72 
   73 
   74  const double xmin = -1.0;
 
   75  const double xmax = +1.0;
 
   76  const double nx   = 3;
   77   
   80                   JMap>::maplist                JMaplist_t;
 
   81 
   83 
   84  JMultimap_t buffer;
   85 
   88      for (
double z = xmin; z <= 
xmax; z += (
xmax - 
xmin)/(nx - 1)) {
 
   89        buffer[
x][
y][z] = 
f1(x, y, z);
 
   90      }
   91    }
   92  }
   93 
   94  const JFormat_t format(6, 1, std::ios::fixed);
 
   95 
   99 
  100  DEBUG(
"i->[second]*->(first|second)" << endl);
 
  101    
  102  for (JMultimap_t::super_const_iterator i = buffer.super_begin(); i != buffer.super_end(); ++i) {
  104          << format << i->first                  << ' ' 
  105          << format << i->second->first          << ' ' 
  106          << format << i->second->second->first  << ' ' 
  107          << format << i->second->second->second << endl);
  108 
  110                   i->second->first,
  111                   i->second->second->first) - i->second->second->second) <= precision, "Test iterator equality");
  112  }
  113 
  114  DEBUG(
"i->[second]*->(first|second)" << endl);
 
  115 
  116  for (JMultimap_t::super_const_reverse_iterator i = buffer.super_rbegin(); i != buffer.super_rend(); ++i) {
  118          << format << i->first                  << ' ' 
  119          << format << i->second->first          << ' ' 
  120          << format << i->second->second->first  << ' ' 
  121          << format << i->second->second->second << endl);
  122 
  124                   i->second->first,
  125                   i->second->second->first) - i->second->second->second) <= precision, "Test iterator equality");
  126  }
  127 
  128  DEBUG(
"*i.[second]*.(first|second)" << endl);
 
  129 
  130  for (JMultimap_t::super_const_reverse_iterator i = buffer.super_rbegin(); i != buffer.super_rend(); ++i) {
  132          << format << (*i).first                << ' ' 
  133          << format << (*i).second.first         << ' ' 
  134          << format << (*i).second.second.first  << ' ' 
  135          << format << (*i).second.second.second << endl);
  136 
  138                   i->second->first,
  139                   i->second->second->first) - i->second->second->second) <= precision, "Test iterator equality");
  140  }
  141 
  142  DEBUG(
"i.getKey() i.getValue()" << endl);
 
  143 
  144  for (JMultimap_t::super_const_iterator i = buffer.super_begin(); i != buffer.super_end(); ++i) {
  145 
  146    DEBUG(i.getKey() << 
' ' << format << i.getValue() << endl);
 
  147 
  148    ASSERT(fabs(
f1(i.getKey()) - i.
getValue()) <= precision, 
"Test iterator equality");
 
  149  }
  150 
  151  return 0;
  152}
void setFormat(const JFormat_t &format)
Set format for given type.
 
#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.
 
const JPolynome f1(1.0, 2.0, 3.0)
Function.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
double getValue(const double x) const
Function value.