File indexing completed on 2024-04-06 12:05:05
0001
0002
0003
0004
0005 #include "cppunit/extensions/HelperMacros.h"
0006
0007 #include "DataFormats/Provenance/interface/ProcessHistoryID.h"
0008 #include "DataFormats/Provenance/interface/ProcessConfiguration.h"
0009 #include "DataFormats/Provenance/interface/ProcessHistory.h"
0010
0011 #include "DataFormats/Provenance/interface/IndexIntoFile.h"
0012
0013 #include <string>
0014 #include <iostream>
0015 #include <memory>
0016
0017 using namespace edm;
0018
0019 class TestIndexIntoFile2 : public CppUnit::TestFixture {
0020 CPPUNIT_TEST_SUITE(TestIndexIntoFile2);
0021 CPPUNIT_TEST(testAddEntryAndFixAndSort);
0022 CPPUNIT_TEST(testAddEntryAndFixAndSort2);
0023 CPPUNIT_TEST_SUITE_END();
0024
0025 public:
0026 static const IndexIntoFile::EntryType kRun = IndexIntoFile::kRun;
0027 static const IndexIntoFile::EntryType kLumi = IndexIntoFile::kLumi;
0028 static const IndexIntoFile::EntryType kEvent = IndexIntoFile::kEvent;
0029 static const IndexIntoFile::EntryType kEnd = IndexIntoFile::kEnd;
0030
0031 void setUp() {
0032
0033 nullPHID = ProcessHistoryID();
0034
0035 ProcessConfiguration pc;
0036 auto processHistory1 = std::make_unique<ProcessHistory>();
0037 ProcessHistory& ph1 = *processHistory1;
0038 processHistory1->push_back(pc);
0039 fakePHID1 = ph1.id();
0040
0041 auto processHistory2 = std::make_unique<ProcessHistory>();
0042 ProcessHistory& ph2 = *processHistory2;
0043 processHistory2->push_back(pc);
0044 processHistory2->push_back(pc);
0045 fakePHID2 = ph2.id();
0046
0047 auto processHistory3 = std::make_unique<ProcessHistory>();
0048 ProcessHistory& ph3 = *processHistory3;
0049 processHistory3->push_back(pc);
0050 processHistory3->push_back(pc);
0051 processHistory3->push_back(pc);
0052 fakePHID3 = ph3.id();
0053 }
0054
0055 void tearDown() {}
0056
0057 void testAddEntryAndFixAndSort();
0058 void testAddEntryAndFixAndSort2();
0059
0060 ProcessHistoryID nullPHID;
0061 ProcessHistoryID fakePHID1;
0062 ProcessHistoryID fakePHID2;
0063 ProcessHistoryID fakePHID3;
0064
0065 bool check(edm::IndexIntoFile::IndexIntoFileItr const& iter,
0066 IndexIntoFile::EntryType type,
0067 int indexToRun,
0068 int indexToLumi,
0069 int indexToEventRange,
0070 long long indexToEvent,
0071 long long nEvents);
0072
0073
0074 class TestEventFinder : public IndexIntoFile::EventFinder {
0075 public:
0076 explicit TestEventFinder() {}
0077 virtual ~TestEventFinder() {}
0078 virtual EventNumber_t getEventNumberOfEntry(IndexIntoFile::EntryNumber_t entry) const {
0079 return testData_.at(entry);
0080 }
0081 void push_back(EventNumber_t e) { testData_.push_back(e); }
0082
0083 private:
0084 std::vector<EventNumber_t> testData_;
0085 };
0086 };
0087
0088
0089 CPPUNIT_TEST_SUITE_REGISTRATION(TestIndexIntoFile2);
0090
0091 bool TestIndexIntoFile2::check(edm::IndexIntoFile::IndexIntoFileItr const& iter,
0092 IndexIntoFile::EntryType type,
0093 int indexToRun,
0094 int indexToLumi,
0095 int indexToEventRange,
0096 long long indexToEvent,
0097 long long nEvents) {
0098 bool theyMatch = iter.getEntryType() == type && iter.type() == type && iter.indexToRun() == indexToRun &&
0099 iter.indexToLumi() == indexToLumi && iter.indexToEventRange() == indexToEventRange &&
0100 iter.indexToEvent() == indexToEvent && iter.nEvents() == nEvents;
0101 if (!theyMatch) {
0102 std::cout << "\nExpected " << type << " " << indexToRun << " " << indexToLumi << " " << indexToEventRange
0103 << " " << indexToEvent << " " << nEvents << "\n";
0104 std::cout << "Iterator values " << iter.type() << " " << iter.indexToRun() << " " << iter.indexToLumi() << " "
0105 << iter.indexToEventRange() << " " << iter.indexToEvent() << " " << iter.nEvents() << "\n";
0106 }
0107 return theyMatch;
0108 }
0109
0110 void TestIndexIntoFile2::testAddEntryAndFixAndSort() {
0111 edm::IndexIntoFile indexIntoFile;
0112 indexIntoFile.fillEventNumbersOrEntries(true, true);
0113
0114 indexIntoFile.addEntry(fakePHID1, 11, 12, 7, 0);
0115 indexIntoFile.addEntry(fakePHID1, 11, 12, 6, 1);
0116 indexIntoFile.addEntry(fakePHID1, 11, 12, 0, 0);
0117 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 1);
0118 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].processHistoryIDIndex() == 0);
0119 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 1);
0120 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0121 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].orderPHIDRun() == IndexIntoFile::invalidEntry);
0122 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].orderPHIDRunLumi() == 0);
0123 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].beginEvents() == 0);
0124 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].endEvents() == 2);
0125
0126 indexIntoFile.addEntry(fakePHID1, 11, 0, 0, 0);
0127 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 2);
0128 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].processHistoryIDIndex() == 0);
0129 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 1);
0130 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0131 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].orderPHIDRun() == 0);
0132 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0133 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].beginEvents() == IndexIntoFile::invalidEntry);
0134 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].endEvents() == IndexIntoFile::invalidEntry);
0135
0136 indexIntoFile.addEntry(fakePHID2, 11, 12, 10, 2);
0137 indexIntoFile.addEntry(fakePHID2, 11, 12, 9, 3);
0138 indexIntoFile.addEntry(fakePHID2, 11, 12, 0, 1);
0139 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 3);
0140 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].processHistoryIDIndex() == 1);
0141 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0142 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[1] == fakePHID2);
0143 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].orderPHIDRun() == IndexIntoFile::invalidEntry);
0144 CPPUNIT_ASSERT(indexIntoFile.setRunOrLumiEntries()[2].orderPHIDRunLumi() == 1);
0145 CPPUNIT_ASSERT(indexIntoFile.setRunOrLumiEntries()[2].beginEvents() == 2);
0146 CPPUNIT_ASSERT(indexIntoFile.setRunOrLumiEntries()[2].endEvents() == 4);
0147
0148 indexIntoFile.addEntry(fakePHID2, 11, 0, 0, 1);
0149 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 4);
0150 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].processHistoryIDIndex() == 1);
0151 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0152 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[1] == fakePHID2);
0153 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].orderPHIDRun() == 1);
0154 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0155 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].beginEvents() == IndexIntoFile::invalidEntry);
0156 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].endEvents() == IndexIntoFile::invalidEntry);
0157
0158 indexIntoFile.addEntry(fakePHID1, 11, 12, 5, 4);
0159 indexIntoFile.addEntry(fakePHID1, 11, 12, 4, 5);
0160 indexIntoFile.addEntry(fakePHID1, 11, 12, 0, 2);
0161 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 5);
0162 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].processHistoryIDIndex() == 0);
0163 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0164 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0165 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].orderPHIDRun() == IndexIntoFile::invalidEntry);
0166 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].orderPHIDRunLumi() == 0);
0167 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].beginEvents() == 4);
0168 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].endEvents() == 6);
0169 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].entry() == 2);
0170 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].run() == 11);
0171 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].lumi() == 12);
0172
0173 indexIntoFile.addEntry(fakePHID1, 11, 0, 0, 2);
0174 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 6);
0175 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0176 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0177 IndexIntoFile::RunOrLumiEntry const& runOrLumiEntry = indexIntoFile.runOrLumiEntries()[5];
0178 CPPUNIT_ASSERT(runOrLumiEntry.processHistoryIDIndex() == 0);
0179 CPPUNIT_ASSERT(runOrLumiEntry.orderPHIDRun() == 0);
0180 CPPUNIT_ASSERT(runOrLumiEntry.orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0181 CPPUNIT_ASSERT(runOrLumiEntry.beginEvents() == IndexIntoFile::invalidEntry);
0182 CPPUNIT_ASSERT(runOrLumiEntry.endEvents() == IndexIntoFile::invalidEntry);
0183 CPPUNIT_ASSERT(runOrLumiEntry.entry() == 2);
0184 CPPUNIT_ASSERT(runOrLumiEntry.run() == 11);
0185 CPPUNIT_ASSERT(runOrLumiEntry.lumi() == IndexIntoFile::invalidLumi);
0186
0187 indexIntoFile.addEntry(fakePHID1, 1, 3, 0, 3);
0188 indexIntoFile.addEntry(fakePHID1, 1, 2, 8, 6);
0189 indexIntoFile.addEntry(fakePHID1, 1, 2, 0, 4);
0190 indexIntoFile.addEntry(fakePHID1, 1, 2, 0, 5);
0191 indexIntoFile.addEntry(fakePHID1, 1, 0, 0, 3);
0192
0193 indexIntoFile.sortVector_Run_Or_Lumi_Entries();
0194
0195 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].orderPHIDRun() == 0);
0196 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].orderPHIDRun() == 0);
0197 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].orderPHIDRun() == 0);
0198 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].orderPHIDRun() == 0);
0199 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].orderPHIDRun() == 1);
0200 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[5].orderPHIDRun() == 1);
0201 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[6].orderPHIDRun() == 2);
0202 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[7].orderPHIDRun() == 2);
0203 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[8].orderPHIDRun() == 2);
0204 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[9].orderPHIDRun() == 2);
0205
0206 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0207 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0208 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].orderPHIDRunLumi() == 0);
0209 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].orderPHIDRunLumi() == 0);
0210 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0211 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[5].orderPHIDRunLumi() == 1);
0212 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[6].orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0213 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[7].orderPHIDRunLumi() == 2);
0214 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[8].orderPHIDRunLumi() == 3);
0215 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[9].orderPHIDRunLumi() == 3);
0216
0217 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].entry() == 0);
0218 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].entry() == 2);
0219 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].entry() == 0);
0220 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].entry() == 2);
0221 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].entry() == 1);
0222 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[5].entry() == 1);
0223 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[6].entry() == 3);
0224 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[7].entry() == 3);
0225 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[8].entry() == 4);
0226 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[9].entry() == 5);
0227
0228 CPPUNIT_ASSERT(indexIntoFile.processHistoryID(0) == fakePHID1);
0229 CPPUNIT_ASSERT(indexIntoFile.processHistoryID(1) == fakePHID2);
0230
0231 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0232 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[1] == fakePHID2);
0233
0234 std::vector<ProcessHistoryID> sourcePHIDs;
0235 sourcePHIDs.push_back(fakePHID3);
0236 sourcePHIDs.push_back(fakePHID2);
0237
0238 indexIntoFile.fixIndexes(sourcePHIDs);
0239
0240 CPPUNIT_ASSERT(sourcePHIDs.size() == 3);
0241 CPPUNIT_ASSERT(sourcePHIDs[0] == fakePHID3);
0242 CPPUNIT_ASSERT(sourcePHIDs[1] == fakePHID2);
0243 CPPUNIT_ASSERT(sourcePHIDs[2] == fakePHID1);
0244 CPPUNIT_ASSERT(sourcePHIDs == indexIntoFile.processHistoryIDs());
0245
0246 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].processHistoryIDIndex() == 2);
0247 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].processHistoryIDIndex() == 2);
0248 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].processHistoryIDIndex() == 2);
0249 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].processHistoryIDIndex() == 2);
0250 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].processHistoryIDIndex() == 1);
0251 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[5].processHistoryIDIndex() == 1);
0252 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[6].processHistoryIDIndex() == 2);
0253 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[7].processHistoryIDIndex() == 2);
0254 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[8].processHistoryIDIndex() == 2);
0255 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[9].processHistoryIDIndex() == 2);
0256
0257 std::vector<ProcessHistoryID>& phids = indexIntoFile.setProcessHistoryIDs();
0258 phids.push_back(nullPHID);
0259 CPPUNIT_ASSERT(nullPHID == indexIntoFile.processHistoryID(3));
0260
0261 unsigned count = 0;
0262 IndexIntoFile::SortedRunOrLumiItr runOrLumi = indexIntoFile.beginRunOrLumi();
0263 for (IndexIntoFile::SortedRunOrLumiItr endRunOrLumi = indexIntoFile.endRunOrLumi(); runOrLumi != endRunOrLumi;
0264 ++runOrLumi, ++count) {
0265 IndexIntoFile::RunOrLumiIndexes const& indexes = runOrLumi.runOrLumiIndexes();
0266 switch (count) {
0267 case 0:
0268 CPPUNIT_ASSERT(indexes.indexToGetEntry() == 4);
0269 CPPUNIT_ASSERT(indexes.beginEventNumbers() == -1);
0270 CPPUNIT_ASSERT(indexes.endEventNumbers() == -1);
0271 break;
0272 case 1:
0273 CPPUNIT_ASSERT(indexes.indexToGetEntry() == 5);
0274 CPPUNIT_ASSERT(indexes.beginEventNumbers() == 0);
0275 CPPUNIT_ASSERT(indexes.endEventNumbers() == 2);
0276 break;
0277 case 2:
0278 CPPUNIT_ASSERT(indexes.indexToGetEntry() == 6);
0279 CPPUNIT_ASSERT(indexes.beginEventNumbers() == -1);
0280 CPPUNIT_ASSERT(indexes.endEventNumbers() == -1);
0281 break;
0282 case 3:
0283 CPPUNIT_ASSERT(indexes.indexToGetEntry() == 8);
0284 CPPUNIT_ASSERT(indexes.beginEventNumbers() == 2);
0285 CPPUNIT_ASSERT(indexes.endEventNumbers() == 3);
0286 break;
0287 case 4:
0288 CPPUNIT_ASSERT(indexes.indexToGetEntry() == 9);
0289 CPPUNIT_ASSERT(indexes.beginEventNumbers() == 2);
0290 CPPUNIT_ASSERT(indexes.endEventNumbers() == 3);
0291 break;
0292 case 5:
0293 CPPUNIT_ASSERT(indexes.indexToGetEntry() == 7);
0294 CPPUNIT_ASSERT(indexes.beginEventNumbers() == 3);
0295 CPPUNIT_ASSERT(indexes.endEventNumbers() == 3);
0296 break;
0297 case 6:
0298 CPPUNIT_ASSERT(indexes.indexToGetEntry() == 0);
0299 CPPUNIT_ASSERT(indexes.beginEventNumbers() == -1);
0300 CPPUNIT_ASSERT(indexes.endEventNumbers() == -1);
0301 break;
0302 case 7:
0303 CPPUNIT_ASSERT(indexes.indexToGetEntry() == 1);
0304 CPPUNIT_ASSERT(indexes.beginEventNumbers() == -1);
0305 CPPUNIT_ASSERT(indexes.endEventNumbers() == -1);
0306 break;
0307 case 8:
0308 CPPUNIT_ASSERT(indexes.indexToGetEntry() == 2);
0309 CPPUNIT_ASSERT(indexes.beginEventNumbers() == 3);
0310 CPPUNIT_ASSERT(indexes.endEventNumbers() == 7);
0311 break;
0312 case 9:
0313 CPPUNIT_ASSERT(indexes.indexToGetEntry() == 3);
0314 CPPUNIT_ASSERT(indexes.beginEventNumbers() == 3);
0315 CPPUNIT_ASSERT(indexes.endEventNumbers() == 7);
0316 break;
0317 }
0318 }
0319
0320 std::vector<EventNumber_t>& eventNumbers = indexIntoFile.eventNumbers();
0321
0322 eventNumbers.push_back(10);
0323 eventNumbers.push_back(9);
0324 eventNumbers.push_back(8);
0325 eventNumbers.push_back(7);
0326 eventNumbers.push_back(6);
0327 eventNumbers.push_back(5);
0328 eventNumbers.push_back(4);
0329 indexIntoFile.sortEvents();
0330
0331 CPPUNIT_ASSERT(eventNumbers[0] == 9);
0332 CPPUNIT_ASSERT(eventNumbers[1] == 10);
0333 CPPUNIT_ASSERT(eventNumbers[2] == 8);
0334 CPPUNIT_ASSERT(eventNumbers[3] == 4);
0335 CPPUNIT_ASSERT(eventNumbers[4] == 5);
0336 CPPUNIT_ASSERT(eventNumbers[5] == 6);
0337 CPPUNIT_ASSERT(eventNumbers[6] == 7);
0338
0339 std::vector<IndexIntoFile::EventEntry>& eventEntries = indexIntoFile.eventEntries();
0340
0341 eventEntries.emplace_back(10, 2);
0342 eventEntries.emplace_back(9, 3);
0343 eventEntries.emplace_back(8, 6);
0344 eventEntries.emplace_back(7, 0);
0345 eventEntries.emplace_back(6, 1);
0346 eventEntries.emplace_back(5, 4);
0347 eventEntries.emplace_back(4, 5);
0348 indexIntoFile.sortEventEntries();
0349
0350 CPPUNIT_ASSERT(eventEntries[0].event() == 9);
0351 CPPUNIT_ASSERT(eventEntries[1].event() == 10);
0352 CPPUNIT_ASSERT(eventEntries[2].event() == 8);
0353 CPPUNIT_ASSERT(eventEntries[3].event() == 4);
0354 CPPUNIT_ASSERT(eventEntries[4].event() == 5);
0355 CPPUNIT_ASSERT(eventEntries[5].event() == 6);
0356 CPPUNIT_ASSERT(eventEntries[6].event() == 7);
0357
0358 std::vector<EventNumber_t>().swap(eventNumbers);
0359 std::vector<IndexIntoFile::EventEntry>().swap(eventEntries);
0360
0361 CPPUNIT_ASSERT(indexIntoFile.numberOfEvents() == 7);
0362
0363 TestEventFinder* ptr(new TestEventFinder);
0364 ptr->push_back(7);
0365 ptr->push_back(6);
0366 ptr->push_back(10);
0367 ptr->push_back(9);
0368 ptr->push_back(5);
0369 ptr->push_back(4);
0370 ptr->push_back(8);
0371
0372 std::shared_ptr<IndexIntoFile::EventFinder> shptr(ptr);
0373 indexIntoFile.setEventFinder(shptr);
0374
0375 indexIntoFile.fillEventNumbers();
0376 CPPUNIT_ASSERT(eventNumbers[0] == 9);
0377 CPPUNIT_ASSERT(eventNumbers[1] == 10);
0378 CPPUNIT_ASSERT(eventNumbers[2] == 8);
0379 CPPUNIT_ASSERT(eventNumbers[3] == 4);
0380 CPPUNIT_ASSERT(eventNumbers[4] == 5);
0381 CPPUNIT_ASSERT(eventNumbers[5] == 6);
0382 CPPUNIT_ASSERT(eventNumbers[6] == 7);
0383
0384 indexIntoFile.fillEventEntries();
0385 CPPUNIT_ASSERT(eventEntries[0].event() == 9);
0386 CPPUNIT_ASSERT(eventEntries[1].event() == 10);
0387 CPPUNIT_ASSERT(eventEntries[2].event() == 8);
0388 CPPUNIT_ASSERT(eventEntries[3].event() == 4);
0389 CPPUNIT_ASSERT(eventEntries[4].event() == 5);
0390 CPPUNIT_ASSERT(eventEntries[5].event() == 6);
0391 CPPUNIT_ASSERT(eventEntries[6].event() == 7);
0392
0393 std::vector<EventNumber_t>().swap(eventNumbers);
0394 std::vector<IndexIntoFile::EventEntry>().swap(eventEntries);
0395
0396 indexIntoFile.fillEventEntries();
0397 CPPUNIT_ASSERT(eventEntries[0].event() == 9);
0398 CPPUNIT_ASSERT(eventEntries[1].event() == 10);
0399 CPPUNIT_ASSERT(eventEntries[2].event() == 8);
0400 CPPUNIT_ASSERT(eventEntries[3].event() == 4);
0401 CPPUNIT_ASSERT(eventEntries[4].event() == 5);
0402 CPPUNIT_ASSERT(eventEntries[5].event() == 6);
0403 CPPUNIT_ASSERT(eventEntries[6].event() == 7);
0404
0405 indexIntoFile.fillEventNumbers();
0406 CPPUNIT_ASSERT(eventNumbers[0] == 9);
0407 CPPUNIT_ASSERT(eventNumbers[1] == 10);
0408 CPPUNIT_ASSERT(eventNumbers[2] == 8);
0409 CPPUNIT_ASSERT(eventNumbers[3] == 4);
0410 CPPUNIT_ASSERT(eventNumbers[4] == 5);
0411 CPPUNIT_ASSERT(eventNumbers[5] == 6);
0412 CPPUNIT_ASSERT(eventNumbers[6] == 7);
0413
0414 std::vector<EventNumber_t>().swap(eventNumbers);
0415 std::vector<IndexIntoFile::EventEntry>().swap(eventEntries);
0416
0417 indexIntoFile.fillEventNumbersOrEntries(true, true);
0418 indexIntoFile.fillEventNumbersOrEntries(true, true);
0419
0420 CPPUNIT_ASSERT(eventNumbers[0] == 9);
0421 CPPUNIT_ASSERT(eventNumbers[1] == 10);
0422 CPPUNIT_ASSERT(eventNumbers[2] == 8);
0423 CPPUNIT_ASSERT(eventNumbers[3] == 4);
0424 CPPUNIT_ASSERT(eventNumbers[4] == 5);
0425 CPPUNIT_ASSERT(eventNumbers[5] == 6);
0426 CPPUNIT_ASSERT(eventNumbers[6] == 7);
0427
0428 CPPUNIT_ASSERT(eventEntries[0].event() == 9);
0429 CPPUNIT_ASSERT(eventEntries[1].event() == 10);
0430 CPPUNIT_ASSERT(eventEntries[2].event() == 8);
0431 CPPUNIT_ASSERT(eventEntries[3].event() == 4);
0432 CPPUNIT_ASSERT(eventEntries[4].event() == 5);
0433 CPPUNIT_ASSERT(eventEntries[5].event() == 6);
0434 CPPUNIT_ASSERT(eventEntries[6].event() == 7);
0435
0436 std::vector<EventNumber_t>().swap(eventNumbers);
0437 std::vector<IndexIntoFile::EventEntry>().swap(eventEntries);
0438
0439 std::vector<EventNumber_t>& unsortedEventNumbers = indexIntoFile.unsortedEventNumbers();
0440 CPPUNIT_ASSERT(!unsortedEventNumbers.empty());
0441 indexIntoFile.doneFileInitialization();
0442 CPPUNIT_ASSERT(unsortedEventNumbers.empty());
0443 CPPUNIT_ASSERT(unsortedEventNumbers.capacity() == 0);
0444 unsortedEventNumbers.push_back(7);
0445 unsortedEventNumbers.push_back(6);
0446 unsortedEventNumbers.push_back(10);
0447 unsortedEventNumbers.push_back(9);
0448 unsortedEventNumbers.push_back(5);
0449 unsortedEventNumbers.push_back(4);
0450 unsortedEventNumbers.push_back(8);
0451
0452 indexIntoFile.fillEventNumbersOrEntries(true, true);
0453
0454 CPPUNIT_ASSERT(eventNumbers[0] == 9);
0455 CPPUNIT_ASSERT(eventNumbers[1] == 10);
0456 CPPUNIT_ASSERT(eventNumbers[2] == 8);
0457 CPPUNIT_ASSERT(eventNumbers[3] == 4);
0458 CPPUNIT_ASSERT(eventNumbers[4] == 5);
0459 CPPUNIT_ASSERT(eventNumbers[5] == 6);
0460 CPPUNIT_ASSERT(eventNumbers[6] == 7);
0461
0462 CPPUNIT_ASSERT(eventEntries[0].event() == 9);
0463 CPPUNIT_ASSERT(eventEntries[1].event() == 10);
0464 CPPUNIT_ASSERT(eventEntries[2].event() == 8);
0465 CPPUNIT_ASSERT(eventEntries[3].event() == 4);
0466 CPPUNIT_ASSERT(eventEntries[4].event() == 5);
0467 CPPUNIT_ASSERT(eventEntries[5].event() == 6);
0468 CPPUNIT_ASSERT(eventEntries[6].event() == 7);
0469
0470 indexIntoFile.inputFileClosed();
0471 CPPUNIT_ASSERT(unsortedEventNumbers.empty());
0472 CPPUNIT_ASSERT(unsortedEventNumbers.capacity() == 0);
0473 CPPUNIT_ASSERT(eventEntries.capacity() == 0);
0474 CPPUNIT_ASSERT(eventEntries.empty());
0475 CPPUNIT_ASSERT(indexIntoFile.runOrLumiIndexes().capacity() == 0);
0476 CPPUNIT_ASSERT(indexIntoFile.runOrLumiIndexes().empty());
0477 CPPUNIT_ASSERT(indexIntoFile.transient_.eventFinder_.get() == 0);
0478 }
0479 void TestIndexIntoFile2::testAddEntryAndFixAndSort2() {
0480
0481
0482
0483 edm::IndexIntoFile indexIntoFile;
0484
0485 indexIntoFile.addEntry(fakePHID1, 11, 1, 0, 0);
0486 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 1);
0487 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].processHistoryIDIndex() == 0);
0488 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 1);
0489 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0490 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].orderPHIDRun() == IndexIntoFile::invalidEntry);
0491 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].orderPHIDRunLumi() == 0);
0492 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].entry() == 0);
0493 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].run() == 11);
0494 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].lumi() == 1);
0495 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].beginEvents() == IndexIntoFile::invalidEntry);
0496 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[0].endEvents() == IndexIntoFile::invalidEntry);
0497
0498 indexIntoFile.addEntry(fakePHID1, 1, 1, 1, 0);
0499 indexIntoFile.addEntry(fakePHID2, 1, 1, 0, 1);
0500 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 3);
0501
0502 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].processHistoryIDIndex() == 0);
0503 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0504 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0505 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].orderPHIDRun() == IndexIntoFile::invalidEntry);
0506 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].orderPHIDRunLumi() == 1);
0507 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].entry() == IndexIntoFile::invalidEntry);
0508 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].run() == 1);
0509 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].lumi() == 1);
0510 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].beginEvents() == 0);
0511 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[1].endEvents() == 1);
0512
0513 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].processHistoryIDIndex() == 1);
0514 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0515 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[1] == fakePHID2);
0516 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].orderPHIDRun() == IndexIntoFile::invalidEntry);
0517 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].orderPHIDRunLumi() == 2);
0518 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].entry() == 1);
0519 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].run() == 1);
0520 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].lumi() == 1);
0521 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].beginEvents() == IndexIntoFile::invalidEntry);
0522 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[2].endEvents() == IndexIntoFile::invalidEntry);
0523
0524 indexIntoFile.addEntry(fakePHID1, 1, 1, 2, 1);
0525 indexIntoFile.addEntry(fakePHID1, 2, 1, 0, 2);
0526
0527 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 5);
0528 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].processHistoryIDIndex() == 0);
0529 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0530 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0531 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].orderPHIDRun() == IndexIntoFile::invalidEntry);
0532 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].orderPHIDRunLumi() == 1);
0533 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].entry() == IndexIntoFile::invalidEntry);
0534 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].run() == 1);
0535 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].lumi() == 1);
0536 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].beginEvents() == 1);
0537 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[3].endEvents() == 2);
0538
0539 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].processHistoryIDIndex() == 0);
0540 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0541 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0542 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].orderPHIDRun() == IndexIntoFile::invalidEntry);
0543 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].orderPHIDRunLumi() == 3);
0544 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].entry() == 2);
0545 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].run() == 2);
0546 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].lumi() == 1);
0547 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].beginEvents() == IndexIntoFile::invalidEntry);
0548 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[4].endEvents() == IndexIntoFile::invalidEntry);
0549
0550 indexIntoFile.addEntry(fakePHID1, 1, 1, 3, 2);
0551 indexIntoFile.addEntry(fakePHID1, 1, 2, 0, 3);
0552
0553 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 7);
0554 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[5].processHistoryIDIndex() == 0);
0555 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0556 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0557 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[5].orderPHIDRun() == IndexIntoFile::invalidEntry);
0558 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[5].orderPHIDRunLumi() == 1);
0559 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[5].entry() == IndexIntoFile::invalidEntry);
0560 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[5].run() == 1);
0561 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[5].lumi() == 1);
0562 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[5].beginEvents() == 2);
0563 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[5].endEvents() == 3);
0564
0565 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[6].processHistoryIDIndex() == 0);
0566 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0567 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0568 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[6].orderPHIDRun() == IndexIntoFile::invalidEntry);
0569 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[6].orderPHIDRunLumi() == 4);
0570 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[6].entry() == 3);
0571 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[6].run() == 1);
0572 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[6].lumi() == 2);
0573 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[6].beginEvents() == IndexIntoFile::invalidEntry);
0574 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[6].endEvents() == IndexIntoFile::invalidEntry);
0575
0576 indexIntoFile.addEntry(fakePHID1, 1, 2, 0, 4);
0577
0578 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 8);
0579 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[7].processHistoryIDIndex() == 0);
0580 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0581 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0582 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[7].orderPHIDRun() == IndexIntoFile::invalidEntry);
0583 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[7].orderPHIDRunLumi() == 4);
0584 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[7].entry() == 4);
0585 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[7].run() == 1);
0586 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[7].lumi() == 2);
0587 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[7].beginEvents() == IndexIntoFile::invalidEntry);
0588 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[7].endEvents() == IndexIntoFile::invalidEntry);
0589
0590 indexIntoFile.addEntry(fakePHID1, 1, 1, 4, 3);
0591 indexIntoFile.addEntry(fakePHID1, 3, 0, 0, 0);
0592 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 9);
0593 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[8].processHistoryIDIndex() == 0);
0594 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0595 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0596 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[8].orderPHIDRun() == 4);
0597 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[8].orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0598 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[8].entry() == 0);
0599 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[8].run() == 3);
0600 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[8].lumi() == IndexIntoFile::invalidLumi);
0601 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[8].beginEvents() == IndexIntoFile::invalidEntry);
0602 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[8].endEvents() == IndexIntoFile::invalidEntry);
0603
0604 indexIntoFile.addEntry(fakePHID2, 1, 1, 1, 4);
0605 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 10);
0606 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[9].processHistoryIDIndex() == 0);
0607 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0608 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[0] == fakePHID1);
0609 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[9].orderPHIDRun() == IndexIntoFile::invalidEntry);
0610 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[9].orderPHIDRunLumi() == 1);
0611 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[9].entry() == IndexIntoFile::invalidEntry);
0612 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[9].run() == 1);
0613 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[9].lumi() == 1);
0614 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[9].beginEvents() == 3);
0615 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[9].endEvents() == 4);
0616
0617 indexIntoFile.addEntry(fakePHID2, 2, 1, 5, 5);
0618 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 11);
0619 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[10].processHistoryIDIndex() == 1);
0620 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0621 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[1] == fakePHID2);
0622 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[10].orderPHIDRun() == IndexIntoFile::invalidEntry);
0623 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[10].orderPHIDRunLumi() == 2);
0624 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[10].entry() == IndexIntoFile::invalidEntry);
0625 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[10].run() == 1);
0626 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[10].lumi() == 1);
0627 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[10].beginEvents() == 4);
0628 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[10].endEvents() == 5);
0629
0630 indexIntoFile.addEntry(fakePHID2, 2, 2, 1, 6);
0631 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 12);
0632 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[11].processHistoryIDIndex() == 1);
0633 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0634 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[1] == fakePHID2);
0635 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[11].orderPHIDRun() == IndexIntoFile::invalidEntry);
0636 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[11].orderPHIDRunLumi() == 5);
0637 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[11].entry() == IndexIntoFile::invalidEntry);
0638 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[11].run() == 2);
0639 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[11].lumi() == 1);
0640 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[11].beginEvents() == 5);
0641 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[11].endEvents() == 6);
0642
0643 indexIntoFile.addEntry(fakePHID2, 2, 2, 2, 7);
0644 indexIntoFile.addEntry(fakePHID2, 2, 2, 0, 5);
0645 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 13);
0646 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[12].processHistoryIDIndex() == 1);
0647 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0648 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[1] == fakePHID2);
0649 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[12].orderPHIDRun() == IndexIntoFile::invalidEntry);
0650 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[12].orderPHIDRunLumi() == 6);
0651 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[12].entry() == 5);
0652 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[12].run() == 2);
0653 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[12].lumi() == 2);
0654 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[12].beginEvents() == 6);
0655 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[12].endEvents() == 8);
0656
0657 indexIntoFile.addEntry(fakePHID1, 1, 1, 0, 6);
0658 indexIntoFile.addEntry(fakePHID2, 1, 1, 0, 7);
0659 indexIntoFile.addEntry(fakePHID2, 2, 1, 0, 8);
0660
0661 indexIntoFile.addEntry(fakePHID1, 11, 0, 0, 1);
0662 indexIntoFile.addEntry(fakePHID1, 1, 0, 0, 2);
0663 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[17].orderPHIDRun() == 1);
0664 indexIntoFile.addEntry(fakePHID2, 1, 0, 0, 3);
0665
0666 indexIntoFile.addEntry(fakePHID2, 2, 0, 0, 4);
0667 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries().size() == 20);
0668 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[19].processHistoryIDIndex() == 1);
0669 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs().size() == 2);
0670 CPPUNIT_ASSERT(indexIntoFile.processHistoryIDs()[1] == fakePHID2);
0671 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[19].orderPHIDRun() == 5);
0672 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[19].orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0673 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[19].entry() == 4);
0674 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[19].run() == 2);
0675 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[19].lumi() == IndexIntoFile::invalidLumi);
0676 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[19].beginEvents() == IndexIntoFile::invalidEntry);
0677 CPPUNIT_ASSERT(indexIntoFile.runOrLumiEntries()[19].endEvents() == IndexIntoFile::invalidEntry);
0678
0679 indexIntoFile.addEntry(fakePHID1, 2, 0, 0, 5);
0680
0681 indexIntoFile.sortVector_Run_Or_Lumi_Entries();
0682
0683 int index = 0;
0684 for (auto const& entry : indexIntoFile.runOrLumiEntries()) {
0685 switch (index) {
0686 case 0:
0687 CPPUNIT_ASSERT(entry.orderPHIDRun() == 0);
0688 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0689 CPPUNIT_ASSERT(entry.entry() == 1);
0690 break;
0691 case 1:
0692 CPPUNIT_ASSERT(entry.orderPHIDRun() == 0);
0693 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 0);
0694 CPPUNIT_ASSERT(entry.entry() == 0);
0695 break;
0696 case 2:
0697 CPPUNIT_ASSERT(entry.orderPHIDRun() == 1);
0698 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0699 CPPUNIT_ASSERT(entry.entry() == 2);
0700 break;
0701 case 3:
0702 CPPUNIT_ASSERT(entry.orderPHIDRun() == 1);
0703 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 1);
0704 CPPUNIT_ASSERT(entry.entry() == IndexIntoFile::invalidEntry);
0705 break;
0706 case 4:
0707 CPPUNIT_ASSERT(entry.orderPHIDRun() == 1);
0708 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 1);
0709 CPPUNIT_ASSERT(entry.entry() == IndexIntoFile::invalidEntry);
0710 break;
0711 case 5:
0712 CPPUNIT_ASSERT(entry.orderPHIDRun() == 1);
0713 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 1);
0714 CPPUNIT_ASSERT(entry.entry() == IndexIntoFile::invalidEntry);
0715 break;
0716 case 6:
0717 CPPUNIT_ASSERT(entry.orderPHIDRun() == 1);
0718 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 1);
0719 CPPUNIT_ASSERT(entry.entry() == IndexIntoFile::invalidEntry);
0720 break;
0721 case 7:
0722 CPPUNIT_ASSERT(entry.orderPHIDRun() == 1);
0723 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 1);
0724 CPPUNIT_ASSERT(entry.entry() == 6);
0725 break;
0726 case 8:
0727 CPPUNIT_ASSERT(entry.orderPHIDRun() == 1);
0728 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 4);
0729 CPPUNIT_ASSERT(entry.entry() == 3);
0730 break;
0731 case 9:
0732 CPPUNIT_ASSERT(entry.orderPHIDRun() == 1);
0733 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 4);
0734 CPPUNIT_ASSERT(entry.entry() == 4);
0735 break;
0736 case 10:
0737 CPPUNIT_ASSERT(entry.orderPHIDRun() == 2);
0738 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0739 CPPUNIT_ASSERT(entry.entry() == 3);
0740 break;
0741 case 11:
0742 CPPUNIT_ASSERT(entry.orderPHIDRun() == 2);
0743 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 2);
0744 CPPUNIT_ASSERT(entry.entry() == IndexIntoFile::invalidEntry);
0745 break;
0746 case 12:
0747 CPPUNIT_ASSERT(entry.orderPHIDRun() == 2);
0748 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 2);
0749 CPPUNIT_ASSERT(entry.entry() == 1);
0750 break;
0751 case 13:
0752 CPPUNIT_ASSERT(entry.orderPHIDRun() == 2);
0753 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 2);
0754 CPPUNIT_ASSERT(entry.entry() == 7);
0755 break;
0756 case 14:
0757 CPPUNIT_ASSERT(entry.orderPHIDRun() == 3);
0758 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0759 CPPUNIT_ASSERT(entry.entry() == 5);
0760 break;
0761 case 15:
0762 CPPUNIT_ASSERT(entry.orderPHIDRun() == 3);
0763 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 3);
0764 CPPUNIT_ASSERT(entry.entry() == 2);
0765 break;
0766 case 16:
0767 CPPUNIT_ASSERT(entry.orderPHIDRun() == 4);
0768 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0769 CPPUNIT_ASSERT(entry.entry() == 0);
0770 break;
0771 case 17:
0772 CPPUNIT_ASSERT(entry.orderPHIDRun() == 5);
0773 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == IndexIntoFile::invalidEntry);
0774 CPPUNIT_ASSERT(entry.entry() == 4);
0775 break;
0776 case 18:
0777 CPPUNIT_ASSERT(entry.orderPHIDRun() == 5);
0778 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 5);
0779 CPPUNIT_ASSERT(entry.entry() == IndexIntoFile::invalidEntry);
0780 break;
0781 case 19:
0782 CPPUNIT_ASSERT(entry.orderPHIDRun() == 5);
0783 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 5);
0784 CPPUNIT_ASSERT(entry.entry() == 8);
0785 break;
0786 case 20:
0787 CPPUNIT_ASSERT(entry.orderPHIDRun() == 5);
0788 CPPUNIT_ASSERT(entry.orderPHIDRunLumi() == 6);
0789 CPPUNIT_ASSERT(entry.entry() == 5);
0790 break;
0791 }
0792 ++index;
0793 }
0794 edm::IndexIntoFile::IndexIntoFileItr iterEntry = indexIntoFile.begin(IndexIntoFile::entryOrder);
0795 edm::IndexIntoFile::IndexIntoFileItr iterEntryEnd = indexIntoFile.end(IndexIntoFile::entryOrder);
0796 int i = 0;
0797 for (; iterEntry != iterEntryEnd; ++iterEntry, ++i) {
0798 if (i == 0)
0799 CPPUNIT_ASSERT(check(iterEntry, kRun, 0, -1, -1, 0, 0));
0800 else if (i == 1)
0801 CPPUNIT_ASSERT(check(iterEntry, kRun, 1, 2, -1, 0, 0));
0802 else if (i == 2)
0803 CPPUNIT_ASSERT(check(iterEntry, kLumi, 1, 2, -1, 0, 0));
0804 else if (i == 3)
0805 CPPUNIT_ASSERT(check(iterEntry, kRun, 3, 4, -1, 0, 0));
0806 else if (i == 4)
0807 CPPUNIT_ASSERT(check(iterEntry, kLumi, 3, 4, -1, 0, 0));
0808 else if (i == 5)
0809 CPPUNIT_ASSERT(check(iterEntry, kLumi, 3, 5, -1, 0, 0));
0810 else if (i == 6)
0811 CPPUNIT_ASSERT(check(iterEntry, kLumi, 3, 10, 6, 0, 1));
0812 else if (i == 7)
0813 CPPUNIT_ASSERT(check(iterEntry, kEvent, 3, 10, 6, 0, 1));
0814 else if (i == 8)
0815 CPPUNIT_ASSERT(check(iterEntry, kEvent, 3, 10, 7, 0, 1));
0816 else if (i == 9)
0817 CPPUNIT_ASSERT(check(iterEntry, kEvent, 3, 10, 8, 0, 1));
0818 else if (i == 10)
0819 CPPUNIT_ASSERT(check(iterEntry, kEvent, 3, 10, 9, 0, 1));
0820 else if (i == 11)
0821 CPPUNIT_ASSERT(check(iterEntry, kRun, 11, 13, 12, 0, 1));
0822 else if (i == 12)
0823 CPPUNIT_ASSERT(check(iterEntry, kLumi, 11, 13, 12, 0, 1));
0824 else if (i == 13)
0825 CPPUNIT_ASSERT(check(iterEntry, kLumi, 11, 14, 12, 0, 1));
0826 else if (i == 14)
0827 CPPUNIT_ASSERT(check(iterEntry, kEvent, 11, 14, 12, 0, 1));
0828 else if (i == 15)
0829 CPPUNIT_ASSERT(check(iterEntry, kRun, 15, 17, 16, 0, 1));
0830 else if (i == 16)
0831 CPPUNIT_ASSERT(check(iterEntry, kLumi, 15, 17, 16, 0, 1));
0832 else if (i == 17)
0833 CPPUNIT_ASSERT(check(iterEntry, kEvent, 15, 17, 16, 0, 1));
0834 else if (i == 18)
0835 CPPUNIT_ASSERT(check(iterEntry, kLumi, 15, 18, 18, 0, 2));
0836 else if (i == 19)
0837 CPPUNIT_ASSERT(check(iterEntry, kEvent, 15, 18, 18, 0, 2));
0838 else if (i == 20)
0839 CPPUNIT_ASSERT(check(iterEntry, kEvent, 15, 18, 18, 1, 2));
0840 else if (i == 21)
0841 CPPUNIT_ASSERT(check(iterEntry, kRun, 19, 20, -1, 0, 0));
0842 else if (i == 22)
0843 CPPUNIT_ASSERT(check(iterEntry, kLumi, 19, 20, -1, 0, 0));
0844 else
0845 CPPUNIT_ASSERT(false);
0846 }
0847 CPPUNIT_ASSERT(i == 23);
0848 }