RegressionTests__DictionaryTest.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 30 Jun 2016 09:02:08 +0100
branchjv
changeset 1500 d406a10b2965
parent 1499 26a16a04219b
parent 1447 2351db93aa5b
child 1544 657989d600f7
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1055
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
296
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#DictionaryTest
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
1055
0d0b2641d00b category
Claus Gittinger <cg@exept.de>
parents: 296
diff changeset
     9
	category:'tests-Regression-Collections'
296
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!DictionaryTest methodsFor:'testing'!
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
testAddAll
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	"(self run: #testAddAll)"
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1055
diff changeset
    17
296
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	| dict1 dict2 |
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	dict1 := Dictionary new.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1055
diff changeset
    20
	dict1 at: #a put:1 ; at: #b put: 2.
296
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	dict2 := Dictionary new.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	dict2 at: #a put: 3 ; at: #c put: 4.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	dict1 addAll: dict2.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	self assert: (dict1 at: #a) = 3.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	self assert: (dict1 at: #b) = 2.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	self assert: (dict1 at: #c) = 4.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
!
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
testAssociationsSelect
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	"(self selector: #testAssociationsSelect) run"
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	| answer d|
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
	d _ Dictionary new.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
	d at: (Array with: #hello with: #world) put: #fooBar.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
	d at: Smalltalk put: #'Smalltalk is the key'.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
	d at: #Smalltalk put: Smalltalk.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	answer _ d associationsSelect:
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
		[:assoc | (assoc key == #Smalltalk) and: [assoc value == Smalltalk]].
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
	self should: [answer isKindOf: Dictionary].
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	self should: [answer size == 1].
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
	self should: [(answer at: #Smalltalk) == Smalltalk].
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	answer _ d associationsSelect:
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
		[:assoc | (assoc key == #NoSuchKey) and: [assoc value == #NoSuchValue]].
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
	self should: [answer isKindOf: Dictionary].
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
	self should: [answer size == 0]
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
!
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
testComma
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
	"(self run: #testComma)"
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1055
diff changeset
    54
296
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
	| dict1 dict2 dict3 |
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	dict1 := Dictionary new.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1055
diff changeset
    57
	dict1 at: #a put:1 ; at: #b put: 2.
296
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
	dict2 := Dictionary new.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
	dict2 at: #a put: 3 ; at: #c put: 4.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
	dict3 := dict1, dict2.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	self assert: (dict3 at: #a) = 3.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	self assert: (dict3 at: #b) = 2.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
	self assert: (dict3 at: #c) = 4.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
testIncludesAssociation
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
	"self debug: #testIncludesAssociation"
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
	| d |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1055
diff changeset
    70
	d := Dictionary new
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1055
diff changeset
    71
		at: #five put: 5;
296
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
		at: #givemefive put: 5;
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
		at: #six put: 6;
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
		yourself.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1055
diff changeset
    75
296
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	self assert: (d includesAssociation: (d associationAt: #five)).
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
	self assert: (d includesAssociation: (#five -> 5)).
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
	self assert: (d includesAssociation: (#five -> 6)) not.
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
! !
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
!DictionaryTest class methodsFor:'documentation'!
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
version
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    ^ '$Header$'
ddacf68f6660 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
! !
1055
0d0b2641d00b category
Claus Gittinger <cg@exept.de>
parents: 296
diff changeset
    86