|
From: Steven W. <ste...@us...> - 2007-04-09 17:59:29
|
Update of /cvsroot/boost-sandbox/boost-sandbox/libs/units/test In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv998/boost-sandbox/libs/units/test Modified Files: test_conversion.cpp Log Message: More complete testing of heterogeneous, dimensionless conversions Index: test_conversion.cpp =================================================================== RCS file: /cvsroot/boost-sandbox/boost-sandbox/libs/units/test/test_conversion.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- test_conversion.cpp 9 Apr 2007 16:53:00 -0000 1.4 +++ test_conversion.cpp 9 Apr 2007 17:59:26 -0000 1.5 @@ -31,6 +31,8 @@ #include <boost/test/minimal.hpp> +#define BOOST_UNITS_CHECK_CLOSE(a, b) (BOOST_CHECK((std::abs((a) - (b)) < .0000001))) + namespace bu = boost::units; typedef bu::SI::length si_length; @@ -95,9 +97,20 @@ - bu::quantity<bu::SI::dimensionless> dimensionless_test(1.0*bu::CGS::dyne/bu::SI::newton); - BOOST_CHECK(dimensionless_test == 1e-5); + bu::quantity<bu::SI::dimensionless> dimensionless_test1(1.0*bu::CGS::dyne/bu::SI::newton); + BOOST_CHECK(dimensionless_test1 == 1e-5); + + typedef bu::multiply_typeof_helper<bu::SI::length, bu::CGS::length>::type m_cm; + typedef bu::divide_typeof_helper<m_cm, m_cm>::type heterogeneous_dimensionless; + bu::quantity<heterogeneous_dimensionless> dimensionless_test2(1.0*bu::CGS::dyne/bu::SI::newton); + BOOST_CHECK(dimensionless_test2.value() == 1e-5); + bu::quantity<bu::divide_typeof_helper<bu::CGS::force, bu::SI::force>::type> dimensionless_test3(dimensionless_test2); + BOOST_UNITS_CHECK_CLOSE(dimensionless_test3.value(), 1.0); + + //m/cm -> g/kg + bu::quantity<bu::divide_typeof_helper<bu::SI::length, bu::CGS::length>::type> dimensionless_test4(2.0 * bu::SI::meters / bu::CGS::centimeters); + bu::quantity<bu::divide_typeof_helper<bu::CGS::mass, bu::SI::mass>::type> dimensionless_test5(dimensionless_test4); + BOOST_UNITS_CHECK_CLOSE(dimensionless_test5.value(), 2e5); return(0); } - |