| 144 | } |
| 145 | |
| 146 | void testAddRemoveClear() { |
| 147 | |
| 148 | // ----- Test add() ----- // |
| 149 | |
| 150 | Map<int, int> map1(mAllocator); |
| 151 | map1.add(Pair<int, int>(1, 10)); |
| 152 | map1.add(Pair<int, int>(8, 80)); |
| 153 | map1.add(Pair<int, int>(13, 130)); |
| 154 | rp3d_test(map1[1] == 10); |
| 155 | rp3d_test(map1[8] == 80); |
| 156 | rp3d_test(map1[13] == 130); |
| 157 | rp3d_test(map1.size() == 3); |
| 158 | |
| 159 | Map<int, int> map2(mAllocator, 15); |
| 160 | for (int i = 0; i < 1000000; i++) { |
| 161 | map2.add(Pair<int, int>(i, i * 100)); |
| 162 | } |
| 163 | bool isValid = true; |
| 164 | for (int i = 0; i < 1000000; i++) { |
| 165 | if (map2[i] != i * 100) isValid = false; |
| 166 | } |
| 167 | rp3d_test(isValid); |
| 168 | |
| 169 | map1.remove(1); |
| 170 | map1.add(Pair<int, int>(1, 10)); |
| 171 | rp3d_test(map1.size() == 3); |
| 172 | rp3d_test(map1[1] == 10); |
| 173 | |
| 174 | map1.add(Pair<int, int>(56, 34)); |
| 175 | rp3d_test(map1[56] == 34); |
| 176 | rp3d_test(map1.size() == 4); |
| 177 | map1.add(Pair<int, int>(56, 13), true); |
| 178 | rp3d_test(map1[56] == 13); |
| 179 | rp3d_test(map1.size() == 4); |
| 180 | |
| 181 | // ----- Test remove() ----- // |
| 182 | |
| 183 | map1.remove(1); |
| 184 | rp3d_test(!map1.containsKey(1)); |
| 185 | rp3d_test(map1.containsKey(8)); |
| 186 | rp3d_test(map1.containsKey(13)); |
| 187 | rp3d_test(map1.size() == 3); |
| 188 | |
| 189 | map1.remove(13); |
| 190 | rp3d_test(map1.containsKey(8)); |
| 191 | rp3d_test(!map1.containsKey(13)); |
| 192 | rp3d_test(map1.size() == 2); |
| 193 | |
| 194 | map1.remove(8); |
| 195 | rp3d_test(!map1.containsKey(8)); |
| 196 | rp3d_test(map1.size() == 1); |
| 197 | |
| 198 | auto it = map1.remove(56); |
| 199 | rp3d_test(!map1.containsKey(56)); |
| 200 | rp3d_test(map1.size() == 0); |
| 201 | rp3d_test(it == map1.end()); |
| 202 | |
| 203 | isValid = true; |