]>
Commit | Line | Data |
---|---|---|
6fc5a581 RB |
1 | #include "clar_libgit2.h" |
2 | #include "bitvec.h" | |
3 | ||
4 | #if 0 | |
5 | static void print_bitvec(git_bitvec *bv) | |
6 | { | |
7 | int b; | |
8 | ||
9 | if (!bv->length) { | |
10 | for (b = 63; b >= 0; --b) | |
11 | fprintf(stderr, "%d", (bv->u.bits & (1ul << b)) ? 1 : 0); | |
12 | } else { | |
13 | for (b = bv->length * 8; b >= 0; --b) | |
14 | fprintf(stderr, "%d", (bv->u.ptr[b >> 3] & (b & 0x0ff)) ? 1 : 0); | |
15 | } | |
16 | fprintf(stderr, "\n"); | |
17 | } | |
18 | #endif | |
19 | ||
20 | static void set_some_bits(git_bitvec *bv, size_t length) | |
21 | { | |
22 | size_t i; | |
23 | ||
24 | for (i = 0; i < length; ++i) { | |
25 | if (i % 3 == 0 || i % 7 == 0) | |
26 | git_bitvec_set(bv, i, true); | |
27 | } | |
28 | } | |
29 | ||
30 | static void check_some_bits(git_bitvec *bv, size_t length) | |
31 | { | |
32 | size_t i; | |
33 | ||
34 | for (i = 0; i < length; ++i) | |
35 | cl_assert_equal_b(i % 3 == 0 || i % 7 == 0, git_bitvec_get(bv, i)); | |
36 | } | |
37 | ||
38 | void test_core_bitvec__0(void) | |
39 | { | |
40 | git_bitvec bv; | |
41 | ||
42 | cl_git_pass(git_bitvec_init(&bv, 32)); | |
43 | set_some_bits(&bv, 16); | |
44 | check_some_bits(&bv, 16); | |
45 | git_bitvec_clear(&bv); | |
46 | set_some_bits(&bv, 32); | |
47 | check_some_bits(&bv, 32); | |
48 | git_bitvec_clear(&bv); | |
49 | set_some_bits(&bv, 64); | |
50 | check_some_bits(&bv, 64); | |
51 | git_bitvec_free(&bv); | |
52 | ||
53 | cl_git_pass(git_bitvec_init(&bv, 128)); | |
54 | set_some_bits(&bv, 32); | |
55 | check_some_bits(&bv, 32); | |
56 | set_some_bits(&bv, 128); | |
57 | check_some_bits(&bv, 128); | |
58 | git_bitvec_free(&bv); | |
59 | ||
60 | cl_git_pass(git_bitvec_init(&bv, 4000)); | |
61 | set_some_bits(&bv, 4000); | |
62 | check_some_bits(&bv, 4000); | |
63 | git_bitvec_free(&bv); | |
64 | } |