Add tests for Out.Real, Out.LongReal.

This commit is contained in:
David Brown 2016-10-08 17:30:44 +01:00
parent a828ff79a4
commit ebd1a2e695
7 changed files with 512 additions and 1 deletions

View file

@ -239,7 +239,7 @@ uninstall: configuration
# confidence: Run a set of confidence tests
confidence: configuration
@make -f src/tools/make/oberon.mk -s confidence
@make -f src/tools/make/oberon.mk -s confidence MODEL=2
planned-binary-change:
@date >src/test/confidence/planned-binary-change

View file

@ -0,0 +1,190 @@
--- Testing with Oberon 2 variable model ---
Out module tests.
SIZE(INTEGER) = 2
Testing LONGREAL.
1 2 3
123456789012345678901234567890
1.0D0: 1.0D+000
1.1D0: 1.1D+000
2.1D0: 2.1D+000
-1.1D0: -1.1D+000
1.1D3: 1.1D+003
1.1D-3: 1.1D-003
1.2345678987654321D3: 1.23456789876543D+003
0.0: 0.0D+000
0.000123D0: 1.23D-004
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0D0: 1.00000D+000
1.1D0: 1.10000D+000
2.1D0: 2.10000D+000
-1.1D0: -1.1000D+000
1.1D3: 1.10000D+003
1.1D-3: 1.10000D-003
1.2345678987654321D3: 1.23456789876543D+003
0.0: 0.00000D+000
0.000123D0: 1.23000D-004
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0D0: 1.000000000000000D+000
1.1D0: 1.100000000000000D+000
2.1D0: 2.100000000000000D+000
-1.1D0: -1.100000000000000D+000
1.1D3: 1.100000000000000D+003
1.1D-3: 1.100000000000000D-003
1.2345678987654321D3: 1.234567898765430D+003
0.0: 0.000000000000000D+000
0.000123D0: 1.230000000000000D-004
1/0.0: Infinity
-1/0.0: -Infinity
Testing REAL.
1 2 3
123456789012345678901234567890
1.0E0: 1.0E+00
1.1E0: 1.1E+00
2.1E0: 2.1E+00
-1.1E0: -1.1E+00
1.1E3: 1.1E+03
1.1E-3: 1.1E-03
1.2345678987654321E3: 1.234568E+03
0.0: 0.0E+00
0.000123E0: 1.23E-04
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0E0: 1.000000E+00
1.1E0: 1.100000E+00
2.1E0: 2.100000E+00
-1.1E0: -1.10000E+00
1.1E3: 1.100000E+03
1.1E-3: 1.100000E-03
1.2345678987654321E3: 1.234568E+03
0.0: 0.000000E+00
0.000123E0: 1.230000E-04
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0E0: 1.0000000E+00
1.1E0: 1.1000000E+00
2.1E0: 2.1000000E+00
-1.1E0: -1.1000000E+00
1.1E3: 1.1000000E+03
1.1E-3: 1.1000000E-03
1.2345678987654321E3: 1.2345680E+03
0.0: 0.0000000E+00
0.000123E0: 1.2300000E-04
1/0.0: Infinity
-1/0.0: -Infinity
--- Testing with Component Pascal variable model ---
Out module tests.
SIZE(INTEGER) = 4
Testing LONGREAL.
1 2 3
123456789012345678901234567890
1.0D0: 1.0D+000
1.1D0: 1.1D+000
2.1D0: 2.1D+000
-1.1D0: -1.1D+000
1.1D3: 1.1D+003
1.1D-3: 1.1D-003
1.2345678987654321D3: 1.23456789876543D+003
0.0: 0.0D+000
0.000123D0: 1.23D-004
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0D0: 1.00000D+000
1.1D0: 1.10000D+000
2.1D0: 2.10000D+000
-1.1D0: -1.1000D+000
1.1D3: 1.10000D+003
1.1D-3: 1.10000D-003
1.2345678987654321D3: 1.23456789876543D+003
0.0: 0.00000D+000
0.000123D0: 1.23000D-004
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0D0: 1.000000000000000D+000
1.1D0: 1.100000000000000D+000
2.1D0: 2.100000000000000D+000
-1.1D0: -1.100000000000000D+000
1.1D3: 1.100000000000000D+003
1.1D-3: 1.100000000000000D-003
1.2345678987654321D3: 1.234567898765430D+003
0.0: 0.000000000000000D+000
0.000123D0: 1.230000000000000D-004
1/0.0: Infinity
-1/0.0: -Infinity
Testing REAL.
1 2 3
123456789012345678901234567890
1.0E0: 1.0E+00
1.1E0: 1.1E+00
2.1E0: 2.1E+00
-1.1E0: -1.1E+00
1.1E3: 1.1E+03
1.1E-3: 1.1E-03
1.2345678987654321E3: 1.234568E+03
0.0: 0.0E+00
0.000123E0: 1.23E-04
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0E0: 1.000000E+00
1.1E0: 1.100000E+00
2.1E0: 2.100000E+00
-1.1E0: -1.10000E+00
1.1E3: 1.100000E+03
1.1E-3: 1.100000E-03
1.2345678987654321E3: 1.234568E+03
0.0: 0.000000E+00
0.000123E0: 1.230000E-04
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0E0: 1.0000000E+00
1.1E0: 1.1000000E+00
2.1E0: 2.1000000E+00
-1.1E0: -1.1000000E+00
1.1E3: 1.1000000E+03
1.1E-3: 1.1000000E-03
1.2345678987654321E3: 1.2345680E+03
0.0: 0.0000000E+00
0.000123E0: 1.2300000E-04
1/0.0: Infinity
-1/0.0: -Infinity

