1
0
forked from boostorg/core

Add sv_element_access_test

This commit is contained in:
Peter Dimov
2021-10-04 17:33:04 +03:00
parent 7d05dfa87d
commit 016ae92ecf
2 changed files with 42 additions and 0 deletions

View File

@ -249,6 +249,7 @@ run type_name_test.cpp ;
run sv_types_test.cpp ;
run sv_construct_test.cpp ;
run sv_element_access_test.cpp ;
use-project /boost/core/swap : ./swap ;
build-project ./swap ;

View File

@ -0,0 +1,41 @@
// Copyright 2021 Peter Dimov
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt
#include <boost/core/string_view.hpp>
#include <boost/core/lightweight_test.hpp>
#include <stdexcept>
int main()
{
{
boost::core::string_view sv( "12345" );
for( std::size_t i = 0; i < 5; ++i )
{
BOOST_TEST_EQ( &sv[ i ], sv.data() + i );
BOOST_TEST_EQ( &sv.at( i ), sv.data() + i );
}
BOOST_TEST_THROWS( sv.at( 5 ), std::out_of_range );
BOOST_TEST_THROWS( sv.at( boost::core::string_view::npos ), std::out_of_range );
}
{
boost::core::string_view sv;
BOOST_TEST_THROWS( sv.at( 0 ), std::out_of_range );
BOOST_TEST_THROWS( sv.at( 1 ), std::out_of_range );
BOOST_TEST_THROWS( sv.at( boost::core::string_view::npos ), std::out_of_range );
}
{
boost::core::string_view sv( "12345", 0 );
BOOST_TEST_THROWS( sv.at( 0 ), std::out_of_range );
BOOST_TEST_THROWS( sv.at( 1 ), std::out_of_range );
BOOST_TEST_THROWS( sv.at( boost::core::string_view::npos ), std::out_of_range );
}
return boost::report_errors();
}