📄 tsfunc.tpl
字号:
REM tSFunc.tpl
REM EPOC OPL automatic test code for string functions.
REM Copyright (c) 1991-2000 Symbian Ltd. All rights reserved.
INCLUDE "Const.oph"
INCLUDE "hUtils.oph"
PROC Standalone:
REM Main procedure called when not running inside test harness.
LOADM KhUtils$
hLink:("tSFunc", hThreadIdFromOplDoc&:, KhUserFull%)
REM After standalone completion, control returns here.
rem dINIT "Tests complete" :DIALOG
gIPRINT "Tests complete" :PAUSE 10
ENDP
proc tSFunc:
rem hInitTestHarness:(KhInitLocalErrorHandling%, KhInitNotUsed%)
rem Strtest:("String Functions")
hRunTest%:("tHexStr")
hRunTest%:("tPeekStr")
hRunTest%:("tReptStr")
hRunTest%:("tLowerStr")
hRunTest%:("tUpperStr")
hRunTest%:("tChrStr")
hRunTest%:("tNumStr")
hRunTest%:("tErrStr")
hRunTest%:("tDateStr")
hRunTest%:("tFixStr")
hRunTest%:("tGenStr")
hRunTest%:("tSlice")
hRunTest%:("tDirN")
hRunTest%:("tSciStr")
rem hCleanUp%:("CleanUp")
rem KLog%:(KhLogHigh%,"Some sample text")
endp
REM--------------------------------------------------------------------------
proc tSlice:
tMid:
tLeft:
tRight:
endp
proc tMid:
local a$(255),i%,j%
rem SubTest:("MID$ test")
rem print mid$("123",1,0)
rem print mid$("123",1,1)
rem print mid$("123",1,2)
rem print mid$("123",1,3)
rem print mid$("123",1,4)
if mid$("123",1,0)<>"" :raise 1 :endif
if mid$("123",1,1)<>"1" :raise 2 :endif
if mid$("123",1,2)<>"12" :raise 3 :endif
if mid$("123",1,3)<>"123" :raise 4 :endif
if mid$("123",1,4)<>"123" :raise 5 :endif
rem print mid$("123",2,0)
rem print mid$("123",2,1)
rem print mid$("123",2,2)
rem print mid$("123",2,3)
if mid$("123",2,0)<>"" :raise 6 :endif
if mid$("123",2,1)<>"2" :raise 7 :endif
if mid$("123",2,2)<>"23" :raise 8 :endif
if mid$("123",2,3)<>"23" :raise 9 :endif
rem print mid$("123",3,0)
rem print mid$("123",3,1)
rem print mid$("123",3,2)
if mid$("123",3,0)<>"" :raise 10 :endif
if mid$("123",3,1)<>"3" :raise 11 :endif
if mid$("123",3,2)<>"3" :raise 12 :endif
rem print mid$("123",4,0)
rem print mid$("123",4,1)
if mid$("123",4,0)<>"" :raise 13 :endif
if mid$("123",4,1)<>"" :raise 14 :endif
if mid$("",1,1)<>"" :raise 100 :endif
onerr e1::
print mid$("123",0,1)
onerr off
raise 16
e1::
onerr off
if err<>KErrInvalidArgs% :raise 17 :endif
onerr e2::
print mid$("123",-1,1)
onerr off
raise 18
e2::
onerr off
if err<>KErrInvalidArgs% :raise 19 :endif
onerr e3::
print mid$("123",1,-1)
onerr off : raise 20
e3::
onerr off
if err<>KErrInvalidArgs%
raise 21
endif
cont::
a$="1"+rept$("X",253)+"2"
if mid$(a$,1,1)<>"1"
raise 22
endif
if mid$(a$,255,1)<>"2"
raise 23
endif
if mid$(a$,2,253)<>rept$("X",253)
raise 24
endif
if mid$(a$,1,255)<>a$
raise 25
endif
if mid$(a$,1,32766)<>a$
raise 26
endif
endp
proc tRight:
local a$(255)
rem SubTest:("RIGHT$ test")
rem print right$("123",0)
rem print right$("123",1)
rem print right$("123",2)
rem print right$("123",3)
rem print right$("123",4)
if right$("123",0)<>"" :raise 1 :endif
if right$("123",1)<>"3" :raise 2 :endif
if right$("123",2)<>"23" :raise 3 :endif
if right$("123",3)<>"123" :raise 4 :endif
if right$("123",4)<>"123" :raise 5 :endif
if right$("",1)<>"" :raise 100 :endif
onerr e3::
print right$("123",-1)
onerr off : raise 20
e3::
onerr off
if err<>KErrInvalidArgs%
raise 21
endif
cont::
a$="1"+rept$("X",253)+"2"
if right$(a$,1)<>"2"
raise 22
endif
if right$(a$,255)<>a$
raise 23
endif
if right$(a$,32766)<>a$
raise 24
endif
endp
proc tLeft:
local a$(255)
rem SubTest:("LEFT$ test")
rem print left$("123",0)
rem print left$("123",1)
rem print left$("123",2)
rem print left$("123",3)
rem print left$("123",4)
if left$("123",0)<>"" :raise 1 :endif
if left$("123",1)<>"1" :raise 2 :endif
if left$("123",2)<>"12" :raise 3 :endif
if left$("123",3)<>"123" :raise 4 :endif
if left$("123",4)<>"123" :raise 5 :endif
if left$("",1)<>"" :raise 100 :endif
onerr e3::
print left$("123",-1)
onerr off : raise 20
e3::
onerr off
if err<>KErrInvalidArgs%
raise 21
endif
cont::
a$="1"+rept$("X",253)+"2"
if left$(a$,1)<>"1"
raise 22
endif
if left$(a$,255)<>a$
raise 23
endif
if left$(a$,32766)<>a$
raise 24
endif
endp
REM--------------------------------------------------------------------------
proc tDirN:
local n$(128),spec$(130),num%,fName1$(12),fName2$(12)
rem subTest:("Directory Test")
spec$="*.xyz"
trap delete "*.xyz"
fName1$="dir1.xyz"
fName2$="dir2.xyz"
lopen fName1$
lprint fName1$
lclose
lopen fName2$
lprint fName2$
lclose
rem print "Doing directory of",spec$
n$=dir$(spec$)
num%=0
while n$<>""
rem print n$
num%=num%+1
n$=dir$("")
endwh
if num%=2
rem print "Completed OK"
else
rem print num%,"files found" :beep 3,1000 :get
raise 1
endif
delete fName1$
delete fName2$
return
endp
REM-------------------------------------------------------------------------
proc tDateStr:
local second%,minute%,hour%,day%,dayN$(10),monthN$(20),date$(30),month%,year%
local bldDate$(30),dayInM$(2),day$(2),year$(6),hour$(4),minute$(4),second$(4)
rem SubTest:("Date String Functions")
date$=datim$
second%=second
minute%=minute
hour%=hour
year%=year
month%=month
monthN$=month$(month%)
day%=day
dayN$=dayName$(dow(day%,month%,year%))
dayInM$=num$(day%,-2)
if day%<10
dayInM$="0"+chr$($30+day%)
endif
year$=num$(year%,4)+" "
hour$=num$(hour%,2)+":"
if hour%<10
hour$="0"+hour$
endif
minute$=num$(minute%,2)+":"
if minute%<10
minute$="0"+minute$
endif
second$=num$(second%,2)
if second%<10
second$="0"+second$
endif
bldDate$=dayN$+" "+dayInM$+" "+monthN$+" "+year$+hour$+minute$+second$
rem print "datim$ ->",date$
rem print "Built name ->",bldDate$
rem pause pause% :key
if bldDate$<>date$
rem beep 3,500
rem print "Check tDate$:() : dates differ by at least 1 second"
rem print "String slice the text time when time is available"
rem pause pause% :key
raise 1
endif
onerr e1::
print dayName$(0)
onerr off
raise 2
e1::
onerr off
if err<>KErrInvalidArgs% :raise 3 :endif
onerr e2::
print dayName$(8)
onerr off
raise 4
e2::
onerr off
if err<>KErrInvalidArgs% :raise 5 :endif
onerr e3::
print dayName$(257)
onerr off
raise 6
e3::
onerr off
if err<>KErrInvalidArgs% :raise 7 :endif
onerr e4::
print dayName$(-1)
onerr off
raise 8
e4::
onerr off
if err<>KErrInvalidArgs% :raise 9 :endif
onerr e5::
print month$(0)
onerr off
raise 10
e5::
onerr off
if err<>KErrInvalidArgs% :raise 11 :endif
onerr e6::
print month$(13)
onerr off
raise 12
e6::
onerr off
if err<>KErrInvalidArgs% :raise 13 :endif
onerr e7::
print month$(257)
onerr off
raise 14
e7::
onerr off
if err<>KErrInvalidArgs% :raise 15 :endif
onerr e8::
print month$(-1)
onerr off
raise 16
e8::
onerr off
if err<>KErrInvalidArgs% :raise 17 :endif
endp
REM-------------------------------------------------------------------------
proc tErrStr:
onerr e1::
print 1/0
onerr off : raise 1
e1::
onerr off
if err$(err)<>"Divide by zero"
raise 2
endif
endp
REM-------------------------------------------------------------------------
proc tSciStr:
local a$(255),name$(10)
name$="SCI$ test"
rem SubTest:(name$)
a$=sci$(123,2,8)
rem print "sci$(123,2,8)->";a$
testErr:(a$,"1.23E+02",1,name$)
a$=sci$(123,2,-8)
rem print "sci$(123,2,-8)->";a$
testErr:(a$,"1.23E+02",2,name$)
a$=sci$(123,2,-20)
rem print "sci$(123,2,-20)->";a$
testErr:(a$," 1.23E+02",3,name$)
a$=sci$(123,2,7)
rem print "sci$(123,2,7)->";a$
testErr:(a$,"*******",4,name$)
a$=sci$(123,0,5)
rem print "sci$(123,0,5)->";a$
testErr:(a$,"1E+02",5,name$)
a$=sci$(123,0,4)
rem print "sci$(123,0,4)->";a$
testErr:(a$,"****",6,name$)
a$=sci$(123,128,3)
rem print "sci$(123,128,3)->";a$
testErr:(a$,"***",7,name$)
a$=sci$(-123.456,2,9)
rem print "sci$(-123.456,2,9)->";a$
testErr:(a$,"-1.23E+02",8,name$)
a$=sci$(-123.456,2,8)
rem print "sci$(-123.456,2,8)->";a$
testErr:(a$,"********",9,name$)
a$=sci$(-123.456,0,6)
rem print "sci$(-123.456,0,6)->";a$
testErr:(a$,"-1E+02",10,name$)
a$=sci$(-123.456,0,5)
rem print "sci$(-123.456,0,5)->";a$
testErr:(a$,"*****",11,name$)
a$=sci$(-123.456,128,3)
rem print "sci$(-123.456,128,3)->";a$
testErr:(a$,"***",12,name$)
a$=sci$(0.000123456,2,-8)
rem print "sci$(0.000123456,2,-8)->";a$
testErr:(a$,"1.23E-04",13,name$)
a$=sci$(0.000123456,2,-10)
rem print "sci$(0.000123456,2,-10)->";a$
testErr:(a$," 1.23E-04",14,name$)
a$=sci$(-0.000123456,2,-9)
rem print "sci$(-0.000123456,2,-9)->";a$
testErr:(a$,"-1.23E-04",15,name$)
a$=sci$(-0.000123456,2,-8)
rem print "sci$(-0.000123456,2,-8)->";a$
testErr:(a$,"********",16,name$)
a$=sci$(1.7976931348623157e308,14,30)
rem print "sci$(1.7976931348623157e308,14,30)->";a$
testErr:(a$,"1.79769313486232E+308",17,name$)
a$=sci$(1.7976931348623157e308,14,-30)
rem print "sci$(1.7976931348623157e308,14,-30)->";a$
testErr:(a$," 1.79769313486232E+308",18,name$)
a$=sci$(1.23456789E200,5,16)
rem print "sci$(1.23456789E200,5,16)->";a$
testErr:(a$,"1.23457E+200",19,name$)
a$=sci$(1.23456789E200,5,-16)
rem print "sci$(1.23456789E200,5,-16)->";a$
testErr:(a$," 1.23457E+200",20,name$)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -