BAS: Convert all BAS text scripts to BASIC files
This commit is contained in:
parent
d6155e75fb
commit
ae574b0251
@ -23,7 +23,7 @@ hello
|
|||||||
2e-06
|
2e-06
|
||||||
2e-07
|
2e-07
|
||||||
|
|
||||||
test01.bas
|
test02.bas
|
||||||
==========
|
==========
|
||||||
Array variable assignment
|
Array variable assignment
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ Expected Result
|
|||||||
11
|
11
|
||||||
12
|
12
|
||||||
|
|
||||||
test01.bas
|
test03.bas
|
||||||
==========
|
==========
|
||||||
FOR loops
|
FOR loops
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ aaaaaaaa
|
|||||||
aaaaaaaaa
|
aaaaaaaaa
|
||||||
aaaaaaaaaa
|
aaaaaaaaaa
|
||||||
|
|
||||||
test01.bas
|
test04.bas
|
||||||
==========
|
==========
|
||||||
REPEAT UNTIL loop
|
REPEAT UNTIL loop
|
||||||
|
|
||||||
@ -113,7 +113,7 @@ Expected Result
|
|||||||
8
|
8
|
||||||
9
|
9
|
||||||
|
|
||||||
test01.bas
|
test05.bas
|
||||||
==========
|
==========
|
||||||
GOSUB RETURN subroutines
|
GOSUB RETURN subroutines
|
||||||
|
|
||||||
@ -134,7 +134,7 @@ hello, world
|
|||||||
hello, world
|
hello, world
|
||||||
hello, world
|
hello, world
|
||||||
|
|
||||||
test01.bas
|
test06.bas
|
||||||
==========
|
==========
|
||||||
Recursive function without arguments
|
Recursive function without arguments
|
||||||
|
|
||||||
@ -166,7 +166,7 @@ Expected Result
|
|||||||
1
|
1
|
||||||
0
|
0
|
||||||
|
|
||||||
test01.bas
|
test07.bas
|
||||||
==========
|
==========
|
||||||
Recursive function with arguments
|
Recursive function with arguments
|
||||||
|
|
||||||
@ -181,7 +181,7 @@ Expected Result
|
|||||||
---------------
|
---------------
|
||||||
5040
|
5040
|
||||||
|
|
||||||
test01.bas
|
test08.bas
|
||||||
==========
|
==========
|
||||||
DATA, READ and RESTORE
|
DATA, READ and RESTORE
|
||||||
|
|
||||||
@ -205,7 +205,7 @@ Error: end of `data' in line 80 at:
|
|||||||
80 read j$,k$
|
80 read j$,k$
|
||||||
^
|
^
|
||||||
|
|
||||||
test01.bas
|
test09.bas
|
||||||
==========
|
==========
|
||||||
LOCAL variables
|
LOCAL variables
|
||||||
|
|
||||||
@ -226,7 +226,7 @@ Expected Result
|
|||||||
5
|
5
|
||||||
3
|
3
|
||||||
|
|
||||||
test01.bas
|
test10.bas
|
||||||
==========
|
==========
|
||||||
PRINT USING
|
PRINT USING
|
||||||
|
|
||||||
@ -296,7 +296,7 @@ aSbaTb
|
|||||||
aSb
|
aSb
|
||||||
aSbTc
|
aSbTc
|
||||||
|
|
||||||
test01.bas
|
test11.bas
|
||||||
==========
|
==========
|
||||||
OPEN and LINE INPUT
|
OPEN and LINE INPUT
|
||||||
|
|
||||||
@ -316,7 +316,7 @@ Expected Result
|
|||||||
40 print a$
|
40 print a$
|
||||||
50 wend
|
50 wend
|
||||||
|
|
||||||
test01.bas
|
test12.bas
|
||||||
==========
|
==========
|
||||||
Exception handling
|
Exception handling
|
||||||
|
|
||||||
@ -354,7 +354,7 @@ Expected Result
|
|||||||
a
|
a
|
||||||
c
|
c
|
||||||
|
|
||||||
test01.bas
|
test14.bas
|
||||||
==========
|
==========
|
||||||
SELECT CASE
|
SELECT CASE
|
||||||
|
|
||||||
@ -586,7 +586,7 @@ i after case else
|
|||||||
9 9
|
9 9
|
||||||
i after case else
|
i after case else
|
||||||
|
|
||||||
test01.bas
|
test15.bas
|
||||||
==========
|
==========
|
||||||
FIELD, PUT and GET
|
FIELD, PUT and GET
|
||||||
|
|
||||||
@ -617,7 +617,7 @@ a$=hi ya
|
|||||||
after close a$=
|
after close a$=
|
||||||
after get b$=hi ya
|
after get b$=hi ya
|
||||||
|
|
||||||
test01.bas
|
test16.bas
|
||||||
==========
|
==========
|
||||||
SWAP
|
SWAP
|
||||||
|
|
||||||
@ -640,7 +640,7 @@ a= 2 b= 1
|
|||||||
a$(1,0)=ab$(0,1)=b
|
a$(1,0)=ab$(0,1)=b
|
||||||
a$(1,0)=bb$(0,1)=a
|
a$(1,0)=bb$(0,1)=a
|
||||||
|
|
||||||
test01.bas
|
test17.bas
|
||||||
==========
|
==========
|
||||||
DO, EXIT DO, LOOP
|
DO, EXIT DO, LOOP
|
||||||
|
|
||||||
@ -670,7 +670,7 @@ i is 9
|
|||||||
i is 10
|
i is 10
|
||||||
loop ended
|
loop ended
|
||||||
|
|
||||||
test01.bas
|
test18.bas
|
||||||
==========
|
==========
|
||||||
DO WHILE, LOOP
|
DO WHILE, LOOP
|
||||||
|
|
||||||
@ -703,7 +703,7 @@ y$ is
|
|||||||
y$ is b
|
y$ is b
|
||||||
loop ended
|
loop ended
|
||||||
|
|
||||||
test01.bas
|
test19.bas
|
||||||
==========
|
==========
|
||||||
ELSEIF
|
ELSEIF
|
||||||
|
|
||||||
@ -738,7 +738,7 @@ Expected Result
|
|||||||
2b
|
2b
|
||||||
3b
|
3b
|
||||||
|
|
||||||
test01.bas
|
test20.bas
|
||||||
==========
|
==========
|
||||||
Caller trace
|
Caller trace
|
||||||
|
|
||||||
@ -774,7 +774,7 @@ Called in line 10 at:
|
|||||||
10 gosub 20
|
10 gosub 20
|
||||||
^
|
^
|
||||||
|
|
||||||
test01.bas
|
test21.bas
|
||||||
==========
|
==========
|
||||||
Matrix assignment
|
Matrix assignment
|
||||||
|
|
||||||
@ -807,7 +807,7 @@ Expected Result
|
|||||||
0 21 22 23 24
|
0 21 22 23 24
|
||||||
0 31 32 33 34
|
0 31 32 33 34
|
||||||
|
|
||||||
test01.bas
|
test22.bas
|
||||||
==========
|
==========
|
||||||
MAT PRINT
|
MAT PRINT
|
||||||
|
|
||||||
@ -837,7 +837,7 @@ Expected Result
|
|||||||
11.00 12.00
|
11.00 12.00
|
||||||
21.00 22.00
|
21.00 22.00
|
||||||
|
|
||||||
test01.bas
|
test23.bas
|
||||||
==========
|
==========
|
||||||
Matrix addition and subtraction
|
Matrix addition and subtraction
|
||||||
|
|
||||||
@ -867,7 +867,7 @@ hi
|
|||||||
|
|
||||||
hihi
|
hihi
|
||||||
|
|
||||||
test01.bas
|
test24.bas
|
||||||
==========
|
==========
|
||||||
Matrix multiplication
|
Matrix multiplication
|
||||||
|
|
||||||
@ -893,7 +893,7 @@ Expected Result
|
|||||||
14 13
|
14 13
|
||||||
10 11
|
10 11
|
||||||
|
|
||||||
test01.bas
|
test25.bas
|
||||||
==========
|
==========
|
||||||
Matrix scalar multiplication
|
Matrix scalar multiplication
|
||||||
|
|
||||||
@ -933,7 +933,7 @@ Expected Result
|
|||||||
254
|
254
|
||||||
99.9998
|
99.9998
|
||||||
|
|
||||||
test01.bas
|
test26.bas
|
||||||
==========
|
==========
|
||||||
MAT READ
|
MAT READ
|
||||||
|
|
||||||
@ -949,7 +949,7 @@ Expected Result
|
|||||||
5 5 5
|
5 5 5
|
||||||
8 8 8
|
8 8 8
|
||||||
|
|
||||||
test01.bas
|
test27.bas
|
||||||
==========
|
==========
|
||||||
Matrix inversion
|
Matrix inversion
|
||||||
|
|
||||||
@ -972,7 +972,7 @@ Expected Result
|
|||||||
1 0
|
1 0
|
||||||
0 1
|
0 1
|
||||||
|
|
||||||
test01.bas
|
test28.bas
|
||||||
==========
|
==========
|
||||||
TDL BASIC FNRETURN/FNEND
|
TDL BASIC FNRETURN/FNEND
|
||||||
|
|
||||||
@ -988,7 +988,7 @@ Expected Result
|
|||||||
---------------
|
---------------
|
||||||
3628800
|
3628800
|
||||||
|
|
||||||
test01.bas
|
test29.bas
|
||||||
==========
|
==========
|
||||||
TDL INSTR
|
TDL INSTR
|
||||||
|
|
||||||
@ -1010,7 +1010,7 @@ Expected Result
|
|||||||
0 = 0?
|
0 = 0?
|
||||||
8 = 8?
|
8 = 8?
|
||||||
|
|
||||||
test01.bas
|
test30.bas
|
||||||
==========
|
==========
|
||||||
Type mismatch check
|
Type mismatch check
|
||||||
|
|
||||||
@ -1022,7 +1022,7 @@ Expected Result
|
|||||||
---------------
|
---------------
|
||||||
Error: Invalid binary operand at: end of program
|
Error: Invalid binary operand at: end of program
|
||||||
|
|
||||||
test01.bas
|
test31.bas
|
||||||
==========
|
==========
|
||||||
PRINT default format
|
PRINT default format
|
||||||
|
|
||||||
@ -1055,7 +1055,7 @@ Expected Result
|
|||||||
1.333333e+07 1e+07
|
1.333333e+07 1e+07
|
||||||
1.333333e+08 1e+08
|
1.333333e+08 1e+08
|
||||||
|
|
||||||
test01.bas
|
test032.bas
|
||||||
==========
|
==========
|
||||||
SUB routines
|
SUB routines
|
||||||
|
|
||||||
@ -1073,7 +1073,7 @@ Expected Result
|
|||||||
---------------
|
---------------
|
||||||
abc
|
abc
|
||||||
|
|
||||||
test01.bas
|
test33.bas
|
||||||
==========
|
==========
|
||||||
OPEN FOR BINARY
|
OPEN FOR BINARY
|
||||||
|
|
||||||
@ -1102,7 +1102,7 @@ xyz!
|
|||||||
0.333333
|
0.333333
|
||||||
9999
|
9999
|
||||||
|
|
||||||
test01.bas
|
test34.bas
|
||||||
==========
|
==========
|
||||||
OPTION BASE
|
OPTION BASE
|
||||||
|
|
||||||
@ -1135,7 +1135,7 @@ Expected Result
|
|||||||
10
|
10
|
||||||
20
|
20
|
||||||
|
|
||||||
test01.bas
|
test35.bas
|
||||||
==========
|
==========
|
||||||
Real to integer conversion
|
Real to integer conversion
|
||||||
|
|
||||||
@ -1157,7 +1157,7 @@ Expected Result
|
|||||||
0
|
0
|
||||||
-1
|
-1
|
||||||
|
|
||||||
test01.bas
|
test36.bas
|
||||||
==========
|
==========
|
||||||
OPEN file locking
|
OPEN file locking
|
||||||
|
|
||||||
@ -1178,7 +1178,7 @@ open succeeded
|
|||||||
opening file
|
opening file
|
||||||
open failed
|
open failed
|
||||||
|
|
||||||
test01.bas
|
test37.bas
|
||||||
==========
|
==========
|
||||||
LINE INPUT reaching EOF
|
LINE INPUT reaching EOF
|
||||||
|
|
||||||
@ -1194,7 +1194,7 @@ Result
|
|||||||
------
|
------
|
||||||
Output should match test.ref
|
Output should match test.ref
|
||||||
|
|
||||||
test01.bas
|
test38.bas
|
||||||
==========
|
==========
|
||||||
MAT REDIM
|
MAT REDIM
|
||||||
|
|
||||||
@ -1241,7 +1241,7 @@ Expected Result
|
|||||||
0
|
0
|
||||||
0
|
0
|
||||||
|
|
||||||
test01.bas
|
test39.bas
|
||||||
==========
|
==========
|
||||||
Nested function and procedure calls
|
Nested function and procedure calls
|
||||||
|
|
||||||
@ -1263,7 +1263,7 @@ Expected Result
|
|||||||
---------------
|
---------------
|
||||||
6
|
6
|
||||||
|
|
||||||
test01.bas
|
test40.bas
|
||||||
==========
|
==========
|
||||||
IMAGE
|
IMAGE
|
||||||
|
|
||||||
@ -1279,7 +1279,7 @@ Expected Result
|
|||||||
3.1
|
3.1
|
||||||
3.10
|
3.10
|
||||||
|
|
||||||
test01.bas
|
test41.bas
|
||||||
==========
|
==========
|
||||||
EXIT FUNCTION
|
EXIT FUNCTION
|
||||||
|
|
||||||
@ -1301,7 +1301,7 @@ f running
|
|||||||
f running
|
f running
|
||||||
42
|
42
|
||||||
|
|
||||||
test01.bas
|
test42.bas
|
||||||
==========
|
==========
|
||||||
Arithmetic
|
Arithmetic
|
||||||
|
|
||||||
@ -1327,7 +1327,7 @@ Expected Result
|
|||||||
-0.3
|
-0.3
|
||||||
0.3
|
0.3
|
||||||
|
|
||||||
test01.bas
|
test43.bas
|
||||||
==========
|
==========
|
||||||
Matrix multiplication size checks
|
Matrix multiplication size checks
|
||||||
|
|
||||||
@ -1358,7 +1358,7 @@ Error: Dimension mismatch in line 14 at:
|
|||||||
mat c=a*b
|
mat c=a*b
|
||||||
^
|
^
|
||||||
|
|
||||||
test01.bas
|
test44.bas
|
||||||
==========
|
==========
|
||||||
DELETE
|
DELETE
|
||||||
|
|
||||||
@ -1374,7 +1374,6 @@ Test File
|
|||||||
|
|
||||||
Usage
|
Usage
|
||||||
-----
|
-----
|
||||||
|
|
||||||
load "test.bas"
|
load "test.bas"
|
||||||
delete -20
|
delete -20
|
||||||
delete 60-
|
delete 60-
|
||||||
@ -1387,7 +1386,7 @@ Expected Result
|
|||||||
Error: No such line at: 15
|
Error: No such line at: 15
|
||||||
50 print 50
|
50 print 50
|
||||||
|
|
||||||
test01.bas
|
test45.bas
|
||||||
==========
|
==========
|
||||||
MID$ on left side
|
MID$ on left side
|
||||||
|
|
||||||
@ -1408,7 +1407,7 @@ Expected Result
|
|||||||
01234ABCD9
|
01234ABCD9
|
||||||
01234ABCD9
|
01234ABCD9
|
||||||
|
|
||||||
test01.bas
|
test46.bas
|
||||||
==========
|
==========
|
||||||
END used without program
|
END used without program
|
||||||
|
|
||||||
@ -1420,7 +1419,7 @@ Expected Result
|
|||||||
---------------
|
---------------
|
||||||
1 2 3 4 5 6 7 8 9 10
|
1 2 3 4 5 6 7 8 9 10
|
||||||
|
|
||||||
test01.bas
|
test47.bas
|
||||||
==========
|
==========
|
||||||
MAT WRITE
|
MAT WRITE
|
||||||
|
|
||||||
@ -1446,7 +1445,7 @@ Expected Result
|
|||||||
21,22,23,24
|
21,22,23,24
|
||||||
31,32,33,34
|
31,32,33,34
|
||||||
|
|
||||||
test01.bas
|
test48.bas
|
||||||
==========
|
==========
|
||||||
Multi assignment
|
Multi assignment
|
||||||
|
|
||||||
@ -1466,7 +1465,7 @@ Expected Result
|
|||||||
2 0 2
|
2 0 2
|
||||||
test test
|
test test
|
||||||
|
|
||||||
test01.bas
|
test49.bas
|
||||||
==========
|
==========
|
||||||
Matrix determinant
|
Matrix determinant
|
||||||
|
|
||||||
@ -1510,7 +1509,7 @@ Expected Result
|
|||||||
9.650995e+07
|
9.650995e+07
|
||||||
1
|
1
|
||||||
|
|
||||||
test01.bas
|
test50.bas
|
||||||
==========
|
==========
|
||||||
Min and max function
|
Min and max function
|
||||||
|
|
||||||
@ -1536,7 +1535,7 @@ Expected Result
|
|||||||
0.3
|
0.3
|
||||||
4
|
4
|
||||||
|
|
||||||
test01.bas
|
test51.bas
|
||||||
==========
|
==========
|
||||||
Print items
|
Print items
|
||||||
|
|
||||||
@ -1549,7 +1548,7 @@ Expected Result
|
|||||||
Line 1
|
Line 1
|
||||||
1.234568
|
1.234568
|
||||||
|
|
||||||
test01.bas
|
test52.bas
|
||||||
==========
|
==========
|
||||||
MAT INPUT
|
MAT INPUT
|
||||||
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Scalar variable assignment... '
|
|
||||||
|
|
||||||
cat >test.bas <<eof
|
|
||||||
10 a=1
|
10 a=1
|
||||||
20 print a
|
20 print a
|
||||||
30 a$="hello"
|
30 a$="hello"
|
||||||
@ -13,23 +8,3 @@ cat >test.bas <<eof
|
|||||||
80 print a
|
80 print a
|
||||||
90 a=.2e-6
|
90 a=.2e-6
|
||||||
100 print a
|
100 print a
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
1
|
|
||||||
hello
|
|
||||||
0.0002
|
|
||||||
2e-06
|
|
||||||
2e-07
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Array variable assignment... '
|
|
||||||
|
|
||||||
cat >test.bas <<eof
|
|
||||||
10 dim a(1)
|
10 dim a(1)
|
||||||
20 a(0)=10
|
20 a(0)=10
|
||||||
30 a(1)=11
|
30 a(1)=11
|
||||||
@ -10,21 +5,4 @@ cat >test.bas <<eof
|
|||||||
50 print a(0)
|
50 print a(0)
|
||||||
60 print a(1)
|
60 print a(1)
|
||||||
70 print a
|
70 print a
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
10
|
|
||||||
11
|
|
||||||
12
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'FOR loops... '
|
|
||||||
|
|
||||||
cat >test.bas <<eof
|
|
||||||
10 for i=0 to 10
|
10 for i=0 to 10
|
||||||
20 print i
|
20 print i
|
||||||
30 if i=5 then exit for
|
30 if i=5 then exit for
|
||||||
@ -19,38 +14,3 @@ cat >test.bas <<eof
|
|||||||
140 for i$="" to "aaaaaaaaaa" step "a"
|
140 for i$="" to "aaaaaaaaaa" step "a"
|
||||||
150 print i$
|
150 print i$
|
||||||
160 next
|
160 next
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
0
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
0
|
|
||||||
1
|
|
||||||
0
|
|
||||||
|
|
||||||
a
|
|
||||||
aa
|
|
||||||
aaa
|
|
||||||
aaaa
|
|
||||||
aaaaa
|
|
||||||
aaaaaa
|
|
||||||
aaaaaaa
|
|
||||||
aaaaaaaa
|
|
||||||
aaaaaaaaa
|
|
||||||
aaaaaaaaaa
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,34 +1,6 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'REPEAT UNTIL loop... '
|
|
||||||
|
|
||||||
cat >test.bas <<eof
|
|
||||||
10 a=1
|
10 a=1
|
||||||
20 repeat
|
20 repeat
|
||||||
30 print a
|
30 print a
|
||||||
40 a=a+1
|
40 a=a+1
|
||||||
50 until a=10
|
50 until a=10
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'GOSUB RETURN subroutines... '
|
|
||||||
|
|
||||||
cat >test5.bas <<eof
|
|
||||||
10 gosub 100
|
10 gosub 100
|
||||||
20 gosub 100
|
20 gosub 100
|
||||||
30 end
|
30 end
|
||||||
@ -10,22 +5,4 @@ cat >test5.bas <<eof
|
|||||||
110 gosub 200
|
110 gosub 200
|
||||||
120 return
|
120 return
|
||||||
200 print "hello, world":return
|
200 print "hello, world":return
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test5.ref <<eof
|
|
||||||
hello, world
|
|
||||||
hello, world
|
|
||||||
hello, world
|
|
||||||
hello, world
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test5.bas >test5.data
|
|
||||||
|
|
||||||
if cmp test5.ref test5.data
|
|
||||||
then
|
|
||||||
rm -f test5.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Recursive function without arguments... '
|
|
||||||
|
|
||||||
cat >test.bas <<eof
|
|
||||||
10 def fnloop
|
10 def fnloop
|
||||||
20 if n=0.0 then
|
20 if n=0.0 then
|
||||||
30 r=0.0
|
30 r=0.0
|
||||||
@ -14,29 +9,4 @@ cat >test.bas <<eof
|
|||||||
90 =r
|
90 =r
|
||||||
100 n=10
|
100 n=10
|
||||||
110 print fnloop
|
110 print fnloop
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
10
|
|
||||||
9
|
|
||||||
8
|
|
||||||
7
|
|
||||||
6
|
|
||||||
5
|
|
||||||
4
|
|
||||||
3
|
|
||||||
2
|
|
||||||
1
|
|
||||||
0
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,25 +1,5 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Recursive function with arguments... '
|
|
||||||
|
|
||||||
cat >test.bas <<eof
|
|
||||||
10 def fna(x)
|
10 def fna(x)
|
||||||
20 if x=0 then r=1 else r=x*fna(x-1)
|
20 if x=0 then r=1 else r=x*fna(x-1)
|
||||||
30 =r
|
30 =r
|
||||||
40 print fna(7)
|
40 print fna(7)
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
5040
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'DATA, READ and RESTORE... '
|
|
||||||
|
|
||||||
cat >test.bas <<eof
|
|
||||||
10 data "a",b
|
10 data "a",b
|
||||||
20 data "c","d
|
20 data "c","d
|
||||||
40 read j$
|
40 read j$
|
||||||
@ -12,23 +7,4 @@ cat >test.bas <<eof
|
|||||||
80 read j$,k$
|
80 read j$,k$
|
||||||
90 print "j=";j$;" k=";k$
|
90 print "j=";j$;" k=";k$
|
||||||
100 next
|
100 next
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
j=a
|
|
||||||
j=c k=d
|
|
||||||
Error: end of `data' in line 80 at:
|
|
||||||
80 read j$,k$
|
|
||||||
^
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'LOCAL variables... '
|
|
||||||
|
|
||||||
cat >test.bas <<eof
|
|
||||||
10 def fna(a)
|
10 def fna(a)
|
||||||
20 local b
|
20 local b
|
||||||
30 b=a+1
|
30 b=a+1
|
||||||
@ -11,21 +6,4 @@ cat >test.bas <<eof
|
|||||||
70 print b
|
70 print b
|
||||||
80 print fna(4)
|
80 print fna(4)
|
||||||
90 print b
|
90 print b
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
3
|
|
||||||
5
|
|
||||||
3
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'PRINT USING... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
10 print using "!";"abcdef"
|
10 print using "!";"abcdef"
|
||||||
20 print using "\ \";"abcdef"
|
20 print using "\ \";"abcdef"
|
||||||
30 print using "###-";-1
|
30 print using "###-";-1
|
||||||
@ -33,48 +28,4 @@ cat >test.bas <<'eof'
|
|||||||
280 print using "a!b";"S","T"
|
280 print using "a!b";"S","T"
|
||||||
290 print using "a!b!c";"S"
|
290 print using "a!b!c";"S"
|
||||||
300 print using "a!b!c";"S","T"
|
300 print using "a!b!c";"S","T"
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
a
|
|
||||||
abc
|
|
||||||
1-
|
|
||||||
0
|
|
||||||
1
|
|
||||||
1-
|
|
||||||
0+
|
|
||||||
1+
|
|
||||||
1,000
|
|
||||||
*1,000.00
|
|
||||||
+1.00
|
|
||||||
+1.23
|
|
||||||
+123.46
|
|
||||||
+123.
|
|
||||||
+123
|
|
||||||
abc def 1.30 efg
|
|
||||||
500.00E-002
|
|
||||||
100.00E+01
|
|
||||||
.50E+01
|
|
||||||
23E-10
|
|
||||||
.23E-08
|
|
||||||
2.3E-09
|
|
||||||
-.1147E+005
|
|
||||||
$***3,729,825.24
|
|
||||||
$**3729825.24
|
|
||||||
$456.78
|
|
||||||
aSb
|
|
||||||
aSbaTb
|
|
||||||
aSb
|
|
||||||
aSbTc
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,30 +1,6 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'OPEN and LINE INPUT... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
10 open "i",1,"test.bas"
|
10 open "i",1,"test.bas"
|
||||||
20 while not eof(1)
|
20 while not eof(1)
|
||||||
30 line input #1,a$
|
30 line input #1,a$
|
||||||
40 print a$
|
40 print a$
|
||||||
50 wend
|
50 wend
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
10 open "i",1,"test.bas"
|
|
||||||
20 while not eof(1)
|
|
||||||
30 line input #1,a$
|
|
||||||
40 print a$
|
|
||||||
50 wend
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Exception handling... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
10 on error print "global handler 1 caught error in line ";erl : resume 30
|
10 on error print "global handler 1 caught error in line ";erl : resume 30
|
||||||
20 print mid$("",-1)
|
20 print mid$("",-1)
|
||||||
30 on error print "global handler 2 caught error in line ";erl : end
|
30 on error print "global handler 2 caught error in line ";erl : end
|
||||||
@ -12,21 +7,4 @@ cat >test.bas <<'eof'
|
|||||||
70 end proc
|
70 end proc
|
||||||
80 procx
|
80 procx
|
||||||
90 print 1 mod 0
|
90 print 1 mod 0
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
global handler 1 caught error in line 20
|
|
||||||
local handler caught error in line 60
|
|
||||||
global handler 2 caught error in line 90
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,26 +1,4 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Unnumbered lines... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
print "a"
|
print "a"
|
||||||
goto 20
|
goto 20
|
||||||
print "b"
|
print "b"
|
||||||
20 print "c"
|
20 print "c"
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
a
|
|
||||||
c
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'SELECT CASE... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
10 for i=0 to 9
|
10 for i=0 to 9
|
||||||
20 for j=0 to 9
|
20 for j=0 to 9
|
||||||
30 print i,j
|
30 print i,j
|
||||||
@ -24,219 +19,4 @@ cat >test.bas <<'eof'
|
|||||||
190 end select
|
190 end select
|
||||||
200 next
|
200 next
|
||||||
210 next
|
210 next
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
0 0
|
|
||||||
i after case 0
|
|
||||||
0 1
|
|
||||||
i after case 0
|
|
||||||
0 2
|
|
||||||
i after case 0
|
|
||||||
0 3
|
|
||||||
i after case 0
|
|
||||||
0 4
|
|
||||||
i after case 0
|
|
||||||
0 5
|
|
||||||
i after case 0
|
|
||||||
0 6
|
|
||||||
i after case 0
|
|
||||||
0 7
|
|
||||||
i after case 0
|
|
||||||
0 8
|
|
||||||
i after case 0
|
|
||||||
0 9
|
|
||||||
i after case 0
|
|
||||||
1 0
|
|
||||||
i after case 1
|
|
||||||
j after case 0
|
|
||||||
1 1
|
|
||||||
i after case 1
|
|
||||||
1 2
|
|
||||||
i after case 1
|
|
||||||
1 3
|
|
||||||
i after case 1
|
|
||||||
1 4
|
|
||||||
i after case 1
|
|
||||||
1 5
|
|
||||||
i after case 1
|
|
||||||
1 6
|
|
||||||
i after case 1
|
|
||||||
1 7
|
|
||||||
i after case 1
|
|
||||||
1 8
|
|
||||||
i after case 1
|
|
||||||
1 9
|
|
||||||
i after case 1
|
|
||||||
2 0
|
|
||||||
is after case is <9
|
|
||||||
2 1
|
|
||||||
is after case is <9
|
|
||||||
2 2
|
|
||||||
is after case is <9
|
|
||||||
2 3
|
|
||||||
is after case is <9
|
|
||||||
2 4
|
|
||||||
is after case is <9
|
|
||||||
2 5
|
|
||||||
is after case is <9
|
|
||||||
2 6
|
|
||||||
is after case is <9
|
|
||||||
2 7
|
|
||||||
is after case is <9
|
|
||||||
2 8
|
|
||||||
is after case is <9
|
|
||||||
2 9
|
|
||||||
is after case is <9
|
|
||||||
3 0
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
3 1
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
3 2
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
3 3
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
3 4
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
3 5
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
3 6
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
3 7
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
3 8
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
3 9
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
4 0
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
4 1
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
4 2
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
4 3
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
4 4
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
4 5
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
4 6
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
4 7
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
4 8
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
4 9
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
5 0
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
5 1
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
5 2
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
5 3
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
5 4
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
5 5
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
5 6
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
5 7
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
5 8
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
5 9
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
6 0
|
|
||||||
is after case is <9
|
|
||||||
6 1
|
|
||||||
is after case is <9
|
|
||||||
6 2
|
|
||||||
is after case is <9
|
|
||||||
6 3
|
|
||||||
is after case is <9
|
|
||||||
6 4
|
|
||||||
is after case is <9
|
|
||||||
6 5
|
|
||||||
is after case is <9
|
|
||||||
6 6
|
|
||||||
is after case is <9
|
|
||||||
6 7
|
|
||||||
is after case is <9
|
|
||||||
6 8
|
|
||||||
is after case is <9
|
|
||||||
6 9
|
|
||||||
is after case is <9
|
|
||||||
7 0
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
7 1
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
7 2
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
7 3
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
7 4
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
7 5
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
7 6
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
7 7
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
7 8
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
7 9
|
|
||||||
i after case 3 to 5, 7
|
|
||||||
8 0
|
|
||||||
is after case is <9
|
|
||||||
8 1
|
|
||||||
is after case is <9
|
|
||||||
8 2
|
|
||||||
is after case is <9
|
|
||||||
8 3
|
|
||||||
is after case is <9
|
|
||||||
8 4
|
|
||||||
is after case is <9
|
|
||||||
8 5
|
|
||||||
is after case is <9
|
|
||||||
8 6
|
|
||||||
is after case is <9
|
|
||||||
8 7
|
|
||||||
is after case is <9
|
|
||||||
8 8
|
|
||||||
is after case is <9
|
|
||||||
8 9
|
|
||||||
is after case is <9
|
|
||||||
9 0
|
|
||||||
i after case else
|
|
||||||
9 1
|
|
||||||
i after case else
|
|
||||||
9 2
|
|
||||||
i after case else
|
|
||||||
9 3
|
|
||||||
i after case else
|
|
||||||
9 4
|
|
||||||
i after case else
|
|
||||||
9 5
|
|
||||||
i after case else
|
|
||||||
9 6
|
|
||||||
i after case else
|
|
||||||
9 7
|
|
||||||
i after case else
|
|
||||||
9 8
|
|
||||||
i after case else
|
|
||||||
9 9
|
|
||||||
i after case else
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'FIELD, PUT and GET... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
a$="a"
|
a$="a"
|
||||||
open "r",1,"test.dat",128
|
open "r",1,"test.dat",128
|
||||||
print "before field a$=";a$
|
print "before field a$=";a$
|
||||||
@ -20,22 +15,4 @@ get #2
|
|||||||
print "after get b$=";b$
|
print "after get b$=";b$
|
||||||
close #2
|
close #2
|
||||||
kill "test.dat"
|
kill "test.dat"
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
before field a$=a
|
|
||||||
a$=hi ya
|
|
||||||
after close a$=
|
|
||||||
after get b$=hi ya
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'SWAP... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
a=1 : b=2
|
a=1 : b=2
|
||||||
print "a=";a;"b=";b
|
print "a=";a;"b=";b
|
||||||
swap a,b
|
swap a,b
|
||||||
@ -12,22 +7,4 @@ a$(1,0)="a" : b$(0,1)="b"
|
|||||||
print "a$(1,0)=";a$(1,0);"b$(0,1)=";b$(0,1)
|
print "a$(1,0)=";a$(1,0);"b$(0,1)=";b$(0,1)
|
||||||
swap a$(1,0),b$(0,1)
|
swap a$(1,0),b$(0,1)
|
||||||
print "a$(1,0)=";a$(1,0);"b$(0,1)=";b$(0,1)
|
print "a$(1,0)=";a$(1,0);"b$(0,1)=";b$(0,1)
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
a= 1 b= 2
|
|
||||||
a= 2 b= 1
|
|
||||||
a$(1,0)=ab$(0,1)=b
|
|
||||||
a$(1,0)=bb$(0,1)=a
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'DO, EXIT DO, LOOP... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
print "loop started"
|
print "loop started"
|
||||||
i=1
|
i=1
|
||||||
do
|
do
|
||||||
@ -11,30 +6,4 @@ do
|
|||||||
if i>10 then exit do
|
if i>10 then exit do
|
||||||
loop
|
loop
|
||||||
print "loop ended"
|
print "loop ended"
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
loop started
|
|
||||||
i is 1
|
|
||||||
i is 2
|
|
||||||
i is 3
|
|
||||||
i is 4
|
|
||||||
i is 5
|
|
||||||
i is 6
|
|
||||||
i is 7
|
|
||||||
i is 8
|
|
||||||
i is 9
|
|
||||||
i is 10
|
|
||||||
loop ended
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'DO WHILE, LOOP... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
print "loop started"
|
print "loop started"
|
||||||
x$=""
|
x$=""
|
||||||
do while len(x$)<3
|
do while len(x$)<3
|
||||||
@ -15,29 +10,4 @@ do while len(x$)<3
|
|||||||
loop
|
loop
|
||||||
loop
|
loop
|
||||||
print "loop ended"
|
print "loop ended"
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
loop started
|
|
||||||
x$ is
|
|
||||||
y$ is
|
|
||||||
y$ is b
|
|
||||||
x$ is a
|
|
||||||
y$ is
|
|
||||||
y$ is b
|
|
||||||
x$ is aa
|
|
||||||
y$ is
|
|
||||||
y$ is b
|
|
||||||
loop ended
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'ELSEIF... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
for x=1 to 3
|
for x=1 to 3
|
||||||
if x=1 then
|
if x=1 then
|
||||||
print "1a"
|
print "1a"
|
||||||
@ -22,24 +17,4 @@ for x=1 to 3
|
|||||||
print "2b"
|
print "2b"
|
||||||
elseif x=3 then print "3b"
|
elseif x=3 then print "3b"
|
||||||
next
|
next
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
1a
|
|
||||||
2a
|
|
||||||
3a
|
|
||||||
1b
|
|
||||||
2b
|
|
||||||
3b
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Caller trace... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
10 gosub 20
|
10 gosub 20
|
||||||
20 gosub 30
|
20 gosub 30
|
||||||
30 procb
|
30 procb
|
||||||
@ -13,34 +8,4 @@ cat >test.bas <<'eof'
|
|||||||
80 def procb
|
80 def procb
|
||||||
90 proca
|
90 proca
|
||||||
100 end proc
|
100 end proc
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
hi
|
|
||||||
Break in line 60 at:
|
|
||||||
60 stop
|
|
||||||
^
|
|
||||||
Proc Called in line 90 at:
|
|
||||||
90 proca
|
|
||||||
^
|
|
||||||
Proc Called in line 30 at:
|
|
||||||
30 procb
|
|
||||||
^
|
|
||||||
Called in line 20 at:
|
|
||||||
20 gosub 30
|
|
||||||
^
|
|
||||||
Called in line 10 at:
|
|
||||||
10 gosub 20
|
|
||||||
^
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Matrix assignment... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
dim a(3,4)
|
dim a(3,4)
|
||||||
for i=0 to 3
|
for i=0 to 3
|
||||||
for j=0 to 4
|
for j=0 to 4
|
||||||
@ -18,26 +13,4 @@ for i=0 to 3
|
|||||||
next
|
next
|
||||||
print
|
print
|
||||||
next
|
next
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
0 1 2 3 4
|
|
||||||
10 11 12 13 14
|
|
||||||
20 21 22 23 24
|
|
||||||
30 31 32 33 34
|
|
||||||
0 0 0 0 0
|
|
||||||
0 11 12 13 14
|
|
||||||
0 21 22 23 24
|
|
||||||
0 31 32 33 34
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'MAT PRINT... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
dim a(2,2)
|
dim a(2,2)
|
||||||
for i=0 to 2
|
for i=0 to 2
|
||||||
for j=0 to 2
|
for j=0 to 2
|
||||||
@ -16,25 +11,4 @@ for j=1 to 2
|
|||||||
print
|
print
|
||||||
next
|
next
|
||||||
mat print using " ##.##";a,a
|
mat print using " ##.##";a,a
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
11.00 21.00
|
|
||||||
12.00 22.00
|
|
||||||
11.00 12.00
|
|
||||||
21.00 22.00
|
|
||||||
|
|
||||||
11.00 12.00
|
|
||||||
21.00 22.00
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Matrix addition and subtraction... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
dim a(2,2)
|
dim a(2,2)
|
||||||
a(2,2)=2.5
|
a(2,2)=2.5
|
||||||
dim b%(2,2)
|
dim b%(2,2)
|
||||||
@ -15,26 +10,4 @@ c$(2,1)="hi"
|
|||||||
mat print c$
|
mat print c$
|
||||||
mat c$=c$+c$
|
mat c$=c$+c$
|
||||||
mat print c$
|
mat print c$
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
0 0
|
|
||||||
0 2.5
|
|
||||||
0 0
|
|
||||||
0 -0.5
|
|
||||||
|
|
||||||
hi
|
|
||||||
|
|
||||||
hihi
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Matrix multiplication... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
10 dim b(2,3),c(3,2)
|
10 dim b(2,3),c(3,2)
|
||||||
20 for i=1 to 2 : for j=1 to 3 : read b(i,j) : next : next
|
20 for i=1 to 2 : for j=1 to 3 : read b(i,j) : next : next
|
||||||
30 for i=1 to 3 : for j=1 to 2 : read c(i,j) : next : next
|
30 for i=1 to 3 : for j=1 to 2 : read c(i,j) : next : next
|
||||||
@ -10,27 +5,4 @@ cat >test.bas <<'eof'
|
|||||||
50 mat print b,c,a
|
50 mat print b,c,a
|
||||||
60 data 1,2,3,3,2,1
|
60 data 1,2,3,3,2,1
|
||||||
70 data 1,2,2,1,3,3
|
70 data 1,2,2,1,3,3
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
1 2 3
|
|
||||||
3 2 1
|
|
||||||
|
|
||||||
1 2
|
|
||||||
2 1
|
|
||||||
3 3
|
|
||||||
|
|
||||||
14 13
|
|
||||||
10 11
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Matrix scalar multiplication... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
10 dim a(3,3)
|
10 dim a(3,3)
|
||||||
20 for i=1 to 3 : for j=1 to 3 : read a(i,j) : next : next
|
20 for i=1 to 3 : for j=1 to 3 : read a(i,j) : next : next
|
||||||
30 mat print a
|
30 mat print a
|
||||||
@ -16,35 +11,4 @@ cat >test.bas <<'eof'
|
|||||||
110 mat print inch_array
|
110 mat print inch_array
|
||||||
120 mat cm_array=(2.54)*inch_array
|
120 mat cm_array=(2.54)*inch_array
|
||||||
130 mat print cm_array
|
130 mat print cm_array
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
1 2 3
|
|
||||||
4 5 6
|
|
||||||
7 8 9
|
|
||||||
|
|
||||||
3 6 9
|
|
||||||
12 15 18
|
|
||||||
21 24 27
|
|
||||||
1
|
|
||||||
12
|
|
||||||
36
|
|
||||||
100
|
|
||||||
39.37
|
|
||||||
2.54
|
|
||||||
30.48
|
|
||||||
91.44
|
|
||||||
254
|
|
||||||
99.9998
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,26 +1,5 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'MAT READ... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
dim a(3,3)
|
dim a(3,3)
|
||||||
data 5,5,5,8,8,8,3,3
|
data 5,5,5,8,8,8,3,3
|
||||||
mat read a(2,3)
|
mat read a(2,3)
|
||||||
mat print a
|
mat print a
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
5 5 5
|
|
||||||
8 8 8
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Matrix inversion... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
data 1,2,3,4
|
data 1,2,3,4
|
||||||
mat read a(2,2)
|
mat read a(2,2)
|
||||||
mat print a
|
mat print a
|
||||||
@ -10,24 +5,4 @@ mat b=inv(a)
|
|||||||
mat print b
|
mat print b
|
||||||
mat c=a*b
|
mat c=a*b
|
||||||
mat print c
|
mat print c
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
1 2
|
|
||||||
3 4
|
|
||||||
-2 1
|
|
||||||
1.5 -0.5
|
|
||||||
1 0
|
|
||||||
0 1
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,26 +1,6 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'TDL BASIC FNRETURN/FNEND... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
def fnfac(n)
|
def fnfac(n)
|
||||||
if n=1 then fnreturn 1
|
if n=1 then fnreturn 1
|
||||||
fnend n*fnfac(n-1)
|
fnend n*fnfac(n-1)
|
||||||
|
|
||||||
print fnfac(10)
|
print fnfac(10)
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
3628800
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,32 +1,7 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'TDL INSTR... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
print instr("123456789","456");" = 4?"
|
print instr("123456789","456");" = 4?"
|
||||||
print INSTR("123456789","654");" = 0?"
|
print INSTR("123456789","654");" = 0?"
|
||||||
print INSTR("1234512345","34");" = 3?"
|
print INSTR("1234512345","34");" = 3?"
|
||||||
print INSTR("1234512345","34",6);" = 8?"
|
print INSTR("1234512345","34",6);" = 8?"
|
||||||
print INSTR("1234512345","34",6,2);" = 0?"
|
print INSTR("1234512345","34",6,2);" = 0?"
|
||||||
print INSTR("1234512345","34",6,4);" = 8?"
|
print INSTR("1234512345","34",6,4);" = 8?"
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
4 = 4?
|
|
||||||
0 = 0?
|
|
||||||
3 = 3?
|
|
||||||
8 = 8?
|
|
||||||
0 = 0?
|
|
||||||
8 = 8?
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,22 +1,2 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Type mismatch check... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
print 1+"a"
|
print 1+"a"
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
Error: Invalid binary operand at: end of program
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,43 +1,7 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'PRINT default format... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
10 for i=-8 to 8
|
10 for i=-8 to 8
|
||||||
20 x=1+1/3 : y=1 : j=i
|
20 x=1+1/3 : y=1 : j=i
|
||||||
30 for j=i to -1 : x=x/10 : y=y/10 : next
|
30 for j=i to -1 : x=x/10 : y=y/10 : next
|
||||||
40 for j=i to 1 step -1 : x=x*10 : y=y*10 : next
|
40 for j=i to 1 step -1 : x=x*10 : y=y*10 : next
|
||||||
50 print x,y
|
50 print x,y
|
||||||
60 next
|
60 next
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
1.333333e-08 1e-08
|
|
||||||
1.333333e-07 1e-07
|
|
||||||
1.333333e-06 1e-06
|
|
||||||
1.333333e-05 1e-05
|
|
||||||
0.000133 0.0001
|
|
||||||
0.001333 0.001
|
|
||||||
0.013333 0.01
|
|
||||||
0.133333 0.1
|
|
||||||
1.333333 1
|
|
||||||
13.33333 10
|
|
||||||
133.3333 100
|
|
||||||
1333.333 1000
|
|
||||||
13333.33 10000
|
|
||||||
133333.3 100000
|
|
||||||
1333333 1000000
|
|
||||||
1.333333e+07 1e+07
|
|
||||||
1.333333e+08 1e+08
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'SUB routines... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
PUTS("abc")
|
PUTS("abc")
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -10,19 +5,4 @@ SUB PUTS(s$)
|
|||||||
FOR i=1 to LEN(s$) : print mid$(s$,i,1); : NEXT
|
FOR i=1 to LEN(s$) : print mid$(s$,i,1); : NEXT
|
||||||
PRINT
|
PRINT
|
||||||
END SUB
|
END SUB
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
abc
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'OPEN FOR BINARY... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
open "test.out" for binary as 1
|
open "test.out" for binary as 1
|
||||||
put 1,1,"xy"
|
put 1,1,"xy"
|
||||||
put 1,3,"z!"
|
put 1,3,"z!"
|
||||||
@ -19,21 +14,4 @@ print s$
|
|||||||
print x
|
print x
|
||||||
print n%
|
print n%
|
||||||
kill "test.out"
|
kill "test.out"
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
xyz!
|
|
||||||
0.333333
|
|
||||||
9999
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'OPTION BASE... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
option base 3
|
option base 3
|
||||||
dim a(3,5)
|
dim a(3,5)
|
||||||
a(3,3)=1
|
a(3,3)=1
|
||||||
@ -20,24 +15,4 @@ print a(3,3)
|
|||||||
print a(3,5)
|
print a(3,5)
|
||||||
print b(-2,-2)
|
print b(-2,-2)
|
||||||
print b(-1,2)
|
print b(-1,2)
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
1
|
|
||||||
2
|
|
||||||
1
|
|
||||||
2
|
|
||||||
10
|
|
||||||
20
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Real to integer conversion... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
a%=1.2
|
a%=1.2
|
||||||
print a%
|
print a%
|
||||||
a%=1.7
|
a%=1.7
|
||||||
@ -11,22 +6,4 @@ a%=-0.2
|
|||||||
print a%
|
print a%
|
||||||
a%=-0.7
|
a%=-0.7
|
||||||
print a%
|
print a%
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
1
|
|
||||||
2
|
|
||||||
0
|
|
||||||
-1
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'OPEN file locking... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
on error goto 10
|
on error goto 10
|
||||||
print "opening file"
|
print "opening file"
|
||||||
open "test.out" for output lock write as #1
|
open "test.out" for output lock write as #1
|
||||||
@ -10,22 +5,4 @@ print "open succeeded"
|
|||||||
if command$<>"enough" then shell "sh ./test/runbas test.bas enough"
|
if command$<>"enough" then shell "sh ./test/runbas test.bas enough"
|
||||||
end
|
end
|
||||||
10 print "open failed"
|
10 print "open failed"
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
opening file
|
|
||||||
open succeeded
|
|
||||||
opening file
|
|
||||||
open failed
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,24 +1,6 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'LINE INPUT reaching EOF... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
10 open "i",1,"test.ref"
|
10 open "i",1,"test.ref"
|
||||||
20 while not eof(1)
|
20 while not eof(1)
|
||||||
30 line input #1,a$
|
30 line input #1,a$
|
||||||
40 if a$="abc" then print a$; else print "def"
|
40 if a$="abc" then print a$; else print "def"
|
||||||
50 wend
|
50 wend
|
||||||
eof
|
|
||||||
|
|
||||||
awk 'BEGIN{ printf("abc") }' </dev/null >test.ref
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'MAT REDIM... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
dim x(10)
|
dim x(10)
|
||||||
mat read x
|
mat read x
|
||||||
mat print x
|
mat print x
|
||||||
@ -11,47 +6,4 @@ mat print x
|
|||||||
mat redim x(12)
|
mat redim x(12)
|
||||||
mat print x
|
mat print x
|
||||||
data 1,2,3,4,5,6,7,8,9,10
|
data 1,2,3,4,5,6,7,8,9,10
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
6
|
|
||||||
7
|
|
||||||
0
|
|
||||||
0
|
|
||||||
0
|
|
||||||
0
|
|
||||||
0
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Nested function and procedure calls... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
def proc_a(x)
|
def proc_a(x)
|
||||||
print fn_b(1,x)
|
print fn_b(1,x)
|
||||||
end proc
|
end proc
|
||||||
@ -14,19 +9,4 @@ def fn_c(b)
|
|||||||
= b+3
|
= b+3
|
||||||
|
|
||||||
proc_a(2)
|
proc_a(2)
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
6
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,26 +1,5 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'IMAGE... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
d=3.1
|
d=3.1
|
||||||
print using "#.#";d
|
print using "#.#";d
|
||||||
print using 10;d
|
print using 10;d
|
||||||
10 image #.##
|
10 image #.##
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
3.1
|
|
||||||
3.10
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'EXIT FUNCTION... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
function f(c)
|
function f(c)
|
||||||
print "f running"
|
print "f running"
|
||||||
if (c) then f=42 : exit function
|
if (c) then f=42 : exit function
|
||||||
@ -11,22 +6,4 @@ end function
|
|||||||
|
|
||||||
print f(0)
|
print f(0)
|
||||||
print f(1)
|
print f(1)
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
f running
|
|
||||||
43
|
|
||||||
f running
|
|
||||||
42
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Arithmetic... '
|
|
||||||
|
|
||||||
cat >test.bas <<eof
|
|
||||||
10 print 4.7\3
|
10 print 4.7\3
|
||||||
20 print -2.3\1
|
20 print -2.3\1
|
||||||
30 print int(-2.3)
|
30 print int(-2.3)
|
||||||
@ -11,26 +6,4 @@ cat >test.bas <<eof
|
|||||||
60 print fix(2.3)
|
60 print fix(2.3)
|
||||||
70 print fp(-2.3)
|
70 print fp(-2.3)
|
||||||
80 print fp(2.3)
|
80 print fp(2.3)
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
1
|
|
||||||
-2
|
|
||||||
-3
|
|
||||||
2
|
|
||||||
-2
|
|
||||||
2
|
|
||||||
-0.3
|
|
||||||
0.3
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Matrix multiplication size checks... '
|
|
||||||
|
|
||||||
cat >test.bas <<eof
|
|
||||||
DIM a(3,3),b(3,1),c(3,3)
|
DIM a(3,3),b(3,1),c(3,3)
|
||||||
MAT READ a
|
MAT READ a
|
||||||
MAT READ b
|
MAT READ b
|
||||||
@ -18,24 +13,4 @@ MAT READ a
|
|||||||
MAT READ b
|
MAT READ b
|
||||||
MAT c=a*b
|
MAT c=a*b
|
||||||
MAT PRINT c
|
MAT PRINT c
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
17
|
|
||||||
47
|
|
||||||
77
|
|
||||||
Error: Dimension mismatch in line 14 at:
|
|
||||||
mat c=a*b
|
|
||||||
^
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'DELETE... '
|
|
||||||
|
|
||||||
cat >test.bas <<eof
|
|
||||||
10 print 10
|
10 print 10
|
||||||
20 print 20
|
20 print 20
|
||||||
30 print 30
|
30 print 30
|
||||||
@ -10,29 +5,4 @@ cat >test.bas <<eof
|
|||||||
50 print 50
|
50 print 50
|
||||||
60 print 60
|
60 print 60
|
||||||
70 print 70
|
70 print 70
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.input <<eof
|
|
||||||
load "test.bas"
|
|
||||||
delete -20
|
|
||||||
delete 60-
|
|
||||||
delete 30-40
|
|
||||||
delete 15
|
|
||||||
list
|
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<eof
|
|
||||||
Error: No such line at: 15
|
|
||||||
50 print 50
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas <test.input >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'MID$ on left side... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
10 mid$(a$,6,4) = "ABCD"
|
10 mid$(a$,6,4) = "ABCD"
|
||||||
20 print a$
|
20 print a$
|
||||||
30 a$="0123456789"
|
30 a$="0123456789"
|
||||||
@ -11,21 +6,4 @@ cat >test.bas <<'eof'
|
|||||||
60 a$="0123456789"
|
60 a$="0123456789"
|
||||||
70 let mid$(a$,6,4) = "ABCD"
|
70 let mid$(a$,6,4) = "ABCD"
|
||||||
80 print a$
|
80 print a$
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
|
|
||||||
01234ABCD9
|
|
||||||
01234ABCD9
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,22 +1,2 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'END used without program... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
for i=1 to 10:print i;:next i:end
|
for i=1 to 10:print i;:next i:end
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
1 2 3 4 5 6 7 8 9 10
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas <test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'MAT WRITE... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
dim a(3,4)
|
dim a(3,4)
|
||||||
for i=0 to 3
|
for i=0 to 3
|
||||||
for j=0 to 4
|
for j=0 to 4
|
||||||
@ -12,25 +7,4 @@ for i=0 to 3
|
|||||||
print
|
print
|
||||||
next
|
next
|
||||||
mat write a
|
mat write a
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
0 1 2 3 4
|
|
||||||
10 11 12 13 14
|
|
||||||
20 21 22 23 24
|
|
||||||
30 31 32 33 34
|
|
||||||
11,12,13,14
|
|
||||||
21,22,23,24
|
|
||||||
31,32,33,34
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Multi assignment... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
a,b = 10
|
a,b = 10
|
||||||
print a,b
|
print a,b
|
||||||
dim c(10)
|
dim c(10)
|
||||||
@ -10,21 +5,4 @@ a,c(a) = 2
|
|||||||
print a,c(2),c(10)
|
print a,c(2),c(10)
|
||||||
a$,b$="test"
|
a$,b$="test"
|
||||||
print a$,b$
|
print a$,b$
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
10 10
|
|
||||||
2 0 2
|
|
||||||
test test
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Matrix determinant... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
width 120
|
width 120
|
||||||
dim a(7,7),b(7,7)
|
dim a(7,7),b(7,7)
|
||||||
mat read a
|
mat read a
|
||||||
@ -18,37 +13,4 @@ data 66,72,71,38,40,27,69
|
|||||||
mat b=inv(a)
|
mat b=inv(a)
|
||||||
mat print b
|
mat print b
|
||||||
print det
|
print det
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
58 71 67 36 35 19 60
|
|
||||||
50 71 71 56 45 20 52
|
|
||||||
64 40 84 50 51 43 69
|
|
||||||
31 28 41 54 31 18 33
|
|
||||||
45 23 46 38 50 43 50
|
|
||||||
41 10 28 17 33 41 46
|
|
||||||
66 72 71 38 40 27 69
|
|
||||||
|
|
||||||
9.636025e+07 320206 -537449 2323650 -1.135486e+07 3.019632e+07
|
|
||||||
-9.650941e+07
|
|
||||||
4480 15 -25 108 -528 1404 -4487
|
|
||||||
-39436 -131 220 -951 4647 -12358 39497
|
|
||||||
273240 908 -1524 6589 -32198 85625 -273663
|
|
||||||
-1846174 -6135 10297 -44519 217549 -578534 1849032
|
|
||||||
1.315035e+07 43699 -73346 317110 -1549606 4120912 -1.31707e+07
|
|
||||||
|
|
||||||
-9.636079e+07 -320208 537452 -2323663 1.135493e+07 -3.019649e+07
|
|
||||||
9.650995e+07
|
|
||||||
1
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Min and max function... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
print min(1,2)
|
print min(1,2)
|
||||||
print min(2,1)
|
print min(2,1)
|
||||||
print min(-0.3,0.3)
|
print min(-0.3,0.3)
|
||||||
@ -11,26 +6,4 @@ print max(1,2)
|
|||||||
print max(2,1)
|
print max(2,1)
|
||||||
print max(-0.3,0.3)
|
print max(-0.3,0.3)
|
||||||
print max(-0.3,4)
|
print max(-0.3,4)
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
1
|
|
||||||
1
|
|
||||||
-0.3
|
|
||||||
-0.3
|
|
||||||
2
|
|
||||||
2
|
|
||||||
0.3
|
|
||||||
4
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,23 +1,2 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'Print items... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
PRINT "Line 1";TAB(78);1.23456789
|
PRINT "Line 1";TAB(78);1.23456789
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
Line 1
|
|
||||||
1.234568
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
@ -1,37 +1,6 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo -n $0: 'MAT INPUT... '
|
|
||||||
|
|
||||||
cat >test.bas <<'eof'
|
|
||||||
dim a(2,2)
|
dim a(2,2)
|
||||||
mat input a
|
mat input a
|
||||||
mat print a
|
mat print a
|
||||||
mat input a
|
mat input a
|
||||||
mat print a
|
mat print a
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.input <<'eof'
|
|
||||||
1,2,3,4,5
|
|
||||||
1
|
|
||||||
3,4
|
|
||||||
eof
|
|
||||||
|
|
||||||
cat >test.ref <<'eof'
|
|
||||||
?
|
|
||||||
1 2
|
|
||||||
3 4
|
|
||||||
? ?
|
|
||||||
1 0
|
|
||||||
3 4
|
|
||||||
eof
|
|
||||||
|
|
||||||
sh ./test/runbas test.bas <test.input >test.data
|
|
||||||
|
|
||||||
if cmp test.ref test.data
|
|
||||||
then
|
|
||||||
rm -f test.*
|
|
||||||
echo passed
|
|
||||||
else
|
|
||||||
echo failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user