1open testutils
2open ratLib ratReduce
3
4fun mkt s c (t1, t2) i =
5  (s ^ "(" ^ StringCvt.padLeft #"0" 2 (Int.toString i) ^ ")", c, t1, t2)
6
7val rmc = mkt "RAT_MUL_CONV" RAT_MUL_CONV
8val rac = mkt "RAT_ADD_CONV" RAT_ADD_CONV
9
10val _ = Lib.appi (fn i => fn p => convtest (rmc p i)) [
11  (���2q * 3���,        ���6q���),
12  (���2q * -3���,       ���-6q���),
13  (���-2q * 3���,       ���-6q���),
14  (���-2q * -3���,      ���6q���),
15  (���2q/3 * 10���,     ���20q/3���),
16  (���2q/3 * -10���,    ���-20q/3���),
17  (���2q/3 * 9���,      ���6q���),
18  (���2q/3 * -9���,     ���-6q���),
19  (���2q/3 * -9���,     ���-6q���),
20  (���2q/3 * (3/4)���,  ���1q/2���),
21  (���2q/-3 * (3/4)���, ���-1q/2���),
22  (���2q/-3 * 0���,     ���0q���)
23]
24
25val _ = Lib.appi (fn i => fn p => convtest (rac p i)) [
26  (���1q + 2���,       ���3q���),
27  (���1q + -2���,      ���-1q���),
28  (���-1q + 2���,      ���1q���),
29  (���-1q + -2���,      ���-3q���),
30  (���1q + 2/3���,     ���5/3q���),
31  (���1q + -2/3���,    ���1/3q���),
32  (���-1q + 2/3���,    ���-1/3q���),
33  (���-1q + -2/3���,    ���-5/3q���),
34  (���2/3q + 4���,     ���14/3q���),
35  (���2/3q + -4/6���,  ���0q���)
36]
37