1
0
forked from boostorg/core

Add char8_t tests to sv_find_first_of_test

This commit is contained in:
Peter Dimov
2021-10-08 07:14:54 +03:00
parent 18334b1614
commit 8223ff03e4

View File

@ -380,5 +380,83 @@ int main()
BOOST_TEST_EQ( sv.find_first_of( L"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 12 ), npos );
}
#if defined(__cpp_char8_t) && __cpp_char8_t >= 201811L
{
boost::core::u8string_view sv( u8"123123" );
BOOST_TEST_EQ( sv.find_first_of( u8"" ), npos );
BOOST_TEST_EQ( sv.find_first_of( u8"", 1 ), npos );
BOOST_TEST_EQ( sv.find_first_of( u8"", 6 ), npos );
BOOST_TEST_EQ( sv.find_first_of( u8"", 7 ), npos );
BOOST_TEST_EQ( sv.find_first_of( u8"1" ), 0 );
BOOST_TEST_EQ( sv.find_first_of( u8"1", 1 ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"1", 2 ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"1", 3 ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"1", 4 ), npos );
BOOST_TEST_EQ( sv.find_first_of( u8"1", 5 ), npos );
BOOST_TEST_EQ( sv.find_first_of( u8"1", 6 ), npos );
BOOST_TEST_EQ( sv.find_first_of( u8"1", 7 ), npos );
BOOST_TEST_EQ( sv.find_first_of( u8"23" ), 1 );
BOOST_TEST_EQ( sv.find_first_of( u8"23", 1 ), 1 );
BOOST_TEST_EQ( sv.find_first_of( u8"23", 2 ), 2 );
BOOST_TEST_EQ( sv.find_first_of( u8"23", 3 ), 4 );
BOOST_TEST_EQ( sv.find_first_of( u8"23", 4 ), 4 );
BOOST_TEST_EQ( sv.find_first_of( u8"23", 5 ), 5 );
BOOST_TEST_EQ( sv.find_first_of( u8"23", 6 ), npos );
BOOST_TEST_EQ( sv.find_first_of( u8"23", 7 ), npos );
BOOST_TEST_EQ( sv.find_first_of( u8"123", 0 ), 0 );
BOOST_TEST_EQ( sv.find_first_of( u8"123", 1 ), 1 );
BOOST_TEST_EQ( sv.find_first_of( u8"123", 2 ), 2 );
BOOST_TEST_EQ( sv.find_first_of( u8"123", 3 ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"123", 4 ), 4 );
BOOST_TEST_EQ( sv.find_first_of( u8"123", 5 ), 5 );
BOOST_TEST_EQ( sv.find_first_of( u8"123", 6 ), npos );
BOOST_TEST_EQ( sv.find_first_of( u8"123", 7 ), npos );
}
{
boost::core::u8string_view sv( u8"abc1abc2abc3" );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789" ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 0 ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 1 ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 2 ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 3 ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 4 ), 7 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 5 ), 7 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 6 ), 7 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 7 ), 7 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 8 ), 11 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 9 ), 11 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 10 ), 11 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 11 ), 11 );
BOOST_TEST_EQ( sv.find_first_of( u8"0123456789", 12 ), npos );
}
{
boost::core::u8string_view sv( u8"123a123B123c" );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 0 ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 1 ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 2 ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 3 ), 3 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 4 ), 7 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 5 ), 7 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 6 ), 7 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 7 ), 7 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 8 ), 11 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 9 ), 11 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 10 ), 11 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 11 ), 11 );
BOOST_TEST_EQ( sv.find_first_of( u8"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 12 ), npos );
}
#endif
return boost::report_errors();
}