#include #include #include "fsm.h" using namespace fsmlite::detail; void test_concat() { assert((std::is_same, concat<>::type>::value)); assert((std::is_same, concat>::type>::value)); assert((std::is_same, concat>::type>::value)); } void test_filter() { assert((std::is_same, filter::type>::value)); assert((std::is_same, filter::type>::value)); assert((std::is_same, filter::type>::value)); assert((std::is_same, filter::type>::value)); assert((std::is_same, filter::type>::value)); assert((std::is_same, filter::type>::value)); assert((std::is_same, filter::type>::value)); } void test_is_invocable() { struct foo { void operator()(); void operator()(int); void operator()(char*); }; assert((is_invocable::value)); assert((is_invocable::value)); assert((is_invocable::value)); assert((is_invocable::value)); assert((is_invocable::value)); assert((is_invocable::value)); assert((!is_invocable::value)); assert((!is_invocable::value)); assert((!is_invocable::value)); assert((!is_invocable::value)); } void test_is_invocable_fn() { void foo(); int bar(int); assert((is_invocable::value)); assert((!is_invocable::value)); assert((!is_invocable::value)); assert((!is_invocable::value)); assert((!is_invocable::value)); assert((!is_invocable::value)); assert((!is_invocable::value)); assert((!is_invocable::value)); assert((is_invocable::value)); assert((is_invocable::value)); assert((is_invocable::value)); assert((is_invocable::value)); assert((!is_invocable::value)); assert((!is_invocable::value)); } int main() { test_concat(); test_filter(); test_is_invocable(); test_is_invocable_fn(); return 0; }