test_unscale.cpp 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // Boost.Units - A C++ library for zero-overhead dimensional analysis and
  2. // unit/quantity manipulation and conversion
  3. //
  4. // Copyright (C) 2003-2008 Matthias Christian Schabel
  5. // Copyright (C) 2007-2008 Steven Watanabe
  6. //
  7. // Distributed under the Boost Software License, Version 1.0. (See
  8. // accompanying file LICENSE_1_0.txt or copy at
  9. // http://www.boost.org/LICENSE_1_0.txt)
  10. /**
  11. \file
  12. \brief test_unscale.cpp
  13. \details
  14. Test that unscale works in an attempt to isolate the sun problems.
  15. Output:
  16. @verbatim
  17. @endverbatim
  18. **/
  19. #include <boost/units/reduce_unit.hpp>
  20. #include <boost/units/detail/unscale.hpp>
  21. #include <boost/units/base_units/temperature/fahrenheit.hpp>
  22. #include <boost/mpl/assert.hpp>
  23. #include <boost/type_traits/is_same.hpp>
  24. BOOST_MPL_ASSERT((boost::is_same<boost::units::unscale<boost::units::temperature::fahrenheit_base_unit::unit_type::system_type>::type,
  25. boost::units::temperature::fahrenheit_base_unit::unit_type::system_type>));
  26. BOOST_MPL_ASSERT((boost::is_same<boost::units::unscale<boost::units::temperature::fahrenheit_base_unit::unit_type>::type,
  27. boost::units::temperature::fahrenheit_base_unit::unit_type>));
  28. BOOST_MPL_ASSERT((boost::is_same<boost::units::unscale<boost::units::reduce_unit<boost::units::temperature::fahrenheit_base_unit::unit_type>::type>::type,
  29. boost::units::temperature::fahrenheit_base_unit::unit_type>));
  30. BOOST_MPL_ASSERT((boost::is_same<
  31. boost::units::temperature::fahrenheit_base_unit::unit_type,
  32. boost::units::unit<
  33. boost::units::temperature_dimension,
  34. boost::units::heterogeneous_system<
  35. boost::units::heterogeneous_system_impl<
  36. boost::units::list<
  37. boost::units::heterogeneous_system_dim<
  38. boost::units::temperature::fahrenheit_base_unit,
  39. boost::units::static_rational<1>
  40. >,
  41. boost::units::dimensionless_type
  42. >,
  43. boost::units::temperature_dimension,
  44. boost::units::dimensionless_type
  45. >
  46. >
  47. >
  48. >));