diff options
| author | Luke Dashjr <[email protected]> | 2016-02-03 05:41:13 +0000 |
|---|---|---|
| committer | Luke Dashjr <[email protected]> | 2016-02-03 05:41:13 +0000 |
| commit | a68bb9f5e7ef1da5c044907dc3a1d3d4a4dbc2cc (patch) | |
| tree | 7e3932c75353499d6659b4f5a94b40e07e64c364 /src/wallet/test/wallet_tests.cpp | |
| parent | When/if the copyright line does not mention Bitcoin Core developers, add a se... (diff) | |
| parent | Merge #7091: Consensus build package (diff) | |
| download | discoin-a68bb9f5e7ef1da5c044907dc3a1d3d4a4dbc2cc.tar.xz discoin-a68bb9f5e7ef1da5c044907dc3a1d3d4a4dbc2cc.zip | |
Merge branch 'master' into single_prodname
Diffstat (limited to 'src/wallet/test/wallet_tests.cpp')
| -rw-r--r-- | src/wallet/test/wallet_tests.cpp | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/wallet/test/wallet_tests.cpp b/src/wallet/test/wallet_tests.cpp index 8b9292bd1..e84d58802 100644 --- a/src/wallet/test/wallet_tests.cpp +++ b/src/wallet/test/wallet_tests.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2012-2014 The Bitcoin Core developers +// Copyright (c) 2012-2015 The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -328,4 +328,37 @@ BOOST_AUTO_TEST_CASE(coin_selection_tests) empty_wallet(); } +BOOST_AUTO_TEST_CASE(ApproximateBestSubset) +{ + CoinSet setCoinsRet; + CAmount nValueRet; + + LOCK(wallet.cs_wallet); + + empty_wallet(); + + // Test vValue sort order + for (int i = 0; i < 1000; i++) + add_coin(1000 * COIN); + add_coin(3 * COIN); + + BOOST_CHECK(wallet.SelectCoinsMinConf(1003 * COIN, 1, 6, vCoins, setCoinsRet, nValueRet)); + BOOST_CHECK_EQUAL(nValueRet, 1003 * COIN); + BOOST_CHECK_EQUAL(setCoinsRet.size(), 2U); + + empty_wallet(); + + // Test trimming + for (int i = 0; i < 100; i++) + add_coin(10 * COIN); + for (int i = 0; i < 100; i++) + add_coin(1000 * COIN); + + BOOST_CHECK(wallet.SelectCoinsMinConf(100001 * COIN, 1, 6, vCoins, setCoinsRet, nValueRet)); + // We need all 100 larger coins and exactly one small coin. + // Superfluous small coins must be trimmed from the set: + BOOST_CHECK_EQUAL(nValueRet, 100010 * COIN); + BOOST_CHECK_EQUAL(setCoinsRet.size(), 101); +} + BOOST_AUTO_TEST_SUITE_END() |