RegressionTests__CollectionTests.st
author Claus Gittinger <cg@exept.de>
Mon, 04 Jul 2011 21:37:54 +0200
changeset 585 440a4221854e
parent 538 5b0084e6b4a1
child 615 3a61700c6e88
permissions -rw-r--r--
added: #coveredClasses #version_CVS changed: #testDictionary01 #testOrderedCollection01_Sort1 #testOrderedDictionary01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'exept:regression' }"
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
157
2a671e687618 moved to namespace
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
     3
"{ NameSpace: RegressionTests }"
2a671e687618 moved to namespace
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
     4
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#CollectionTests
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
     6
	instanceVariableNames:'empty nonEmpty'
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
181
a56517005229 category change
Claus Gittinger <cg@exept.de>
parents: 162
diff changeset
     9
	category:'tests-Regression'
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    12
Object subclass:#SortTestData
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    13
	instanceVariableNames:'value order'
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    14
	classVariableNames:''
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    15
	poolDictionaries:''
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    16
	privateIn:CollectionTests
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    17
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    18
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!CollectionTests class methodsFor:'documentation'!
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    21
coveredClasses
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    22
    ^ Collection withAllSubclasses
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    23
!
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    24
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
documentation
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
    documentation to be added.
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
    [author:]
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
        Claus Gittinger (cg@alan)
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
    [see also:]
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
    [instance variables:]
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
    [class variables:]
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
"
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
!
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
history
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    "Created: / 8.11.2001 / 08:17:09 / cg"
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
! !
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    44
!CollectionTests class methodsFor:'others'!
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    45
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    46
version_CVS
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    47
    ^ '$Header$'
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    48
! !
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    49
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    50
!CollectionTests methodsFor:'helpers'!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    51
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    52
collectedDoArgsOf:aCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    53
    |collectedDoArgs|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    54
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    55
    collectedDoArgs := OrderedCollection new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    56
    aCollection do:[:each | collectedDoArgs add:each].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    57
    ^ collectedDoArgs
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    58
! !
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    59
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    60
!CollectionTests methodsFor:'initialize-release'!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    61
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    62
setUp
295
6cea62ad1642 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
    63
        empty := Set new.
