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);
}
-
|