RegressionTests__StringTests.st
author Claus Gittinger <cg@exept.de>
Sat, 07 May 2016 13:34:06 +0200
changeset 1418 17555e11c398
parent 1417 d624843fda05
child 1419 cfc3eb59fbcf
permissions -rw-r--r--
#QUALITY by cg class: RegressionTests::StringTests added: #test30_indexOfSubCollection #test42_occurrencesOf removed: #test30_indexOf changed: #test50_indexOf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'exept:regression' }"
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#StringTests
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
1060
ae418384712d category
Claus Gittinger <cg@exept.de>
parents: 962
diff changeset
     9
	category:'tests-Regression-Collections'
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    13
!StringTests methodsFor:'helpers'!
284
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
    14
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    15
runAccessTestsOnInstancesOf:aStringClass
874
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
    16
    |str s0 s1 s2 s3 s4 t|
284
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
    17
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
    18
    0 to:33 do:[:l |
1294
e4ea07f9fa65 class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 1293
diff changeset
    19
        str := aStringClass new:l.
e4ea07f9fa65 class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 1293
diff changeset
    20
        str atAllPut:(Character space).
e4ea07f9fa65 class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 1293
diff changeset
    21
        self assert:( str isBlank ).
284
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
    22
1294
e4ea07f9fa65 class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 1293
diff changeset
    23
        1 to:l do:[:pos |
e4ea07f9fa65 class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 1293
diff changeset
    24
            str at:pos put:$a.
e4ea07f9fa65 class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 1293
diff changeset
    25
            self assert:( str isBlank not ).
e4ea07f9fa65 class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 1293
diff changeset
    26
            str at:pos put:(Character space).
e4ea07f9fa65 class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 1293
diff changeset
    27
        ].
284
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
    28
    ].
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
    29
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    30
    s0 := aStringClass new:0.
