Fixing missing flag for treemap and treeset

This commit is contained in:
Leonardo committed 2020-04-16 20:29:49 -03:00
1 parent e1c736ab46
commit 277139656e
6 files changed
+18

No files matched your search

+3
View File
@@ -415,7 +415,10 @@ static const char *cmc_string_fmt_treemap = "struct %s<%s, %s> "
else if (_map_->f_key->cmp(scan->key, key) < 0) \
scan = scan->right; \
else \
{ \
_map_->flag = cmc_flags.DUPLICATE; \
return false; \
} \
} \
\
struct SNAME##_node *node; \
+3
View File
@@ -397,7 +397,10 @@ static const char *cmc_string_fmt_treeset = "struct %s<%s> "
else if (_set_->f_val->cmp(scan->value, element) < 0) \
scan = scan->right; \
else \
{ \
_set_->flag = cmc_flags.DUPLICATE; \
return false; \
} \
} \
\
struct SNAME##_node *node; \
+3
View File
@@ -237,7 +237,10 @@ _Bool tm_insert(struct treemap *_map_, size_t key, size_t value)
else if (_map_->f_key->cmp(scan->key, key) < 0)
scan = scan->right;
else
{
_map_->flag = cmc_flags.DUPLICATE;
return 0;
}
}
struct treemap_node *node;
if (_map_->f_key->cmp(parent->key, key) > 0)
+3
View File
@@ -229,7 +229,10 @@ _Bool ts_insert(struct treeset *_set_, size_t element)
else if (_set_->f_val->cmp(scan->value, element) < 0)
scan = scan->right;
else
{
_set_->flag = cmc_flags.DUPLICATE;
return 0;
}
}
struct treeset_node *node;
if (_set_->f_val->cmp(parent->value, element) > 0)
+3
View File
@@ -64,6 +64,9 @@ CMC_CREATE_UNIT(treemap_test, true, {
cmc_assert(tm_insert(map, 1, 1));
cmc_assert_equals(int32_t, cmc_flags.OK, tm_flag(map));
cmc_assert(!tm_insert(map, 1, 2));
cmc_assert_equals(int32_t, cmc_flags.DUPLICATE, tm_flag(map));
// update
cmc_assert(!tm_update(map, 2, 2, NULL));
cmc_assert_equals(int32_t, cmc_flags.NOT_FOUND, tm_flag(map));
+3
View File
@@ -56,6 +56,9 @@ CMC_CREATE_UNIT(treeset_test, true, {
cmc_assert(ts_insert(set, 1));
cmc_assert_equals(int32_t, cmc_flags.OK, ts_flag(set));
cmc_assert(!ts_insert(set, 1));
cmc_assert_equals(int32_t, cmc_flags.DUPLICATE, ts_flag(set));
// remove
cmc_assert(!ts_remove(set, 2));
cmc_assert_equals(int32_t, cmc_flags.NOT_FOUND, ts_flag(set));