76{
78
80
81 try {
82
83 JParser<> zap(
"Example program to test selection of ordered data.");
84
86
87 zap(argc, argv);
88 }
89 catch(const exception &error) {
90 FATAL(error.what() << endl);
91 }
92
93
95
97
98 int numberOfElements = 5;
99
100 for (int i = 0; i != numberOfElements; ++i) {
101 buffer.push_back(__A__(i));
102 }
103
104 print(cout,
debug,
"original:", numberOfElements, buffer.data());
105
106 for (int index = 0; index != numberOfElements -1; ++ index) {
107
108 buffer[index].i += 1;
109
110 print(cout,
debug,
"before:", numberOfElements, buffer.data());
111
113
114 print(cout,
debug,
"after:", N, buffer.data());
115
116 ASSERT(N == numberOfElements - 1);
117
118 for (int i = 0; i != index; ++i) {
120 }
121
122 for (int i = index; i != N; ++i) {
123 ASSERT(buffer[i].i == i+1);
124 }
125
126 buffer[N].i = index;
127
128 sort(buffer.begin(), buffer.end());
129 }
130
131 {
132 const int index = numberOfElements - 1;
133
134 buffer[index].i += 1;
135
136 print(cout,
debug,
"before:", numberOfElements, buffer.data());
137
139
140 print(cout,
debug,
"after:", N, buffer.data());
141
142 ASSERT(N == numberOfElements);
143
144 buffer[index].i = index;
145 }
146
147 {
148 const int index = 0;
149
150 buffer[index].i -= 1;
151
152 print(cout,
debug,
"before:", numberOfElements, buffer.data());
153
155
156 print(cout,
debug,
"after:", N, buffer.data());
157
158 ASSERT(N == numberOfElements);
159
160 buffer[index].i = index;
161 }
162
163 for (int index = 1; index != numberOfElements; ++ index) {
164
165 buffer[index].i -= 1;
166
167 print(cout,
debug,
"before:", numberOfElements, buffer.data());
168
170
171 print(cout,
debug,
"after:", N, buffer.data());
172
173 ASSERT(N == numberOfElements - 1);
174
175 for (int i = 0; i != index; ++i) {
177 }
178
179 for (int i = index; i != N; ++i) {
180 ASSERT(buffer[i].i == i+1);
181 }
182
183 buffer[N].i = index;
184
185 sort(buffer.begin(), buffer.end());
186 }
187
188 return 0;
189}
#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.
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Utility class to parse command line options.
T make_set(T __begin, T __end, JResult_t std::iterator_traits< T >::value_type::*value, const JComparator_t &comparator)
Method to exclude outliers from already sorted data.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).