1#include <assert.h>2#include <inttypes.h>3#include <stdio.h>4#include <stdlib.h>56/*7output:8testing9test110test211test312test413done14end:15*/1617static void18test1(void)19{20 div_t d;2122 puts("test1");2324 d = div(8, 4);25 assert(d.quot == 2 && d.rem == 0);2627 d = div(-10, 3);28 assert(d.quot == -3 && d.rem == -1);2930 d = div(10, -3);31 assert(d.quot == -3 && d.rem == 1);3233 d = div(-11, -3);34 assert(d.quot == 3 && d.rem == -2);35}3637static void38test2(void)39{40 ldiv_t ld;4142 puts("test2");4344 ld = ldiv(8, 4);45 assert(ld.quot == 2 && ld.rem == 0);464748 ld = ldiv(-10, 3);49 assert(ld.quot == -3 && ld.rem == -1);5051 ld = ldiv(10, -3);52 assert(ld.quot == -3 && ld.rem == 1);5354 ld = ldiv(-11, -3);55 assert(ld.quot == 3 && ld.rem == -2);56}5758static void59test3(void)60{61 lldiv_t lld;6263 puts("test3");6465 lld = lldiv(8, 4);66 assert(lld.quot == 2 && lld.rem == 0);676869 lld = lldiv(-10, 3);70 assert(lld.quot == -3 && lld.rem == -1);7172 lld = lldiv(10, -3);73 assert(lld.quot == -3 && lld.rem == 1);7475 lld = lldiv(-11, -3);76 assert(lld.quot == 3 && lld.rem == -2);77}7879static void80test4(void)81{82 imaxdiv_t md;8384 puts("test4");8586 md = imaxdiv(8, 4);87 assert(md.quot == 2 && md.rem == 0);8889 md = imaxdiv(-10, 3);90 assert(md.quot == -3 && md.rem == -1);9192 md = imaxdiv(10, -3);93 assert(md.quot == -3 && md.rem == 1);9495 md = imaxdiv(-11, -3);96 assert(md.quot == 3 && md.rem == -2);97}9899int100main(void)101{102 puts("testing");103 test1();104 test2();105 test3();106 test4();107 puts("done");108}