Coverage Report

Created: 2024-04-19 06:04

/builds/xfbs/passgen/src/tests/array.c
Line
Count
Source
1
#include "passgen/container/array.h"
2
#include "tests.h"
3
#include <string.h>
4
5
1
test_result test_array_init(void) {
6
1
    size_t capacity = 15;
7
1
    passgen_array array;
8
1
    passgen_array_init(&array, capacity);
9
1
    assert_eq(array.capacity, capacity);
10
1
    assert_eq(array.items, 0);
11
1
    assert(array.data != NULL);
12
1
13
1
    passgen_array_free(&array);
14
1
15
1
    return test_ok;
16
1
}
17
18
1
test_result test_array_push(void) {
19
1
    size_t capacity = 15;
20
1
    passgen_array array;
21
1
    passgen_array_init(&array, capacity);
22
1
    assert_eq(array.capacity, capacity);
23
1
    assert_eq(array.items, 0);
24
1
    assert(array.data != NULL);
25
1
26
1
    int data1 = 7;
27
1
    passgen_array_push(&array, &data1);
28
1
    assert_eq(array.capacity, capacity);
29
1
    assert_eq(array.items, 1);
30
1
    assert_eq(array.data[0], &data1);
31
1
32
1
    int data2 = 8;
33
1
    passgen_array_push(&array, &data2);
34
1
    assert_eq(array.capacity, capacity);
35
1
    assert_eq(array.items, 2);
36
1
    assert_eq(array.data[1], &data2);
37
1
38
1
    passgen_array_free(&array);
39
1
40
1
    return test_ok;
41
1
}
42
43
1
test_result test_array_get(void) {
44
1
    size_t capacity = 15;
45
1
    passgen_array array;
46
1
    passgen_array_init(&array, capacity);
47
1
    assert_eq(array.capacity, capacity);
48
1
    assert_eq(array.items, 0);
49
1
    assert(array.data != NULL);
50
1
51
1
    int data1 = 7;
52
1
    int data2 = 7;
53
1
    int data3 = 7;
54
1
    passgen_array_push(&array, &data1);
55
1
    passgen_array_push(&array, &data2);
56
1
    passgen_array_push(&array, &data3);
57
1
58
1
    assert_eq(passgen_array_get(&array, 0), &data1);
59
1
    assert_eq(passgen_array_get(&array, 1), &data2);
60
1
    assert_eq(passgen_array_get(&array, 2), &data3);
61
1
62
1
    passgen_array_free(&array);
63
1
64
1
    return test_ok;
65
1
}
66
67
1
test_result test_array_pop(void) {
68
1
    size_t capacity = 15;
69
1
    passgen_array array;
70
1
    passgen_array_init(&array, capacity);
71
1
    assert_eq(array.capacity, capacity);
72
1
    assert_eq(array.items, 0);
73
1
    assert(array.data != NULL);
74
1
75
1
    int data1 = 7;
76
1
    int data2 = 7;
77
1
    int data3 = 7;
78
1
    passgen_array_push(&array, &data1);
79
1
    passgen_array_push(&array, &data2);
80
1
    passgen_array_push(&array, &data3);
81
1
82
1
    assert_eq(passgen_array_pop(&array), &data3);
83
1
    assert_eq(array.items, 2);
84
1
85
1
    assert_eq(passgen_array_pop(&array), &data2);
86
1
    assert_eq(array.items, 1);
87
1
88
1
    assert_eq(passgen_array_pop(&array), &data1);
89
1
    assert_eq(array.items, 0);
90
1
91
1
    assert_eq(passgen_array_pop(&array), NULL);
92
1
93
1
    passgen_array_free(&array);
94
1
95
1
    return test_ok;
96
1
}
97
98
1
test_result test_array_realloc(void) {
99
1
    size_t capacity = 15;
100
1
    passgen_array array;
101
1
    passgen_array_init(&array, capacity);
102
1
    assert_eq(array.capacity, capacity);
103
1
    assert_eq(array.items, 0);
104
1
    assert(array.data != NULL);
105
1
106
1
    int data = 7;
107
1
    passgen_array_push(&array, &data);
108
1
    assert_eq(array.capacity, capacity);
109
1
    assert_eq(array.items, 1);
110
1
    assert_eq(array.data[0], &data);
111
1
112
1
    size_t new_capacity = 1500;
113
1
    passgen_array_realloc(&array, new_capacity);
114
1
    assert_eq(array.capacity, new_capacity);
115
1
    assert_eq(array.items, 1);
116
1
    assert_eq(array.data[0], &data);
117
1
118
1
    passgen_array_free(&array);
119
1
120
1
    return test_ok;
121
1
}