#include #include #include "test.hpp" FIT_TEST_CASE() { auto f = fit::limit(std::integral_constant())(binary_class()); FIT_TEST_CHECK(f(1, 2) == 3); static_assert(fit::function_param_limit::value == 2, "Function limit is 2"); } FIT_TEST_CASE() { auto f = fit::limit_c<2>(binary_class()); FIT_TEST_CHECK(f(1, 2) == 3); static_assert(fit::function_param_limit::value == 2, "Function limit is 2"); } FIT_TEST_CASE() { auto f = fit::limit_c<2>(fit::always(3)); FIT_TEST_CHECK(f(1, 2) == 3); FIT_TEST_CHECK(f(1) == 3); FIT_TEST_CHECK(f() == 3); static_assert(fit::function_param_limit::value == 2, "Function limit is 2"); static_assert(fit::is_callable::value, "Callable"); static_assert(fit::is_callable::value, "Callable"); static_assert(!fit::is_callable::value, "Not Callable"); } FIT_TEST_CASE() { static_assert(!fit::is_callable::value, "Not integral constant"); }