// Copyright 2022 Hans Dembinski // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) #include #include #include "is_close.hpp" #include "throw_exception.hpp" using namespace boost::histogram::utility; int main() { // confidence_level <-> deviation { confidence_level cl1 = deviation{1}; BOOST_TEST_IS_CLOSE(static_cast(cl1), 0.683, 1e-3); BOOST_TEST_IS_CLOSE(static_cast(deviation(cl1)), 1, 1e-8); confidence_level cl2 = deviation{2}; BOOST_TEST_IS_CLOSE(static_cast(cl2), 0.954, 1e-3); BOOST_TEST_IS_CLOSE(static_cast(deviation(cl2)), 2, 1e-8); confidence_level cl3 = deviation{3}; BOOST_TEST_IS_CLOSE(static_cast(cl3), 0.997, 1e-3); BOOST_TEST_IS_CLOSE(static_cast(deviation(cl3)), 3, 1e-8); } // invalid values { BOOST_TEST_THROWS((void)deviation{-0.5}, std::invalid_argument); BOOST_TEST_THROWS((void)confidence_level{-0.1}, std::invalid_argument); BOOST_TEST_THROWS((void)confidence_level{0}, std::invalid_argument); BOOST_TEST_THROWS((void)confidence_level{1.1}, std::invalid_argument); } return boost::report_errors(); }