aboutsummaryrefslogtreecommitdiffstats
path: root/tests/binary_search.c
blob: e3a973b315bb0f68403c7698e485f0e6200cfbab (plain)
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
#define CONTAINER_IMPLEMENTATION
#include "../include/container.h"

#define prints(el) \
	do {printf("search %i: %s\n", el, (array_binary_search(array, &el, __default_int_cmp)) ? "true" : "false");} while(0)

int main() {
	int data[] = {9, 5, 2, 7, 6, 10, 5, 9, 7}; // no 8 there
	int* array = array_new(int, sizeof(data)/sizeof(data[0]));
	memcpy(array, data, sizeof(data));
	array_qsort_integral(array);
	int minusten = -10;
	int two = 2;
	int eight = 8;
	int five = 5;
	int ten = 10;
	int sixtynine = 69;
	prints(minusten);
	prints(two);
	prints(five);
	prints(eight);
	prints(ten);
	prints(sixtynine);
	if (array_binary_search(array, &minusten, __default_int_cmp) == 1 ||
	    array_binary_search(array, &two, __default_int_cmp) == 0 	||
	    array_binary_search(array, &eight, __default_int_cmp) == 1 	|| 
	    array_binary_search(array, &five, __default_int_cmp) == 0 	||
	    array_binary_search(array, &ten, __default_int_cmp) == 0 	||
	    array_binary_search(array, &sixtynine, __default_int_cmp) == 1 ) {
		return EXIT_FAILURE;
	} 
	return EXIT_SUCCESS;
}