mirror of
https://github.com/bkthomps/Containers.git
synced 2025-11-16 04:24:47 +00:00
Make c90 compatible (#26)
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
cmake_minimum_required(VERSION 3.5.1)
|
||||
project(Containers C)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD 90)
|
||||
|
||||
set(CMAKE_C_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage")
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
[](https://codedocs.xyz/bkthomps/Containers/)
|
||||
[](https://www.codacy.com/app/bkthomps/Containers?utm_source=github.com&utm_medium=referral&utm_content=bkthomps/Containers&utm_campaign=Badge_Grade)
|
||||
[](https://www.codefactor.io/repository/github/bkthomps/containers)
|
||||
[](https://en.wikipedia.org/wiki/C_(programming_language))
|
||||
[](https://en.wikipedia.org/wiki/C_(programming_language))
|
||||
[](https://lbesson.mit-license.org/)
|
||||
|
||||
# Containers
|
||||
|
||||
20
src/deque.c
20
src/deque.c
@@ -119,11 +119,12 @@ int deque_trim(deque me)
|
||||
if (!new_block) {
|
||||
return -ENOMEM;
|
||||
}
|
||||
for (int i = 0; i < start_block; i++) {
|
||||
int i;
|
||||
for (i = 0; i < start_block; i++) {
|
||||
const struct node block_item = me->block[i];
|
||||
free(block_item.data);
|
||||
}
|
||||
for (int i = end_block + 1; i < me->block_count; i++) {
|
||||
for (i = end_block + 1; i < me->block_count; i++) {
|
||||
const struct node block_item = me->block[i];
|
||||
free(block_item.data);
|
||||
}
|
||||
@@ -146,7 +147,8 @@ int deque_trim(deque me)
|
||||
*/
|
||||
void deque_copy_to_array(void *const arr, deque me)
|
||||
{
|
||||
for (int i = 0; i < deque_size(me); i++) {
|
||||
int i;
|
||||
for (i = 0; i < deque_size(me); i++) {
|
||||
deque_get_at(arr + i * me->data_size, me, i);
|
||||
}
|
||||
}
|
||||
@@ -187,7 +189,8 @@ int deque_push_front(deque me, void *const data)
|
||||
block_index = added_blocks - 1;
|
||||
me->start_index += added_blocks * BLOCK_SIZE;
|
||||
me->end_index += added_blocks * BLOCK_SIZE;
|
||||
for (int i = 0; i < added_blocks; i++) {
|
||||
int i;
|
||||
for (i = 0; i < added_blocks; i++) {
|
||||
struct node *const block_item = &me->block[i];
|
||||
block_item->data = NULL;
|
||||
}
|
||||
@@ -230,7 +233,8 @@ int deque_push_back(deque me, void *const data)
|
||||
}
|
||||
me->block = temp;
|
||||
me->block_count = new_block_count;
|
||||
for (int i = block_index; i < me->block_count; i++) {
|
||||
int i;
|
||||
for (i = block_index; i < me->block_count; i++) {
|
||||
struct node *const block_item = &me->block[i];
|
||||
block_item->data = NULL;
|
||||
}
|
||||
@@ -414,7 +418,8 @@ int deque_clear(deque me)
|
||||
free(temp_block);
|
||||
return -ENOMEM;
|
||||
}
|
||||
for (int i = 0; i < me->block_count; i++) {
|
||||
int i;
|
||||
for (i = 0; i < me->block_count; i++) {
|
||||
const struct node block_item = me->block[i];
|
||||
free(block_item.data);
|
||||
}
|
||||
@@ -437,7 +442,8 @@ int deque_clear(deque me)
|
||||
*/
|
||||
deque deque_destroy(deque me)
|
||||
{
|
||||
for (int i = 0; i < me->block_count; i++) {
|
||||
int i;
|
||||
for (i = 0; i < me->block_count; i++) {
|
||||
const struct node block_item = me->block[i];
|
||||
free(block_item.data);
|
||||
}
|
||||
|
||||
@@ -107,7 +107,8 @@ void forward_list_copy_to_array(void *const arr, forward_list me)
|
||||
static struct node *forward_list_get_node_at(forward_list me, const int index)
|
||||
{
|
||||
struct node *traverse = me->head;
|
||||
for (int i = 0; i < index; i++) {
|
||||
int i;
|
||||
for (i = 0; i < index; i++) {
|
||||
traverse = traverse->next;
|
||||
}
|
||||
return traverse;
|
||||
|
||||
@@ -109,7 +109,8 @@ void list_copy_to_array(void *const arr, list me)
|
||||
static struct node *list_get_node_from_head(list me, const int index)
|
||||
{
|
||||
struct node *traverse = me->head;
|
||||
for (int i = 0; i < index; i++) {
|
||||
int i;
|
||||
for (i = 0; i < index; i++) {
|
||||
traverse = traverse->next;
|
||||
}
|
||||
return traverse;
|
||||
@@ -121,7 +122,8 @@ static struct node *list_get_node_from_head(list me, const int index)
|
||||
static struct node *list_get_node_from_tail(list me, const int index)
|
||||
{
|
||||
struct node *traverse = me->tail;
|
||||
for (int i = me->item_count - 1; i > index; i--) {
|
||||
int i;
|
||||
for (i = me->item_count - 1; i > index; i--) {
|
||||
traverse = traverse->prev;
|
||||
}
|
||||
return traverse;
|
||||
|
||||
@@ -137,7 +137,8 @@ int unordered_map_rehash(unordered_map me)
|
||||
me->buckets = old_buckets;
|
||||
return -ENOMEM;
|
||||
}
|
||||
for (int i = 0; i < me->capacity; i++) {
|
||||
int i;
|
||||
for (i = 0; i < me->capacity; i++) {
|
||||
struct node *traverse = old_buckets[i];
|
||||
while (traverse) {
|
||||
struct node *const backup = traverse->next;
|
||||
@@ -188,7 +189,8 @@ static int unordered_map_resize(unordered_map me)
|
||||
return -ENOMEM;
|
||||
}
|
||||
me->capacity = new_capacity;
|
||||
for (int i = 0; i < old_capacity; i++) {
|
||||
int i;
|
||||
for (i = 0; i < old_capacity; i++) {
|
||||
struct node *traverse = old_buckets[i];
|
||||
while (traverse) {
|
||||
struct node *const backup = traverse->next;
|
||||
@@ -387,7 +389,8 @@ int unordered_map_clear(unordered_map me)
|
||||
if (!temp) {
|
||||
return -ENOMEM;
|
||||
}
|
||||
for (int i = 0; i < me->capacity; i++) {
|
||||
int i;
|
||||
for (i = 0; i < me->capacity; i++) {
|
||||
struct node *traverse = me->buckets[i];
|
||||
while (traverse) {
|
||||
struct node *const backup = traverse;
|
||||
|
||||
@@ -157,7 +157,8 @@ int unordered_multimap_rehash(unordered_multimap me)
|
||||
me->buckets = old_buckets;
|
||||
return -ENOMEM;
|
||||
}
|
||||
for (int i = 0; i < me->capacity; i++) {
|
||||
int i;
|
||||
for (i = 0; i < me->capacity; i++) {
|
||||
struct node *traverse = old_buckets[i];
|
||||
while (traverse) {
|
||||
struct node *const backup = traverse->next;
|
||||
@@ -208,7 +209,8 @@ static int unordered_multimap_resize(unordered_multimap me)
|
||||
return -ENOMEM;
|
||||
}
|
||||
me->capacity = new_capacity;
|
||||
for (int i = 0; i < old_capacity; i++) {
|
||||
int i;
|
||||
for (i = 0; i < old_capacity; i++) {
|
||||
struct node *traverse = old_buckets[i];
|
||||
while (traverse) {
|
||||
struct node *const backup = traverse->next;
|
||||
@@ -509,7 +511,8 @@ int unordered_multimap_clear(unordered_multimap me)
|
||||
if (!temp) {
|
||||
return -ENOMEM;
|
||||
}
|
||||
for (int i = 0; i < me->capacity; i++) {
|
||||
int i;
|
||||
for (i = 0; i < me->capacity; i++) {
|
||||
struct node *traverse = me->buckets[i];
|
||||
while (traverse) {
|
||||
struct node *const backup = traverse;
|
||||
|
||||
@@ -135,7 +135,8 @@ int unordered_multiset_rehash(unordered_multiset me)
|
||||
me->buckets = old_buckets;
|
||||
return -ENOMEM;
|
||||
}
|
||||
for (int i = 0; i < me->capacity; i++) {
|
||||
int i;
|
||||
for (i = 0; i < me->capacity; i++) {
|
||||
struct node *traverse = old_buckets[i];
|
||||
while (traverse) {
|
||||
struct node *const backup = traverse->next;
|
||||
@@ -186,7 +187,8 @@ static int unordered_multiset_resize(unordered_multiset me)
|
||||
return -ENOMEM;
|
||||
}
|
||||
me->capacity = new_capacity;
|
||||
for (int i = 0; i < old_capacity; i++) {
|
||||
int i;
|
||||
for (i = 0; i < old_capacity; i++) {
|
||||
struct node *traverse = old_buckets[i];
|
||||
while (traverse) {
|
||||
struct node *const backup = traverse->next;
|
||||
@@ -415,7 +417,8 @@ int unordered_multiset_clear(unordered_multiset me)
|
||||
if (!temp) {
|
||||
return -ENOMEM;
|
||||
}
|
||||
for (int i = 0; i < me->capacity; i++) {
|
||||
int i;
|
||||
for (i = 0; i < me->capacity; i++) {
|
||||
struct node *traverse = me->buckets[i];
|
||||
while (traverse) {
|
||||
struct node *const backup = traverse;
|
||||
|
||||
@@ -131,7 +131,8 @@ int unordered_set_rehash(unordered_set me)
|
||||
me->buckets = old_buckets;
|
||||
return -ENOMEM;
|
||||
}
|
||||
for (int i = 0; i < me->capacity; i++) {
|
||||
int i;
|
||||
for (i = 0; i < me->capacity; i++) {
|
||||
struct node *traverse = old_buckets[i];
|
||||
while (traverse) {
|
||||
struct node *const backup = traverse->next;
|
||||
@@ -182,7 +183,8 @@ static int unordered_set_resize(unordered_set me)
|
||||
return -ENOMEM;
|
||||
}
|
||||
me->capacity = new_capacity;
|
||||
for (int i = 0; i < old_capacity; i++) {
|
||||
int i;
|
||||
for (i = 0; i < old_capacity; i++) {
|
||||
struct node *traverse = old_buckets[i];
|
||||
while (traverse) {
|
||||
struct node *const backup = traverse->next;
|
||||
@@ -344,7 +346,8 @@ int unordered_set_clear(unordered_set me)
|
||||
if (!temp) {
|
||||
return -ENOMEM;
|
||||
}
|
||||
for (int i = 0; i < me->capacity; i++) {
|
||||
int i;
|
||||
for (i = 0; i < me->capacity; i++) {
|
||||
struct node *traverse = me->buckets[i];
|
||||
while (traverse) {
|
||||
struct node *const backup = traverse;
|
||||
|
||||
11
tst/array.c
11
tst/array.c
@@ -8,29 +8,30 @@ void test_array(void)
|
||||
array me = array_init(10, sizeof(int));
|
||||
assert(me);
|
||||
assert(array_size(me) == 10);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
int get = 0xdeadbeef;
|
||||
array_get(&get, me, i);
|
||||
assert(get == 0);
|
||||
}
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
int get = 0xdeadbeef;
|
||||
array_set(me, i, &i);
|
||||
array_get(&get, me, i);
|
||||
assert(get == i);
|
||||
}
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
int get = 0xdeadbeef;
|
||||
array_get(&get, me, i);
|
||||
assert(get == i);
|
||||
}
|
||||
int arr[10] = {0};
|
||||
array_copy_to_array(arr, me);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(arr[i] == i);
|
||||
}
|
||||
int *const data = array_get_data(me);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(data[i] == i);
|
||||
}
|
||||
int get = 0xdeadbeef;
|
||||
|
||||
11
tst/deque.c
11
tst/deque.c
@@ -9,7 +9,8 @@ void test_deque(void)
|
||||
assert(me);
|
||||
assert(deque_size(me) == 0);
|
||||
assert(deque_is_empty(me));
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
deque_push_front(me, &val[i]);
|
||||
int get = 0;
|
||||
deque_get_first(&get, me);
|
||||
@@ -19,7 +20,7 @@ void test_deque(void)
|
||||
assert(!deque_is_empty(me));
|
||||
int get_arr[10] = {0};
|
||||
deque_copy_to_array(get_arr, me);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
int get = 0;
|
||||
deque_get_at(&get, me, i);
|
||||
assert(get == val[9 - i]);
|
||||
@@ -28,13 +29,13 @@ void test_deque(void)
|
||||
int trimmed[5] = {0};
|
||||
int get = 5;
|
||||
deque_trim(me);
|
||||
for (int i = 0; i < 7; i++) {
|
||||
for (i = 0; i < 7; i++) {
|
||||
deque_pop_back(&get, me);
|
||||
assert(get == val[i]);
|
||||
}
|
||||
deque_copy_to_array(trimmed, me);
|
||||
assert(deque_size(me) == 3);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (i = 0; i < 3; i++) {
|
||||
assert(10 - i == trimmed[i]);
|
||||
}
|
||||
int add = 3;
|
||||
@@ -109,7 +110,7 @@ void test_deque(void)
|
||||
assert(!me);
|
||||
// Testing automatic trim
|
||||
me = deque_init(sizeof(int));
|
||||
for (int i = 0; i < 100; i++) {
|
||||
for (i = 0; i < 100; i++) {
|
||||
deque_push_back(me, &i);
|
||||
deque_pop_front(&get, me);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,8 @@ void test_forward_list(void)
|
||||
assert(me);
|
||||
assert(forward_list_size(me) == 0);
|
||||
assert(forward_list_is_empty(me));
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
forward_list_add_first(me, &val[i]);
|
||||
assert(forward_list_size(me) == i + 1);
|
||||
int get = 0;
|
||||
@@ -20,19 +21,19 @@ void test_forward_list(void)
|
||||
assert(!forward_list_is_empty(me));
|
||||
int get_arr[10] = {0};
|
||||
forward_list_copy_to_array(get_arr, me);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
int get = 0;
|
||||
forward_list_get_at(&get, me, i);
|
||||
assert(get == val[9 - i]);
|
||||
assert(get_arr[i] == val[9 - i]);
|
||||
}
|
||||
for (int i = 0; i < 7; i++) {
|
||||
for (i = 0; i < 7; i++) {
|
||||
forward_list_remove_last(me);
|
||||
}
|
||||
int trimmed[5] = {0};
|
||||
forward_list_copy_to_array(trimmed, me);
|
||||
assert(forward_list_size(me) == 3);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (i = 0; i < 3; i++) {
|
||||
assert(10 - i == trimmed[i]);
|
||||
}
|
||||
int add = 3;
|
||||
|
||||
@@ -9,7 +9,8 @@ void test_list(void)
|
||||
assert(me);
|
||||
assert(list_size(me) == 0);
|
||||
assert(list_is_empty(me));
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
list_add_first(me, &val[i]);
|
||||
assert(list_size(me) == i + 1);
|
||||
int get = 0;
|
||||
@@ -20,19 +21,19 @@ void test_list(void)
|
||||
assert(!list_is_empty(me));
|
||||
int get_arr[10] = {0};
|
||||
list_copy_to_array(get_arr, me);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
int get = 0;
|
||||
list_get_at(&get, me, i);
|
||||
assert(get == val[9 - i]);
|
||||
assert(get_arr[i] == val[9 - i]);
|
||||
}
|
||||
for (int i = 0; i < 7; i++) {
|
||||
for (i = 0; i < 7; i++) {
|
||||
list_remove_last(me);
|
||||
}
|
||||
int trimmed[5] = {0};
|
||||
list_copy_to_array(trimmed, me);
|
||||
assert(list_size(me) == 3);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (i = 0; i < 3; i++) {
|
||||
assert(10 - i == trimmed[i]);
|
||||
}
|
||||
int index = list_size(me);
|
||||
|
||||
40
tst/map.c
40
tst/map.c
@@ -35,17 +35,19 @@ void test_map(void)
|
||||
assert(map_size(me) == 2);
|
||||
assert(map_contains(me, &key));
|
||||
int val_arr[10] = {5, 9, 4, -5, 0, 6, 1, 5, 7, 2};
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
map_put(me, &val_arr[i], &value);
|
||||
assert(map_contains(me, &val_arr[i]));
|
||||
}
|
||||
assert(map_size(me) == 9);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(map_contains(me, &val_arr[i]));
|
||||
}
|
||||
for (int i = -100; i < 100; i++) {
|
||||
int j;
|
||||
for (i = -100; i < 100; i++) {
|
||||
bool contains = false;
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (j = 0; j < 10; j++) {
|
||||
if (val_arr[j] == i) {
|
||||
contains = true;
|
||||
}
|
||||
@@ -93,12 +95,12 @@ void test_map(void)
|
||||
assert(map_size(me) == 0);
|
||||
assert(!map_contains(me, &num));
|
||||
// Add a lot of items and remove individually.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
map_put(me, &i, &value);
|
||||
assert(map_contains(me, &i));
|
||||
}
|
||||
assert(map_size(me) == 1000);
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
map_remove(me, &i);
|
||||
assert(!map_contains(me, &i));
|
||||
}
|
||||
@@ -108,7 +110,7 @@ void test_map(void)
|
||||
assert(map_size(me) == 0);
|
||||
assert(map_is_empty(me));
|
||||
// Add a lot of items and clear.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
map_put(me, &i, &value);
|
||||
assert(map_contains(me, &i));
|
||||
}
|
||||
@@ -233,7 +235,7 @@ void test_map(void)
|
||||
// Add a lot of items.
|
||||
int count = 0;
|
||||
bool flip = false;
|
||||
for (int i = 1234; i < 82400; i++) {
|
||||
for (i = 1234; i < 82400; i++) {
|
||||
key = i % 765;
|
||||
const bool is_already_present = map_contains(me, &key);
|
||||
map_put(me, &key, &num);
|
||||
@@ -266,17 +268,17 @@ void test_map(void)
|
||||
assert(map_size(me) == 2);
|
||||
assert(map_contains(me, &key));
|
||||
int c[10] = {5, 9, 4, -5, 0, 6, 1, 5, 7, 2};
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
map_put(me, &c[i], &num);
|
||||
assert(map_contains(me, &c[i]));
|
||||
}
|
||||
assert(map_size(me) == 9);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(map_contains(me, &c[i]));
|
||||
}
|
||||
for (int i = -100; i < 100; i++) {
|
||||
for (i = -100; i < 100; i++) {
|
||||
bool contains = false;
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (j = 0; j < 10; j++) {
|
||||
if (c[j] == i) {
|
||||
contains = true;
|
||||
}
|
||||
@@ -324,12 +326,12 @@ void test_map(void)
|
||||
assert(map_size(me) == 0);
|
||||
assert(!map_contains(me, &num));
|
||||
// Add a lot of items and remove individually.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
map_put(me, &i, &num);
|
||||
assert(map_contains(me, &i));
|
||||
}
|
||||
assert(map_size(me) == 1000);
|
||||
for (int i = 5000; i < 5500; i++) {
|
||||
for (i = 5000; i < 5500; i++) {
|
||||
map_remove(me, &i);
|
||||
assert(!map_contains(me, &i));
|
||||
}
|
||||
@@ -339,7 +341,7 @@ void test_map(void)
|
||||
assert(map_size(me) == 0);
|
||||
assert(map_is_empty(me));
|
||||
// Add a lot of items and clear.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
map_put(me, &i, &num);
|
||||
assert(map_contains(me, &i));
|
||||
}
|
||||
@@ -377,11 +379,11 @@ void test_map(void)
|
||||
map_remove(me, &key);
|
||||
map_clear(me);
|
||||
// Allocate many nodes.
|
||||
for (int i = 8123; i < 12314; i += 3) {
|
||||
for (i = 8123; i < 12314; i += 3) {
|
||||
map_put(me, &i, &num);
|
||||
assert(map_contains(me, &i));
|
||||
}
|
||||
for (int i = 13000; i > 8000; i--) {
|
||||
for (i = 13000; i > 8000; i--) {
|
||||
map_remove(me, &i);
|
||||
assert(!map_contains(me, &i));
|
||||
}
|
||||
@@ -482,11 +484,11 @@ void test_map(void)
|
||||
me = map_destroy(me);
|
||||
assert(!me);
|
||||
me = map_init(sizeof(int), sizeof(int), compare_int);
|
||||
for (int i = 4817; i > -2983; i -= 11) {
|
||||
for (i = 4817; i > -2983; i -= 11) {
|
||||
map_put(me, &i, &num);
|
||||
assert(map_contains(me, &i));
|
||||
}
|
||||
for (int i = -432; i < 3849; i += 7) {
|
||||
for (i = -432; i < 3849; i += 7) {
|
||||
map_remove(me, &i);
|
||||
assert(!map_contains(me, &i));
|
||||
}
|
||||
|
||||
@@ -41,17 +41,19 @@ void test_multimap(void)
|
||||
multimap_remove(me, &key, &value);
|
||||
assert(multimap_size(me) == 0);
|
||||
int val_arr[10] = {5, 9, 4, -5, 0, 6, 1, 5, 7, 2};
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
multimap_put(me, &val_arr[i], &value);
|
||||
assert(multimap_contains(me, &val_arr[i]));
|
||||
}
|
||||
assert(multimap_size(me) == 10);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(multimap_contains(me, &val_arr[i]));
|
||||
}
|
||||
for (int i = -100; i < 100; i++) {
|
||||
int j;
|
||||
for (i = -100; i < 100; i++) {
|
||||
bool contains = false;
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (j = 0; j < 10; j++) {
|
||||
if (val_arr[j] == i) {
|
||||
contains = true;
|
||||
}
|
||||
@@ -113,12 +115,12 @@ void test_multimap(void)
|
||||
assert(multimap_size(me) == 0);
|
||||
assert(!multimap_contains(me, &num));
|
||||
// Add a lot of items and remove individually.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
multimap_put(me, &i, &value);
|
||||
assert(multimap_contains(me, &i));
|
||||
}
|
||||
assert(multimap_size(me) == 1000);
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
multimap_remove(me, &i, &value);
|
||||
assert(!multimap_contains(me, &i));
|
||||
}
|
||||
@@ -128,7 +130,7 @@ void test_multimap(void)
|
||||
assert(multimap_size(me) == 0);
|
||||
assert(multimap_is_empty(me));
|
||||
// Add a lot of items and clear.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
multimap_put(me, &i, &value);
|
||||
assert(multimap_contains(me, &i));
|
||||
}
|
||||
@@ -142,7 +144,7 @@ void test_multimap(void)
|
||||
multimap_put(me, &key, &value);
|
||||
assert(multimap_size(me) == 1);
|
||||
key = 7;
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
multimap_put(me, &key, &value);
|
||||
}
|
||||
assert(multimap_size(me) == 11);
|
||||
@@ -263,7 +265,7 @@ void test_multimap(void)
|
||||
// Add a lot of items.
|
||||
count = 0;
|
||||
bool flip = false;
|
||||
for (int i = 1234; i < 82400; i++) {
|
||||
for (i = 1234; i < 82400; i++) {
|
||||
key = i % 765;
|
||||
multimap_put(me, &key, &num);
|
||||
assert(multimap_contains(me, &key));
|
||||
@@ -292,17 +294,17 @@ void test_multimap(void)
|
||||
assert(multimap_size(me) == 3);
|
||||
assert(multimap_contains(me, &key));
|
||||
int c[10] = {5, 9, 4, -5, 0, 6, 1, 5, 7, 2};
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
multimap_put(me, &c[i], &value);
|
||||
assert(multimap_contains(me, &c[i]));
|
||||
}
|
||||
assert(multimap_size(me) == 13);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(multimap_contains(me, &c[i]));
|
||||
}
|
||||
for (int i = -100; i < 100; i++) {
|
||||
for (i = -100; i < 100; i++) {
|
||||
bool contains = false;
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (j = 0; j < 10; j++) {
|
||||
if (c[j] == i) {
|
||||
contains = true;
|
||||
}
|
||||
@@ -352,12 +354,12 @@ void test_multimap(void)
|
||||
multimap_clear(me);
|
||||
// Add a lot of items and remove individually.
|
||||
value = 37;
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
multimap_put(me, &i, &value);
|
||||
assert(multimap_contains(me, &i));
|
||||
}
|
||||
assert(multimap_size(me) == 1000);
|
||||
for (int i = 5000; i < 5500; i++) {
|
||||
for (i = 5000; i < 5500; i++) {
|
||||
multimap_remove(me, &i, &value);
|
||||
assert(!multimap_contains(me, &i));
|
||||
}
|
||||
@@ -367,7 +369,7 @@ void test_multimap(void)
|
||||
assert(multimap_size(me) == 0);
|
||||
assert(multimap_is_empty(me));
|
||||
// Add a lot of items and clear.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
multimap_put(me, &i, &num);
|
||||
assert(multimap_contains(me, &i));
|
||||
}
|
||||
@@ -406,11 +408,11 @@ void test_multimap(void)
|
||||
multimap_clear(me);
|
||||
// Allocate many nodes.
|
||||
value = 54;
|
||||
for (int i = 8123; i < 12314; i += 3) {
|
||||
for (i = 8123; i < 12314; i += 3) {
|
||||
multimap_put(me, &i, &value);
|
||||
assert(multimap_contains(me, &i));
|
||||
}
|
||||
for (int i = 13000; i > 8000; i--) {
|
||||
for (i = 13000; i > 8000; i--) {
|
||||
multimap_remove(me, &i, &value);
|
||||
assert(!multimap_contains(me, &i));
|
||||
}
|
||||
@@ -512,11 +514,11 @@ void test_multimap(void)
|
||||
assert(!me);
|
||||
me = multimap_init(sizeof(int), sizeof(int), compare_int, compare_int);
|
||||
value = 97;
|
||||
for (int i = 4817; i > -2983; i -= 11) {
|
||||
for (i = 4817; i > -2983; i -= 11) {
|
||||
multimap_put(me, &i, &value);
|
||||
assert(multimap_contains(me, &i));
|
||||
}
|
||||
for (int i = -432; i < 3849; i += 7) {
|
||||
for (i = -432; i < 3849; i += 7) {
|
||||
multimap_remove(me, &i, &value);
|
||||
assert(!multimap_contains(me, &i));
|
||||
}
|
||||
|
||||
@@ -38,17 +38,19 @@ void test_multiset(void)
|
||||
multiset_remove(me, &key);
|
||||
assert(multiset_size(me) == 0);
|
||||
int val_arr[10] = {5, 9, 4, -5, 0, 6, 1, 5, 7, 2};
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
multiset_put(me, &val_arr[i]);
|
||||
assert(multiset_contains(me, &val_arr[i]));
|
||||
}
|
||||
assert(multiset_size(me) == 10);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(multiset_contains(me, &val_arr[i]));
|
||||
}
|
||||
for (int i = -100; i < 100; i++) {
|
||||
int j;
|
||||
for (i = -100; i < 100; i++) {
|
||||
bool contains = false;
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (j = 0; j < 10; j++) {
|
||||
if (val_arr[j] == i) {
|
||||
contains = true;
|
||||
}
|
||||
@@ -100,12 +102,12 @@ void test_multiset(void)
|
||||
assert(multiset_size(me) == 0);
|
||||
assert(!multiset_contains(me, &num));
|
||||
// Add a lot of items and remove individually.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
multiset_put(me, &i);
|
||||
assert(multiset_contains(me, &i));
|
||||
}
|
||||
assert(multiset_size(me) == 1000);
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
multiset_remove(me, &i);
|
||||
assert(!multiset_contains(me, &i));
|
||||
}
|
||||
@@ -115,7 +117,7 @@ void test_multiset(void)
|
||||
assert(multiset_size(me) == 0);
|
||||
assert(multiset_is_empty(me));
|
||||
// Add a lot of items and clear.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
multiset_put(me, &i);
|
||||
assert(multiset_contains(me, &i));
|
||||
}
|
||||
@@ -129,7 +131,7 @@ void test_multiset(void)
|
||||
multiset_put(me, &key);
|
||||
assert(multiset_size(me) == 1);
|
||||
key = 7;
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
multiset_put(me, &key);
|
||||
}
|
||||
assert(multiset_size(me) == 11);
|
||||
@@ -250,7 +252,7 @@ void test_multiset(void)
|
||||
// Add a lot of items.
|
||||
int count = 0;
|
||||
bool flip = false;
|
||||
for (int i = 1234; i < 82400; i++) {
|
||||
for (i = 1234; i < 82400; i++) {
|
||||
key = i % 765;
|
||||
multiset_put(me, &key);
|
||||
assert(multiset_contains(me, &key));
|
||||
@@ -279,17 +281,17 @@ void test_multiset(void)
|
||||
assert(multiset_size(me) == 3);
|
||||
assert(multiset_contains(me, &key));
|
||||
int c[10] = {5, 9, 4, -5, 0, 6, 1, 5, 7, 2};
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
multiset_put(me, &c[i]);
|
||||
assert(multiset_contains(me, &c[i]));
|
||||
}
|
||||
assert(multiset_size(me) == 13);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(multiset_contains(me, &c[i]));
|
||||
}
|
||||
for (int i = -100; i < 100; i++) {
|
||||
for (i = -100; i < 100; i++) {
|
||||
bool contains = false;
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (j = 0; j < 10; j++) {
|
||||
if (c[j] == i) {
|
||||
contains = true;
|
||||
}
|
||||
@@ -338,12 +340,12 @@ void test_multiset(void)
|
||||
assert(!multiset_contains(me, &num));
|
||||
multiset_clear(me);
|
||||
// Add a lot of items and remove individually.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
multiset_put(me, &i);
|
||||
assert(multiset_contains(me, &i));
|
||||
}
|
||||
assert(multiset_size(me) == 1000);
|
||||
for (int i = 5000; i < 5500; i++) {
|
||||
for (i = 5000; i < 5500; i++) {
|
||||
multiset_remove(me, &i);
|
||||
assert(!multiset_contains(me, &i));
|
||||
}
|
||||
@@ -353,7 +355,7 @@ void test_multiset(void)
|
||||
assert(multiset_size(me) == 0);
|
||||
assert(multiset_is_empty(me));
|
||||
// Add a lot of items and clear.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
multiset_put(me, &i);
|
||||
assert(multiset_contains(me, &i));
|
||||
}
|
||||
@@ -391,11 +393,11 @@ void test_multiset(void)
|
||||
multiset_remove(me, &key);
|
||||
multiset_clear(me);
|
||||
// Allocate many nodes.
|
||||
for (int i = 8123; i < 12314; i += 3) {
|
||||
for (i = 8123; i < 12314; i += 3) {
|
||||
multiset_put(me, &i);
|
||||
assert(multiset_contains(me, &i));
|
||||
}
|
||||
for (int i = 13000; i > 8000; i--) {
|
||||
for (i = 13000; i > 8000; i--) {
|
||||
multiset_remove(me, &i);
|
||||
assert(!multiset_contains(me, &i));
|
||||
}
|
||||
@@ -496,11 +498,11 @@ void test_multiset(void)
|
||||
me = multiset_destroy(me);
|
||||
assert(!me);
|
||||
me = multiset_init(sizeof(int), compare_int);
|
||||
for (int i = 4817; i > -2983; i -= 11) {
|
||||
for (i = 4817; i > -2983; i -= 11) {
|
||||
multiset_put(me, &i);
|
||||
assert(multiset_contains(me, &i));
|
||||
}
|
||||
for (int i = -432; i < 3849; i += 7) {
|
||||
for (i = -432; i < 3849; i += 7) {
|
||||
multiset_remove(me, &i);
|
||||
assert(!multiset_contains(me, &i));
|
||||
}
|
||||
|
||||
@@ -15,7 +15,8 @@ static void priority_queue_verify(priority_queue me)
|
||||
{
|
||||
void *const vector_storage = vector_get_data(me->data);
|
||||
const int size = vector_size(me->data);
|
||||
for (int i = 0; i < size; i++) {
|
||||
int i;
|
||||
for (i = 0; i < size; i++) {
|
||||
const int val = *(int *) (vector_storage + i * me->data_size);
|
||||
const int left_child = 2 * i + 1;
|
||||
const int right_child = 2 * i + 2;
|
||||
@@ -109,7 +110,8 @@ void test_priority_queue(void)
|
||||
priority_queue_front(&item, me);
|
||||
assert(item == 9);
|
||||
int latest = item;
|
||||
for (int i = 0; i < 15; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 15; i++) {
|
||||
stub_priority_queue_pop(&item, me);
|
||||
assert(item <= latest);
|
||||
latest = item;
|
||||
|
||||
11
tst/queue.c
11
tst/queue.c
@@ -9,7 +9,8 @@ void test_queue(void)
|
||||
assert(me);
|
||||
assert(queue_size(me) == 0);
|
||||
assert(queue_is_empty(me));
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
queue_push(me, &val[i]);
|
||||
int get = 0;
|
||||
assert(queue_back(&get, me));
|
||||
@@ -22,10 +23,10 @@ void test_queue(void)
|
||||
assert(!queue_is_empty(me));
|
||||
int get_arr[10] = {0};
|
||||
queue_copy_to_array(get_arr, me);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(get_arr[i] == i + 1);
|
||||
}
|
||||
for (int i = 0; i < 9; i++) {
|
||||
for (i = 0; i < 9; i++) {
|
||||
int get = 0;
|
||||
assert(queue_pop(&get, me));
|
||||
assert(get == i + 1);
|
||||
@@ -42,7 +43,7 @@ void test_queue(void)
|
||||
assert(!me);
|
||||
me = queue_init(sizeof(int));
|
||||
assert(me);
|
||||
for (int i = 123; i < 123456; i++) {
|
||||
for (i = 123; i < 123456; i++) {
|
||||
queue_push(me, &i);
|
||||
}
|
||||
const int old_size = queue_size(me);
|
||||
@@ -55,7 +56,7 @@ void test_queue(void)
|
||||
queue_destroy(me);
|
||||
// Testing automatic trim
|
||||
me = queue_init(sizeof(int));
|
||||
for (int i = 0; i < 100; i++) {
|
||||
for (i = 0; i < 100; i++) {
|
||||
queue_push(me, &i);
|
||||
queue_pop(&get, me);
|
||||
}
|
||||
|
||||
28
tst/set.c
28
tst/set.c
@@ -230,7 +230,8 @@ void test_set(void)
|
||||
// Add a lot of items.
|
||||
int count = 0;
|
||||
bool flip = false;
|
||||
for (int i = 1234; i < 82400; i++) {
|
||||
int i;
|
||||
for (i = 1234; i < 82400; i++) {
|
||||
int num = i % 765;
|
||||
const bool is_already_present = stub_set_contains(me, &num);
|
||||
stub_set_put(me, &num);
|
||||
@@ -263,17 +264,18 @@ void test_set(void)
|
||||
assert(set_size(me) == 2);
|
||||
assert(stub_set_contains(me, &key));
|
||||
int c[10] = {5, 9, 4, -5, 0, 6, 1, 5, 7, 2};
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
stub_set_put(me, &c[i]);
|
||||
assert(stub_set_contains(me, &c[i]));
|
||||
}
|
||||
assert(set_size(me) == 9);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(stub_set_contains(me, &c[i]));
|
||||
}
|
||||
for (int i = -100; i < 100; i++) {
|
||||
int j;
|
||||
for (i = -100; i < 100; i++) {
|
||||
bool contains = false;
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (j = 0; j < 10; j++) {
|
||||
if (c[j] == i) {
|
||||
contains = true;
|
||||
}
|
||||
@@ -321,12 +323,12 @@ void test_set(void)
|
||||
assert(set_size(me) == 0);
|
||||
assert(!stub_set_contains(me, &num));
|
||||
// Add a lot of items and remove individually.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
stub_set_put(me, &i);
|
||||
assert(stub_set_contains(me, &i));
|
||||
}
|
||||
assert(set_size(me) == 1000);
|
||||
for (int i = 5000; i < 5500; i++) {
|
||||
for (i = 5000; i < 5500; i++) {
|
||||
stub_set_remove(me, &i);
|
||||
assert(!stub_set_contains(me, &i));
|
||||
}
|
||||
@@ -336,7 +338,7 @@ void test_set(void)
|
||||
assert(set_size(me) == 0);
|
||||
assert(set_is_empty(me));
|
||||
// Add a lot of items and clear.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
stub_set_put(me, &i);
|
||||
assert(stub_set_contains(me, &i));
|
||||
}
|
||||
@@ -374,11 +376,11 @@ void test_set(void)
|
||||
stub_set_remove(me, &key);
|
||||
stub_set_clear(me);
|
||||
// Allocate many nodes.
|
||||
for (int i = 8123; i < 12314; i += 3) {
|
||||
for (i = 8123; i < 12314; i += 3) {
|
||||
stub_set_put(me, &i);
|
||||
assert(stub_set_contains(me, &i));
|
||||
}
|
||||
for (int i = 13000; i > 8000; i--) {
|
||||
for (i = 13000; i > 8000; i--) {
|
||||
stub_set_remove(me, &i);
|
||||
assert(!stub_set_contains(me, &i));
|
||||
}
|
||||
@@ -479,11 +481,11 @@ void test_set(void)
|
||||
me = stub_set_destroy(me);
|
||||
assert(!me);
|
||||
me = set_init(sizeof(int), compare_int);
|
||||
for (int i = 4817; i > -2983; i -= 11) {
|
||||
for (i = 4817; i > -2983; i -= 11) {
|
||||
stub_set_put(me, &i);
|
||||
assert(stub_set_contains(me, &i));
|
||||
}
|
||||
for (int i = -432; i < 3849; i += 7) {
|
||||
for (i = -432; i < 3849; i += 7) {
|
||||
stub_set_remove(me, &i);
|
||||
assert(!stub_set_contains(me, &i));
|
||||
}
|
||||
@@ -495,7 +497,7 @@ void test_set(void)
|
||||
key = 5;
|
||||
stub_set_remove(me, &key);
|
||||
stub_set_clear(me);
|
||||
// Two children edge case other side.
|
||||
// Two children edge case on the other side.
|
||||
key = 8;
|
||||
stub_set_put(me, &key);
|
||||
key = 4;
|
||||
|
||||
@@ -9,7 +9,8 @@ void test_stack(void)
|
||||
assert(me);
|
||||
assert(stack_size(me) == 0);
|
||||
assert(stack_is_empty(me));
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
stack_push(me, &val[i]);
|
||||
int get = 0;
|
||||
assert(stack_top(&get, me));
|
||||
@@ -19,10 +20,10 @@ void test_stack(void)
|
||||
assert(!stack_is_empty(me));
|
||||
int get_arr[10] = {0};
|
||||
stack_copy_to_array(get_arr, me);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(get_arr[i] == i + 1);
|
||||
}
|
||||
for (int i = 0; i < 9; i++) {
|
||||
for (i = 0; i < 9; i++) {
|
||||
int get = 0;
|
||||
assert(stack_pop(&get, me));
|
||||
assert(get == 10 - i);
|
||||
@@ -38,7 +39,7 @@ void test_stack(void)
|
||||
assert(!me);
|
||||
// Testing automatic trim
|
||||
me = stack_init(sizeof(int));
|
||||
for (int i = 0; i < 100; i++) {
|
||||
for (i = 0; i < 100; i++) {
|
||||
stack_push(me, &i);
|
||||
stack_pop(&get, me);
|
||||
}
|
||||
|
||||
@@ -51,17 +51,19 @@ void test_unordered_map(void)
|
||||
assert(unordered_map_size(me) == 2);
|
||||
assert(unordered_map_contains(me, &key));
|
||||
int val_arr[10] = {5, 9, 4, -5, 0, 6, 1, 5, 7, 2};
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
unordered_map_put(me, &val_arr[i], &value);
|
||||
assert(unordered_map_contains(me, &val_arr[i]));
|
||||
}
|
||||
assert(unordered_map_size(me) == 9);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(unordered_map_contains(me, &val_arr[i]));
|
||||
}
|
||||
for (int i = -100; i < 100; i++) {
|
||||
int j;
|
||||
for (i = -100; i < 100; i++) {
|
||||
bool contains = false;
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (j = 0; j < 10; j++) {
|
||||
if (val_arr[j] == i) {
|
||||
contains = true;
|
||||
}
|
||||
@@ -109,12 +111,12 @@ void test_unordered_map(void)
|
||||
assert(unordered_map_size(me) == 0);
|
||||
assert(!unordered_map_contains(me, &num));
|
||||
// Add a lot of items and remove individually.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
unordered_map_put(me, &i, &value);
|
||||
assert(unordered_map_contains(me, &i));
|
||||
}
|
||||
assert(unordered_map_size(me) == 1000);
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
unordered_map_remove(me, &i);
|
||||
assert(!unordered_map_contains(me, &i));
|
||||
}
|
||||
@@ -124,7 +126,7 @@ void test_unordered_map(void)
|
||||
assert(unordered_map_size(me) == 0);
|
||||
assert(unordered_map_is_empty(me));
|
||||
// Add a lot of items and clear.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
unordered_map_put(me, &i, &value);
|
||||
assert(unordered_map_contains(me, &i));
|
||||
}
|
||||
|
||||
@@ -63,17 +63,19 @@ void test_unordered_multimap(void)
|
||||
unordered_multimap_remove(me, &key, &value);
|
||||
assert(unordered_multimap_size(me) == 0);
|
||||
int c[10] = {5, 9, 4, -5, 0, 6, 1, 5, 7, 2};
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
unordered_multimap_put(me, &c[i], &value);
|
||||
assert(unordered_multimap_contains(me, &c[i]));
|
||||
}
|
||||
assert(unordered_multimap_size(me) == 10);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(unordered_multimap_contains(me, &c[i]));
|
||||
}
|
||||
for (int i = -100; i < 100; i++) {
|
||||
int j;
|
||||
for (i = -100; i < 100; i++) {
|
||||
bool contains = false;
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (j = 0; j < 10; j++) {
|
||||
if (c[j] == i) {
|
||||
contains = true;
|
||||
}
|
||||
@@ -135,12 +137,12 @@ void test_unordered_multimap(void)
|
||||
assert(unordered_multimap_size(me) == 0);
|
||||
assert(!unordered_multimap_contains(me, &num));
|
||||
// Add a lot of items and remove individually.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
unordered_multimap_put(me, &i, &value);
|
||||
assert(unordered_multimap_contains(me, &i));
|
||||
}
|
||||
assert(unordered_multimap_size(me) == 1000);
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
unordered_multimap_remove(me, &i, &value);
|
||||
assert(!unordered_multimap_contains(me, &i));
|
||||
}
|
||||
@@ -150,7 +152,7 @@ void test_unordered_multimap(void)
|
||||
assert(unordered_multimap_size(me) == 0);
|
||||
assert(unordered_multimap_is_empty(me));
|
||||
// Add a lot of items and clear.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
unordered_multimap_put(me, &i, &value);
|
||||
assert(unordered_multimap_contains(me, &i));
|
||||
}
|
||||
@@ -167,7 +169,7 @@ void test_unordered_multimap(void)
|
||||
unordered_multimap_put(me, &key, &value);
|
||||
assert(unordered_multimap_size(me) == 1);
|
||||
key = 7;
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
unordered_multimap_put(me, &key, &value);
|
||||
}
|
||||
assert(unordered_multimap_size(me) == 11);
|
||||
|
||||
@@ -54,17 +54,19 @@ void test_unordered_multiset(void)
|
||||
unordered_multiset_remove(me, &key);
|
||||
assert(unordered_multiset_size(me) == 0);
|
||||
int c[10] = {5, 9, 4, -5, 0, 6, 1, 5, 7, 2};
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
unordered_multiset_put(me, &c[i]);
|
||||
assert(unordered_multiset_contains(me, &c[i]));
|
||||
}
|
||||
assert(unordered_multiset_size(me) == 10);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(unordered_multiset_contains(me, &c[i]));
|
||||
}
|
||||
for (int i = -100; i < 100; i++) {
|
||||
int j;
|
||||
for (i = -100; i < 100; i++) {
|
||||
bool contains = false;
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (j = 0; j < 10; j++) {
|
||||
if (c[j] == i) {
|
||||
contains = true;
|
||||
}
|
||||
@@ -116,12 +118,12 @@ void test_unordered_multiset(void)
|
||||
assert(unordered_multiset_size(me) == 0);
|
||||
assert(!unordered_multiset_contains(me, &num));
|
||||
// Add a lot of items and remove individually.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
unordered_multiset_put(me, &i);
|
||||
assert(unordered_multiset_contains(me, &i));
|
||||
}
|
||||
assert(unordered_multiset_size(me) == 1000);
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
unordered_multiset_remove(me, &i);
|
||||
assert(!unordered_multiset_contains(me, &i));
|
||||
}
|
||||
@@ -131,7 +133,7 @@ void test_unordered_multiset(void)
|
||||
assert(unordered_multiset_size(me) == 0);
|
||||
assert(unordered_multiset_is_empty(me));
|
||||
// Add a lot of items and clear.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
unordered_multiset_put(me, &i);
|
||||
assert(unordered_multiset_contains(me, &i));
|
||||
}
|
||||
@@ -148,7 +150,7 @@ void test_unordered_multiset(void)
|
||||
unordered_multiset_put(me, &key);
|
||||
assert(unordered_multiset_size(me) == 1);
|
||||
key = 7;
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
unordered_multiset_put(me, &key);
|
||||
}
|
||||
assert(unordered_multiset_size(me) == 11);
|
||||
|
||||
@@ -45,17 +45,19 @@ void test_unordered_set(void)
|
||||
assert(unordered_set_size(me) == 2);
|
||||
assert(unordered_set_contains(me, &key));
|
||||
int val_arr[10] = {5, 9, 4, -5, 0, 6, 1, 5, 7, 2};
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
unordered_set_put(me, &val_arr[i]);
|
||||
assert(unordered_set_contains(me, &val_arr[i]));
|
||||
}
|
||||
assert(unordered_set_size(me) == 9);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(unordered_set_contains(me, &val_arr[i]));
|
||||
}
|
||||
for (int i = -100; i < 100; i++) {
|
||||
int j;
|
||||
for (i = -100; i < 100; i++) {
|
||||
bool contains = false;
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (j = 0; j < 10; j++) {
|
||||
if (val_arr[j] == i) {
|
||||
contains = true;
|
||||
}
|
||||
@@ -103,12 +105,12 @@ void test_unordered_set(void)
|
||||
assert(unordered_set_size(me) == 0);
|
||||
assert(!unordered_set_contains(me, &num));
|
||||
// Add a lot of items and remove individually.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
unordered_set_put(me, &i);
|
||||
assert(unordered_set_contains(me, &i));
|
||||
}
|
||||
assert(unordered_set_size(me) == 1000);
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
unordered_set_remove(me, &i);
|
||||
assert(!unordered_set_contains(me, &i));
|
||||
}
|
||||
@@ -118,7 +120,7 @@ void test_unordered_set(void)
|
||||
assert(unordered_set_size(me) == 0);
|
||||
assert(unordered_set_is_empty(me));
|
||||
// Add a lot of items and clear.
|
||||
for (int i = 5000; i < 6000; i++) {
|
||||
for (i = 5000; i < 6000; i++) {
|
||||
unordered_set_put(me, &i);
|
||||
assert(unordered_set_contains(me, &i));
|
||||
}
|
||||
|
||||
33
tst/vector.c
33
tst/vector.c
@@ -7,9 +7,11 @@ static void test_vector_of_vectors(void)
|
||||
// Test using a vector of vectors of ints
|
||||
vector outer = vector_init(sizeof(vector));
|
||||
// Add vectors to the outer vector
|
||||
for (int i = 0; i < 5; i++) {
|
||||
int i;
|
||||
int j;
|
||||
for (i = 0; i < 5; i++) {
|
||||
vector inner = vector_init(sizeof(int));
|
||||
for (int j = 1; j <= 10; j++) {
|
||||
for (j = 1; j <= 10; j++) {
|
||||
vector_add_last(inner, &j);
|
||||
}
|
||||
assert(vector_size(inner) == 10);
|
||||
@@ -17,10 +19,10 @@ static void test_vector_of_vectors(void)
|
||||
}
|
||||
assert(vector_size(outer) == 5);
|
||||
// Delete the vectors in the outer vector
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (i = 0; i < 5; i++) {
|
||||
vector inner = NULL;
|
||||
vector_get_first(&inner, outer);
|
||||
for (int j = 0; j < 10; j++) {
|
||||
for (j = 0; j < 10; j++) {
|
||||
int num = 0xdeadbeef;
|
||||
vector_get_at(&num, inner, j);
|
||||
assert(num == j + 1);
|
||||
@@ -35,20 +37,22 @@ static void test_vector_of_vectors(void)
|
||||
static void test_vector_dynamic(void)
|
||||
{
|
||||
char **str = malloc(5 * sizeof(char **));
|
||||
for (int i = 0; i < 5; i++) {
|
||||
int i;
|
||||
int j;
|
||||
for (i = 0; i < 5; i++) {
|
||||
str[i] = malloc(10 * sizeof(char *));
|
||||
for (int j = 0; j < 9; j++) {
|
||||
for (j = 0; j < 9; j++) {
|
||||
str[i][j] = (char) ('a' + i);
|
||||
}
|
||||
str[i][9] = '\0';
|
||||
}
|
||||
vector str_vector = vector_init(sizeof(char *));
|
||||
assert(str_vector);
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (i = 0; i < 5; i++) {
|
||||
vector_add_last(str_vector, &str[i]);
|
||||
}
|
||||
assert(vector_size(str_vector) == 5);
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (i = 0; i < 5; i++) {
|
||||
char *retrieve = NULL;
|
||||
vector_get_first(&retrieve, str_vector);
|
||||
vector_remove_first(str_vector);
|
||||
@@ -69,7 +73,8 @@ void test_vector(void)
|
||||
assert(me);
|
||||
assert(vector_size(me) == 0);
|
||||
assert(vector_is_empty(me));
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int i;
|
||||
for (i = 0; i < 10; i++) {
|
||||
vector_add_first(me, &val[i]);
|
||||
int get = 0;
|
||||
vector_get_first(&get, me);
|
||||
@@ -79,26 +84,26 @@ void test_vector(void)
|
||||
assert(!vector_is_empty(me));
|
||||
int get_arr[10] = {0};
|
||||
vector_copy_to_array(get_arr, me);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
int get = 0;
|
||||
vector_get_at(&get, me, i);
|
||||
assert(get == val[9 - i]);
|
||||
assert(get_arr[i] == val[9 - i]);
|
||||
}
|
||||
int *const data = vector_get_data(me);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
assert(data[i] == val[9 - i]);
|
||||
}
|
||||
assert(vector_capacity(me) >= vector_size(me));
|
||||
int trimmed[5] = {0};
|
||||
vector_trim(me);
|
||||
vector_reserve(me, 3);
|
||||
for (int i = 0; i < 7; i++) {
|
||||
for (i = 0; i < 7; i++) {
|
||||
vector_remove_last(me);
|
||||
}
|
||||
vector_copy_to_array(trimmed, me);
|
||||
assert(vector_size(me) == 3);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (i = 0; i < 3; i++) {
|
||||
assert(10 - i == trimmed[i]);
|
||||
}
|
||||
int add = 3;
|
||||
@@ -169,7 +174,7 @@ void test_vector(void)
|
||||
assert(vector_remove_at(me, -1) == -EINVAL);
|
||||
assert(vector_add_at(me, -1, &set) == -EINVAL);
|
||||
vector_clear(me);
|
||||
for (int i = 0; i < 32; i++) {
|
||||
for (i = 0; i < 32; i++) {
|
||||
vector_add_last(me, &i);
|
||||
}
|
||||
vector_clear(me);
|
||||
|
||||
Reference in New Issue
Block a user