0030-dc.sh - sbase - suckless unix tools
HTML git clone git://git.suckless.org/sbase
DIR Log
DIR Files
DIR Refs
DIR README
DIR 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