View file

@ -0,0 +1,119 @@
MODULE outtest;
IMPORT Out;
VAR
r: REAL;
lr: LONGREAL;
PROCEDURE ws(s: ARRAY OF CHAR); BEGIN Out.String(s) END ws;
PROCEDURE wi(i: HUGEINT); BEGIN Out.Int(i,1) END wi;
PROCEDURE wl; BEGIN Out.Ln END wl;
BEGIN
ws("Out module tests."); wl;
ws("SIZE(INTEGER) = "); wi(SIZE(INTEGER)); wl; wl;
ws("Testing LONGREAL."); wl; wl;
ws(" 1 2 3"); wl;
ws(" 123456789012345678901234567890"); wl;
ws(" 1.0D0: "); Out.LongReal( 1.0D0, 1); wl;
ws(" 1.1D0: "); Out.LongReal( 1.1D0, 1); wl;
ws(" 2.1D0: "); Out.LongReal( 2.1D0, 1); wl;
ws("-1.1D0: "); Out.LongReal(-1.1D0, 1); wl;
ws(" 1.1D3: "); Out.LongReal( 1.1D3, 1); wl;
ws(" 1.1D-3: "); Out.LongReal( 1.1D-3, 1); wl;
ws(" 1.2345678987654321D3: "); Out.LongReal( 1.2345678987654321D3, 1); wl;
ws(" 0.0: "); Out.LongReal(0.0, 1); wl;
ws(" 0.000123D0: "); Out.LongReal(0.000123D0, 1); wl;
lr := 0.0; lr := 1/lr;
ws(" 1/0.0: "); Out.LongReal(lr, 1); wl;
lr := 0.0; lr := -1/lr;
ws("-1/0.0: "); Out.LongReal(lr, 1); wl;
wl;
ws(" 1 2 3"); wl;
ws(" 123456789012345678901234567890"); wl;
ws(" 1.0D0: "); Out.LongReal( 1.0D0, 12); wl;
ws(" 1.1D0: "); Out.LongReal( 1.1D0, 12); wl;
ws(" 2.1D0: "); Out.LongReal( 2.1D0, 12); wl;
ws("-1.1D0: "); Out.LongReal(-1.1D0, 12); wl;
ws(" 1.1D3: "); Out.LongReal( 1.1D3, 12); wl;
ws(" 1.1D-3: "); Out.LongReal( 1.1D-3, 12); wl;
ws(" 1.2345678987654321D3: "); Out.LongReal( 1.2345678987654321D3, 12); wl;
ws(" 0.0: "); Out.LongReal(0.0, 12); wl;
ws(" 0.000123D0: "); Out.LongReal(0.000123D0, 12); wl;
lr := 0.0; lr := 1/lr;
ws(" 1/0.0: "); Out.LongReal(lr, 12); wl;
lr := 0.0; lr := -1/lr;
ws("-1/0.0: "); Out.LongReal(lr, 12); wl;
wl;
ws(" 1 2 3"); wl;
ws(" 123456789012345678901234567890"); wl;
ws(" 1.0D0: "); Out.LongReal( 1.0D0, 30); wl;
ws(" 1.1D0: "); Out.LongReal( 1.1D0, 30); wl;
ws(" 2.1D0: "); Out.LongReal( 2.1D0, 30); wl;
ws("-1.1D0: "); Out.LongReal(-1.1D0, 30); wl;
ws(" 1.1D3: "); Out.LongReal( 1.1D3, 30); wl;
ws(" 1.1D-3: "); Out.LongReal( 1.1D-3, 30); wl;
ws(" 1.2345678987654321D3: "); Out.LongReal( 1.2345678987654321D3, 30); wl;
ws(" 0.0: "); Out.LongReal(0.0, 30); wl;
ws(" 0.000123D0: "); Out.LongReal(0.000123D0, 30); wl;
lr := 0.0; lr := 1/lr;
ws(" 1/0.0: "); Out.LongReal(lr, 30); wl;
lr := 0.0; lr := -1/lr;
ws("-1/0.0: "); Out.LongReal(lr, 30); wl;
wl; wl; wl;
ws("Testing REAL."); wl; wl;
ws(" 1 2 3"); wl;
ws(" 123456789012345678901234567890"); wl;
ws(" 1.0E0: "); Out.Real( 1.0E0, 1); wl;
ws(" 1.1E0: "); Out.Real( 1.1E0, 1); wl;
ws(" 2.1E0: "); Out.Real( 2.1E0, 1); wl;
ws("-1.1E0: "); Out.Real(-1.1E0, 1); wl;
ws(" 1.1E3: "); Out.Real( 1.1E3, 1); wl;
ws(" 1.1E-3: "); Out.Real( 1.1E-3, 1); wl;
ws(" 1.2345678987654321E3: "); Out.Real( 1.2345678987654321E3, 1); wl;
ws(" 0.0: "); Out.Real(0.0, 1); wl;
ws(" 0.000123E0: "); Out.Real(0.000123E0, 1); wl;
r := 0.0; r := 1/r;
ws(" 1/0.0: "); Out.Real(r, 1); wl;
r := 0.0; r := -1/r;
ws("-1/0.0: "); Out.Real(r, 1); wl;
wl;
ws(" 1 2 3"); wl;
ws(" 123456789012345678901234567890"); wl;
ws(" 1.0E0: "); Out.Real( 1.0E0, 12); wl;
ws(" 1.1E0: "); Out.Real( 1.1E0, 12); wl;
ws(" 2.1E0: "); Out.Real( 2.1E0, 12); wl;
ws("-1.1E0: "); Out.Real(-1.1E0, 12); wl;
ws(" 1.1E3: "); Out.Real( 1.1E3, 12); wl;
ws(" 1.1E-3: "); Out.Real( 1.1E-3, 12); wl;
ws(" 1.2345678987654321E3: "); Out.Real( 1.2345678987654321E3, 12); wl;
ws(" 0.0: "); Out.Real(0.0, 12); wl;
ws(" 0.000123E0: "); Out.Real(0.000123E0, 12); wl;
r := 0.0; r := 1/r;
ws(" 1/0.0: "); Out.Real(r, 12); wl;
r := 0.0; r := -1/r;
ws("-1/0.0: "); Out.Real(r, 12); wl;
wl;
ws(" 1 2 3"); wl;
ws(" 123456789012345678901234567890"); wl;
ws(" 1.0E0: "); Out.Real( 1.0E0, 30); wl;
ws(" 1.1E0: "); Out.Real( 1.1E0, 30); wl;
ws(" 2.1E0: "); Out.Real( 2.1E0, 30); wl;
ws("-1.1E0: "); Out.Real(-1.1E0, 30); wl;
ws(" 1.1E3: "); Out.Real( 1.1E3, 30); wl;
ws(" 1.1E-3: "); Out.Real( 1.1E-3, 30); wl;
ws(" 1.2345678987654321E3: "); Out.Real( 1.2345678987654321E3, 30); wl;
ws(" 0.0: "); Out.Real(0.0, 30); wl;
ws(" 0.000123E0: "); Out.Real(0.000123E0, 30); wl;
r := 0.0; r := 1/r;
ws(" 1/0.0: "); Out.Real(r, 30); wl;
r := 0.0; r := -1/r;
ws("-1/0.0: "); Out.Real(r, 30); wl;
wl;
END outtest.

