diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index fcd33ea..feb2011 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -260,6 +260,7 @@ run sv_ends_with_test.cpp ; run sv_find_test.cpp ; run sv_rfind_test.cpp ; run sv_find_first_of_test.cpp ; +run sv_contains_test.cpp ; use-project /boost/core/swap : ./swap ; build-project ./swap ; diff --git a/test/sv_contains_test.cpp b/test/sv_contains_test.cpp new file mode 100644 index 0000000..bb63491 --- /dev/null +++ b/test/sv_contains_test.cpp @@ -0,0 +1,71 @@ +// Copyright 2021 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include +#include + +int main() +{ + { + boost::core::string_view sv( "" ); + + BOOST_TEST( sv.contains( boost::core::string_view() ) ); + + BOOST_TEST( sv.contains( boost::core::string_view( "" ) ) ); + BOOST_TEST( !sv.contains( boost::core::string_view( "1" ) ) ); + + BOOST_TEST( !sv.contains( '1' ) ); + + BOOST_TEST( sv.contains( "" ) ); + BOOST_TEST( !sv.contains( "1" ) ); + } + + { + boost::core::string_view sv( "123123" ); + + BOOST_TEST( sv.contains( boost::core::string_view() ) ); + BOOST_TEST( sv.contains( boost::core::string_view( "" ) ) ); + + BOOST_TEST( sv.contains( boost::core::string_view( "1" ) ) ); + BOOST_TEST( sv.contains( boost::core::string_view( "2" ) ) ); + BOOST_TEST( sv.contains( boost::core::string_view( "3" ) ) ); + BOOST_TEST( !sv.contains( boost::core::string_view( "4" ) ) ); + + BOOST_TEST( sv.contains( boost::core::string_view( "12" ) ) ); + BOOST_TEST( sv.contains( boost::core::string_view( "23" ) ) ); + BOOST_TEST( !sv.contains( boost::core::string_view( "34" ) ) ); + BOOST_TEST( !sv.contains( boost::core::string_view( "21" ) ) ); + + BOOST_TEST( sv.contains( '1' ) ); + BOOST_TEST( sv.contains( '2' ) ); + BOOST_TEST( sv.contains( '3' ) ); + BOOST_TEST( !sv.contains( '4' ) ); + + BOOST_TEST( sv.contains( "" ) ); + + BOOST_TEST( sv.contains( "1" ) ); + BOOST_TEST( sv.contains( "2" ) ); + BOOST_TEST( sv.contains( "3" ) ); + BOOST_TEST( !sv.contains( "4" ) ); + + BOOST_TEST( sv.contains( "12" ) ); + BOOST_TEST( sv.contains( "23" ) ); + BOOST_TEST( !sv.contains( "34" ) ); + BOOST_TEST( !sv.contains( "21" ) ); + + BOOST_TEST( sv.contains( "123" ) ); + BOOST_TEST( !sv.contains( "234" ) ); + BOOST_TEST( sv.contains( "231" ) ); + BOOST_TEST( !sv.contains( "321" ) ); + + BOOST_TEST( !sv.contains( "1234" ) ); + BOOST_TEST( sv.contains( "1231" ) ); + + BOOST_TEST( sv.contains( "123123" ) ); + BOOST_TEST( !sv.contains( "1231231" ) ); + } + + return boost::report_errors(); +}