Added a few mixed sign, mixed types constructor/assign tests.

This commit is contained in:
Edward Diener
2017-03-27 15:06:16 -04:00
parent e36861a6bd
commit d1cd08fc15

View File

@@ -868,6 +868,61 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(rational_mixed_test, T,
r.assign(val1, val2);
BOOST_CHECK_EQUAL(r, rational_type(20, 30));
}
{
typedef boost::rational<long> rational_type;
T val1 = 20;
long val2 = 30;
rational_type r(val1, val2);
BOOST_CHECK_EQUAL(r, rational_type(20, 30));
r.assign(val1, val2);
BOOST_CHECK_EQUAL(r, rational_type(20, 30));
}
{
typedef boost::rational<unsigned long> rational_type;
T val1 = 20;
unsigned long val2 = 30;
rational_type r(val1, val2);
BOOST_CHECK_EQUAL(r, rational_type(20, 30));
r.assign(val1, val2);
BOOST_CHECK_EQUAL(r, rational_type(20, 30));
}
{
typedef boost::rational<boost::intmax_t> rational_type;
T val1 = 20;
boost::intmax_t val2 = -30;
rational_type r(val1, val2);
BOOST_CHECK_EQUAL(r, rational_type(20, -30));
r.assign(val1, val2);
BOOST_CHECK_EQUAL(r, rational_type(20, -30));
}
{
typedef boost::rational<short> rational_type;
T val1 = -20;
short val2 = -30;
rational_type r(val1, val2);
BOOST_CHECK_EQUAL(r, rational_type(-20, -30));
r.assign(val1, val2);
BOOST_CHECK_EQUAL(r, rational_type(-20, -30));
}
{
typedef boost::rational<long> rational_type;
T val1 = -20;
long val2 = 30;
rational_type r(val1, val2);
BOOST_CHECK_EQUAL(r, rational_type(-20, 30));
r.assign(val1, val2);
BOOST_CHECK_EQUAL(r, rational_type(-20, 30));
}
}
BOOST_AUTO_TEST_CASE(conversions)