View file

@ -0,0 +1,93 @@
Out module tests.
SIZE(INTEGER) = 2
Testing LONGREAL.
1 2 3
123456789012345678901234567890
1.0D0: 1.0D+000
1.1D0: 1.1D+000
2.1D0: 2.1D+000
-1.1D0: -1.1D+000
1.1D3: 1.1D+003
1.1D-3: 1.1D-003
1.2345678987654321D3: 1.23456789876543D+003
0.0: 0.0D+000
0.000123D0: 1.23D-004
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0D0: 1.00000D+000
1.1D0: 1.10000D+000
2.1D0: 2.10000D+000
-1.1D0: -1.1000D+000
1.1D3: 1.10000D+003
1.1D-3: 1.10000D-003
1.2345678987654321D3: 1.23456789876543D+003
0.0: 0.00000D+000
0.000123D0: 1.23000D-004
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0D0: 1.000000000000000D+000
1.1D0: 1.100000000000000D+000
2.1D0: 2.100000000000000D+000
-1.1D0: -1.100000000000000D+000
1.1D3: 1.100000000000000D+003
1.1D-3: 1.100000000000000D-003
1.2345678987654321D3: 1.234567898765430D+003
0.0: 0.000000000000000D+000
0.000123D0: 1.230000000000000D-004
1/0.0: Infinity
-1/0.0: -Infinity
Testing REAL.
1 2 3
123456789012345678901234567890
1.0E0: 1.0E+00
1.1E0: 1.1E+00
2.1E0: 2.1E+00
-1.1E0: -1.1E+00
1.1E3: 1.1E+03
1.1E-3: 1.1E-03
1.2345678987654321E3: 1.234568E+03
0.0: 0.0E+00
0.000123E0: 1.23E-04
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0E0: 1.000000E+00
1.1E0: 1.100000E+00
2.1E0: 2.100000E+00
-1.1E0: -1.10000E+00
1.1E3: 1.100000E+03
1.1E-3: 1.100000E-03
1.2345678987654321E3: 1.234568E+03
0.0: 0.000000E+00
0.000123E0: 1.230000E-04
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0E0: 1.0000000E+00
1.1E0: 1.1000000E+00
2.1E0: 2.1000000E+00
-1.1E0: -1.1000000E+00
1.1E3: 1.1000000E+03
1.1E-3: 1.1000000E-03
1.2345678987654321E3: 1.2345680E+03
0.0: 0.0000000E+00
0.000123E0: 1.2300000E-04
1/0.0: Infinity
-1/0.0: -Infinity

