Initial import to Tizen
[profile/ivi/sphinxbase.git] / test / unit / test_bitvec / test_bitvec.c
1 #include <stdio.h>
2 #include <time.h>
3
4 #include "bitvec.h"
5 #include "test_macros.h"
6
7 int
8 main(int argc, char *argv[])
9 {
10         bitvec_t *bv;
11         int i, j;
12         clock_t c;
13
14         TEST_ASSERT(bv = bitvec_alloc(199));
15         bitvec_set(bv,198);
16         bitvec_set(bv,0);
17         bitvec_set(bv,42);
18         bitvec_set(bv,43);
19         bitvec_set(bv,44);
20         TEST_ASSERT(bitvec_is_set(bv,198));
21         TEST_ASSERT(bitvec_is_set(bv,0));
22         TEST_ASSERT(bitvec_is_set(bv,42));
23         TEST_ASSERT(bitvec_is_set(bv,43));
24         TEST_ASSERT(bitvec_is_set(bv,44));
25         TEST_EQUAL(5, bitvec_count_set(bv, 199));
26         bitvec_clear(bv, 43);
27         TEST_EQUAL(0, bitvec_is_set(bv,43));
28
29         c = clock();
30         for (j = 0; j < 1000000; ++j)
31                 bitvec_count_set(bv, 199);
32         c = clock() - c;
33         printf("1000000 * 199 bitvec_count_set in %.2f sec\n",
34                (double)c / CLOCKS_PER_SEC);
35         bitvec_free(bv);
36
37         bv = bitvec_alloc(1314);
38         c = clock();
39         for (j = 0; j < 50000; ++j)
40                 for (i = 0; i < 1314; ++i)
41                         bitvec_set(bv, i);
42         c = clock() - c;
43         printf("50000 * 1314 bitvec_set in %.2f sec\n",
44                (double)c / CLOCKS_PER_SEC);
45         bitvec_free(bv);
46
47         return 0;
48 }