X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=functions%2Fstdlib%2Flldiv.c;h=358b2881e287c46c77153d25fa0547d27c058c61;hp=349ff2b0a8b78fa5173100e1a43db79e169c4b7e;hb=3c50a3f497bc07f023be71045f5792e0d82c951f;hpb=2a3d817da74fcd2ad18b6747f9e8bef8883ad49c diff --git a/functions/stdlib/lldiv.c b/functions/stdlib/lldiv.c index 349ff2b..358b288 100644 --- a/functions/stdlib/lldiv.c +++ b/functions/stdlib/lldiv.c @@ -17,7 +17,7 @@ lldiv_t lldiv( long long int numer, long long int denom ) lldiv_t rc; rc.quot = numer / denom; rc.rem = numer % denom; - /* TODO */ + /* TODO: pre-C99 compilers might require modulus corrections */ return rc; } @@ -26,11 +26,22 @@ lldiv_t lldiv( long long int numer, long long int denom ) #ifdef TEST #include <_PDCLIB_test.h> +#ifndef _PDCLIB_CONFIG_H +#include <_PDCLIB_config.h> +#endif + int main() { - int NO_TESTDRIVER = 0; + lldiv_t div; BEGIN_TESTS; - TESTCASE( NO_TESTDRIVER ); + div = lldiv( 5, 2 ); + TESTCASE( div.quot == 2 && div.rem == 1 ); + div = lldiv( -5, 2 ); + TESTCASE( div.quot == -2 && div.rem == -1 ); + div = lldiv( 5, -2 ); + TESTCASE( div.quot == -2 && div.rem == 1 ); + TESTCASE( sizeof( div.quot ) == _PDCLIB_LLONG_BYTES ); + TESTCASE( sizeof( div.rem ) == _PDCLIB_LLONG_BYTES ); return TEST_RESULTS; }