File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -421,3 +421,22 @@ CTQueueTest >> testSize [
421421 queue dequeue.
422422 self assert: queue size equals: 2
423423]
424+
425+ { #category : ' tests' }
426+ CTQueueTest >> testEnqueueUnless [
427+ queue enqueue: 1 unless: [ :v | (v rem: 2 ) = 0 ].
428+ self assert: (queue includes: 1 ).
429+ self assert: queue size equals: 1 .
430+ queue enqueue: 2 unless: [ :v | (v rem: 2 ) = 0 ].
431+ self assert: (queue includes: 1 ).
432+ self assert: (queue includes: 2 ) .
433+ self assert: queue size equals: 2 .
434+ queue enqueue: 4 unless: [ :v | (v rem: 2 ) = 0 ].
435+ self assert: (queue includes: 1 ).
436+ self assert: (queue includes: 2 ) .
437+ self assert: queue size equals: 2 .
438+ queue enqueue: 3 unless: [ :v | (v rem: 2 ) = 0 ].
439+ self assert: (queue includes: 1 ).
440+ self assert: (queue includes: 2 ) .
441+ self assert: queue size equals: 2
442+ ]
Original file line number Diff line number Diff line change @@ -105,6 +105,19 @@ CTQueue >> enqueue: anObject [
105105 size := size + 1 .
106106 ^ self
107107]
108+ { #category : ' adding' }
109+ CTQueue >> enqueue: anObject unless: thisTestIsTrue [
110+ 1 to: self size do: [ :i |
111+ ( thisTestIsTrue value: (elements at: (self indexAt: i - 1 ) ) ) ifTrue: [ ^ self ]
112+ ].
113+ self isFull ifTrue: [ self grow ].
114+
115+ elements at: rearIndex put: anObject.
116+ rearIndex := self nextIndex: rearIndex.
117+ size := size + 1 .
118+ ^ self
119+ ]
120+
108121
109122{ #category : ' adding' }
110123CTQueue >> enqueueAll: aCollection [
@@ -217,3 +230,4 @@ CTQueue >> size [
217230
218231 ^ size
219232]
233+
You can’t perform that action at this time.
0 commit comments