0030-dc.sh (3922B)
1 #!/bin/sh 2 3 tmp=$$.tmp 4 5 trap 'rm -f $tmp' EXIT 6 trap 'exit $?' HUP INT TERM 7 8 # Test / command: division 9 # Note: scale (k) persists between operations, so we reset it explicitly 10 cat <<EOF >$tmp 11 test 1: 12 3 13 test 2: 14 3 15 test 3: 16 10 17 test 4: 18 33 19 test 5: 20 -3 21 test 6: 22 -3 23 test 7: 24 3 25 test 8: 26 0 27 test 9: 28 1 29 test 10: 30 5 31 test 11: 32 0 33 test 12: 34 3.50 35 test 13: 36 .33 37 test 14: 38 .3333 39 test 15: 40 2.50 41 test 16: 42 3.14 43 test 17: 44 3.142857 45 test 18: 46 -3.50 47 test 19: 48 -3.50 49 test 20: 50 3.50 51 test 21: 52 -.33 53 test 22: 54 -.33 55 test 23: 56 .33 57 test 24: 58 3 59 test 25: 60 2 61 test 26: 62 3 63 test 27: 64 20 65 test 28: 66 0 67 test 29: 68 .05 69 test 30: 70 1000 71 test 31: 72 1000001 73 test 32: 74 1 75 test 33: 76 12345678901234567890 77 test 34: 78 .3333333333 79 test 35: 80 .6666666666 81 test 36: 82 .1428571428 83 test 37: 84 .1111111111 85 test 38: 86 .0909090909 87 test 39: 88 .5 89 test 40: 90 .500 91 test 41: 92 .50000 93 test 42: 94 .2 95 test 43: 96 .250 97 test 44: 98 .1 99 test 45: 100 .125 101 test 46: 102 -3 103 test 47: 104 -3 105 test 48: 106 3 107 test 49: 108 -2.50 109 test 50: 110 -2.50 111 test 51: 112 2.50 113 test 52: 114 1.00000000 115 test 53: 116 .00100000 117 test 54: 118 1000.00000000 119 test 55: 120 .01000000 121 test 56: 122 100.00000000 123 test 57: 124 1 125 test 58: 126 1 127 test 59: 128 -1 129 test 60: 130 -1 131 test 61: 132 0 133 test 62: 134 0 135 test 63: 136 0 137 test 64: 138 100 139 test 65: 140 -100 141 test 66: 142 -100 143 test 67: 144 100 145 test 68: 146 10 147 test 69: 148 100 149 test 70: 150 100 151 test 71: 152 1000 153 test 72: 154 0 155 test 73: 156 0 157 test 74: 158 0 159 test 75: 160 0 161 test 76: 162 0 163 test 77: 164 0 165 test 78: 166 .50 167 test 79: 168 .10 169 test 80: 170 .01 171 test 81: 172 .50 173 test 82: 174 .99 175 test 83: 176 9 177 test 84: 178 8 179 test 85: 180 7 181 test 86: 182 6 183 test 87: 184 5 185 test 88: 186 4 187 test 89: 188 3 189 test 90: 190 2 191 test 91: 192 1 193 test 92: 194 99999999999999999999 195 test 93: 196 0 197 test 94: 198 .00000000000000000001 199 EOF 200 201 $EXEC ../dc <<EOF | diff -u $tmp - 202 [test 1:]pc 0k 6 2/p 203 [test 2:]pc 0k 7 2/p 204 [test 3:]pc 0k 100 10/p 205 [test 4:]pc 0k 100 3/p 206 [test 5:]pc 0k _6 2/p 207 [test 6:]pc 0k 6 _2/p 208 [test 7:]pc 0k _6 _2/p 209 [test 8:]pc 0k 0 5/p 210 [test 9:]pc 0k 1 1/p 211 [test 10:]pc 0k 5 1/p 212 [test 11:]pc 0k 1 5/p 213 [test 12:]pc 2k 7 2/p 214 [test 13:]pc 2k 1 3/p 215 [test 14:]pc 4k 1 3/p 216 [test 15:]pc 2k 10 4/p 217 [test 16:]pc 2k 22 7/p 218 [test 17:]pc 6k 22 7/p 219 [test 18:]pc 2k _7 2/p 220 [test 19:]pc 2k 7 _2/p 221 [test 20:]pc 2k _7 _2/p 222 [test 21:]pc 2k _1 3/p 223 [test 22:]pc 2k 1 _3/p 224 [test 23:]pc 2k _1 _3/p 225 [test 24:]pc 0k 1.5 .5/p 226 [test 25:]pc 0k 3.0 1.5/p 227 [test 26:]pc 0k .75 .25/p 228 [test 27:]pc 0k 10 .5/p 229 [test 28:]pc 0k .5 10/p 230 [test 29:]pc 2k .5 10/p 231 [test 30:]pc 0k 1000000 1000/p 232 [test 31:]pc 0k 999999999999 999999/p 233 [test 32:]pc 0k 12345678901234567890 12345678901234567890/p 234 [test 33:]pc 0k 12345678901234567890 1/p 235 [test 34:]pc 10k 1 3/p 236 [test 35:]pc 10k 2 3/p 237 [test 36:]pc 10k 1 7/p 238 [test 37:]pc 10k 1 9/p 239 [test 38:]pc 10k 1 11/p 240 [test 39:]pc 1k 1 2/p 241 [test 40:]pc 3k 1 2/p 242 [test 41:]pc 5k 1 2/p 243 [test 42:]pc 1k 1 4/p 244 [test 43:]pc 3k 1 4/p 245 [test 44:]pc 1k 1 8/p 246 [test 45:]pc 3k 1 8/p 247 [test 46:]pc 0k _1.5 .5/p 248 [test 47:]pc 0k 1.5 _.5/p 249 [test 48:]pc 0k _1.5 _.5/p 250 [test 49:]pc 2k _10 4/p 251 [test 50:]pc 2k 10 _4/p 252 [test 51:]pc 2k _10 _4/p 253 [test 52:]pc 8k .001 .001/p 254 [test 53:]pc 8k .001 1/p 255 [test 54:]pc 8k 1 .001/p 256 [test 55:]pc 8k .0001 .01/p 257 [test 56:]pc 8k .01 .0001/p 258 [test 57:]pc 0k 1 1/p 259 [test 58:]pc 0k _1 _1/p 260 [test 59:]pc 0k _1 1/p 261 [test 60:]pc 0k 1 _1/p 262 [test 61:]pc 0k 0 1/p 263 [test 62:]pc 0k 0 _1/p 264 [test 63:]pc 0k 0 100/p 265 [test 64:]pc 0k 100 1/p 266 [test 65:]pc 0k _100 1/p 267 [test 66:]pc 0k 100 _1/p 268 [test 67:]pc 0k _100 _1/p 269 [test 68:]pc 0k 100 10/p 270 [test 69:]pc 0k 1000 10/p 271 [test 70:]pc 0k 10000 100/p 272 [test 71:]pc 0k 1000000 1000/p 273 [test 72:]pc 0k 10 100/p 274 [test 73:]pc 0k 10 1000/p 275 [test 74:]pc 0k 1 2/p 276 [test 75:]pc 0k 1 10/p 277 [test 76:]pc 0k 1 100/p 278 [test 77:]pc 0k 5 10/p 279 [test 78:]pc 2k 1 2/p 280 [test 79:]pc 2k 1 10/p 281 [test 80:]pc 2k 1 100/p 282 [test 81:]pc 2k 5 10/p 283 [test 82:]pc 2k 99 100/p 284 [test 83:]pc 0k 81 9/p 285 [test 84:]pc 0k 64 8/p 286 [test 85:]pc 0k 49 7/p 287 [test 86:]pc 0k 36 6/p 288 [test 87:]pc 0k 25 5/p 289 [test 88:]pc 0k 16 4/p 290 [test 89:]pc 0k 9 3/p 291 [test 90:]pc 0k 4 2/p 292 [test 91:]pc 0k 99999999999999999999 99999999999999999999/p 293 [test 92:]pc 0k 99999999999999999999 1/p 294 [test 93:]pc 0k 1 99999999999999999999/p 295 [test 94:]pc 20k 1 99999999999999999999/p 296 EOF