RegressionTests__StringTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 05 Jan 2017 07:35:21 +0000
branchjv
changeset 1947 c6d051af256a
parent 1546 662fa681379c
child 1974 f2eaf05205d6
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1433
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
283
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
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
     6
	instanceVariableNames:''
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
     7
	classVariableNames:''
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
     8
	poolDictionaries:''
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
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
1425
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    13
!StringTests class methodsFor:'queries'!
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    14
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    15
coveredClassNames
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    16
    "should be redefined to return a collection of classes which are tested by
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
    17
     this suite/case. 
1425
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    18
     If not redefined, coveredPackageNames should be.
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    19
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    20
     These classes can be instrumented for coverage analysis,
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    21
     before running the suite to provide coverage analysis/report"
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    22
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    23
    ^ #( String CharacterArray )
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    24
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    25
    "Created: / 06-07-2011 / 21:27:03 / cg"
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    26
! !
66a1a63431a0 #QUALITY by mawalch
mawalch
parents: 1421
diff changeset
    27
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    28
!StringTests methodsFor:'helpers'!
284
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
runAccessTestsOnInstancesOf:aStringClass
874
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
    31
    |str s0 s1 s2 s3 s4 t|
284
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
    32
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
    33
    0 to:33 do:[:l |
702
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
    34
        str := aStringClass new:l.
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
    35
        str atAllPut:(Character space).
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
    36
        self assert:( str isBlank ).
284
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
    37
702
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
    38
        1 to:l do:[:pos |
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
    39
            str at:pos put:$a.
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
    40
            self assert:( str isBlank not ).
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
    41
            str at:pos put:(Character space).
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
    42
        ].
284
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
    43
    ].
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
    44
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    45
    s0 := aStringClass new:0.
