sbase

suckless unix tools
git clone git://git.suckless.org/sbase
Log | Files | Refs | README | LICENSE

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