6cea62ad1642 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
    64
        nonEmpty := OrderedCollection with: #x.
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    65
! !
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    66
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    67
!CollectionTests methodsFor:'tests-dictionary'!
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
testDictionary01
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    70
    |d v1 v2 v3 ret|
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    d := Dictionary new.
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    d at:1 put:(v1 := 'one').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    d at:2 put:(v2 := 'two').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    d at:3 put:(v3 := 'three').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    self assert: ( d size == 3 ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    78
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    79
    self assert:(ret := self collectedDoArgsOf:d) asArray = #('one' 'two' 'three').
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    80
    self assert:(ret := d collect:[:each | each]) = #('one' 'two' 'three') asBag.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    81
    self assert:(ret := d select:[:each | true]) = (Dictionary withAssociations:(Array with:(1->'one') with:(2->'two') with:(3->'three'))).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    82
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    self assert: ( (d at:1) == v1 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    self assert: ( (d at:2) == v2 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    self assert: ( (d at:3) == v3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    d at:3 put:(v3 := 'drei').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    self assert: ( d size == 3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    self assert: ( (d at:1) == v1 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    self assert: ( (d at:2) == v2 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    self assert: ( (d at:3) == v3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    self assert: ( (d keyAtValue:v1) = 1 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
    "
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
     self basicNew testDictionary01
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    "
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   100
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   101
    "Modified: / 04-07-2011 / 19:28:39 / cg"
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   102
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   103
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   104
!CollectionTests methodsFor:'tests-general'!
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   105
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   106
doTestGeneralCollectionOperationsIn:aClass
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   107
    |coll|
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   108
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   109
    coll := aClass new.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   110
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   111
    self assert: ( coll size == 0 ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   112
    self assert: ( coll isEmpty ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   113
    self assert: ( coll notEmpty not ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   114
    self assert: ( coll isEmptyOrNil ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   115
    self assert: ( coll notEmptyOrNil not ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   116
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   117
    self should: [ coll first ] raise:Error.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   118
    self should: [ coll last ] raise:Error.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   119
    self should: [ (coll at:1) ] raise:Error.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   120
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   121
    self assert: ( (coll includes:0) not ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   122
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   123
    "
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   124
     self basicNew testGeneralOperations
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   125
    "
156
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   126
!
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   127
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   128
testGeneralOperations
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   129
    |classes|
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   130
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   131
    classes := OrderedCollection new.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   132
    classes 
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   133
        add:RunArray;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   134
        add:Bag;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   135
        add:Set;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   136
        add:IdentitySet;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   137
        add:Dictionary;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   138
        add:IdentityDictionary;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   139
        add:OrderedCollection;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   140
        add:SortedCollection;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   141
        add:Queue;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   142
        add:Stack;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   143
        add:SortedCollection;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   144
        add:OrderedDictionary;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   145
        add:OrderedSet.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   146
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   147
    classes do:[:eachClass |
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   148
        self doTestGeneralCollectionOperationsIn:eachClass
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   149
    ].
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   150
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   151
    "
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   152
     self basicNew testGeneralOperations
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   153
    "
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   154
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   155
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   156
!CollectionTests methodsFor:'tests-interval'!
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   157
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   158
testInterval01
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   159
    |i|
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   160
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   161
    i := 1 to:10.
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   163
    self assert: ( i size == 10 ).
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   164
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   165
    self assert: ( i includes:1 ).
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   166
    self assert: ( i includes:10 ).
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   167
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   168
    self assert: ( i min == 1 ).
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   169
    self assert: ( i max == 10 ).
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   170
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   171
    "cannot add/remove"
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   172
    self should:[i add:99] raise:Error.
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   173
    self should:[i remove:10] raise:Error.
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   174
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   175
    "
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   176
     self basicNew testInterval01
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   177
    "
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   178
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   179
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   180
!CollectionTests methodsFor:'tests-orderedCollection'!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   181
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   182
testOrderedCollection01_Sort1
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   183
    |col col2|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   184
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   185
    col := #( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ) copy.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   186
    col sort.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   187
    self assert:( col sameContentsAs: (1 to:20)).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   188
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   189
    col := #( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ) copy reverse.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   190
    col sort.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   191
    self assert:( col sameContentsAs: (1 to:20) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   192
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   193
    col := #( 10 2 13 4 15 6 17 8 19 11 1 12 3 14 5 16 7 18 9 20 ) copy.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   194
    col sort.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   195
    self assert:( col sameContentsAs: (1 to:20) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   196
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   197
    col := ( 1 to: 10000 ) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   198
    col sort.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   199
    self assert:( col sameContentsAs: (1 to:10000) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   200
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   201
    col := ( 1 to: 10000 ) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   202
    col2 := ( 1 to: 10000 ) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   203
    col sortWith:col2.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   204
    self assert:( col sameContentsAs: (1 to:10000) ).
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   205
    self assert:( col2 sameContentsAs: (1 to:10000) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   206
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   207
    col := ( 10000 to: 1 by:-1) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   208
    col2 := ( 10000 to: 1 by:-1) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   209
    col sortWith:col2.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   210
    self assert:( col sameContentsAs: (1 to:10000) ).
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   211
    self assert:( col2 sameContentsAs: (1 to:10000) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   212
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   213
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   214
     self new testOrderedCollection01_Sort1  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   215
    "
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   216
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   217
    "Modified: / 04-07-2011 / 19:29:54 / cg"
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   218
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   219
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   220
testOrderedCollection02_SortBigCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   221
    | size col sortBlock|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   222
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   223
    size := 12500.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   224
    col := OrderedCollection new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   225
    1 to:size do:[:el|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   226
        col add:nil.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   227
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   228
    sortBlock := [:entry1 :entry2 |  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   229
        ((entry1 isNil) or:[entry2 isNil]) ifTrue:[
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   230
            true
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   231
        ] ifFalse:[
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   232
            false
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   233
        ]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   234
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   235
    self shouldnt:[col sort:sortBlock] raise:RecursionInterruptSignal.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   236
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   237
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   238
     self new testOrderedCollection02_SortBigCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   239
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   240
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   241
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   242
testOrderedCollection03_SortBigCollection2
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   243
    | size col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   244
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   245
    size := 12500.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   246
    col := OrderedCollection new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   247
    1 to:size do:[:el|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   248
        col add:'abc'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   249
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   250
    self shouldnt:[col sort] raise:RecursionInterruptSignal.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   251
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   252
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   253
     self new testOrderedCollection03_SortBigCollection2
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   254
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   255
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   256
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   257
testOrderedCollection04_SortNilsInCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   258
    | size col sortBlock|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   259
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   260
    size := 125.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   261
    col := OrderedCollection new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   262
    1 to:size do:[:el|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   263
        col add:nil.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   264
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   265
    sortBlock := [:entry1 :entry2 |  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   266
        ((entry1 isNil) or:[entry2 isNil]) ifTrue:[
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   267
            true
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   268
        ] ifFalse:[
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   269
            false
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   270
        ]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   271
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   272
    "/ col sort:sortBlock.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   273
    self shouldnt:[col sort:sortBlock] raise:RecursionInterruptSignal.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   274
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   275
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   276
     self new testOrderedCollection04_SortNilsInCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   277
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   278
! !
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   279
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   280
!CollectionTests methodsFor:'tests-orderedDictionary'!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   281
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   282
testOrderedDictionary01
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   283
    |d ret|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   284
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   285
    d := OrderedDictionary new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   286
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   287
    self assert: ( d size == 0 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   288
    self assert: ( d isEmpty ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   289
    self assert: ( d notEmpty not ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   290
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   291
    d at:'one' put:1.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   292
    d at:'two' put:2.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   293
    d at:'three' put:3.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   294
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   295
    self assert: ( d size == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   296
    self assert: ( d isEmpty not).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   297
    self assert: ( d notEmpty ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   298
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   299
    self assert:((ret := self collectedDoArgsOf:d) sameContentsAs: #(1 2 3)).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   300
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   301
    self assert: ( (d atIndex:1) == 1 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   302
    self assert: ( (d atIndex:2) == 2 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   303
    self assert: ( (d atIndex:3) == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   304
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   305
    self assert: ( (d first) = ('one'->1) ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   306
    self assert: ( (d last) = ('three'->3) ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   307
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   308
    self assert:((ret := d collect:[:each | each]) sameContentsAs: #(1 2 3)).
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   309
    self assert:((ret := d select:[:each | true]) sameContentsAs: (OrderedDictionary withAssociations:(Array with:('one'->1) with:('two'->2) with:('three'->3)))).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   310
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   311
    self assert: ( d includes:1 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   312
    self assert: ( d includes:2 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   313
    self assert: ( d includes:3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   314
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   315
    self assert: ( d includesKey:'one' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   316
    self assert: ( d includesKey:'two' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   317
    self assert: ( d includesKey:'three' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   318
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   319
    self assert: ((ret := d removeFirst) = 1).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   320
    self assert: ( d size == 2 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   321
    self assert: ((ret := d removeLast) = 3).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   322
    self assert: ( d size == 1 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   323
    self assert: ((ret := d removeLast) = 2).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   324
    self assert: ( d size == 0 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   325
    self assert: ( d isEmpty ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   326
    self assert: ( d notEmpty not ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   327
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   328
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   329
     self basicNew testOrderedDictionary01
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   330
    "
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   331
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   332
    "Modified: / 04-07-2011 / 19:32:34 / cg"
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   333
! !
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   334
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   335
!CollectionTests methodsFor:'tests-orderedSet'!
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   336
156
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   337
testOrderedSet01
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   338
    |s v1 v2 v3|
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   339
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   340
    s := OrderedSet new.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   341
    s add:(v1 := 'one').
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   342
    s add:(v2 := 'two').
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   343
    s add:(v3 := 'three').
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   344
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   345
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   346
    self assert: ( (s at:1) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   347
    self assert: ( (s at:2) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   348
    self assert: ( (s at:3) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   349
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   350
    self assert: ( s includes:v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   351
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   352
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   353
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   354
    self assert: ( s includes:v1 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   355
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   356
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   357
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   358
    "already in - adding again should not change things"
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   359
    s add:v1.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   360
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   361
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   362
    self assert: ( (s at:1) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   363
    self assert: ( (s at:2) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   364
    self assert: ( (s at:3) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   365
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   366
    "set i.e. not identitySet - adding copy should not change things"
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   367
    s add:v1 copy.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   368
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   369
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   370
    self assert: ( (s at:1) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   371
    self assert: ( (s at:2) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   372
    self assert: ( (s at:3) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   373
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   374
    s remove:v1.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   375
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   376
    self assert: ( s size == 2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   377
    self assert: ( (s at:1) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   378
    self assert: ( (s at:2) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   379
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   380
    self assert: ( s includes:v1 ) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   381
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   382
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   383
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   384
    self assert: ( s includes:v1 copy) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   385
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   386
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   387
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   388
    s add:v1.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   389
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   390
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   391
    self assert: ( (s at:1) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   392
    self assert: ( (s at:2) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   393
    self assert: ( (s at:3) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   394
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   395
    self assert: ( s includes:v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   396
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   397
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   398
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   399
    self assert: ( s includes:v1 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   400
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   401
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   402
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   403
    s removeLast.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   404
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   405
    self assert: ( s size == 2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   406
    self assert: ( (s at:1) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   407
    self assert: ( (s at:2) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   408
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   409
    self assert: ( s includes:v1 ) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   410
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   411
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   412
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   413
    self assert: ( s includes:v1 copy) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   414
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   415
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   416
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   417
    "
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   418
     self basicNew testOrderedSet01
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   419
    "
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   420
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   421
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   422
testOrderedSet02
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   423
    |col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   424
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   425
    col := OrderedSet new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   426
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   427
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   428
    col add:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   429
    col add:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   430
    self assert:( col size == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   431
    self assert:( Array streamContents:[:s | 
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   432
                        col do:[:each | s nextPut:each]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   433
                  ]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   434
                ) = #('a' 'b' 'c' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   435
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   436
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   437
     self new testOrderedSet02  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   438
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   439
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   440
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   441
testOrderedSet03
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   442
    |col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   443
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   444
    col := OrderedSet new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   445
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   446
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   447
    col add:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   448
    col add:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   449
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   450
    col add:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   451
    self assert:( col size == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   452
    self assert:( Array streamContents:[:s | 
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   453
                        col do:[:each | s nextPut:each]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   454
                  ]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   455
                ) = #('a' 'b' 'c' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   456
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   457
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   458
     self new testOrderedSet03  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   459
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   460
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   461
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   462
testOrderedSet04
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   463
    |col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   464
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   465
    col := OrderedSet new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   466
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   467
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   468
    col addFirst:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   469
    col addFirst:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   470
    self assert:( col size == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   471
    self assert:( Array streamContents:[:s | 
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   472
                        col do:[:each | s nextPut:each]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   473
                  ]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   474
                ) = #('c' 'b' 'a' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   475
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   476
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   477
     self new testOrderedSet04  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   478
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   479
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   480
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   481
testOrderedSet05
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   482
    |col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   483
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   484
    col := OrderedSet new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   485
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   486
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   487
    col addFirst:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   488
    col addFirst:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   489
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   490
    col add:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   491
    col add:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   492
    self assert:( col size == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   493
    self assert:( Array streamContents:[:s | 
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   494
                        col do:[:each | s nextPut:each]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   495
                  ]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   496
                ) = #('c' 'b' 'a' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   497
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   498
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   499
     self new testOrderedSet05  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   500
    "
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   501
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   502
297
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   503
!CollectionTests methodsFor:'tests-replace'!
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   504
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   505
testEmptyReplace
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   506
    | array1 array2 |
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   507
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   508
    array1 := Array with: 1 with: 2 with: 3 with: 4.
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   509
    array2 := Array with: 5 with: 6 with: 7.
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   510
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   511
    array1 replaceFrom:1 to:0 with:array2 startingAt:1.
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   512
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   513
    self should: [ array1 = #(1 2 3 4) ].
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   514
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   515
    "
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   516
     self new testEmptyReplace
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   517
    "
538
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   518
!
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   519
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   520
testTransliterating
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   521
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'b-g' to:'B-G'   ) = 'aBCDEFGhijkl1234567890'. 
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   522
     self assert:( 'abcdefghij-kl1234567890' copyTransliterating:'b\-g' to:'B+G'  ) = 'aBcdefGhij+kl1234567890'.              
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   523
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'69' to:'96'     ) = 'abcdefghijkl1234597860'  .  
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   524
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'a' to:'b'       ) = 'bbcdefghijkl1234567890'   .
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   525
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'aeiou' to:'AEIOU'    ) = 'AbcdEfghIjkl1234567890'.   
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   526
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'0-9' to:'QERTYUIOPX' ) = 'abcdefghijklERTYUIOPXQ' .   
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   527
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   528
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'0-9' to:'A' complement:false squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   529
                    = 'abcdefghijklAAAAAAAAAA'.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   530
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   531
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'0-9' to:'A' complement:false squashDuplicates:true )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   532
                    = 'abcdefghijklA'.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   533
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   534
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'0-9' to:'*' complement:false squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   535
                    = 'abcdefghijkl**********'.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   536
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   537
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'0-9' to:'*' complement:true squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   538
                    = '************1234567890'.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   539
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   540
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'a-zA-Z' to:' ' complement:true squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   541
                    = 'abcdefghijkl          '.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   542
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   543
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'a-zA-Z' to:' ' complement:false squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   544
                    = '            1234567890'.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   545
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   546
     self assert:( 'abcdefghijkl1234567890abcdefghijkl' copyTransliterating:'a-zA-Z' to:'' complement:false squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   547
                    = '1234567890'.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   548
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   549
     self assert:( 'abcdefghijkl1234567890abcdefghijkl' copyTransliterating:'a-zA-Z' to:'' complement:true squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   550
                    = 'abcdefghijklabcdefghijkl'.
297
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   551
! !
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   552
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   553
!CollectionTests methodsFor:'tests-sorting'!
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   554
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   555
testSort01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   556
    | col errs last |
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   557
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   558
    col := SortedCollection new addAll: (100 to: 1 by: -1); yourself.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   559
    last := nil.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   560
    errs := col inject: 0 into:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   561
            [ :totIn :n | |totOut|
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   562
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   563
            totOut := totIn.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   564
            last notNil ifTrue: [ last > n ifTrue: [ totOut := totOut + 1 ] ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   565
            last := n.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   566
            totOut ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   567
    self should: [ errs = 0 ]
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   568
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   569
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   570
     self basicNew testSort01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   571
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   572
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   573
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   574
testSortStability01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   575
    "Verify that the sort is stable"
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   576
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   577
    | testData col lastTestData errs |
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   578
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   579
    testData := OrderedCollection new.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   580
    testData addAll: ((100 to: 1 by: -1) collect: [ :n | SortTestData new value: n ]).
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   581
    testData addAll: ((100 to: 1 by: -1) collect: [ :n | SortTestData new value: n ]).
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   582
    testData addAll: ((100 to: 1 by: -1) collect: [ :n | SortTestData new value: n ]).
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   583
    1 to: testData size do: [ :i | (testData at: i) order: i ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   584
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   585
    col := (SortedCollection new sortBlock: [ :v1 :v2 | v1 value <= v2 value ]) addAll: testData.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   586
    lastTestData := nil.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   587
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   588
    errs := col inject: 0 into:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   589
            [ :totIn :aSortTestData | |totOut|
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   590
            totOut := totIn.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   591
            lastTestData notNil ifTrue:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   592
                    [ lastTestData value = aSortTestData value ifTrue:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   593
                            [ lastTestData order > aSortTestData order ifTrue: [ totOut := totOut + 1 ] ] ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   594
            lastTestData := aSortTestData.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   595
            totOut ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   596
    self should: [ errs = 0 ]
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   597
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   598
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   599
     self basicNew testSortStability01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   600
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   601
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   602
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   603
testSortStability02
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   604
        "Verify that the sort is stable"
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   605
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   606
        | testData col lastTestData errs |
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   607
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   608
        testData := OrderedCollection new.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   609
        (25 to: 1 by: -1) do: [ :i | 1 to: 100 do: [ :j | testData add: (SortTestData new value: i ) ] ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   610
        1 to: testData size do: [ :i | (testData at: i) order: i ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   611
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   612
        col := (SortedCollection new sortBlock: [ :v1 :v2 | v1 value <= v2 value ]) addAll: testData.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   613
        lastTestData := nil.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   614
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   615
        errs := col inject: 0 into:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   616
                [ :totIn :aSortTestData | |totOut|
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   617
                totOut := totIn.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   618
                lastTestData notNil ifTrue:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   619
                        [ lastTestData value = aSortTestData value ifTrue:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   620
                                [ lastTestData order > aSortTestData order ifTrue: [ totOut := totOut + 1 ] ] ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   621
                lastTestData := aSortTestData.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   622
                totOut ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   623
        self should: [ errs = 0 ]
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   624
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   625
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   626
     self basicNew testSortStability02
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   627
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   628
! !
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   629
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   630
!CollectionTests methodsFor:'tests-squeak'!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   631
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   632
testIfEmptyifNotEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   633
	self assert: (empty ifEmpty: [true] ifNotEmpty: [false]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   634
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [true]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   635
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [:s | s first = #x])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   636
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   637
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   638
testIfEmptyifNotEmptyDo
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   639
	self assert: (empty ifEmpty: [true] ifNotEmptyDo: [:s | false]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   640
	self assert: (nonEmpty ifEmpty: [false] ifNotEmptyDo: [:s | s first = #x])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   641
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   642
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   643
testIfNotEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   644
	empty ifNotEmpty: [self assert: false].
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   645
	self assert: (nonEmpty ifNotEmpty: [self]) == self.
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   646
	self assert: (nonEmpty ifNotEmpty: [:s | s first]) = #x
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   647
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   648
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   649
testIfNotEmptyDo
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   650
	empty ifNotEmptyDo: [:s | self assert: false].
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   651
	self assert: (nonEmpty ifNotEmptyDo: [:s | s first]) = #x
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   652
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   653
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   654
testIfNotEmptyDoifNotEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   655
	self assert: (empty ifNotEmptyDo: [:s | false] ifEmpty: [true]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   656
	self assert: (nonEmpty ifNotEmptyDo: [:s | s first = #x] ifEmpty: [false])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   657
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   658
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   659
testIfNotEmptyifEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   660
	self assert: (empty ifEmpty: [true] ifNotEmpty: [false]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   661
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [true]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   662
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [:s | s first = #x])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   663
! !
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   664
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   665
!CollectionTests::SortTestData methodsFor:'accessing'!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   666
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   667
value
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   668
        "Answer the value of the receiver's ''value'' instance variable."
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   669
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   670
        ^value
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   671
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   672
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   673
value: anObject
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   674
        "Set the value of the receiver's ''value'' instance variable to the argument, anObject."
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   675
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   676
        value := anObject
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   677
! !
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   678
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   679
!CollectionTests::SortTestData methodsFor:'order'!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   680
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   681
order
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   682
        "Answer the value of the receiver's ''order'' instance variable."
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   683
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   684
        ^order
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   685
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   686
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   687
order: anObject
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   688
        "Set the value of the receiver's ''order'' instance variable to the argument, anObject."
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   689
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   690
        order := anObject
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   691
! !
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   692
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   693
!CollectionTests::SortTestData methodsFor:'printing & storing'!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   694
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   695
printOn: aStream
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   696
        super printOn: aStream.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   697
        aStream
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   698
                nextPutAll: '(value: ';
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   699
                nextPutAll: value printString;
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   700
                nextPutAll: ' order: ';
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   701
                nextPutAll: order printString;
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   702
                nextPut: $)
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   703
! !
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   704
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   705
!CollectionTests class methodsFor:'documentation'!
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   706
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   707
version
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   708
    ^ '$Header$'
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   709
! !