#define BOOST_TEST_MAIN #include #include #include #include using namespace boost::math::tools; using namespace std; template struct question { polynomial dividend; polynomial divisor; }; template struct answer { answer(std::pair< polynomial, polynomial > const &x) : quotient(x.first), remainder(x.second) {} polynomial quotient; polynomial remainder; }; typedef polynomial PZ; BOOST_AUTO_TEST_CASE( test_main ) { boost::array const d3 = {3, -4, -6, 10}; boost::array const d1 = {1, -2}; boost::array const d3_div_d1 = {3, 2, -2}; boost::array const d3_rem_d1 = {6}; PZ const x(d3.data(), d3.static_size), y(d1.data(), d1.static_size); PZ const zero; PZ const q(d3_div_d1.data(), d3_div_d1.static_size); PZ const r(d3_rem_d1.data(), d3_rem_d1.static_size); // boost::array, answer >, 1> q_and_a; answer result = quotient_remainder(x, y); BOOST_CHECK_EQUAL(result.quotient, q); BOOST_CHECK_EQUAL(result.remainder, r); }