⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tsfunc.tpl

📁 在手机操作系统symbina上使用的一个脚本扩展语言的代码实现,可以参考用于自己的开发
💻 TPL
📖 第 1 页 / 共 2 页
字号:
  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 + -