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}