0

catalan.hpp:

#pragma once
/*! \file   catalan.hpp
    \author Your name here
    \date   Development date
    \brief  Student's Catalan number function implementations.
*/


// ToDo:implement the catalan_bionomial() and catalan_product_series() functions.
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;

cpp_int catalan_bionomial(cpp_int n)
{
    if (n < 2)
        return 1;

    cpp_int ret = 1;
    for (int i = 2; i <= n; i++)
    {
        ret *= ((n + i)/i);
    }

    return ret;
}

ut_catalan.cpp:

/*! \file   ut_catalan.cpp
    \author Garth Santor
    \date   2018.09.09
    \brief  Test catalan number function implementations.
*/


// import student's catalan implementation
#include "../include/catalan.hpp"

// import the boost unit test framework
#define BOOST_TEST_MODULE GradePellFunction
#include <boost/test/auto_unit_test.hpp>
#include <boost/mpl/list.hpp>

// import the boost multiprecision integer library
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;

// import standard libraries
#include <cstdint>
#include <vector>
using namespace std;


// Catalan tests
// =======================================================================================================

std::vector<cpp_int> catalanNumbers{ 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, 18367353072152, 69533550916004, 263747951750360, 1002242216651368, 3814986502092304,
};



BOOST_AUTO_TEST_CASE(catalan_test_binomial) {
    cpp_int idx = 0;
    for (auto cn : catalanNumbers)
        BOOST_CHECK(cn == catalan_bionomial(idx++));
}



//BOOST_AUTO_TEST_CASE(catalan_test_product_series) {
//  cpp_int idx = 0;
//  for (auto cn : catalanNumbers)
//      BOOST_CHECK(cn == catalan_product_series(idx++));
//
//  BOOST_CHECK(catalan_product_series(cpp_int(100)) == cpp_int("896519947090131496687170070074100632420837521538745909320"));
//}

Ошибка: LNK2019 ссылка на неразрешенный внешний символ int __cdecl cpp_main(int,char * * const) (?cpp_main@@YAHHQEAPEAD@Z) в функции main ut_catalan G:\Projects\Programming\Фриланс\Task #214310 Numerical Limits\Numerical Series (Start)\ut_catalan\libboost_prg_exec_monitor-vc141-mt-gd-x64-1_68.lib(cpp_main.obj) 1

Библиотеки подключены:

libboost_atomic-vc141-mt-gd-x64-1_68.lib libboost_chrono-vc141-mt-gd-x64-1_68.lib libboost_context-vc141-mt-gd-x64-1_68.lib libboost_coroutine-vc141-mt-gd-x64-1_68.lib libboost_date_time-vc141-mt-gd-x64-1_68.lib libboost_exception-vc141-mt-gd-x64-1_68.lib libboost_filesystem-vc141-mt-gd-x64-1_68.lib libboost_graph-vc141-mt-gd-x64-1_68.lib libboost_iostreams-vc141-mt-gd-x64-1_68.lib libboost_locale-vc141-mt-gd-x64-1_68.lib libboost_log-vc141-mt-gd-x64-1_68.lib libboost_log_setup-vc141-mt-gd-x64-1_68.lib libboost_math_c99-vc141-mt-gd-x64-1_68.lib libboost_math_c99f-vc141-mt-gd-x64-1_68.lib libboost_math_c99l-vc141-mt-gd-x64-1_68.lib libboost_math_tr1-vc141-mt-gd-x64-1_68.lib libboost_math_tr1f-vc141-mt-gd-x64-1_68.lib libboost_math_tr1l-vc141-mt-gd-x64-1_68.lib libboost_prg_exec_monitor-vc141-mt-gd-x64-1_68.lib libboost_program_options-vc141-mt-gd-x64-1_68.lib libboost_random-vc141-mt-gd-x64-1_68.lib libboost_regex-vc141-mt-gd-x64-1_68.lib libboost_serialization-vc141-mt-gd-x64-1_68.lib libboost_signals-vc141-mt-gd-x64-1_68.lib libboost_system-vc141-mt-gd-x64-1_68.lib libboost_test_exec_monitor-vc141-mt-gd-x64-1_68.lib libboost_thread-vc141-mt-gd-x64-1_68.lib libboost_timer-vc141-mt-gd-x64-1_68.lib libboost_unit_test_framework-vc141-mt-gd-x64-1_68.lib libboost_wave-vc141-mt-gd-x64-1_68.lib libboost_wserialization-vc141-mt-gd-x64-1_68.lib

0 Answers0