Changeset View
Changeset View
Standalone View
Standalone View
src/test/main_tests.cpp
Show All 23 Lines | for (int nHalvings = 0; nHalvings < maxHalvings; nHalvings++) { | ||||
Amount nSubsidy = GetBlockSubsidy(nHeight, consensusParams); | Amount nSubsidy = GetBlockSubsidy(nHeight, consensusParams); | ||||
BOOST_CHECK(nSubsidy <= nInitialSubsidy); | BOOST_CHECK(nSubsidy <= nInitialSubsidy); | ||||
BOOST_CHECK_EQUAL(nSubsidy, nPreviousSubsidy / 2); | BOOST_CHECK_EQUAL(nSubsidy, nPreviousSubsidy / 2); | ||||
nPreviousSubsidy = nSubsidy; | nPreviousSubsidy = nSubsidy; | ||||
} | } | ||||
BOOST_CHECK_EQUAL( | BOOST_CHECK_EQUAL( | ||||
GetBlockSubsidy(maxHalvings * consensusParams.nSubsidyHalvingInterval, | GetBlockSubsidy(maxHalvings * consensusParams.nSubsidyHalvingInterval, | ||||
consensusParams), | consensusParams), | ||||
0); | Amount(0)); | ||||
} | } | ||||
static void TestBlockSubsidyHalvings(int nSubsidyHalvingInterval) { | static void TestBlockSubsidyHalvings(int nSubsidyHalvingInterval) { | ||||
Consensus::Params consensusParams; | Consensus::Params consensusParams; | ||||
consensusParams.nSubsidyHalvingInterval = nSubsidyHalvingInterval; | consensusParams.nSubsidyHalvingInterval = nSubsidyHalvingInterval; | ||||
TestBlockSubsidyHalvings(consensusParams); | TestBlockSubsidyHalvings(consensusParams); | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(block_subsidy_test) { | BOOST_AUTO_TEST_CASE(block_subsidy_test) { | ||||
TestBlockSubsidyHalvings( | TestBlockSubsidyHalvings( | ||||
Params(CBaseChainParams::MAIN).GetConsensus()); // As in main | Params(CBaseChainParams::MAIN).GetConsensus()); // As in main | ||||
TestBlockSubsidyHalvings(150); // As in regtest | TestBlockSubsidyHalvings(150); // As in regtest | ||||
TestBlockSubsidyHalvings(1000); // Just another interval | TestBlockSubsidyHalvings(1000); // Just another interval | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(subsidy_limit_test) { | BOOST_AUTO_TEST_CASE(subsidy_limit_test) { | ||||
const Consensus::Params &consensusParams = | const Consensus::Params &consensusParams = | ||||
Params(CBaseChainParams::MAIN).GetConsensus(); | Params(CBaseChainParams::MAIN).GetConsensus(); | ||||
Amount nSum = 0; | Amount nSum(0); | ||||
for (int nHeight = 0; nHeight < 14000000; nHeight += 1000) { | for (int nHeight = 0; nHeight < 14000000; nHeight += 1000) { | ||||
Amount nSubsidy = GetBlockSubsidy(nHeight, consensusParams); | Amount nSubsidy = GetBlockSubsidy(nHeight, consensusParams); | ||||
BOOST_CHECK(nSubsidy <= 50 * COIN); | BOOST_CHECK(nSubsidy <= 50 * COIN); | ||||
nSum += 1000 * nSubsidy; | nSum += 1000 * nSubsidy; | ||||
BOOST_CHECK(MoneyRange(nSum)); | BOOST_CHECK(MoneyRange(nSum)); | ||||
} | } | ||||
BOOST_CHECK_EQUAL(nSum, 2099999997690000ULL); | BOOST_CHECK_EQUAL(nSum, Amount(2099999997690000ULL)); | ||||
} | } | ||||
bool ReturnFalse() { | bool ReturnFalse() { | ||||
return false; | return false; | ||||
} | } | ||||
bool ReturnTrue() { | bool ReturnTrue() { | ||||
return true; | return true; | ||||
} | } | ||||
Show All 14 Lines |