Source file
test/ken/divmod.go
1
2
3
4
5
6
7
8
9 package main
10
11 const (
12
13 n1 = +5
14 n2 = -5
15 d1 = +3
16 d2 = -3
17
18 q1 = +1
19 q2 = -1
20 q3 = -1
21 q4 = +1
22
23 r1 = +2
24 r2 = -2
25 r3 = +2
26 r4 = -2
27 )
28
29 func main() {
30
31 if n1/d1 != q1 || n1%d1 != r1 {
32 println("ideal-1", n1, d1, n1/d1, n1%d1)
33 panic("fail")
34 }
35 if n2/d1 != q2 || n2%d1 != r2 {
36 println("ideal-2", n2, d1, n2/d1, n2%d1)
37 panic("fail")
38 }
39 if n1/d2 != q3 || n1%d2 != r3 {
40 println("ideal-3", n1, d2, n1/d2, n1%d2)
41 panic("fail")
42 }
43 if n2/d2 != q4 || n2%d2 != r4 {
44 println("ideal-4", n2, d2, n2/d2, n2%d2)
45 panic("fail")
46 }
47
48
49 var in1 int = +5
50 var in2 int = -5
51 var id1 int = +3
52 var id2 int = -3
53
54 if in1/id1 != q1 || in1%id1 != r1 {
55 println("int-1", in1, id1, in1/id1, in1%id1)
56 panic("fail")
57 }
58 if in2/id1 != q2 || in2%id1 != r2 {
59 println("int-2", in2, id1, in2/id1, in2%id1)
60 panic("fail")
61 }
62 if in1/id2 != q3 || in1%id2 != r3 {
63 println("int-3", in1, id2, in1/id2, in1%id2)
64 panic("fail")
65 }
66 if in2/id2 != q4 || in2%id2 != r4 {
67 println("int-4", in2, id2, in2/id2, in2%id2)
68 panic("fail")
69 }
70
71
72 var bn1 int8 = +5
73 var bn2 int8 = -5
74 var bd1 int8 = +3
75 var bd2 int8 = -3
76
77 if bn1/bd1 != q1 || bn1%bd1 != r1 {
78 println("int8-1", bn1, bd1, bn1/bd1, bn1%bd1)
79 panic("fail")
80 }
81 if bn2/bd1 != q2 || bn2%bd1 != r2 {
82 println("int8-2", bn2, bd1, bn2/bd1, bn2%bd1)
83 panic("fail")
84 }
85 if bn1/bd2 != q3 || bn1%bd2 != r3 {
86 println("int8-3", bn1, bd2, bn1/bd2, bn1%bd2)
87 panic("fail")
88 }
89 if bn2/bd2 != q4 || bn2%bd2 != r4 {
90 println("int8-4", bn2, bd2, bn2/bd2, bn2%bd2)
91 panic("fail")
92 }
93
94
95 var sn1 int16 = +5
96 var sn2 int16 = -5
97 var sd1 int16 = +3
98 var sd2 int16 = -3
99
100 if sn1/sd1 != q1 || sn1%sd1 != r1 {
101 println("int16-1", sn1, sd1, sn1/sd1, sn1%sd1)
102 panic("fail")
103 }
104 if sn2/sd1 != q2 || sn2%sd1 != r2 {
105 println("int16-2", sn2, sd1, sn2/sd1, sn2%sd1)
106 panic("fail")
107 }
108 if sn1/sd2 != q3 || sn1%sd2 != r3 {
109 println("int16-3", sn1, sd2, sn1/sd2, sn1%sd2)
110 panic("fail")
111 }
112 if sn2/sd2 != q4 || sn2%sd2 != r4 {
113 println("int16-4", sn2, sd2, sn2/sd2, sn2%sd2)
114 panic("fail")
115 }
116
117
118 var ln1 int32 = +5
119 var ln2 int32 = -5
120 var ld1 int32 = +3
121 var ld2 int32 = -3
122
123 if ln1/ld1 != q1 || ln1%ld1 != r1 {
124 println("int32-1", ln1, ld1, ln1/ld1, ln1%ld1)
125 panic("fail")
126 }
127 if ln2/ld1 != q2 || ln2%ld1 != r2 {
128 println("int32-2", ln2, ld1, ln2/ld1, ln2%ld1)
129 panic("fail")
130 }
131 if ln1/ld2 != q3 || ln1%ld2 != r3 {
132 println("int32-3", ln1, ld2, ln1/ld2, ln1%ld2)
133 panic("fail")
134 }
135 if ln2/ld2 != q4 || ln2%ld2 != r4 {
136 println("int32-4", ln2, ld2, ln2/ld2, ln2%ld2)
137 panic("fail")
138 }
139
140
141 var qn1 int64 = +5
142 var qn2 int64 = -5
143 var qd1 int64 = +3
144 var qd2 int64 = -3
145
146 if qn1/qd1 != q1 || qn1%qd1 != r1 {
147 println("int64-1", qn1, qd1, qn1/qd1, qn1%qd1)
148 panic("fail")
149 }
150 if qn2/qd1 != q2 || qn2%qd1 != r2 {
151 println("int64-2", qn2, qd1, qn2/qd1, qn2%qd1)
152 panic("fail")
153 }
154 if qn1/qd2 != q3 || qn1%qd2 != r3 {
155 println("int64-3", qn1, qd2, qn1/qd2, qn1%qd2)
156 panic("fail")
157 }
158 if qn2/qd2 != q4 || qn2%qd2 != r4 {
159 println("int64-4", qn2, qd2, qn2/qd2, qn2%qd2)
160 panic("fail")
161 }
162
163 if n1/qd1 != q1 || n1%qd1 != r1 {
164 println("mixed int64-1", n1, qd1, n1/qd1, n1%qd1)
165 panic("fail")
166 }
167 if n2/qd1 != q2 || n2%qd1 != r2 {
168 println("mixed int64-2", n2, qd1, n2/qd1, n2%qd1)
169 panic("fail")
170 }
171 if n1/qd2 != q3 || n1%qd2 != r3 {
172 println("mixed int64-3", n1, qd2, n1/qd2, n1%qd2)
173 panic("fail")
174 }
175 if n2/qd2 != q4 || n2%qd2 != r4 {
176 println("mixed int64-4", n2, qd2, n2/qd2, n2%qd2)
177 panic("fail")
178 }
179
180 if qn1/d1 != q1 || qn1%d1 != r1 {
181 println("mixed int64-5", qn1, d1, qn1/d1, qn1%d1)
182 panic("fail")
183 }
184 if qn2/d1 != q2 || qn2%d1 != r2 {
185 println("mixed int64-6", qn2, d1, qn2/d1, qn2%d1)
186 panic("fail")
187 }
188 if qn1/d2 != q3 || qn1%d2 != r3 {
189 println("mixed int64-7", qn1, d2, qn1/d2, qn1%d2)
190 panic("fail")
191 }
192 if qn2/d2 != q4 || qn2%d2 != r4 {
193 println("mixed int64-8", qn2, d2, qn2/d2, qn2%d2)
194 panic("fail")
195 }
196
197
198 var uin1 uint = +5
199 var uid1 uint = +3
200
201 if uin1/uid1 != q1 || uin1%uid1 != r1 {
202 println("uint", uin1, uid1, uin1/uid1, uin1%uid1)
203 panic("fail")
204 }
205
206
207 var ubn1 uint8 = +5
208 var ubd1 uint8 = +3
209
210 if ubn1/ubd1 != q1 || ubn1%ubd1 != r1 {
211 println("uint8", ubn1, ubd1, ubn1/ubd1, ubn1%ubd1)
212 panic("fail")
213 }
214
215
216 var usn1 uint16 = +5
217 var usd1 uint16 = +3
218
219 if usn1/usd1 != q1 || usn1%usd1 != r1 {
220 println("uint16", usn1, usd1, usn1/usd1, usn1%usd1)
221 panic("fail")
222 }
223
224
225 var uln1 uint32 = +5
226 var uld1 uint32 = +3
227
228 if uln1/uld1 != q1 || uln1%uld1 != r1 {
229 println("uint32", uln1, uld1, uln1/uld1, uln1%uld1)
230 panic("fail")
231 }
232
233
234 var uqn1 uint64 = +5
235 var uqd1 uint64 = +3
236
237 if uqn1/uqd1 != q1 || uqn1%uqd1 != r1 {
238 println("uint64", uqn1, uqd1, uqn1/uqd1, uqn1%uqd1)
239 panic("fail")
240 }
241 if n1/uqd1 != q1 || n1%uqd1 != r1 {
242 println("mixed uint64-1", n1, uqd1, n1/uqd1, n1%uqd1)
243 panic("fail")
244 }
245 if uqn1/d1 != q1 || uqn1%d1 != r1 {
246 println("mixed uint64-2", uqn1, d1, uqn1/d1, uqn1%d1)
247 panic("fail")
248 }
249 }
250
View as plain text