Ken Thompson | c4de249 | 2009-05-05 21:19:58 -0700 | [diff] [blame^] | 1 | // $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 | |
| 7 | package main |
| 8 | |
| 9 | const |
| 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 | |
| 27 | func |
| 28 | main() |
| 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 | } |