diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 170b53f..7286df2 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -265,6 +265,7 @@ run sv_find_first_not_of_test.cpp ; run sv_find_last_not_of_test.cpp ; run sv_contains_test.cpp ; run sv_eq_test.cpp ; +run sv_lt_test.cpp ; use-project /boost/core/swap : ./swap ; build-project ./swap ; diff --git a/test/sv_lt_test.cpp b/test/sv_lt_test.cpp new file mode 100644 index 0000000..e86148b --- /dev/null +++ b/test/sv_lt_test.cpp @@ -0,0 +1,95 @@ +// Copyright 2021 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include +#include +#if !defined(BOOST_NO_CXX17_HDR_STRING_VIEW) +# include +#endif + +#define TEST_LT(x, y) \ + BOOST_TEST_LT(x, y); \ + BOOST_TEST_LE(x, y); \ + BOOST_TEST_NE(x, y); \ + BOOST_TEST_NOT((x) == (y)); \ + BOOST_TEST_NOT((x) >= (y)); \ + BOOST_TEST_NOT((x) > (y)); \ + BOOST_TEST_GT(y, x); \ + BOOST_TEST_GE(y, x); \ + BOOST_TEST_NOT((y) < (x)); \ + BOOST_TEST_NOT((y) <= (x)); + +int main() +{ + std::size_t const npos = boost::core::string_view::npos; + + { + boost::core::string_view sv0( "" ); + boost::core::string_view sv1( "12" ); + boost::core::string_view sv2( "122" ); + boost::core::string_view sv3( "123" ); + boost::core::string_view sv4( "124" ); + boost::core::string_view sv5( "1234" ); + + TEST_LT( sv0, sv1 ); + TEST_LT( sv1, sv2 ); + TEST_LT( sv2, sv3 ); + TEST_LT( sv3, sv4 ); + TEST_LT( sv3, sv5 ); + TEST_LT( sv5, sv4 ); + + TEST_LT( sv0, std::string( "12" ) ); + TEST_LT( sv1, std::string( "122" ) ); + TEST_LT( sv2, std::string( "123" ) ); + TEST_LT( sv3, std::string( "124" ) ); + TEST_LT( sv3, std::string( "1234" ) ); + TEST_LT( sv5, std::string( "124" ) ); + + TEST_LT( sv0, "12" ); + TEST_LT( sv1, "122" ); + TEST_LT( sv2, "123" ); + TEST_LT( sv3, "124" ); + TEST_LT( sv3, "1234" ); + TEST_LT( sv5, "124" ); + +#if !defined(BOOST_NO_CXX17_HDR_STRING_VIEW) + + TEST_LT( sv0, std::string_view( "12" ) ); + TEST_LT( sv1, std::string_view( "122" ) ); + TEST_LT( sv2, std::string_view( "123" ) ); + TEST_LT( sv3, std::string_view( "124" ) ); + TEST_LT( sv3, std::string_view( "1234" ) ); + TEST_LT( sv5, std::string_view( "124" ) ); + +#endif + + TEST_LT( std::string( "" ), sv1 ); + TEST_LT( std::string( "12" ), sv2 ); + TEST_LT( std::string( "122" ), sv3 ); + TEST_LT( std::string( "123" ), sv4 ); + TEST_LT( std::string( "123" ), sv5 ); + TEST_LT( std::string( "1234" ), sv4 ); + + TEST_LT( "", sv1 ); + TEST_LT( "12", sv2 ); + TEST_LT( "122", sv3 ); + TEST_LT( "123", sv4 ); + TEST_LT( "123", sv5 ); + TEST_LT( "1234", sv4 ); + +#if !defined(BOOST_NO_CXX17_HDR_STRING_VIEW) + + TEST_LT( std::string_view( "" ), sv1 ); + TEST_LT( std::string_view( "12" ), sv2 ); + TEST_LT( std::string_view( "122" ), sv3 ); + TEST_LT( std::string_view( "123" ), sv4 ); + TEST_LT( std::string_view( "123" ), sv5 ); + TEST_LT( std::string_view( "1234" ), sv4 ); + +#endif + } + + return boost::report_errors(); +}