88 "math/rand"
99
1010 "github.com/stretchr/testify/assert"
11+ "github.com/stretchr/testify/require"
1112)
1213
1314// Go does not have constant arrays.
@@ -132,7 +133,7 @@ func TestEnqueueDequeueMin(t *testing.T) {
132133 var err error
133134 for heap .Size () > 0 {
134135 min , err = heap .DequeueMin ()
135- assert .NoError (t , err )
136+ require .NoError (t , err )
136137 if heap .Size () == 199 {
137138 assert .Equal (t , Seq1FirstMinimum , min .Priority )
138139 }
@@ -155,19 +156,20 @@ func TestFibHeap_Enqueue_Min(t *testing.T) {
155156 }
156157
157158 min , err := heap .Min ()
158- assert .NoError (t , err )
159+ require .NoError (t , err )
159160 assert .Equal (t , Seq1FirstMinimum , min .Priority )
160161}
161162
162163func TestFibHeap_Min_EmptyHeap (t * testing.T ) {
163164 heap := NewFloatFibHeap ()
164165
165166 heap .Enqueue (0 )
166- heap .DequeueMin ()
167+ min , err := heap .DequeueMin ()
168+ require .NoError (t , err )
167169
168170 // Heap should be empty at this point
169171
170- min , err : = heap .Min ()
172+ min , err = heap .Min ()
171173
172174 assert .EqualError (t , err , "Trying to get minimum element of empty heap" )
173175 assert .Nil (t , min )
@@ -177,6 +179,7 @@ func TestFibHeap_DequeueMin_EmptyHeap(t *testing.T) {
177179 heap := NewFloatFibHeap ()
178180 min , err := heap .DequeueMin ()
179181
182+ assert .IsType (t , EmptyHeapError ("" ), err )
180183 assert .EqualError (t , err , "Cannot dequeue minimum of empty heap" )
181184 assert .Nil (t , min )
182185}
@@ -196,19 +199,21 @@ func TestEnqueueDecreaseKey(t *testing.T) {
196199 }
197200 }
198201
199- assert .NotNil (t , e1 )
200- assert .NotNil (t , e2 )
201- assert .NotNil (t , e3 )
202+ require .NotNil (t , e1 )
203+ require .NotNil (t , e2 )
204+ require .NotNil (t , e3 )
202205
203- heap .DecreaseKey (e1 , Seq2DecreaseKey1Trgt )
204- heap .DecreaseKey (e2 , Seq2DecreaseKey2Trgt )
205- heap .DecreaseKey (e3 , Seq2DecreaseKey3Trgt )
206+ _ , err := heap .DecreaseKey (e1 , Seq2DecreaseKey1Trgt )
207+ require .NoError (t , err )
208+ _ , err = heap .DecreaseKey (e2 , Seq2DecreaseKey2Trgt )
209+ require .NoError (t , err )
210+ _ , err = heap .DecreaseKey (e3 , Seq2DecreaseKey3Trgt )
211+ require .NoError (t , err )
206212
207213 var min * Entry
208- var err error
209214 for i := 0 ; i < len (NumberSequence2Sorted ); i ++ {
210215 min , err = heap .DequeueMin ()
211- assert .NoError (t , err )
216+ require .NoError (t , err )
212217 assert .Equal (t , NumberSequence2Sorted [i ], min .Priority )
213218 }
214219}
@@ -222,6 +227,7 @@ func TestFibHeap_DecreaseKey_EmptyHeap(t *testing.T) {
222227 // Heap should be empty at this point
223228 min , err := heap .DecreaseKey (elem , 0 )
224229
230+ assert .IsType (t , EmptyHeapError ("" ), err )
225231 assert .EqualError (t , err , "Cannot decrease key in an empty heap" )
226232 assert .Nil (t , min )
227233}
@@ -231,6 +237,7 @@ func TestFibHeap_DecreaseKey_NilNode(t *testing.T) {
231237 heap .Enqueue (1 )
232238 min , err := heap .DecreaseKey (nil , 0 )
233239
240+ assert .IsType (t , NilError ("" ), err )
234241 assert .EqualError (t , err , "Cannot decrease key: given node is nil" )
235242 assert .Nil (t , min )
236243}
@@ -266,13 +273,16 @@ func TestEnqueueDelete(t *testing.T) {
266273 var err error
267274
268275 err = heap .Delete (e1 )
276+ require .NoError (t , err )
269277 err = heap .Delete (e2 )
278+ require .NoError (t , err )
270279 err = heap .Delete (e3 )
280+ require .NoError (t , err )
271281
272282 var min * Entry
273283 for i := 0 ; i < len (NumberSequence2Deleted3ElemSorted ); i ++ {
274284 min , err = heap .DequeueMin ()
275- assert .NoError (t , err )
285+ require .NoError (t , err )
276286 assert .Equal (t , NumberSequence2Deleted3ElemSorted [i ], min .Priority )
277287 }
278288}
@@ -285,13 +295,15 @@ func TestFibHeap_Delete_EmptyHeap(t *testing.T) {
285295
286296 // Heap should be empty at this point
287297 err := heap .Delete (elem )
298+ assert .IsType (t , EmptyHeapError ("" ), err )
288299 assert .EqualError (t , err , "Cannot delete element from an empty heap" )
289300}
290301
291302func TestFibHeap_Delete_NilNode (t * testing.T ) {
292303 heap := NewFloatFibHeap ()
293304 heap .Enqueue (1 )
294305 err := heap .Delete (nil )
306+ assert .IsType (t , NilError ("" ), err )
295307 assert .EqualError (t , err , "Cannot delete node: given node is nil" )
296308}
297309
@@ -307,12 +319,12 @@ func TestMerge(t *testing.T) {
307319 }
308320
309321 heap , err := heap1 .Merge (& heap2 )
310- assert .NoError (t , err )
322+ require .NoError (t , err )
311323
312324 var min * Entry
313325 for i := 0 ; i < len (NumberSequenceMerged3And4Sorted ); i ++ {
314326 min , err = heap .DequeueMin ()
315- assert .NoError (t , err )
327+ require .NoError (t , err )
316328 assert .Equal (t , NumberSequenceMerged3And4Sorted [i ], min .Priority )
317329 }
318330}
@@ -321,6 +333,7 @@ func TestFibHeap_Merge_NilHeap(t *testing.T) {
321333 var heap FloatingFibonacciHeap
322334 heap = NewFloatFibHeap ()
323335 newHeap , err := heap .Merge (nil )
336+ assert .IsType (t , NilError ("" ), err )
324337 assert .EqualError (t , err , "One of the heaps to merge is nil. Cannot merge" )
325338 assert .Equal (t , newHeap , FloatingFibonacciHeap {})
326339}
0 commit comments