Пример #1
0
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()); }
}
Пример #2
0
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()); }
}
Пример #3
0
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
}
Пример #4
0
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
}
Пример #5
0
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
}
Пример #6
0
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] );
    }
}
Пример #7
0
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));
    }
}