Branch data Line data Source code
# 1 : : // Copyright (c) 2020 The Bitcoin Core developers # 2 : : // Distributed under the MIT software license, see the accompanying # 3 : : // file COPYING or http://www.opensource.org/licenses/mit-license.php. # 4 : : # 5 : : #include <amount.h> # 6 : : #include <policy/fees.h> # 7 : : # 8 : : #include <test/util/setup_common.h> # 9 : : # 10 : : #include <boost/test/unit_test.hpp> # 11 : : # 12 : : BOOST_FIXTURE_TEST_SUITE(policy_fee_tests, BasicTestingSetup) # 13 : : # 14 : : BOOST_AUTO_TEST_CASE(FeeRounder) # 15 : 2 : { # 16 : 2 : FeeFilterRounder fee_rounder{CFeeRate{1000}}; # 17 : : # 18 : : // check that 1000 rounds to 974 or 1071 # 19 : 2 : std::set<CAmount> results; # 20 [ + + ]: 8 : while (results.size() < 2) { # 21 : 6 : results.emplace(fee_rounder.round(1000)); # 22 : 6 : } # 23 : 2 : BOOST_CHECK_EQUAL(*results.begin(), 974); # 24 : 2 : BOOST_CHECK_EQUAL(*++results.begin(), 1071); # 25 : : # 26 : : // check that negative amounts rounds to 0 # 27 : 2 : BOOST_CHECK_EQUAL(fee_rounder.round(-0), 0); # 28 : 2 : BOOST_CHECK_EQUAL(fee_rounder.round(-1), 0); # 29 : : # 30 : : // check that MAX_MONEY rounds to 9170997 # 31 : 2 : BOOST_CHECK_EQUAL(fee_rounder.round(MAX_MONEY), 9170997); # 32 : 2 : } # 33 : : # 34 : : BOOST_AUTO_TEST_SUITE_END()