//  Copyright John Maddock 2006.
//  Use, modification and distribution are subject to the
//  Boost Software License, Version 1.0. (See accompanying file
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// Basic sanity check that header <boost/math/tools/series.hpp>
// #includes all the files that it needs to.
//
#include <boost/math/tools/series.hpp>
//
// Note this header includes no other headers, this is
// important if this test is to be meaningful:
//
#include "test_compile_result.hpp"

struct Functor
{
   typedef double result_type;
   double operator()();
};
#define U double

Functor func;
boost::uintmax_t uim = 0;

void compile_and_link_test()
{
   check_result<Functor::result_type>(boost::math::tools::sum_series<Functor>(func, i));
   check_result<Functor::result_type>(boost::math::tools::sum_series<Functor>(func, i, uim));
   check_result<Functor::result_type>(boost::math::tools::sum_series<Functor, U>(func, i, d));
   check_result<Functor::result_type>(boost::math::tools::sum_series<Functor, U>(func, i, uim, d));
   check_result<Functor::result_type>(boost::math::tools::kahan_sum_series<Functor>(func, i));
   check_result<Functor::result_type>(boost::math::tools::kahan_sum_series<Functor>(func, i, uim));
}

