57{
   60 
   62 
   63  try {
   64 
   65    JParser<> zap(
"Auxiliary program to test object comparison methods.");
 
   66 
   68 
   69    zap(argc, argv);
   70  }
   71  catch(const exception &error) {
   72    FATAL(error.what() << endl);
 
   73  }
   74 
   76 
   78 
   79  buffer.push_back(__A__(3.0));
   80  buffer.push_back(__A__(4.0));
   81  buffer.push_back(__A__(2.0));
   82  buffer.push_back(__A__(1.0));
   83  buffer.push_back(__A__(5.0));
   84 
   85  ASSERT(buffer.size() >= 2);
 
   86 
   88        "data",
   89        buffer.begin(), buffer.end());
   90 
   91  
   93 
   95        "sort(.., make_comparator(&__A__::get))",
   96        buffer.begin(), buffer.end());
   97 
   98  for (buffer_type::const_iterator q = buffer.begin(), p = q++; q != buffer.end(); ++p, ++q) {
   99    ASSERT(p->get() < q->get(), 
"test sort");
 
  100  }
  101 
  102 
  103  {
  104    for (const auto& i : buffer) {
  105      
  106      buffer_type::const_iterator p = lower_bound(buffer.begin(), buffer.end(), i.get(), 
make_comparator(&__A__::get));
 
  107 
  108      ASSERT(p != buffer.end() && i.get() == p->get(), 
"test lower_bound");
 
  109    }
  110  }
  111 
  113 
  115        "sort(.., make_comparator(&__A__::get, JComparison::gt()))",
  116        buffer.begin(), buffer.end());
  117 
  118  for (buffer_type::const_iterator q = buffer.begin(), p = q++; q != buffer.end(); ++p, ++q) {
  119    ASSERT(p->get() > q->get());
 
  120  }
  121 
  122  
  124 
  126        "sort(.., make_comparator(&__A__::a))",
  127        buffer.begin(), buffer.end());
  128 
  129  for (buffer_type::const_iterator q = buffer.begin(), p = q++; q != buffer.end(); ++p, ++q) {
  131  }
  132  
  134 
  136        "sort(.., make_comparator(&__A__::a), JComparison::gt())",
  137        buffer.begin(), buffer.end());
  138 
  139  for (buffer_type::const_iterator q = buffer.begin(), p = q++; q != buffer.end(); ++p, ++q) {
  141  }
  142 
  143  return 0;
  144}
#define ASSERT(A,...)
Assert macro.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
void print(const TH1 &h1, std::ostream &out)
Print histogram parameters.
Utility class to parse command line options.
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).