📄 basic_cstring_test.cpp
字号:
BOOST_CHECK_EQUAL( traits_type::compare( bcs1.begin(), LITERAL( "test" ), bcs1.size() ), 0 ); bcs1.assign( l.buff+1, l.buff+3 ); BOOST_CHECK_EQUAL( traits_type::compare( bcs1.begin(), LITERAL( "est" ), bcs1.size() ), 0 ); bcs1.assign( bcs2, 4, 3 ); BOOST_CHECK_EQUAL( traits_type::compare( bcs1.begin(), LITERAL( "_st" ), bcs1.size() ), 0 ); bcs1.swap( bcs2 ); BOOST_CHECK_EQUAL( traits_type::compare( bcs1.begin(), TEST_STRING, bcs1.size() ), 0 ); BOOST_CHECK_EQUAL( traits_type::compare( bcs2.begin(), LITERAL( "_st" ), bcs2.size() ), 0 );}//____________________________________________________________________________//BOOST_TEST_CASE_TEMPLATE_FUNCTION( asignment_std_string_test, CharT ){ typedef typename utf::basic_cstring<CharT>::traits_type traits_type; utf::basic_cstring<CharT> bcs1; typename utf::basic_cstring<CharT>::std_string l( TEST_STRING ); bcs1 = l; BOOST_CHECK_EQUAL( traits_type::compare( bcs1.begin(), TEST_STRING, bcs1.size() ), 0 ); bcs1.assign( l ); BOOST_CHECK_EQUAL( traits_type::compare( bcs1.begin(), TEST_STRING, bcs1.size() ), 0 ); bcs1.assign( l, 1, 2 ); BOOST_CHECK_EQUAL( traits_type::compare( bcs1.begin(), LITERAL( "es" ), bcs1.size() ), 0 );}//____________________________________________________________________________//BOOST_TEST_CASE_TEMPLATE_FUNCTION( comparison_test, CharT ){ utf::basic_cstring<CharT> bcs1( TEST_STRING ); utf::basic_cstring<CharT> bcs2( TEST_STRING ); BOOST_CHECK_EQUAL( bcs1, TEST_STRING ); BOOST_CHECK_EQUAL( TEST_STRING, bcs1 ); BOOST_CHECK_EQUAL( bcs1, bcs2 ); bcs1.resize( 4 ); BOOST_CHECK_EQUAL( bcs1, LITERAL( "test" ) ); BOOST_CHECK( bcs1 != TEST_STRING ); BOOST_CHECK( TEST_STRING != bcs1 ); BOOST_CHECK( bcs1 != bcs2 ); LOCAL_DEF( bcs3, "TeSt" ); BOOST_CHECK( utf::case_ins_eq( bcs1, bcs3 ) );}//____________________________________________________________________________//BOOST_TEST_CASE_TEMPLATE_FUNCTION( comparison_std_string_test, CharT ){ utf::basic_cstring<CharT> bcs1( TEST_STRING ); typename utf::basic_cstring<CharT>::std_string l( TEST_STRING ); BOOST_CHECK( bcs1 == l );#if BOOST_WORKAROUND(BOOST_MSVC, > 1300) BOOST_CHECK( l == bcs1 );#endif bcs1.resize( 4 ); BOOST_CHECK( bcs1 != l );#if BOOST_WORKAROUND(BOOST_MSVC, > 1300) BOOST_CHECK( l != bcs1 );#endif}//____________________________________________________________________________//BOOST_TEST_CASE_TEMPLATE_FUNCTION( ordering_test, CharT ){ LOCAL_DEF( bcs1, "aBcd" ); LOCAL_DEF( bcs2, "aBbdd" ); LOCAL_DEF( bcs3, "aBbde" ); LOCAL_DEF( bcs4, "abab" ); BOOST_CHECK( bcs1 < bcs2 ); BOOST_CHECK( bcs2 < bcs3 ); BOOST_CHECK( bcs1 < bcs3 ); BOOST_CHECK( bcs1 < bcs4 ); utf::case_ins_less<CharT> cil; BOOST_CHECK( cil( bcs4, bcs1 ) );}//____________________________________________________________________________//BOOST_TEST_CASE_TEMPLATE_FUNCTION( trim_test, CharT ){ LOCAL_DEF( bcs0, "tes" ); bcs0.trim_right( 1 ); BOOST_CHECK_EQUAL( bcs0.size(), (unsigned)2 ); BOOST_CHECK_EQUAL( bcs0[0], 't' ); bcs0.trim_left( 1 ); BOOST_CHECK_EQUAL( bcs0.size(), (unsigned)1 ); BOOST_CHECK_EQUAL( bcs0[0], 'e' ); bcs0.trim_left( 1 ); BOOST_CHECK( bcs0.is_empty() ); bcs0 = TEST_STRING; bcs0.trim_left( 11 ); BOOST_CHECK( bcs0.is_empty() ); bcs0 = TEST_STRING; bcs0.trim_right( 11 ); BOOST_CHECK( bcs0.is_empty() ); bcs0 = TEST_STRING; bcs0.trim_right( bcs0.size() - bcs0.find( LITERAL( "t_s" ) ) - 3 ); BOOST_CHECK_EQUAL( bcs0, LITERAL( "test_s" ) ); bcs0.trim_left( bcs0.find( LITERAL( "t_s" ) ) ); BOOST_CHECK_EQUAL( bcs0, LITERAL( "t_s" ) ); LOCAL_DEF( bcs1, "abcd " ); LOCAL_DEF( bcs2, " abcd" ); LOCAL_DEF( bcs3, " abcd " ); bcs1.trim_right(); BOOST_CHECK_EQUAL( bcs1, LITERAL( "abcd" ) ); bcs2.trim_left(); BOOST_CHECK_EQUAL( bcs2, LITERAL( "abcd" ) ); bcs3.trim( LITERAL( "\"" ) ); BOOST_CHECK_EQUAL( bcs3, LITERAL( " abcd " ) ); bcs3.trim(); BOOST_CHECK_EQUAL( bcs3, LITERAL( "abcd" ) ); bcs3.trim(); BOOST_CHECK_EQUAL( bcs3, LITERAL( "abcd" ) );}//____________________________________________________________________________//BOOST_TEST_CASE_TEMPLATE_FUNCTION( io_test, CharT ){ utf::basic_cstring<CharT> bcs1( TEST_STRING ); bcs1.trim_right( 7 ); tt::output_test_stream ostr; ostr << std::setw( 6 ) << bcs1; BOOST_CHECK( ostr.is_equal( " test" ) ); ostr << std::setw( 3 ) << bcs1; BOOST_CHECK( ostr.is_equal( "test" ) ); ostr << std::setw( 5 ) << std::setiosflags( std::ios::left ) << bcs1; BOOST_CHECK( ostr.is_equal( "test " ) );}//____________________________________________________________________________//BOOST_TEST_CASE_TEMPLATE_FUNCTION( find_test, CharT ){ typedef typename utf::basic_cstring<CharT>::size_type size; utf::basic_cstring<CharT> bcs1( TEST_STRING ); size not_found = (size)utf::basic_cstring<CharT>::npos; BOOST_CHECK_EQUAL( bcs1.find( utf::basic_cstring<CharT>() ), not_found ); BOOST_CHECK_EQUAL( bcs1.find( LITERAL( "test" ) ), (size)0 ); BOOST_CHECK_EQUAL( bcs1.find( TEST_STRING ), (size)0 ); BOOST_CHECK_EQUAL( bcs1.find( LITERAL( "test_string " ) ), not_found ); BOOST_CHECK_EQUAL( bcs1.find( LITERAL( " test_string" ) ), not_found ); BOOST_CHECK_EQUAL( bcs1.find( LITERAL( "est" ) ), (size)1 ); BOOST_CHECK_EQUAL( bcs1.find( LITERAL( "t_st" ) ), (size)3 ); BOOST_CHECK_EQUAL( bcs1.find( LITERAL( "ing" ) ), (size)8 ); BOOST_CHECK_EQUAL( bcs1.find( LITERAL( "tst" ) ), not_found ); BOOST_CHECK_EQUAL( bcs1.rfind( utf::basic_cstring<CharT>() ), not_found ); BOOST_CHECK_EQUAL( bcs1.rfind( LITERAL( "test" ) ), (size)0 ); BOOST_CHECK_EQUAL( bcs1.rfind( TEST_STRING ), (size)0 ); BOOST_CHECK_EQUAL( bcs1.rfind( LITERAL( "test_string " ) ), not_found ); BOOST_CHECK_EQUAL( bcs1.rfind( LITERAL( " test_string" ) ), not_found ); BOOST_CHECK_EQUAL( bcs1.rfind( LITERAL( "est" ) ), (size)1 ); BOOST_CHECK_EQUAL( bcs1.rfind( LITERAL( "t_st" ) ), (size)3 ); BOOST_CHECK_EQUAL( bcs1.rfind( LITERAL( "ing" ) ), (size)8 ); BOOST_CHECK_EQUAL( bcs1.rfind( LITERAL( "tst" ) ), not_found );}//____________________________________________________________________________//void const_conversion(){ char arr[] = { "ABC" }; utf::basic_cstring<char> str1( arr ); utf::basic_cstring<char const> str2; str2.assign( str1 ); BOOST_CHECK_EQUAL( str1, "ABC" ); BOOST_CHECK_EQUAL( str2, "ABC" );}//____________________________________________________________________________//utf::test_suite*init_unit_test_suite( int /*argc*/, char* /*argv*/[] ){ utf::test_suite* test= BOOST_TEST_SUITE("basic_cstring test"); test->add( BOOST_TEST_CASE_TEMPLATE( constructors_test, char_types ) );#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) test->add( BOOST_TEST_CASE_TEMPLATE( constructors_std_string_test, base_const_char_types ) ); test->add( BOOST_TEST_CASE_TEMPLATE( asignment_std_string_test, base_const_char_types ) ); test->add( BOOST_TEST_CASE_TEMPLATE( comparison_std_string_test, base_const_char_types ) );#endif test->add( BOOST_TEST_CASE( array_construction_test ) ); test->add( BOOST_TEST_CASE_TEMPLATE( data_access_test, char_types ) ); test->add( BOOST_TEST_CASE_TEMPLATE( size_test, char_types ) ); test->add( BOOST_TEST_CASE_TEMPLATE( asignment_test, char_types ) ); test->add( BOOST_TEST_CASE_TEMPLATE( comparison_test, char_types ) ); test->add( BOOST_TEST_CASE_TEMPLATE( ordering_test, char_types ) ); test->add( BOOST_TEST_CASE_TEMPLATE( trim_test, char_types ) ); test->add( BOOST_TEST_CASE_TEMPLATE( io_test, io_test_types ) ); test->add( BOOST_TEST_CASE_TEMPLATE( find_test, char_types ) ); test->add( BOOST_TEST_CASE( &const_conversion ) ); return test;}// EOF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -