// 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 main() { //// si->si always true //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //// cgs->cgs always true //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); //// si->cgs //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == false)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == false)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == true)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == true)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); //// cgs->si //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == false)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == false)); //BOOST_TEST((bu::base_unit_is_implicitly_convertible::value == true)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == true)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == true)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((bu::is_implicitly_convertible::value == false)); BOOST_TEST((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_TEST((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_TEST((C1.value() == C2.value())); return boost::report_errors(); }