// Boost.Units - A C++ library for zero-overhead dimensional analysis and // unit/quantity manipulation and conversion // // Copyright (C) 2003-2008 Matthias Christian Schabel // Copyright (C) 2008 Steven Watanabe // // 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) /** \file \brief test_implicit_conversion.cpp \details Test implicit conversions for quantity. Output: @verbatim @endverbatim **/ #include #include #include #include #include namespace bu = boost::units; int test_main(int,char *[]) { //// si->si always true //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //// cgs->cgs always true //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); //// si->cgs //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == false)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == false)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == true)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == true)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); //// cgs->si //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == false)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == false)); //BOOST_CHECK((bu::base_unit_is_implicitly_convertible::value == true)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == true)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == true)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CHECK((bu::is_implicitly_convertible::value == false)); BOOST_CONSTEXPR_OR_CONST bu::quantity S1(2.0*bu::si::seconds); BOOST_CONSTEXPR_OR_CONST bu::quantity S2 = S1; BOOST_CHECK((S1.value() == S2.value())); BOOST_CONSTEXPR_OR_CONST bu::quantity S3(2.0*bu::si::catalytic_activity()); BOOST_CONSTEXPR_OR_CONST bu::quantity C1(2.0*bu::cgs::seconds); BOOST_CONSTEXPR_OR_CONST bu::quantity C2 = C1; BOOST_CHECK((C1.value() == C2.value())); return 0; }