📄 chset_tests.cpp
字号:
"\t!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]\n"
"\t_____________________________________________________________\n"
"\n"
"\t ********** ************************** \ta\n"
"\t ********************** \tb\n"
"\t******************** *******************\td\n"
"\t * \te\n"
"\t***************** *******************************************\tf\n"
"\n"
"\n"
"\t_____________________________________________________________\n"
"\tInverse\n"
"\t!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]\n"
"\t_____________________________________________________________\n"
"\n"
"\t*************** ******* ***\t~a\n"
"\t*************** ******* ***\tchset<>(~a)\n"
"\t ********** ************************** \t~~a\n"
"\t******************** *******************\t~b\n"
"\n"
"\n"
"\t_____________________________________________________________\n"
"\tUnion\n"
"\t!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]\n"
"\t_____________________________________________________________\n"
"\n"
"\t ********** ************************** \ta\n"
"\t ********************** \tb\n"
"\t******************** *******************\td\n"
"\t * \te\n"
"\t***************** *******************************************\tf\n"
"\t ******************************************* \ta | b\n"
"\t ******************************************* \ta | b_\n"
"\t ******************************************* \tb_ | a\n"
"\t*************************************************************\ta | anychar_p\n"
"\t*************************************************************\tb | anychar_p\n"
"\t************************* *****************************\ta | d\n"
"\t************************* *****************************\ta | d_\n"
"\t************************* *****************************\td_ | a\n"
"\t ********** ************************** \ta | e_\n"
"\t * ********************** \te_ | b\n"
"\t*************************************************************\ta | f_\n"
"\t***************** *******************************************\tf_ | b\n"
"\n"
"\n"
"\t_____________________________________________________________\n"
"\tIntersection\n"
"\t!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]\n"
"\t_____________________________________________________________\n"
"\n"
"\t ********** ************************** \ta\n"
"\t ********************** \tb\n"
"\t******************** *******************\td\n"
"\t * \te\n"
"\t***************** *******************************************\tf\n"
"\t ***** ********** \ta & b\n"
"\t ***** ********** \ta & b_\n"
"\t ***** ********** \tb_ & a\n"
"\t ***** **************** \ta & d\n"
"\t ***** **************** \ta & d_\n"
"\t ***** **************** \td_ & a\n"
"\t * \ta & e_\n"
"\t \te_ & b\n"
"\t ** ******* ************************** \ta & f_\n"
"\t ********************** \tf_ & b\n"
"\t ********** ************************** \ta & anychar_p\n"
"\t ********************** \tb & anychar_p\n"
"\n"
"\n"
"\t_____________________________________________________________\n"
"\tDifference\n"
"\t!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]\n"
"\t_____________________________________________________________\n"
"\n"
"\t ********** ************************** \ta\n"
"\t ********************** \tb\n"
"\t******************** *******************\td\n"
"\t * \te\n"
"\t***************** *******************************************\tf\n"
"\t ***** **************** \ta - b\n"
"\t ******* \tb - a\n"
"\t ***** **************** \ta - b_\n"
"\t ******* \tb_ - a\n"
"\t ***** ********** \ta - d\n"
"\t*************** ***\td - a\n"
"\t ***** ********** \ta - d_\n"
"\t*************** ***\td_ - a\n"
"\t ** ******* ************************** \ta - e_\n"
"\t * \te_ - b\n"
"\t * \ta - f_\n"
"\t***************** ** *******************\tf_ - b\n"
"\t \ta - anychar_p\n"
"\t*************** ******* ***\tanychar_p - a\n"
"\t \tb - anychar_p\n"
"\t******************** *******************\tanychar_p - b\n"
"\n"
"\n"
"\t_____________________________________________________________\n"
"\tXor\n"
"\t!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]\n"
"\t_____________________________________________________________\n"
"\n"
"\t ********** ************************** \ta\n"
"\t ********************** \tb\n"
"\t******************** *******************\td\n"
"\t * \te\n"
"\t***************** *******************************************\tf\n"
"\t ***** ******* **************** \ta ^ b\n"
"\t ***** ******* **************** \ta ^ b_\n"
"\t ***** ******* **************** \tb_ ^ a\n"
"\t*************** ***** ********** ***\ta ^ d\n"
"\t*************** ***** ********** ***\ta ^ d_\n"
"\t*************** ***** ********** ***\td_ ^ a\n"
"\t ** ******* ************************** \ta ^ e_\n"
"\t * ********************** \te_ ^ b\n"
"\t*************** * ******* ***\ta ^ f_\n"
"\t***************** ** *******************\tf_ ^ b\n"
"\t ********** ************************** \ta ^ nothing_p\n"
"\t*************** ******* ***\ta ^ anychar_p\n"
"\t ********************** \tb ^ nothing_p\n"
"\t******************** *******************\tb ^ anychar_p\n"
;
void chset_tests()
{
sstream_t tout, aout, bout;
tout << expected_output;
chset_tests(aout, "0-9A-Z", '5', 'J', '2');
chset_tests(bout, L"0-9A-Z", L'5', L'J', L'2');
#define narrow_chset_works (getstring(aout) == getstring(tout))
#define wide_chset_works (getstring(bout) == getstring(tout))
if (!narrow_chset_works || !wide_chset_works)
{
std::cout << "EXPECTED:\n" <<
getstring(tout);
std::cout << "GOT:\n" <<
getstring(aout);
std::cout << "AND:\n" <<
getstring(bout);
}
BOOST_CHECK(narrow_chset_works);
BOOST_CHECK(wide_chset_works);
}
} // namespace
///////////////////////////////////////////////////////////////////////////////
//
// Main
//
///////////////////////////////////////////////////////////////////////////////
char const banner_name[]="Character set tests";
char const suite_name[]="spirit::chset tests";
ut::test_suite *
init_unit_test_suite(int argc, char *argv[])
{
test::init(argc, argv);
test::banner(banner_name);
ut::test_suite* suite = BOOST_TEST_SUITE(suite_name);
suite->add(BOOST_TEST_CASE(chset_tests));
return suite;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -