| 100 | } |
| 101 | |
| 102 | void test_map_remove() { |
| 103 | SIValue map = Map_New(2); |
| 104 | |
| 105 | SIValue k0 = SI_ConstStringVal("key0"); |
| 106 | SIValue k1 = SI_ConstStringVal("key1"); |
| 107 | SIValue k2 = SI_ConstStringVal("key2"); |
| 108 | SIValue v0 = SI_LongVal(0); |
| 109 | SIValue v1 = SI_DoubleVal(1); |
| 110 | SIValue v2 = SI_ConstStringVal(""); |
| 111 | SIValue keys[3] = {k0, k1, k2}; |
| 112 | SIValue values[3] = {v0, v1, v2}; |
| 113 | |
| 114 | // add elements to map |
| 115 | for(int i = 0; i < 3; i++) { |
| 116 | Map_Add(&map, keys[i], values[i]); |
| 117 | } |
| 118 | |
| 119 | // remove none existing key |
| 120 | SIValue none_existing = SI_ConstStringVal("none_existing"); |
| 121 | Map_Remove(map, none_existing); |
| 122 | |
| 123 | for(int i = 0; i < 3; i++) { |
| 124 | SIValue v = SI_NullVal(); |
| 125 | |
| 126 | // remove key |
| 127 | TEST_ASSERT(Map_Contains(map, keys[i])); |
| 128 | Map_Remove(map, keys[i]); |
| 129 | |
| 130 | // try removing removed key |
| 131 | Map_Remove(map, keys[i]); |
| 132 | |
| 133 | // validate key count |
| 134 | TEST_ASSERT(3 - i - 1 == Map_KeyCount(map)); |
| 135 | |
| 136 | // get removed key |
| 137 | TEST_ASSERT(!Map_Contains(map, keys[i])); |
| 138 | TEST_ASSERT(!Map_Get(map, keys[0], &v)); |
| 139 | } |
| 140 | |
| 141 | SIValue stored_keys = Map_Keys(map); |
| 142 | TEST_ASSERT(0 == SIArray_Length(stored_keys)); |
| 143 | |
| 144 | // clean up |
| 145 | SIArray_Free(stored_keys); |
| 146 | Map_Free(map); |
| 147 | } |
| 148 | |
| 149 | void test_map_tostring() { |
| 150 | SIValue k; |
nothing calls this directly
no test coverage detected