0032-dc.sh (3064B)
1 #!/bin/sh 2 3 tmp=$$.tmp 4 5 trap 'rm -f $tmp' EXIT 6 trap 'exit $?' HUP INT TERM 7 8 # Test ~ command: divmod (pushes quotient then remainder, remainder on top) 9 # Output format: each ~ produces two lines: remainder (top), then quotient 10 # Note: ~ now uses divscale like / and %, so results should match 11 cat <<EOF >$tmp 12 test 1: 13 0 14 3 15 test 2: 16 1 17 3 18 test 3: 19 1 20 2 21 test 4: 22 1 23 3 24 test 5: 25 2 26 14 27 test 6: 28 0 29 10 30 test 7: 31 1 32 33 33 test 8: 34 0 35 3 36 test 9: 37 2 38 3 39 test 10: 40 0 41 0 42 test 11: 43 0 44 1 45 test 12: 46 3 47 0 48 test 13: 49 0 50 1 51 test 14: 52 1 53 0 54 test 15: 55 1 56 0 57 test 16: 58 1 59 0 60 test 17: 61 0 62 5 63 test 18: 64 0 65 100 66 test 19: 67 99 68 0 69 test 20: 70 0 71 -3 72 test 21: 73 0 74 -3 75 test 22: 76 0 77 3 78 test 23: 79 -1 80 -2 81 test 24: 82 1 83 -2 84 test 25: 85 -1 86 2 87 test 26: 88 -1 89 -3 90 test 27: 91 1 92 -3 93 test 28: 94 -1 95 3 96 test 29: 97 0 98 -10 99 test 30: 100 0 101 -10 102 test 31: 103 0 104 10 105 test 32: 106 0 107 -5 108 test 33: 109 0 110 -5 111 test 34: 112 0 113 5 114 test 35: 115 0 116 0 117 test 36: 118 1 119 1 120 test 37: 121 789 122 123456 123 test 38: 124 4 125 14285714285 126 test 39: 127 0 128 1371742100137174210 129 test 40: 130 1 131 49999999999999999999 132 test 41: 133 0 134 33333333333333333333 135 test 42: 136 1 137 1 138 test 43: 139 0 140 1 141 test 44: 142 0 143 3 144 test 45: 145 0 146 3 147 test 46: 148 1.5 149 3 150 test 47: 151 0 152 3 153 test 48: 154 1.5 155 2 156 test 49: 157 0 158 1 159 test 50: 160 0 161 5 162 test 51: 163 0 164 -3 165 test 52: 166 0 167 -3 168 test 53: 169 0 170 3 171 test 54: 172 0 173 -3 174 test 55: 175 0 176 -3 177 test 56: 178 0 179 3 180 test 57: 181 0 182 1 183 test 58: 184 .001 185 3 186 test 59: 187 .01 188 3 189 test 60: 190 0 191 20 192 test 61: 193 .5 194 0 195 test 62: 196 0 197 1000 198 test 63: 199 0 200 4 201 test 64: 202 0 203 4 204 test 65: 205 0 206 16 207 test 66: 208 15 209 15 210 test 67: 211 1 212 16 213 test 68: 214 0 215 32 216 EOF 217 218 $EXEC ../dc <<EOF | diff -u $tmp - 219 [test 1:]pc 6 2~f c 220 [test 2:]pc 7 2~f c 221 [test 3:]pc 7 3~f c 222 [test 4:]pc 10 3~f c 223 [test 5:]pc 100 7~f c 224 [test 6:]pc 100 10~f c 225 [test 7:]pc 100 3~f c 226 [test 8:]pc 15 5~f c 227 [test 9:]pc 17 5~f c 228 [test 10:]pc 0 5~f c 229 [test 11:]pc 5 5~f c 230 [test 12:]pc 3 7~f c 231 [test 13:]pc 1 1~f c 232 [test 14:]pc 1 2~f c 233 [test 15:]pc 1 5~f c 234 [test 16:]pc 1 10~f c 235 [test 17:]pc 5 1~f c 236 [test 18:]pc 100 1~f c 237 [test 19:]pc 99 100~f c 238 [test 20:]pc _6 2~f c 239 [test 21:]pc 6 _2~f c 240 [test 22:]pc _6 _2~f c 241 [test 23:]pc _7 3~f c 242 [test 24:]pc 7 _3~f c 243 [test 25:]pc _7 _3~f c 244 [test 26:]pc _10 3~f c 245 [test 27:]pc 10 _3~f c 246 [test 28:]pc _10 _3~f c 247 [test 29:]pc _100 10~f c 248 [test 30:]pc 100 _10~f c 249 [test 31:]pc _100 _10~f c 250 [test 32:]pc _5 1~f c 251 [test 33:]pc 5 _1~f c 252 [test 34:]pc _5 _1~f c 253 [test 35:]pc 0 _5~f c 254 [test 36:]pc 1000000 999999~f c 255 [test 37:]pc 123456789 1000~f c 256 [test 38:]pc 99999999999 7~f c 257 [test 39:]pc 12345678901234567890 9~f c 258 [test 40:]pc 99999999999999999999 2~f c 259 [test 41:]pc 99999999999999999999 3~f c 260 [test 42:]pc 99999999999999999999 99999999999999999998~f c 261 [test 43:]pc 99999999999999999999 99999999999999999999~f c 262 [test 44:]pc 7.5 2.5~f c 263 [test 45:]pc 1.5 .5~f c 264 [test 46:]pc 10.5 3~f c 265 [test 47:]pc 4.5 1.5~f c 266 [test 48:]pc 7.5 3~f c 267 [test 49:]pc .5 .5~f c 268 [test 50:]pc 2.5 .5~f c 269 [test 51:]pc _7.5 2.5~f c 270 [test 52:]pc 7.5 _2.5~f c 271 [test 53:]pc _7.5 _2.5~f c 272 [test 54:]pc _1.5 .5~f c 273 [test 55:]pc 1.5 _.5~f c 274 [test 56:]pc _1.5 _.5~f c 275 [test 57:]pc .001 .001~f c 276 [test 58:]pc .01 .003~f c 277 [test 59:]pc .1 .03~f c 278 [test 60:]pc 10 .5~f c 279 [test 61:]pc .5 10~f c 280 [test 62:]pc 100 .1~f c 281 [test 63:]pc 8 2~f c 282 [test 64:]pc 16 4~f c 283 [test 65:]pc 256 16~f c 284 [test 66:]pc 255 16~f c 285 [test 67:]pc 257 16~f c 286 [test 68:]pc 1024 32~f c 287 EOF