|
| 1 | +" |
| 2 | +I'm a simple queue i.e., first in first out structure. |
| 3 | +I support basic collection protocol and in addition enqueue and dequeue as in Scala. |
| 4 | +
|
| 5 | +
|
| 6 | +" |
| 7 | +Class { |
| 8 | + #name : #CTQueueTest, |
| 9 | + #superclass : #TestCase, |
| 10 | + #category : #'Containers-Queue-Tests' |
| 11 | +} |
| 12 | + |
| 13 | +{ #category : #tests } |
| 14 | +CTQueueTest >> queueClass [ |
| 15 | + ^ CTQueue |
| 16 | +] |
| 17 | + |
| 18 | +{ #category : #tests } |
| 19 | +CTQueueTest >> testAdd [ |
| 20 | + | queue | |
| 21 | + queue := self queueClass new. |
| 22 | + queue add: 1. |
| 23 | + queue add: 2. |
| 24 | + self assert: (queue includes: 1). |
| 25 | + self assert: (queue includes: 2) |
| 26 | +] |
| 27 | + |
| 28 | +{ #category : #tests } |
| 29 | +CTQueueTest >> testAddGarantyFIFOOrder [ |
| 30 | + | queue | |
| 31 | + queue := self queueClass new. |
| 32 | + queue add: 'first added element'. |
| 33 | + queue add: 'second added element'. |
| 34 | + self assert: (queue at: 1) equals: 'first added element'. |
| 35 | + self assert: (queue at: 2) equals: 'second added element' |
| 36 | +] |
| 37 | + |
| 38 | +{ #category : #tests } |
| 39 | +CTQueueTest >> testDequeue [ |
| 40 | + | queue | |
| 41 | + queue := self queueClass new. |
| 42 | + queue queue: 1. |
| 43 | + queue queue: 2. |
| 44 | + queue queue: 3. |
| 45 | + self assert: queue dequeue equals: 1. |
| 46 | + self assert: queue dequeue equals: 2 |
| 47 | +] |
| 48 | + |
| 49 | +{ #category : #tests } |
| 50 | +CTQueueTest >> testEmptyQueue [ |
| 51 | + self assert: self queueClass new isEmpty |
| 52 | +] |
| 53 | + |
| 54 | +{ #category : #tests } |
| 55 | +CTQueueTest >> testQueue [ |
| 56 | + self assert: self queueClass new isEmpty |
| 57 | +] |
| 58 | + |
| 59 | +{ #category : #tests } |
| 60 | +CTQueueTest >> testQueueGarantyFIFOOrder [ |
| 61 | + self assert: self queueClass new isEmpty |
| 62 | +] |
0 commit comments