sbase/tests/0031-dc.sh
Roberto E. Vargas Caballero 608f88f08f dc: Add initial version
This is the initial version of dc already tested in deep and
with a considerable good set of tests.
2026-01-14 12:49:01 +01:00

219 lines
2.7 KiB
Bash
Executable File

#!/bin/sh
tmp=$$.tmp
trap 'rm -f $tmp' EXIT
trap 'exit $?' HUP INT TERM
# Test % command: modulo (remainder)
# Note: scale (k) persists between operations, so we reset it explicitly
cat <<EOF >$tmp
test 1:
1
test 2:
1
test 3:
2
test 4:
0
test 5:
2
test 6:
0
test 7:
0
test 8:
3
test 9:
-1
test 10:
1
test 11:
-1
test 12:
-1
test 13:
1
test 14:
-1
test 15:
0
test 16:
0
test 17:
0
test 18:
1
test 19:
1
test 20:
1
test 21:
99
test 22:
0
test 23:
0
test 24:
0
test 25:
1
test 26:
789
test 27:
4
test 28:
0
test 29:
1
test 30:
0
test 31:
1
test 32:
0
test 33:
0
test 34:
0
test 35:
0
test 36:
7
test 37:
1
test 38:
15
test 39:
0
test 40:
1
test 41:
0
test 42:
0
test 43:
0
test 44:
1.5
test 45:
0
test 46:
0
test 47:
0
test 48:
0
test 49:
0
test 50:
0
test 51:
0
test 52:
0
test 53:
0
test 54:
.001
test 55:
.01
test 56:
.01
test 57:
0
test 58:
.02
test 59:
-.01
test 60:
.01
test 61:
-.01
test 62:
.0001
test 63:
.0002
test 64:
.0005
test 65:
0
test 66:
.005
test 67:
.0050
test 68:
0
EOF
$EXEC ../dc <<EOF | diff -u $tmp -
[test 1:]pc 0k 7 3%p
[test 2:]pc 0k 10 3%p
[test 3:]pc 0k 100 7%p
[test 4:]pc 0k 15 5%p
[test 5:]pc 0k 17 5%p
[test 6:]pc 0k 0 5%p
[test 7:]pc 0k 5 5%p
[test 8:]pc 0k 3 7%p
[test 9:]pc 0k _7 3%p
[test 10:]pc 0k 7 _3%p
[test 11:]pc 0k _7 _3%p
[test 12:]pc 0k _10 3%p
[test 13:]pc 0k 10 _3%p
[test 14:]pc 0k _10 _3%p
[test 15:]pc 0k 1 1%p
[test 16:]pc 0k 2 2%p
[test 17:]pc 0k 3 3%p
[test 18:]pc 0k 1 2%p
[test 19:]pc 0k 1 10%p
[test 20:]pc 0k 1 100%p
[test 21:]pc 0k 99 100%p
[test 22:]pc 0k 5 1%p
[test 23:]pc 0k 100 1%p
[test 24:]pc 0k _5 1%p
[test 25:]pc 0k 1000000 999999%p
[test 26:]pc 0k 123456789 1000%p
[test 27:]pc 0k 99999999999 7%p
[test 28:]pc 0k 12345678901234567890 9%p
[test 29:]pc 0k 99999999999999999999 2%p
[test 30:]pc 0k 99999999999999999999 3%p
[test 31:]pc 0k 99999999999999999999 99999999999999999998%p
[test 32:]pc 0k 99999999999999999999 99999999999999999999%p
[test 33:]pc 0k 8 2%p
[test 34:]pc 0k 8 4%p
[test 35:]pc 0k 16 8%p
[test 36:]pc 0k 15 8%p
[test 37:]pc 0k 17 8%p
[test 38:]pc 0k 255 16%p
[test 39:]pc 0k 256 16%p
[test 40:]pc 0k 257 16%p
[test 41:]pc 0k 7.5 2.5%p
[test 42:]pc 0k 1.5 .5%p
[test 43:]pc 0k 3.75 1.25%p
[test 44:]pc 0k 7.5 3%p
[test 45:]pc 0k 4.5 1.5%p
[test 46:]pc 0k 2.5 .5%p
[test 47:]pc 0k _7.5 2.5%p
[test 48:]pc 0k 7.5 _2.5%p
[test 49:]pc 0k _7.5 _2.5%p
[test 50:]pc 0k _1.5 .5%p
[test 51:]pc 0k 1.5 _.5%p
[test 52:]pc 0k _1.5 _.5%p
[test 53:]pc 0k .001 .001%p
[test 54:]pc 0k .01 .003%p
[test 55:]pc 2k 7 3%p
[test 56:]pc 2k 10 3%p
[test 57:]pc 2k 17 5%p
[test 58:]pc 2k 22 7%p
[test 59:]pc 2k _7 3%p
[test 60:]pc 2k 7 _3%p
[test 61:]pc 2k _7 _3%p
[test 62:]pc 4k 1 3%p
[test 63:]pc 4k 2 3%p
[test 64:]pc 4k 10 7%p
[test 65:]pc 2k 1.5 .5%p
[test 66:]pc 2k 3.5 1.5%p
[test 67:]pc 2k 7.25 2.25%p
[test 68:]pc 2k 10.5 3.5%p
EOF