📄 tsfunc.tpl
字号:
a$=sci$(1E100,0,10)
rem print "sci$(1E100,0,10)->";a$
testErr:(a$,"1E+100",21,name$)
a$=sci$(1E100,0,-10)
rem print "sci$(1E100,0,-10)->";a$
testErr:(a$," 1E+100",22,name$)
a$=sci$(2.2250738585072015e-308,14,30)
rem print "sci$(2.2250738585072015e-308,14,30)->";a$
testErr:(a$,"2.22507385850720E-308",23,name$)
a$=sci$(2.2250738585072015e-308,14,-30)
rem print "sci$(2.2250738585072015e-308,14,-30)->";a$
testErr:(a$," 2.22507385850720E-308",24,name$)
a$=sci$(1.23456789E-200,5,16)
rem print "sci$(1.23456789E-200,5,16)->";a$
testErr:(a$,"1.23457E-200",25,name$)
a$=sci$(1.23456789E-200,5,-16)
rem print "sci$(1.23456789E-200,5,-16)->";a$
testErr:(a$," 1.23457E-200",26,name$)
a$=sci$(1E-100,0,10)
rem print "sci$(1E-100,0,10)->";a$
testErr:(a$,"1E-100",27,name$)
a$=sci$(1E-100,0,-10)
rem print "sci$(1E-100,0,-10)->";a$
testErr:(a$," 1E-100",28,name$)
a$=sci$(5E-324,0,10)
rem print "sci$(5E-324,0,10)->";a$
testErr:(a$,"5E-324",29,name$)
a$=sci$(5E-324,0,-10)
rem print "sci$(5E-324,0,-10)->";a$
testErr:(a$," 5E-324",28,name$)
endp
proc tFixStr:
local a$(255),name$(12)
name$="FIX$ test"
rem SubTest:(name$)
a$=fix$(123456.127,2,9)
rem print "fix$(123456.127,2,9)->";a$
testErr:(a$,"123456.13",1,name$)
a$=fix$(1,2,-5)
rem print "fix$(1,2,-5)->";a$
testErr:(a$," 1.00",2,name$)
a$=fix$(1.234,2,3)
rem print "fix$(123,2,7)->";a$
testErr:(a$,"***",4,name$)
a$=fix$(123,0,5)
rem print "fix$(123,0,5)->";a$
testErr:(a$,"123",5,name$)
a$=fix$(123,0,2)
rem print "fix$(123,0,2)->";a$
testErr:(a$,"**",6,name$)
a$=fix$(123,128,3)
rem print "fix$(123,128,3)->";a$
testErr:(a$,"***",7,name$)
a$=fix$(-123.456,2,9)
rem print "fix$(-123.456,2,9)->";a$
testErr:(a$,"-123.46",8,name$)
a$=fix$(-123.456,2,6)
rem print "fix$(-123.456,2,6)->";a$
testErr:(a$,"******",9,name$)
a$=fix$(0.000123456,10,-13)
rem print "fix$(0.000123456,10,-13)->";a$
testErr:(a$," 0.0001234560",10,name$)
a$=fix$(-0.000123456,10,-12)
rem print "fix$(-0.000123456,10,-12)->";a$
testErr:(a$,"************",11,name$)
a$=fix$(1.7976931348623157e308,14,30)
rem print "fix$(1.7976931348623157e308,14,30)->";a$
testErr:(a$,"******************************",12,name$)
a$=fix$(1.7976931348623157e308,14,-30)
rem print "fix$(1.7976931348623157e308,14,-30)->";a$
testErr:(a$,"******************************",13,name$)
a$=fix$(1.23456789E200,5,16)
rem print "fix$(1.23456789E200,5,16)->";a$
testErr:(a$,"****************",14,name$)
a$=fix$(1.23456789E200,5,-16)
rem print "fix$(1.23456789E200,5,-16)->";a$
testErr:(a$,"****************",15,name$)
a$=fix$(1E100,0,10)
rem print "fix$(1E100,0,10)->";a$
testErr:(a$,"**********",16,name$)
a$=fix$(1E100,0,-10)
rem print "fix$(1E100,0,-10)->";a$
testErr:(a$,"**********",17,name$)
a$=fix$(2.2250738585072015e-308,14,30)
rem print "fix$(2.2250738585072015e-308,14,30)->";a$
testErr:(a$,"0.00000000000000",18,name$)
a$=fix$(2.2250738585072015e-308,14,-30)
rem print "fix$(2.2250738585072015e-308,14,-30)->";a$
testErr:(a$," 0.00000000000000",19,name$)
a$=fix$(1.23456789E-200,5,16)
rem print "fix$(1.23456789E-200,5,16)->";a$
testErr:(a$,"0.00000",20,name$)
a$=fix$(1.23456789E-200,5,-16)
rem print "fix$(1.23456789E-200,5,-16)->";a$
testErr:(a$," 0.00000",21,name$)
a$=fix$(1E-100,0,10)
rem print "fix$(1E-100,0,10)->";a$
testErr:(a$,"0",22,name$)
a$=fix$(1E-100,0,-10)
rem print "fix$(1E-100,0,-10)->";a$
testErr:(a$," 0",23,name$)
a$=fix$(5E-324,0,10)
rem print "fix$(5E-324,0,10)->";a$
testErr:(a$,"0",24,name$)
a$=fix$(5E-324,0,-10)
rem print "fix$(5E-324,0,-10)->";a$
testErr:(a$," 0",25,name$)
endp
proc tNumStr:
global raiseNo%
local name$(12)
name$="NUM$ test"
rem SubTest:(name$)
numChk$:(1.1,6,"1",name$)
numChk$:(1.1,-6," 1",name$)
numChk$:(-1.1,6,"-1",name$)
numChk$:(-1.1,-6," -1",name$)
numChk$:(1.1,1,"1",name$)
numChk$:(-1.1,2,"-1",name$)
numChk$:(1.1e99,6,"******",name$)
numChk$:(-1.1e99,6,"******",name$)
numChk$:(1.1e-99,-6," 0",name$)
numChk$:(-1.1e-99,-6," 0",name$)
numChk$:(1.5,6,"2",name$)
numChk$:(-1.5,6,"-2",name$)
numChk$:(1.6,6,"2",name$)
numChk$:(-1.6,6,"-2",name$)
numChk$:(1.4,6,"1",name$)
numChk$:(-1.4,6,"-1",name$)
numChk$:(1.0,0,"",name$)
numChk$:(-1.0,0,"",name$)
numChk$:(1.797E308,5,"*****",name$)
numChk$:(1E100,6,"******",name$)
onerr e1
print num$(1,256)
onerr off
raise 100
e1::
onerr e2
print num$(1,65535)
onerr off
raise 101
e2::
endp
proc numChk$:(dVal,width%,res$,name$)
local a$(255)
raiseNo%=raiseNo%+1
a$=num$(dVal,width%)
rem print "num$(";dVal;",";width%;") ->",a$
testErr:(a$,res$,raiseNo%,name$)
endp
proc tGenStr:
local a$(255),name$(10)
name$="GEN$ test"
rem SubTest:(name$)
a$=gen$(1.1,6)
rem print "gen$(1.1,6) ->",a$
testErr:(a$,"1.1",1,name$)
a$=gen$(-1.1,6)
rem print "gen$(-1.1,6) ->",a$
testErr:(a$,"-1.1",2,name$)
a$=gen$(1.1e99,7)
rem print "gen$(1.1e99,7) ->",a$
testErr:(a$,"1.1E+99",3,name$)
a$=gen$(-1.1e-99,-9)
rem print "gen$(-1.1e-99,-9) ->",a$
testErr:(a$," -1.1E-99",4,name$)
a$=gen$(10000.0,5)
rem print "gen$(10000.0,5) ->",a$
testErr:(a$,"10000",5,name$)
a$=gen$(1.1e5,-8)
rem print "gen$(1.1e5,-8) ->",a$
testErr:(a$," 110000",6,name$)
a$=gen$(10000.1,7)
rem print "gen$(10000.1,7) ->",a$
testErr:(a$,"10000.1",7,name$)
a$=gen$(1.7976931348623157e308,30)
rem print "gen$(1.7976931348623157e308,30)->";a$
testErr:(a$,"1.79769313486232E+308",8,name$)
a$=gen$(1.7976931348623157e308,-30)
rem print "gen$(1.7976931348623157e308,-30)->";a$
testErr:(a$," 1.79769313486232E+308",9,name$)
a$=gen$(1.23456789E200,12)
rem print "gen$(1.23456789E200,12)->";a$
testErr:(a$,"1.23457E+200",10,name$)
a$=gen$(1.23456789E200,-12)
rem print "gen$(1.23456789E200,-12)->";a$
testErr:(a$,"1.23457E+200",11,name$)
a$=gen$(1E100,10)
rem print "gen$(1E100,10)->";a$
testErr:(a$,"1E+100",12,name$)
a$=gen$(1E100,-10)
rem print "gen$(1E100,-10)->";a$
testErr:(a$," 1E+100",13,name$)
a$=gen$(2.2250738585072015e-308,30)
rem print "gen$(2.2250738585072015e-308,30)->";a$
testErr:(a$,"2.2250738585072E-308",14,name$)
a$=gen$(2.2250738585072015e-308,-30)
rem print "gen$(2.2250738585072015e-308,-30)->";a$
testErr:(a$," 2.2250738585072E-308",15,name$)
a$=gen$(1.23456789E-200,12)
rem print "gen$(1.23456789E-200,12)->";a$
testErr:(a$,"1.23457E-200",16,name$)
a$=gen$(1.23456789E-200,-12)
rem print "gen$(1.23456789E-200,-12)->";a$
testErr:(a$,"1.23457E-200",17,name$)
a$=gen$(1E-100,10)
rem print "gen$(1E-100,10)->";a$
testErr:(a$,"1E-100",18,name$)
a$=gen$(1E-100,-10)
rem print "gen$(1E-100,-10)->";a$
testErr:(a$," 1E-100",19,name$)
hlog%:(KhLogalways%,"ERROR !!TODO defect EDNRANS-4KDEFM Skipping rounding errors.")
a$=gen$(5E-324,10)
rem print "gen$(5E-324,10)->";a$
testErr:(a$,"5E-324",20,name$)
a$=gen$(5E-324,-10)
rem print "gen$(5E-324,-10)->";a$
testErr:(a$," 5E-324",21,name$)
endp
proc testErr:(conv$,expect$,err%,name$)
if conv$<>expect$
hLog%:(khLogAlways%,"ConvertedResult=["+conv$+"]")
hLog%:(khLogAlways%,"Expected result=["+expect$+"]")
raise err
rem print "Error in",name$
rem pause 50
endif
endp
REM--------------------------------------------------------------------------
proc tChrStr:
rem SubTest:("CHR$ test")
if chr$($31)<>"1" :raise 1 :endif
REM No longer true on Unicode system
REM if chr$($131)<>"1" :raise 2 :endif
endp
REM--------------------------------------------------------------------------
proc tHexStr:
local h$(10)
rem SubTest:("HEX$ test")
h$ = hex$(0)
if h$ <> "0"
raise 1
endif
h$ = hex$($ff)
if h$ <> "FF"
raise 2
endif
h$ = hex$(&ffff)
if h$ <> "FFFF"
raise 3
endif
h$ = hex$(&0ffff)
if h$ <> "FFFF"
raise 4
endif
h$ = hex$(&fedcba98)
if h$ <> "FEDCBA98"
raise 5
endif
endp
REM--------------------------------------------------------------------------
proc tLowerStr:
local l$(255)
rem SubTest:("LOWER$ test")
l$=lower$("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
if l$<>"abcdefghijklmnopqrstuvwxyz"
raise 1
endif
if lower$("")<>"" :raise 2 :endif
l$=rept$("A",255)
if lower$(l$)<>rept$("a",255) :raise 3 :endif
endp
REM--------------------------------------------------------------------------
proc tUpperStr:
local u$(255)
rem SubTest:("UPPER$ test")
u$=upper$("abcdefghijklmnopqrstuvwxyz")
if u$<>"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
raise 1
endif
if upper$("")<>"" :raise 2 :endif
u$=rept$("a",255)
if upper$(u$)<>rept$("A",255) :raise 3 :endif
endp
REM--------------------------------------------------------------------------
proc tReptStr:
local s$(255),x$(25)
rem SubTest:("REPT$ test")
x$=rept$("X",25)
if x$ <> "XXXXXXXXXXXXXXXXXXXXXXXXX"
raise 1
endif
s$=rept$("X",255)
if s$<>x$+x$+x$+x$+x$+x$+x$+x$+x$+x$+"XXXXX"
raise 2
endif
if rept$("AB",3)<>"ABABAB"
raise 3
endif
s$=rept$("X",1)
if s$<>"X"
raise 4
endif
s$=rept$("",1000)
if s$<>""
raise 5
endif
onerr e1::
print rept$("A",256)
onerr off :raise 6
e1::
onerr off
if err<>KErrStrTooLong%
raise 7
endif
onerr e2::
print rept$("AB",128)
onerr off :raise 8
e2::
onerr off
if err<>KErrStrTooLong%
raise 9
endif
s$ = rept$(rept$("ABCDE",10),5)+"12345"
onerr e3::
print rept$(rept$("ABCDE",10),5)+"123456"
onerr off :raise 10
e3::
onerr off
if err<>KErrStrTooLong%
raise 11
endif
endp
REM-------------------------------------------------------------------------
proc tPeekStr:
local s$(255),p&
rem SubTest:("PEEK$ test")
p&=addr(s$)
s$="12345"
if peek$(p&)<>s$
raise 1
endif
s$=rept$("x",255)
if peek$(p&)<>s$
raise 2
endif
s$=rept$("y",254)
if peek$(p&)<>s$
raise 3
endif
s$="12345"+rept$("z",245)+"67890"
if peek$(p&)<>s$
raise 4
endif
s$=""
if peek$(p&)<>s$
raise 5
endif
endp
REM End of tSFunc.tpl
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -