File: test_vec.c

package info (click to toggle)
siridb-server 2.0.53-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,612 kB
  • sloc: ansic: 47,501; python: 6,263; sh: 254; makefile: 149
file content (78 lines) | stat: -rw-r--r-- 1,514 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "../test.h"
#include <vec/vec.h>

const unsigned int num_entries = 14;
char * entries[] = {
    "Zero",
    "First entry",
    "Second entry",
    "Third entry",
    "Fourth entry",
    "Fifth entry",
    "Sixth entry",
    "Seventh entry",
    "8",
    "9",
    "entry 10",
    "entry 11",
    "entry 12",
    "entry-last"
};

int main()
{
    test_start("vec");

    /* vec_append_safe */
    {
        vec_t * vec = vec_new(0);
        _assert (vec->len == 0);
        _assert (vec->size == 0);

        unsigned int i;
        for (i = 0; i < num_entries; i++)
        {
            _assert (vec_append_safe(&vec, entries[i]) == 0);
        }

        /* vec_copy */
        {
            vec_t * veccp = vec_copy(vec);
            unsigned int i;
            for (i = 0; i < num_entries; i++)
            {
                _assert (veccp->data[i] == entries[i]);
            }
            vec_free(veccp);
        }

        _assert (vec->len == num_entries);
        vec_free(vec);
    }

    /* vec_append */
    {
        vec_t * vec = vec_new(num_entries);
        _assert (vec->len == 0);
        _assert (vec->size == num_entries);

        unsigned int i;
        for (i = 0; i < num_entries; i++)
        {
            vec_append(vec, entries[i]);
        }

        _assert (vec->len == num_entries);

        /* vec_pop */
        for (i = num_entries; i-- > 0;)
        {
            _assert (vec_pop(vec) == entries[i]);
        }

        vec_free(vec);
    }


    return test_end();
}