void test1 ( std::experimental::basic_string_view<CharT> sv1, size_t pos1, size_t n1, const CharT *s, int expected ) { try { assert(sign(sv1.compare(pos1, n1, s)) == sign(expected)); assert(pos1 <= sv1.size()); } catch (const std::out_of_range&) { assert(pos1 > sv1.size()); } }
void test1 ( std::experimental::basic_string_view<CharT> sv, size_t n, size_t pos ) { try { std::experimental::basic_string_view<CharT> sv1 = sv.substr(pos, n); const size_t rlen = std::min ( n, sv.size() - pos ); assert ( sv1.size() == rlen ); for ( size_t i = 0; i <= rlen; ++i ) assert ( sv[pos+i] == sv1[i] ); } catch ( const std::out_of_range & ) { assert ( pos > sv.size()); } }
int main () { test ( "QBCDE", 5 ); test ( "QBCDE", 2 ); test ( "", 0 ); #if _LIBCPP_STD_VER > 11 { constexpr const char *s = "QBCDE"; constexpr std::experimental::basic_string_view<char> sv1 ( s, 2 ); static_assert ( sv1.size() == 2, "" ); static_assert ( sv1.data() == s, "" ); } #endif test ( L"QBCDE", 5 ); test ( L"QBCDE", 2 ); test ( L"", 0 ); #if _LIBCPP_STD_VER > 11 { constexpr const wchar_t *s = L"QBCDE"; constexpr std::experimental::basic_string_view<wchar_t> sv1 ( s, 2 ); static_assert ( sv1.size() == 2, "" ); static_assert ( sv1.data() == s, "" ); } #endif #if __cplusplus >= 201103L test ( u"QBCDE", 5 ); test ( u"QBCDE", 2 ); test ( u"", 0 ); #if _LIBCPP_STD_VER > 11 { constexpr const char16_t *s = u"QBCDE"; constexpr std::experimental::basic_string_view<char16_t> sv1 ( s, 2 ); static_assert ( sv1.size() == 2, "" ); static_assert ( sv1.data() == s, "" ); } #endif test ( U"QBCDE", 5 ); test ( U"QBCDE", 2 ); test ( U"", 0 ); #if _LIBCPP_STD_VER > 11 { constexpr const char32_t *s = U"QBCDE"; constexpr std::experimental::basic_string_view<char32_t> sv1 ( s, 2 ); static_assert ( sv1.size() == 2, "" ); static_assert ( sv1.data() == s, "" ); } #endif #endif }
int main () { test ( "QBCDE" ); test ( "A" ); test ( "" ); test ( L"QBCDE" ); test ( L"A" ); test ( L"" ); #if TEST_STD_VER >= 11 test ( u"QBCDE" ); test ( u"A" ); test ( u"" ); test ( U"QBCDE" ); test ( U"A" ); test ( U"" ); #endif #if TEST_STD_VER > 11 { constexpr std::experimental::basic_string_view<char, constexpr_char_traits<char>> sv1 ( "ABCDE" ); static_assert ( sv1.size() == 5, ""); } #endif }
int main () { test ( "QBCDE" ); test ( "A" ); test ( "" ); test ( L"QBCDE" ); test ( L"A" ); test ( L"" ); #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS test ( u"QBCDE" ); test ( u"A" ); test ( u"" ); test ( U"QBCDE" ); test ( U"A" ); test ( U"" ); #endif #if _LIBCPP_STD_VER > 11 { constexpr std::experimental::basic_string_view<char, constexpr_char_traits<char>> sv1 ( "ABCDE" ); static_assert ( sv1.size() == 5, ""); } #endif }
void test1 ( std::experimental::basic_string_view<CharT> sv, size_t n, size_t pos ) { if (pos > sv.size()) { #ifndef TEST_HAS_NO_EXCEPTIONS try { std::experimental::basic_string_view<CharT> sv1 = sv.substr(pos, n); assert(false); ((void)sv1); } catch (const std::out_of_range&) { return; } catch (...) { assert(false); } #endif } else { std::experimental::basic_string_view<CharT> sv1 = sv.substr(pos, n); const size_t rlen = std::min ( n, sv.size() - pos ); assert ( sv1.size() == rlen ); for ( size_t i = 0; i <= rlen; ++i ) assert ( sv[pos+i] == sv1[i] ); } }
void test1 ( std::experimental::basic_string_view<CharT> sv1, size_t pos1, size_t n1, const CharT *s, int expected ) { if (pos1 > sv1.size()) { #ifndef TEST_HAS_NO_EXCEPTIONS try { sv1.compare(pos1, n1, s); assert(false); } catch (const std::out_of_range&) { } catch (...) { assert(false); } #endif } else { assert(sign(sv1.compare(pos1, n1, s)) == sign(expected)); } }