0031-dc.sh - sbase - suckless unix tools
HTML git clone git://git.suckless.org/sbase
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
0031-dc.sh (2807B)
---
1 #!/bin/sh
2
3 tmp=$$.tmp
4
5 trap 'rm -f $tmp' EXIT
6 trap 'exit $?' HUP INT TERM
7
8 # Test % command: modulo (remainder)
9 # Note: scale (k) persists between operations, so we reset it explicitly
10 cat <<EOF >$tmp
11 test 1:
12 1
13 test 2:
14 1
15 test 3:
16 2
17 test 4:
18 0
19 test 5:
20 2
21 test 6:
22 0
23 test 7:
24 0
25 test 8:
26 3
27 test 9:
28 -1
29 test 10:
30 1
31 test 11:
32 -1
33 test 12:
34 -1
35 test 13:
36 1
37 test 14:
38 -1
39 test 15:
40 0
41 test 16:
42 0
43 test 17:
44 0
45 test 18:
46 1
47 test 19:
48 1
49 test 20:
50 1
51 test 21:
52 99
53 test 22:
54 0
55 test 23:
56 0
57 test 24:
58 0
59 test 25:
60 1
61 test 26:
62 789
63 test 27:
64 4
65 test 28:
66 0
67 test 29:
68 1
69 test 30:
70 0
71 test 31:
72 1
73 test 32:
74 0
75 test 33:
76 0
77 test 34:
78 0
79 test 35:
80 0
81 test 36:
82 7
83 test 37:
84 1
85 test 38:
86 15
87 test 39:
88 0
89 test 40:
90 1
91 test 41:
92 0
93 test 42:
94 0
95 test 43:
96 0
97 test 44:
98 1.5
99 test 45:
100 0
101 test 46:
102 0
103 test 47:
104 0
105 test 48:
106 0
107 test 49:
108 0
109 test 50:
110 0
111 test 51:
112 0
113 test 52:
114 0
115 test 53:
116 0
117 test 54:
118 .001
119 test 55:
120 .01
121 test 56:
122 .01
123 test 57:
124 0
125 test 58:
126 .02
127 test 59:
128 -.01
129 test 60:
130 .01
131 test 61:
132 -.01
133 test 62:
134 .0001
135 test 63:
136 .0002
137 test 64:
138 .0005
139 test 65:
140 0
141 test 66:
142 .005
143 test 67:
144 .0050
145 test 68:
146 0
147 EOF
148
149 $EXEC ../dc <<EOF | diff -u $tmp -
150 [test 1:]pc 0k 7 3%p
151 [test 2:]pc 0k 10 3%p
152 [test 3:]pc 0k 100 7%p
153 [test 4:]pc 0k 15 5%p
154 [test 5:]pc 0k 17 5%p
155 [test 6:]pc 0k 0 5%p
156 [test 7:]pc 0k 5 5%p
157 [test 8:]pc 0k 3 7%p
158 [test 9:]pc 0k _7 3%p
159 [test 10:]pc 0k 7 _3%p
160 [test 11:]pc 0k _7 _3%p
161 [test 12:]pc 0k _10 3%p
162 [test 13:]pc 0k 10 _3%p
163 [test 14:]pc 0k _10 _3%p
164 [test 15:]pc 0k 1 1%p
165 [test 16:]pc 0k 2 2%p
166 [test 17:]pc 0k 3 3%p
167 [test 18:]pc 0k 1 2%p
168 [test 19:]pc 0k 1 10%p
169 [test 20:]pc 0k 1 100%p
170 [test 21:]pc 0k 99 100%p
171 [test 22:]pc 0k 5 1%p
172 [test 23:]pc 0k 100 1%p
173 [test 24:]pc 0k _5 1%p
174 [test 25:]pc 0k 1000000 999999%p
175 [test 26:]pc 0k 123456789 1000%p
176 [test 27:]pc 0k 99999999999 7%p
177 [test 28:]pc 0k 12345678901234567890 9%p
178 [test 29:]pc 0k 99999999999999999999 2%p
179 [test 30:]pc 0k 99999999999999999999 3%p
180 [test 31:]pc 0k 99999999999999999999 99999999999999999998%p
181 [test 32:]pc 0k 99999999999999999999 99999999999999999999%p
182 [test 33:]pc 0k 8 2%p
183 [test 34:]pc 0k 8 4%p
184 [test 35:]pc 0k 16 8%p
185 [test 36:]pc 0k 15 8%p
186 [test 37:]pc 0k 17 8%p
187 [test 38:]pc 0k 255 16%p
188 [test 39:]pc 0k 256 16%p
189 [test 40:]pc 0k 257 16%p
190 [test 41:]pc 0k 7.5 2.5%p
191 [test 42:]pc 0k 1.5 .5%p
192 [test 43:]pc 0k 3.75 1.25%p
193 [test 44:]pc 0k 7.5 3%p
194 [test 45:]pc 0k 4.5 1.5%p
195 [test 46:]pc 0k 2.5 .5%p
196 [test 47:]pc 0k _7.5 2.5%p
197 [test 48:]pc 0k 7.5 _2.5%p
198 [test 49:]pc 0k _7.5 _2.5%p
199 [test 50:]pc 0k _1.5 .5%p
200 [test 51:]pc 0k 1.5 _.5%p
201 [test 52:]pc 0k _1.5 _.5%p
202 [test 53:]pc 0k .001 .001%p
203 [test 54:]pc 0k .01 .003%p
204 [test 55:]pc 2k 7 3%p
205 [test 56:]pc 2k 10 3%p
206 [test 57:]pc 2k 17 5%p
207 [test 58:]pc 2k 22 7%p
208 [test 59:]pc 2k _7 3%p
209 [test 60:]pc 2k 7 _3%p
210 [test 61:]pc 2k _7 _3%p
211 [test 62:]pc 4k 1 3%p
212 [test 63:]pc 4k 2 3%p
213 [test 64:]pc 4k 10 7%p
214 [test 65:]pc 2k 1.5 .5%p
215 [test 66:]pc 2k 3.5 1.5%p
216 [test 67:]pc 2k 7.25 2.25%p
217 [test 68:]pc 2k 10.5 3.5%p
218 EOF