/** * test3.c - A slightly more systematic test of the binary_search routine. */ #include "bs.h" #include #include #define MAX_SIZE 33 int errors = 0; void check (int value, int values[], int size, int expected) { int result = binary_search (value, values, size); if (result != expected) { printf ("In searching for %d in the size %d array, " "expected %d, got %d.\n", value, size, expected, result); ++errors; } } int main () { int i; int size; int values[MAX_SIZE]; // Fill values for (i = 0; i < MAX_SIZE; i++) values[i] = 2 * i; for (size = 0; size < MAX_SIZE; size++) { check (-1, values, size, -1); for (i = 0; i < size; i++) { check (2*i, values, size, i); check (2*i+1, values, size, -1); } } // for size if (errors) return EXIT_FAILURE; else return EXIT_SUCCESS; } // main