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).