RegressionTests__CollectionTests.st
author Claus Gittinger <cg@exept.de>
Tue, 04 Feb 2014 20:26:19 +0100
changeset 1041 6692cfae6a25
parent 1040 35d20906f91c
child 1043 b95983db1639
permissions -rw-r--r--
class: RegressionTests::CollectionTests added: #testSpecialArrayClasses2
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
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    44
!CollectionTests methodsFor:'helpers'!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    45
655
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    46
checkSorted:aSortedCollection with:sortBlock against:anOriginalCollection
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    47
    |first|
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    48
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    49
    self assert:aSortedCollection size = anOriginalCollection size.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    50
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    51
    "is it sorted?"
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    52
    first := true.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    53
    aSortedCollection inject:nil into:[:last :each|
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    54
            first ifTrue:[first := false] 
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    55
                  ifFalse:[self assert:(sortBlock value:last value:each)]. each].
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    56
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    57
    "same elements as in original?"
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    58
    self assert:(aSortedCollection asBag = anOriginalCollection asBag).
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    59
!
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    60
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    61
collectedDoArgsOf:aCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    62
    |collectedDoArgs|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    63
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    64
    collectedDoArgs := OrderedCollection new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    65
    aCollection do:[:each | collectedDoArgs add:each].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    66
    ^ collectedDoArgs
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    67
! !
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    68
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    69
!CollectionTests methodsFor:'initialize-release'!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    70
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    71
setUp
295
6cea62ad1642 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
    72
        empty := Set new.
