File: div-test.c

package info (click to toggle)
cc65 2.19-2
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 20,268 kB
  • sloc: ansic: 117,151; asm: 66,339; pascal: 4,248; makefile: 1,009; perl: 607
file content (45 lines) | stat: -rw-r--r-- 974 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* div-test.c
**
** This program tests the division and modulo operators
** and the div() library function.
*/

#include <cc65.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>

static bool test (int dividend, int divisor)
{
    div_t result;

    result = div (dividend, divisor);
    printf ("%+d/%+d= %+d, %+d%%%+d= %+d, div()= %+d, %+d\n",
            dividend, divisor, dividend / divisor,
            dividend, divisor, dividend % divisor,
            result.quot, result.rem);

    return result.quot * divisor + result.rem != dividend;
}

int main (void)
{
    bool t;

    printf ("\nTest of division and modulus operations:\n\n");

    t = test (+40, +3) ||
        test (+40, -3) ||
        test (-40, +3) ||
        test (-40, -3);
    if (t) {
        printf ("\nThe div() function made a wrong result!\n");
    }

    if (doesclrscrafterexit ()) {
        printf ("\nTap the Return key to quit. ");
        getchar ();
    }

    return (int)t;
}