RegressionTests__CECollectionExtensionTest.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 18 Jun 2021 17:01:51 +0100
branchjv
changeset 2598 5e6256e136d4
parent 1974 f2eaf05205d6
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:
1974
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
     1
"
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
     2
 COPYRIGHT (c) Claus Gittinger / eXept Software AG
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
     3
 COPYRIGHT (c) 2017 Jan Vrany
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
     4
              All Rights Reserved
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
     5
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
     6
 This software is furnished under a license and may be used
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
     7
 only in accordance with the terms of that license and with the
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
     8
 inclusion of the above copyright notice.   This software may not
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
     9
 be provided or otherwise made available to, or used by, any
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    10
 other person.  No title to or ownership of the software is
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    11
 hereby transferred.
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    12
"
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1062
diff changeset
    13
"{ Package: 'stx:goodies/regression' }"
1062
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
"{ NameSpace: RegressionTests }"
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
TestCase subclass:#CECollectionExtensionTest
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	instanceVariableNames:''
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	classVariableNames:''
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	poolDictionaries:''
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	category:'tests-Regression-CollectionExtensions'
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
1974
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    24
!CECollectionExtensionTest class methodsFor:'documentation'!
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    25
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    26
copyright
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    27
"
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    28
 COPYRIGHT (c) Claus Gittinger / eXept Software AG
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    29
 COPYRIGHT (c) 2017 Jan Vrany
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    30
              All Rights Reserved
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    31
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    32
 This software is furnished under a license and may be used
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    33
 only in accordance with the terms of that license and with the
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    35
 be provided or otherwise made available to, or used by, any
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    36
 other person.  No title to or ownership of the software is
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    37
 hereby transferred.
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    38
"
f2eaf05205d6 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1567
diff changeset
    39
! !
1062
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
!CECollectionExtensionTest methodsFor:'as yet unclassified'!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
testDetectIfOne
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
	| element result |
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
	result := #(1 2 3) detect: [:each | each = 2] ifOne: [:theOne | element := theOne ].
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	self assert: element = 2.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	self assert: result = 2.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
	element := nil.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
	result := #(1 2 3) detect: [:each | each = 4] ifOne: [:theOne | element := theOne ].
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
	self assert: element isNil.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
	self assert: result isNil.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
