RegressionTests__SortTests.st
author sr
Wed, 15 Nov 2017 16:41:47 +0100
changeset 1890 9367c7639c2d
parent 1447 2351db93aa5b
child 1500 d406a10b2965
permissions -rw-r--r--
removed not existing Class from project definition
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1076
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
562
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
     2
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
     4
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
     5
TestCase subclass:#SortTests
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
1076
46d4448d98e0 category
Claus Gittinger <cg@exept.de>
parents: 562
diff changeset
     9
	category:'tests-Regression-Collections'
562
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    10
!
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    11
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    12
!SortTests class methodsFor:'documentation'!
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    13
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    14
documentation
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    15
"
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    16
    documentation to be added.
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    17
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    18
    [author:]
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1076
diff changeset
    19
	mb (mb@sixtyfour)
562
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    20
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    21
    [instance variables:]
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    22
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    23
    [class variables:]
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    24
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    25
    [see also:]
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    26
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    27
"
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    28
! !
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    29
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    30
!SortTests methodsFor:'helpers'!
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    31
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    32
checkSort:data
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    33
     |mergeSorted quickSorted definitivelySorted|
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    34
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    35
     definitivelySorted := self goodSort:(data copy).
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    36
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    37
     mergeSorted := data copy mergeSort.
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    38
     self assert:(mergeSorted isSorted).
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    39
     self assert:(mergeSorted = definitivelySorted).
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    40
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1076
diff changeset
    41
     quickSorted := data copy quickSort.
562
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    42
     self assert:(quickSorted isSorted).
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    43
     self assert:(quickSorted = definitivelySorted).
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    44
!
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    45
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    46
goodSort:data
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    47
     |tree|
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    48
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    49
     tree := BinaryTree withAll:data.
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    50
     ^ tree asArray
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    51
! !
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    52
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    53
!SortTests methodsFor:'tests'!
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    54
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    55
test01_smallArrays
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    56
     self checkSort: #(1 16 7 98 3 19 4 0).
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    57
     self checkSort: #(1 16 7 98 9 3 19 4 0).
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    58
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    59
     self checkSort: #(1 16 7 98 7 1 3 19 4 0).
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    60
     self checkSort: #(1 16 7 98 7 1 3 19 4 0).
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    61
!
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    62
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    63
test02_largeArrays
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    64
     |data|
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    65
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    66
     data := (1 to:22581) collect:[:i | Random nextInteger] as:Array.
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    67
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    68
     self checkSort: data.
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    69
! !
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    70
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    71
!SortTests class methodsFor:'documentation'!
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    72
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    73
version_CVS
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    74
    ^ '$Header$'
85de4d57f575 initial checkin
Michael Beyl <mb@exept.de>
parents:
diff changeset
    75
! !
1076
46d4448d98e0 category
Claus Gittinger <cg@exept.de>
parents: 562
diff changeset
    76