[347] | 1 | #include <iter_map.h> |
---|
| 2 | #include <maps.h> |
---|
| 3 | |
---|
| 4 | #include <iostream> |
---|
| 5 | |
---|
| 6 | using namespace hugo; |
---|
| 7 | using namespace std; |
---|
| 8 | |
---|
| 9 | const int N = 3; |
---|
| 10 | |
---|
| 11 | typedef StdMap<int,int> BaseMap; |
---|
| 12 | typedef IterableMap<BaseMap, N> TestMap; |
---|
[361] | 13 | typedef IterableBoolMap<BaseMap> TestBoolMap; |
---|
[347] | 14 | |
---|
| 15 | |
---|
[361] | 16 | template<typename TM> |
---|
| 17 | void print(TM const& m, int N = 3) { |
---|
[347] | 18 | cout << "Size of the map: " << m.size() << endl; |
---|
| 19 | for(int i=0; i<N; ++i) { |
---|
| 20 | cout << " Class " << i << ". (size=" << m.size(i) << "): " << flush; |
---|
| 21 | cout << " "; |
---|
[361] | 22 | for(typename TM::iterator j = m.begin(i); j!=m.end(i); ++j) { |
---|
[347] | 23 | cout << " " << *j; |
---|
| 24 | } |
---|
| 25 | cout << endl; |
---|
| 26 | } |
---|
| 27 | } |
---|
| 28 | |
---|
| 29 | |
---|
| 30 | |
---|
| 31 | int main() { |
---|
| 32 | |
---|
[361] | 33 | { |
---|
| 34 | BaseMap base(344); |
---|
| 35 | TestMap test(base); |
---|
[347] | 36 | |
---|
| 37 | |
---|
[361] | 38 | print(test); |
---|
[347] | 39 | |
---|
[361] | 40 | cout << "Inserting 12 to class 2...\n"; |
---|
| 41 | test.insert(12,2); |
---|
| 42 | print(test); |
---|
[347] | 43 | |
---|
| 44 | |
---|
[361] | 45 | cout << "Inserting 22 to class 2...\n"; |
---|
| 46 | test.insert(22,2); |
---|
| 47 | print(test); |
---|
[347] | 48 | |
---|
[361] | 49 | cout << "Testing some map values:\n"; |
---|
| 50 | cout << " 12: " << int(test[12]) << endl; |
---|
[347] | 51 | |
---|
[361] | 52 | cout << "Inserting 10 to class 0...\n"; |
---|
| 53 | test.insert(10,0); |
---|
| 54 | print(test); |
---|
[347] | 55 | |
---|
[361] | 56 | cout << "Testing some map values:\n"; |
---|
| 57 | cout << " 12: " << int(test[12]) << endl; |
---|
[347] | 58 | |
---|
[361] | 59 | cout << "Inserting 11 to class 1...\n"; |
---|
| 60 | test.insert(11,1); |
---|
| 61 | print(test); |
---|
[347] | 62 | |
---|
[361] | 63 | cout << "Testing some map values:\n"; |
---|
| 64 | cout << " 12: " << int(test[12]) << endl; |
---|
| 65 | cout << " 22: " << int(test[22]) << endl; |
---|
| 66 | cout << " 10: " << int(test[10]) << endl; |
---|
| 67 | cout << " 11: " << int(test[11]) << endl; |
---|
| 68 | cout << " 42: " << int(test[42]) << endl; |
---|
[347] | 69 | |
---|
[361] | 70 | cout << "Inserting 21 to class 1...\n"; |
---|
| 71 | test.insert(21,1); |
---|
| 72 | print(test); |
---|
[347] | 73 | |
---|
[361] | 74 | cout << "Inserting 20 to class 1...\n"; |
---|
| 75 | test.insert(20,0); |
---|
| 76 | print(test); |
---|
[347] | 77 | |
---|
[361] | 78 | cout << "Testing some map values:\n"; |
---|
| 79 | cout << " 12: " << int(test[12]) << endl; |
---|
| 80 | cout << " 22: " << int(test[22]) << endl; |
---|
| 81 | cout << " 10: " << int(test[10]) << endl; |
---|
| 82 | cout << " 20: " << int(test[20]) << endl; |
---|
| 83 | cout << " 11: " << int(test[11]) << endl; |
---|
| 84 | cout << " 21: " << int(test[21]) << endl; |
---|
| 85 | cout << " 42: " << int(test[42]) << endl; |
---|
[347] | 86 | |
---|
[361] | 87 | cout << "Setting 20 to class 2...\n"; |
---|
| 88 | test.set(20,2); |
---|
| 89 | print(test); |
---|
[347] | 90 | |
---|
[361] | 91 | cout << "Setting 10 to class 1...\n"; |
---|
| 92 | test.set(10,1); |
---|
| 93 | print(test); |
---|
[347] | 94 | |
---|
[361] | 95 | cout << "Setting 11 to class 1...\n"; |
---|
| 96 | test.set(11,1); |
---|
| 97 | print(test); |
---|
[347] | 98 | |
---|
[361] | 99 | cout << "Setting 12 to class 1...\n"; |
---|
| 100 | test.set(12,1); |
---|
| 101 | print(test); |
---|
[347] | 102 | |
---|
[361] | 103 | cout << "Setting 21 to class 2...\n"; |
---|
| 104 | test.set(21,2); |
---|
| 105 | print(test); |
---|
[347] | 106 | |
---|
[361] | 107 | cout << "Setting 22 to class 2...\n"; |
---|
| 108 | test.set(22,2); |
---|
| 109 | print(test); |
---|
[347] | 110 | |
---|
[361] | 111 | cout << "Testing some map values:\n"; |
---|
| 112 | cout << " 12: " << int(test[12]) << endl; |
---|
| 113 | cout << " 22: " << int(test[22]) << endl; |
---|
| 114 | cout << " 10: " << int(test[10]) << endl; |
---|
| 115 | cout << " 20: " << int(test[20]) << endl; |
---|
| 116 | cout << " 11: " << int(test[11]) << endl; |
---|
| 117 | cout << " 21: " << int(test[21]) << endl; |
---|
| 118 | cout << " 42: " << int(test[42]) << endl; |
---|
| 119 | } |
---|
[347] | 120 | |
---|
[361] | 121 | { |
---|
| 122 | cout << "Testing the IterableBoolMap...\n"; |
---|
| 123 | |
---|
| 124 | BaseMap base(344); |
---|
| 125 | TestBoolMap test(base); |
---|
| 126 | |
---|
| 127 | |
---|
| 128 | print(test,2); |
---|
| 129 | |
---|
| 130 | cout << "Inserting 12 to class true...\n"; |
---|
| 131 | test.insert(12,true); |
---|
| 132 | print(test,2); |
---|
| 133 | |
---|
| 134 | |
---|
| 135 | cout << "Inserting 22 to class true...\n"; |
---|
| 136 | test.insert(22,true); |
---|
| 137 | print(test,2); |
---|
| 138 | |
---|
| 139 | cout << "Testing some map values:\n"; |
---|
| 140 | cout << " 12: " << test[12] << endl; |
---|
| 141 | |
---|
| 142 | cout << "Inserting 10 to class false...\n"; |
---|
| 143 | test.insert(10,false); |
---|
| 144 | print(test,2); |
---|
| 145 | |
---|
| 146 | cout << "Testing some map values:\n"; |
---|
| 147 | cout << " 12: " << test[12] << endl; |
---|
| 148 | |
---|
| 149 | cout << "Inserting 11 to class false...\n"; |
---|
| 150 | test.insert(11,false); |
---|
| 151 | print(test,2); |
---|
| 152 | |
---|
| 153 | cout << "Testing some map values:\n"; |
---|
| 154 | cout << " 12: " << test[12] << endl; |
---|
| 155 | cout << " 22: " << test[22] << endl; |
---|
| 156 | cout << " 10: " << test[10] << endl; |
---|
| 157 | cout << " 11: " << test[11] << endl; |
---|
| 158 | cout << " 42: " << test[42] << endl; |
---|
| 159 | |
---|
| 160 | cout << "Inserting 21 to class 1...\n"; |
---|
| 161 | test.insert(21,1); |
---|
| 162 | print(test,2); |
---|
| 163 | |
---|
| 164 | cout << "Inserting 20 to class 1...\n"; |
---|
| 165 | test.insert(20,0); |
---|
| 166 | print(test,2); |
---|
| 167 | |
---|
| 168 | cout << "Testing some map values:\n"; |
---|
| 169 | cout << " 12: " << test[12] << endl; |
---|
| 170 | cout << " 22: " << test[22] << endl; |
---|
| 171 | cout << " 10: " << test[10] << endl; |
---|
| 172 | cout << " 20: " << test[20] << endl; |
---|
| 173 | cout << " 11: " << test[11] << endl; |
---|
| 174 | cout << " 21: " << test[21] << endl; |
---|
| 175 | cout << " 42: " << test[42] << endl; |
---|
| 176 | |
---|
| 177 | cout << "Setting 20 to class 2...\n"; |
---|
| 178 | test.set(20,2); |
---|
| 179 | print(test,2); |
---|
| 180 | |
---|
| 181 | cout << "Setting 10 to class 1...\n"; |
---|
| 182 | test.set(10,1); |
---|
| 183 | print(test,2); |
---|
| 184 | |
---|
| 185 | cout << "Setting 11 to class 1...\n"; |
---|
| 186 | test.set(11,1); |
---|
| 187 | print(test,2); |
---|
| 188 | |
---|
| 189 | cout << "Setting 12 to class 1...\n"; |
---|
| 190 | test.set(12,1); |
---|
| 191 | print(test,2); |
---|
| 192 | |
---|
| 193 | cout << "Setting 21 to class 2...\n"; |
---|
| 194 | test.set(21,2); |
---|
| 195 | print(test,2); |
---|
| 196 | |
---|
| 197 | cout << "Setting 22 to class 2...\n"; |
---|
| 198 | test.set(22,2); |
---|
| 199 | print(test,2); |
---|
| 200 | |
---|
| 201 | cout << "Testing some map values:\n"; |
---|
| 202 | cout << " 12: " << test[12] << endl; |
---|
| 203 | cout << " 22: " << test[22] << endl; |
---|
| 204 | cout << " 10: " << test[10] << endl; |
---|
| 205 | cout << " 20: " << test[20] << endl; |
---|
| 206 | cout << " 11: " << test[11] << endl; |
---|
| 207 | cout << " 21: " << test[21] << endl; |
---|
| 208 | cout << " 42: " << test[42] << endl; |
---|
| 209 | |
---|
| 210 | } |
---|
[347] | 211 | } |
---|