// Boost string_algo library iterator_test.cpp file ---------------------------// // Copyright Pavol Droba 2002-2003. Use, modification and // distribution is subject to the Boost Software License, Version // 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // See http://www.boost.org for updates, documentation, and revision history. #include #include // equals predicate is used for result comparison #include // Include unit test framework #include #include #include #include #include using namespace std; using namespace boost; template< typename T1, typename T2 > void deep_compare( const T1& X, const T2& Y ) { BOOST_REQUIRE( X.size() == Y.size() ); for( unsigned int nIndex=0; nIndex tokens; vector< vector > vtokens; // find_all tests find_all( tokens, pch1, "xx" ); BOOST_REQUIRE( tokens.size()==2 ); BOOST_CHECK( tokens[0]==string("xx") ); BOOST_CHECK( tokens[1]==string("xx") ); ifind_all( tokens, str2, "xx" ); BOOST_REQUIRE( tokens.size()==3 ); BOOST_CHECK( tokens[0]==string("Xx") ); BOOST_CHECK( tokens[1]==string("xX") ); BOOST_CHECK( tokens[2]==string("xx") ); find_all( tokens, str1, "xx" ); BOOST_REQUIRE( tokens.size()==2 ); BOOST_CHECK( tokens[0]==string("xx") ); BOOST_CHECK( tokens[1]==string("xx") ); find_all( vtokens, str1, string("xx") ); deep_compare( tokens, vtokens ); // split tests split( tokens, str2, is_any_of("xX"), token_compress_on ); BOOST_REQUIRE( tokens.size()==4 ); BOOST_CHECK( tokens[0]==string("") ); BOOST_CHECK( tokens[1]==string("-abc--") ); BOOST_CHECK( tokens[2]==string("-abb-") ); BOOST_CHECK( tokens[3]==string("") ); split( tokens, pch1, is_any_of("x"), token_compress_on ); BOOST_REQUIRE( tokens.size()==3 ); BOOST_CHECK( tokens[0]==string("") ); BOOST_CHECK( tokens[1]==string("-abc--") ); BOOST_CHECK( tokens[2]==string("-abb") ); split( vtokens, str1, is_any_of("x"), token_compress_on ); deep_compare( tokens, vtokens ); split( tokens, str1, is_punct(), token_compress_off ); BOOST_REQUIRE( tokens.size()==5 ); BOOST_CHECK( tokens[0]==string("xx") ); BOOST_CHECK( tokens[1]==string("abc") ); BOOST_CHECK( tokens[2]==string("") ); BOOST_CHECK( tokens[3]==string("xx") ); BOOST_CHECK( tokens[4]==string("abb") ); } // test main int test_main( int, char*[] ) { iterator_test(); return 0; }