📄 algorithms_test.cpp
字号:
// (C) Copyright Gennadiy Rozental 2003-2008.// Distributed under 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/libs/test for the library home page.//// File : $RCSfile$//// Version : $Revision: 49313 $//// Description : unit test for class properties facility// ***************************************************************************// Boost.Test#include <boost/test/unit_test.hpp>#include <boost/test/utils/class_properties.hpp>#include <boost/test/utils/basic_cstring/basic_cstring.hpp>#include <boost/test/utils/algorithm.hpp>namespace utf = boost::unit_test;using utf::const_string;// STL#include <cctype>#include <functional># ifdef BOOST_NO_STDC_NAMESPACEnamespace std { using ::toupper; }# endif//____________________________________________________________________________//bool predicate( char c1, char c2 ) { return (std::toupper)( c1 ) == (std::toupper)( c2 ); }//____________________________________________________________________________//void test_mismatch(){ const_string cs1( "test_string" ); const_string cs2( "test_stream" ); BOOST_CHECK_EQUAL( utf::mismatch( cs1.begin(), cs1.end(), cs2.begin(), cs2.end() ).first - cs1.begin(), 8 ); cs2 = "trest"; BOOST_CHECK_EQUAL( utf::mismatch( cs1.begin(), cs1.end(), cs2.begin(), cs2.end() ).first - cs1.begin(), 1 ); cs2 = "test_string_klmn"; BOOST_CHECK_EQUAL( utf::mismatch( cs1.begin(), cs1.end(), cs2.begin(), cs2.end() ).first - cs1.begin(), 11 ); cs2 = "TeSt_liNk"; BOOST_CHECK_EQUAL( utf::mismatch( cs1.begin(), cs1.end(), cs2.begin(), cs2.end(), std::ptr_fun( predicate ) ).first - cs1.begin(), 5 );}//____________________________________________________________________________//void test_find_first_not_of(){ const_string cs( "test_string" ); const_string another( "tes" ); BOOST_CHECK_EQUAL( utf::find_first_not_of( cs.begin(), cs.end(), another.begin(), another.end() ) - cs.begin(), 4 ); another = "T_sE"; BOOST_CHECK_EQUAL( utf::find_first_not_of( cs.begin(), cs.end(), another.begin(), another.end(), std::ptr_fun( predicate ) ) - cs.begin(), 7 ); another = "tes_ring"; BOOST_CHECK( utf::find_last_not_of( cs.begin(), cs.end(), another.begin(), another.end() ) == cs.end() );}//____________________________________________________________________________//void test_find_last_of(){ const_string cs( "test_string" ); const_string another( "tes" ); BOOST_CHECK_EQUAL( utf::find_last_of( cs.begin(), cs.end(), another.begin(), another.end() ) - cs.begin(), 6 ); another = "_Se"; BOOST_CHECK_EQUAL( utf::find_last_of( cs.begin(), cs.end(), another.begin(), another.end(), std::ptr_fun( predicate ) ) - cs.begin(), 5 ); another = "qw"; BOOST_CHECK( utf::find_last_of( cs.begin(), cs.end(), another.begin(), another.end() ) == cs.end() ); cs = "qerty"; BOOST_CHECK_EQUAL( utf::find_last_of( cs.begin(), cs.end(), another.begin(), another.end() ) - cs.begin(), 0 );}//____________________________________________________________________________//void test_find_last_not_of(){ const_string cs( "test_string" ); const_string another( "string" ); BOOST_CHECK_EQUAL( utf::find_last_not_of( cs.begin(), cs.end(), another.begin(), another.end() ) - cs.begin(), 4 ); another = "_SeG"; BOOST_CHECK_EQUAL( utf::find_last_not_of( cs.begin(), cs.end(), another.begin(), another.end(), std::ptr_fun( predicate ) ) - cs.begin(), 9 ); another = "e_string"; BOOST_CHECK( utf::find_last_not_of( cs.begin(), cs.end(), another.begin(), another.end() ) == cs.end() );}//____________________________________________________________________________//utf::test_suite*init_unit_test_suite( int /* argc */, char* /* argv */ [] ){ utf::test_suite* test= BOOST_TEST_SUITE("Algorithms test"); test->add( BOOST_TEST_CASE( test_mismatch ) ); test->add( BOOST_TEST_CASE( test_find_first_not_of ) ); test->add( BOOST_TEST_CASE( test_find_last_of ) ); test->add( BOOST_TEST_CASE( test_find_last_not_of ) ); return test;}//____________________________________________________________________________//// EOF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -