@@ -238,6 +238,14 @@ def test_creation_random_allocatable_item_list():
238238 assert check_item_list_is_valid (bin_size , triplets )
239239
240240
241+ def assert_triplet_packing_valid_result (result , binsize ):
242+ _ , triplets_result = result
243+
244+ for tri in triplets_result :
245+ assert len (tri ) == 3 , f"Expected 3 items per bin, got { len (tri )} "
246+ assert sum (tri ) == binsize , f"Bin sum mismatch: got { sum (tri )} instead of { binsize } "
247+
248+
241249def test_randomized_items_packing_allocation ():
242250 bin_sizes = [1000 ]
243251 item_nums = [60 , 99 ]
@@ -249,19 +257,11 @@ def test_randomized_items_packing_allocation():
249257
250258 # backtrack
251259 bin_result = triplet_packing (BinnerKeepingContents (), binsize = b_size , items = item_list )
252- _ , triplets_result = bin_result
253-
254- for tri in triplets_result :
255- assert len (tri ) == 3 , f"Expected 3 items per bin, got { len (tri )} "
256- assert sum (tri ) == b_size , f"Bin sum mismatch: got { sum (tri )} instead of { b_size } "
260+ assert_triplet_packing_valid_result (bin_result , b_size )
257261
258262 # local search
259263 bin_result = triplet_packing (BinnerKeepingContents (), binsize = b_size , items = item_list , use_local_search = True )
260- _ , triplets_result = bin_result
261-
262- for tri in triplets_result :
263- assert len (tri ) == 3 , f"Expected 3 items per bin, got { len (tri )} "
264- assert sum (tri ) == b_size , f"Bin sum mismatch: got { sum (tri )} instead of { b_size } "
264+ assert_triplet_packing_valid_result (bin_result , b_size )
265265
266266
267267def test_items_packing_allocation ():
@@ -272,19 +272,11 @@ def test_items_packing_allocation():
272272
273273 # backtrack
274274 bin_result = triplet_packing (BinnerKeepingContents (), binsize = b_size , items = item_list )
275- _ , triplets_result = bin_result
276-
277- for tri in triplets_result :
278- assert len (tri ) == 3 , f"Expected 3 items per bin, got { len (tri )} "
279- assert sum (tri ) == b_size , f"Bin sum mismatch: got { sum (tri )} instead of { b_size } "
275+ assert_triplet_packing_valid_result (bin_result , b_size )
280276
281277 # local search
282278 bin_result = triplet_packing (BinnerKeepingContents (), binsize = b_size , items = item_list , use_local_search = True )
283- _ , triplets_result = bin_result
284-
285- for tri in triplets_result :
286- assert len (tri ) == 3 , f"Expected 3 items per bin, got { len (tri )} "
287- assert sum (tri ) == b_size , f"Bin sum mismatch: got { sum (tri )} instead of { b_size } "
279+ assert_triplet_packing_valid_result (bin_result , b_size )
288280
289281
290282def test_invalid_input_throws_exception ():
0 commit comments