287
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    31
    self assert:s0 isEmpty.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    32
    self assert:s0 isEmptyOrNil.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    33
    self assert:s0 size == 0.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    34
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    35
    s1 := (aStringClass new:5) replaceFrom:1 with:'hello'.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    36
    s2 := (aStringClass new:6) replaceFrom:1 with:' world'.
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    37
    self assert:(s1 , s2) size == 11.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    38
    self assert:(s1 , s2) class == aStringClass.
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    39
    self assert:(s1 = 'hello').
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    40
    self assert:(s2 = ' world').
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    41
    self assert:(s1 size == 5).
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    42
    self assert:(s2 size == 6).
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    43
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    44
    self assert:(s1 = 'hello').
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    45
    self assert:(s1 asSymbol == #'hello').
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    46
    self assert:(s1 copyFrom:1) = 'hello'.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    47
    self assert:(s1 copyFrom:1) class == aStringClass.
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    48
    self assert:(s1 copyFrom:1 to:3) = 'hel'.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    49
    self assert:(s1 copyFrom:1 to:3) class == aStringClass.
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    50
    self assert:(s1 copyWith:$X) = 'helloX'.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    51
    self assert:(s1 copyWith:$X) class == aStringClass.
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    52
    self assert:(s1 endsWith:'llo').
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    53
    self assert:(s1 startsWith:'hel').
286
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    54
702
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
    55
    self assert:(t := s1 identityIndexOf:$h) == 1 description:('identityIndex is %1 (should be 1)' bindWith:t).
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
    56
    self assert:(t := s1 identityIndexOf:$l) == 3 description:('identityIndex is %1 (should be 3)' bindWith:t).
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
    57
    self assert:(t := s1 identityIndexOf:$L) == 0 description:('identityIndex is %1 (should be 0)' bindWith:t).
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    58
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    59
    self assert:(s1 identityIndexOf:$h startingAt:1) == 1.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    60
    self assert:(s1 identityIndexOf:$h startingAt:2) == 0.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    61
    self assert:(s1 identityIndexOf:$e startingAt:1) == 2.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    62
    self assert:(s1 identityIndexOf:$e startingAt:2) == 2.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    63
    self assert:(s1 identityIndexOf:$l startingAt:1) == 3.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    64
    self assert:(s1 identityIndexOf:$l startingAt:2) == 3.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    65
    self assert:(s1 identityIndexOf:$l startingAt:3) == 3.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    66
    self assert:(s1 identityIndexOf:$l startingAt:4) == 4.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    67
    self assert:(s1 identityIndexOf:$l startingAt:5) == 0.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    68
    self assert:(s1 identityIndexOf:$l startingAt:6) == 0.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    69
286
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    70
    self assert:(s1 indexOf:$h) == 1.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    71
    self assert:(s1 indexOf:$l) == 3.
287
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    72
    self assert:(s1 indexOf:$L) == 0.
874
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
    73
    self assert:(s1 indexOf:$A) == 0.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    74
286
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    75
    self assert:(s1 indexOf:$h startingAt:1) == 1.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    76
    self assert:(s1 indexOf:$h startingAt:2) == 0.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    77
    self assert:(s1 indexOf:$e startingAt:1) == 2.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    78
    self assert:(s1 indexOf:$e startingAt:2) == 2.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    79
    self assert:(s1 indexOf:$l startingAt:1) == 3.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    80
    self assert:(s1 indexOf:$l startingAt:2) == 3.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    81
    self assert:(s1 indexOf:$l startingAt:3) == 3.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    82
    self assert:(s1 indexOf:$l startingAt:4) == 4.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    83
    self assert:(s1 indexOf:$l startingAt:5) == 0.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    84
    self assert:(s1 indexOf:$l startingAt:6) == 0.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    85
286
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    86
    self assert:(s1 includes:$l).
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    87
    self assert:(s1 includes:$L) not.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    88
287
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    89
    self assert:(s1 includesAny:'a') not.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    90
    self assert:(s1 includesAny:'ab') not.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    91
    self assert:(s1 includesAny:'abc') not.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    92
    self assert:(s1 includesAny:'abcd') not.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    93
    self assert:(s1 includesAny:'abcde').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    94
    self assert:(s1 includesAny:'e').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    95
    self assert:(s1 includesAny:'ae').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    96
    self assert:(s1 includesAny:'ea').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    97
    self assert:(s1 includesAny:'abe').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    98
    self assert:(s1 includesAny:'eab').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    99
    self assert:(s1 includesAny:'aeb').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   100
    self assert:(s1 includesAny:'abce').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   101
    self assert:(s1 includesAny:'eabc').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   102
    self assert:(s1 includesAny:'aebc').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   103
    self assert:(s1 includesAny:'abec').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   104
    self assert:(s1 includesAny:'abcde').
1294
e4ea07f9fa65 class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 1293
diff changeset
   105
                                                  " 12345678901234567890 "
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   106
    s3 := (aStringClass new:20) replaceFrom:1 with:'12 45,78;01.34-67+90'.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   107
    t := s3 asCollectionOfSubstringsSeparatedBy:$,.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   108
    self assert:(t size = 2).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   109
    self assert:(t first = '12 45').
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   110
    self assert:(t second = '78;01.34-67+90').
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   111
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   112
    t := s3 asCollectionOfSubstringsSeparatedByAny:',;. '.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   113
    self assert:(t size = 5).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   114
    self assert:(t first = '12').
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   115
    self assert:(t second = '45').
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   116
    self assert:(t third = '78').
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   117
    self assert:(t fourth = '01').
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   118
    self assert:(t fifth = '34-67+90').
874
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   119
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   120
    s4 := (aStringClass new:10) replaceFrom:1 with:'123',Character tab,'567',Character cr,'90'.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   121
    self assert:(s4 size = 10).
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   122
    self assert:(s4 indexOfSeparatorStartingAt:1) = 4.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   123
    self assert:(s4 indexOfSeparatorStartingAt:3) = 4.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   124
    self assert:(s4 indexOfSeparatorStartingAt:4) = 4.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   125
    self assert:(s4 indexOfSeparatorStartingAt:5) = 8.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   126
    self assert:(s4 indexOfControlCharacterStartingAt:1) = 4.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   127
    self assert:(s4 indexOfNonSeparatorStartingAt:1) = 1.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   128
    self assert:(s4 indexOfNonSeparatorStartingAt:3) = 3.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   129
    self assert:(s4 indexOfNonSeparatorStartingAt:4) = 5.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   130
    self assert:(s4 indexOfNonSeparatorStartingAt:5) = 5.
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   131
! !
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   132
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   133
!StringTests methodsFor:'tests'!
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   134
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   135
test01_access
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   136
    0 to:33 do:[:l |
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   137
	|str|
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   138
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   139
	str := String new:l.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   140
	str atAllPut:(Character space).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   141
	self assert:( str isBlank ).
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   142
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   143
	1 to:l do:[:pos |
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   144
	    str at:pos put:$a.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   145
	    self assert:( str isBlank not ).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   146
	    str at:pos put:(Character space).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   147
	].
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   148
    ].
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   149
    self runAccessTestsOnInstancesOf:String
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   150
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   151
    "
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   152
     self new test01_access
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   153
    "
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   154
!
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   155
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   156
test02_subclassAccess
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   157
    |myStringClass s1|
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   158
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   159
    Class withoutUpdatingChangesDo:[
1293
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   160
	myStringClass := String
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   161
			subclass:#'MyString'
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   162
			instanceVariableNames:'foo'
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   163
			classVariableNames:''
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   164
			poolDictionaries:nil.
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   165
	myStringClass compile:'foo ^foo'.
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   166
	myStringClass compile:'foo:arg foo := arg'.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   167
    ].
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   168
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   169
    s1 := (myStringClass new:5) replaceFrom:1 with:'hello'.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   170
    self assert:(s1 foo isNil).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   171
    self assert:(s1 size == 5).
874
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   172
    s1 foo:16r11413344.         "/ ensure there is a $A inside (hex 41)
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   173
    self assert:(s1 foo == 16r11413344).
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   174
    self assert:(s1 = 'hello').
874
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   175
    self assert:(s1 deepCopy foo == 16r11413344).
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   176
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   177
    self assert:((s1 indexOf:$A) == 0).                 "/ should not find the A
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   178
    self assert:((s1 identityIndexOf:$A) == 0).         "/ should not find the A
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   179
    self assert:((s1 findFirst:[:ch | ch == $A]) == 0). "/ should not find the A
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   180
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   181
    self runAccessTestsOnInstancesOf:myStringClass.
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
   182
284
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   183
    "
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   184
     self new test02_subclassAccess
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   185
    "
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   186
!
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   187
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   188
test10_Contains8BitCharacters
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   189
    0 to:65 do:[:l |
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   190
	|str|
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   192
	str := String new:l.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   193
	str atAllPut:(Character value:16r7F).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   194
	self assert:( str contains8BitCharacters not ).
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   196
	1 to:l do:[:pos |
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   197
	    str at:pos put:(Character value:16r80).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   198
	    self assert:( str contains8BitCharacters ).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   199
	    str at:pos put:(Character value:16r7F).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   200
	].
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
    ].
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
    "
284
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   204
     self new test10_Contains8BitCharacters
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
    "
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   206
!
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   207
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   208
test20_literalsAreReadonly
605
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   209
    |myClass s1 l2 s2 parserFlags compiler|
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   210
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   211
    parserFlags := Compiler new parserFlags copy.
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   212
    parserFlags stringsAreImmutable:true.
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   213
    parserFlags arraysAreImmutable:true.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   214
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   215
    Class withoutUpdatingChangesDo:[
1293
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   216
	myClass := Object
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   217
			subclass:#'MyClass'
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   218
			instanceVariableNames:''
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   219
			classVariableNames:''
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   220
			poolDictionaries:nil.
605
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   221
1293
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   222
	compiler := myClass compilerClass new.
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   223
	compiler parserFlags:parserFlags.
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   224
	compiler compile:'lit1 ^''hello''' forClass:myClass install:true.
605
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   225
1293
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   226
	compiler := myClass compilerClass new.
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   227
	compiler parserFlags:parserFlags.
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   228
	compiler compile:'lit2 ^#(''foo'' ''bar'' ''baz'')' forClass:myClass install:true.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   229
    ].
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   230
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   231
    s1 := myClass new perform:#lit1.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   232
    self assert:(s1 isString).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   233
    self assert:(s1 class == ImmutableString).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   234
    self should:[ s1 at:1 put:$H ] raise:Error.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   235
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   236
    l2 := myClass new perform:#lit2.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   237
    self assert:(l2 isArray).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   238
    self assert:(l2 class == ImmutableArray).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   239
    self should:[ l2 at:1 put:$H ] raise:Error.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   240
    s2 := l2 at:1.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   241
    self assert:(s2 isString).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   242
    self assert:(s2 class == ImmutableString).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   243
    self should:[ s2 at:1 put:$H ] raise:Error.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   244
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   245
    "
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   246
     self new test20_literalsAreReadonly
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   247
    "
605
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   248
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   249
    "Modified: / 02-08-2011 / 19:30:53 / cg"
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   250
!
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   251
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   252
test30_indexOfSubCollection
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   253
    |i|
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   254
      "/  12345678901
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   255
    i := 'hello world' indexOfSubCollection:'world' startingAt:1 ifAbsent:0 caseSensitive:true.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   256
    self assert:(i == 7).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   257
    i := 'hello wOrLd' indexOfSubCollection:'world' startingAt:1 ifAbsent:0 caseSensitive:true.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   258
    self assert:(i == 0).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   259
    i := 'hello wOrLd' indexOfSubCollection:'world' startingAt:1 ifAbsent:0 caseSensitive:false.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   260
    self assert:(i == 7).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   261
    i := 'hello wOrLd' indexOfSubCollection:'ll' startingAt:1 ifAbsent:0 caseSensitive:false.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   262
    self assert:(i == 3).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   263
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   264
    i := 'hello wOrLd yellow' indexOfSubCollection:'ll' startingAt:1 ifAbsent:0 caseSensitive:false.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   265
    self assert:(i == 3).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   266
    i := 'hello wOrLd yellow' indexOfSubCollection:'ll' startingAt:3 ifAbsent:0 caseSensitive:false.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   267
    self assert:(i == 3).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   268
    i := 'hello wOrLd yellow' indexOfSubCollection:'ll' startingAt:4 ifAbsent:0 caseSensitive:false.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   269
    self assert:(i == 15).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   270
353
70a6187c1f2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
   271
    i := 'hello wOrLd yellow' indexOfSubCollection:'low' startingAt:1 ifAbsent:0 caseSensitive:false.
70a6187c1f2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
   272
    self assert:(i == 16).
70a6187c1f2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
   273
    i := 'hello wOrLd yellow' indexOfSubCollection:'low' startingAt:17 ifAbsent:0 caseSensitive:false.
70a6187c1f2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
   274
    self assert:(i == 0).
70a6187c1f2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
   275
    i := 'hello wOrLd yellow' indexOfSubCollection:'low' startingAt:18 ifAbsent:0 caseSensitive:false.
70a6187c1f2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
   276
    self assert:(i == 0).
70a6187c1f2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
   277
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   278
    "
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   279
     self new test30_indexOfSubCollection
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   280
    "
570
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   281
!
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   282
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   283
test40_indexOfAny
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   284
    |s i|
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   285
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   286
    s := 'Some Sample Generators (74035660-d1f6-11df-9ab3-00ff7b08316c)'.
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   287
    1 to:s size do:[:start |
1308
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   288
        i := s indexOfAny:'-' startingAt:start.
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   289
        self assert:(i == 0 or:[ i >= start]).
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   290
        (i ~~ 0) ifTrue:[
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   291
            self assert:(s at:i) == $-
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   292
        ].    
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   293
    ].
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   294
    "/    123456789012 
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   295
    s := 'bla bla 1234'.
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   296
    1 to:s size do:[:start |
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   297
        i := s indexOfAny:'1234' startingAt:start.
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   298
        self assert:(i == 0 or:[ i >= start]).
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   299
        (i == 9) ifTrue:[ self assert:((s at:i) == $1) ].
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   300
        (i == 10) ifTrue:[ self assert:((s at:i) == $2) ].
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   301
        (i == 11) ifTrue:[ self assert:((s at:i) == $3) ].
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   302
        (i == 12) ifTrue:[ self assert:((s at:i) == $4) ].
570
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   303
    ].
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   304
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   305
    "
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   306
     self new test40_indexOfAny
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   307
    "
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   308
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   309
    "Created: / 29-10-2010 / 14:58:21 / cg"
571
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   310
!
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   311
1308
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   312
test41_contains
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   313
    |s|
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   314
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   315
    s := 'abcdefg'.
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   316
    self assert:(s contains:[:ch | ch == $a]).
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   317
    self assert:(s contains:[:ch | ch == $A]) not.
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   318
    self assert:(s contains:[:ch | ch == $1]) not.
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   319
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   320
    "
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   321
     self new test41_contains
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   322
    "
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   323
!
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   324
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   325
test42_occurrencesOf
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   326
    |s|
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   327
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   328
    "/             12345678901
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   329
    self assert:( 'hello world' occurrencesOf:$0 ) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   330
    self assert:( 'hello world' occurrencesOf:$l ) == 3.  
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   331
    self assert:( 'hello world' occurrencesOf:$d ) == 1.  
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   332
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   333
    "/ how about 0-bytes in between
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   334
    self assert:( #[0 0 1 0 0] asString occurrencesOf:(Character value:1) ) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   335
    self assert:( #[0 0 1 0 0] asString occurrencesOf:(Character value:0) ) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   336
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   337
    1 to:10 do:[:nA |
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   338
        1 to:10 do:[:nB |
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   339
            s := (String new:nA withAll:$a),(String new:nB withAll:$b).
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   340
            self assert:(s occurrencesOf:$a) == nA.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   341
            self assert:(s occurrencesOf:$b) == nB.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   342
        ]
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   343
    ].    
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   344
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   345
    s := String new:1024.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   346
    s atAllPut:$a.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   347
    s at:512 put:(Character space).
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   348
    self assert:(s occurrencesOf:(Character space)) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   349
    self assert:(s occurrencesOf:$a) == 1023.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   350
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   351
    s := String new:1024.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   352
    s atAllPut:$a.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   353
    1 to:1024 by:2 do:[:i | s at:i put:$b].
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   354
    self assert:(s occurrencesOf:$a) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   355
    self assert:(s occurrencesOf:$b) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   356
    
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   357
    "
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   358
     self new test42_occurrencesOf
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   359
    "
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   360
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   361
    "Created: / 29-10-2010 / 14:58:21 / cg"
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   362
!
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   363
571
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   364
test50_indexOf
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   365
    |s i|
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   366
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   367
    s := 'Some Sample Generators (74035660-d1f6-11df-9ab3-00ff7b08316c)'.
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   368
    1 to:s size do:[:start |
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   369
        i := s indexOf:$- startingAt:start.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   370
        self assert:(i == 0 or:[ i >= start]).
571
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   371
    ].
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   372
    "/             12345678901
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   373
    self assert:( 'hello world' indexOf:$0 startingAt:1 ) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   374
    self assert:( 'hello world' indexOf:$l startingAt:1 ) == 3.  
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   375
    self assert:( 'hello world' indexOf:$l startingAt:5 ) == 10.  
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   376
    self assert:( 'hello world' indexOf:$d startingAt:5 ) == 11.  
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   377
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   378
    "/ how about 0-bytes in between
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   379
    self assert:( #[0 0 1 0 0] asString indexOf:(Character value:1) startingAt:1 ) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   380
    self assert:( #[0 0 1 0 0] asString indexOf:(Character value:0) startingAt:3 ) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   381
    self assert:( #[0 0 1 1 0] asString indexOf:(Character value:0) startingAt:3 ) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   382
    self assert:( #[0 1 0 1 0] asString indexOf:(Character value:1) startingAt:3 ) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   383
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   384
    s := '12345678901234b'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   385
    self assert:(s indexOf:$x) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   386
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   387
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   388
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   389
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   390
    self assert:(s indexOf:$5) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   391
    self assert:(s indexOf:$0) == 10.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   392
    self assert:(s indexOf:$b) == 15.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   393
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   394
    s := ''.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   395
    self assert:(s indexOf:$1) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   396
    s := '1'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   397
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   398
    self assert:(s indexOf:$2) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   399
    s := '12'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   400
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   401
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   402
    self assert:(s indexOf:$3) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   403
    s := '123'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   404
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   405
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   406
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   407
    self assert:(s indexOf:$4) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   408
    s := '1234'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   409
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   410
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   411
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   412
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   413
    self assert:(s indexOf:$5) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   414
    s := '12345'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   415
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   416
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   417
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   418
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   419
    self assert:(s indexOf:$5) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   420
    self assert:(s indexOf:$6) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   421
    s := '123456'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   422
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   423
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   424
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   425
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   426
    self assert:(s indexOf:$5) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   427
    self assert:(s indexOf:$6) == 6.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   428
    self assert:(s indexOf:$7) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   429
    s := '1234567'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   430
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   431
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   432
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   433
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   434
    self assert:(s indexOf:$5) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   435
    self assert:(s indexOf:$6) == 6.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   436
    self assert:(s indexOf:$7) == 7.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   437
    self assert:(s indexOf:$8) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   438
    s := '12345678'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   439
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   440
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   441
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   442
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   443
    self assert:(s indexOf:$5) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   444
    self assert:(s indexOf:$6) == 6.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   445
    self assert:(s indexOf:$7) == 7.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   446
    self assert:(s indexOf:$8) == 8.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   447
    self assert:(s indexOf:$9) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   448
    s := '123456789'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   449
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   450
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   451
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   452
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   453
    self assert:(s indexOf:$5) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   454
    self assert:(s indexOf:$6) == 6.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   455
    self assert:(s indexOf:$7) == 7.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   456
    self assert:(s indexOf:$8) == 8.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   457
    self assert:(s indexOf:$9) == 9.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   458
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   459
    self assert:(s indexOf:$0) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   460
    self assert:(s indexOf:$b) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   461
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   462
    s := String new:1024.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   463
    s atAllPut:$a.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   464
    s at:512 put:(Character space).
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   465
    self assert:(s indexOf:(Character space)) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   466
    self assert:(s indexOf:(Character space) startingAt:1) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   467
    self assert:(s indexOf:(Character space) startingAt:2) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   468
    self assert:(s indexOf:(Character space) startingAt:3) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   469
    self assert:(s indexOf:(Character space) startingAt:4) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   470
    self assert:(s indexOf:(Character space) startingAt:5) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   471
    self assert:(s indexOf:(Character space) startingAt:6) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   472
    self assert:(s indexOf:(Character space) startingAt:7) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   473
    self assert:(s indexOf:(Character space) startingAt:8) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   474
    self assert:(s indexOf:(Character space) startingAt:9) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   475
    self assert:(s indexOf:(Character space) startingAt:511) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   476
    self assert:(s indexOf:(Character space) startingAt:512) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   477
    self assert:(s indexOf:(Character space) startingAt:513) == 0.
571
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   478
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   479
    "
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   480
     self new test50_indexOf
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   481
    "
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   482
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   483
    "Created: / 29-10-2010 / 14:58:21 / cg"
751
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   484
!
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   485
1373
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   486
test51_substrings
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   487
    self assert:('aaa/bbb/ccc' subStrings:'/') asArray = #('aaa' 'bbb' 'ccc').
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   488
    self assert:(('aaa/bbb/ccc' subStrings:'/') asStringWith:'/') = 'aaa/bbb/ccc'.
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   489
1385
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   490
"/    self assert:('/aaa/bbb/ccc' subStrings:'/') asArray = #('' 'aaa' 'bbb' 'ccc').
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   491
"/    self assert:(('/aaa/bbb/ccc' subStrings:'/') asStringWith:'/') = '/aaa/bbb/ccc'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   492
"/
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   493
"/    self assert:('aaa/bbb/ccc/' subStrings:'/') asArray = #('aaa' 'bbb' 'ccc' '' ).
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   494
"/    self assert:(('aaa/bbb/ccc/' subStrings:'/') asStringWith:'/') = '/aaa/bbb/ccc/'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   495
"/
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   496
"/    self assert:('/aaa/bbb/ccc/' subStrings:'/') asArray = #('' 'aaa' 'bbb' 'ccc' '').
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   497
"/    self assert:(('/aaa/bbb/ccc/' subStrings:'/') asStringWith:'/') = '/aaa/bbb/ccc'' '.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   498
"/
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   499
"/    self assert:('//aaa/bbb/ccc' subStrings:'/') asArray = #('' '' 'aaa' 'bbb' 'ccc').
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   500
"/    self assert:(('//aaa/bbb/ccc' subStrings:'/') asStringWith:'/') = '//aaa/bbb/ccc'.
1373
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   501
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   502
    "
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   503
     self new test51_substrings
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   504
    "
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   505
!
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   506
751
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   507
test60_hash
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   508
    "
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   509
    As of 2013-01-09 for strings of size 7 String & Unicode16String hash
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   510
    returned different values. This test checks this
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   511
    "
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   512
753
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   513
    | tester |
751
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   514
753
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   515
    tester := [:s|
1385
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   516
        |sHash u16Hash u32Hash|
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   517
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   518
        sHash := s hash.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   519
        u16Hash := s asUnicode16String hash.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   520
        u32Hash := s asUnicode32String hash.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   521
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   522
        self assert: sHash == u16Hash
1389
e78489b6c0c1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1385
diff changeset
   523
             description: ('String and Unicode16String hashes differ on "%1" (%2)'
e78489b6c0c1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1385
diff changeset
   524
                                bindWith:s with:s class name).
1385
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   525
        self assert: sHash == u32Hash
1389
e78489b6c0c1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1385
diff changeset
   526
             description: ('String and Unicode32String hashes differ on "%1" (%2)'
e78489b6c0c1 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1385
diff changeset
   527
                                bindWith:s with:s class name)
751
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   528
    ].
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   529
753
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   530
    tester value:'a'.
1385
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   531
    tester value:'12345678901234'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   532
    tester value:'1234567890123'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   533
    tester value:'123456789012'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   534
    tester value:'12345678901'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   535
    tester value:'1234567890'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   536
    tester value:'123456789'.
753
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   537
    tester value:'12345678'.
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   538
    tester value:'1234567'.
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   539
    tester value:'123456'.
1385
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   540
    tester value:'12345'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   541
    tester value:'1234'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   542
    tester value:'123'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   543
    tester value:'12'.
753
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   544
    tester value:'boolean'.
751
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   545
1417
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   546
    "/ strings with 0-elements
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   547
    tester value:('' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   548
    tester value:('1' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   549
    tester value:('12' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   550
    tester value:('123' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   551
    tester value:('1234' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   552
    tester value:('12345' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   553
    tester value:('123456' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   554
    tester value:('1234567' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   555
    tester value:('12345678' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   556
    tester value:('123456789' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   557
    
753
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   558
    String allInstancesDo:[:each| tester value:each].
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   559
    Symbol allInstancesDo:[:each| tester value:each].
751
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   560
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   561
    "Created: / 09-01-2013 / 10:58:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
962
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   562
!
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   563
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   564
test70_storeString
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   565
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   566
    self assert: 'AAA' storeString = '''AAA'''.
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   567
    self assert: 'A''A''A' storeString = '''A''''A''''A'''.
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   568
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   569
    self assert: 'AAA' asImmutableString storeString = '''AAA'''.
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   570
    self assert: 'A''A''A' asImmutableString storeString = '''A''''A''''A'''.
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   571
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   572
    "Created: / 14-07-2013 / 19:17:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1103
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   573
!
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   574
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   575
test80_copyReplaceAll
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   576
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   577
    | orig copy |
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   578
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   579
    orig := 'AAA' copy. "/ In case literals are immutable...
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   580
    self assert: orig = 'AAA'.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   581
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   582
    copy := orig copyReplaceAll: $A with: $X.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   583
    self assert: copy = 'XXX'.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   584
    self assert: orig = 'AAA'.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   585
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   586
    orig := 'AAA' asImmutableString.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   587
    self assert: orig = 'AAA'.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   588
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   589
    copy := orig copyReplaceAll: $A with: $X.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   590
    self assert: copy = 'XXX'.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   591
    self assert: orig = 'AAA'.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   592
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
   593
    "Created: / 06-03-2014 / 15:10:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1214
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   594
!
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   595
1240
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   596
test81_filling
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   597
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   598
    | str |
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   599
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   600
    str := 'AAA' copy. "/ In case literals are immutable...
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   601
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   602
    str atAllPut:$B.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   603
    self assert: str = 'BBB'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   604
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   605
    str from:1 to:0 put:$C.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   606
    self assert: str = 'BBB'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   607
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   608
    str from:1 to:1 put:$D.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   609
    self assert: str = 'DBB'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   610
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   611
    str from:1 to:2 put:$E.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   612
    self assert: str = 'EEB'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   613
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   614
    str from:1 to:3 put:$F.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   615
    self assert: str = 'FFF'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   616
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   617
    str from:1 to:0 put:$G.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   618
    self assert: str = 'FFF'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   619
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   620
    str from:-1 to:-2 put:$G.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   621
    self assert: str = 'FFF'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   622
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   623
    self should:[
1293
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   624
	str from:-1 to:-1 put:$x
1240
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   625
    ] raise:SubscriptOutOfBoundsError.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   626
    self assert: str = 'FFF'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   627
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   628
    self should:[
1293
ed6726eb8a4a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   629
	str from:-1 to:1 put:$x
1240
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   630
    ] raise:SubscriptOutOfBoundsError.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   631
    self assert: str = 'FFF'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   632
!
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
   633
1214
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   634
test90_hash
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   635
    | string8 string16 string32 |
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   636
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   637
    string8 := 'sun/nio/cs/UTF_8.class'.
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   638
    string16 := string8 asUnicode16String.
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   639
    string32 := string8 asUnicode16String.
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   640
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   641
    self assert: string8 hash == string16 hash.
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   642
    self assert: string8 hash == string32 hash.
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   643
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
   644
    "Created: / 09-10-2014 / 12:41:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   645
! !
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   646
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   647
!StringTests class methodsFor:'documentation'!
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   648
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   649
version
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   650
    ^ '$Header$'
570
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   651
!
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   652
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   653
version_CVS
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   654
    ^ '$Header$'
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   655
! !
752
ef9236c7271c class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 751
diff changeset
   656