blob: a2821db29abb035fe469a5aaecf6c897a0f723c4 [file] [log] [blame]
Ken Thompsonc4de2492009-05-05 21:19:58 -07001// $G $D/$F.go && $L $F.$A && ./$A.out
2
3// Copyright 2009 The Go Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
7package main
8
9const
10(
11 n1 = +5;
12 n2 = -5;
13 d1 = +3;
14 d2 = -3;
15
16 q1 = +1;
17 q2 = -1;
18 q3 = -1;
19 q4 = +1;
20
21 r1 = +2;
22 r2 = -2;
23 r3 = +2;
24 r4 = -2;
25)
26
27func
28main()
29{
30 /* ideals */
31 if n1/d1 != q1 || n1%d1 != r1 {
32 panicln(n1, d1, n1/d1, n1%d1);
33 }
34 if n2/d1 != q2 || n2%d1 != r2 {
35 panicln(n2, d1, n2/d1, n2%d1);
36 }
37 if n1/d2 != q3 || n1%d2 != r3 {
38 panicln(n1, d2, n1/d2, n1%d2);
39 }
40 if n2/d2 != q4 || n2%d2 != r4 {
41 panicln(n2, d2, n2/d2, n2%d2);
42 }
43
44 /* int */
45 var in1 int = +5;
46 var in2 int = -5;
47 var id1 int = +3;
48 var id2 int = -3;
49
50 if in1/id1 != q1 || in1%id1 != r1 {
51 panicln(in1, id1, in1/id1, in1%id1);
52 }
53 if in2/id1 != q2 || in2%id1 != r2 {
54 panicln(in2, id1, in2/id1, in2%id1);
55 }
56 if in1/id2 != q3 || in1%id2 != r3 {
57 panicln(in1, id2, in1/id2, in1%id2);
58 }
59 if in2/id2 != q4 || in2%id2 != r4 {
60 panicln(in2, id2, in2/id2, in2%id2);
61 }
62
63 /* int8 */
64 var bn1 int8 = +5;
65 var bn2 int8 = -5;
66 var bd1 int8 = +3;
67 var bd2 int8 = -3;
68
69 if bn1/bd1 != q1 || bn1%bd1 != r1 {
70 panicln(bn1, bd1, bn1/bd1, bn1%bd1);
71 }
72 if bn2/bd1 != q2 || bn2%bd1 != r2 {
73 panicln(bn2, bd1, bn2/bd1, bn2%bd1);
74 }
75 if bn1/bd2 != q3 || bn1%bd2 != r3 {
76 panicln(bn1, bd2, bn1/bd2, bn1%bd2);
77 }
78 if bn2/bd2 != q4 || bn2%bd2 != r4 {
79 panicln(bn2, bd2, bn2/bd2, bn2%bd2);
80 }
81
82 /* int16 */
83 var sn1 int16 = +5;
84 var sn2 int16 = -5;
85 var sd1 int16 = +3;
86 var sd2 int16 = -3;
87
88 if sn1/sd1 != q1 || sn1%sd1 != r1 {
89 panicln(sn1, sd1, sn1/sd1, sn1%sd1);
90 }
91 if sn2/sd1 != q2 || sn2%sd1 != r2 {
92 panicln(sn2, sd1, sn2/sd1, sn2%sd1);
93 }
94 if sn1/sd2 != q3 || sn1%sd2 != r3 {
95 panicln(sn1, sd2, sn1/sd2, sn1%sd2);
96 }
97 if sn2/sd2 != q4 || sn2%sd2 != r4 {
98 panicln(sn2, sd2, sn2/sd2, sn2%sd2);
99 }
100
101 /* int32 */
102 var ln1 int32 = +5;
103 var ln2 int32 = -5;
104 var ld1 int32 = +3;
105 var ld2 int32 = -3;
106
107 if ln1/ld1 != q1 || ln1%ld1 != r1 {
108 panicln(ln1, ld1, ln1/ld1, ln1%ld1);
109 }
110 if ln2/ld1 != q2 || ln2%ld1 != r2 {
111 panicln(ln2, ld1, ln2/ld1, ln2%ld1);
112 }
113 if ln1/ld2 != q3 || ln1%ld2 != r3 {
114 panicln(ln1, ld2, ln1/ld2, ln1%ld2);
115 }
116 if ln2/ld2 != q4 || ln2%ld2 != r4 {
117 panicln(ln2, ld2, ln2/ld2, ln2%ld2);
118 }
119
120 /* int64 */
121 var qn1 int64 = +5;
122 var qn2 int64 = -5;
123 var qd1 int64 = +3;
124 var qd2 int64 = -3;
125
126 if qn1/qd1 != q1 || qn1%qd1 != r1 {
127 panicln(qn1, qd1, qn1/qd1, qn1%qd1);
128 }
129 if qn2/qd1 != q2 || qn2%qd1 != r2 {
130 panicln(qn2, qd1, qn2/qd1, qn2%qd1);
131 }
132 if qn1/qd2 != q3 || qn1%qd2 != r3 {
133 panicln(qn1, qd2, qn1/qd2, qn1%qd2);
134 }
135 if qn2/qd2 != q4 || qn2%qd2 != r4 {
136 panicln(qn2, qd2, qn2/qd2, qn2%qd2);
137 }
138
139 /* uint */
140 var uin1 uint = +5;
141 var uid1 uint = +3;
142
143 if uin1/uid1 != q1 || uin1%uid1 != r1 {
144 panicln(uin1, uid1, uin1/uid1, uin1%uid1);
145 }
146
147 /* uint8 */
148 var ubn1 uint8 = +5;
149 var ubd1 uint8 = +3;
150
151 if ubn1/ubd1 != q1 || ubn1%ubd1 != r1 {
152 panicln(ubn1, ubd1, ubn1/ubd1, ubn1%ubd1);
153 }
154
155 /* uint16 */
156 var usn1 uint16 = +5;
157 var usd1 uint16 = +3;
158
159 if usn1/usd1 != q1 || usn1%usd1 != r1 {
160 panicln(usn1, usd1, usn1/usd1, usn1%usd1);
161 }
162
163 /* uint32 */
164 var uln1 uint32 = +5;
165 var uld1 uint32 = +3;
166
167 if uln1/uld1 != q1 || uln1%uld1 != r1 {
168 panicln(uln1, uld1, uln1/uld1, uln1%uld1);
169 }
170
171 /* uint64 */
172 var uqn1 uint64 = +5;
173 var uqd1 uint64 = +3;
174
175 if uqn1/uqd1 != q1 || uqn1%uqd1 != r1 {
176 panicln(uqn1, uqd1, uqn1/uqd1, uqn1%uqd1);
177 }
178 if n1/uqd1 != q1 || n1%uqd1 != r1 {
179 panicln(n1, uqd1, n1/uqd1, n1%uqd1);
180 }
181 if uqn1/d1 != q1 || uqn1%d1 != r1 {
182 panicln(uqn1, d1, uqn1/d1, uqn1%d1);
183 }
184}