tests/test_map.cpp

changeset 690
2c2304622981
parent 687
612ed521b1c5
child 691
65baf7f45ac8
equal deleted inserted replaced
689:5d0244c6fa3e 690:2c2304622981
72 // verify key iterator 72 // verify key iterator
73 { 73 {
74 auto keyiter = cxMapIteratorKeys(map); 74 auto keyiter = cxMapIteratorKeys(map);
75 std::unordered_set<std::string> keys; 75 std::unordered_set<std::string> keys;
76 cx_foreach(CxHashKey*, elem, keyiter) { 76 cx_foreach(CxHashKey*, elem, keyiter) {
77 keys.insert(std::string(elem->data.cstr, elem->len)); 77 keys.insert(std::string(reinterpret_cast<char const*>(elem->data), elem->len));
78 } 78 }
79 EXPECT_EQ(keyiter.index, map->size); 79 EXPECT_EQ(keyiter.index, map->size);
80 ASSERT_EQ(keys.size(), map->size); 80 ASSERT_EQ(keys.size(), map->size);
81 for (auto &&k: keys) { 81 for (auto &&k: keys) {
82 EXPECT_NE(refmap.find(k), refmap.end()); 82 EXPECT_NE(refmap.find(k), refmap.end());
101 // verify pair iterator 101 // verify pair iterator
102 { 102 {
103 auto pairiter = cxMapIterator(map); 103 auto pairiter = cxMapIterator(map);
104 std::unordered_map<std::string, std::string> pairs; 104 std::unordered_map<std::string, std::string> pairs;
105 cx_foreach(CxMapEntry*, entry, pairiter) { 105 cx_foreach(CxMapEntry*, entry, pairiter) {
106 pairs[std::string(entry->key->data.cstr, entry->key->len)] = std::string((char *) entry->value); 106 pairs[std::string(reinterpret_cast<char const*>(entry->key->data), entry->key->len)] = std::string((char *) entry->value);
107 } 107 }
108 EXPECT_EQ(pairiter.index, map->size); 108 EXPECT_EQ(pairiter.index, map->size);
109 ASSERT_EQ(pairs.size(), refmap.size()); 109 ASSERT_EQ(pairs.size(), refmap.size());
110 for (auto &&p: pairs) { 110 for (auto &&p: pairs) {
111 ASSERT_EQ(p.second, refmap.at(p.first)); 111 ASSERT_EQ(p.second, refmap.at(p.first));
212 cxMapPut(map, cx_hash_key_str("key 5"), (void *) "val 5"); 212 cxMapPut(map, cx_hash_key_str("key 5"), (void *) "val 5");
213 cxMapPut(map, cx_hash_key_str("key 6"), (void *) "val 6"); 213 cxMapPut(map, cx_hash_key_str("key 6"), (void *) "val 6");
214 214
215 auto iter = cxMapMutIterator(map); 215 auto iter = cxMapMutIterator(map);
216 cx_foreach(CxMapEntry*, entry, iter) { 216 cx_foreach(CxMapEntry*, entry, iter) {
217 if (entry->key->data.cstr[4] % 2 == 1) cxIteratorFlagRemoval(iter); 217 if (reinterpret_cast<char const*>(entry->key->data)[4] % 2 == 1) cxIteratorFlagRemoval(iter);
218 } 218 }
219 EXPECT_EQ(map->size, 3); 219 EXPECT_EQ(map->size, 3);
220 EXPECT_EQ(iter.index, map->size); 220 EXPECT_EQ(iter.index, map->size);
221 221
222 EXPECT_EQ(cxMapGet(map, cx_hash_key_str("key 1")), nullptr); 222 EXPECT_EQ(cxMapGet(map, cx_hash_key_str("key 1")), nullptr);
403 cxMapPut(map, k5, (void *) v5); 403 cxMapPut(map, k5, (void *) v5);
404 404
405 { 405 {
406 auto iter = cxMapMutIteratorKeys(map); 406 auto iter = cxMapMutIteratorKeys(map);
407 cx_foreach(CxHashKey*, key, iter) { 407 cx_foreach(CxHashKey*, key, iter) {
408 if (key->data.cstr[4] == '1') cxIteratorFlagRemoval(iter); 408 if (reinterpret_cast<char const*>(key->data)[4] == '1') cxIteratorFlagRemoval(iter);
409 } 409 }
410 } 410 }
411 { 411 {
412 auto iter = cxMapMutIteratorValues(map); 412 auto iter = cxMapMutIteratorValues(map);
413 cx_foreach(char*, v, iter) { 413 cx_foreach(char*, v, iter) {

mercurial