RegressionTests__QueueTest.st
author Claus Gittinger <cg@exept.de>
Tue, 26 Nov 2002 10:03:19 +0100
changeset 171 21c0c65568af
child 181 a56517005229
permissions -rw-r--r--
initial checkin

"{ Package: 'exept:regression' }"

"{ NameSpace: RegressionTests }"

TestCase subclass:#QueueTest
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'Tests-Regression'
!


!QueueTest methodsFor:'Testing'!

testBasic1

    |q el|

    q := Queue new:5.
    self assert:q isEmpty.
    self assert:q size == 0.
    q nextPut:1.
    self assert:q notEmpty.
    self assert:q size == 1.
    q nextPut:2.
    self assert:q notEmpty.
    self assert:q size == 2.
    el := q next.
    self assert:q notEmpty.
    self assert:q size == 1.
    self assert:(el==1).
    el := q next.
    self assert:q isEmpty.
    self assert:q size == 0.
    self assert:(el==2).

    "
     self new testBasic1 
    "
!

testBasic2

    |q el|

    q := Queue new:5.
    self assert:q isEmpty.
    self assert:q size == 0.
    q nextPut:1.
    q nextPut:2.
    q nextPut:3.
    q nextPut:4.
    q nextPut:5.
    el := q next.
    self assert:(el==1).
    el := q next.
    self assert:(el==2).
    el := q next.
    self assert:(el==3).
    el := q next.
    self assert:(el==4).
    el := q next.
    self assert:(el==5).

    "
     self new testBasic2 
    "
!

testBasic3

    |q el|

    q := Queue new:5.
    self assert:q isEmpty.
    self assert:q size == 0.
    q nextPut:1.
    q nextPut:2.
    q nextPut:3.
    q nextPut:4.
    q nextPut:5.
    self should:[q nextPut:6] raise:Error.
    el := q next.
    self assert:(el==1).
    el := q next.
    self assert:(el==2).
    el := q next.
    self assert:(el==3).
    el := q next.
    self assert:(el==4).
    el := q next.
    self assert:(el==5).

    "
     self new testBasic3 
    "
!

testBasic4

    |q el|

    q := Queue new:5.
    self assert:q isEmpty.
    self assert:q size == 0.
    q nextPut:1.
    q nextPutFirst:2.
    q nextPutFirst:3.
    q nextPutFirst:4.
    q nextPutFirst:5.
    self should:[q nextPutFirst:6] raise:Error.
    el := q next.
    self assert:(el==5).
    el := q next.
    self assert:(el==4).
    el := q next.
    self assert:(el==3).
    el := q next.
    self assert:(el==2).
    el := q next.
    self assert:(el==1).

    "
     self new testBasic4 
    "
!

testBasic5

    |q el|

    q := Queue new:5.
    self assert:q isEmpty.
    self assert:q size == 0.
    q nextPutFirst:1.
    q nextPutFirst:2.
    q nextPutFirst:3.
    el := q next.
    self assert:(el==3).
    el := q next.
    self assert:(el==2).
    el := q next.
    self assert:(el==1).

    "
     self new testBasic5 
    "
!

testRemoveAll
    0 to:10 do:[:i|
        self removeAllSize:10 fill:i.
    ].
! !

!QueueTest methodsFor:'helpers'!

removeAllSize:size fill:fill

    |q|

    q := Queue new:size.

    1 to:fill do:[:i|
	q nextPut:i.
    ].
    q removeAll.
    self assert:q isEmpty.
! !

!QueueTest class methodsFor:'documentation'!

version
    ^ '$Header$'
! !