testDetectIfOneIfNone
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	| element |
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
	#(1 2 3) detect: [:each | each = 2] ifOne: [:theOne | element := theOne ] ifNone: [element := nil].
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
	self assert: element = 2.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
	#(1 2 3) detect: [:each | each = 4] ifOne: [:theOne | element := theOne ] ifNone: [element := nil].
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	self assert: element isNil.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
! !
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!CECollectionExtensionTest methodsFor:'collect as set'!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
testCollectAsSet
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
	"self debug: #testCollectAsSet"
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
	self assert: ((#() collectAsSet: [:each | each odd]) = Set new).
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
	self assert: (#(1 2 3 4 5 6) collectAsSet: [:each | each odd])
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
					 = (Set with: true with: false).
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
	self assert: (#(1 3 5 7 9 11) collectAsSet: [:each | each odd]) 
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
					= (Set with: true).
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
					
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
	self assert: (#(1 2 3 4 5 4 3 2 1) collectAsSet: [:each | each]) = (1 to: 5) asSet.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
testCollectAsSetUsingSymbol
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
	"self debug: #testCollectAsSetUsingSymbol"
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
	self assert: ((#() collectAsSet: #odd) = Set new).
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
	self assert: (#(1 2 3 4 5 6) collectAsSet: #odd)
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
					 = (Set with: true with: false).
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
	self assert: (#(1 3 5 7 9 11) collectAsSet: #odd) 
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
					= (Set with: true).
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
! !
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
!CECollectionExtensionTest methodsFor:'flat collect'!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
testFlatCollect
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
	"self debug: #testFlatCollect"
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
testFlatCollectArray
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
	"self debug: #testFlatCollectArray"
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
	self assert: ((#((1 2) (3 4) (5 3)) flatCollect: [ :each | each ]) = #(1 2 3 4 5 3)).
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
	self assert: ((#((1 2) (2 3) (1 3 4)) flatCollect: [:each | each]) = #(1 2 2 3 1 3 4)). 	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
		
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
	self assert: ((#((1 2) (2 3) () ()) flatCollect: [:each | each]) = #(1 2 2 3)). 
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
	self assert: ((#((1 2) (2 3) (1 3 4)) flatCollect: [:each| Array with: each])
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
					=  #(#(1 2) #(2 3) #(1 3 4))).
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
					
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
	self assert: ((#((1 2) (2 3) (1 3 4)) flatCollect: [:each| Set with: each])
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
					=  #(#(1 2) #(2 3) #(1 3 4))).	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
! !
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
!CECollectionExtensionTest methodsFor:'flatten'!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
testDeepFlatten
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
	self assert: #(1 2 3)
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
		equals: #((1) (2) (3)) deepFlatten.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
	self assert: #(1 2 3 1 2)
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
		equals: #((1 2) (3 1 2)) deepFlatten.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
testDeepFlattenIsRecursive
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
	self assert: #(1 2 4 5 3)
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
		equals: #((1 2) ((4 5) 3)) deepFlatten.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
testDeepFlattenOnFlatCollection
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
	self assert: #(1 2 4)
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
		equals: #(1 2 4) deepFlatten.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
	self assert: #(5 3)
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
		equals: #(5 ((3))) deepFlatten.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
testDeepFlattenOnString
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
	"don't flatten strings"
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
	self assert: #(a b c d e)
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
		equals: #((a b) ((c d) e)) deepFlatten.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
	self assert: #('foo' 'bar' 'zorg')
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
		equals: #(('foo' ('bar')) 'zorg') deepFlatten
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
testFlatten
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
	self assert: #(1 2 3)
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
		equals: #((1) (2) (3)) flatten.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
	self assert: #(1 2 3 1 2)
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
		equals: #((1 2) (3 1 2)) flatten.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
	self assert: #(a b (c d))
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
		equals: #((a b) ((c d))) flatten.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
	self should: [ #((1 2) 3) flatten ] raise: Error.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
! !
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
!CECollectionExtensionTest methodsFor:'groupedBy'!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
testGroupedBy
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
	"self debug: #testGroupedBy"
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
	| res |
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
	res := #(1 2 3 4 5) asOrderedCollection 
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
				groupedBy: [:each | each odd].
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
	self assert:   (res at: true) = #(1 3 5) asOrderedCollection.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
	self assert: (res at: false) = #(2 4) asOrderedCollection
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
testGroupedByArray
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
	"self debug: #testGroupedByArray"
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
	| res |
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
	res := #(1 2 3 4 5) groupedBy: [:each | each odd].
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
	self assert:   (res at: true) = #(1 3 5).
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
	self assert: (res at: false) = #(2 4)
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
testGroupedBySet
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
	"self debug: #testGroupedBySet"
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
	| res |
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
	res := #(1 2 3 4 5 3 4 5) asSet groupedBy: [:each | each odd].
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
	self assert: (res at: true) = #(1 3 5) asSet.
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
	self assert: (res at: false) = #(2 4) asSet
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
! !
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
!CECollectionExtensionTest methodsFor:'symbol - value'!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
testSymbolInPlaceOfBlock
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
	"self debug: #testSymbolInPlaceOfBlock"
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
	
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
	self assert: (#(1 2 3 4) collect: #odd) =  #(true false true false).
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
	self assert: (#(1 2 3 4) select: #odd) =  #(1 3).
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
! !
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
!CECollectionExtensionTest class methodsFor:'documentation'!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
version
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    ^ '$Header$'
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
!
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
version_CVS
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
    ^ '$Header$'
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
! !
da1701a08aa2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206