RegressionTests__CollectionTests.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 18 Jun 2021 17:01:51 +0100
branchjv
changeset 2598 5e6256e136d4
parent 2039 74c3ad75b376
permissions -rwxr-xr-x
Fix `IntegerTest` Do not use #deepCopy with desctructive operations, #deepCopy on numbers is an no-op (they're immutable, except internal destructive helpers)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1986
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
     1
"
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
     2
 COPYRIGHT (c) Claus Gittinger / eXept Software AG
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
     3
 COPYRIGHT (c) 2016-2017 Jan Vrany
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
     4
              All Rights Reserved
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
     5
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
     6
 This software is furnished under a license and may be used
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
     7
 only in accordance with the terms of that license and with the
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
     8
 inclusion of the above copyright notice.   This software may not
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
     9
 be provided or otherwise made available to, or used by, any
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    10
 other person.  No title to or ownership of the software is
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    11
 hereby transferred.
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    12
"
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
    13
"{ Package: 'stx:goodies/regression' }"
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
157
2a671e687618 moved to namespace
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    15
"{ NameSpace: RegressionTests }"
2a671e687618 moved to namespace
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    16
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
TestCase subclass:#CollectionTests
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    18
	instanceVariableNames:'empty nonEmpty'
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	classVariableNames:''
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	poolDictionaries:''
1054
68a0796cec7b category
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
    21
	category:'tests-Regression-Collections'
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    24
Object subclass:#SortTestData
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    25
	instanceVariableNames:'value order'
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    26
	classVariableNames:''
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    27
	poolDictionaries:''
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    28
	privateIn:CollectionTests
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    29
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
    30
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
!CollectionTests class methodsFor:'documentation'!
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
1986
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    33
copyright
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    34
"
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    35
 COPYRIGHT (c) Claus Gittinger / eXept Software AG
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    36
 COPYRIGHT (c) 2016-2017 Jan Vrany
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    37
              All Rights Reserved
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    38
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    39
 This software is furnished under a license and may be used
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    40
 only in accordance with the terms of that license and with the
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    41
 inclusion of the above copyright notice.   This software may not
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    42
 be provided or otherwise made available to, or used by, any
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    43
 other person.  No title to or ownership of the software is
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    44
 hereby transferred.
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    45
"
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    46
!
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
    47
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    48
coveredClasses
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    49
    ^ Collection withAllSubclasses
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    50
!
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
    51
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
documentation
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
"
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    documentation to be added.
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    [author:]
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
    57
	Claus Gittinger (cg@alan)
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    [see also:]
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    [instance variables:]
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    [class variables:]
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
"
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
!
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
history
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    "Created: / 8.11.2001 / 08:17:09 / cg"
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
! !
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    71
!CollectionTests methodsFor:'helpers'!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    72
655
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    73
checkSorted:aSortedCollection with:sortBlock against:anOriginalCollection
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    74
    |first|
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    75
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    76
    self assert:aSortedCollection size = anOriginalCollection size.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    77
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    78
    "is it sorted?"
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    79
    first := true.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    80
    aSortedCollection inject:nil into:[:last :each|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
    81
	    first ifTrue:[first := false]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
    82
		  ifFalse:[self assert:(sortBlock value:last value:each)]. each].
655
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    83
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    84
    "same elements as in original?"
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    85
    self assert:(aSortedCollection asBag = anOriginalCollection asBag).
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    86
!
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
    87
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    88
collectedDoArgsOf:aCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    89
    |collectedDoArgs|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    90
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    91
    collectedDoArgs := OrderedCollection new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    92
    aCollection do:[:each | collectedDoArgs add:each].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    93
    ^ collectedDoArgs
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    94
! !
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
    95
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    96
!CollectionTests methodsFor:'initialize-release'!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    97
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
    98
