mirror of
https://github.com/boostorg/odeint.git
synced 2025-05-11 05:24:01 +00:00
60 lines
1.2 KiB
C++
60 lines
1.2 KiB
C++
#include <boost/config.hpp>
|
|
#ifdef BOOST_MSVC
|
|
#pragma warning(disable:4996)
|
|
#endif
|
|
|
|
#define BOOST_TEST_MODULE odeint_polynomial
|
|
|
|
#include <boost/test/unit_test.hpp>
|
|
|
|
#include <boost/numeric/odeint/stepper/detail/polynomial.hpp>
|
|
|
|
using namespace boost::unit_test;
|
|
using namespace boost::numeric::odeint::detail;
|
|
|
|
BOOST_AUTO_TEST_SUITE( polynomial_test )
|
|
|
|
BOOST_AUTO_TEST_CASE( test_init )
|
|
{
|
|
Polynomial<3, double> p1;
|
|
|
|
boost::array<double, 3> coeff = {0, 1, 2};
|
|
Polynomial<3, double> p2(coeff);
|
|
}
|
|
BOOST_AUTO_TEST_CASE( test_add_roots )
|
|
{
|
|
Polynomial<3, double> poly;
|
|
poly.add_root(1);
|
|
|
|
poly.add_root(0);
|
|
}
|
|
BOOST_AUTO_TEST_CASE( test_copy )
|
|
{
|
|
|
|
}
|
|
BOOST_AUTO_TEST_CASE( test_remove )
|
|
{
|
|
|
|
}
|
|
BOOST_AUTO_TEST_CASE( test_integrate )
|
|
{
|
|
|
|
}
|
|
BOOST_AUTO_TEST_CASE( test_evaluate )
|
|
{
|
|
boost::array<double, 3> c1 = {2, 1, 0};
|
|
Polynomial<3, double> p1(c1);
|
|
|
|
BOOST_CHECK_EQUAL(p1.evaluate(0), 0);
|
|
BOOST_CHECK_EQUAL(p1.evaluate(1), 3);
|
|
BOOST_CHECK_EQUAL(p1.evaluate(2), 10);
|
|
|
|
boost::array<double, 5> c2 = {0.001, 10, 0, 3, 1};
|
|
Polynomial<5, double> p2(c2);
|
|
|
|
BOOST_CHECK_CLOSE(p2.evaluate(0), 1, 0.001);
|
|
BOOST_CHECK_CLOSE(p2.evaluate(0.001), 1.003, 0.001);
|
|
BOOST_CHECK_CLOSE(p2.evaluate(1.001), 14.034, 0.001);
|
|
}
|
|
|
|
BOOST_AUTO_TEST_SUITE_END() |