]> pd.if.org Git - pdclib/blob - functions/stdlib/ldiv.c
7b9feee2028b7d7613480977a4d9590995f8add0
[pdclib] / functions / stdlib / ldiv.c
1 /* $Id$ */
2
3 /* ldiv( long int, long int )
4
5    This file is part of the Public Domain C Library (PDCLib).
6    Permission is granted to use, modify, and / or redistribute at will.
7 */
8
9 #include <stdlib.h>
10
11 #ifndef REGTEST
12
13 ldiv_t ldiv( long int numer, long int denom )
14 {
15     ldiv_t rc;
16     rc.quot = numer / denom;
17     rc.rem  = numer % denom;
18     /* TODO: pre-C99 compilers might require modulus corrections */
19     return rc;
20 }
21
22 #endif
23
24 #ifdef TEST
25 #include <_PDCLIB_test.h>
26
27 int main( void )
28 {
29     ldiv_t result;
30     result = ldiv( 5, 2 );
31     TESTCASE( result.quot == 2 && result.rem == 1 );
32     result = ldiv( -5, 2 );
33     TESTCASE( result.quot == -2 && result.rem == -1 );
34     result = ldiv( 5, -2 );
35     TESTCASE( result.quot == -2 && result.rem == 1 );
36     TESTCASE( sizeof( result.quot ) == sizeof( long ) );
37     TESTCASE( sizeof( result.rem )  == sizeof( long ) );
38     return TEST_RESULTS;
39 }
40
41 #endif