Some fixes to bitset

This commit is contained in:
Leonardo Vencovsky committed 2020-06-24 16:57:38 -03:00
1 parent ce470f50b5
commit fe056c1b06
5 files changed
+63 -62

No files matched your search

+15 -15
View File
@@ -20,7 +20,7 @@ CMC_CREATE_UNIT(CMCBitSet, true, {
cmc_assert_not_equals(ptr, NULL, bs);
cmc_assert_not_equals(ptr, NULL, bs->buffer);
cmc_assert_equals(size_t, bs_bit_to_index(63) + 1, bs->capacity);
cmc_assert_equals(size_t, cmc_bidx_to_widx(63) + 1, bs->capacity);
cmc_assert_equals(ptr, cmc_alloc_node_default.malloc, bs->alloc->malloc);
cmc_assert_equals(ptr, cmc_alloc_node_default.calloc, bs->alloc->calloc);
cmc_assert_equals(ptr, cmc_alloc_node_default.realloc, bs->alloc->realloc);
@@ -31,7 +31,7 @@ CMC_CREATE_UNIT(CMCBitSet, true, {
bs = bs_new(129);
cmc_assert_equals(size_t, bs_bit_to_index(128) + 1, bs->capacity);
cmc_assert_equals(size_t, cmc_bidx_to_widx(128) + 1, bs->capacity);
bs_free(bs);
@@ -45,7 +45,7 @@ CMC_CREATE_UNIT(CMCBitSet, true, {
cmc_assert_not_equals(ptr, NULL, bs);
cmc_assert_not_equals(ptr, NULL, bs->buffer);
cmc_assert_equals(size_t, bs_bit_to_index(63) + 1, bs->capacity);
cmc_assert_equals(size_t, cmc_bidx_to_widx(63) + 1, bs->capacity);
cmc_assert_equals(ptr, bs_alloc_node, bs->alloc);
cmc_assert_equals(ptr, callbacks, bs->callbacks);
@@ -53,7 +53,7 @@ CMC_CREATE_UNIT(CMCBitSet, true, {
bs = bs_new_custom(129, NULL, NULL);
cmc_assert_equals(size_t, bs_bit_to_index(128) + 1, bs->capacity);
cmc_assert_equals(size_t, cmc_bidx_to_widx(128) + 1, bs->capacity);
bs_free(bs);
bs = bs_new_custom(0, bs_alloc_node, callbacks);
@@ -65,7 +65,7 @@ CMC_CREATE_UNIT(CMCBitSet, true, {
struct bitset bs = bs_init(64);
cmc_assert_not_equals(ptr, NULL, bs.buffer);
cmc_assert_equals(size_t, bs_bit_to_index(63) + 1, bs.capacity);
cmc_assert_equals(size_t, cmc_bidx_to_widx(63) + 1, bs.capacity);
cmc_assert_equals(ptr, cmc_alloc_node_default.malloc, bs.alloc->malloc);
cmc_assert_equals(ptr, cmc_alloc_node_default.calloc, bs.alloc->calloc);
cmc_assert_equals(ptr, cmc_alloc_node_default.realloc, bs.alloc->realloc);
@@ -76,7 +76,7 @@ CMC_CREATE_UNIT(CMCBitSet, true, {
bs = bs_init(129);
cmc_assert_equals(size_t, bs_bit_to_index(128) + 1, bs.capacity);
cmc_assert_equals(size_t, cmc_bidx_to_widx(128) + 1, bs.capacity);
bs_release(bs);
@@ -89,7 +89,7 @@ CMC_CREATE_UNIT(CMCBitSet, true, {
struct bitset bs = bs_init_custom(64, bs_alloc_node, callbacks);
cmc_assert_not_equals(ptr, NULL, bs.buffer);
cmc_assert_equals(size_t, bs_bit_to_index(63) + 1, bs.capacity);
cmc_assert_equals(size_t, cmc_bidx_to_widx(63) + 1, bs.capacity);
cmc_assert_equals(ptr, bs_alloc_node, bs.alloc);
cmc_assert_equals(ptr, callbacks, bs.callbacks);
@@ -97,7 +97,7 @@ CMC_CREATE_UNIT(CMCBitSet, true, {
bs = bs_init_custom(129, NULL, NULL);
cmc_assert_equals(size_t, bs_bit_to_index(128) + 1, bs.capacity);
cmc_assert_equals(size_t, cmc_bidx_to_widx(128) + 1, bs.capacity);
bs_release(bs);
@@ -149,11 +149,11 @@ CMC_CREATE_UNIT(CMCBitSet, true, {
cmc_assert(bs_set(bs, word_bits * 8 - 1));
cmc_assert_equals(CMC_BITSET_WORD_TYPE, ((cmc_bitset_word)1 << (word_bits - 1)),
bs->buffer[bs_bit_to_index(word_bits * 8 - 1)]);
bs->buffer[cmc_bidx_to_widx(word_bits * 8 - 1)]);
cmc_assert(bs_set(bs, word_bits * 18 - 2));
cmc_assert_equals(CMC_BITSET_WORD_TYPE, ((cmc_bitset_word)1 << (word_bits - 2)),
bs->buffer[bs_bit_to_index(word_bits * 18 - 2)]);
bs->buffer[cmc_bidx_to_widx(word_bits * 18 - 2)]);
bs_free(bs);
});
@@ -182,16 +182,16 @@ CMC_CREATE_UNIT(CMCBitSet, true, {
cmc_assert(bs_set_range(bs, word_bits * 6 - 2, word_bits * 6 - 2));
cmc_assert_equals(CMC_BITSET_WORD_TYPE, ((cmc_bitset_word)1 << (word_bits - 2)),
bs->buffer[bs_bit_to_index(word_bits * 6 - 2)]);
bs->buffer[cmc_bidx_to_widx(word_bits * 6 - 2)]);
// Make sure we have at least word_bits * 40 slots
bs_set(bs, word_bits * 40);
cmc_assert(bs_set_range(bs, word_bits * 20, word_bits * 21 - 1));
cmc_assert_equals(CMC_BITSET_WORD_TYPE, (~(cmc_bitset_word)0), bs->buffer[bs_bit_to_index(word_bits * 20)]);
cmc_assert_equals(CMC_BITSET_WORD_TYPE, (~(cmc_bitset_word)0), bs->buffer[cmc_bidx_to_widx(word_bits * 20)]);
cmc_assert_equals(CMC_BITSET_WORD_TYPE, 0, bs->buffer[bs_bit_to_index(word_bits * 20 - 1)]);
cmc_assert_equals(CMC_BITSET_WORD_TYPE, 0, bs->buffer[bs_bit_to_index(word_bits * 21 + 1)]);
cmc_assert_equals(CMC_BITSET_WORD_TYPE, 0, bs->buffer[cmc_bidx_to_widx(word_bits * 20 - 1)]);
cmc_assert_equals(CMC_BITSET_WORD_TYPE, 0, bs->buffer[cmc_bidx_to_widx(word_bits * 21 + 1)]);
cmc_assert(bs_set_range(bs, 0, word_bits * 100 - 1));
cmc_assert_equals(size_t, 100, bs->capacity);
@@ -238,7 +238,7 @@ CMC_CREATE_UNIT(CMCBitSet, true, {
cmc_assert(bs_set_range(bs, word_bits * 20, word_bits * 21 - 1));
cmc_assert(bs_clear_range(bs, word_bits * 20, word_bits * 21 - 1));
cmc_assert_equals(uint32_t, 0, bs->buffer[bs_bit_to_index(word_bits * 20)]);
cmc_assert_equals(uint32_t, 0, bs->buffer[cmc_bidx_to_widx(word_bits * 20)]);
for (size_t i = 0; i < bs->capacity; i++)
bs->buffer[i] = ~((cmc_bitset_word)0);