static void judge_unary( dec64 first, dec64 expected, dec64 actual, char * name, char * op, char * comment ) { if (dec64_is_equal(expected, actual) == DEC64_TRUE) { nr_pass += 1; if (level >= 3) { printf("\n\npass %s: %s", name, comment); printf("\n%-4s", op); print_dec64(first); printf("\n%-4s", "="); print_dec64(actual); } } else { nr_fail += 1; if (level >= 1) { printf("\n\nFAIL %s: %s", name, comment); if (level >= 2) { printf("\n%-4s", op); print_dec64(first); printf("\n%-4s", "?"); print_dec64(actual); printf(" (error "); print_dec64(dec64_subtract(actual, expected)); printf(")\n%-4s", "="); print_dec64(expected); } } } }
void test_subtract(dec64 first, dec64 second, dec64 expected, char * comment) { dec64 actual = dec64_subtract(first, second); judge_binary(first, second, expected, actual, "subtract", "-", comment); }