287
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    46
    self assert:s0 isEmpty.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    47
    self assert:s0 isEmptyOrNil.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    48
    self assert:s0 size == 0.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    49
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    50
    s1 := (aStringClass new:5) replaceFrom:1 with:'hello'.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    51
    s2 := (aStringClass new:6) replaceFrom:1 with:' world'.
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    52
    self assert:(s1 , s2) size == 11.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    53
    self assert:(s1 , s2) class == aStringClass.
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    54
    self assert:(s1 = 'hello').
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    55
    self assert:(s2 = ' world').
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    56
    self assert:(s1 size == 5).
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    57
    self assert:(s2 size == 6).
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    58
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    59
    self assert:(s1 = 'hello').
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    60
    self assert:(s1 asSymbol == #'hello').
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    61
    self assert:(s1 copyFrom:1) = 'hello'.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    62
    self assert:(s1 copyFrom:1) class == aStringClass.
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    63
    self assert:(s1 copyFrom:1 to:3) = 'hel'.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    64
    self assert:(s1 copyFrom:1 to:3) class == aStringClass.
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    65
    self assert:(s1 copyWith:$X) = 'helloX'.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    66
    self assert:(s1 copyWith:$X) class == aStringClass.
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    67
    self assert:(s1 endsWith:'llo').
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
    68
    self assert:(s1 startsWith:'hel').
286
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    69
702
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
    70
    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
    71
    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
    72
    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
    73
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    74
    self assert:(s1 identityIndexOf:$h startingAt:1) == 1.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    75
    self assert:(s1 identityIndexOf:$h startingAt:2) == 0.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    76
    self assert:(s1 identityIndexOf:$e startingAt:1) == 2.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    77
    self assert:(s1 identityIndexOf:$e startingAt:2) == 2.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    78
    self assert:(s1 identityIndexOf:$l startingAt:1) == 3.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    79
    self assert:(s1 identityIndexOf:$l startingAt:2) == 3.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    80
    self assert:(s1 identityIndexOf:$l startingAt:3) == 3.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    81
    self assert:(s1 identityIndexOf:$l startingAt:4) == 4.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    82
    self assert:(s1 identityIndexOf:$l startingAt:5) == 0.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    83
    self assert:(s1 identityIndexOf:$l startingAt:6) == 0.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    84
286
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    85
    self assert:(s1 indexOf:$h) == 1.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    86
    self assert:(s1 indexOf:$l) == 3.
287
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
    87
    self assert:(s1 indexOf:$L) == 0.
874
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
    88
    self assert:(s1 indexOf:$A) == 0.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
    89
286
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    90
    self assert:(s1 indexOf:$h startingAt:1) == 1.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    91
    self assert:(s1 indexOf:$h startingAt:2) == 0.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    92
    self assert:(s1 indexOf:$e startingAt:1) == 2.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    93
    self assert:(s1 indexOf:$e startingAt:2) == 2.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    94
    self assert:(s1 indexOf:$l startingAt:1) == 3.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    95
    self assert:(s1 indexOf:$l startingAt:2) == 3.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    96
    self assert:(s1 indexOf:$l startingAt:3) == 3.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    97
    self assert:(s1 indexOf:$l startingAt:4) == 4.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    98
    self assert:(s1 indexOf:$l startingAt:5) == 0.
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
    99
    self assert:(s1 indexOf:$l startingAt:6) == 0.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   100
286
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   101
    self assert:(s1 includes:$l).
bf494c929515 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   102
    self assert:(s1 includes:$L) not.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   103
287
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   104
    self assert:(s1 includesAny:'a') not.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   105
    self assert:(s1 includesAny:'ab') not.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   106
    self assert:(s1 includesAny:'abc') not.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   107
    self assert:(s1 includesAny:'abcd') not.
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   108
    self assert:(s1 includesAny:'abcde').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   109
    self assert:(s1 includesAny:'e').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   110
    self assert:(s1 includesAny:'ae').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   111
    self assert:(s1 includesAny:'ea').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   112
    self assert:(s1 includesAny:'abe').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   113
    self assert:(s1 includesAny:'eab').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   114
    self assert:(s1 includesAny:'aeb').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   115
    self assert:(s1 includesAny:'abce').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   116
    self assert:(s1 includesAny:'eabc').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   117
    self assert:(s1 includesAny:'aebc').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   118
    self assert:(s1 includesAny:'abec').
e19c028a4dc5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 286
diff changeset
   119
    self assert:(s1 includesAny:'abcde').
702
4c5fb5598e9e changed: #runAccessTestsOnInstancesOf:
Claus Gittinger <cg@exept.de>
parents: 635
diff changeset
   120
                                                  " 12345678901234567890 "
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   121
    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
   122
    t := s3 asCollectionOfSubstringsSeparatedBy:$,.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   123
    self assert:(t size = 2).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   124
    self assert:(t first = '12 45').
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   125
    self assert:(t second = '78;01.34-67+90').
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   126
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   127
    t := s3 asCollectionOfSubstringsSeparatedByAny:',;. '.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   128
    self assert:(t size = 5).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   129
    self assert:(t first = '12').
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   130
    self assert:(t second = '45').
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   131
    self assert:(t third = '78').
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   132
    self assert:(t fourth = '01').
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   133
    self assert:(t fifth = '34-67+90').
874
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   134
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   135
    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
   136
    self assert:(s4 size = 10).
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   137
    self assert:(s4 indexOfSeparatorStartingAt:1) = 4.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   138
    self assert:(s4 indexOfSeparatorStartingAt:3) = 4.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   139
    self assert:(s4 indexOfSeparatorStartingAt:4) = 4.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   140
    self assert:(s4 indexOfSeparatorStartingAt:5) = 8.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   141
    self assert:(s4 indexOfControlCharacterStartingAt:1) = 4.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   142
    self assert:(s4 indexOfNonSeparatorStartingAt:1) = 1.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   143
    self assert:(s4 indexOfNonSeparatorStartingAt:3) = 3.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   144
    self assert:(s4 indexOfNonSeparatorStartingAt:4) = 5.
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   145
    self assert:(s4 indexOfNonSeparatorStartingAt:5) = 5.
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   146
! !
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   147
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   148
!StringTests methodsFor:'tests'!
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   149
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   150
test01_access
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   151
    0 to:33 do:[:l |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   152
        |str|
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   153
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   154
        str := String new:l.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   155
        str atAllPut:(Character space).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   156
        self assert:( str isBlank ).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   157
        self assert:((str size == 0) or: [(str first) == Character space.]). 
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   158
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   159
        1 to:l do:[:pos |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   160
            str at:pos put:$a.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   161
            self assert:( str isBlank not ).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   162
            self assert:((str at:pos) == $a). 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   163
            str at:pos put:(Character space).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   164
        ].
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   165
    ].
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   166
    self runAccessTestsOnInstancesOf:String
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
     self new test01_access
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   170
    "
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   171
!
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   172
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   173
test02_subclassAccess
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   174
    |myStringClass s1|
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   175
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   176
    Class withoutUpdatingChangesDo:[
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   177
	myStringClass := String
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   178
			subclass:#'MyString'
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   179
			instanceVariableNames:'foo'
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   180
			classVariableNames:''
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   181
			poolDictionaries:nil.
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   182
	myStringClass compile:'foo ^foo'.
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   183
	myStringClass compile:'foo:arg foo := arg'.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   184
    ].
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   185
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   186
    s1 := (myStringClass new:5) replaceFrom:1 with:'hello'.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   187
    self assert:(s1 foo isNil).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   188
    self assert:(s1 size == 5).
874
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   189
    s1 foo:16r11413344.         "/ ensure there is a $A inside (hex 41)
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   190
    self assert:(s1 foo == 16r11413344).
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   191
    self assert:(s1 = 'hello').
874
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   192
    self assert:(s1 deepCopy foo == 16r11413344).
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   193
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   194
    self assert:((s1 indexOf:$A) == 0).                 "/ should not find the A
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   195
    self assert:((s1 identityIndexOf:$A) == 0).         "/ should not find the A
7936c9ee23d5 class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 873
diff changeset
   196
    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
   197
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   198
    self runAccessTestsOnInstancesOf:myStringClass.
285
11e1200a3625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 284
diff changeset
   199
284
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   200
    "
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   201
     self new test02_subclassAccess
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   202
    "
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   203
!
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   204
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   205
test10_Contains8BitCharacters
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   206
    0 to:65 do:[:l |
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   207
	|str|
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   209
	str := String new:l.
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   210
	str atAllPut:(Character value:16r7F).
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   211
	self assert:( str contains8BitCharacters not ).
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   213
	1 to:l do:[:pos |
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   214
	    str at:pos put:(Character value:16r80).
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   215
	    self assert:( str contains8BitCharacters ).
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   216
	    str at:pos put:(Character value:16r7F).
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   217
	].
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
    ].
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
    "
284
5a049629081c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   221
     self new test10_Contains8BitCharacters
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
    "
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   223
!
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   224
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   225
test11_IsEmpty
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   226
    |nul n|
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   227
    nul := 0 asCharacter.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   228
    n := 1.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   229
    self assert:('' isEmpty).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   230
    self assert:(' ' isEmpty not).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   231
    self assert:(nul asCharacter asString isEmpty not).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   232
    self assert:(('' , nul) isEmpty not).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   233
    self assert:((String new:0) isEmpty).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   234
    self assert:((String new:17 withAll:nul) isEmpty not).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   235
1546
662fa681379c Fixes StringTests>>test11_IsEmpty to handle allocation failures
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   236
    [ 
662fa681379c Fixes StringTests>>test11_IsEmpty to handle allocation failures
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   237
        29 timesRepeat:[  
662fa681379c Fixes StringTests>>test11_IsEmpty to handle allocation failures
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   238
            |s|
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   239
1546
662fa681379c Fixes StringTests>>test11_IsEmpty to handle allocation failures
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   240
            s := String new:(n + 17).
662fa681379c Fixes StringTests>>test11_IsEmpty to handle allocation failures
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   241
            self assert:(s isEmpty not).
662fa681379c Fixes StringTests>>test11_IsEmpty to handle allocation failures
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   242
            n := n * 2.
662fa681379c Fixes StringTests>>test11_IsEmpty to handle allocation failures
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   243
        ].
662fa681379c Fixes StringTests>>test11_IsEmpty to handle allocation failures
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   244
    ] on: AllocationFailure do:[:ex | 
662fa681379c Fixes StringTests>>test11_IsEmpty to handle allocation failures
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   245
        "/ This is to be expected, we're trying to allocate up to 512MB
662fa681379c Fixes StringTests>>test11_IsEmpty to handle allocation failures
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   246
        "/ which migh not be possible on 32bit system...
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   247
    ].
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   248
    self assert:((String new:17 withAll:nul) isEmpty not).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   249
    self assert:((String new:0 withAll:nul) isEmpty).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   250
    "
1429
0201c6bd39a4 #DOCUMENTATION by mawalch
mawalch
parents: 1428
diff changeset
   251
     self new test11_IsEmpty
0201c6bd39a4 #DOCUMENTATION by mawalch
mawalch
parents: 1428
diff changeset
   252
    "
1546
662fa681379c Fixes StringTests>>test11_IsEmpty to handle allocation failures
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   253
662fa681379c Fixes StringTests>>test11_IsEmpty to handle allocation failures
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1500
diff changeset
   254
    "Modified (format): / 30-11-2016 / 13:49:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   255
!
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   256
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   257
test12_Comparison
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   258
    0 to: 255 do: [ :i |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   259
        |s t|  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   260
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   261
        1 to: 9 do: [ :j |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   262
            s := String new:j withAll:(i asCharacter).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   263
            t := s copy.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   264
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   265
            self assert:(s notNil).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   266
            self assert:(s = s).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   267
            self assert:(s ~= s) not.  
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   268
            self assert:(s < s) not.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   269
            self assert:(s > s) not.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   270
            self assert:(s = (s,s)) not.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   271
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   272
            self assert:(t notNil).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   273
            self assert:(s = t).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   274
            self assert:(s ~= t) not.  
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   275
            self assert:(s < t) not.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   276
            self assert:(s > t) not.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   277
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   278
            self assert:((s = nil) == ((s ~= nil) not)).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   279
            self assert:((s = '') == ((s ~= '') not)).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   280
        ].
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   281
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   282
        s := i asCharacter asString.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   283
        0 to: 255 do: [ :j |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   284
            t := j asCharacter asString.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   285
            self assert:(t notNil).
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   286
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   287
            self assert:((s = t) == ((s ~= t) not)).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   288
        ]
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   289
    ].
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   290
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   291
    "
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   292
     self new test12_Comparison
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   293
    "
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   294
!
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   295
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   296
test15_CompareWithCollating
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   297
    | nul |
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   298
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   299
    nul := 0 asCharacter asString.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   300
    self assert:('' compareWith:'' collating:true) == 0.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   301
    self assert:('' compareWith:'' collating:false) == 0.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   302
    self assert:(nul compareWith:(255 asCharacter asString) collating:false) == -1.      
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   303
    self assert:((255 asCharacter asString) compareWith:nul collating:false) == 1.
1433
6291f067c336 #REFACTORING by mawalch
mawalch
parents: 1430
diff changeset
   304
    "/ This will fail and is a WONTFIX
6291f067c336 #REFACTORING by mawalch
mawalch
parents: 1430
diff changeset
   305
    "/ self assert:((('' compareWith:nul collating:false) == 0) == ('' = nul)).
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   306
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   307
    0 to: 255 do: [ :i |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   308
        |s|
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   309
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   310
        s := i asCharacter asString.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   311
        self assert:(s notNil).
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   312
1497
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1496
diff changeset
   313
        "/ This will fail and is a WONTFIX 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1496
diff changeset
   314
        "/ self assert:('' compareWith:s collating:false) ~= 0.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   315
        self assert:('' compareWith:s collating:false) == ((s compareWith:'' collating:false) negated).
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   316
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   317
        0 to: 255 do: [ :j |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   318
            | t |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   319
            t := j asCharacter asString.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   320
            self assert:(t notNil).
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   321
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   322
            self assert:(((s compareWith:t collating:false) == -1) == (s < t)).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   323
            self assert:(((s compareWith:t collating:false) == 0) == (s = t)).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   324
            self assert:(((s compareWith:t collating:false) == 1) == (s > t)).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   325
            self assert:(((s compareWith:t collating:true) == -1) == (s < t)).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   326
            self assert:(((s compareWith:t collating:true) == 0) == (s = t)).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   327
            self assert:(((s compareWith:t collating:true) == 1) == (s > t)). 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   328
        ]
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   329
    ].
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   330
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   331
    0 to: 9 do: [ :i |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   332
        0 to: 255 do: [ :j |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   333
            |s t|
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   334
            s := String new:i withAll:(j asCharacter).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   335
            t := s copy.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   336
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   337
            self assert: (s compareWith:s collating:false) == 0.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   338
            self assert: (s compareWith:s collating:true) == 0.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   339
            self assert: (s compareWith:t collating:false) == 0.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   340
            self assert: (s compareWith:t collating:true) == 0    
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   341
        ]
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   342
    ].
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   343
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   344
    "
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   345
     self new test15_CompareWithCollating
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   346
    "
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   347
!
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   348
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   349
test20_literalsAreReadonly
605
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   350
    |myClass s1 l2 s2 parserFlags compiler|
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   351
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   352
    parserFlags := Compiler new parserFlags copy.
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   353
    parserFlags stringsAreImmutable:true.
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   354
    parserFlags arraysAreImmutable:true.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   355
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   356
    Class withoutUpdatingChangesDo:[
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   357
	myClass := Object
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   358
			subclass:#'MyClass'
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   359
			instanceVariableNames:''
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   360
			classVariableNames:''
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   361
			poolDictionaries:nil.
605
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   362
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   363
	compiler := myClass compilerClass new.
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   364
	compiler parserFlags:parserFlags.
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   365
	compiler compile:'lit1 ^''hello''' forClass:myClass install:true.
605
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   366
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   367
	compiler := myClass compilerClass new.
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   368
	compiler parserFlags:parserFlags.
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   369
	compiler compile:'lit2 ^#(''foo'' ''bar'' ''baz'')' forClass:myClass install:true.
288
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   370
    ].
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   371
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   372
    s1 := myClass new perform:#lit1.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   373
    self assert:(s1 isString).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   374
    self assert:(s1 class == ImmutableString).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   375
    self should:[ s1 at:1 put:$H ] raise:Error.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   376
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   377
    l2 := myClass new perform:#lit2.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   378
    self assert:(l2 isArray).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   379
    self assert:(l2 class == ImmutableArray).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   380
    self should:[ l2 at:1 put:$H ] raise:Error.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   381
    s2 := l2 at:1.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   382
    self assert:(s2 isString).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   383
    self assert:(s2 class == ImmutableString).
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   384
    self should:[ s2 at:1 put:$H ] raise:Error.
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   385
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   386
    "
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   387
     self new test20_literalsAreReadonly
453fbe5663a8 immutable strings
Claus Gittinger <cg@exept.de>
parents: 287
diff changeset
   388
    "
605
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   389
6f0411c4d46f changed: #test20_literalsAreReadonly
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   390
    "Modified: / 02-08-2011 / 19:30:53 / cg"
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   391
!
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   392
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   393
test30_indexOfSubCollection
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   394
    |i|
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   395
      "/  12345678901
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   396
    i := 'hello world' indexOfSubCollection:'world' startingAt:1 ifAbsent:0 caseSensitive:true.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   397
    self assert:(i == 7).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   398
    i := 'hello wOrLd' indexOfSubCollection:'world' startingAt:1 ifAbsent:0 caseSensitive:true.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   399
    self assert:(i == 0).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   400
    i := 'hello wOrLd' indexOfSubCollection:'world' startingAt:1 ifAbsent:0 caseSensitive:false.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   401
    self assert:(i == 7).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   402
    i := 'hello wOrLd' indexOfSubCollection:'ll' startingAt:1 ifAbsent:0 caseSensitive:false.
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   403
    self assert:(i == 3).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   404
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   405
    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
   406
    self assert:(i == 3).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   407
    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
   408
    self assert:(i == 3).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   409
    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
   410
    self assert:(i == 15).
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   411
353
70a6187c1f2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
   412
    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
   413
    self assert:(i == 16).
70a6187c1f2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
   414
    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
   415
    self assert:(i == 0).
70a6187c1f2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
   416
    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
   417
    self assert:(i == 0).
70a6187c1f2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
   418
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   419
    "
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   420
     self new test30_indexOfSubCollection
352
7196bdd29f7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 288
diff changeset
   421
    "
570
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   422
!
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   423
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   424
test40_indexOfAny
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   425
    |s i collection|
570
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   426
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   427
    s := 'Some Sample Generators (74035660-d1f6-11df-9ab3-00ff7b08316c)'.
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   428
    1 to:s size do:[:start |
1480
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1471
diff changeset
   429
        i := s indexOfAny:'-' startingAt:start.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1471
diff changeset
   430
        self assert:(i == 0 or:[ i >= start]).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1471
diff changeset
   431
        (i ~~ 0) ifTrue:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1471
diff changeset
   432
            self assert:(s at:i) == $-
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1471
diff changeset
   433
        ].    
1308
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   434
    ].