6cea62ad1642 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
    73
        nonEmpty := OrderedCollection with: #x.
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    74
! !
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    75
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    76
!CollectionTests methodsFor:'tests-dictionary'!
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
testDictionary01
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    79
    |d v1 v2 v3 ret|
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
    d := Dictionary new.
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    d at:1 put:(v1 := 'one').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    d at:2 put:(v2 := 'two').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    d at:3 put:(v3 := 'three').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    self assert: ( d size == 3 ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    87
757
2d776bef407b class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 677
diff changeset
    88
    self assert:(ret := self collectedDoArgsOf:d) asSet = #('one' 'two' 'three') asSet.
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    89
    self assert:(ret := d collect:[:each | each]) = #('one' 'two' 'three') asBag.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    90
    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
    91
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    self assert: ( (d at:1) == v1 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    self assert: ( (d at:2) == v2 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
    self assert: ( (d at:3) == v3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    d at:3 put:(v3 := 'drei').
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 assert: ( d size == 3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    self assert: ( (d at:1) == v1 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    self assert: ( (d at:2) == v2 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    self assert: ( (d at:3) == v3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    self assert: ( (d keyAtValue:v1) = 1 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    "
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
     self basicNew testDictionary01
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    "
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   109
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   110
    "Modified: / 04-07-2011 / 19:28:39 / cg"
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   111
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   112
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   113
!CollectionTests methodsFor:'tests-general'!
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   114
615
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   115
doTestDictionaryLikeAddRemoveOperationsIn:aClass
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   116
    |coll|
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   117
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   118
    coll := aClass new.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   119
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   120
    self assert: ( coll size == 0 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   121
    self assert: ( coll isEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   122
    self assert: ( coll notEmpty not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   123
    self assert: ( coll isEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   124
    self assert: ( coll notEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   125
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   126
    coll at:1 put:'one'.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   127
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   128
    self assert: ( coll size == 1 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   129
    self assert: ( coll isEmpty not).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   130
    self assert: ( coll notEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   131
    self assert: ( coll isEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   132
    self assert: ( coll notEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   133
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   134
    coll at:2 put:'two'.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   135
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   136
    self assert: ( coll size == 2 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   137
    self assert: ( coll isEmpty not).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   138
    self assert: ( coll notEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   139
    self assert: ( coll isEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   140
    self assert: ( coll notEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   141
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   142
    coll removeKey:2.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   143
    self assert: ( coll size == 1 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   144
    self assert: ( coll isEmpty not).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   145
    self assert: ( coll notEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   146
    self assert: ( coll isEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   147
    self assert: ( coll notEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   148
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   149
    coll removeKey:1.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   150
    self assert: ( coll size == 0 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   151
    self assert: ( coll isEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   152
    self assert: ( coll notEmpty not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   153
    self assert: ( coll isEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   154
    self assert: ( coll notEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   155
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   156
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   157
     self basicNew doTestDictionaryLikeAddRemoveOperations
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   158
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   159
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   160
    "Created: / 08-08-2011 / 16:01:14 / cg"
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   161
!
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   162
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   163
doTestGeneralAddRemoveOperationsIn:aClass
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   164
    |coll|
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   165
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   166
    coll := aClass new.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   167
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   168
    self assert: ( coll size == 0 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   169
    self assert: ( coll isEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   170
    self assert: ( coll notEmpty not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   171
    self assert: ( coll isEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   172
    self assert: ( coll notEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   173
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   174
    coll add:1.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   175
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   176
    self assert: ( coll size == 1 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   177
    self assert: ( coll isEmpty not).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   178
    self assert: ( coll notEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   179
    self assert: ( coll isEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   180
    self assert: ( coll notEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   181
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   182
    coll add:2.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   183
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   184
    self assert: ( coll size == 2 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   185
    self assert: ( coll isEmpty not).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   186
    self assert: ( coll notEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   187
    self assert: ( coll isEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   188
    self assert: ( coll notEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   189
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   190
    coll remove:2.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   191
    self assert: ( coll size == 1 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   192
    self assert: ( coll isEmpty not).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   193
    self assert: ( coll notEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   194
    self assert: ( coll isEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   195
    self assert: ( coll notEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   196
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   197
    coll remove:1.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   198
    self assert: ( coll size == 0 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   199
    self assert: ( coll isEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   200
    self assert: ( coll notEmpty not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   201
    self assert: ( coll isEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   202
    self assert: ( coll notEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   203
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   204
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   205
     self basicNew testGeneralOperations
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   206
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   207
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   208
    "Created: / 08-08-2011 / 16:00:06 / cg"
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   209
!
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   210
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   211
doTestGeneralCollectionOperationsIn:aClass
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   212
    |coll|
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   213
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   214
    coll := aClass new.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   215
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   216
    self assert: ( coll size == 0 ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   217
    self assert: ( coll isEmpty ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   218
    self assert: ( coll notEmpty not ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   219
    self assert: ( coll isEmptyOrNil ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   220
    self assert: ( coll notEmptyOrNil not ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   221
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   222
    self should: [ coll first ] raise:Error.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   223
    self should: [ coll last ] raise:Error.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   224
    self should: [ (coll at:1) ] raise:Error.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   225
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   226
    self assert: ( (coll includes:0) not ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   227
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   228
    "
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   229
     self basicNew testGeneralOperations
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   230
    "
156
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   231
!
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   232
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   233
doTestSequentialCollectionOperationsIn:aClass
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   234
    |coll1 coll2|
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   235
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   236
    coll1 := self protoCollectionFor: aClass.
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   237
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   238
    self assert: ( coll1 size > 0 ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   239
    self assert: ( coll1 isEmpty not ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   240
    self assert: ( coll1 notEmpty ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   241
    self assert: ( coll1 isEmptyOrNil not ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   242
    self assert: ( coll1 notEmptyOrNil ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   243
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   244
    self assert: ( coll1 first = (coll1 at:1) ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   245
    self assert: ( coll1 last = (coll1 at:(coll1 size)) ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   246
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   247
    self assert: ( coll1 = coll1 ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   248
    self assert: ( coll1 ~= coll1 ) not.
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   249
    coll2 := coll1 copy.
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   250
    self assert: ( coll2 = coll1 ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   251
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   252
    coll2 replaceFrom:1 to:coll2 size with:coll1 startingAt:1.
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   253
    self assert: ( coll2 = coll1 ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   254
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   255
    "overlapping copy"
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   256
    coll2 replaceFrom:2 to:coll2 size with:coll2 startingAt:1.
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   257
    coll2 replaceFrom:1 to:coll2 size-1 with:coll2 startingAt:2.
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   258
    coll2 at:(coll2 size) put:(coll1 at:coll1 size).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   259
    self assert: ( coll2 = coll1 ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   260
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   261
    "
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   262
     self basicNew testSequentialCollectionOperations
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   263
    "
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   264
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   265
    "Created: / 08-05-2012 / 10:50:08 / cg"
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   266
!
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   267
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   268
protoCollectionFor: aClass
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   269
    aClass == BooleanArray ifTrue: [
1040
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   270
        ^ BooleanArray withAll:#(true false true true false false true false false true)
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   271
    ].
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   272
    aClass == BitArray ifTrue: [
1040
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   273
        ^ BitArray withAll:#(1 0 1 1 0 0 1 0 0 1)
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   274
    ].
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   275
    aClass == ByteArray ifTrue: [
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   276
        ^ ByteArray withAll:#(1 2 3 4 16rFC 16rFD 16rFE 16rFF)
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   277
    ].
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   278
    aClass == String ifTrue: [
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   279
        ^ 'abcdefghijklmnopqrstuvwxyz'
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   280
    ].
1040
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   281
    (aClass includesBehavior:CharacterArray) ifTrue:[
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   282
        ^ 'abcdefghijklmnopqrstuvwxyz' as: aClass         
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   283
    ].
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   284
    (aClass includesBehavior:AbstractNumberVector) ifTrue:[   
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   285
        (aClass includesBehavior:UnboxedIntegerArray) ifTrue:[   
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   286
            ^ #(1 2 3 4 5 6 7 8 9 10) as: aClass         
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   287
        ].
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   288
        ^ #(1.0 2 3.0 4 5.0 6 7.0 8 9.0 10) as: aClass         
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   289
    ].
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   290
    ^ #(1 true 2.0 false 3 nil 4.0 5 6.0 7 8.0 9 10.0) as: aClass         
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   291
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   292
    "
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   293
     self basicNew testSequentialCollectionOperations
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   294
    "
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   295
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   296
    "Created: / 08-05-2012 / 10:50:50 / cg"
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   297
!
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   298
615
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   299
testDictionaryLikeAddRemoveOperations
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   300
    |classes|
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   301
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   302
    classes := OrderedCollection new.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   303
    classes 
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   304
        add:Dictionary;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   305
        add:IdentityDictionary;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   306
        add:OrderedDictionary;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   307
        add:BTree.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   308
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   309
    classes do:[:eachClass |
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   310
        self doTestDictionaryLikeAddRemoveOperationsIn:eachClass
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   311
    ].
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   312
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   313
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   314
     self basicNew testDictionaryLikeAddRemoveOperations
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   315
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   316
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   317
    "Created: / 08-08-2011 / 15:59:52 / cg"
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   318
!
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   319
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   320
testGeneralAddRemoveOperations
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   321
    |classes|
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   322
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   323
    classes := OrderedCollection new.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   324
    classes 
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   325
        "/ add:RunArray;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   326
        add:Bag;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   327
        add:Set;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   328
        add:IdentitySet;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   329
        "/add:Dictionary;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   330
        "/add:IdentityDictionary;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   331
        add:OrderedCollection;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   332
        add:SortedCollection;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   333
        "/add:Queue;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   334
        "/add:Stack;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   335
        add:SortedCollection;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   336
        "/add:OrderedDictionary;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   337
        add:OrderedSet.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   338
        "/add:BTree.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   339
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   340
    classes do:[:eachClass |
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   341
        self doTestGeneralAddRemoveOperationsIn:eachClass
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   342
    ].
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   343
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   344
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   345
     self basicNew testGeneralAddRemoveOperations
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   346
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   347
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   348
    "Created: / 08-08-2011 / 15:59:02 / cg"
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   349
!
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   350
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   351
testGeneralOperations
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   352
    |classes|
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   353
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   354
    classes := OrderedCollection new.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   355
    classes 
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   356
        add:RunArray;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   357
        add:Bag;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   358
        add:Set;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   359
        add:IdentitySet;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   360
        add:Dictionary;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   361
        add:IdentityDictionary;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   362
        add:OrderedCollection;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   363
        add:SortedCollection;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   364
        add:Queue;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   365
        add:Stack;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   366
        add:SortedCollection;
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   367
        add:OrderedDictionary;
615
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   368
        add:OrderedSet;
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   369
        add:BTree.
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   370
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   371
    classes do:[:eachClass |
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   372
        self doTestGeneralCollectionOperationsIn:eachClass
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   373
    ].
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   374
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   375
    "
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   376
     self basicNew testGeneralOperations
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   377
    "
615
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   378
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   379
    "Modified: / 08-08-2011 / 15:53:16 / cg"
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   380
!
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   381
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   382
testSequentialCollectionOperations
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   383
    |classes|
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   384
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   385
    classes := OrderedCollection new.
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   386
    classes 
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   387
        add:OrderedCollection;
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   388
        add:Array;
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   389
        add:String;
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   390
        add:ByteArray;
1040
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   391
        add:WordArray;
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   392
        add:IntegerArray;
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   393
        add:LongIntegerArray;
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   394
        add:SignedWordArray;
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   395
        add:SignedIntegerArray;
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   396
        add:SignedLongIntegerArray;
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   397
        add:FloatArray;
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   398
        add:DoubleArray;
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   399
        add:HalfFloatArray;
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   400
        add:TwoByteString;
1040
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   401
        add:Unicode16String;
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   402
        add:Unicode32String;
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   403
        add:BooleanArray;
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   404
        add:BitArray.
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   405
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   406
    classes do:[:eachClass |
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   407
        self doTestSequentialCollectionOperationsIn:eachClass
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   408
    ].
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   409
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   410
    "
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   411
     self basicNew testSequentialCollectionOperations
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   412
    "
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   413
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   414
    "Created: / 08-05-2012 / 10:48:40 / cg"
1040
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   415
!
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   416
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   417
testSpecialArrayClasses
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   418
    |a|
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   419
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   420
    a := #(1 2 3 4 5) asWordArray.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   421
    self assert:(a at:1) == 1.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   422
    self assert:(a at:a size) == 5.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   423
    self assert:(a first) == 1.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   424
    self assert:(a last) == 5.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   425
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   426
    a := #(1 2 3 4 5) asIntegerArray.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   427
    self assert:(a at:1) == 1.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   428
    self assert:(a at:a size) == 5.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   429
    self assert:(a first) == 1.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   430
    self assert:(a last) == 5.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   431
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   432
    a := #(1 2 3 4 5) asLongIntegerArray.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   433
    self assert:(a at:1) == 1.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   434
    self assert:(a at:a size) == 5.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   435
    self assert:(a first) == 1.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   436
    self assert:(a last) == 5.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   437
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   438
    "
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   439
     self basicNew testSpecialArrayClasses
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   440
    "
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   441
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   442
    "Created: / 08-05-2012 / 10:48:40 / cg"
1041
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   443
!
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   444
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   445
testSpecialArrayClasses2
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   446
    |a|
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   447
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   448
    a := #(1 2 3 4 5) asFloatArray.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   449
    self assert:(a at:1) = 1.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   450
    self assert:(a at:a size) = 5.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   451
    self assert:(a first) = 1.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   452
    self assert:(a last) = 5.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   453
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   454
    a := #(1 2 3 4 5) asDoubleArray.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   455
    self assert:(a at:1) = 1.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   456
    self assert:(a at:a size) = 5.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   457
    self assert:(a first) = 1.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   458
    self assert:(a last) = 5.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   459
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   460
    a := #(1 2 3 4 5) asHalfFloatArray.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   461
    self assert:(a at:1) = 1.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   462
    self assert:(a at:a size) = 5.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   463
    self assert:(a first) = 1.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   464
    self assert:(a last) = 5.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   465
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   466
    "
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   467
     self basicNew testSpecialArrayClasses2
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   468
    "
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   469
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   470
    "Created: / 08-05-2012 / 10:48:40 / cg"
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   471
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   472
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   473
!CollectionTests methodsFor:'tests-interval'!
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   474
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   475
testInterval01
663
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   476
    |i1 i2 enumeratedValues|
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   477
644
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   478
    i1 := 1 to:10.
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   479
644
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   480
    self assert: ( i1 size == 10 ).
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   481
644
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   482
    self assert: ( i1 includes:1 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   483
    self assert: ( i1 includes:10 ).
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   484
644
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   485
    self assert: ( i1 min == 1 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   486
    self assert: ( i1 max == 10 ).
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   487
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   488
    "cannot add/remove"
644
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   489
    self should:[i1 add:99] raise:Error.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   490
    self should:[i1 remove:10] raise:Error.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   491
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   492
    i2 := 2 to:20 by:2.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   493
    self assert: ( i2 size == 10 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   494
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   495
    self assert: ( i2 includes:0 ) not.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   496
    self assert: ( i2 includes:1 ) not.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   497
    self assert: ( i2 includes:2 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   498
    self assert: ( i2 includes:3 ) not.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   499
    self assert: ( i2 includes:10 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   500
    self assert: ( i2 includes:19 ) not.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   501
    self assert: ( i2 includes:20 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   502
    self assert: ( i2 includes:21 ) not.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   503
    self assert: ( i2 includes:22 ) not.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   504
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   505
    self assert: ( i2 min == 2 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   506
    self assert: ( i2 max == 20 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   507
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   508
    self assert: ( i2 keys asArray = (1 to:10) asArray ).
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   509
663
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   510
    enumeratedValues := OrderedCollection new.
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   511
    i1 do:[:each | enumeratedValues add:each ].
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   512
    self assert:(enumeratedValues size == 10).
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   513
    self assert:(enumeratedValues asArray = #(1 2 3 4 5 6 7 8 9 10)).
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   514
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   515
    enumeratedValues := OrderedCollection new.
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   516
    i2 do:[:each | enumeratedValues add:each ].
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   517
    self assert:(enumeratedValues size == 10).
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   518
    self assert:(enumeratedValues asArray = #(2 4 6 8 10 12 14 16 18 20)).
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   519
666
ff89010dca6b changed: #testInterval01
Stefan Vogel <sv@exept.de>
parents: 664
diff changeset
   520
    self assert: (i1 collect:[:el | el even]) asArray = #(false true false true false true false true false true).
ff89010dca6b changed: #testInterval01
Stefan Vogel <sv@exept.de>
parents: 664
diff changeset
   521
    self assert: (i2 collect:[:el | el even]) asArray = #(true true true true true true true true true true).
664
c7fbcdea0afa changed: #testInterval01
Claus Gittinger <cg@exept.de>
parents: 663
diff changeset
   522
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   523
    "
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   524
     self basicNew testInterval01
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   525
    "
644
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   526
664
c7fbcdea0afa changed: #testInterval01
Claus Gittinger <cg@exept.de>
parents: 663
diff changeset
   527
    "Modified: / 03-05-2012 / 18:36:41 / cg"
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   528
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   529
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   530
!CollectionTests methodsFor:'tests-orderedCollection'!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   531
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   532
testMergeSortStability01
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   533
    "Verify that the sort is stable"
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   534
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   535
    | testData lastTestData errs  col|
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   536
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   537
    testData := OrderedCollection new.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   538
    testData addAll: ((100 to: 1 by: -1) collect: [ :n | SortTestData new value: n ]).
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   539
    testData addAll: ((100 to: 1 by: -1) collect: [ :n | SortTestData new value: n ]).
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   540
    testData addAll: ((100 to: 1 by: -1) collect: [ :n | SortTestData new value: n ]).
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   541
    testData keysAndValuesDo:[:idx :each| each order: idx ].
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   542
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   543
    col := testData copy.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   544
    col mergeSort:[:v1 :v2 | v1 value < v2 value ].
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   545
    self checkSorted:col with:[:v1 :v2 | v1 value <= v2 value ] against:testData.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   546
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   547
    lastTestData := nil.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   548
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   549
    errs := col inject: 0 into:
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   550
            [ :totIn :aSortTestData | |totOut|
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   551
            totOut := totIn.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   552
            lastTestData notNil ifTrue:
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   553
                    [ lastTestData value = aSortTestData value ifTrue:
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   554
                            [ lastTestData order > aSortTestData order ifTrue: [ totOut := totOut + 1 ] ] ].
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   555
            lastTestData := aSortTestData.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   556
            totOut ].
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   557
    self should: [ errs = 0 ]
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   558
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   559
    "
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   560
     self basicNew testMergeSortStability01
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   561
    "
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   562
!
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   563
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   564
testOrderedCollection01_Sort1
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   565
    |col col2|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   566
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   567
    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
   568
    col sort.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   569
    self assert:( col sameContentsAs: (1 to:20)).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   570
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   571
    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
   572
    col sort.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   573
    self assert:( col sameContentsAs: (1 to:20) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   574
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   575
    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
   576
    col sort.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   577
    self assert:( col sameContentsAs: (1 to:20) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   578
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   579
    col := ( 1 to: 10000 ) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   580
    col sort.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   581
    self assert:( col sameContentsAs: (1 to:10000) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   582
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   583
    col := ( 1 to: 10000 ) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   584
    col2 := ( 1 to: 10000 ) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   585
    col sortWith:col2.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   586
    self assert:( col sameContentsAs: (1 to:10000) ).
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   587
    self assert:( col2 sameContentsAs: (1 to:10000) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   588
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   589
    col := ( 10000 to: 1 by:-1) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   590
    col2 := ( 10000 to: 1 by:-1) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   591
    col sortWith:col2.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   592
    self assert:( col sameContentsAs: (1 to:10000) ).
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   593
    self assert:( col2 sameContentsAs: (1 to:10000) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   594
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   595
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   596
     self new testOrderedCollection01_Sort1  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   597
    "
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   598
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   599
    "Modified: / 04-07-2011 / 19:29:54 / cg"
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   600
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   601
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   602
testOrderedCollection02_SortBigCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   603
    | size col sortBlock|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   604
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   605
    size := 12500.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   606
    col := OrderedCollection new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   607
    1 to:size do:[:el|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   608
        col add:nil.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   609
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   610
    sortBlock := [:entry1 :entry2 |  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   611
        ((entry1 isNil) or:[entry2 isNil]) ifTrue:[
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   612
            true
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   613
        ] ifFalse:[
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   614
            false
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   615
        ]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   616
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   617
    self shouldnt:[col sort:sortBlock] raise:RecursionInterruptSignal.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   618
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   619
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   620
     self new testOrderedCollection02_SortBigCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   621
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   622
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   623
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   624
testOrderedCollection03_SortBigCollection2
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   625
    | size col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   626
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   627
    size := 12500.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   628
    col := OrderedCollection new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   629
    1 to:size do:[:el|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   630
        col add:'abc'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   631
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   632
    self shouldnt:[col sort] raise:RecursionInterruptSignal.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   633
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   634
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   635
     self new testOrderedCollection03_SortBigCollection2
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   636
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   637
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   638
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   639
testOrderedCollection04_SortNilsInCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   640
    | size col sortBlock|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   641
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   642
    size := 125.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   643
    col := OrderedCollection new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   644
    1 to:size do:[:el|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   645
        col add:nil.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   646
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   647
    sortBlock := [:entry1 :entry2 |  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   648
        ((entry1 isNil) or:[entry2 isNil]) ifTrue:[
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   649
            true
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   650
        ] ifFalse:[
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   651
            false
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   652
        ]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   653
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   654
    "/ col sort:sortBlock.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   655
    self shouldnt:[col sort:sortBlock] raise:RecursionInterruptSignal.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   656
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   657
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   658
     self new testOrderedCollection04_SortNilsInCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   659
    "
655
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   660
!
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   661
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   662
testOrderedCollection05_SortRandomCollection
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   663
     |data sorted rg coData checkBlock|
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   664
    
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   665
     checkBlock := [:a :b| a <= b].   
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   666
     rg := Random new.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   667
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   668
     #(1 4 11 2000 20011 200000) do:[:eachSize|
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   669
         data := Array new:eachSize.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   670
         1 to:data size do:[:i |
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   671
            data at:i put:(rg nextIntegerBetween:1 and:100).
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   672
         ].
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   673
         sorted := data copy sort.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   674
         self checkSorted:sorted with:checkBlock against:data.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   675
         sorted := sorted sort.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   676
         self checkSorted:sorted with:checkBlock against:data.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   677
         sorted := sorted reverse sort.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   678
         self checkSorted:sorted with:checkBlock against:data.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   679
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   680
         coData := data copy.   
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   681
         sorted := data copy sortWith:coData.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   682
         self checkSorted:sorted with:checkBlock against:data.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   683
         self checkSorted:coData with:checkBlock against:data.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   684
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   685
         sorted := data copy sort:[:policy :a :b| a < b].
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   686
         self checkSorted:sorted with:checkBlock against:data.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   687
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   688
         sorted := data copy sort:[:a :b| a < b].
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   689
         self checkSorted:sorted with:checkBlock against:data.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   690
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   691
         coData := data copy.   
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   692
         sorted := data copy sort:[:a :b| a < b] with:coData.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   693
         self checkSorted:sorted with:checkBlock against:data.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   694
         self checkSorted:coData with:checkBlock against:data.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   695
    ].
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   696
!
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   697
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   698
testOrderedCollection06_MergeSortRandomCollection
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   699
     |data sorted rg checkBlock|
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   700
    
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   701
     checkBlock := [:a :b| a <= b].   
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   702
     rg := Random new.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   703
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   704
     #(1 4 11 2000 20011 200000) do:[:eachSize|
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   705
         data := Array new:eachSize.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   706
         1 to:data size do:[:i |
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   707
            data at:i put:(rg nextIntegerBetween:1 and:100).
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   708
         ].
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   709
         sorted := data copy mergeSort.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   710
         self checkSorted:sorted with:checkBlock against:data.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   711
         sorted := sorted mergeSort.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   712
         self checkSorted:sorted with:checkBlock against:data.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   713
         sorted := sorted reverse mergeSort.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   714
         self checkSorted:sorted with:checkBlock against:data.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   715
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   716
         sorted := data copy mergeSort:[:a :b| a < b].
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   717
         self checkSorted:sorted with:checkBlock against:data.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   718
    ].
657
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   719
!
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   720
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   721
testOrderedCollection07_HeapSortRandomCollection
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   722
     |data sorted rg checkBlock|
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   723
    
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   724
     checkBlock := [:a :b| a <= b].   
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   725
     rg := Random new.
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   726
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   727
     #(1 4 11 2000 20011 200000) do:[:eachSize|
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   728
         data := Array new:eachSize.
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   729
         1 to:data size do:[:i |
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   730
            data at:i put:(rg nextIntegerBetween:1 and:100).
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   731
         ].
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   732
         sorted := data copy heapSort.
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   733
         self checkSorted:sorted with:checkBlock against:data.
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   734
         sorted := sorted heapSort.
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   735
         self checkSorted:sorted with:checkBlock against:data.
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   736
         sorted := sorted reverse heapSort.
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   737
         self checkSorted:sorted with:checkBlock against:data.
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   738
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   739
         sorted := data copy heapSort:[:a :b| a < b].
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   740
         self checkSorted:sorted with:checkBlock against:data.
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   741
    ].
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   742
! !
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   743
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   744
!CollectionTests methodsFor:'tests-orderedDictionary'!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   745
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   746
testOrderedDictionary01
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   747
    |d ret|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   748
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   749
    d := OrderedDictionary new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   750
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   751
    self assert: ( d size == 0 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   752
    self assert: ( d isEmpty ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   753
    self assert: ( d notEmpty not ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   754
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   755
    d at:'one' put:1.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   756
    d at:'two' put:2.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   757
    d at:'three' put:3.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   758
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   759
    self assert: ( d size == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   760
    self assert: ( d isEmpty not).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   761
    self assert: ( d notEmpty ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   762
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   763
    self assert:((ret := self collectedDoArgsOf:d) sameContentsAs: #(1 2 3)).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   764
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   765
    self assert: ( (d atIndex:1) == 1 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   766
    self assert: ( (d atIndex:2) == 2 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   767
    self assert: ( (d atIndex:3) == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   768
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   769
    self assert: ( (d first) = ('one'->1) ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   770
    self assert: ( (d last) = ('three'->3) ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   771
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   772
    self assert:((ret := d collect:[:each | each]) sameContentsAs: #(1 2 3)).
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   773
    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
   774
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   775
    self assert: ( d includes:1 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   776
    self assert: ( d includes:2 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   777
    self assert: ( d includes:3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   778
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   779
    self assert: ( d includesKey:'one' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   780
    self assert: ( d includesKey:'two' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   781
    self assert: ( d includesKey:'three' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   782
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   783
    self assert: ((ret := d removeFirst) = 1).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   784
    self assert: ( d size == 2 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   785
    self assert: ((ret := d removeLast) = 3).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   786
    self assert: ( d size == 1 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   787
    self assert: ((ret := d removeLast) = 2).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   788
    self assert: ( d size == 0 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   789
    self assert: ( d isEmpty ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   790
    self assert: ( d notEmpty not ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   791
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   792
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   793
     self basicNew testOrderedDictionary01
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   794
    "
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   795
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   796
    "Modified: / 04-07-2011 / 19:32:34 / cg"
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   797
! !
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   798
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   799
!CollectionTests methodsFor:'tests-orderedSet'!
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   800
156
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   801
testOrderedSet01
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   802
    |s v1 v2 v3|
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   803
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   804
    s := OrderedSet new.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   805
    s add:(v1 := 'one').
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   806
    s add:(v2 := 'two').
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   807
    s add:(v3 := 'three').
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   808
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   809
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   810
    self assert: ( (s at:1) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   811
    self assert: ( (s at:2) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   812
    self assert: ( (s at:3) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   813
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   814
    self assert: ( s includes:v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   815
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   816
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   817
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   818
    self assert: ( s includes:v1 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   819
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   820
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   821
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   822
    "already in - adding again should not change things"
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   823
    s add:v1.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   824
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   825
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   826
    self assert: ( (s at:1) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   827
    self assert: ( (s at:2) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   828
    self assert: ( (s at:3) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   829
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   830
    "set i.e. not identitySet - adding copy should not change things"
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   831
    s add:v1 copy.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   832
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   833
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   834
    self assert: ( (s at:1) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   835
    self assert: ( (s at:2) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   836
    self assert: ( (s at:3) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   837
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   838
    s remove:v1.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   839
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   840
    self assert: ( s size == 2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   841
    self assert: ( (s at:1) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   842
    self assert: ( (s at:2) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   843
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   844
    self assert: ( s includes:v1 ) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   845
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   846
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   847
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   848
    self assert: ( s includes:v1 copy) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   849
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   850
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   851
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   852
    s add:v1.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   853
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   854
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   855
    self assert: ( (s at:1) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   856
    self assert: ( (s at:2) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   857
    self assert: ( (s at:3) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   858
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   859
    self assert: ( s includes:v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   860
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   861
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   862
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   863
    self assert: ( s includes:v1 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   864
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   865
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   866
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   867
    s removeLast.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   868
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   869
    self assert: ( s size == 2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   870
    self assert: ( (s at:1) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   871
    self assert: ( (s at:2) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   872
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   873
    self assert: ( s includes:v1 ) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   874
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   875
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   876
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   877
    self assert: ( s includes:v1 copy) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   878
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   879
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   880
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   881
    "
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   882
     self basicNew testOrderedSet01
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   883
    "
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   884
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   885
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   886
testOrderedSet02
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   887
    |col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   888
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   889
    col := OrderedSet new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   890
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   891
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   892
    col add:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   893
    col add:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   894
    self assert:( col size == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   895
    self assert:( Array streamContents:[:s | 
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   896
                        col do:[:each | s nextPut:each]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   897
                  ]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   898
                ) = #('a' 'b' 'c' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   899
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   900
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   901
     self new testOrderedSet02  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   902
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   903
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   904
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   905
testOrderedSet03
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   906
    |col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   907
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   908
    col := OrderedSet new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   909
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   910
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   911
    col add:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   912
    col add:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   913
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   914
    col add:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   915
    self assert:( col size == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   916
    self assert:( Array streamContents:[:s | 
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   917
                        col do:[:each | s nextPut:each]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   918
                  ]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   919
                ) = #('a' 'b' 'c' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   920
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   921
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   922
     self new testOrderedSet03  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   923
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   924
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   925
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   926
testOrderedSet04
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   927
    |col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   928
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   929
    col := OrderedSet new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   930
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   931
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   932
    col addFirst:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   933
    col addFirst:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   934
    self assert:( col size == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   935
    self assert:( Array streamContents:[:s | 
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   936
                        col do:[:each | s nextPut:each]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   937
                  ]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   938
                ) = #('c' 'b' 'a' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   939
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   940
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   941
     self new testOrderedSet04  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   942
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   943
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   944
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   945
testOrderedSet05
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   946
    |col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   947
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   948
    col := OrderedSet new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   949
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   950
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   951
    col addFirst:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   952
    col addFirst:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   953
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   954
    col add:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   955
    col add:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   956
    self assert:( col size == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   957
    self assert:( Array streamContents:[:s | 
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   958
                        col do:[:each | s nextPut:each]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   959
                  ]
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   960
                ) = #('c' 'b' 'a' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   961
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   962
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   963
     self new testOrderedSet05  
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   964
    "
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   965
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   966
297
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   967
!CollectionTests methodsFor:'tests-replace'!
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   968
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   969
testEmptyReplace
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   970
    | array1 array2 |
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   971
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   972
    array1 := Array with: 1 with: 2 with: 3 with: 4.
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   973
    array2 := Array with: 5 with: 6 with: 7.
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   974
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   975
    array1 replaceFrom:1 to:0 with:array2 startingAt:1.
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   976
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   977
    self should: [ array1 = #(1 2 3 4) ].
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   978
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   979
    "
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   980
     self new testEmptyReplace
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
   981
    "
538
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   982
!
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   983
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   984
testTransliterating
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   985
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'b-g' to:'B-G'   ) = 'aBCDEFGhijkl1234567890'. 
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   986
     self assert:( 'abcdefghij-kl1234567890' copyTransliterating:'b\-g' to:'B+G'  ) = 'aBcdefGhij+kl1234567890'.              
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   987
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'69' to:'96'     ) = 'abcdefghijkl1234597860'  .  
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   988
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'a' to:'b'       ) = 'bbcdefghijkl1234567890'   .
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   989
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'aeiou' to:'AEIOU'    ) = 'AbcdEfghIjkl1234567890'.   
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   990
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'0-9' to:'QERTYUIOPX' ) = 'abcdefghijklERTYUIOPXQ' .   
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   991
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   992
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'0-9' to:'A' complement:false squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   993
                    = 'abcdefghijklAAAAAAAAAA'.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   994
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   995
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'0-9' to:'A' complement:false squashDuplicates:true )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   996
                    = 'abcdefghijklA'.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   997
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   998
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'0-9' to:'*' complement:false squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   999
                    = 'abcdefghijkl**********'.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1000
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1001
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'0-9' to:'*' complement:true squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1002
                    = '************1234567890'.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1003
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1004
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'a-zA-Z' to:' ' complement:true squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1005
                    = 'abcdefghijkl          '.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1006
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1007
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'a-zA-Z' to:' ' complement:false squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1008
                    = '            1234567890'.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1009
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1010
     self assert:( 'abcdefghijkl1234567890abcdefghijkl' copyTransliterating:'a-zA-Z' to:'' complement:false squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1011
                    = '1234567890'.
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1012
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1013
     self assert:( 'abcdefghijkl1234567890abcdefghijkl' copyTransliterating:'a-zA-Z' to:'' complement:true squashDuplicates:false )
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1014
                    = 'abcdefghijklabcdefghijkl'.
297
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1015
! !
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1016
639
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1017
!CollectionTests methodsFor:'tests-searching'!
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1018
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1019
test_min_max
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1020
    |a|
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1021
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1022
    #(
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1023
        asArray
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1024
        asFloatArray
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1025
        asDoubleArray
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1026
        asSignedIntegerArray
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1027
    ) do:[:converter |
640
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1028
        |empty|
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1029
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1030
        empty := #() perform:converter.
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1031
        self should:[ empty min ] raise:Error.
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1032
        self should:[ empty max ] raise:Error.
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1033
        self should:[ empty minMax ] raise:Error.
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1034
639
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1035
        #(
640
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1036
            (0 0)
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1037
            (1 1)
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1038
            (-1 -1)
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1039
            (0 1)
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1040
            (1 2)
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1041
            (-1 -0)
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1042
            (-1 1)
639
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1043
            (1 10000)
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1044
            (1 10001)
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1045
            (2 10000)
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1046
            (2 10001)
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1047
            (-1000 1000)
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1048
            (-1000 999)
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1049
        ) pairsDo:[:min :max |
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1050
            a := (min to:max) perform:converter.
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1051
            self assert:(a min) = min.
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1052
            self assert:(a max) = max.
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1053
            self assert:(a minMax) = { min. max }.  
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1054
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1055
            a := a reverse.
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1056
            self assert:(a min) = min.
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1057
            self assert:(a max) = max.
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1058
            self assert:(a minMax) = { min. max }.  
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1059
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1060
            a := a randomShuffle.
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1061
            self assert:(a min) = min.
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1062
            self assert:(a max) = max.
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1063
            self assert:(a minMax) = { min. max }.  
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1064
        ].
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1065
    ].
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1066
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1067
    "Created: / 07-10-2011 / 13:11:36 / cg"
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1068
! !
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1069
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
  1070
!CollectionTests methodsFor:'tests-sorting'!
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1071
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1072
testSort01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1073
    | col errs last |
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1074
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1075
    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
  1076
    last := nil.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1077
    errs := col inject: 0 into:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1078
            [ :totIn :n | |totOut|
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1079
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1080
            totOut := totIn.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1081
            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
  1082
            last := n.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1083
            totOut ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1084
    self should: [ errs = 0 ]
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1085
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1086
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1087
     self basicNew testSort01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1088
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1089
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1090
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1091
testSortStability01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1092
    "Verify that the sort is stable"
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1093
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1094
    | testData col lastTestData errs |
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1095
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1096
    testData := OrderedCollection new.
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1097
    testData addAll: ((111 to: 1 by: -1) collect: [ :n | SortTestData new value: n ]).
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1098
    testData addAll: ((111 to: 1 by: -1) collect: [ :n | SortTestData new value: n ]).
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1099
    testData addAll: ((111 to: 1 by: -1) collect: [ :n | SortTestData new value: n ]).
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1100
    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
  1101
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1102
    col := SortedCollection new sortBlock:[ :v1 :v2 | v1 value < v2 value ].
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1103
    col addAll: testData.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1104
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1105
    self checkSorted:col with:[:v1 :v2 | v1 value <= v2 value ] against:testData.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1106
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1107
    lastTestData := nil.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1108
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1109
    errs := col inject: 0 into:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1110
            [ :totIn :aSortTestData | |totOut|
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1111
            totOut := totIn.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1112
            lastTestData notNil ifTrue:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1113
                    [ lastTestData value = aSortTestData value ifTrue:
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1114
                            [ lastTestData order > aSortTestData order ifTrue: [ totOut := totOut + 1 ] ] ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1115
            lastTestData := aSortTestData.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1116
            totOut ].
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1117
    self should: [ errs = 0 ]
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1118
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1119
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1120
     self basicNew testSortStability01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1121
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1122
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1123
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1124
testSortStability02
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1125
    "Verify that the sort is stable"
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1126
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1127
    | testData col lastTestData errs |
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1128
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1129
    testData := OrderedCollection new.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1130
    (25 to: 1 by: -1) do: [ :i | 1 to: 100 do: [ :j | testData add: (SortTestData new value: i ) ] ].
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1131
    1 to: testData size do: [ :i | (testData at: i) order: i ].
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1132
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1133
    col := SortedCollection new sortBlock: [ :v1 :v2 | v1 value < v2 value ].
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1134
    col addAll: testData.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1135
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1136
    self checkSorted:col with:[:v1 :v2 | v1 value <= v2 value ] against:testData.
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1137
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1138
    lastTestData := nil.
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1139
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1140
    errs := col inject: 0 into:
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1141
            [ :totIn :aSortTestData | |totOut|
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1142
            totOut := totIn.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1143
            lastTestData notNil ifTrue:
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1144
                    [ lastTestData value = aSortTestData value ifTrue:
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1145
                            [ lastTestData order > aSortTestData order ifTrue: [ totOut := totOut + 1 ] ] ].
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1146
            lastTestData := aSortTestData.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1147
            totOut ].
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1148
    self should: [ errs = 0 ]
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1149
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1150
"
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1151
 self basicNew testSortStability02
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1152
"
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1153
! !
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1154
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1155
!CollectionTests methodsFor:'tests-squeak'!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1156
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1157
testIfEmptyifNotEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1158
	self assert: (empty ifEmpty: [true] ifNotEmpty: [false]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1159
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [true]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1160
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [:s | s first = #x])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1161
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1162
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1163
testIfEmptyifNotEmptyDo
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1164
	self assert: (empty ifEmpty: [true] ifNotEmptyDo: [:s | false]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1165
	self assert: (nonEmpty ifEmpty: [false] ifNotEmptyDo: [:s | s first = #x])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1166
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1167
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1168
testIfNotEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1169
	empty ifNotEmpty: [self assert: false].
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1170
	self assert: (nonEmpty ifNotEmpty: [self]) == self.
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1171
	self assert: (nonEmpty ifNotEmpty: [:s | s first]) = #x
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1172
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1173
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1174
testIfNotEmptyDo
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1175
	empty ifNotEmptyDo: [:s | self assert: false].
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1176
	self assert: (nonEmpty ifNotEmptyDo: [:s | s first]) = #x
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1177
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1178
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1179
testIfNotEmptyDoifNotEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1180
	self assert: (empty ifNotEmptyDo: [:s | false] ifEmpty: [true]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1181
	self assert: (nonEmpty ifNotEmptyDo: [:s | s first = #x] ifEmpty: [false])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1182
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1183
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1184
testIfNotEmptyifEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1185
	self assert: (empty ifEmpty: [true] ifNotEmpty: [false]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1186
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [true]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1187
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [:s | s first = #x])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1188
! !
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1189
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1190
!CollectionTests::SortTestData methodsFor:'accessing'!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1191
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1192
value
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1193
        "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
  1194
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1195
        ^value
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1196
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1197
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1198
value: anObject
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1199
        "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
  1200
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1201
        value := anObject
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1202
! !
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1203
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1204
!CollectionTests::SortTestData methodsFor:'order'!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1205
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1206
order
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1207
        "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
  1208
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1209
        ^order
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1210
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1211
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1212
order: anObject
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1213
        "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
  1214
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1215
        order := anObject
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1216
! !
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1217
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1218
!CollectionTests::SortTestData methodsFor:'printing & storing'!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1219
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1220
printOn: aStream
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1221
        super printOn: aStream.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1222
        aStream
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1223
                nextPutAll: '(value: ';
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1224
                nextPutAll: value printString;
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1225
                nextPutAll: ' order: ';
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1226
                nextPutAll: order printString;
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1227
                nextPut: $)
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1228
! !
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1229
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1230
!CollectionTests class methodsFor:'documentation'!
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1231
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1232
version
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1233
    ^ '$Header$'
640
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1234
!
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1235
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1236
version_CVS
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1237
    ^ '$Header$'
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1238
! !
757
2d776bef407b class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 677
diff changeset
  1239