replace function_traits with FunctionPattern
add LTest::addTest() test