MapContainsPair
Description
Check if the map stores a specific key/value pair.
Parameters
| Name | Direction | Description |
|---|---|---|
m |
in | Map. |
lookup_key |
in | Key to search for. |
lookup_value |
in | Value to search for. Uses value_compare for equality. |
Success
Returns true when at least one entry mapping lookup_key to lookup_value exists. The map is not modified.
Failure
Returns false when no matching pair exists. The map is not modified. A NULL value_compare is a caller bug and aborts via LOG_FATAL.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Map.c:673:
if (!map->value_compare) {
LOG_FATAL("MapContainsPair requires a value comparator");
}- In
Ops.c:136:
result = result && (MapTombstones(&first) == 0);
result = result && MapContainsPair(&first, 1, 11);
result = result && MapContainsPair(&first, 2, 20);
result = result && (MapPairCount(&first) == 2);- In
Ops.c:137:
result = result && (MapTombstones(&first) == 0);
result = result && MapContainsPair(&first, 1, 11);
result = result && MapContainsPair(&first, 2, 20);
result = result && (MapPairCount(&first) == 2);
result = result && (MapUniqueKeyCount(&first) == 2);- In
Ops.c:143:
MapSwap(&first, &second);
result = result && MapContainsPair(&first, 9, 90);
result = result && MapContainsPair(&first, 10, 100);
result = result && (MapPairCount(&first) == 2);- In
Ops.c:144:
result = result && MapContainsPair(&first, 9, 90);
result = result && MapContainsPair(&first, 10, 100);
result = result && (MapPairCount(&first) == 2);
result = result && MapContainsPair(&second, 1, 11);- In
Ops.c:146:
result = result && MapContainsPair(&first, 10, 100);
result = result && (MapPairCount(&first) == 2);
result = result && MapContainsPair(&second, 1, 11);
result = result && MapContainsPair(&second, 2, 20);
result = result && (MapPairCount(&second) == 2);- In
Ops.c:147:
result = result && (MapPairCount(&first) == 2);
result = result && MapContainsPair(&second, 1, 11);
result = result && MapContainsPair(&second, 2, 20);
result = result && (MapPairCount(&second) == 2);- In
Ops.c:219:
// Returned to caller; tombstones cleared, survivors intact, length exact.
result = result && (MapTombstones(&map) == 0);
result = result && MapContainsPair(&map, 1, 10);
result = result && MapContainsPair(&map, 3, 30);
result = result && !MapContainsKey(&map, 2);- In
Ops.c:220:
result = result && (MapTombstones(&map) == 0);
result = result && MapContainsPair(&map, 1, 10);
result = result && MapContainsPair(&map, 3, 30);
result = result && !MapContainsKey(&map, 2);
result = result && (MapPairCount(&map) == 2);- In
Ops.c:255:
result = result && (MapTombstones(&map) == 0);
result = result && !MapContainsKey(&map, 1);
result = result && MapContainsPair(&map, 2, 20);
result = result && MapContainsPair(&map, 2, 21);
result = result && MapContainsPair(&map, 3, 30);- In
Ops.c:256:
result = result && !MapContainsKey(&map, 1);
result = result && MapContainsPair(&map, 2, 20);
result = result && MapContainsPair(&map, 2, 21);
result = result && MapContainsPair(&map, 3, 30);
result = result && (MapValueCountForKey(&map, 2) == 2);- In
Ops.c:257:
result = result && MapContainsPair(&map, 2, 20);
result = result && MapContainsPair(&map, 2, 21);
result = result && MapContainsPair(&map, 3, 30);
result = result && (MapValueCountForKey(&map, 2) == 2);
result = result && (MapPairCount(&map) == 3);- In
Insert.c:376:
result = result && (MapValueCountForKey(&map, 1) == 3);
result = result && MapGetFirstPtr(&map, 1) && (*MapGetFirstPtr(&map, 1) == 100);
result = result && MapContainsPair(&map, 1, 11);
result = result && MapContainsPair(&map, 1, 12);
result = result && !MapContainsPair(&map, 1, 10);- In
Insert.c:377:
result = result && MapGetFirstPtr(&map, 1) && (*MapGetFirstPtr(&map, 1) == 100);
result = result && MapContainsPair(&map, 1, 11);
result = result && MapContainsPair(&map, 1, 12);
result = result && !MapContainsPair(&map, 1, 10);- In
Insert.c:378:
result = result && MapContainsPair(&map, 1, 11);
result = result && MapContainsPair(&map, 1, 12);
result = result && !MapContainsPair(&map, 1, 10);
MapDeinit(&map);- In
Insert.c:432:
result = result && (MapValueCountForKey(&map, 5) == 1);
result = result && MapGetFirstPtr(&map, 5) && (*MapGetFirstPtr(&map, 5) == 500);
result = result && MapContainsPair(&map, 5, 500);
result = result && !MapContainsPair(&map, 5, 50);
result = result && !MapContainsPair(&map, 5, 51);- In
Insert.c:433:
result = result && MapGetFirstPtr(&map, 5) && (*MapGetFirstPtr(&map, 5) == 500);
result = result && MapContainsPair(&map, 5, 500);
result = result && !MapContainsPair(&map, 5, 50);
result = result && !MapContainsPair(&map, 5, 51);
result = result && !MapContainsPair(&map, 5, 52);- In
Insert.c:434:
result = result && MapContainsPair(&map, 5, 500);
result = result && !MapContainsPair(&map, 5, 50);
result = result && !MapContainsPair(&map, 5, 51);
result = result && !MapContainsPair(&map, 5, 52);
result = result && (MapPairCount(&map) == 1);- In
Insert.c:435:
result = result && !MapContainsPair(&map, 5, 50);
result = result && !MapContainsPair(&map, 5, 51);
result = result && !MapContainsPair(&map, 5, 52);
result = result && (MapPairCount(&map) == 1);- In
Deadend.c:151:
static bool test_map_contains_pair_without_value_compare_fails(void) {
WriteFmt("Testing MapContainsPair without value comparator\n");
typedef Map(int, int) IntIntMap;- In
Deadend.c:157:
IntIntMap map = MapInit(i32_hash, i32_compare, &alloc);
MapContainsPair(&map, 1, 10);
MapDeinit(&map);- In
Remove.c:94:
bool result = MapRemovePair(&map, 5, 51);
result = result && MapContainsPair(&map, 5, 50);
result = result && !MapContainsPair(&map, 5, 51);
result = result && MapContainsPair(&map, 5, 52);- In
Remove.c:95:
bool result = MapRemovePair(&map, 5, 51);
result = result && MapContainsPair(&map, 5, 50);
result = result && !MapContainsPair(&map, 5, 51);
result = result && MapContainsPair(&map, 5, 52);
result = result && (MapValueCountForKey(&map, 5) == 2);- In
Remove.c:96:
result = result && MapContainsPair(&map, 5, 50);
result = result && !MapContainsPair(&map, 5, 51);
result = result && MapContainsPair(&map, 5, 52);
result = result && (MapValueCountForKey(&map, 5) == 2);- In
Remove.c:125:
result = result && (MapPairCount(&map) == length_before);
result = result && (MapTombstones(&map) == tombstones_before);
result = result && MapContainsPair(&map, 5, 50);
result = result && MapContainsPair(&map, 5, 51);- In
Remove.c:126:
result = result && (MapTombstones(&map) == tombstones_before);
result = result && MapContainsPair(&map, 5, 50);
result = result && MapContainsPair(&map, 5, 51);
MapDeinit(&map);- In
Access.c:155:
result = result && MapContainsKey(&map, 9);
result = result && !MapContainsKey(&map, 8);
result = result && MapContainsPair(&map, 7, 70);
result = result && MapContainsPair(&map, 7, 71);
result = result && !MapContainsPair(&map, 7, 72);- In
Access.c:156:
result = result && !MapContainsKey(&map, 8);
result = result && MapContainsPair(&map, 7, 70);
result = result && MapContainsPair(&map, 7, 71);
result = result && !MapContainsPair(&map, 7, 72);
result = result && (MapValueCountForKey(&map, 7) == 2);- In
Access.c:157:
result = result && MapContainsPair(&map, 7, 70);
result = result && MapContainsPair(&map, 7, 71);
result = result && !MapContainsPair(&map, 7, 72);
result = result && (MapValueCountForKey(&map, 7) == 2);
result = result && (MapValueCountForKey(&map, 9) == 1);- In
Access.c:207:
// The second duplicate must be untouched (still 111).
result = result && MapContainsPair(&map, 11, 111);
result = result && !MapContainsPair(&map, 11, 110);- In
Access.c:208:
// The second duplicate must be untouched (still 111).
result = result && MapContainsPair(&map, 11, 111);
result = result && !MapContainsPair(&map, 11, 110);
MapDeinit(&map);- In
Access.c:224:
bool result = (MapGetFirstPtr(&map, 7) == NULL); // map_get_value_ptr early-out
result = result && !MapContainsKey(&map, 7); // map_contains early-out
result = result && !MapContainsPair(&map, 7, 0); // map_contains_pair early-out
result = result && (MapValueCountForKey(&map, 7) == 0); // map_value_count early-out
result = result && (MapUniqueKeyCount(&map) == 0);- In
Access.c:366:
result = result && (MapValueCountForKey(&map, 3) == 2);
result = result && (MapValueCountForKey(&map, 4) == 1);
result = result && MapContainsPair(&map, 3, 307) && MapContainsPair(&map, 3, 999);
result = result && !MapContainsPair(&map, 4, 999);- In
Access.c:367:
result = result && (MapValueCountForKey(&map, 4) == 1);
result = result && MapContainsPair(&map, 3, 307) && MapContainsPair(&map, 3, 999);
result = result && !MapContainsPair(&map, 4, 999);
MapDeinit(&map);
Last updated on