Bitcoin Core  0.21.1
P2P Digital Currency
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules
Macros | Typedefs | Functions | Variables
coinselector_tests.cpp File Reference
#include <amount.h>
#include <node/context.h>
#include <primitives/transaction.h>
#include <random.h>
#include <test/util/setup_common.h>
#include <wallet/coincontrol.h>
#include <wallet/coinselection.h>
#include <wallet/test/wallet_test_fixture.h>
#include <wallet/wallet.h>
#include <boost/test/unit_test.hpp>
#include <random>
Include dependency graph for coinselector_tests.cpp:

Go to the source code of this file.

Macros

#define RUN_TESTS   100
 
#define RANDOM_REPEATS   5
 

Typedefs

typedef std::set< CInputCoinCoinSet
 

Functions

static CWallet testWallet (testChain.get(),"", CreateDummyWalletDatabase())
 
static void add_coin (const CAmount &nValue, int nInput, std::vector< CInputCoin > &set)
 
static void add_coin (const CAmount &nValue, int nInput, CoinSet &set)
 
static void add_coin (CWallet &wallet, const CAmount &nValue, int nAge=6 *24, bool fIsFromMe=false, int nInput=0, bool spendable=false)
 
static void add_coin (const CAmount &nValue, int nAge=6 *24, bool fIsFromMe=false, int nInput=0, bool spendable=false)
 
static void empty_wallet (void)
 
static bool equal_sets (CoinSet a, CoinSet b)
 
static CAmount make_hard_case (int utxos, std::vector< CInputCoin > &utxo_pool)
 
std::vector< OutputGroup > & GroupCoins (const std::vector< CInputCoin > &coins)
 
std::vector< OutputGroup > & GroupCoins (const std::vector< COutput > &coins)
 
 BOOST_AUTO_TEST_CASE (bnb_search_test)
 
 BOOST_AUTO_TEST_CASE (knapsack_solver_test)
 
 BOOST_AUTO_TEST_CASE (ApproximateBestSubset)
 
 BOOST_AUTO_TEST_CASE (SelectCoins_test)
 

Variables

static std::vector< COutputvCoins
 
static NodeContext testNode
 
static auto testChain = interfaces::MakeChain(testNode)
 
static CAmount balance = 0
 
CoinEligibilityFilter filter_standard (1, 6, 0)
 
CoinEligibilityFilter filter_confirmed (1, 1, 0)
 
CoinEligibilityFilter filter_standard_extra (6, 6, 0)
 
CoinSelectionParams coin_selection_params (false, 0, 0, CFeeRate(0), CFeeRate(0), CFeeRate(0), 0)
 

Macro Definition Documentation

#define RANDOM_REPEATS   5

Definition at line 25 of file coinselector_tests.cpp.

#define RUN_TESTS   100

Definition at line 21 of file coinselector_tests.cpp.

Typedef Documentation

typedef std::set<CInputCoin> CoinSet

Definition at line 27 of file coinselector_tests.cpp.

Function Documentation

static void add_coin ( const CAmount nValue,
int  nInput,
std::vector< CInputCoin > &  set 
)
static

Definition at line 43 of file coinselector_tests.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

static void add_coin ( const CAmount nValue,
int  nInput,
CoinSet set 
)
static

Definition at line 51 of file coinselector_tests.cpp.

Here is the call graph for this function:

static void add_coin ( CWallet wallet,
const CAmount nValue,
int  nAge = 6*24,
bool  fIsFromMe = false,
int  nInput = 0,
bool  spendable = false 
)
static

Definition at line 59 of file coinselector_tests.cpp.

Here is the call graph for this function:

static void add_coin ( const CAmount nValue,
int  nAge = 6*24,
bool  fIsFromMe = false,
int  nInput = 0,
bool  spendable = false 
)
static

Definition at line 87 of file coinselector_tests.cpp.

Here is the call graph for this function:

BOOST_AUTO_TEST_CASE ( bnb_search_test  )

Definition at line 133 of file coinselector_tests.cpp.

Here is the call graph for this function:

BOOST_AUTO_TEST_CASE ( knapsack_solver_test  )

Definition at line 310 of file coinselector_tests.cpp.

Here is the call graph for this function:

BOOST_AUTO_TEST_CASE ( ApproximateBestSubset  )

Definition at line 590 of file coinselector_tests.cpp.

Here is the call graph for this function:

BOOST_AUTO_TEST_CASE ( SelectCoins_test  )

Definition at line 614 of file coinselector_tests.cpp.

Here is the call graph for this function:

static void empty_wallet ( void  )
static

Definition at line 92 of file coinselector_tests.cpp.

Here is the caller graph for this function:

static bool equal_sets ( CoinSet  a,
CoinSet  b 
)
static

Definition at line 98 of file coinselector_tests.cpp.

Here is the caller graph for this function:

std::vector<OutputGroup>& GroupCoins ( const std::vector< CInputCoin > &  coins)
inline

Definition at line 116 of file coinselector_tests.cpp.

Here is the caller graph for this function:

std::vector<OutputGroup>& GroupCoins ( const std::vector< COutput > &  coins)
inline

Definition at line 124 of file coinselector_tests.cpp.

static CAmount make_hard_case ( int  utxos,
std::vector< CInputCoin > &  utxo_pool 
)
static

Definition at line 104 of file coinselector_tests.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

static CWallet testWallet ( testChain.  get(),
""  ,
CreateDummyWalletDatabase()   
)
static

Here is the caller graph for this function:

Variable Documentation

CAmount balance = 0
static

Definition at line 33 of file coinselector_tests.cpp.

CoinSelectionParams coin_selection_params(false,0,0,CFeeRate(0),CFeeRate(0),CFeeRate(0),0)
CoinEligibilityFilter filter_confirmed(1, 1, 0)
CoinEligibilityFilter filter_standard(1, 6, 0)
CoinEligibilityFilter filter_standard_extra(6, 6, 0)
auto testChain = interfaces::MakeChain(testNode)
static

Definition at line 31 of file coinselector_tests.cpp.

NodeContext testNode
static

Definition at line 30 of file coinselector_tests.cpp.

std::vector<COutput> vCoins
static

Definition at line 29 of file coinselector_tests.cpp.