RegressionTests__SegmentedOrderedCollectionTests.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 1447 2351db93aa5b
child 1500 d406a10b2965
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#SegmentedOrderedCollectionTests
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
1058
4a0640ab33e8 category
Claus Gittinger <cg@exept.de>
parents: 845
diff changeset
     9
	category:'tests-Regression-Collections'
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!SegmentedOrderedCollectionTests class methodsFor:'documentation'!
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
documentation
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
"
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    documentation to be added.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    [author:]
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
    19
	cg
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    [instance variables:]
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    [class variables:]
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    [see also:]
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
"
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
! !
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!SegmentedOrderedCollectionTests methodsFor:'tests'!
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
test01
834
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    33
    |c t249 t250 t251|
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
    c := SegmentedOrderedCollection new.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
    self assert:(c size == 0).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
    self should:[ c at: 1 ] raise:SubscriptOutOfBoundsError.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
    c add:10.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    self assert:(c size == 1).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    self assert:(c first == 10).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    self assert:(c last == 10).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    20 to:20000 by:10 do:[:each |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
    45
	c add:each
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    ].
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    self assert:(c size == 2000).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    self assert:(c first == 10).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    self assert:(c last == 20000).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    1 to:1000 do:[:i |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
    52
	c removeFirst
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    ].
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    self assert:(c first == 10010).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    self assert:(c last == 20000).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    self assert:(c size == 1000).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    self assert:(c collect:[:el | el] as:OrderedCollection) = (10010 to: 20000 by:10) asOrderedCollection.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    self assert:(c at:1) == 10010.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    self assert:(c at:499) == 14990.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    c removeFromIndex:1 toIndex:499.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    self assert:(c first == 15000).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    self assert:(c last == 20000).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    self assert:(c size == 501).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    self assert:(c collect:[:el | el] as:OrderedCollection) = (15000 to: 20000 by:10) asOrderedCollection.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    c addFirst:'xxx'.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    self assert:(c first = 'xxx').
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    self assert:(c last == 20000).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    self assert:(c size == 502).
834
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    73
    self assert:(c removeFirst = 'xxx').
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    74
    self assert:(c size == 501).
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    75
    self assert:(c first == 15000).
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    1 to:999 do:[:i |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
    78
	c addFirst:i
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
    ].
834
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    80
    1 to:999 do:[:i |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
    81
	self assert:(c at:i) == (1000-i).
834
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    82
    ].
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    83
    self assert:(c size == (501+999)).
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    84
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    85
    t249 := c at:249.
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    86
    t250 := c at:250.
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    87
    t251 := c at:251.
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    88
    c add:999 beforeIndex:250.
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    89
    self assert:(c size == (501+999+1)).
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    90
    self assert:(c at:249) == t249.
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    91
    self assert:(c at:250) == 999.
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    92
    self assert:(c at:251) == t250.
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    93
    self assert:(c at:252) == t251.
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    94
    c removeIndex:250.
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
    95
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    999 to:1 by:-1 do:[:i |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
    97
	self assert:(c removeFirst == i)
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
    ].
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    c removeFirst.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    self assert:(c first == 15010).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    self assert:(c last == 20000).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
    self assert:(c size == 500).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
    c removeLast.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    self assert:(c first == 15010).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    self assert:(c last == 19990).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    self assert:(c size == 499).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    c removeFromIndex:2 toIndex:498.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    self assert:(c first == 15010).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    self assert:(c last == 19990).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
    self assert:(c size == 2).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
843
b2162c94ed71 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 834
diff changeset
   115
    c grow:1000.
b2162c94ed71 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 834
diff changeset
   116
    self assert:(c size == 1000).
845
aeb374c591f4 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
   117
    self assert:(c at:1) == 15010.
aeb374c591f4 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
   118
    self assert:(c at:2) == 19990.
843
b2162c94ed71 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 834
diff changeset
   119
    3 to:1000 do:[:i |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   120
	self assert:(c at:i) == nil
843
b2162c94ed71 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 834
diff changeset
   121
    ].
b2162c94ed71 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 834
diff changeset
   122
845
aeb374c591f4 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
   123
    c grow:105.
aeb374c591f4 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
   124
    self assert:(c size == 105).
