File indexing completed on 2024-04-06 12:02:08
0001 #include "CondFormats/DTObjects/interface/DTBufferTree.h"
0002
0003 #include <cassert>
0004 #include <iostream>
0005 #include <memory>
0006
0007 int main() {
0008 std::cout << "testDTBufferTree\n";
0009
0010 DTBufferTree<int, int> buf;
0011 DTBufferTree<int, int> const* pBuf = &buf;
0012 std::vector<int> keys;
0013
0014 int i;
0015 assert(buf.find(keys.end(), keys.end(), i) == 0);
0016 assert(i == 0);
0017 keys.push_back(1);
0018 assert(buf.find(keys.begin(), keys.end(), i) == 1);
0019 assert(i == 0);
0020 assert(buf.find(1, i) == 1);
0021 assert(i == 0);
0022
0023 assert(pBuf->find(keys.end(), keys.end(), i) == 0);
0024 assert(i == 0);
0025 assert(pBuf->find(keys.begin(), keys.end(), i) == 1);
0026 assert(i == 0);
0027 assert(pBuf->find(1, i) == 1);
0028 assert(i == 0);
0029
0030 keys.push_back(2);
0031 keys.push_back(3);
0032 assert(buf.insert(keys.begin(), keys.end(), 11) == 0);
0033 assert(buf.find(keys.begin(), keys.end(), i) == 0);
0034 assert(i == 11);
0035 assert(pBuf->find(keys.begin(), keys.end(), i) == 0);
0036 assert(i == 11);
0037
0038 assert(buf.insert(keys.begin(), keys.end(), 12) == 1);
0039 assert(buf.find(keys.begin(), keys.end(), i) == 0);
0040 assert(i == 12);
0041 assert(pBuf->find(keys.begin(), keys.end(), i) == 0);
0042 assert(i == 12);
0043
0044 assert(buf.insert(100, 111) == 0);
0045 assert(buf.find(100, i) == 0);
0046 assert(i == 111);
0047 assert(pBuf->find(100, i) == 0);
0048 assert(i == 111);
0049
0050 assert(buf.insert(100, 112) == 1);
0051 assert(buf.find(100, i) == 0);
0052 assert(i == 112);
0053 assert(pBuf->find(100, i) == 0);
0054 assert(i == 112);
0055
0056 assert(buf.insert(keys.end(), keys.end(), 1000) == 1);
0057 assert(buf.find(keys.end(), keys.end(), i) == 0);
0058 assert(i == 1000);
0059 assert(pBuf->find(keys.end(), keys.end(), i) == 0);
0060 assert(i == 1000);
0061
0062 buf.clear();
0063 assert(buf.find(keys.end(), keys.end(), i) == 0);
0064 assert(i == 0);
0065 assert(pBuf->find(keys.end(), keys.end(), i) == 0);
0066 assert(i == 0);
0067 assert(buf.find(keys.begin(), keys.end(), i) == 1);
0068 assert(i == 0);
0069 assert(pBuf->find(keys.begin(), keys.end(), i) == 1);
0070 assert(i == 0);
0071
0072 assert(buf.insert(keys.begin(), keys.end(), 7) == 0);
0073 assert(buf.find(keys.begin(), keys.end(), i) == 0);
0074 assert(i == 7);
0075
0076
0077
0078
0079
0080
0081 DTBufferTreeUniquePtr buf2;
0082 DTBufferTreeUniquePtr const* pBuf2 = &buf2;
0083
0084 keys.clear();
0085 std::vector<int> v;
0086 std::vector<int>* ptr = &v;
0087 std::vector<int> const* cptr = &v;
0088 assert(buf2.find(keys.end(), keys.end(), ptr) == 0);
0089 assert(ptr == nullptr);
0090 keys.push_back(1);
0091 assert(buf2.find(keys.begin(), keys.end(), ptr) == 1);
0092 assert(ptr == nullptr);
0093 assert(buf2.find(1, ptr) == 1);
0094 assert(ptr == nullptr);
0095
0096 assert(pBuf2->find(keys.end(), keys.end(), cptr) == 0);
0097 assert(cptr == nullptr);
0098 assert(pBuf2->find(keys.begin(), keys.end(), cptr) == 1);
0099 assert(cptr == nullptr);
0100 assert(pBuf2->find(1, cptr) == 1);
0101 assert(cptr == nullptr);
0102
0103 keys.push_back(2);
0104 keys.push_back(3);
0105 std::unique_ptr<std::vector<int> > uptr(new std::vector<int>);
0106 uptr->push_back(101);
0107 uptr->push_back(102);
0108 assert(buf2.insert(keys.begin(), keys.end(), std::move(uptr)) == 0);
0109 assert(buf2.find(keys.begin(), keys.end(), ptr) == 0);
0110 assert(ptr->at(0) == 101 && ptr->at(1) == 102);
0111 ptr->push_back(103);
0112 assert(pBuf2->find(keys.begin(), keys.end(), cptr) == 0);
0113 assert(cptr->at(0) == 101 && cptr->at(1) == 102 && cptr->at(2) == 103);
0114
0115 std::unique_ptr<std::vector<int> > uptr2(new std::vector<int>);
0116 uptr2->push_back(21);
0117 assert(buf2.insert(keys.begin(), keys.end(), std::move(uptr2)) == 1);
0118 assert(buf2.find(keys.begin(), keys.end(), ptr) == 0);
0119 assert(ptr->at(0) == 21);
0120 assert(pBuf2->find(keys.begin(), keys.end(), cptr) == 0);
0121 assert(cptr->at(0) == 21);
0122
0123 std::unique_ptr<std::vector<int> > uptr3(new std::vector<int>);
0124 uptr3->push_back(31);
0125 assert(buf2.insert(100, std::move(uptr3)) == 0);
0126 assert(buf2.find(100, ptr) == 0);
0127 assert(ptr->at(0) == 31);
0128 assert(pBuf2->find(100, cptr) == 0);
0129 assert(cptr->at(0) == 31);
0130
0131 std::unique_ptr<std::vector<int> > uptr4(new std::vector<int>);
0132 uptr4->push_back(41);
0133 assert(buf2.insert(100, std::move(uptr4)) == 1);
0134 assert(buf2.find(100, ptr) == 0);
0135 assert(ptr->at(0) == 41);
0136 assert(pBuf2->find(100, cptr) == 0);
0137 assert(cptr->at(0) == 41);
0138
0139 std::unique_ptr<std::vector<int> > uptr5(new std::vector<int>);
0140 uptr5->push_back(51);
0141 assert(buf2.insert(keys.end(), keys.end(), std::move(uptr5)) == 1);
0142 assert(buf2.find(keys.end(), keys.end(), ptr) == 0);
0143 assert(ptr->at(0) == 51);
0144 assert(pBuf2->find(keys.end(), keys.end(), cptr) == 0);
0145 assert(cptr->at(0) == 51);
0146
0147 buf2.clear();
0148 assert(buf2.find(keys.end(), keys.end(), ptr) == 0);
0149 assert(ptr == nullptr);
0150 assert(pBuf2->find(keys.end(), keys.end(), cptr) == 0);
0151 assert(cptr == nullptr);
0152 assert(buf2.find(keys.begin(), keys.end(), ptr) == 1);
0153 assert(ptr == nullptr);
0154 assert(pBuf2->find(keys.begin(), keys.end(), cptr) == 1);
0155 assert(cptr == nullptr);
0156
0157 std::unique_ptr<std::vector<int> > uptr6(new std::vector<int>);
0158 uptr6->push_back(61);
0159 assert(buf2.insert(keys.begin(), keys.end(), std::move(uptr6)) == 0);
0160 assert(buf2.find(keys.begin(), keys.end(), ptr) == 0);
0161 assert(ptr->at(0) == 61);
0162 }