/* See LICENSE file for copyright and license details. */ #include "common.h" #ifndef TEST int doublepcmp(const void *avp, const void *bvp) { const double *ap = avp; const double *bp = bvp; return (*ap > *bp) - (*ap < *bp); } #else int main(void) { double a, b; a = 1.0, b = 1.0; ASSERT(doublepcmp(&a, &b) == 0); ASSERT(doublepcmp(&b, &a) == -doublepcmp(&a, &b)); a = -1.0, b = 1.0; ASSERT(doublepcmp(&a, &b) == -1); ASSERT(doublepcmp(&b, &a) == -doublepcmp(&a, &b)); a = 1.0, b = -1.0; ASSERT(doublepcmp(&a, &b) == +1); ASSERT(doublepcmp(&b, &a) == -doublepcmp(&a, &b)); a = 0.0, b = 0.0; ASSERT(doublepcmp(&a, &b) == 0); ASSERT(doublepcmp(&b, &a) == -doublepcmp(&a, &b)); a = -1.0, b = 2.5; ASSERT(doublepcmp(&a, &b) == -1); ASSERT(doublepcmp(&b, &a) == -doublepcmp(&a, &b)); a = 1.0, b = -2.5; ASSERT(doublepcmp(&a, &b) == +1); ASSERT(doublepcmp(&b, &a) == -doublepcmp(&a, &b)); return 0; } #endif