aeb374c591f4 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
   125
    self assert:(c at:1) == 15010.
aeb374c591f4 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
   126
    self assert:(c at:2) == 19990.
aeb374c591f4 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
   127
    3 to:105 do:[:i |
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   128
	self assert:(c at:i) == nil
845
aeb374c591f4 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
   129
    ].
aeb374c591f4 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
   130
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
    "
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
     self run:#test01
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
     self new test01
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
    "
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
!
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
834
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
   137
test02_timing
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    |c tAdd tRemove|
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
834
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
   140
    "/ adding at the end: OC is faster
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
   141
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
    tAdd := TimeDuration toRun:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   143
	c := SegmentedOrderedCollection new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   144
	1 to:200000 do:[:i |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   145
	    c add:i
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   146
	].
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
    ].
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
    Transcript show:'Time to add 200000 elements to sc: '; showCR:tAdd.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
    tAdd := TimeDuration toRun:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   151
	c := OrderedCollection new.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   152
	1 to:200000 do:[:i |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   153
	    c add:i
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   154
	].
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
    ].
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
    Transcript show:'Time to add 200000 elements to oc: '; showCR:tAdd.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    "/ ---------------------
834
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
   159
    "/ removing at the beginning: OC is faster
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    c := SegmentedOrderedCollection withAll:(1 to:200000).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    tRemove := TimeDuration toRun:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   163
	1 to:200000 do:[:i |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   164
	    c removeFirst
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   165
	].
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
    ].
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    Transcript show:'Time to remove 200000 elements from sc: '; showCR:tRemove.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    c := OrderedCollection withAll:(1 to:200000).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
    tRemove := TimeDuration toRun:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   171
	1 to:200000 do:[:i |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   172
	    c removeFirst
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   173
	].
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
    ].
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
    Transcript show:'Time to remove 200000 elements from oc: '; showCR:tRemove.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
    "/ ---------------------
834
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
   178
    "/ removing inside: SC is much faster
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
    c := SegmentedOrderedCollection withAll:(1 to:200000).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
    tRemove := TimeDuration toRun:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   182
	1 to:100000 do:[:i |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   183
	    c removeIndex:2000
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   184
	].
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
    ].
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
    Transcript show:'Time to remove 100000 elements from inside sc: '; showCR:tRemove.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
    c := OrderedCollection withAll:(1 to:200000).
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    tRemove := TimeDuration toRun:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   190
	1 to:100000 do:[:i |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   191
	    c removeIndex:2000
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
   192
	].
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
    ].
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    Transcript show:'Time to remove 100000 elements from inside oc: '; showCR:tRemove.
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    "
834
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
   198
     self run:#test02_timing
893a04121363 class: RegressionTests::SegmentedOrderedCollectionTests
Claus Gittinger <cg@exept.de>
parents: 824
diff changeset
   199
     self new test02_timing
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    "
1296
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   201
!
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   202
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   203
test03
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   204
    |c|
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   205
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   206
    c := SegmentedOrderedCollection new.
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   207
    self assert:(c size == 0).
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   208
    self assert:(c isEmpty).
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   209
    self assert:(c notEmpty not).
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   210
    self should:[ c at: 1 ] raise:SubscriptOutOfBoundsError.
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   211
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   212
    c add:10.
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   213
    self assert:(c size == 1).
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   214
    self assert:(c first == 10).
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   215
    self assert:(c last == 10).
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   216
    self assert:(c isEmpty not).
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   217
    self assert:(c notEmpty).
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   218
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   219
    c removeFirst.
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   220
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   221
    self assert:(c size == 0).
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   222
    self assert:(c isEmpty).
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   223
    self assert:(c notEmpty not).
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   224
    self should:[ c at: 1 ] raise:SubscriptOutOfBoundsError.
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   225
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   226
    "
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   227
     self run:#test03
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   228
     self new test03
d18839d78beb #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 1058
diff changeset
   229
    "
824
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
! !
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
!SegmentedOrderedCollectionTests class methodsFor:'documentation'!
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
version
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
    ^ '$Header$'
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
!
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
version_CVS
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
    ^ '$Header$'
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
! !
5ba6b2a3c635 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241