RegressionTests__CollectionTests.st
author Claus Gittinger <cg@exept.de>
Mon, 23 Jan 2006 22:21:35 +0100
changeset 293 eb142b88180a
parent 264 674b1ebcf0cf
child 295 6cea62ad1642
permissions -rw-r--r--
*** empty log message ***
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
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
documentation
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
"
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    documentation to be added.
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    [author:]
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
        Claus Gittinger (cg@alan)
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
    [see also:]
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
    [instance variables:]
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
    [class variables:]
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
"
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
!
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
history
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
    "Created: / 8.11.2001 / 08:17:09 / cg"
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
! !
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    40
!CollectionTests methodsFor:'initialize-release'!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    41
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    42
setUp
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    43
	empty := Set new.
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    44
	nonEmpty := OrderedCollection with: #x
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    45
! !
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    46
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    47
!CollectionTests methodsFor:'tests-dictionary'!
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
testDictionary01
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    |d v1 v2 v3|
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    d := Dictionary new.
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    d at:1 put:(v1 := 'one').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    d at:2 put:(v2 := 'two').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    d at:3 put:(v3 := 'three').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    self assert: ( d size == 3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    self assert: ( (d at:1) == v1 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    self assert: ( (d at:2) == v2 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    self assert: ( (d at:3) == v3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    d at:3 put:(v3 := 'drei').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    self assert: ( d size == 3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    self assert: ( (d at:1) == v1 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    self assert: ( (d at:2) == v2 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    self assert: ( (d at:3) == v3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    self assert: ( (d keyAtValue:v1) = 1 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    "
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
     self basicNew testDictionary01
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    "
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    75
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    76
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    77
!CollectionTests methodsFor:'tests-general'!
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    78
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    79
doTestGeneralCollectionOperationsIn:aClass
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    80
    |coll|
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    81
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    82
    coll := aClass new.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    83
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    84
    self assert: ( coll size == 0 ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    85
    self assert: ( coll isEmpty ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    86
    self assert: ( coll notEmpty not ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    87
    self assert: ( coll isEmptyOrNil ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    88
    self assert: ( coll notEmptyOrNil not ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    89
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    90
    self should: [ coll first ] raise:Error.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    91
    self should: [ coll last ] raise:Error.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    92
    self should: [ (coll at:1) ] raise:Error.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    93
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    94
    self assert: ( (coll includes:0) not ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    95
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    96
    "
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    97
     self basicNew testGeneralOperations
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    98
    "
156
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
    99
!
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   100
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   101
testGeneralOperations
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   102
    |classes|
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
    classes := OrderedCollection new.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   105
    classes 
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   106
        add:RunArray;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   107
        add:Bag;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   108
        add:Set;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   109
        add:IdentitySet;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   110
        add:Dictionary;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   111
        add:IdentityDictionary;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   112
        add:OrderedCollection;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   113
        add:SortedCollection;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   114
        add:Queue;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   115
        add:Stack;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   116
        add:SortedCollection;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   117
        add:OrderedDictionary;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   118
        add:OrderedSet.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   119
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   120
    classes do:[:eachClass |
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   121
        self doTestGeneralCollectionOperationsIn:eachClass
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
    "
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   125
     self basicNew testGeneralOperations
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   126
    "
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   127
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   128
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   129
!CollectionTests methodsFor:'tests-interval'!
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   130
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   131
testInterval01
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   132
    |i|
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   133
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   134
    i := 1 to:10.
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   135
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   136
    self assert: ( i size == 10 ).
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   137
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   138
    self assert: ( i includes:1 ).
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   139
    self assert: ( i includes:10 ).
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   140
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   141
    self assert: ( i min == 1 ).
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   142
    self assert: ( i max == 10 ).
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   143
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   144
    "cannot add/remove"
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   145
    self should:[i add:99] raise:Error.
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   146
    self should:[i remove:10] raise:Error.
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   147
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   148
    "
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   149
     self basicNew testInterval01
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   150
    "
264
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
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   153
!CollectionTests methodsFor:'tests-orderedset'!
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   154
156
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   155
testOrderedSet01
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   156
    |s v1 v2 v3|
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   157
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   158
    s := OrderedSet new.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   159
    s add:(v1 := 'one').
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   160
    s add:(v2 := 'two').
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   161
    s add:(v3 := 'three').
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   162
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   163
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   164
    self assert: ( (s at:1) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   165
    self assert: ( (s at:2) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   166
    self assert: ( (s at:3) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   167
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   168
    self assert: ( s includes:v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   169
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   170
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   171
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   172
    self assert: ( s includes:v1 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   173
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   174
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   175
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   176
    "already in - adding again should not change things"
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   177
    s add:v1.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   178
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   179
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   180
    self assert: ( (s at:1) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   181
    self assert: ( (s at:2) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   182
    self assert: ( (s at:3) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   183
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   184
    "set i.e. not identitySet - adding copy should not change things"
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   185
    s add:v1 copy.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   186
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   187
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   188
    self assert: ( (s at:1) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   189
    self assert: ( (s at:2) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   190
    self assert: ( (s at:3) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   191
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   192
    s remove:v1.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   193
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   194
    self assert: ( s size == 2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   195
    self assert: ( (s at:1) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   196
    self assert: ( (s at:2) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   197
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   198
    self assert: ( s includes:v1 ) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   199
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   200
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   201
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   202
    self assert: ( s includes:v1 copy) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   203
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   204
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   205
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   206
    s add:v1.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   207
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   208
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   209
    self assert: ( (s at:1) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   210
    self assert: ( (s at:2) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   211
    self assert: ( (s at:3) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   212
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   213
    self assert: ( s includes:v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   214
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   215
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   216
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   217
    self assert: ( s includes:v1 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   218
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   219
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   220
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   221
    s removeLast.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   222
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   223
    self assert: ( s size == 2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   224
    self assert: ( (s at:1) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   225
    self assert: ( (s at:2) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   226
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   227
    self assert: ( s includes:v1 ) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   228
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   229
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   230
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   231
    self assert: ( s includes:v1 copy) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   232
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   233
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   234
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   235
    "
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   236
     self basicNew testOrderedSet01
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   237
    "
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   238
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   239
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   240
!CollectionTests methodsFor:'tests-sorting'!
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   241
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   242
testSort01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   243
    | col errs last |
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   244
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   245
    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
   246
    last := nil.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   247
    errs := col inject: 0 into:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   248
            [ :totIn :n | |totOut|
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   249
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   250
            totOut := totIn.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   251
            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
   252
            last := n.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   253
            totOut ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   254
    self should: [ errs = 0 ]
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   255
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   256
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   257
     self basicNew testSort01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   258
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   259
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   260
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   261
testSortStability01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   262
    "Verify that the sort is stable"
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   263
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   264
    | testData col lastTestData errs |
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   265
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   266
    testData := OrderedCollection new.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   267
    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
   268
    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
   269
    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
   270
    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
   271
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   272
    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
   273
    lastTestData := nil.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   274
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   275
    errs := col inject: 0 into:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   276
            [ :totIn :aSortTestData | |totOut|
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   277
            totOut := totIn.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   278
            lastTestData notNil ifTrue:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   279
                    [ lastTestData value = aSortTestData value ifTrue:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   280
                            [ lastTestData order > aSortTestData order ifTrue: [ totOut := totOut + 1 ] ] ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   281
            lastTestData := aSortTestData.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   282
            totOut ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   283
    self should: [ errs = 0 ]
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   284
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   285
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   286
     self basicNew testSortStability01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   287
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   288
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   289
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   290
testSortStability02
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   291
        "Verify that the sort is stable"
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   292
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   293
        | testData col lastTestData errs |
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   294
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   295
        testData := OrderedCollection new.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   296
        (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
   297
        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
   298
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   299
        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
   300
        lastTestData := nil.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   301
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   302
        errs := col inject: 0 into:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   303
                [ :totIn :aSortTestData | |totOut|
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   304
                totOut := totIn.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   305
                lastTestData notNil ifTrue:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   306
                        [ lastTestData value = aSortTestData value ifTrue:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   307
                                [ lastTestData order > aSortTestData order ifTrue: [ totOut := totOut + 1 ] ] ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   308
                lastTestData := aSortTestData.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   309
                totOut ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   310
        self should: [ errs = 0 ]
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   311
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   312
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   313
     self basicNew testSortStability02
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   314
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   315
! !
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   316
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   317
!CollectionTests methodsFor:'tests-squeak'!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   318
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   319
testIfEmptyifNotEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   320
	self assert: (empty ifEmpty: [true] ifNotEmpty: [false]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   321
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [true]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   322
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [:s | s first = #x])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   323
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   324
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   325
testIfEmptyifNotEmptyDo
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   326
	self assert: (empty ifEmpty: [true] ifNotEmptyDo: [:s | false]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   327
	self assert: (nonEmpty ifEmpty: [false] ifNotEmptyDo: [:s | s first = #x])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   328
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   329
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   330
testIfNotEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   331
	empty ifNotEmpty: [self assert: false].
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   332
	self assert: (nonEmpty ifNotEmpty: [self]) == self.
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   333
	self assert: (nonEmpty ifNotEmpty: [:s | s first]) = #x
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   334
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   335
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   336
testIfNotEmptyDo
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   337
	empty ifNotEmptyDo: [:s | self assert: false].
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   338
	self assert: (nonEmpty ifNotEmptyDo: [:s | s first]) = #x
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   339
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   340
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   341
testIfNotEmptyDoifNotEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   342
	self assert: (empty ifNotEmptyDo: [:s | false] ifEmpty: [true]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   343
	self assert: (nonEmpty ifNotEmptyDo: [:s | s first = #x] ifEmpty: [false])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   344
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   345
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   346
testIfNotEmptyifEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   347
	self assert: (empty ifEmpty: [true] ifNotEmpty: [false]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   348
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [true]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   349
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [:s | s first = #x])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   350
! !
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   351
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   352
!CollectionTests::SortTestData methodsFor:'accessing'!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   353
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   354
value
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   355
        "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
   356
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   357
        ^value
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   358
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   359
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   360
value: anObject
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   361
        "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
   362
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   363
        value := anObject
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   364
! !
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   365
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   366
!CollectionTests::SortTestData methodsFor:'order'!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   367
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   368
order
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   369
        "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
   370
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   371
        ^order
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   372
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   373
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   374
order: anObject
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   375
        "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
   376
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   377
        order := anObject
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   378
! !
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   379
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   380
!CollectionTests::SortTestData methodsFor:'printing & storing'!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   381
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   382
printOn: aStream
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   383
        super printOn: aStream.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   384
        aStream
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   385
                nextPutAll: '(value: ';
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   386
                nextPutAll: value printString;
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   387
                nextPutAll: ' order: ';
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   388
                nextPutAll: order printString;
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   389
                nextPut: $)
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
! !
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
!CollectionTests class methodsFor:'documentation'!
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
version
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
    ^ '$Header$'
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
! !