1480
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1471
diff changeset
   435
    "/    123456789012 
1308
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   436
    s := 'bla bla 1234'.
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   437
    1 to:s size do:[:start |
1480
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1471
diff changeset
   438
        i := s indexOfAny:'1234' startingAt:start.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1471
diff changeset
   439
        self assert:(i == 0 or:[ i >= start]).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1471
diff changeset
   440
        (i == 9) ifTrue:[ self assert:((s at:i) == $1) ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1471
diff changeset
   441
        (i == 10) ifTrue:[ self assert:((s at:i) == $2) ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1471
diff changeset
   442
        (i == 11) ifTrue:[ self assert:((s at:i) == $3) ].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1471
diff changeset
   443
        (i == 12) ifTrue:[ self assert:((s at:i) == $4) ].
570
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   444
    ].
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   445
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   446
    collection := #($o, $l, $o).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   447
      "/  12345678901
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   448
    i := 'hello world' indexOfAny:collection startingAt:1.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   449
    self assert:(i == 3).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   450
    i := 'hello world' indexOfAny:collection startingAt:2.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   451
    self assert:(i == 3).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   452
    i := 'hello world' indexOfAny:collection startingAt:3.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   453
    self assert:(i == 3).  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   454
    i := 'hello world' indexOfAny:collection startingAt:4.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   455
    self assert:(i == 4).  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   456
    i := 'hello world' indexOfAny:collection startingAt:5.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   457
    self assert:(i == 5).  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   458
    i := 'hello world' indexOfAny:collection startingAt:6.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   459
    self assert:(i == 8).  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   460
    i := 'hello world' indexOfAny:collection startingAt:7.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   461
    self assert:(i == 8).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   462
    i := 'hello world' indexOfAny:collection startingAt:8.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   463
    self assert:(i == 8).               
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   464
    i := 'hello world' indexOfAny:collection startingAt:9.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   465
    self assert:(i == 10).  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   466
    i := 'hello world' indexOfAny:collection startingAt:10.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   467
    self assert:(i == 10).  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   468
    i := 'hello world' indexOfAny:collection startingAt:11.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   469
    self assert:(i == 0).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   470
    i := 'hello world' indexOfAny:collection startingAt:12.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   471
    self assert:(i == 0).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   472
    i := 'hello world' indexOfAny:collection startingAt:10000.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   473
    self assert:(i == 0).
570
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   474
    "
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   475
     self new test40_indexOfAny
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   476
    "
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   477
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
   478
    "Created: / 29-10-2010 / 14:58:21 / cg"
571
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
1308
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   481
test41_contains
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   482
    |s|
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   483
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   484
    s := 'abcdefg'.
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   485
    self assert:(s contains:[:ch | ch == $a]).
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   486
    self assert:(s contains:[:ch | ch == $A]) not.
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   487
    self assert:(s contains:[:ch | ch == $1]) not.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   488
    self assert:(s contains:[:ch | ch == (0 asCharacter)]) not.
1308
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   489
    "
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   490
     self new test41_contains
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   491
    "
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   492
!
0514727b0371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 1294
diff changeset
   493
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   494
test42_includesAny
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   495
    |s|
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   496
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   497
    1 to:20 do:[:na |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   498
        s := (String new:na withAll:$a),'bla bla 1234'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   499
        self assert:( s includesAny:'12').
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   500
        self assert:( s includesAny:'21').
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   501
        self assert:( s includesAny:'15').
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   502
        self assert:( s includesAny:'51').
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   503
        self assert:( s includesAny:'45').
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   504
        self assert:( s includesAny:'54').
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   505
        self assert:( s includesAny:'56') not.
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   506
    ].
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   507
    
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   508
    "
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   509
     self new test42_includesAny
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   510
    "
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   511
!
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   512
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   513
test43_occurrencesOf
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   514
    |s|
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   515
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   516
    "/             12345678901
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   517
    self assert:( 'hello world' occurrencesOf:$0 ) == 0.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   518
    self assert:( 'hello world' occurrencesOf:$l ) == 3.  
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   519
    self assert:( 'hello world' occurrencesOf:$d ) == 1.  
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   520
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   521
    "/ how about 0-bytes in between
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   522
    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
   523
    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
   524
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   525
    1 to:10 do:[:nA |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   526
        1 to:10 do:[:nB |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   527
            s := (String new:nA withAll:$a),(String new:nB withAll:$b).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   528
            self assert:(s occurrencesOf:$a) == nA.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   529
            self assert:(s occurrencesOf:$b) == nB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   530
        ]
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   531
    ].    
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   532
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   533
    s := String new:1024.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   534
    s atAllPut:$a.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   535
    s at:512 put:(Character space).
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   536
    self assert:(s occurrencesOf:(Character space)) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   537
    self assert:(s occurrencesOf:$a) == 1023.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   538
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   539
    s := String new:1024.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   540
    s atAllPut:$a.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   541
    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
   542
    self assert:(s occurrencesOf:$a) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   543
    self assert:(s occurrencesOf:$b) == 512.
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   544
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   545
    "
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   546
     self new test43_occurrencesOf
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   547
    "
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   548
!
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   549
571
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   550
test50_indexOf
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   551
    |s i|
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   552
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   553
    s := 'Some Sample Generators (74035660-d1f6-11df-9ab3-00ff7b08316c)'.
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   554
    1 to:s size do:[:start |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   555
        i := s indexOf:$- startingAt:start.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   556
        self assert:(i == 0 or:[ i >= start]).
571
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   557
    ].
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   558
    "/             12345678901
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   559
    self assert:( 'hello world' indexOf:$0 startingAt:1 ) == 0.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   560
    self assert:( 'hello world' indexOf:$l startingAt:1 ) == 3.  
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   561
    self assert:( 'hello world' indexOf:$l startingAt:5 ) == 10.  
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   562
    self assert:( 'hello world' indexOf:$d startingAt:5 ) == 11.  
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   563
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   564
    "/             12345678901
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   565
    self assert:(('hello world' indexOf:$o startingAt:1) == 5).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   566
    self assert:(('hello world' indexOf:$o startingAt:2) == 5).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   567
    self assert:(('hello world' indexOf:$o startingAt:3) == 5).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   568
    self assert:(('hello world' indexOf:$o startingAt:4) == 5).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   569
    self assert:(('hello world' indexOf:$o startingAt:5) == 5).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   570
    self assert:(('hello world' indexOf:$o startingAt:6) == 8).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   571
    self assert:(('hello world' indexOf:$o startingAt:7) == 8).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   572
    self assert:(('hello world' indexOf:$o startingAt:8) == 8).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   573
    self assert:(('hello world' indexOf:$o startingAt:9) == 0).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   574
    self assert:(('hello world' indexOf:$o startingAt:10) == 0).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   575
    self assert:(('hello world' indexOf:$o startingAt:11) == 0).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   576
    self assert:(('hello world' indexOf:$o startingAt:12) == 0).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   577
    self assert:(('hello world' indexOf:$o startingAt:10000) == 0).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   578
1418
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   579
    "/ how about 0-bytes in between
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   580
    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
   581
    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
   582
    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
   583
    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
   584
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   585
    s := '12345678901234b'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   586
    self assert:(s indexOf:$x) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   587
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   588
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   589
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   590
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   591
    self assert:(s indexOf:$5) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   592
    self assert:(s indexOf:$0) == 10.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   593
    self assert:(s indexOf:$b) == 15.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   594
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   595
    s := ''.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   596
    self assert:(s indexOf:$1) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   597
    s := '1'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   598
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   599
    self assert:(s indexOf:$2) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   600
    s := '12'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   601
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   602
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   603
    self assert:(s indexOf:$3) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   604
    s := '123'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   605
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   606
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   607
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   608
    self assert:(s indexOf:$4) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   609
    s := '1234'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   610
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   611
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   612
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   613
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   614
    self assert:(s indexOf:$5) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   615
    s := '12345'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   616
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   617
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   618
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   619
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   620
    self assert:(s indexOf:$5) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   621
    self assert:(s indexOf:$6) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   622
    s := '123456'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   623
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   624
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   625
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   626
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   627
    self assert:(s indexOf:$5) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   628
    self assert:(s indexOf:$6) == 6.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   629
    self assert:(s indexOf:$7) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   630
    s := '1234567'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   631
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   632
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   633
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   634
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   635
    self assert:(s indexOf:$5) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   636
    self assert:(s indexOf:$6) == 6.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   637
    self assert:(s indexOf:$7) == 7.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   638
    self assert:(s indexOf:$8) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   639
    s := '12345678'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   640
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   641
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   642
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   643
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   644
    self assert:(s indexOf:$5) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   645
    self assert:(s indexOf:$6) == 6.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   646
    self assert:(s indexOf:$7) == 7.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   647
    self assert:(s indexOf:$8) == 8.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   648
    self assert:(s indexOf:$9) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   649
    s := '123456789'.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   650
    self assert:(s indexOf:$1) == 1.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   651
    self assert:(s indexOf:$2) == 2.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   652
    self assert:(s indexOf:$3) == 3.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   653
    self assert:(s indexOf:$4) == 4.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   654
    self assert:(s indexOf:$5) == 5.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   655
    self assert:(s indexOf:$6) == 6.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   656
    self assert:(s indexOf:$7) == 7.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   657
    self assert:(s indexOf:$8) == 8.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   658
    self assert:(s indexOf:$9) == 9.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   659
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   660
    self assert:(s indexOf:$0) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   661
    self assert:(s indexOf:$b) == 0.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   662
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   663
    s := String new:1024.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   664
    s atAllPut:$a.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   665
    s at:512 put:(Character space).
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   666
    self assert:(s indexOf:(Character space)) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   667
    self assert:(s indexOf:(Character space) startingAt:1) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   668
    self assert:(s indexOf:(Character space) startingAt:2) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   669
    self assert:(s indexOf:(Character space) startingAt:3) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   670
    self assert:(s indexOf:(Character space) startingAt:4) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   671
    self assert:(s indexOf:(Character space) startingAt:5) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   672
    self assert:(s indexOf:(Character space) startingAt:6) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   673
    self assert:(s indexOf:(Character space) startingAt:7) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   674
    self assert:(s indexOf:(Character space) startingAt:8) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   675
    self assert:(s indexOf:(Character space) startingAt:9) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   676
    self assert:(s indexOf:(Character space) startingAt:511) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   677
    self assert:(s indexOf:(Character space) startingAt:512) == 512.
17555e11c398 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1417
diff changeset
   678
    self assert:(s indexOf:(Character space) startingAt:513) == 0.
571
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   679
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   680
    "
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   681
     self new test50_indexOf
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   682
    "
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   683
181f1551fa0c Additional method
Stefan Vogel <sv@exept.de>
parents: 570
diff changeset
   684
    "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
   685
!
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   686
1471
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
   687
test51_indexOf
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
   688
    "
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
   689
    Tests for bug #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
   690
    https://swing.fit.cvut.cz/projects/stx-jv/ticket/68
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
   691
    "
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
   692
    self assert: ('1234(xxxx' indexOf: $( startingAt: 1) == 5.
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
   693
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
   694
    "Created: / 23-11-2015 / 21:39:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
   695
!
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
   696
1373
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   697
test51_substrings
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   698
    self assert:('aaa/bbb/ccc' subStrings:'/') asArray = #('aaa' 'bbb' 'ccc').
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   699
    self assert:(('aaa/bbb/ccc' subStrings:'/') asStringWith:'/') = 'aaa/bbb/ccc'.
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   700
1385
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   701
"/    self assert:('/aaa/bbb/ccc' subStrings:'/') asArray = #('' 'aaa' 'bbb' 'ccc').
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   702
"/    self assert:(('/aaa/bbb/ccc' subStrings:'/') asStringWith:'/') = '/aaa/bbb/ccc'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   703
"/
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   704
"/    self assert:('aaa/bbb/ccc/' subStrings:'/') asArray = #('aaa' 'bbb' 'ccc' '' ).
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   705
"/    self assert:(('aaa/bbb/ccc/' subStrings:'/') asStringWith:'/') = '/aaa/bbb/ccc/'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   706
"/
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   707
"/    self assert:('/aaa/bbb/ccc/' subStrings:'/') asArray = #('' 'aaa' 'bbb' 'ccc' '').
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   708
"/    self assert:(('/aaa/bbb/ccc/' subStrings:'/') asStringWith:'/') = '/aaa/bbb/ccc'' '.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   709
"/
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   710
"/    self assert:('//aaa/bbb/ccc' subStrings:'/') asArray = #('' '' 'aaa' 'bbb' 'ccc').
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   711
"/    self assert:(('//aaa/bbb/ccc' subStrings:'/') asStringWith:'/') = '//aaa/bbb/ccc'.
1373
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   712
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   713
    "
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   714
     self new test51_substrings
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   715
    "
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   716
!
92c28dfbf621 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1308
diff changeset
   717
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   718
test52_indexOfSeparator
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   719
    |j s|
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   720
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   721
    self assert:('' indexOfSeparator) == 0.
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   722
    1 to:20 do:[:n |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   723
        s := (String new:n withAll:$a).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   724
        1 to:20 do:[:start |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   725
            self assert:(s indexOfSeparatorStartingAt:start) == 0.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   726
        ].    
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   727
    ].    
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   728
    1 to:20 do:[:n |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   729
        s := (String new:n withAll:$a),' '.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   730
        1 to:n do:[:start |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   731
            self assert:(s indexOfSeparatorStartingAt:start) == (n+1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   732
        ].    
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   733
    ].    
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   734
    
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   735
    { 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   736
        Character space .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   737
        Character tab .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   738
        Character return .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   739
        Character lf .
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   740
    } do:[:sep |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   741
        1 to:20 do:[:na |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   742
            1 to:20 do:[:nb |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   743
                s := (String new:na withAll:$a),sep,(String new:na withAll:$a).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   744
                1 to:na do:[:start |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   745
                    self assert:(s indexOfSeparatorStartingAt:start) == (na+1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   746
                ]
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   747
            ]
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   748
        ].    
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   749
    ].
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   750
    
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   751
    { 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   752
        Character esc .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   753
        Character null .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   754
        $a .
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   755
    } do:[:nonSep |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   756
        1 to:20 do:[:na |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   757
            1 to:20 do:[:nb |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   758
                s := (String new:na withAll:$a),nonSep,(String new:na withAll:$a).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   759
                1 to:20 do:[:start |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   760
                    self assert:(s indexOfSeparatorStartingAt:start) == 0.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   761
                ]
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   762
            ]
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   763
        ].    
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   764
    ].
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   765
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   766
    s := String new:1000 withAll:$a.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   767
    self assert:(s indexOfSeparatorStartingAt:1) == 0.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   768
    400 to: 417 do:[:i |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   769
        s := String new:1000 withAll:$a.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   770
        s at:i put:(Character space).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   771
        self assert:(s indexOfSeparatorStartingAt:1) == i.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   772
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   773
        s := String new:1000 withAll:$a.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   774
        s at:i put:(Character return).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   775
        self assert:(s indexOfSeparatorStartingAt:1) == i.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   776
    ]. 
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   777
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   778
      "/  12345678901
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   779
    j := 'hello world' indexOfSeparatorStartingAt:1.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   780
    self assert:(j == 6).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   781
    j := 'hello world ' indexOfSeparatorStartingAt:2.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   782
    self assert:(j == 6).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   783
    j := 'hello world ' indexOfSeparatorStartingAt:3.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   784
    self assert:(j == 6).  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   785
    j := 'hello world ' indexOfSeparatorStartingAt:4.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   786
    self assert:(j == 6).  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   787
    j := 'hello world ' indexOfSeparatorStartingAt:5.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   788
    self assert:(j == 6).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   789
    j := 'hello world ' indexOfSeparatorStartingAt:6.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   790
    self assert:(j == 6).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   791
    j := 'hello world ' indexOfSeparatorStartingAt:7.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   792
    self assert:(j == 12).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   793
    j := 'hello world ' indexOfSeparatorStartingAt:8.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   794
    self assert:(j == 12).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   795
    j := 'hello world ' indexOfSeparatorStartingAt:9.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   796
    self assert:(j == 12).  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   797
    j := 'hello world ' indexOfSeparatorStartingAt:10.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   798
    self assert:(j == 12).  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   799
    j := 'hello world ' indexOfSeparatorStartingAt:11.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   800
    self assert:(j == 12).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   801
    j := 'hello world ' indexOfSeparatorStartingAt:12.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   802
    self assert:(j == 12).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   803
    j := 'hello world' indexOfSeparatorStartingAt:12.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   804
    self assert:(j == 0).  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   805
    j := 'hello world ' indexOfSeparatorStartingAt:13.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   806
    self assert:(j == 0).
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   807
    j := 'hello world ' indexOfSeparatorStartingAt:10000.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   808
    self assert:(j == 0).  
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   809
     
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   810
    "
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   811
     self new test52_indexOfSeparator
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   812
    "
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   813
!
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   814
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   815
test54_occurrencesOf
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   816
    |s|
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   817
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   818
    self assert:('' occurrencesOf:$a) == 0.
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   819
    1 to:20 do:[:n |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   820
        s := (String new:n withAll:$a).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   821
        self assert:(s occurrencesOf:$a) == n.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   822
    ].    
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   823
    1 to:20 do:[:na |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   824
        1 to:20 do:[:nb |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   825
            s := (String new:na withAll:$a),(String new:nb withAll:$b).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   826
            self assert:(s occurrencesOf:$a) == na.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   827
        ].    
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   828
    ].    
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   829
    1 to:40 do:[:n |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   830
        s := String new:n withAll:$a.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   831
        1 to:n by:2 do:[:n |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   832
            s at:n put:$b.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   833
        ].    
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   834
        self assert:(s occurrencesOf:$a) == (n // 2).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   835
    ].    
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   836
    
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   837
    s := String new:1000 withAll:$a.
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   838
    self assert:(s occurrencesOf:$a) == 1000.
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   839
    1 to:1000 do:[:i |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   840
        s at:i put:$b.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   841
        self assert:(s occurrencesOf:$a) == (1000-i).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   842
        self assert:(s occurrencesOf:$b) == i.
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   843
    ].
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   844
    
1420
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   845
    "
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   846
     self new test54_occurrencesOf
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   847
    "
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   848
!
d5438e5960ed #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1419
diff changeset
   849
751
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   850
test60_hash
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   851
    "
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   852
    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
   853
    returned different values. This test checks this
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   854
    "
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   855
753
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   856
    | tester |
751
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   857
753
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   858
    tester := [:s|
1485
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1480
diff changeset
   859
        |sHash u16Hash u32Hash|
1385
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   860
1485
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1480
diff changeset
   861
        sHash := s hash.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1480
diff changeset
   862
        u16Hash := s asUnicode16String hash.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1480
diff changeset
   863
        u32Hash := s asUnicode32String hash.
1385
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   864
1485
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1480
diff changeset
   865
        self assert: sHash == u16Hash
1486
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1485
diff changeset
   866
             description: ('String and Unicode16String hashes differ on "%1" (%2)'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1485
diff changeset
   867
                                bindWith:s with:s class name).
1485
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1480
diff changeset
   868
        self assert: sHash == u32Hash
1486
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1485
diff changeset
   869
             description: ('String and Unicode32String hashes differ on "%1" (%2)'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1485
diff changeset
   870
                                bindWith:s with:s class name)
751
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   871
    ].
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   872
753
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   873
    tester value:'a'.
1385
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   874
    tester value:'12345678901234'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   875
    tester value:'1234567890123'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   876
    tester value:'123456789012'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   877
    tester value:'12345678901'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   878
    tester value:'1234567890'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   879
    tester value:'123456789'.
753
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   880
    tester value:'12345678'.
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   881
    tester value:'1234567'.
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   882
    tester value:'123456'.
1385
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   883
    tester value:'12345'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   884
    tester value:'1234'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   885
    tester value:'123'.
Claus Gittinger <cg@exept.de>
parents: 1373
diff changeset
   886
    tester value:'12'.
753
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   887
    tester value:'boolean'.
751
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   888
1417
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   889
    "/ strings with 0-elements
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   890
    tester value:('' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   891
    tester value:('1' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   892
    tester value:('12' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   893
    tester value:('123' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   894
    tester value:('1234' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   895
    tester value:('12345' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   896
    tester value:('123456' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   897
    tester value:('1234567' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   898
    tester value:('12345678' copyWith:Character null).
d624843fda05 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   899
    tester value:('123456789' copyWith:Character null).
1419
cfc3eb59fbcf #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1418
diff changeset
   900
cfc3eb59fbcf #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1418
diff changeset
   901
    tester value:('' copyWith:Character null),'123'.
cfc3eb59fbcf #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1418
diff changeset
   902
    tester value:('1' copyWith:Character null),'123'.
cfc3eb59fbcf #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1418
diff changeset
   903
    tester value:('12' copyWith:Character null),'123'.
cfc3eb59fbcf #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1418
diff changeset
   904
    tester value:('123' copyWith:Character null),'123'.
cfc3eb59fbcf #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1418
diff changeset
   905
    tester value:('1234' copyWith:Character null),'123'.
cfc3eb59fbcf #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1418
diff changeset
   906
    tester value:('12345' copyWith:Character null),'123'.
cfc3eb59fbcf #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1418
diff changeset
   907
    tester value:('123456' copyWith:Character null),'123'.
cfc3eb59fbcf #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1418
diff changeset
   908
    tester value:('1234567' copyWith:Character null),'123'.
cfc3eb59fbcf #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1418
diff changeset
   909
    tester value:('12345678' copyWith:Character null),'123'.
cfc3eb59fbcf #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1418
diff changeset
   910
    tester value:('123456789' copyWith:Character null),'123'.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   911
    
1419
cfc3eb59fbcf #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1418
diff changeset
   912
    "/ String allInstancesDo:[:each| tester value:each].
753
81af28f807cf class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 752
diff changeset
   913
    Symbol allInstancesDo:[:each| tester value:each].
751
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   914
8c9ff6c5efe2 Added string hashing tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 702
diff changeset
   915
    "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
   916
!
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
   917
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   918
test65_concatenation
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   919
    |strA strB|
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   920
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   921
    0 to:32 do:[:szA | 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   922
        0 to:32 do:[:szB | 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   923
            |szAB|
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   924
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   925
            strA := String new:szA withAll:$a.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   926
            strB := String new:szB withAll:$b.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   927
            szAB := szA + szB.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   928
            self assert:(szA = strA size).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   929
            self assert:(szB = strB size).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   930
            10000 timesRepeat:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   931
                |strAB|
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   932
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   933
                strAB := strA , strB.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   934
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   935
                self assert:(szAB == strAB size).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   936
            ]
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   937
        ]
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   938
    ].
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   939
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   940
    strA := strB := ''.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   941
    self assert: ((strA , strB) = '').
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   942
    self assert: ((strA , strA) = '').
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   943
    strA := 'a'.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   944
    self assert: ((strA , strA) = 'aa').  
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   945
    self assert: ((strA , strB) = 'a').
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   946
    strA := ''.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   947
    strB := 'b'.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   948
    self assert: ((strA , strB) = 'b').    
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   949
    strA := 'b'.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   950
    strB := 'a'.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   951
    self assert: ((strB , strA) = 'ab'). 
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   952
    "
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   953
     self new test65_concatenation
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   954
    "
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   955
!
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   956
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   957
test66_replace
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   958
    |strA|
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   959
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   960
    1 to:64 do:[:szA |
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   961
        strA := String new:szA withAll:$a.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   962
            1 to:szA do:[:idx |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   963
                strA at:idx put:$*.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   964
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   965
                strA replaceAll:$* with:$#.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   966
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   967
                self assert:(strA at:idx) = $#.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   968
                self assert:(strA occurrencesOf:$#) = idx.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   969
                self assert:(strA count:[:ch | ch = $#]) = idx.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   970
                self assert:(strA occurrencesOf:$*) = 0.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   971
                self assert:(strA count:[:ch | ch = $*]) = 0.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   972
                self assert:(strA includes:$#).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   973
                self assert:(strA includes:$*) not.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   974
        ]
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   975
    ]
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   976
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   977
    "
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   978
     self new test66_replace
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   979
    "
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   980
!
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   981
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   982
test67_concatenationAnd
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   983
    |strA strB strC|
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   984
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   985
    0 to:32 do:[:szA | 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   986
        0 to:32 do:[:szB | 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   987
            0 to:32 do:[:szC | 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   988
                |szABC|
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   989
                strA := String new:szA withAll:$a.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   990
                strB := String new:szB withAll:$b.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   991
                strC := String new:szC withAll:$c.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   992
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   993
                szABC := szA + szB + szC.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   994
                self assert:(szA = strA size).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   995
                self assert:(szB = strB size).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   996
                self assert:(szC = strC size).
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
   997
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   998
                300 timesRepeat:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
   999
                    |strABC|
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1000
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1001
                    strABC := strA concatenate:strB and:strC.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1002
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1003
                    self assert:(szABC == strABC size).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1004
                ]
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1005
            ]
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1006
        ]
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1007
    ].
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1008
    strA := strB := strC := ''.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1009
    self assert: ((strA concatenate:strB and:strC) = '').
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1010
    strA := 'a'.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1011
    self assert: ((strA concatenate:strB and:strC) = 'a').
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1012
    strA := ''.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1013
    strB := 'b'.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1014
    self assert: ((strA concatenate:strB and:strC) = 'b').    
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1015
    strB := ''.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1016
    strC := 'c'.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1017
    self assert: ((strA concatenate:strB and:strC) = 'c').    
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1018
    strA := 'c'.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1019
    strB := 'b'.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1020
    strC := 'a'.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1021
    self assert: ((strC concatenate:strB and:strA) = 'abc').         
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1022
    "
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1023
     self new test67_concatenationAnd
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1024
    "
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1025
!
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1026
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1027
test68_concatenationAndAnd
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1028
    |strA strB strC strD|
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1029
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1030
    0 to:32 do:[:szA | 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1031
        strA := String new:szA withAll:$a.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1032
        self assert:(szA = strA size).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1033
        0 to:32 do:[:szB | 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1034
            strB := String new:szB withAll:$b.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1035
            self assert:(szB = strB size).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1036
            0 to:32 do:[:szC | 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1037
                strC := String new:szC withAll:$c.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1038
                self assert:(szC = strC size).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1039
                0 to:32 do:[:szD | 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1040
                    |szABCD|
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1041
                    strD := String new:szD withAll:$d.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1042
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1043
                    szABCD := szA + szB + szC + szD.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1044
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1045
                    self assert:(szD = strD size).
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1046
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1047
                    5 timesRepeat:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1048
                        |strABCD|
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1049
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1050
                        strABCD := strA concatenate:strB and:strC and:strD.
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1051
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1052
                        self assert:(szABCD == strABCD size).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1053
                    ]      
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1054
                ]
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1055
            ]
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1056
        ]
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1057
    ].
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1058
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1059
    strA := strB := strC := strD := ''.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1060
    self assert: ((strA concatenate:strB and:strC and:strD) = '').
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1061
    strA := 'a'.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1062
    self assert: ((strA concatenate:strB and:strC and:strD) = 'a').
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1063
    strA := ''.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1064
    strB := 'b'.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1065
    self assert: ((strA concatenate:strB and:strC and:strD) = 'b').    
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1066
    strB := ''.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1067
    strC := 'c'.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1068
    self assert: ((strA concatenate:strB and:strC and:strD) = 'c').    
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1069
    strC := ''.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1070
    strD := 'd'.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1071
    self assert: ((strA concatenate:strB and:strC and:strD) = 'd').    
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1072
    strA := 'd'.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1073
    strB := 'c'.
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1074
    strC := 'b'.
1496
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1075
    strD := 'a'.   
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1486
diff changeset
  1076
    self assert: ((strD concatenate:strC and:strB and:strA) = 'abcd'). 
1426
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1077
    "
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1078
     self new test68_concatenationAndAnd
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1079
    "
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1080
!
f9427fb3fbcf #QUALITY by mawalch
mawalch
parents: 1425
diff changeset
  1081
962
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
  1082
test70_storeString
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
  1083
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
  1084
    self assert: 'AAA' storeString = '''AAA'''.
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
  1085
    self assert: 'A''A''A' storeString = '''A''''A''''A'''.
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
  1086
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
  1087
    self assert: 'AAA' asImmutableString storeString = '''AAA'''.
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
  1088
    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
  1089
2fca937dc59b class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 874
diff changeset
  1090
    "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
  1091
!
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1092
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1093
test80_copyReplaceAll
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1094
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1095
    | orig copy |
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1096
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1097
    orig := 'AAA' copy. "/ In case literals are immutable...
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1098
    self assert: orig = 'AAA'.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1099
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1100
    copy := orig copyReplaceAll: $A with: $X.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1101
    self assert: copy = 'XXX'.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1102
    self assert: orig = 'AAA'.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1103
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1104
    orig := 'AAA' asImmutableString.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1105
    self assert: orig = 'AAA'.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1106
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1107
    copy := orig copyReplaceAll: $A with: $X.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1108
    self assert: copy = 'XXX'.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1109
    self assert: orig = 'AAA'.
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1110
373c0f5e539d class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1060
diff changeset
  1111
    "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
  1112
!
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
  1113
1240
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1114
test81_filling
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1115
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1116
    | str |
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1117
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1118
    str := 'AAA' copy. "/ In case literals are immutable...
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1119
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1120
    str atAllPut:$B.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1121
    self assert: str = 'BBB'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1122
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1123
    str from:1 to:0 put:$C.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1124
    self assert: str = 'BBB'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1125
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1126
    str from:1 to:1 put:$D.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1127
    self assert: str = 'DBB'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1128
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1129
    str from:1 to:2 put:$E.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1130
    self assert: str = 'EEB'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1131
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1132
    str from:1 to:3 put:$F.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1133
    self assert: str = 'FFF'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1134
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1135
    str from:1 to:0 put:$G.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1136
    self assert: str = 'FFF'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1137
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1138
    str from:-1 to:-2 put:$G.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1139
    self assert: str = 'FFF'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1140
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1141
    self should:[
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
  1142
	str from:-1 to:-1 put:$x
1240
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1143
    ] raise:SubscriptOutOfBoundsError.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1144
    self assert: str = 'FFF'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1145
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1146
    self should:[
1421
3236b9c7d993 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
  1147
	str from:-1 to:1 put:$x
1240
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1148
    ] raise:SubscriptOutOfBoundsError.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1149
    self assert: str = 'FFF'.
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1150
!
4b187f56458b class: RegressionTests::StringTests
Claus Gittinger <cg@exept.de>
parents: 1214
diff changeset
  1151
1214
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
  1152
test90_hash
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
  1153
    | string8 string16 string32 |
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
  1154
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
  1155
    string8 := 'sun/nio/cs/UTF_8.class'.
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
  1156
    string16 := string8 asUnicode16String.
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
  1157
    string32 := string8 asUnicode16String.
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
  1158
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
  1159
    self assert: string8 hash == string16 hash.
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
  1160
    self assert: string8 hash == string32 hash.
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
  1161
11cb005634cb class: RegressionTests::StringTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1103
diff changeset
  1162
    "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
  1163
! !
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1164
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1165
!StringTests class methodsFor:'documentation'!
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1166
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1167
version
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1168
    ^ '$Header$'
570
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
  1169
!
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
  1170
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
  1171
version_CVS
705b823baac2 string error
Claus Gittinger <cg@exept.de>
parents: 353
diff changeset
  1172
    ^ '$Header$'
1471
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
  1173
!
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
  1174
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
  1175
version_HG
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
  1176
f860709d1a2b Added test for big #68: String>>indexOf:startingAt: broken under Windows/ MINGW64
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1470
diff changeset
  1177
    ^ '$Changeset: <not expanded> $'
283
6aeeeda25c69 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1178
! !
752
ef9236c7271c class: RegressionTests::StringTests
Stefan Vogel <sv@exept.de>
parents: 751
diff changeset
  1179