21 #define BOOST_TEST_MODULE libjmmcg_tests
22 #include <boost/test/included/unit_test.hpp>
24 #include <boost/mpl/list.hpp>
26 #include "core/fibonacci.hpp"
28 using namespace libjmmcg;
44 BOOST_AUTO_TEST_SUITE(fibonacci_tests)
46 BOOST_AUTO_TEST_SUITE(mpl)
48 BOOST_AUTO_TEST_CASE_TEMPLATE(check_value, fibonacci_t, check_mpl_fibonacci_tests) {
49 BOOST_CHECK_EQUAL(fibonacci_t::first_type::value, fibonacci_t::second_type::value);
52 BOOST_AUTO_TEST_SUITE_END()
54 BOOST_AUTO_TEST_SUITE(dyn)
56 BOOST_AUTO_TEST_CASE(fibonacci_0) {
57 BOOST_CHECK_EQUAL(libjmmcg::dyn::fibonacci::result(0), 1ull);
60 BOOST_AUTO_TEST_CASE(fibonacci_1) {
61 BOOST_CHECK_EQUAL(libjmmcg::dyn::fibonacci::result(1), 1ull);
64 BOOST_AUTO_TEST_CASE(fibonacci_2) {
65 BOOST_CHECK_EQUAL(libjmmcg::dyn::fibonacci::result(2), 2ull);
68 BOOST_AUTO_TEST_CASE(fibonacci_3) {
69 BOOST_CHECK_EQUAL(libjmmcg::dyn::fibonacci::result(3), 3ull);
72 BOOST_AUTO_TEST_CASE(fibonacci_4) {
73 BOOST_CHECK_EQUAL(libjmmcg::dyn::fibonacci::result(4), 5ull);
76 BOOST_AUTO_TEST_CASE(fibonacci_5) {
77 BOOST_CHECK_EQUAL(libjmmcg::dyn::fibonacci::result(5), 8ull);
80 BOOST_AUTO_TEST_CASE(fibonacci_6) {
81 BOOST_CHECK_EQUAL(libjmmcg::dyn::fibonacci::result(6), 13ull);
84 BOOST_AUTO_TEST_CASE(fibonacci_7) {
85 BOOST_CHECK_EQUAL(libjmmcg::dyn::fibonacci::result(7), 21ull);
88 BOOST_AUTO_TEST_CASE(fibonacci_8) {
89 BOOST_CHECK_EQUAL(libjmmcg::dyn::fibonacci::result(8), 34ull);
92 BOOST_AUTO_TEST_CASE(fibonacci_9) {
93 BOOST_CHECK_EQUAL(libjmmcg::dyn::fibonacci::result(9), 55ull);
96 BOOST_AUTO_TEST_CASE(fibonacci_10) {
97 BOOST_CHECK_EQUAL(libjmmcg::dyn::fibonacci::result(10), 89ull);
100 BOOST_AUTO_TEST_SUITE_END()
102 BOOST_AUTO_TEST_SUITE_END()