View file

@ -0,0 +1,93 @@
Out module tests.
SIZE(INTEGER) = 4
Testing LONGREAL.
1 2 3
123456789012345678901234567890
1.0D0: 1.0D+000
1.1D0: 1.1D+000
2.1D0: 2.1D+000
-1.1D0: -1.1D+000
1.1D3: 1.1D+003
1.1D-3: 1.1D-003
1.2345678987654321D3: 1.23456789876543D+003
0.0: 0.0D+000
0.000123D0: 1.23D-004
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0D0: 1.00000D+000
1.1D0: 1.10000D+000
2.1D0: 2.10000D+000
-1.1D0: -1.1000D+000
1.1D3: 1.10000D+003
1.1D-3: 1.10000D-003
1.2345678987654321D3: 1.23456789876543D+003
0.0: 0.00000D+000
0.000123D0: 1.23000D-004
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0D0: 1.000000000000000D+000
1.1D0: 1.100000000000000D+000
2.1D0: 2.100000000000000D+000
-1.1D0: -1.100000000000000D+000
1.1D3: 1.100000000000000D+003
1.1D-3: 1.100000000000000D-003
1.2345678987654321D3: 1.234567898765430D+003
0.0: 0.000000000000000D+000
0.000123D0: 1.230000000000000D-004
1/0.0: Infinity
-1/0.0: -Infinity
Testing REAL.
1 2 3
123456789012345678901234567890
1.0E0: 1.0E+00
1.1E0: 1.1E+00
2.1E0: 2.1E+00
-1.1E0: -1.1E+00
1.1E3: 1.1E+03
1.1E-3: 1.1E-03
1.2345678987654321E3: 1.234568E+03
0.0: 0.0E+00
0.000123E0: 1.23E-04
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0E0: 1.000000E+00
1.1E0: 1.100000E+00
2.1E0: 2.100000E+00
-1.1E0: -1.10000E+00
1.1E3: 1.100000E+03
1.1E-3: 1.100000E-03
1.2345678987654321E3: 1.234568E+03
0.0: 0.000000E+00
0.000123E0: 1.230000E-04
1/0.0: Infinity
-1/0.0: -Infinity
1 2 3
123456789012345678901234567890
1.0E0: 1.0000000E+00
1.1E0: 1.1000000E+00
2.1E0: 2.1000000E+00
-1.1E0: -1.1000000E+00
1.1E3: 1.1000000E+03
1.1E-3: 1.1000000E-03
1.2345678987654321E3: 1.2345680E+03
0.0: 0.0000000E+00
0.000123E0: 1.2300000E-04
1/0.0: Infinity
-1/0.0: -Infinity

View file

@ -0,0 +1,15 @@
#!/bin/sh
. ../testenv.sh
$OBECOMP outtest.mod -m -O2
#../../../../voc outtest.mod -m -O2
./outtest >result-O2
$OBECOMP outtest.mod -m -OC
#../../../../voc outtest.mod -m -OC
./outtest >result-OC
echo --- Testing with Oberon 2 variable model --- >result
cat result-O2 >>result
echo "" >>result
echo "" >>result
echo --- Testing with Component Pascal variable model --- >>result
cat result-OC >>result
. ../testresult.sh

View file

@ -389,6 +389,7 @@ confidence:
@printf "\n\n--- Confidence tests ---\n\n"
# cd src/test/confidence/math; $(RUNTEST)
cd src/test/confidence/hello; $(RUNTEST)
cd src/test/confidence/out; $(RUNTEST)
cd src/test/confidence/intsyntax; $(RUNTEST)
cd src/test/confidence/language; $(RUNTEST)
cd src/test/confidence/texts; $(RUNTEST)