class StringT is subclass of TestDriver
functions
public tests : () -> seq of TestCase
tests () ==
[
new StringT01(), new StringT02(),
new StringT03(), new StringT04(),
new StringT05(), new StringT06(),
new StringT07(), new StringT08(),
new StringT09(), -- new StringT10(),
new StringT11(), new StringT12(),
new StringT13(), new StringT14()
];
end StringT
class StringT01 is subclass of TestCase
operations
protected test: () ==> bool
test() ==
let c = new Character() in
return
(
c.isDigit('0' ) = true and
c.isDigit('1' ) = true and
c.isDigit('2' ) = true and
c.isDigit('3' ) = true and
c.isDigit('4' ) = true and
c.isDigit('5' ) = true and
c.isDigit('6' ) = true and
c.isDigit('7' ) = true and
c.isDigit('8' ) = true and
c.isDigit('9' ) = true and
c.isDigit('a' ) = false and
c.asDigit('0' ) = 0 and
c.asDigit('1' ) = 1 and
c.asDigit('2' ) = 2 and
c.asDigit('3' ) = 3 and
c.asDigit('4' ) = 4 and
c.asDigit('5' ) = 5 and
c.asDigit('6' ) = 6 and
c.asDigit('7' ) = 7 and
c.asDigit('8' ) = 8 and
c.asDigit('9' ) = 9 and
c.asDigit('a' ) = false )
;
protected setUp: () ==> ()
setUp() == TestName := "StringT01:\tConvert digit to integer." ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT01
class StringT02 is subclass of TestCase
operations
protected test: () ==> bool
test() ==
let c = new Character() in
return
(c.asDictOrder('0' ) = 1 and
c.asDictOrder('9' ) = 10 and
c.asDictOrder('a' ) = 11 and
c.asDictOrder('A' ) = 12 and
c.asDictOrder('z' ) = 61 and
c.asDictOrder('Z' ) = 62 and
c.asDictOrder('\n' ) = 999999 and
c.asDictOrder('\t' ) = 999999 )
;
protected setUp: () ==> ()
setUp() == TestName := "StringT02:\tReturn dictionary order of character." ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT02
class StringT03 is subclass of TestCase
operations
protected test: () ==> bool
test() ==
let s = new String(),
LT = String`LT2,
LE = String`LE2,
GT = String`GT2,
GE = String`GE2
in
return
(s.LT("123" ,"123" ) = false and
LT("123" )("123" ) = false and
s.GT("123" ,"123" ) = false and
GT("123" )( "123" ) = false and
s.LT("" ,"" ) = false and
s.GT("" ,"" ) = false and
s.LT("" ,"123" ) = true and
s.GT("" ,"123" ) = false and
s.LT("123" ,"" ) = false and
s.GT("123" ,"" ) and
s.LT("123" ,"1234" ) and
s.GT("123" ,"1234" ) = false and
s.LT("1234" ,"123" ) = false and
s.GT("1234" ,"123" ) and
s.LT("123" ,"223" ) and
s.GT("123" ,"223" ) = false and
s.LE("123" ,"123" ) and
LE("123" )("123" ) and
s.GE("123" ,"123" ) and
s.LE("123" ,"1234" ) and
LE("123" )("1234" ) and
s.GE("123" ,"1234" ) = false and
GE("123" )("1234" ) = false and
s.LE("1234" ,"123" ) = false and
not LE("1234" )("123" ) and
s.GE("1234" ,"123" ) and
s.LE("" ,"" ) and
LE("" )("" ) and
Sequence`fmap[seq of char , bool ](LT("123" ))(["123" , "1234" , "" , "223" ]) = [false , true , false , true ] and
Sequence`fmap[seq of char , bool ](LE("123" ))(["1234" , "" ]) = [true , false ] and
Sequence`fmap[seq of char , bool ](GT("123" ))([ "123" , "" , "23" ]) = [false , true , false ] and
Sequence`fmap[seq of char , bool ](GE("123" ))(["1234" , "" ]) = [false , true ]
)
;
protected setUp: () ==> ()
setUp() == TestName := "StringT03:\tCompare magnitude of string." ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT03
class StringT04 is subclass of TestCase
operations
protected test: () ==> bool
test() ==
let s1234 = "1234" ,
s = new String() in
return
s1234 = "1234" and
s.isSpaces("" ) = true and
s.isSpaces(" " ) = true and
s.isSpaces(" \t " ) = true and
s.isSpaces([]) = true
;
protected setUp: () ==> ()
setUp() == TestName := "StringT04:\tCompare 2 strings is equal." ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT04
class StringT05 is subclass of TestCase
operations
protected test: () ==> bool
test() ==
let LT = Character`LT,
GT = Character`GT,
LE = Character`LE,
GE = Character`GE
in
return
(LT('a' ,'a' ) = false and
Character`LT2('a' )('a' ) = false and
GT('a' ,'a' ) = false and
Character`GT2('a' )('a' ) = false and
LT('1' ,'2' ) and
Character`LT2('1' )('2' ) and
GT('1' ,'0' ) and
Character`GT2('1' )('0' ) and
LT('9' ,'a' ) and
Character`LT2('9' )('a' ) and
GT('\n' ,'0' ) and
Character`GT2('\n' )('0' ) and
LE('a' ,'0' ) = false and
Character`LE2('a' )('0' ) = false and
GE('a' ,'0' ) and
Character`GE2('a' )('0' ) and
Sequence`fmap[char , bool ](Character`LT2('5' ))("456" ) = [false , false , true ]
)
;
protected setUp: () ==> ()
setUp() == TestName := "StringT05:\tCompare magnitude of character." ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT05
class StringT06 is subclass of TestCase
operations
protected test: () ==> bool
test() ==
let s = new String(),
substr = String`SubStr
in
return
(s.subStr("Shin Sahara" ,6 ,6 ) = "Sahara" and
s.subStr("Shin Sahara" ,6 ,8 ) = "Sahara" and
s.subStr("Shin Sahara" ,6 ,3 ) = "Sah" and
s.subStr("Shin Sahara" ,1 ,0 ) = "" and
s.subStrFill("sahara" ,1 ,3 ,'*' ) = "sah" and
s.subStrFill("sahara" ,1 ,6 ,'*' ) = "sahara" and
s.subStrFill("sahara" ,1 ,10 ,'*' ) = "sahara****" and
s.subStrFill("sahara" ,3 ,4 ,'*' ) = "hara" and
s.subStrFill("sahara" ,3 ,10 ,'*' ) = "hara******" and
s.subStrFill("sahara" ,1 ,0 ,'*' ) = "" and
s.subStrFill("" ,1 ,6 ,'*' ) = "******" and
String`SubStr(6 )(6 )("Shin Sahara" ) = "Sahara" and
substr(6 )(8 )("Shin Sahara" ) = "Sahara" and
Sequence`fmap[seq of char , seq of char ](substr(6 )(8 ))(["1234567890" , "12345671" ]) = ["67890" , "671" ]
)
;
protected setUp: () ==> ()
setUp() == TestName := "StringT06:\tGet substring." ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT06
class StringT07 is subclass of TestCase
operations
protected test: () ==> bool
test() ==
return
(String`isDigits("1234567890" ) = true and
String`asInteger("1234567890" ) = 1234567890 and
String`asInteger("" ) = 0
)
;
protected setUp: () ==> ()
setUp() == TestName := "StringT07:\tHandling digit strings." ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT07
class StringT08 is subclass of TestCase
operations
protected test: () ==> bool
test() ==
return
(
String`index("1234567890" ,'1' ) = 1 and
String`index("1234567890" ,'0' ) = 10 and
String`index("1234567890" ,'a' ) = 0 and
String`indexAll("1234567890" ,'1' ) = {1 } and
String`indexAll("1234567890" ,'0' ) = {10 } and
String`indexAll("1234567890" ,'a' ) = {} and
String`indexAll("1231567190" ,'1' ) = {1 ,4 ,8 } and
String`indexAll("1231567191" ,'1' ) = {1 ,4 ,8 ,10 } and
String`Index('1' )("1234567890" ) = 1 and
String`Index('0' )("1234567890" ) = 10 and
String`Index('a' )("1234567890" ) = 0 and
String`IndexAll2('1' )("1234567890" ) = {1 } and
String`IndexAll2('0' )("1234567890" ) = {10 } and
String`IndexAll2('a' )("1234567890" ) = {} and
String`IndexAll2('1' )("1231567190" ) = {1 ,4 ,8 } and
String`IndexAll2('1' )("1231567191" ) = {1 ,4 ,8 ,10 } and
Sequence`fmap[seq of char , int ](String`Index('1' ))(["1234567890" , "2345671" ]) = [1 , 7 ] and
Sequence`fmap[seq of char , set of int ](String`IndexAll2('1' ))(["1231567190" , "1231567191" ]) = [{1 ,4 ,8 }, {1 ,4 ,8 ,10 }]
)
;
protected setUp: () ==> ()
setUp() == TestName := "StringT08:\tGet first position of a character in a string." ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT08
class StringT09 is subclass of TestCase
operations
protected test: () ==> bool
test() ==
let isInclude = String`isInclude
in
return
(String`isInclude("1234567890" )( "abc" ) = false and
isInclude("Shin" )("Shin" ) = true and
isInclude("Shin" )("S" ) = true and
isInclude("Shin" )("h" ) = true and
isInclude("Shin" )("n" ) = true
)
;
protected setUp: () ==> ()
setUp() == TestName := "StringT09:\tIs a string the substring of another string." ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT09
class StringT10 is subclass of TestCase
operations
protected test: () ==> bool
test() ==
tixe {<RuntimeError> |-> return true } in
return String`isInclude("Shin Sahara" )("" )
;
protected setUp: () ==> ()
setUp() == TestName := "StringT10:\tIs a string the substring of another string. In case of pre-condition error" ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT10
class StringT11 is subclass of TestCase
operations
public test: () ==> bool
test() ==
return
let 区切り文字 = elems "\t\n " in
String`GetToken("sahara\tshin" , 区切り文字) = "sahara" and
String`GetToken("sahara\tshin SCSK" , 区切り文字) = "sahara" and
String`DropToken("sahara\tshin" , 区切り文字) = "\tshin" and
String`DropToken("sahara\tshin SCSK" , 区切り文字) = "\tshin SCSK" and
String`DropToken("sahara\tshin SCSK\n" , 区切り文字) = "\tshin SCSK\n"
;
protected setUp: () ==> ()
setUp() == TestName := "StringT11:\t指定した文字列の先頭tokenを得る。" ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT11
/*
シナリオID
文字列を行に分解するシナリオ
内容
文字列を行に分解するかを検査する。
*/
class StringT12 is subclass of TestCase
operations
public test: () ==> bool
test() ==
return
let 対象文字列1 = "private 次状態を得る : () ==> 「状態」\n次状態を得る(aガード, aガード引数, aイベント, aイベント引数, a処理時間) == (\ncases mk_(aガード, 現在状態, aイベント) :\n\tmk_(-,-,(エラー検知)) -> return エラー中,\n" ,
ss1 = String`getLines(対象文字列1 ),
対象文字列2 = "佐原\n伸" ,
ss2 = String`getLines(対象文字列2 )
in
ss1(1 ) = "private 次状態を得る : () ==> 「状態」" and
ss1(2 ) = "次状態を得る(aガード, aガード引数, aイベント, aイベント引数, a処理時間) == (" and
ss1(3 ) = "cases mk_(aガード, 現在状態, aイベント) :" and
ss1(4 ) = "\tmk_(-,-,(エラー検知)) -> return エラー中," and
ss2(1 ) = "佐原" and
ss2(2 ) = "伸"
;
protected setUp: () ==> ()
setUp() == TestName := "StringT12:\t文字列を行に分解する。" ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT12
/*
シナリオID
英数字か判定するシナリオ
内容
英数字か判定が正しいかを検査する。
*/
class StringT13 is subclass of TestCase
operations
public test: () ==> bool
test() ==
return
let w英字列 = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ" ,
w数字列 = "0123456789" ,
w英数字列 = w英字列 ^ w数字列
in
String`isLetters(w英字列) and
not String`isLetters(" " ^ w英字列) and
String`isDigits(w数字列) and
not String`isDigits(" " ^ w数字列) and
not String`isDigits("a" ^ w数字列) and
String`isLetterOrDigits(w英数字列) and
not String`isLetterOrDigits(w英数字列 ^ " " )
;
protected setUp: () ==> ()
setUp() == TestName := "StringT13:\t英数字かの判定が正しいかを検査する。" ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT13
class StringT14 is subclass of TestCase
operations
protected test: () ==> bool
test() ==
let isSomeString = String`isSomeString
in return
isSomeString(Character`isLetterOrDigit)("007isTheMmurder" ) and
not isSomeString(Character`isLetterOrDigit)("007 is the mmurder" ) and
isSomeString(Character`isCapitalLetter)("SAHARA" ) and
not isSomeString(Character`isCapitalLetter)("Sahara" ) and
isSomeString(Character`isLowercaseLetter)("sahara" ) and
not isSomeString(Character`isLowercaseLetter)("Sahara" )
;
protected setUp: () ==> ()
setUp() == TestName := "StringT11:\tIs a some kind of string?" ;
protected tearDown: () ==> ()
tearDown() == return ;
end StringT14
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-09)
¤
*© Formatika GbR, Deutschland