RegressionTests__SmallDictionaryTest.st
author Claus Gittinger <cg@exept.de>
Tue, 25 Feb 2020 17:19:49 +0100
changeset 2586 7dc7be5a6f3d
parent 2344 ff4003b0dbd0
permissions -rw-r--r--
#OTHER by cg s
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2344
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#SmallDictionaryTest
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:'dictionaryClass'
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'tests-Regression-Collections'
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!SmallDictionaryTest class methodsFor:'queries'!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
coveredClassNames
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    ^ #( SmallDictionary )
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
! !
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!SmallDictionaryTest methodsFor:'initialize / release'!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
setUp
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
    dictionaryClass := SmallDictionary.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
    "Created: / 14-09-2018 / 16:38:30 / Stefan Vogel"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
! !
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
!SmallDictionaryTest methodsFor:'testing'!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
test01_AddAll
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
        "(self run: #testAddAll)"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
        | dict1 dict2 |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
        dict1 := dictionaryClass new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
        self assert:(dict1 isEmpty).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
        self assert:(dict1 size == 0).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
        dict1 at: #a put:1 ; at: #b put: 2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
        dict2 := dictionaryClass new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
        dict2 at: #a put: 3 ; at: #c put: 4.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
        dict1 addAll: dict2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
        self assert: (dict1 at: #a) = 3.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
        self assert: (dict1 at: #b) = 2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
        self assert: (dict1 at: #c) = 4.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    "Modified: / 14-09-2018 / 16:38:54 / Stefan Vogel"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
test02_AssociationsSelect
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
        "(self selector: #testAssociationsSelect) run"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
        | answer d|
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
        d := dictionaryClass new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
        d at: (Array with: #hello with: #world) put: #fooBar.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
        d at: Smalltalk put: #'Smalltalk is the key'.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
        d at: #Smalltalk put: Smalltalk.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
        answer := d associationsSelect:
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
                [:assoc | (assoc key == #Smalltalk) and: [assoc value == Smalltalk]].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
        self should: [answer isKindOf: dictionaryClass].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
        self should: [answer size == 1].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
        self should: [(answer at: #Smalltalk) == Smalltalk].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
        answer := d associationsSelect:
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
                [:assoc | (assoc key == #NoSuchKey) and: [assoc value == #NoSuchValue]].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
        self should: [answer isKindOf: dictionaryClass].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
        self should: [answer size == 0]
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    "Modified: / 14-09-2018 / 16:39:05 / Stefan Vogel"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
test03_Comma
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
        "(self run: #testComma)"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
        | dict1 dict2 dict3 |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
        dict1 := dictionaryClass new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
        dict1 at: #a put:1 ; at: #b put: 2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
        dict2 := dictionaryClass new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
        dict2 at: #a put: 3 ; at: #c put: 4.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
        dict3 := dict1, dict2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
        self assert: (dict3 at: #a) = 3.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
        self assert: (dict3 at: #b) = 2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
        self assert: (dict3 at: #c) = 4.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    "Modified: / 14-09-2018 / 16:39:14 / Stefan Vogel"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
test04_IncludesAssociation
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
        "self debug: #testIncludesAssociation"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
        | d |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
        d := dictionaryClass new
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
                at: #five put: 5;
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
                at: #givemefive put: 5;
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
                at: #six put: 6;
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
                yourself.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
        self assert: (d includesAssociation: (d associationAt: #five)).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
        self assert: (d associationAt: #five) key == #five.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
        self assert: (d associationAt: #five) value == 5.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
        self assert: (d includesAssociation: (#five -> 5)).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
        self assert: (d includesAssociation: (#five -> 6)) not.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    "Modified: / 06-12-2016 / 14:19:15 / cg"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    "Modified: / 14-09-2018 / 16:39:21 / Stefan Vogel"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
test05_RemoveAllDeclareAll
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    "self debug: #testRemoveAllDeclareAll"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
    "/ verifies that we can restore a dictionaries original contents
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    "/ by making a copy of it, then redeclaring from the copy.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
    "/ (needed by the refactorybrowser)
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
    
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
    | d copyOfIt |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
    d := dictionaryClass new
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
            at: #five put: (5@5);
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
            at: #givemefive put: (55@55);
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
            at: #six put: (6@6);
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
            yourself.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
    copyOfIt := d copy.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
    d keysAndValuesDo:[:k :v |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
        self assert: (copyOfIt at:k) == v.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
    ].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
    "/ add something
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
    d at:#seven put:(7@7).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
    "/ removeall - redeclare
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
    d removeAll; declareAllFrom:copyOfIt.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
    self assert: (d size = copyOfIt size).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
    self assert: (d keys = copyOfIt keys).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    d keysAndValuesDo:[:k :v |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
        self assert: (copyOfIt at:k) == v.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
    ].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
    "Created: / 06-02-2017 / 12:26:22 / cg"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
    "Modified: / 14-09-2018 / 16:39:28 / Stefan Vogel"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
test06_AddRemove
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
    "self debug: #testRemoveAllDeclareAll"
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
    "/ verifies that we can restore a dictionaries original contents
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
    "/ by making a copy of it, then redeclaring from the copy.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
    "/ (needed by the refactorybrowser)
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
    
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
    | d a |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
    
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
    d := dictionaryClass new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
    d at:'a' put:1.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    self assert:(d includesKey:'a').
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    self assert:d size == 1.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
    self assert:(d instVarNamed:'tally') == 1.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    d at:'b' put:2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    self assert:(d includesKey:'a').
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
    self assert:(d includesKey:'b').
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    self assert:d size == 2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
    self assert:(d instVarNamed:'tally') == 2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    d at:'c' put:3.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    self assert:(d includesKey:'a').
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    self assert:(d includesKey:'b').
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
    self assert:(d includesKey:'c').
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
    self assert:(d at:'a') == 1.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
    self assert:(d at:'b') == 2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
    self assert:(d at:'c') == 3.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
    self assert:d size == 3.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
    self assert:(d instVarNamed:'tally') == 3.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
    self assert:(d order = #('a' 'b' 'c')).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
    d removeKey:'b'.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
    self assert:(d includesKey:'a').
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
    self assert:(d includesKey:'b') not.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
    self assert:(d includesKey:'c').
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
    self assert:(d at:'a') == 1.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
    self assert:(d at:'b' ifAbsent:nil) isNil.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
    self assert:(d at:'c') == 3.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
    self assert:d size == 2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
    self assert:(d instVarNamed:'tally') == 2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
    a := (d instVarNamed:'keysAndValues').
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
    self assert:(a = #('a' 1 'c' 3 nil nil nil nil)).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    self assert:(d order = #('a' 'c')).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
test07_AddAssoc
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
    | d |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
    d := dictionaryClass new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
    d add:('a' -> 1).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    d add:('b' -> 2).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
    d add:('c' -> 3).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    d at:'c' put:3.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
    self assert:(d includesKey:'a').
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
    self assert:(d includesKey:'b').
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
    self assert:(d includesKey:'c').
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
    self assert:(d at:'a') == 1.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
    self assert:(d at:'b') == 2.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
    self assert:(d at:'c') == 3.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
    self assert:d size == 3.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
    self assert:(d order = #('a' 'b' 'c')).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
test08_Do
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    | d coll |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
    
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
    d := dictionaryClass new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
    d add:('a' -> 1).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
    d add:('b' -> 2).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
    d add:('c' -> 3).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
    coll := OrderedCollection new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
    d do:[:each |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
        coll add:each
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
    ].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
    self assert:(coll sameContentsAs:#(1 2 3)).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
    d removeKey:'a'.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
    coll := OrderedCollection new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
    d do:[:each |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
        coll add:each
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
    ].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
    self assert:(coll sameContentsAs:#(2 3)).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
test08_KeysAndValuesDo
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
    | d coll |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
    
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
    d := dictionaryClass new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
    d add:('a' -> 1).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
    d add:('b' -> 2).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
    d add:('c' -> 3).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
    coll := OrderedCollection new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
    d keysAndValuesDo:[:eachKey :eachValue |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
        coll add:eachKey.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
        coll add:eachValue.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
    ].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
    self assert:(coll sameContentsAs:#('a' 1 'b' 2 'c' 3)).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
    d removeKey:'a'.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
    coll := OrderedCollection new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
    d keysAndValuesDo:[:eachKey :eachValue |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
        coll add:eachKey.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
        coll add:eachValue.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
    ].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
    self assert:(coll sameContentsAs:#('b' 2 'c' 3)).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
test08_KeysDo
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
    | d coll |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
    
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
    d := dictionaryClass new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
    d add:('a' -> 1).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
    d add:('b' -> 2).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
    d add:('c' -> 3).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
    coll := OrderedCollection new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
    d keysDo:[:eachKey |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
        coll add:eachKey.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
    ].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
    self assert:(coll sameContentsAs:#('a'  'b'  'c' )).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
    d removeKey:'a'.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
    coll := OrderedCollection new.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
    d keysDo:[:eachKey |
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
        coll add:eachKey.
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
    ].
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
    self assert:(coll sameContentsAs:#('b'  'c' )).
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
! !
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
!SmallDictionaryTest class methodsFor:'documentation'!
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
version_CVS
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
    ^ '$Header$'
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
! !
ff4003b0dbd0 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286