sbase

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

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