1 | LIB "tst.lib"; tst_init(); |
---|
2 | bigint(5)*2, bigint(2)^100-10; |
---|
3 | bigint(-5) div 2, bigint(-5) mod 2; |
---|
4 | |
---|
5 | proc check_divmod(bigint a, bigint b) |
---|
6 | { |
---|
7 | if ((a div b)*b+(a mod b)==a) |
---|
8 | { |
---|
9 | "sum okay"; |
---|
10 | } |
---|
11 | else |
---|
12 | { |
---|
13 | "div:",a div b; |
---|
14 | "mod:",a mod b; |
---|
15 | "sum:",(a div b)*b+(a mod b)," a:",a," b:",b; |
---|
16 | } |
---|
17 | if((a mod b)>=0) {"sign okay";} |
---|
18 | else { "a mod b:",a mod b; } |
---|
19 | } |
---|
20 | // small-small |
---|
21 | check_divmod(7,3); |
---|
22 | check_divmod(7,-3); |
---|
23 | check_divmod(-7,-3); |
---|
24 | check_divmod(-7,3); |
---|
25 | // small -large |
---|
26 | check_divmod(7,30000000000); |
---|
27 | check_divmod(7,-30000000000); |
---|
28 | check_divmod(-7,-30000000000); |
---|
29 | check_divmod(-7,30000000000); |
---|
30 | // large-small |
---|
31 | check_divmod(70000000000,3); |
---|
32 | check_divmod(70000000000,-3); |
---|
33 | check_divmod(-70000000000,-3); |
---|
34 | check_divmod(-70000000000,3); |
---|
35 | // large-large |
---|
36 | check_divmod(70000000000,30000000000); |
---|
37 | check_divmod(70000000000,-30000000000); |
---|
38 | check_divmod(-70000000000,-30000000000); |
---|
39 | check_divmod(-70000000000,30000000000); |
---|
40 | tst_status(1);$ |
---|