RegressionTests__CharacterSetTests.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 1447 2351db93aa5b
child 1500 d406a10b2965
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1255
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
574
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#CharacterSetTests
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
1053
fad6ec16a95c category
Claus Gittinger <cg@exept.de>
parents: 574
diff changeset
     9
	category:'tests-Regression-Collections'
574
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!CharacterSetTests methodsFor:'tests'!
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
test01_creation
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    |s|
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    s := CharacterSet new.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
    self assert:(s isEmpty).
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
    self assert:(s size == 0).
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    self assert:(s notEmpty) not.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
1255
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    23
    s := CharacterSet allSingleByteCharacters.
1254
d203d03e3c48 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
    24
    self assert:(s includesAll:((Character value:0) to:(Character value:255))).
d203d03e3c48 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
    25
    self assert:(s isEmpty) not.
d203d03e3c48 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
    26
    self assert:(s size == 256).
d203d03e3c48 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
    27
    self assert:(s notEmpty).
d203d03e3c48 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
    28
1255
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    29
    s := CharacterSet separators.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    30
    self assert:(s includesAll:(Character separators)).
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    31
    self assert:(s size == Character separators size).
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    32
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    33
    s := CharacterSet nonSeparators.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    34
    self assert:(s includesAny:(Character separators)) not.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    35
    self assert:(s size == (256 - Character separators size)).
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    36
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    37
    s := CharacterSet separators.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    38
    self assert:(s complement = CharacterSet nonSeparators).
574
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
!
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
test02_addRemove
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    |s|
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    s := CharacterSet new.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    self assert:(s size == 0).
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    self assert:(s includes:(Character value:10)) not.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    self assert:(s includes:(Character value:9)) not.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    self assert:(s includes:(Character value:11)) not.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
1255
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    50
    self assert:(s includes:(Character value:99)) not.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    51
    self assert:(s includes:(Character value:300)) not.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    52
574
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    s add:(Character value:10).
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    self assert:(s size == 1).
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    self assert:(s includes:(Character value:10)).
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    self assert:(s includes:(Character value:9)) not.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    self assert:(s includes:(Character value:11)) not.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    s remove:(Character value:11) ifAbsent:[].
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    self assert:(s size == 1).
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    self assert:(s includes:(Character value:10)).
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    self assert:(s includes:(Character value:9)) not.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    self assert:(s includes:(Character value:11)) not.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    s remove:(Character value:10).
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    self assert:(s size == 0).
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    self assert:(s includes:(Character value:10)) not.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    self assert:(s includes:(Character value:9)) not.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    self assert:(s includes:(Character value:11)) not.
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    "Created: / 28-01-2011 / 17:41:18 / cg"
1253
11c17f3bb3c0 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
    72
!
11c17f3bb3c0 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
    73
11c17f3bb3c0 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
    74
test03_copy
11c17f3bb3c0 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
    75
    |orig copy|
11c17f3bb3c0 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
    76
11c17f3bb3c0 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
    77
    orig := CharacterSet newFrom:'abc'.
11c17f3bb3c0 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
    78
    copy := orig copy.
11c17f3bb3c0 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
    79
    copy remove:$a.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1255
diff changeset
    80
1253
11c17f3bb3c0 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1053
diff changeset
    81
    self assert:(orig includes:$a) message:'changing the copy should not change original'.
1255
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    82
!
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    83
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    84
test04_comparing
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    85
    |orig copy|
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    86
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    87
    orig := CharacterSet newFrom:'abc'.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    88
    copy := orig copy.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    89
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    90
    self assert:(orig = copy).
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    91
    self assert:(orig ~= copy) not.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    92
    self assert:(orig hash = copy hash).
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    93
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    94
    orig add:$d.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    95
    self assert:(orig = copy) not.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    96
    self assert:(orig ~= copy).
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    97
    self assert:(orig hash ~= copy hash).
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    98
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    99
    orig remove:$d.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
   100
    self assert:(orig = copy).
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
   101
    self assert:(orig ~= copy) not.
ef45c030e47e class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
   102
    self assert:(orig hash = copy hash).
574
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
! !
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
!CharacterSetTests class methodsFor:'documentation'!
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
1254
d203d03e3c48 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
   107
version
d203d03e3c48 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
   108
    ^ '$Header$'
d203d03e3c48 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
   109
!
d203d03e3c48 class: RegressionTests::CharacterSetTests
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
   110
574
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
version_CVS
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    ^ '$Header$'
f868308bfcc1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
! !
1053
fad6ec16a95c category
Claus Gittinger <cg@exept.de>
parents: 574
diff changeset
   114