RegressionTests__QueueTest.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 30 Jun 2016 09:02:08 +0100
branchjv
changeset 1500 d406a10b2965
parent 1499 26a16a04219b
parent 1447 2351db93aa5b
child 1564 2a4963ef3a4a
permissions -rw-r--r--
Merge

"{ Package: 'stx:goodies/regression' }"

"{ NameSpace: RegressionTests }"

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


!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$'
! !