Line data Source code
1 : // Copyright (c) 2011-2014 The Bitcoin Core developers 2 : // Distributed under the MIT/X11 software license, see the accompanying 3 : // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 : 5 : #include "timedata.h" 6 : #include "test/test_pivx.h" 7 : 8 : #include <boost/test/unit_test.hpp> 9 : 10 : 11 : BOOST_FIXTURE_TEST_SUITE(timedata_tests, BasicTestingSetup) 12 : 13 2 : BOOST_AUTO_TEST_CASE(util_MedianFilter) 14 : { 15 2 : CMedianFilter<int> filter(5, 15); 16 : 17 1 : BOOST_CHECK_EQUAL(filter.median(), 15); 18 : 19 1 : filter.input(20); // [15 20] 20 1 : BOOST_CHECK_EQUAL(filter.median(), 17); 21 : 22 1 : filter.input(30); // [15 20 30] 23 1 : BOOST_CHECK_EQUAL(filter.median(), 20); 24 : 25 1 : filter.input(3); // [3 15 20 30] 26 1 : BOOST_CHECK_EQUAL(filter.median(), 17); 27 : 28 1 : filter.input(7); // [3 7 15 20 30] 29 1 : BOOST_CHECK_EQUAL(filter.median(), 15); 30 : 31 1 : filter.input(18); // [3 7 18 20 30] 32 1 : BOOST_CHECK_EQUAL(filter.median(), 18); 33 : 34 1 : filter.input(0); // [0 3 7 18 30] 35 1 : BOOST_CHECK_EQUAL(filter.median(), 7); 36 1 : } 37 : 38 : BOOST_AUTO_TEST_SUITE_END()