RegressionTests__TSTreeTests.st
author Claus Gittinger <cg@exept.de>
Tue, 25 Feb 2020 17:19:49 +0100
changeset 2586 7dc7be5a6f3d
parent 2366 6db83dbb1dbe
permissions -rw-r--r--
#OTHER by cg s
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1124
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
1124
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
TestCase subclass:#TSTreeTests
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'tree empty'
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'tests-Regression-Collections'
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
2366
6db83dbb1dbe #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
    13
!TSTreeTests methodsFor:'initialize / release'!
6db83dbb1dbe #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
    14
6db83dbb1dbe #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
    15
setUp
6db83dbb1dbe #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
    16
    tree := self tstreeClass new.
6db83dbb1dbe #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
    17
    self words shuffled do:[:ea |
6db83dbb1dbe #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
    18
	tree at:ea put:ea asUppercase
6db83dbb1dbe #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
    19
    ].
6db83dbb1dbe #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
    20
    empty := self tstreeClass new.
6db83dbb1dbe #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
    21
! !
6db83dbb1dbe #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
    22
6db83dbb1dbe #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
    23
!TSTreeTests methodsFor:'tests'!
1124
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
testAt
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	self assert: (tree at: 'abear') = 'ABEAR'.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	self assert: (tree at: 'abelmosk') = 'ABELMOSK'.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
	self assert: (tree at: 'abracadabra' ifAbsent: [42]) = 42.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
	self assert: (tree at: '' ifAbsent: [42]) = 42.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1124
diff changeset
    30
	self assert: (empty at: 'foo' ifAbsent: [42]) = 42
1124
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
!
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
testMatch
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
	self assert: (tree matchesForString: 'abea' distance: 1) asSet = #(ABEAM ABEAR ABED ABEL ABET ABE) asSet.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
	self assert: (tree matchesForString: 'abel' distance: 2) asSet = #(ABELIA ABEAM ABEAR) asSet.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
	self assert: (tree matchesForString: 'abel' distance: 0) = #(ABEL).
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
	self assert: (tree matchesForString: '' distance: 1) = #().
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
	self assert: (empty matchesForString: 'foo' distance: 0) = #()
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
!
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
testPrefix
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
	self assert: (tree matchesForPrefix: 'abet') asSet = #(ABET ABETMENT) asSet.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
	self assert: (tree matchesForPrefix: 'abelm') asSet = #(ABELMOSCHUS ABELMOSK) asSet.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
	self assert: (tree matchesForPrefix: '') asSet = (self words asSet collect: [:ea | ea asUppercase]).
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
	self assert: (empty matchesForPrefix: 'foo') = #()
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
!
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
testRemove
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
	self assert: (tree at: 'abel') = 'ABEL'.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
	self assert: (tree removeKey: 'abel') = 'ABEL'.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
	self assert: (tree at: 'abel' ifAbsent: [42]) = 42.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
	self assert: (tree at: 'abelmosk') = 'ABELMOSK'.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
	self assert: (tree removeKey: 'foo' ifAbsent: [42]) = 42.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
	self assert: (tree removeKey: 'abel' ifAbsent: [42]) = 42.
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
!
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
testValues
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
	self assert: tree values asSet = (self words asSet collect: [:ea | ea asUppercase]).
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
	self assert: empty values isEmpty
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
!
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
tstreeClass
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    ^ TSTree
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
!
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
words
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
	^ #(
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
abe
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
abeam
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
abear
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
abearance
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
abecedarian
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
abecedarium
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
abecedary
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
abed
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
abeigh
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
abel
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
abele
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
abelia
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
abelian
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
abelicea
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
abelite
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
abelite
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
abelmoschus
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
abelmosk
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
abelonian
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
abeltree
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
abencerrages
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
abenteric
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
abepithymia
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
aberdeen
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
aberdevine
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
aberdonian
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
aberia
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
aberrance
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
aberrancy
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
aberrant
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
aberrate
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
aberration
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
aberrational
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
aberrator
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
aberrometer
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
aberroscope
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
aberuncator
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
abet
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1124
diff changeset
   106
abetment)
1124
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
! !
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
!TSTreeTests class methodsFor:'documentation'!
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
version
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
    ^ '$Header$'
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
!
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
version_CVS
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
    ^ '$Header$'
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
! !
35cb86d34adf initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118