// Copyright (c) 2014 The Bitcoin Core developers // Copyright (c) 2014-2015 The Dash developers // Copyright (c) 2015-2017 The PIVX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "primitives/transaction.h" #include "main.h" #include "test_agrarian.h" #include BOOST_FIXTURE_TEST_SUITE(main_tests, TestingSetup) CAmount nMoneySupplyPoWEnd = 43199500 * COIN; BOOST_AUTO_TEST_CASE(subsidy_limit_test) { CAmount nSum = 0; for (int nHeight = 0; nHeight < 1; nHeight += 1) { /* premine in block 1 (60,001 AGR) */ CAmount nSubsidy = GetBlockValue(nHeight); BOOST_CHECK(nSubsidy <= 60001 * COIN); nSum += nSubsidy; } for (int nHeight = 1; nHeight < 86400; nHeight += 1) { /* PoW Phase One */ CAmount nSubsidy = GetBlockValue(nHeight); BOOST_CHECK(nSubsidy <= 250 * COIN); nSum += nSubsidy; } for (int nHeight = 86400; nHeight < 151200; nHeight += 1) { /* PoW Phase Two */ CAmount nSubsidy = GetBlockValue(nHeight); BOOST_CHECK(nSubsidy <= 225 * COIN); nSum += nSubsidy; } for (int nHeight = 151200; nHeight < 259200; nHeight += 1) { /* PoW Phase Two */ CAmount nSubsidy = GetBlockValue(nHeight); BOOST_CHECK(nSubsidy <= 45 * COIN); BOOST_CHECK(MoneyRange(nSubsidy)); nSum += nSubsidy; BOOST_CHECK(nSum > 0 && nSum <= nMoneySupplyPoWEnd); } BOOST_CHECK(nSum == 4109975100000000ULL); } BOOST_AUTO_TEST_SUITE_END()