main
1#define NOTLIBC_NOMAIN
2#include "notlibc.c"
3
4s8 _u32_cmp( const void *n1, const void *n2 ) {
5 const u32 *a = n1;
6 const u32 *b = n2;
7 if( *a == *b ) return 0;
8 if( *a > *b ) return 1; else return -1;
9}
10
11void PRESERVE_WITH_LTO entry(void) {
12
13 u32 arr0[] = { 1, 4, 7, 12 };
14
15 Status s = S_SUCCESS;
16
17 u32 el = 1;
18 usize i = algo_binary_search( &s, &el, sizeof(arr0[0]), &arr0[0], 4, _u32_cmp );
19 assert( i == 0 );
20 assert( S_SUCCESSFUL(s) );
21
22 el = 4;
23 i = algo_binary_search( &s, &el, sizeof(arr0[0]), &arr0[0], 4, _u32_cmp );
24 assert( i == 1 );
25 assert( S_SUCCESSFUL(s) );
26
27 el = 7;
28 i = algo_binary_search( &s, &el, sizeof(arr0[0]), &arr0[0], 4, _u32_cmp );
29 assert( i == 2 );
30 assert( S_SUCCESSFUL(s) );
31
32 el = 12;
33 i = algo_binary_search( &s, &el, sizeof(arr0[0]), &arr0[0], 4, _u32_cmp );
34 assert( i == 3 );
35 assert( S_SUCCESSFUL(s) );
36
37 el = 3;
38 i = algo_binary_search( &s, &el, sizeof(arr0[0]), &arr0[0], 4, _u32_cmp );
39 assert( i == 1 );
40 assert( S_COMPLETED(s) );
41 s = S_SUCCESS;
42
43 el = 6;
44 i = algo_binary_search( &s, &el, sizeof(arr0[0]), &arr0[0], 4, _u32_cmp );
45 assert( i == 2 );
46 assert( S_COMPLETED(s) );
47 s = S_SUCCESS;
48
49 el = 0;
50 i = algo_binary_search( &s, &el, sizeof(arr0[0]), arr0, 4, _u32_cmp );
51 assert( i == 0 );
52 assert( S_COMPLETED(s) );
53 s = S_SUCCESS;
54
55 el = 13;
56 i = algo_binary_search( &s, &el, sizeof(arr0[0]), arr0, 4, _u32_cmp );
57 assert( i == 4 );
58 assert( S_COMPLETED(s) );
59 s = S_SUCCESS;
60
61 el = 5;
62 i = algo_binary_search( &s, &el, sizeof(arr0[0]), arr0, 0, _u32_cmp );
63 assert( i == 0 );
64 assert( S_COMPLETED(s) );
65 s = S_SUCCESS;
66
67 u32 sarr[] = { 42 };
68
69 el = 42;
70 i = algo_binary_search( &s, &el, sizeof(sarr[0]), sarr, 1, _u32_cmp );
71 assert( i == 0 );
72 assert( S_SUCCESSFUL(s) );
73 s = S_SUCCESS;
74
75 el = 45;
76 i = algo_binary_search( &s, &el, sizeof(sarr[0]), sarr, 1, _u32_cmp );
77 assert( i == 1 );
78 assert( S_COMPLETED(s) );
79 s = S_SUCCESS;
80
81 el = 32;
82 i = algo_binary_search( &s, &el, sizeof(sarr[0]), sarr, 1, _u32_cmp );
83 assert( i == 0 );
84 assert( S_COMPLETED(s) );
85 s = S_SUCCESS;
86
87 terminate(0);
88}