feerounder_tests.cpp
1 // Copyright (c) 2020-present 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 <consensus/amount.h> 6 #include <policy/fees/block_policy_estimator.h> 7 8 #include <boost/test/unit_test.hpp> 9 10 #include <set> 11 12 BOOST_AUTO_TEST_SUITE(fee_rounder_tests) 13 14 BOOST_AUTO_TEST_CASE(FeeRounder) 15 { 16 FastRandomContext rng{/*fDeterministic=*/true}; 17 FeeFilterRounder fee_rounder{CFeeRate{1000}, rng}; 18 19 // check that 1000 rounds to 974 or 1071 20 std::set<CAmount> results; 21 while (results.size() < 2) { 22 results.emplace(fee_rounder.round(1000)); 23 } 24 BOOST_CHECK_EQUAL(*results.begin(), 974); 25 BOOST_CHECK_EQUAL(*++results.begin(), 1071); 26 27 // check that negative amounts rounds to 0 28 BOOST_CHECK_EQUAL(fee_rounder.round(-0), 0); 29 BOOST_CHECK_EQUAL(fee_rounder.round(-1), 0); 30 31 // check that MAX_MONEY rounds to 9170997 32 BOOST_CHECK_EQUAL(fee_rounder.round(MAX_MONEY), 9170997); 33 } 34 35 BOOST_AUTO_TEST_SUITE_END()