375 lines
6.8 KiB
Plaintext
375 lines
6.8 KiB
Plaintext
'--no-direct-mode --file TEST.TXT
|
|
DEF RANDOMTEST
|
|
VAR I
|
|
FOR I=0TO 7
|
|
RANDOMIZE I,1
|
|
ASSERT__ RND(I,100)==89,"RND(100)==89"
|
|
ASSERT__ RND(I,100)==33,"RND(100)==33"
|
|
ASSERT__ RND(I,100)==33,"RND(100)==33"
|
|
ASSERT__ RND(I,100)==52,"RND(100)==52"
|
|
ASSERT__ VAL(STR$(RNDF(I)))==0.836095,"VAL(STR$(RNDF()))==0.836095"
|
|
ASSERT__ RND(I,100)==66,"RND(100)==66"
|
|
NEXT
|
|
END
|
|
?"RANDOMTEST"
|
|
RANDOMTEST
|
|
DEF MAXMINTEST
|
|
ASSERT__ MAX(0,1,2,3,4,5,4,3,2,1,0)==5,"MAX"
|
|
ASSERT__ MIN(5,4,3,2,1,0,1,2,3,4,5)==0,"MIN"
|
|
DIM A[5]
|
|
FOR I=0 TO LEN(A)-1
|
|
A[I]=I+1
|
|
NEXT
|
|
ASSERT__ MAX(A)==5,"MAX"
|
|
ASSERT__ MIN(A)==1,"MIN"
|
|
ASSERT__ MAX(2,0)*&H7FFFFFFF==-2,"MAX"
|
|
ASSERT__ MAX(2,0,0)*&H7FFFFFFF==4294967294,"MAX"
|
|
ASSERT__ MIN(2,4)*&H7FFFFFFF==-2,"MIN"
|
|
ASSERT__ MIN(2,4,4)*&H7FFFFFFF==4294967294,"MIN"
|
|
END
|
|
?"MAXMINTEST"
|
|
MAXMINTEST
|
|
|
|
DEF SORTTEST
|
|
DIM A[4]
|
|
DIM B$[4]
|
|
DIM C$[4]
|
|
A[0]=3
|
|
A[1]=2
|
|
A[2]=1
|
|
A[3]=0
|
|
B$[0]="0"
|
|
B$[1]="1"
|
|
B$[2]="2"
|
|
B$[3]="3"
|
|
C$[0]="A"
|
|
C$[1]="B"
|
|
C$[2]="C"
|
|
C$[3]="D"
|
|
SORT A,B$,C$
|
|
ASSERT__ A[0]==0,"SORT"
|
|
ASSERT__ B$[0]=="3","SORT"
|
|
ASSERT__ C$[0]=="D","SORT"
|
|
RSORT A,B$,C$
|
|
ASSERT__ A[3]==0,"RSORT"
|
|
ASSERT__ B$[3]=="3","RSORT"
|
|
ASSERT__ C$[3]=="D","RSORT"
|
|
RSORT B$
|
|
ASSERT__ B$[3]=="0","RSORT2"
|
|
SORTTEST2
|
|
STABLESORTTEST
|
|
STABLERSORTTEST
|
|
END
|
|
DEF SORTTEST2
|
|
DIM A[10]
|
|
DIM B[10]
|
|
A[9]=-1
|
|
B[9]=12345
|
|
SORT 1,9,A,B
|
|
ASSERT__ A[1]==-1,"SORT"
|
|
ASSERT__ B[1]==12345,"SORT"
|
|
RSORT 1,8,A,B
|
|
ASSERT__ A[8]==-1,"RSORT"
|
|
ASSERT__ B[8]==12345,"RSORT"
|
|
END
|
|
DEF STABLESORTTEST
|
|
DIM A[0],B[0]
|
|
PUSH A,2:PUSH B,3
|
|
PUSH A,3:PUSH B,4
|
|
PUSH A,1:PUSH B,1
|
|
PUSH A,1:PUSH B,2
|
|
SORT A,B
|
|
ASSERT__ A[0]==1,"STABLESORT"
|
|
ASSERT__ A[1]==1,"STABLESORT"
|
|
ASSERT__ A[2]==2,"STABLESORT"
|
|
ASSERT__ A[3]==3,"STABLESORT"
|
|
ASSERT__ B[0]==1,"STABLESORT"
|
|
ASSERT__ B[1]==2,"STABLESORT"
|
|
ASSERT__ B[2]==3,"STABLESORT"
|
|
ASSERT__ B[3]==4,"STABLESORT"
|
|
END
|
|
|
|
DEF STABLERSORTTEST
|
|
DIM A[0],B[0]
|
|
PUSH A,2:PUSH B,3
|
|
PUSH A,3:PUSH B,4
|
|
PUSH A,1:PUSH B,1
|
|
PUSH A,1:PUSH B,2
|
|
RSORT A,B
|
|
ASSERT__ A[0]==3,"STABLESORT"
|
|
ASSERT__ A[1]==2,"STABLESORT"
|
|
ASSERT__ A[2]==1,"STABLESORT"
|
|
ASSERT__ A[3]==1,"STABLESORT"
|
|
ASSERT__ B[0]==4,"STABLESORT"
|
|
ASSERT__ B[1]==3,"STABLESORT"
|
|
ASSERT__ B[2]==2,"STABLESORT"
|
|
ASSERT__ B[3]==1,"STABLESORT"
|
|
END
|
|
?"SORTTEST"
|
|
SORTTEST
|
|
?"SWAPTEST"
|
|
SWAPTEST
|
|
DEF SWAPTEST
|
|
VAR A=1
|
|
VAR B=2
|
|
SWAP A,B
|
|
ASSERT__ B==1, "SWAP1"
|
|
ASSERT__ A==2, "SWAP2"
|
|
VAR A$="1
|
|
VAR B$="2
|
|
SWAP A$,B$
|
|
ASSERT__ B$=="1", "SWAP3"
|
|
ASSERT__ A$=="2", "SWAP4"
|
|
VAR A%=1
|
|
VAR B#=2.34567
|
|
SWAP A%,B#
|
|
ASSERT__ B#==1, "SWAP5"
|
|
ASSERT__ A%==2, "SWAP6"
|
|
END
|
|
|
|
'REPEAT TEST
|
|
?"REPEAT(1)"
|
|
VAR REPEATTEST
|
|
REPEAT
|
|
REPEATTEST=TRUE
|
|
BREAK
|
|
ASSERT__ FALSE, "REPEAT"
|
|
UNTIL FALSE
|
|
ASSERT__ REPEATTEST, "REPEAT"
|
|
|
|
?"REPEAT(2)"
|
|
VAR REPEATTEST2
|
|
REPEAT
|
|
REPEATTEST2=1
|
|
CONTINUE
|
|
ASSERT__ FALSE, "REPEAT"
|
|
UNTIL REPEATTEST2
|
|
ASSERT__ REPEATTEST2, "REPEAT"
|
|
|
|
?"REPEAT(3)"
|
|
REPEAT
|
|
CONTINUE
|
|
ASSERT__ FALSE, "REPEAT"
|
|
UNTIL TRUE
|
|
|
|
?"REPEAT(4)"
|
|
VAR REPEATTEST4
|
|
REPEAT
|
|
REPEATTEST4=TRUE
|
|
UNTIL TRUE
|
|
ASSERT__ REPEATTEST4, "REPEAT"
|
|
|
|
?"IFTEST"
|
|
VAR IFTEST=FALSE
|
|
IF TRUE THEN
|
|
IFTEST=TRUE
|
|
ENDIF
|
|
ASSERT__ IFTEST, "IF"
|
|
|
|
VAR IFTEST2=FALSE
|
|
IF TRUE THEN IFTEST2=TRUE
|
|
ASSERT__ IFTEST2, "IF"
|
|
|
|
VAR ELSETEST=FALSE
|
|
IF FALSE THEN
|
|
ELSE
|
|
ELSETEST=TRUE
|
|
ENDIF
|
|
ASSERT__ ELSETEST, "ELSE"
|
|
|
|
VAR ELSETEST2=FALSE
|
|
IF FALSE THEN ELSE ELSETEST2=TRUE:ENDIF
|
|
ASSERT__ ELSETEST2, "ELSE"
|
|
|
|
|
|
VAR ELSEIFTEST=FALSE
|
|
IF FALSE THEN
|
|
ELSEIFTEST=FALSE
|
|
ELSEIF FALSE THEN
|
|
ELSEIFTEST=FALSE
|
|
ELSEIF TRUE THEN
|
|
ELSEIFTEST=TRUE
|
|
ELSEIF FALSE THEN
|
|
ELSEIFTEST=FALSE
|
|
ELSE
|
|
ELSEIFTEST=FALSE
|
|
ENDIF
|
|
ASSERT__ ELSEIFTEST, "ELSEIFTEST"
|
|
|
|
VAR ELSEIFTEST2=FALSE
|
|
IF FALSE THEN ELSEIFTEST2=FALSE ELSEIF FALSE THEN ELSEIFTEST2=FALSE ELSEIF TRUE THEN ELSEIFTEST2=TRUE ELSEIF FALSE THEN ELSEIFTEST2=FALSE ELSE ELSEIFTEST2=FALSE ENDIF
|
|
ASSERT__ ELSEIFTEST2, "ELSEIFTEST"
|
|
|
|
?"CALLTEST"
|
|
DEF CALLTEST(V)
|
|
RETURN V
|
|
END
|
|
CALL "SPDEF",1192 OUT A,B
|
|
|
|
ASSERT__ A==464, "CALLTEST"
|
|
ASSERT__ B==384, "CALLTEST"
|
|
ASSERT__ CALL("CALLTEST", TRUE), "CALLTEST"
|
|
DEF TESST X,A$
|
|
IF Y<0 THEN Y=28
|
|
IF X<0 THEN X=20-(LEN(A$)/2)
|
|
AA
|
|
?X
|
|
END
|
|
DEF AA
|
|
X=999
|
|
END
|
|
TESST -1,"AAAAAAAAAAAAAAAAAAAA"
|
|
?"FLOOT/CEIL/ROUND TEST"
|
|
ASSERT__ FLOOR(0.5)==0, "FLOOR"
|
|
ASSERT__ FLOOR(1)==1, "FLOOR"
|
|
ASSERT__ FLOOR(1.5)==1, "FLOOR"
|
|
ASSERT__ CEIL(0.5)==1, "CEIL"
|
|
ASSERT__ CEIL(1)==1, "CEIL"
|
|
ASSERT__ CEIL(1.25)==2, "CEIL"
|
|
ASSERT__ CEIL(1.5)==2, "CEIL"
|
|
ASSERT__ ROUND(0.5)==1, "ROUND"
|
|
ASSERT__ ROUND(1)==1, "ROUND"
|
|
ASSERT__ ROUND(1.25)==1, "ROUND"
|
|
ASSERT__ ROUND(1.5)==2, "ROUND"
|
|
|
|
ASSERT__ FLOOR(-0.5)==-1, "FLOOR"
|
|
ASSERT__ FLOOR(-1)==-1, "FLOOR"
|
|
ASSERT__ FLOOR(-1.5)==-2, "FLOOR"
|
|
ASSERT__ CEIL(-0.5)==-0, "CEIL"
|
|
ASSERT__ CEIL(-1)==-1, "CEIL"
|
|
ASSERT__ CEIL(-1.25)==-1, "CEIL"
|
|
ASSERT__ CEIL(-1.5)==-1, "CEIL"
|
|
ASSERT__ ROUND(-0.5)==-1, "ROUND"
|
|
ASSERT__ ROUND(-1)==-1, "ROUND"
|
|
ASSERT__ ROUND(-1.25)==-1, "ROUND"
|
|
ASSERT__ ROUND(-1.5)==-2, "ROUND"
|
|
|
|
?"VAL TEST"
|
|
ASSERT__ VAL("0")==0, "VAL"
|
|
ASSERT__ VAL("1")==1, "VAL"
|
|
ASSERT__ VAL("-1")==-1, "VAL"
|
|
ASSERT__ VAL("&HA")==10, "VAL"
|
|
ASSERT__ VAL("&H-A")==0, "VAL"
|
|
ASSERT__ VAL("&B10")==2, "VAL"
|
|
ASSERT__ VAL("aa")==0, "VAL"
|
|
|
|
?"RAD/DEG TEST"
|
|
ASSERT__ RAD(180)==PI(), "RAD"
|
|
ASSERT__ DEG(RAD(180)), "DEG"
|
|
?"HEX$ TEST"
|
|
ASSERT__ HEX$(65535, 8)=="0000FFFF", "HEX$"
|
|
?"SUBST$ TEST"
|
|
ASSERT__ SUBST$("0123456789",0,"B")=="B","SUBST$"
|
|
ASSERT__ SUBST$("0123456789",0,4,"B")=="B456789","SUBST$"
|
|
ASSERT__ SUBST$("",0,4,"B")=="B","SUBST$"
|
|
DIM ARRY[10]
|
|
?ARRY[0],FORMAT$("%D",100)
|
|
GOSUB@A
|
|
GOTO@B
|
|
'A=SIN(B)
|
|
'?Y2,SIN(DAY * 2 * 3.141 / BDAY),LINEH,LINEC
|
|
@A
|
|
Y2 = LINEC - SIN(DAY * 2 * 3 / BDAY) * LINEH
|
|
RETURN
|
|
@B
|
|
?DATE$, TIME$
|
|
DTREAD "2014/10/12" OUT Y,M,D
|
|
?Y,M,D
|
|
?SIN(1)
|
|
'COMMENT'
|
|
ASSERT__ 1, "TRUE"
|
|
A$="A"
|
|
ASSERT__ A$=="A", "A$==A"
|
|
A$=A$+"B"
|
|
ASSERT__ A$=="AB", "A$==AA"
|
|
A=0
|
|
INC A
|
|
ASSERT__ A==1, "A==1"
|
|
INC A, 3
|
|
ASSERT__ A==4, "A==4"
|
|
DEC A, 3
|
|
ASSERT__ A==1, "A==1"
|
|
DEC A
|
|
ASSERT__ A==0, "A==0"
|
|
INCTEST 10
|
|
DEF INCTEST A
|
|
INC A
|
|
ASSERT__ A==11, "A==11"
|
|
INC A, 3
|
|
ASSERT__ A==14, "A==14"
|
|
DEC A, 3
|
|
ASSERT__ A==11, "A==11"
|
|
DEC A
|
|
ASSERT__ A==10, "A==10"
|
|
END
|
|
GOTOTEST
|
|
GOTO@SKIP
|
|
@LOCAL
|
|
ASSERT__ 0, "LOCAL LABEL"
|
|
@SKIP
|
|
DEF GOTOTEST
|
|
GOTO @LOCAL
|
|
ASSERT__ 0, "LOCAL LABEL"
|
|
@LOCAL
|
|
END
|
|
|
|
ON 1 GOTO @0,@1,@2,@3
|
|
@0
|
|
ASSERT__ 0, "ON GOTO"
|
|
@2
|
|
ASSERT__ 0, "ON GOTO"
|
|
@3
|
|
ASSERT__ 0, "ON GOTO"
|
|
@1
|
|
ONGOTOTEST
|
|
DEF ONGOTOTEST
|
|
ON 1 GOTO @0,@1,@2,@3
|
|
@0
|
|
ASSERT__ 0, "LOCAL ON GOTO"
|
|
@2
|
|
ASSERT__ 0, "LOCAL ON GOTO"
|
|
@3
|
|
ASSERT__ 0, "LOCAL ON GOTO"
|
|
@1
|
|
END
|
|
ON 1 GOSUB @ONGOSUB0,@ONGOSUB1,@ONGOSUB2,@ONGOSUB3
|
|
GOTO@ONGOSUB4
|
|
@ONGOSUB0
|
|
ASSERT__ 0, "ON GOSUB"
|
|
@ONGOSUB2
|
|
ASSERT__ 0, "ON GOSUB"
|
|
@ONGOSUB3
|
|
ASSERT__ 0, "ON GOSUB"
|
|
@ONGOSUB1
|
|
RETURN
|
|
@ONGOSUB4
|
|
ONGOSUBTEST
|
|
DEF ONGOSUBTEST
|
|
ON 1 GOTO @0,@1,@2,@3
|
|
GOTO@4
|
|
@0
|
|
ASSERT__ 0, "ON ONGOSUB"
|
|
@2
|
|
ASSERT__ 0, "ON ONGOSUB"
|
|
@3
|
|
ASSERT__ 0, "ON ONGOSUB"
|
|
@1
|
|
RETURN
|
|
@4
|
|
END
|
|
@DATA_1
|
|
DIM ARY[2]
|
|
DATA "A",1,2,3,4,5
|
|
READ DATA$,_1,_2
|
|
READ _3,_4
|
|
READ ARY[_1]
|
|
ASSERT__ DATA$=="A", "DATA"
|
|
ASSERT__ _1==1, "DATA"
|
|
ASSERT__ _2==2, "DATA"
|
|
ASSERT__ _3==3, "DATA"
|
|
ASSERT__ _4==4, "DATA"
|
|
ASSERT__ ARY[1]==5, "DATA"
|
|
LOCATE 10,
|
|
COLOR 1,15
|
|
PRINT "Test has been run successfully."
|