RegressionTests__LinkedListTest.st
author Stefan Vogel <sv@exept.de>
Tue, 11 Jun 2019 10:34:41 +0200
changeset 2321 32ea6329f5ad
parent 1447 2351db93aa5b
child 1500 d406a10b2965
permissions -rw-r--r--
class: stx_goodies_regression class changed: #classNamesAndAttributes make classes autoloaded that stc cannot compile (yet)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1434
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
1434
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#LinkedListTest
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'tests-Regression-Collections'
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!LinkedListTest methodsFor:'Testing'!
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
testBasic1
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
    |l|
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
    l := LinkedList new.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
    self assert:l isEmpty.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    self assert:l size == 0.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
    self assert:l notEmpty not.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
    l add:1.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    self assert:l notEmpty.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
    self assert:l size == 1.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
    self assert:l isEmpty not.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
    l add:2.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
    self assert:l size == 2.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1434
diff changeset
    31
1434
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
    "
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1434
diff changeset
    33
     self new testBasic1
1434
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
    "
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
testIndexOf
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
    "value comparing (used to work with links only, in previous versions; now works with values also)"
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1434
diff changeset
    39
1434
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    |l one two three four five|
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    one := 'one'.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    two := 'two'.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    three := 'three'.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    four := 'four'.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    five := 'five'.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    l := LinkedList new.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    l add:one.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    l add:two.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    l add:three.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    l add:four.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1434
diff changeset
    53
1434
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    self assert:l notEmpty.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    self assert:l size == 4.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    self assert:(l indexOf:one copy) == 1.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    self assert:(l indexOf:two copy) == 2.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    self assert:(l indexOf:three copy) == 3.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    self assert:(l indexOf:four copy) == 4.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    self assert:(l indexOf:five copy) == 0.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    self assert:(l identityIndexOf:one) == 1.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    self assert:(l identityIndexOf:two) == 2.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    self assert:(l identityIndexOf:three) == 3.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    self assert:(l identityIndexOf:four) == 4.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    self assert:(l identityIndexOf:five) == 0.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1434
diff changeset
    68
1434
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    self assert:(l identityIndexOf:one copy) == 0.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    self assert:(l identityIndexOf:two copy) == 0.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    self assert:(l identityIndexOf:three copy) == 0.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    self assert:(l identityIndexOf:four copy) == 0.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    "
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1434
diff changeset
    75
     self new testBasic1
1434
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    "
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
!
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
testRemove
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    "removing (used to work with links only, in previous versions; now works with values also)"
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1434
diff changeset
    81
1434
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    |l one two three four five e1 e2|
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    one := 'one'.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    two := 'two'.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    three := 'three'.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    four := 'four'.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    five := 'five'.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    l := LinkedList new.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    l add:one.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    l add:two.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    l add:three.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
    l add:four.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1434
diff changeset
    95
1434
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    self assert:l notEmpty.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
    self assert:l size == 4.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    e1 := l remove:'one'.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    self assert:l size == 3.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    self assert:e1 = 'one'.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1434
diff changeset
   102
1434
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
    e2 := l remove:'one' ifAbsent:nil.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    self assert:e2 isNil.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
    self assert:l size == 3.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1434
diff changeset
   106
1434
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    e1 := l removeIdentical:two.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    self assert:l size == 2.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
    self assert:e1 = 'two'.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    self assert:e1 == two.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    e2 := l removeIdentical:'three' copy ifAbsent:nil.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
    self assert:e2 isNil.
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
    "
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1434
diff changeset
   116
     self new testRemove
1434
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
    "
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
! !
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
!LinkedListTest class methodsFor:'documentation'!
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
version
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
    ^ '$Header$'
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
!
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
version_CVS
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
    ^ '$Header$'
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
! !
886a1f0281e3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129