@@ -328,23 +328,36 @@ BOOST_AUTO_TEST_CASE(coin_selection_tests)
328328 empty_wallet ();
329329}
330330
331- BOOST_AUTO_TEST_CASE (pruning_in_ApproximateBestSet )
331+ BOOST_AUTO_TEST_CASE (ApproximateBestSubset )
332332{
333333 CoinSet setCoinsRet;
334334 CAmount nValueRet;
335335
336336 LOCK (wallet.cs_wallet );
337337
338338 empty_wallet ();
339+
340+ // Test vValue sort order
341+ for (int i = 0 ; i < 1000 ; i++)
342+ add_coin (1000 * COIN);
343+ add_coin (3 * COIN);
344+
345+ BOOST_CHECK (wallet.SelectCoinsMinConf (1003 * COIN, 1 , 6 , vCoins, setCoinsRet, nValueRet));
346+ BOOST_CHECK_EQUAL (nValueRet, 1003 * COIN);
347+ BOOST_CHECK_EQUAL (setCoinsRet.size (), 2U );
348+
349+ empty_wallet ();
350+
351+ // Test trimming
339352 for (int i = 0 ; i < 100 ; i++)
340- add_coin (10 * CENT );
353+ add_coin (10 * COIN );
341354 for (int i = 0 ; i < 100 ; i++)
342- add_coin (1000 * CENT );
355+ add_coin (1000 * COIN );
343356
344- BOOST_CHECK (wallet.SelectCoinsMinConf (100001 * CENT , 1 , 6 , vCoins, setCoinsRet, nValueRet));
357+ BOOST_CHECK (wallet.SelectCoinsMinConf (100001 * COIN , 1 , 6 , vCoins, setCoinsRet, nValueRet));
345358 // We need all 100 larger coins and exactly one small coin.
346- // Superfluous small coins must be pruned :
347- BOOST_CHECK_EQUAL (nValueRet, 100010 * CENT );
359+ // Superfluous small coins must be trimmed from the set :
360+ BOOST_CHECK_EQUAL (nValueRet, 100010 * COIN );
348361 BOOST_CHECK_EQUAL (setCoinsRet.size (), 101 );
349362}
350363
0 commit comments