#ifdef TEST
#include <_PDCLIB_test.h>
+#ifndef _PDCLIB_CONFIG_H
+#include <_PDCLIB_config.h>
+#endif
+
int main()
{
- int NO_TESTDRIVER = 0;
+ div_t idiv;
BEGIN_TESTS;
- TESTCASE( NO_TESTDRIVER );
+ idiv = div( 5, 2 );
+ TESTCASE( idiv.quot == 2 && idiv.rem == 1 );
+ idiv = div( -5, 2 );
+ TESTCASE( idiv.quot == -2 && idiv.rem == -1 );
+ idiv = div( 5, -2 );
+ TESTCASE( idiv.quot == -2 && idiv.rem == 1 );
+ TESTCASE( sizeof( idiv.quot ) == _PDCLIB_INT_BYTES );
+ TESTCASE( sizeof( idiv.rem ) == _PDCLIB_INT_BYTES );
return TEST_RESULTS;
}
/* Release $Name$ */
-/* ldiv( int, int )
+/* ldiv( long int, long int )
This file is part of the Public Domain C Library (PDCLib).
Permission is granted to use, modify, and / or redistribute at will.
ldiv_t rc;
rc.quot = numer / denom;
rc.rem = numer % denom;
- /* TODO: pre-C99 compilers might require modulus correction */
+ /* TODO: pre-C99 compilers might require modulus corrections */
return rc;
}
#ifdef TEST
#include <_PDCLIB_test.h>
+#ifndef _PDCLIB_CONFIG_H
+#include <_PDCLIB_config.h>
+#endif
+
int main()
{
- int NO_TESTDRIVER = 0;
+ ldiv_t div;
BEGIN_TESTS;
- TESTCASE( NO_TESTDRIVER );
+ div = ldiv( 5, 2 );
+ TESTCASE( div.quot == 2 && div.rem == 1 );
+ div = ldiv( -5, 2 );
+ TESTCASE( div.quot == -2 && div.rem == -1 );
+ div = ldiv( 5, -2 );
+ TESTCASE( div.quot == -2 && div.rem == 1 );
+ TESTCASE( sizeof( div.quot ) == _PDCLIB_LONG_BYTES );
+ TESTCASE( sizeof( div.rem ) == _PDCLIB_LONG_BYTES );
return TEST_RESULTS;
}
lldiv_t rc;
rc.quot = numer / denom;
rc.rem = numer % denom;
- /* TODO */
+ /* TODO: pre-C99 compilers might require modulus corrections */
return rc;
}
#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;
}