setUp
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
    99
	empty := Set new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   100
	nonEmpty := OrderedCollection with: #x.
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   101
! !
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   102
1396
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   103
!CollectionTests methodsFor:'tests-byteArray'!
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   104
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   105
testByteArrayReverse
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   106
     1 to:1024 do:[:i|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   107
	|bytes test rBytes|
1396
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   108
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   109
	bytes := ((1 to:i) asArray collect:[:i | i bitAnd:255]) asByteArray.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   110
	test := ((i to:1 by:-1) asArray collect:[:i | i bitAnd:255]) asByteArray.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   111
	rBytes := bytes copy.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   112
	self assert:(rBytes reverse = test).
1396
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   113
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   114
	rBytes := bytes copy.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   115
	self assert:(rBytes reverse reverse = bytes).
1396
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   116
     ].
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   117
!
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   118
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   119
testByteArrayReversed
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   120
     1 to:1024 do:[:i|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   121
	|bytes test rBytes|
1396
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   122
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   123
	bytes := ((1 to:i) asArray collect:[:i | i bitAnd:255]) asByteArray.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   124
	test := ((i to:1 by:-1) asArray collect:[:i | i bitAnd:255]) asByteArray.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   125
	self assert:(bytes reversed = test).
1396
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   126
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   127
	self assert:(bytes reversed reversed = bytes).
1396
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   128
     ].
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   129
! !
2d62a289b79e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1395
diff changeset
   130
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   131
!CollectionTests methodsFor:'tests-dictionary'!
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
testDictionary01
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   134
    |d v1 v2 v3 ret|
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
    d := Dictionary new.
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
    d at:1 put:(v1 := 'one').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    d at:2 put:(v2 := 'two').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
    d at:3 put:(v3 := 'three').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
    self assert: ( d size == 3 ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   142
757
2d776bef407b class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 677
diff changeset
   143
    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
   144
    self assert:(ret := d collect:[:each | each]) = #('one' 'two' 'three') asBag.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   145
    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
   146
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
    self assert: ( (d at:1) == v1 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
    self assert: ( (d at:2) == v2 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
    self assert: ( (d at:3) == v3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
    d at:3 put:(v3 := 'drei').
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
    self assert: ( d size == 3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
    self assert: ( (d at:1) == v1 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
    self assert: ( (d at:2) == v2 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    self assert: ( (d at:3) == v3 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
    self assert: ( (d keyAtValue:v1) = 1 ).
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    "
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
     self basicNew testDictionary01
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
    "
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   164
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   165
    "Modified: / 04-07-2011 / 19:28:39 / cg"
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   166
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   167
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   168
!CollectionTests methodsFor:'tests-general'!
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   169
615
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   170
doTestDictionaryLikeAddRemoveOperationsIn:aClass
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   171
    |coll|
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   172
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   173
    coll := aClass new.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   174
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   175
    self assert: ( coll size == 0 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   176
    self assert: ( coll isEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   177
    self assert: ( coll notEmpty not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   178
    self assert: ( coll isEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   179
    self assert: ( coll notEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   180
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   181
    coll at:1 put:'one'.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   182
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   183
    self assert: ( coll size == 1 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   184
    self assert: ( coll isEmpty not).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   185
    self assert: ( coll notEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   186
    self assert: ( coll isEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   187
    self assert: ( coll notEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   188
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   189
    coll at:2 put:'two'.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   190
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   191
    self assert: ( coll size == 2 ).
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 removeKey:2.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   198
    self assert: ( coll size == 1 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   199
    self assert: ( coll isEmpty not).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   200
    self assert: ( coll notEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   201
    self assert: ( coll isEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   202
    self assert: ( coll notEmptyOrNil ).
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
    coll removeKey:1.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   205
    self assert: ( coll size == 0 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   206
    self assert: ( coll isEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   207
    self assert: ( coll notEmpty not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   208
    self assert: ( coll isEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   209
    self assert: ( coll notEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   210
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   211
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   212
     self basicNew doTestDictionaryLikeAddRemoveOperations
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   213
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   214
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   215
    "Created: / 08-08-2011 / 16:01:14 / cg"
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   216
!
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   217
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   218
doTestGeneralAddRemoveOperationsIn:aClass
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   219
    |coll|
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   220
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   221
    coll := aClass new.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   222
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   223
    self assert: ( coll size == 0 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   224
    self assert: ( coll isEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   225
    self assert: ( coll notEmpty not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   226
    self assert: ( coll isEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   227
    self assert: ( coll notEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   228
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   229
    coll add:1.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   230
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   231
    self assert: ( coll size == 1 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   232
    self assert: ( coll isEmpty not).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   233
    self assert: ( coll notEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   234
    self assert: ( coll isEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   235
    self assert: ( coll notEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   236
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   237
    coll add:2.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   238
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   239
    self assert: ( coll size == 2 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   240
    self assert: ( coll isEmpty not).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   241
    self assert: ( coll notEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   242
    self assert: ( coll isEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   243
    self assert: ( coll notEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   244
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   245
    coll remove:2.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   246
    self assert: ( coll size == 1 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   247
    self assert: ( coll isEmpty not).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   248
    self assert: ( coll notEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   249
    self assert: ( coll isEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   250
    self assert: ( coll notEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   251
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   252
    coll remove:1.
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   253
    self assert: ( coll size == 0 ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   254
    self assert: ( coll isEmpty ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   255
    self assert: ( coll notEmpty not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   256
    self assert: ( coll isEmptyOrNil ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   257
    self assert: ( coll notEmptyOrNil not ).
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   258
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   259
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   260
     self basicNew testGeneralOperations
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   261
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   262
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   263
    "Created: / 08-08-2011 / 16:00:06 / cg"
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   264
!
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   265
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   266
doTestGeneralCollectionOperationsIn:aClass
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   267
    |coll|
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   268
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   269
    coll := aClass new.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   270
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   271
    self assert: ( coll size == 0 ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   272
    self assert: ( coll isEmpty ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   273
    self assert: ( coll notEmpty not ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   274
    self assert: ( coll isEmptyOrNil ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   275
    self assert: ( coll notEmptyOrNil not ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   276
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   277
    self should: [ coll first ] raise:Error.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   278
    self should: [ coll last ] raise:Error.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   279
    self should: [ (coll at:1) ] raise:Error.
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   280
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   281
    self assert: ( (coll includes:0) not ).
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   282
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   283
    "
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   284
     self basicNew testGeneralOperations
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   285
    "
156
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   286
!
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   287
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   288
doTestSequentialCollectionOperationsIn:aClass
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   289
    |coll1 coll2|
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   290
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   291
    coll1 := self protoCollectionFor: aClass.
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 assert: ( coll1 size > 0 ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   294
    self assert: ( coll1 isEmpty not ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   295
    self assert: ( coll1 notEmpty ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   296
    self assert: ( coll1 isEmptyOrNil not ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   297
    self assert: ( coll1 notEmptyOrNil ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   298
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   299
    self assert: ( coll1 first = (coll1 at:1) ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   300
    self assert: ( coll1 last = (coll1 at:(coll1 size)) ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   301
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   302
    self assert: ( coll1 = coll1 ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   303
    self assert: ( coll1 ~= coll1 ) not.
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   304
    coll2 := coll1 copy.
1043
b95983db1639 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   305
    self assert: (coll1 size == coll2 size).
b95983db1639 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   306
    1 to:coll1 size do:[:i |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   307
	"/ coll1 at:10
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   308
	"/ coll2 at:10
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   309
	self assert:(coll1 at:i) = (coll2 at:i).
1043
b95983db1639 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   310
    ].
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   311
    self assert: ( coll2 = coll1 ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   312
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   313
    coll2 replaceFrom:1 to:coll2 size with:coll1 startingAt:1.
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   314
    self assert: ( coll2 = coll1 ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   315
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   316
    "overlapping copy"
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   317
    coll2 replaceFrom:2 to:coll2 size with:coll2 startingAt:1.
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   318
    coll2 replaceFrom:1 to:coll2 size-1 with:coll2 startingAt:2.
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   319
    coll2 at:(coll2 size) put:(coll1 at:coll1 size).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   320
    self assert: ( coll2 = coll1 ).
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   321
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   322
    "
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   323
     self basicNew testSequentialCollectionOperations
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   324
    "
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   325
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   326
    "Created: / 08-05-2012 / 10:50:08 / cg"
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   327
!
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   328
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   329
protoCollectionFor: aClass
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   330
    aClass == BooleanArray ifTrue: [
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   331
	^ 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
   332
    ].
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   333
    aClass == BitArray ifTrue: [
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   334
	^ BitArray withAll:#(1 0 1 1 0 0 1 0 0 1)
1040
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   335
    ].
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   336
    aClass == ByteArray ifTrue: [
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   337
	^ ByteArray withAll:#(1 2 3 4 16rFC 16rFD 16rFE 16rFF)
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   338
    ].
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   339
    aClass == String ifTrue: [
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   340
	^ 'abcdefghijklmnopqrstuvwxyz'
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   341
    ].
1040
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   342
    (aClass includesBehavior:CharacterArray) ifTrue:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   343
	^ 'abcdefghijklmnopqrstuvwxyz' as: aClass
1040
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   344
    ].
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   345
    (aClass includesBehavior:AbstractNumberVector) ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   346
	(aClass includesBehavior:UnboxedIntegerArray) ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   347
	    ^ #(1 2 3 4 5 6 7 8 9 10) as: aClass
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   348
	].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   349
	^ #(1.0 2 3.0 4 5.0 6 7.0 8 9.0 10) as: aClass
1040
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   350
    ].
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   351
    ^ #(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
   352
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   353
    "
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   354
     self basicNew testSequentialCollectionOperations
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   355
    "
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   356
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   357
    "Created: / 08-05-2012 / 10:50:50 / cg"
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   358
!
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   359
615
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   360
testDictionaryLikeAddRemoveOperations
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   361
    |classes|
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   362
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   363
    classes := OrderedCollection new.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   364
    classes
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   365
	add:Dictionary;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   366
	add:IdentityDictionary;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   367
	add:OrderedDictionary;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   368
	add:BTree.
615
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   369
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   370
    classes do:[:eachClass |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   371
	self doTestDictionaryLikeAddRemoveOperationsIn:eachClass
615
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   372
    ].
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   373
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   374
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   375
     self basicNew testDictionaryLikeAddRemoveOperations
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   376
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   377
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   378
    "Created: / 08-08-2011 / 15:59:52 / cg"
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   379
!
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   380
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   381
testGeneralAddRemoveOperations
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   382
    |classes|
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   383
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   384
    classes := OrderedCollection new.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   385
    classes
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   386
	"/ add:RunArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   387
	add:Bag;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   388
	add:Set;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   389
	add:IdentitySet;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   390
	"/add:Dictionary;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   391
	"/add:IdentityDictionary;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   392
	add:OrderedCollection;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   393
	add:SortedCollection;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   394
	"/add:Queue;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   395
	"/add:Stack;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   396
	add:SortedCollection;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   397
	"/add:OrderedDictionary;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   398
	add:OrderedSet.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   399
	"/add:BTree.
615
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   400
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   401
    classes do:[:eachClass |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   402
	self doTestGeneralAddRemoveOperationsIn:eachClass
615
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   403
    ].
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   404
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   405
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   406
     self basicNew testGeneralAddRemoveOperations
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   407
    "
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   408
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   409
    "Created: / 08-08-2011 / 15:59:02 / cg"
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   410
!
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   411
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   412
testGeneralOperations
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   413
    |classes|
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   414
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   415
    classes := OrderedCollection new.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   416
    classes
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   417
	add:RunArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   418
	add:Bag;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   419
	add:Set;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   420
	add:IdentitySet;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   421
	add:Dictionary;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   422
	add:IdentityDictionary;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   423
	add:OrderedCollection;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   424
	add:SortedCollection;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   425
	add:Queue;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   426
	add:Stack;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   427
	add:SortedCollection;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   428
	add:OrderedDictionary;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   429
	add:OrderedSet;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   430
	add:BTree.
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   431
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   432
    classes do:[:eachClass |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   433
	self doTestGeneralCollectionOperationsIn:eachClass
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   434
    ].
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   435
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   436
    "
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   437
     self basicNew testGeneralOperations
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   438
    "
615
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   439
3a61700c6e88 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   440
    "Modified: / 08-08-2011 / 15:53:16 / cg"
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   441
!
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   442
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   443
testSequentialCollectionOperations
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   444
    |classes|
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   445
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   446
    classes := OrderedCollection new.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   447
    classes
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   448
	add:OrderedCollection;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   449
	add:Array;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   450
	add:String;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   451
	add:ByteArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   452
	add:WordArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   453
	add:IntegerArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   454
	add:LongIntegerArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   455
	add:SignedWordArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   456
	add:SignedIntegerArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   457
	add:SignedLongIntegerArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   458
	add:FloatArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   459
	add:DoubleArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   460
	add:HalfFloatArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   461
	add:TwoByteString;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   462
	add:Unicode16String;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   463
	add:Unicode32String;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   464
	add:BooleanArray;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   465
	add:BitArray.
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   466
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   467
    classes do:[:eachClass |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   468
	self doTestSequentialCollectionOperationsIn:eachClass
677
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   469
    ].
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   470
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   471
    "
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   472
     self basicNew testSequentialCollectionOperations
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   473
    "
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   474
0088726f3063 test overlapping replaceFromToWithStartingAt
Claus Gittinger <cg@exept.de>
parents: 666
diff changeset
   475
    "Created: / 08-05-2012 / 10:48:40 / cg"
1040
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   476
!
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   477
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   478
testSpecialArrayClasses
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   479
    |a|
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   480
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   481
    a := #(1 2 3 4 5) asWordArray.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   482
    self assert:(a at:1) == 1.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   483
    self assert:(a at:a size) == 5.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   484
    self assert:(a first) == 1.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   485
    self assert:(a last) == 5.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   486
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   487
    a := #(1 2 3 4 5) asIntegerArray.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   488
    self assert:(a at:1) == 1.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   489
    self assert:(a at:a size) == 5.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   490
    self assert:(a first) == 1.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   491
    self assert:(a last) == 5.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   492
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   493
    a := #(1 2 3 4 5) asLongIntegerArray.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   494
    self assert:(a at:1) == 1.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   495
    self assert:(a at:a size) == 5.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   496
    self assert:(a first) == 1.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   497
    self assert:(a last) == 5.
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   498
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   499
    "
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   500
     self basicNew testSpecialArrayClasses
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   501
    "
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   502
35d20906f91c class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 757
diff changeset
   503
    "Created: / 08-05-2012 / 10:48:40 / cg"
1041
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   504
!
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   505
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   506
testSpecialArrayClasses2
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   507
    |a|
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   508
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   509
    a := #(1 2 3 4 5) asFloatArray.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   510
    self assert:(a at:1) = 1.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   511
    self assert:(a at:a size) = 5.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   512
    self assert:(a first) = 1.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   513
    self assert:(a last) = 5.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   514
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   515
    a := #(1 2 3 4 5) asDoubleArray.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   516
    self assert:(a at:1) = 1.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   517
    self assert:(a at:a size) = 5.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   518
    self assert:(a first) = 1.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   519
    self assert:(a last) = 5.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   520
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   521
    a := #(1 2 3 4 5) asHalfFloatArray.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   522
    self assert:(a at:1) = 1.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   523
    self assert:(a at:a size) = 5.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   524
    self assert:(a first) = 1.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   525
    self assert:(a last) = 5.0.
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   526
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   527
    "
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   528
     self basicNew testSpecialArrayClasses2
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   529
    "
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   530
6692cfae6a25 class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1040
diff changeset
   531
    "Created: / 08-05-2012 / 10:48:40 / cg"
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   532
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   533
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   534
!CollectionTests methodsFor:'tests-interval'!
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   535
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   536
testInterval01
663
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   537
    |i1 i2 enumeratedValues|
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   538
644
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   539
    i1 := 1 to:10.
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   540
644
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   541
    self assert: ( i1 size == 10 ).
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   542
644
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   543
    self assert: ( i1 includes:1 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   544
    self assert: ( i1 includes:10 ).
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   545
644
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   546
    self assert: ( i1 min == 1 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   547
    self assert: ( i1 max == 10 ).
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   548
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   549
    "cannot add/remove"
644
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   550
    self should:[i1 add:99] raise:Error.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   551
    self should:[i1 remove:10] raise:Error.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   552
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   553
    i2 := 2 to:20 by:2.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   554
    self assert: ( i2 size == 10 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   555
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   556
    self assert: ( i2 includes:0 ) not.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   557
    self assert: ( i2 includes:1 ) not.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   558
    self assert: ( i2 includes:2 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   559
    self assert: ( i2 includes:3 ) not.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   560
    self assert: ( i2 includes:10 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   561
    self assert: ( i2 includes:19 ) not.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   562
    self assert: ( i2 includes:20 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   563
    self assert: ( i2 includes:21 ) not.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   564
    self assert: ( i2 includes:22 ) not.
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   565
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   566
    self assert: ( i2 min == 2 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   567
    self assert: ( i2 max == 20 ).
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   568
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   569
    self assert: ( i2 keys asArray = (1 to:10) asArray ).
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   570
663
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   571
    enumeratedValues := OrderedCollection new.
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   572
    i1 do:[:each | enumeratedValues add:each ].
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   573
    self assert:(enumeratedValues size == 10).
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   574
    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
   575
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   576
    enumeratedValues := OrderedCollection new.
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   577
    i2 do:[:each | enumeratedValues add:each ].
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   578
    self assert:(enumeratedValues size == 10).
437a6c228d34 added interval enumeration test
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   579
    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
   580
666
ff89010dca6b changed: #testInterval01
Stefan Vogel <sv@exept.de>
parents: 664
diff changeset
   581
    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
   582
    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
   583
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   584
    "
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   585
     self basicNew testInterval01
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   586
    "
644
c8240e7bfb37 class definition
Claus Gittinger <cg@exept.de>
parents: 640
diff changeset
   587
664
c7fbcdea0afa changed: #testInterval01
Claus Gittinger <cg@exept.de>
parents: 663
diff changeset
   588
    "Modified: / 03-05-2012 / 18:36:41 / cg"
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   589
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   590
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   591
!CollectionTests methodsFor:'tests-orderedCollection'!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   592
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   593
testMergeSortStability01
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   594
    "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
   595
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   596
    | testData lastTestData errs  col|
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   597
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   598
    testData := OrderedCollection new.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   599
    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
   600
    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
   601
    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
   602
    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
   603
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   604
    col := testData copy.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   605
    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
   606
    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
   607
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   608
    lastTestData := nil.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   609
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   610
    errs := col inject: 0 into:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   611
	    [ :totIn :aSortTestData | |totOut|
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   612
	    totOut := totIn.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   613
	    lastTestData notNil ifTrue:
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   614
		    [ lastTestData value = aSortTestData value ifTrue:
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   615
			    [ lastTestData order > aSortTestData order ifTrue: [ totOut := totOut + 1 ] ] ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   616
	    lastTestData := aSortTestData.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   617
	    totOut ].
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   618
    self should: [ errs = 0 ]
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   619
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   620
    "
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   621
     self basicNew testMergeSortStability01
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   622
    "
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   623
!
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   624
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   625
testOrderedCollection01_Sort1
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   626
    |col col2|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   627
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   628
    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
   629
    col sort.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   630
    self assert:( col sameContentsAs: (1 to:20)).
301
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
    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
   633
    col sort.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   634
    self assert:( col sameContentsAs: (1 to:20) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   635
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   636
    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
   637
    col sort.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   638
    self assert:( col sameContentsAs: (1 to:20) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   639
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   640
    col := ( 1 to: 10000 ) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   641
    col sort.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   642
    self assert:( col sameContentsAs: (1 to:10000) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   643
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   644
    col := ( 1 to: 10000 ) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   645
    col2 := ( 1 to: 10000 ) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   646
    col sortWith:col2.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   647
    self assert:( col sameContentsAs: (1 to:10000) ).
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   648
    self assert:( col2 sameContentsAs: (1 to:10000) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   649
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   650
    col := ( 10000 to: 1 by:-1) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   651
    col2 := ( 10000 to: 1 by:-1) asOrderedCollection.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   652
    col sortWith:col2.
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   653
    self assert:( col sameContentsAs: (1 to:10000) ).
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   654
    self assert:( col2 sameContentsAs: (1 to:10000) ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   655
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   656
    "
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   657
     self new testOrderedCollection01_Sort1
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   658
    "
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   659
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   660
    "Modified: / 04-07-2011 / 19:29:54 / cg"
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   661
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   662
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   663
testOrderedCollection02_SortBigCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   664
    | size col sortBlock|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   665
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   666
    size := 12500.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   667
    col := OrderedCollection new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   668
    1 to:size do:[:el|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   669
	col add:nil.
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   670
    ].
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   671
    sortBlock := [:entry1 :entry2 |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   672
	((entry1 isNil) or:[entry2 isNil]) ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   673
	    true
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   674
	] ifFalse:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   675
	    false
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   676
	]
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   677
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   678
    self shouldnt:[col sort:sortBlock] raise:RecursionInterruptSignal.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   679
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   680
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   681
     self new testOrderedCollection02_SortBigCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   682
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   683
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   684
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   685
testOrderedCollection03_SortBigCollection2
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   686
    | size col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   687
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   688
    size := 12500.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   689
    col := OrderedCollection new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   690
    1 to:size do:[:el|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   691
	col add:'abc'.
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   692
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   693
    self shouldnt:[col sort] raise:RecursionInterruptSignal.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   694
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   695
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   696
     self new testOrderedCollection03_SortBigCollection2
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   697
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   698
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   699
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   700
testOrderedCollection04_SortNilsInCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   701
    | size col sortBlock|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   702
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   703
    size := 125.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   704
    col := OrderedCollection new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   705
    1 to:size do:[:el|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   706
	col add:nil.
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   707
    ].
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   708
    sortBlock := [:entry1 :entry2 |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   709
	((entry1 isNil) or:[entry2 isNil]) ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   710
	    true
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   711
	] ifFalse:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   712
	    false
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   713
	]
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   714
    ].
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   715
    "/ col sort:sortBlock.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   716
    self shouldnt:[col sort:sortBlock] raise:RecursionInterruptSignal.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   717
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   718
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   719
     self new testOrderedCollection04_SortNilsInCollection
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   720
    "
655
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   721
!
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   722
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   723
testOrderedCollection05_SortRandomCollection
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   724
     |data sorted rg coData checkBlock|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   725
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   726
     checkBlock := [:a :b| a <= b].
655
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   727
     rg := Random new.
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   728
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   729
     #(1 4 11 2000 20011 200000) do:[:eachSize|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   730
	 data := Array new:eachSize.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   731
	 1 to:data size do:[:i |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   732
	    data at:i put:(rg nextIntegerBetween:1 and:100).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   733
	 ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   734
	 sorted := data copy sort.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   735
	 self checkSorted:sorted with:checkBlock against:data.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   736
	 sorted := sorted sort.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   737
	 self checkSorted:sorted with:checkBlock against:data.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   738
	 sorted := sorted reverse sort.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   739
	 self checkSorted:sorted with:checkBlock against:data.
655
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   740
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   741
	 coData := data copy.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   742
	 sorted := data copy sortWith:coData.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   743
	 self checkSorted:sorted with:checkBlock against:data.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   744
	 self checkSorted:coData with:checkBlock against:data.
655
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   745
1280
977c1f04083e class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1054
diff changeset
   746
"/ Policy is not yet supported (without libcompat)
977c1f04083e class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1054
diff changeset
   747
"/         sorted := data copy sort:[:policy :a :b| a < b].
977c1f04083e class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1054
diff changeset
   748
"/         self checkSorted:sorted with:checkBlock against:data.
655
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   749
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   750
	 sorted := data copy sort:[:a :b| a < b].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   751
	 self checkSorted:sorted with:checkBlock against:data.
655
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   752
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   753
	 coData := data copy.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   754
	 sorted := data copy sort:[:a :b| a < b] with:coData.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   755
	 self checkSorted:sorted with:checkBlock against:data.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   756
	 self checkSorted:coData with:checkBlock against:data.
655
43841f85365a more sort tests
Stefan Vogel <sv@exept.de>
parents: 644
diff changeset
   757
    ].
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   758
!
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   759
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   760
testOrderedCollection06_MergeSortRandomCollection
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   761
     |data sorted rg checkBlock|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   762
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   763
     checkBlock := [:a :b| a <= b].
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   764
     rg := Random new.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   765
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   766
     #(1 4 11 2000 20011 200000) do:[:eachSize|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   767
	 data := Array new:eachSize.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   768
	 1 to:data size do:[:i |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   769
	    data at:i put:(rg nextIntegerBetween:1 and:100).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   770
	 ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   771
	 sorted := data copy mergeSort.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   772
	 self checkSorted:sorted with:checkBlock against:data.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   773
	 sorted := sorted mergeSort.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   774
	 self checkSorted:sorted with:checkBlock against:data.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   775
	 sorted := sorted reverse mergeSort.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   776
	 self checkSorted:sorted with:checkBlock against:data.
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   777
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   778
	 sorted := data copy mergeSort:[:a :b| a < b].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   779
	 self checkSorted:sorted with:checkBlock against:data.
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
   780
    ].
657
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   781
!
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   782
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   783
testOrderedCollection07_HeapSortRandomCollection
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   784
     |data sorted rg checkBlock|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   785
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   786
     checkBlock := [:a :b| a <= b].
657
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   787
     rg := Random new.
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   788
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   789
     #(1 4 11 2000 20011 200000) do:[:eachSize|
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   790
	 data := Array new:eachSize.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   791
	 1 to:data size do:[:i |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   792
	    data at:i put:(rg nextIntegerBetween:1 and:100).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   793
	 ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   794
	 sorted := data copy heapSort.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   795
	 self checkSorted:sorted with:checkBlock against:data.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   796
	 sorted := sorted heapSort.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   797
	 self checkSorted:sorted with:checkBlock against:data.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   798
	 sorted := sorted reverse heapSort.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   799
	 self checkSorted:sorted with:checkBlock against:data.
657
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   800
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   801
	 sorted := data copy heapSort:[:a :b| a < b].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   802
	 self checkSorted:sorted with:checkBlock against:data.
657
4f04a8bf19c5 added: #testOrderedCollection07_HeapSortRandomCollection
Stefan Vogel <sv@exept.de>
parents: 656
diff changeset
   803
    ].
1422
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   804
!
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   805
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   806
testOrderedCollection08_addBefore
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   807
    |col|
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   808
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   809
    col := #( 1 2 3 4 5 ) asOrderedCollection.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   810
    col add:0 beforeIndex:1.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   811
    self assert:(col asArray = #(0 1 2 3 4 5)).
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   812
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   813
    col := OrderedCollection new.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   814
    col add:10.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   815
    col add:0 beforeIndex:1.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   816
    self assert:(col asArray = #(0 10)).
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   817
1422
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   818
    col := OrderedCollection with:10.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   819
    col add:0 beforeIndex:1.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   820
    self assert:(col asArray = #(0 10)).
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   821
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   822
    col := OrderedCollection new:1.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   823
    col add:10.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   824
    self assert:(col size == 1).
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   825
    self assert:(col asArray = #(10)).
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   826
    self assert:(col instVarNamed:'firstIndex') == 1.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   827
    self assert:(col instVarNamed:'lastIndex') == 1.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   828
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   829
    col add:0 beforeIndex:1.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   830
    self assert:(col size == 2).
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   831
    self assert:(col instVarNamed:'firstIndex') == 1.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   832
    self assert:(col instVarNamed:'lastIndex') == 2.
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   833
    self assert:(col asArray = #(0 10)).
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   834
    "
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   835
     self new testOrderedCollection08_addBefore
1422
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
   836
    "
1424
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   837
!
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   838
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   839
testOrderedCollection09_addAllBefore
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   840
    |col|
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   841
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   842
    col := #( 1 2 3 4 5 ) asOrderedCollection.
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   843
    col addAll:#(-2 -1 0) beforeIndex:1.
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   844
    self assert:(col asArray = #(-2 -1 0 1 2 3 4 5)).
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   845
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   846
    col := OrderedCollection new:1.
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   847
    col add:10.
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   848
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   849
    col addAll:#(-2 -1 0) beforeIndex:1.
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   850
    self assert:(col size == 4).
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   851
    self assert:(col instVarNamed:'firstIndex') == 1.
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   852
    self assert:(col instVarNamed:'lastIndex') == 4.
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   853
    self assert:(col asArray = #(-2 -1 0 10)).
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   854
    "
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
   855
     self new testOrderedCollection09_addAllBefore
1424
56c64e1f572e #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1423
diff changeset
   856
    "
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   857
! !
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   858
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   859
!CollectionTests methodsFor:'tests-orderedDictionary'!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   860
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   861
testOrderedDictionary01
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   862
    |d ret|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   863
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   864
    d := OrderedDictionary new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   865
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   866
    self assert: ( d size == 0 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   867
    self assert: ( d isEmpty ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   868
    self assert: ( d notEmpty not ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   869
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   870
    d at:'one' put:1.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   871
    d at:'two' put:2.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   872
    d at:'three' put:3.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   873
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   874
    self assert: ( d size == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   875
    self assert: ( d isEmpty not).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   876
    self assert: ( d notEmpty ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   877
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   878
    self assert:((ret := self collectedDoArgsOf:d) sameContentsAs: #(1 2 3)).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   879
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   880
    self assert: ( (d atIndex:1) == 1 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   881
    self assert: ( (d atIndex:2) == 2 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   882
    self assert: ( (d atIndex:3) == 3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   883
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   884
    self assert: ( (d first) = ('one'->1) ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   885
    self assert: ( (d last) = ('three'->3) ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   886
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   887
    self assert:((ret := d collect:[:each | each]) sameContentsAs: #(1 2 3)).
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   888
    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
   889
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   890
    self assert: ( d includes:1 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   891
    self assert: ( d includes:2 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   892
    self assert: ( d includes:3 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   893
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   894
    self assert: ( d includesKey:'one' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   895
    self assert: ( d includesKey:'two' ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   896
    self assert: ( d includesKey:'three' ).
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
    self assert: ((ret := d removeFirst) = 1).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   899
    self assert: ( d size == 2 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   900
    self assert: ((ret := d removeLast) = 3).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   901
    self assert: ( d size == 1 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   902
    self assert: ((ret := d removeLast) = 2).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   903
    self assert: ( d size == 0 ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   904
    self assert: ( d isEmpty ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   905
    self assert: ( d notEmpty not ).
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   906
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
     self basicNew testOrderedDictionary01
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   909
    "
585
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   910
Claus Gittinger <cg@exept.de>
parents: 538
diff changeset
   911
    "Modified: / 04-07-2011 / 19:32:34 / cg"
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   912
! !
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   913
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   914
!CollectionTests methodsFor:'tests-orderedSet'!
162
8f53db556b40 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
   915
156
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   916
testOrderedSet01
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   917
    |s v1 v2 v3|
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   918
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   919
    s := OrderedSet new.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   920
    s add:(v1 := 'one').
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   921
    s add:(v2 := 'two').
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   922
    s add:(v3 := 'three').
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   923
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   924
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   925
    self assert: ( (s at:1) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   926
    self assert: ( (s at:2) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   927
    self assert: ( (s at:3) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   928
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   929
    self assert: ( s includes:v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   930
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   931
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   932
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   933
    self assert: ( s includes:v1 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   934
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   935
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   936
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   937
    "already in - adding again should not change things"
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   938
    s add:v1.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   939
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   940
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   941
    self assert: ( (s at:1) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   942
    self assert: ( (s at:2) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   943
    self assert: ( (s at:3) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   944
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   945
    "set i.e. not identitySet - adding copy should not change things"
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   946
    s add:v1 copy.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   947
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   948
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   949
    self assert: ( (s at:1) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   950
    self assert: ( (s at:2) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   951
    self assert: ( (s at:3) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   952
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   953
    s remove:v1.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   954
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   955
    self assert: ( s size == 2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   956
    self assert: ( (s at:1) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   957
    self assert: ( (s at:2) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   958
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   959
    self assert: ( s includes:v1 ) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   960
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   961
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   962
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   963
    self assert: ( s includes:v1 copy) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   964
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   965
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   966
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   967
    s add:v1.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   968
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   969
    self assert: ( s size == 3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   970
    self assert: ( (s at:1) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   971
    self assert: ( (s at:2) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   972
    self assert: ( (s at:3) == v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   973
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   974
    self assert: ( s includes:v1 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   975
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   976
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   977
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   978
    self assert: ( s includes:v1 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   979
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   980
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   981
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   982
    s removeLast.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   983
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   984
    self assert: ( s size == 2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   985
    self assert: ( (s at:1) == v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   986
    self assert: ( (s at:2) == v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   987
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   988
    self assert: ( s includes:v1 ) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   989
    self assert: ( s includes:v2 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   990
    self assert: ( s includes:v3 ).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   991
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   992
    self assert: ( s includes:v1 copy) not.
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   993
    self assert: ( s includes:v2 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   994
    self assert: ( s includes:v3 copy).
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   995
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   996
    "
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   997
     self basicNew testOrderedSet01
2e935206273c orderedSet tests
Claus Gittinger <cg@exept.de>
parents: 116
diff changeset
   998
    "
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
   999
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1000
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1001
testOrderedSet02
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1002
    |col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1003
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1004
    col := OrderedSet new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1005
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1006
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1007
    col add:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1008
    col add:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1009
    self assert:( col size == 3 ).
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1010
    self assert:( Array streamContents:[:s |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1011
			col do:[:each | s nextPut:each]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1012
		  ]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1013
		) = #('a' 'b' 'c' ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1014
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1015
    "
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1016
     self new testOrderedSet02
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1017
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1018
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1019
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1020
testOrderedSet03
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1021
    |col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1022
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1023
    col := OrderedSet new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1024
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1025
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1026
    col add:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1027
    col add:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1028
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1029
    col add:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1030
    self assert:( col size == 3 ).
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1031
    self assert:( Array streamContents:[:s |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1032
			col do:[:each | s nextPut:each]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1033
		  ]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1034
		) = #('a' 'b' 'c' ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1035
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1036
    "
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1037
     self new testOrderedSet03
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1038
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1039
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1040
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1041
testOrderedSet04
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1042
    |col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1043
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1044
    col := OrderedSet new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1045
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1046
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1047
    col addFirst:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1048
    col addFirst:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1049
    self assert:( col size == 3 ).
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1050
    self assert:( Array streamContents:[:s |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1051
			col do:[:each | s nextPut:each]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1052
		  ]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1053
		) = #('c' 'b' 'a' ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1054
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1055
    "
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1056
     self new testOrderedSet04
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1057
    "
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1058
!
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1059
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1060
testOrderedSet05
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1061
    |col|
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1062
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1063
    col := OrderedSet new.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1064
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1065
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1066
    col addFirst:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1067
    col addFirst:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1068
    col add:'a'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1069
    col add:'b'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1070
    col add:'c'.
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1071
    self assert:( col size == 3 ).
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1072
    self assert:( Array streamContents:[:s |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1073
			col do:[:each | s nextPut:each]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1074
		  ]
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1075
		) = #('c' 'b' 'a' ).
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1076
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1077
    "
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1078
     self new testOrderedSet05
301
13bbcb92d6c5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 297
diff changeset
  1079
    "
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
  1080
! !
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
  1081
1299
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1082
!CollectionTests methodsFor:'tests-reindexedCollection'!
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1083
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1084
testReindexedCollection01
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1085
    |s c c2|
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1086
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1087
    s := OrderedCollection new.
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1088
    s addAll:#('one' 'two' 'three' 'four' 'five').
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1089
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1090
    c := s from:2.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1091
1299
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1092
    self assert: ( c size == (s size - 1) ).
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1093
    1 to:c size do:[:i |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1094
	self assert: ( (c at:i) == (s at:i+1) ).
1299
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1095
    ].
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1096
1299
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1097
    c2 := c collect:[:el |el].
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1098
    self assert:(c2 size == c size).
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1099
    self assert:(c2 = c).
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1100
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1101
    c2 := c select:[:el |true].
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1102
    self assert:(c2 size == c size).
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1103
    self assert:(c2 = c).
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1104
1299
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1105
    c2 := c select:[:el | el startsWith:'t'].
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1106
    self assert:(c2 size == (s count:[:el | el startsWith:'t' ])).
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1107
1300
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1108
    c2 := c reject:[:el | el startsWith:'t'].
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1109
    self assert:(c2 size == ((s copyFrom:2) count:[:el | el startsWith:'t' ])).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1110
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1111
    s := #(1 2 3 4 5 6 7 8).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1112
    c := s from:2.
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1113
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1114
    self assert: ( c size == (s size - 1) ).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1115
    1 to:c size do:[:i |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1116
	self assert: ( (c at:i) == (s at:i+1) ).
1300
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1117
    ].
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1118
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1119
    c2 := c collect:[:el |el].
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1120
    self assert:(c2 size == c size).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1121
    self assert:(c2 = c).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1122
    self assert:(c2 sameContentsAs:(s copyFrom:2)).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1123
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1124
    c2 := c select:[:el |true].
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1125
    self assert:(c2 size == c size).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1126
    self assert:(c2 = c).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1127
    self assert:(c2 sameContentsAs:(s copyFrom:2)).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1128
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1129
    c2 := c select:[:el |el even].
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1130
    self assert:(c2 size == ((s copyFrom:2) select:#even) size).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1131
    self assert:(c2 sameContentsAs:((s copyFrom:2) select:#even)).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1132
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1133
    c2 := c reject:[:el |el even].
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1134
    self assert:(c2 size == ((s copyFrom:2) reject:#even) size).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1135
    self assert:(c2 sameContentsAs:((s copyFrom:2) reject:#even)).
3dc512cbf863 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1299
diff changeset
  1136
1299
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1137
    "
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1138
     self basicNew testReindexedCollection01
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1139
    "
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1140
! !
c9fdd72327a5 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 1282
diff changeset
  1141
297
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1142
!CollectionTests methodsFor:'tests-replace'!
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1143
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1144
testEmptyReplace
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1145
    | array1 array2 |
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1146
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1147
    array1 := Array with: 1 with: 2 with: 3 with: 4.
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1148
    array2 := Array with: 5 with: 6 with: 7.
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1149
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1150
    array1 replaceFrom:1 to:0 with:array2 startingAt:1.
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1151
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1152
    self should: [ array1 = #(1 2 3 4) ].
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1153
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1154
    "
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1155
     self new testEmptyReplace
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1156
    "
538
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1157
!
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1158
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1159
testTransliterating
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1160
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'b-g' to:'B-G'   ) = 'aBCDEFGhijkl1234567890'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1161
     self assert:( 'abcdefghij-kl1234567890' copyTransliterating:'b\-g' to:'B+G'  ) = 'aBcdefGhij+kl1234567890'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1162
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'69' to:'96'     ) = 'abcdefghijkl1234597860'  .
538
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1163
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'a' to:'b'       ) = 'bbcdefghijkl1234567890'   .
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1164
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'aeiou' to:'AEIOU'    ) = 'AbcdEfghIjkl1234567890'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1165
     self assert:( 'abcdefghijkl1234567890'  copyTransliterating:'0-9' to:'QERTYUIOPX' ) = 'abcdefghijklERTYUIOPXQ' .
538
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1166
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1167
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'0-9' to:'A' complement:false squashDuplicates:false )
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1168
		    = 'abcdefghijklAAAAAAAAAA'.
538
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1169
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1170
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'0-9' to:'A' complement:false squashDuplicates:true )
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1171
		    = 'abcdefghijklA'.
538
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1172
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1173
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'0-9' to:'*' complement:false squashDuplicates:false )
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1174
		    = 'abcdefghijkl**********'.
538
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1175
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1176
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'0-9' to:'*' complement:true squashDuplicates:false )
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1177
		    = '************1234567890'.
538
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1178
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1179
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'a-zA-Z' to:' ' complement:true squashDuplicates:false )
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1180
		    = 'abcdefghijkl          '.
538
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1181
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1182
     self assert:( 'abcdefghijkl1234567890' copyTransliterating:'a-zA-Z' to:' ' complement:false squashDuplicates:false )
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1183
		    = '            1234567890'.
538
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1184
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1185
     self assert:( 'abcdefghijkl1234567890abcdefghijkl' copyTransliterating:'a-zA-Z' to:'' complement:false squashDuplicates:false )
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1186
		    = '1234567890'.
538
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1187
5b0084e6b4a1 check copyTransliterating:
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  1188
     self assert:( 'abcdefghijkl1234567890abcdefghijkl' copyTransliterating:'a-zA-Z' to:'' complement:true squashDuplicates:false )
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1189
		    = 'abcdefghijklabcdefghijkl'.
297
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1190
! !
bfb9ea5cbb19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 295
diff changeset
  1191
639
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1192
!CollectionTests methodsFor:'tests-searching'!
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1193
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1194
test_min_max
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1195
    |a|
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1196
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1197
    #(
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1198
	asArray
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1199
	asFloatArray
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1200
	asDoubleArray
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1201
	asHalfFloatArray
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1202
	asSignedWordArray
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1203
	asSignedIntegerArray
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1204
	asSignedLongIntegerArray
639
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1205
    ) do:[:converter |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1206
	|empty|
640
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1207
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1208
	empty := #() perform:converter.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1209
	self should:[ empty min ] raise:Error.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1210
	self should:[ empty max ] raise:Error.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1211
	self should:[ empty minMax ] raise:Error.
640
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1212
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1213
	#(
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1214
	    (0 0)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1215
	    (1 1)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1216
	    (-1 -1)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1217
	    (0 1)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1218
	    (1 2)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1219
	    (-1 -0)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1220
	    (-1 1)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1221
	    (1 10000)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1222
	    (1 20000)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1223
	    (2 10000)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1224
	    (2 20000)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1225
	    (-1000 1000)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1226
	    (-1000 999)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1227
	) pairsDo:[:min :max |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1228
	    a := (min to:max) perform:converter.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1229
	    self assert:(a min) = min.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1230
	    self assert:(a max) = max.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1231
	    self assert:(a minMax) = { min. max }.
1044
b019cfae53af class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1043
diff changeset
  1232
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1233
	    a := a reverse.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1234
	    self assert:(a min) = min.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1235
	    self assert:(a max) = max.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1236
	    self assert:(a minMax) = { min. max }.
1044
b019cfae53af class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1043
diff changeset
  1237
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1238
	    a := a randomShuffle.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1239
	    self assert:(a min) = min.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1240
	    self assert:(a max) = max.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1241
	    self assert:(a minMax) = { min. max }.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1242
	].
1044
b019cfae53af class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1043
diff changeset
  1243
    ].
b019cfae53af class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1043
diff changeset
  1244
b019cfae53af class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1043
diff changeset
  1245
    #(
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1246
	asWordArray
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1247
	asIntegerArray
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1248
	asLongIntegerArray
1044
b019cfae53af class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1043
diff changeset
  1249
    ) do:[:converter |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1250
	|empty|
1044
b019cfae53af class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1043
diff changeset
  1251
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1252
	empty := #() perform:converter.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1253
	self should:[ empty min ] raise:Error.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1254
	self should:[ empty max ] raise:Error.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1255
	self should:[ empty minMax ] raise:Error.
1044
b019cfae53af class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1043
diff changeset
  1256
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1257
	#(
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1258
	    (0 0)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1259
	    (1 1)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1260
	    (0 1)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1261
	    (1 2)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1262
	    (1 10000)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1263
	    (1 10001)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1264
	    (2 10000)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1265
	    (2 10001)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1266
	) pairsDo:[:min :max |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1267
	    a := (min to:max) perform:converter.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1268
	    self assert:(a min) = min.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1269
	    self assert:(a max) = max.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1270
	    self assert:(a minMax) = { min. max }.
639
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1271
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1272
	    a := a reverse.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1273
	    self assert:(a min) = min.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1274
	    self assert:(a max) = max.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1275
	    self assert:(a minMax) = { min. max }.
639
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1276
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1277
	    a := a randomShuffle.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1278
	    self assert:(a min) = min.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1279
	    self assert:(a max) = max.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1280
	    self assert:(a minMax) = { min. max }.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1281
	].
639
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1282
    ].
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1283
1423
12f4039f6662 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  1284
    (Array with:Array with:OrderedCollection with:ByteArray with:WordArray with:IntegerArray)
1422
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
  1285
    do:[:cls |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1286
	a := cls withAll: #(10 20 30 40 50 60 70 80 90 100).
1422
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
  1287
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1288
	self assert:(a indexOf:110) == 0.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1289
	self assert:(a indexOf:10) == 1.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1290
	self assert:(a indexOf:20) == 2.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1291
	self assert:(a indexOf:30) == 3.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1292
	self assert:(a indexOf:40) == 4.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1293
	self assert:(a indexOf:50) == 5.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1294
	self assert:(a indexOf:60) == 6.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1295
	self assert:(a indexOf:70) == 7.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1296
	self assert:(a indexOf:80) == 8.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1297
	self assert:(a indexOf:90) == 9.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1298
	self assert:(a indexOf:100) == 10.
1422
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
  1299
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1300
	self assert:(a identityIndexOf:110) == 0.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1301
	self assert:(a identityIndexOf:10) == 1.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1302
	self assert:(a identityIndexOf:20) == 2.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1303
	self assert:(a identityIndexOf:30) == 3.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1304
	self assert:(a identityIndexOf:40) == 4.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1305
	self assert:(a identityIndexOf:50) == 5.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1306
	self assert:(a identityIndexOf:60) == 6.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1307
	self assert:(a identityIndexOf:70) == 7.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1308
	self assert:(a identityIndexOf:80) == 8.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1309
	self assert:(a identityIndexOf:90) == 9.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1310
	self assert:(a identityIndexOf:100) == 10.
1422
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
  1311
    ].
8e237a64a6f2 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1396
diff changeset
  1312
639
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1313
    "Created: / 07-10-2011 / 13:11:36 / cg"
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1314
! !
a02e4406e10d min max
Claus Gittinger <cg@exept.de>
parents: 615
diff changeset
  1315
1986
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1316
!CollectionTests methodsFor:'tests-sequenceableCollection'!
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1317
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1318
testSequenceableCollection_01_splitByAnyForWhich
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1319
    
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1320
    |aString anArray stringCollection|
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1321
    aString := 'hello:world:isnt:this nice'.
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1322
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1323
    stringCollection := aString splitByAnyForWhich:[ :ch | ch = $: ].
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1324
    self assert:(stringCollection size = 4).
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1325
    self assert:(stringCollection first = 'hello').
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1326
    self assert:(stringCollection last = 'this nice').
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1327
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1328
    aString := 'h1e2l3l4o'.
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1329
    stringCollection := aString splitByAnyForWhich:[ :ch | ch isDigit ].
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1330
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1331
    self assert:(stringCollection size = 5).
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1332
    self assert:(stringCollection first = 'h').
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1333
    self assert:(stringCollection last = 'o').
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1334
    
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1335
    aString := String new.
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1336
    stringCollection do:[ :each | aString := aString, each ].
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1337
    self assert:(aString = 'hello').
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1338
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1339
    anArray := #[1 9 2 8 3 7 4 6 5 5 1 2 9] splitByAnyForWhich:[ :n | n odd ].
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1340
    self assert:(anArray size = 3 ).
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1341
    self assert:((anArray first) size = 2 ).
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1342
    self assert:((anArray last) size = 1 ).
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1343
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1344
    self assert:(((anArray first) first) even).
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1345
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1346
    "
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1347
     self new testSequenceableCollection_01_splitByAnyForWhich 
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1348
    "
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1349
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1350
    "Created: / 29-05-2018 / 12:53:31 / svestkap"
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1351
    "Modified (comment): / 29-05-2018 / 14:04:22 / svestkap"
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1352
    "Modified: / 15-07-2018 / 10:18:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2039
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1353
!
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1354
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1355
testSequenceableCollection_02_asCollectionOfSubCollectionsSeparatedByAnyForWhich
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1356
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1357
    | aString stringCollection |
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1358
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1359
    aString := 'helloWorldHereICome'.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1360
    stringCollection := aString asCollectionOfSubCollectionsSeparatedByAnyForWhich: [ :ch | ch isUppercase ] withSeparatorsIncluded: false.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1361
    self assert: (stringCollection size = 4).    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1362
    self assert: (stringCollection first = 'hello').
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1363
    self assert: ((stringCollection last) size = 3).
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1364
    self assert: (stringCollection last = 'ome').    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1365
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1366
    aString := 'helloWorldHereICome'.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1367
    stringCollection := aString asCollectionOfSubCollectionsSeparatedByAnyForWhich: [ :ch | ch isUppercase ] withSeparatorsIncluded: true.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1368
    self assert: (stringCollection size = 5).    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1369
    self assert: (stringCollection first = 'hello').
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1370
    self assert: ((stringCollection last) first = $C).  
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1371
    self assert: ((stringCollection last) size = 4).  
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1372
    self assert: (stringCollection last = 'Come').    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1373
        
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1374
    aString := '1Tim2Jones3Iva4Tom'.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1375
    stringCollection := aString asCollectionOfSubCollectionsSeparatedByAnyForWhich: [ :ch | ch isDigit ] withSeparatorsIncluded: false.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1376
    self assert: (stringCollection size = 4).    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1377
    self assert: (stringCollection first = 'Tim').
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1378
    self assert: ((stringCollection last) size = 3).
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1379
    self assert: (stringCollection last = 'Tom').      
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1380
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1381
    aString := '1Tim2Jones3Iva4Tom'.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1382
    stringCollection := aString asCollectionOfSubCollectionsSeparatedByAnyForWhich: [ :ch | ch isDigit ] withSeparatorsIncluded: true.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1383
    self assert: (stringCollection size = 4).    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1384
    self assert: (stringCollection first = '1Tim').
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1385
    self assert: ((stringCollection last) first = $4).  
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1386
    self assert: ((stringCollection last) size = 4).  
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1387
    self assert: (stringCollection last = '4Tom').    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1388
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1389
    aString := '9Tim2Jones3Iva8Tom'.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1390
    stringCollection := aString asCollectionOfSubCollectionsSeparatedByAnyForWhich: [ :ch | ch isDigit ] withSeparatorsIncluded: true.   
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1391
    stringCollection := (stringCollection copy) collect:[:eachString | 
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1392
        eachString asCollectionOfSubCollectionsSeparatedByAnyForWhich: [ :ch | ch isUppercase ] withSeparatorsIncluded: true.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1393
    ].    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1394
    stringCollection := (stringCollection copy) flatten.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1395
    self assert: (stringCollection size = 8).   
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1396
    self assert: ((stringCollection first) = '9').
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1397
    self assert: ((stringCollection last) = 'Tom').  
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1398
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1399
    "
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1400
     self new testSequenceableCollection_02_asCollectionOfSubCollectionsSeparatedByAnyForWhich    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1401
    "
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1402
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1403
    "Created: / 29-05-2018 / 14:09:08 / svestkap"
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1404
!
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1405
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1406
testSequenceableCollection_03_splitByAnyForWhich
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1407
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1408
    | aString stringCollection |
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1409
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1410
    aString := 'helloWorldHereICome'.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1411
    stringCollection := aString splitByAnyForWhich: [ :ch | ch isUppercase ] withSeparatorIncluded: false.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1412
    self assert: (stringCollection size = 4).    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1413
    self assert: (stringCollection first = 'hello').
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1414
    self assert: ((stringCollection last) size = 3).
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1415
    self assert: (stringCollection last = 'ome').    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1416
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1417
    aString := 'helloWorldHereICome'.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1418
    stringCollection := aString splitByAnyForWhich: [ :ch | ch isUppercase ] withSeparatorIncluded: true.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1419
    self assert: (stringCollection size = 5).    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1420
    self assert: (stringCollection first = 'hello').
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1421
    self assert: ((stringCollection last) first = $C).  
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1422
    self assert: ((stringCollection last) size = 4).  
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1423
    self assert: (stringCollection last = 'Come').    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1424
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1425
    aString := '1Tim2Jones3Iva4Tom'.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1426
    stringCollection := aString splitByAnyForWhich: [ :ch | ch isDigit ] withSeparatorIncluded: false.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1427
    self assert: (stringCollection size = 4).    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1428
    self assert: (stringCollection first = 'Tim').
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1429
    self assert: ((stringCollection last) size = 3).
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1430
    self assert: (stringCollection last = 'Tom').      
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1431
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1432
    aString := '1Tim2Jones3Iva4Tom'.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1433
    stringCollection := aString splitByAnyForWhich: [ :ch | ch isDigit ] withSeparatorIncluded: true.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1434
    self assert: (stringCollection size = 4).    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1435
    self assert: (stringCollection first = '1Tim').
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1436
    self assert: ((stringCollection last) first = $4).  
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1437
    self assert: ((stringCollection last) size = 4).  
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1438
    self assert: (stringCollection last = '4Tom').    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1439
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1440
    aString := '9Tim2Jones3Iva8Tom'.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1441
    stringCollection := aString splitByAnyForWhich: [ :ch | ch isDigit ] withSeparatorIncluded: true.   
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1442
    stringCollection := (stringCollection copy) collect:[:eachString | 
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1443
        eachString splitByAnyForWhich: [ :ch | ch isUppercase ] withSeparatorIncluded: true.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1444
    ].    
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1445
    stringCollection := (stringCollection copy) flatten.
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1446
    self assert: (stringCollection size = 8).   
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1447
    self assert: ((stringCollection first) = '9').
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1448
    self assert: ((stringCollection last) = 'Tom').  
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1449
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1450
    "
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1451
     self new testSequenceableCollection_03_splitByAnyForWhich
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1452
    "
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1453
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1454
    "Created: / 29-05-2018 / 14:50:13 / svestkap"
74c3ad75b376 Issue #225: Missing a method which would split a string with separator included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1986
diff changeset
  1455
    "Modified: / 13-10-2018 / 09:31:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1986
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1456
! !
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1457
264
674b1ebcf0cf testing isEmpty
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
  1458
!CollectionTests methodsFor:'tests-sorting'!
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1459
1049
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1460
testLargest
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1461
    | col |
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1462
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1463
    col := #(5 16 3 18 17 15 2 12 1 8 14 10 7 11 20 4 19 6 13 9).
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1464
    self assert:(col max == 20).
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1465
    self assert:(col largest:4) asArray = #(17 18 19 20).
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1466
    self assert:(col smallest:4) asArray = #(1 2 3 4).
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1467
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1468
    self assert:(col keysOfLargest:4) asArray = #(5 4 17 15).
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1469
    self assert:(col keysOfSmallest:4) asArray = #(9 7 3 16).
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1470
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1471
    "
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1472
     self basicNew testLargest
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1473
    "
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1474
!
c5c7858fe11e class: RegressionTests::CollectionTests
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
  1475
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1476
testSort01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1477
    | col errs last |
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1478
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1479
    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
  1480
    last := nil.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1481
    errs := col inject: 0 into:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1482
	    [ :totIn :n | |totOut|
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1483
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1484
	    totOut := totIn.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1485
	    last notNil ifTrue: [ last > n ifTrue: [ totOut := totOut + 1 ] ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1486
	    last := n.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1487
	    totOut ].
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1488
    self should: [ errs = 0 ]
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1489
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1490
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1491
     self basicNew testSort01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1492
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1493
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1494
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1495
testSortStability01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1496
    "Verify that the sort is stable"
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1497
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1498
    | testData col lastTestData errs |
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1499
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1500
    testData := OrderedCollection new.
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1501
    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
  1502
    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
  1503
    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
  1504
    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
  1505
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1506
    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
  1507
    col addAll: testData.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1508
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1509
    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
  1510
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1511
    lastTestData := nil.
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1512
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1513
    errs := col inject: 0 into:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1514
	    [ :totIn :aSortTestData | |totOut|
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1515
	    totOut := totIn.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1516
	    lastTestData notNil ifTrue:
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1517
		    [ lastTestData value = aSortTestData value ifTrue:
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1518
			    [ lastTestData order > aSortTestData order ifTrue: [ totOut := totOut + 1 ] ] ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1519
	    lastTestData := aSortTestData.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1520
	    totOut ].
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1521
    self should: [ errs = 0 ]
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1522
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1523
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1524
     self basicNew testSortStability01
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1525
    "
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1526
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1527
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1528
testSortStability02
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1529
    "Verify that the sort is stable"
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1530
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1531
    | testData col lastTestData errs |
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1532
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1533
    testData := OrderedCollection new.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1534
    (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
  1535
    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
  1536
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1537
    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
  1538
    col addAll: testData.
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1539
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1540
    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
  1541
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1542
    lastTestData := nil.
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1543
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1544
    errs := col inject: 0 into:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1545
	    [ :totIn :aSortTestData | |totOut|
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1546
	    totOut := totIn.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1547
	    lastTestData notNil ifTrue:
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1548
		    [ lastTestData value = aSortTestData value ifTrue:
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1549
			    [ lastTestData order > aSortTestData order ifTrue: [ totOut := totOut + 1 ] ] ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1550
	    lastTestData := aSortTestData.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1551
	    totOut ].
656
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1552
    self should: [ errs = 0 ]
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1553
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1554
"
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1555
 self basicNew testSortStability02
470e994fc84b Fix stability tests (they didn't work after being fixed).
Stefan Vogel <sv@exept.de>
parents: 655
diff changeset
  1556
"
1282
e64a9d280572 class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1280
diff changeset
  1557
!
e64a9d280572 class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1280
diff changeset
  1558
e64a9d280572 class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1280
diff changeset
  1559
testSortedCollectionQueries
e64a9d280572 class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1280
diff changeset
  1560
    "test a SortedCollection, where only a single attribute is used for sorting.
e64a9d280572 class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1280
diff changeset
  1561
     #include: failed before 2015-06-24"
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1562
1282
e64a9d280572 class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1280
diff changeset
  1563
    |collection|
e64a9d280572 class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1280
diff changeset
  1564
e64a9d280572 class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1280
diff changeset
  1565
    collection := SortedCollection sortBlock:[:a :b | a key < b key ].
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1566
    $a to:$z do:[:l |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1567
	1 to:100 do:[:i |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1568
	    collection add:(Association key:l value:i)
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1569
	].
1282
e64a9d280572 class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1280
diff changeset
  1570
    ].
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1571
1282
e64a9d280572 class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1280
diff changeset
  1572
    "/ make startIndex > 1 and endIndex < size
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1573
1282
e64a9d280572 class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 1280
diff changeset
  1574
    collection
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1575
	removeFirst;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1576
	removeLast.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1577
    collection
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1578
	keysAndValuesDo:[:eachIndex :eachElement |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1579
	    self assert:(collection detect:[:el | el = eachElement ]) notNil.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1580
	    self assert:(collection includes:eachElement).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1581
	    self assert:(collection indexOf:eachElement) = eachIndex.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1582
	    self assert:(collection occurrencesOf:eachElement) = 1.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1583
	    self
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1584
		assert:(collection
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1585
			includes:(eachElement copy value:(eachElement value + 1000))) not.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1586
	].
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1587
! !
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1588
293
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1589
!CollectionTests methodsFor:'tests-squeak'!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1590
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1591
testIfEmptyifNotEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1592
	self assert: (empty ifEmpty: [true] ifNotEmpty: [false]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1593
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [true]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1594
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [:s | s first = #x])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1595
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1596
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1597
testIfEmptyifNotEmptyDo
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1598
	self assert: (empty ifEmpty: [true] ifNotEmptyDo: [:s | false]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1599
	self assert: (nonEmpty ifEmpty: [false] ifNotEmptyDo: [:s | s first = #x])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1600
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1601
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1602
testIfNotEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1603
	empty ifNotEmpty: [self assert: false].
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1604
	self assert: (nonEmpty ifNotEmpty: [self]) == self.
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1605
	self assert: (nonEmpty ifNotEmpty: [:s | s first]) = #x
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1606
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1607
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1608
testIfNotEmptyDo
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1609
	empty ifNotEmptyDo: [:s | self assert: false].
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1610
	self assert: (nonEmpty ifNotEmptyDo: [:s | s first]) = #x
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1611
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1612
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1613
testIfNotEmptyDoifNotEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1614
	self assert: (empty ifNotEmptyDo: [:s | false] ifEmpty: [true]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1615
	self assert: (nonEmpty ifNotEmptyDo: [:s | s first = #x] ifEmpty: [false])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1616
!
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1617
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1618
testIfNotEmptyifEmpty
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1619
	self assert: (empty ifEmpty: [true] ifNotEmpty: [false]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1620
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [true]).
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1621
	self assert: (nonEmpty ifEmpty: [false] ifNotEmpty: [:s | s first = #x])
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1622
! !
eb142b88180a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1623
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1624
!CollectionTests::SortTestData methodsFor:'accessing'!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1625
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1626
value
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1627
	"Answer the value of the receiver's ''value'' instance variable."
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1628
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1629
	^value
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1630
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1631
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1632
value: anObject
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1633
	"Set the value of the receiver's ''value'' instance variable to the argument, anObject."
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1634
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1635
	value := anObject
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1636
! !
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1637
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1638
!CollectionTests::SortTestData methodsFor:'order'!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1639
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1640
order
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1641
	"Answer the value of the receiver's ''order'' instance variable."
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1642
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1643
	^order
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1644
!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1645
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1646
order: anObject
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1647
	"Set the value of the receiver's ''order'' instance variable to the argument, anObject."
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1648
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1649
	order := anObject
212
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1650
! !
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1651
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1652
!CollectionTests::SortTestData methodsFor:'printing & storing'!
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1653
e9fd35632b04 added test if sort is stable
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
  1654
printOn: aStream
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1655
	super printOn: aStream.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1656
	aStream
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1657
		nextPutAll: '(value: ';
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1658
		nextPutAll: value printString;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1659
		nextPutAll: ' order: ';
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1660
		nextPutAll: order printString;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1424
diff changeset
  1661
		nextPut: $)
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1662
! !
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1663
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1664
!CollectionTests class methodsFor:'documentation'!
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1665
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1666
version
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1667
    ^ '$Header$'
640
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1668
!
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1669
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1670
version_CVS
331d32a33bcf changed: #test_min_max
Claus Gittinger <cg@exept.de>
parents: 639
diff changeset
  1671
    ^ '$Header$'
1986
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1672
!
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1673
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1674
version_HG
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1675
3408db0c1c35 Issue #224: Missing method implementation - splitByAnyForWhich:aBlock
Patrik Svestka <patrik.svestka@gmail.com>
parents: 1500
diff changeset
  1676
    ^ '$Changeset: <not expanded> $'
115
b0ab0ca5b3d5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1677
! !
757
2d776bef407b class: RegressionTests::CollectionTests
Stefan Vogel <sv@exept.de>
parents: 677
diff changeset
  1678