Skip to content

Commit 73cfa07

Browse files
author
MarcoFalke
committed
Merge bitcoin#18195: test: Add cost_of_change parameter assertions to bnb_search_test
c72a11a test: Add cost_of_change parameter assertions to bnb_search_test (Yancy Ribbens) Pull request description: If the `cost_of_change` variable is removed from the method body `SelectCoinsBnB`, there are currently no failing unit tests. This PR adds assertions about the behavior of the `cost_of_change`: If the cost of creating a change output is greater than what's leftover, then consume the output and create no change, otherwise, don't consume the output (no match found). ACKs for top commit: achow101: ACK c72a11a Tree-SHA512: 613aa411df5e2911446e0e8bf3309336faaadf2d3c56e7d125b76454e7c6f9e4f5e8f0910dc6222282628e38cd8a4a7c56bb3d36b564a17f396b9b503ecc64c8
2 parents e5753fa + c72a11a commit 73cfa07

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/wallet/test/coinselector_tests.cpp

+13
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,19 @@ BOOST_AUTO_TEST_CASE(bnb_search_test)
189189
actual_selection.clear();
190190
selection.clear();
191191

192+
// Cost of change is greater than the difference between target value and utxo sum
193+
add_coin(1 * CENT, 1, actual_selection);
194+
BOOST_CHECK(SelectCoinsBnB(GroupCoins(utxo_pool), 0.9 * CENT, 0.5 * CENT, selection, value_ret, not_input_fees));
195+
BOOST_CHECK_EQUAL(value_ret, 1 * CENT);
196+
BOOST_CHECK(equal_sets(selection, actual_selection));
197+
actual_selection.clear();
198+
selection.clear();
199+
200+
// Cost of change is less than the difference between target value and utxo sum
201+
BOOST_CHECK(!SelectCoinsBnB(GroupCoins(utxo_pool), 0.9 * CENT, 0, selection, value_ret, not_input_fees));
202+
actual_selection.clear();
203+
selection.clear();
204+
192205
// Select 10 Cent
193206
add_coin(5 * CENT, 5, utxo_pool);
194207
add_coin(4 * CENT, 4, actual_selection);

0 commit comments

Comments
 (0)