17112dae6acac544a0271a85d95342c583441e2d1Dan Albert//===----------------------------------------------------------------------===// 27112dae6acac544a0271a85d95342c583441e2d1Dan Albert// 37112dae6acac544a0271a85d95342c583441e2d1Dan Albert// The LLVM Compiler Infrastructure 47112dae6acac544a0271a85d95342c583441e2d1Dan Albert// 57112dae6acac544a0271a85d95342c583441e2d1Dan Albert// This file is dual licensed under the MIT and the University of Illinois Open 67112dae6acac544a0271a85d95342c583441e2d1Dan Albert// Source Licenses. See LICENSE.TXT for details. 77112dae6acac544a0271a85d95342c583441e2d1Dan Albert// 87112dae6acac544a0271a85d95342c583441e2d1Dan Albert//===----------------------------------------------------------------------===// 97112dae6acac544a0271a85d95342c583441e2d1Dan Albert 107112dae6acac544a0271a85d95342c583441e2d1Dan Albert 117112dae6acac544a0271a85d95342c583441e2d1Dan Albert// <string_view> 127112dae6acac544a0271a85d95342c583441e2d1Dan Albert 137112dae6acac544a0271a85d95342c583441e2d1Dan Albert// constexpr int compare(size_type pos1, size_type n1, basic_string_view str) const; 147112dae6acac544a0271a85d95342c583441e2d1Dan Albert 157112dae6acac544a0271a85d95342c583441e2d1Dan Albert#include <experimental/string_view> 167112dae6acac544a0271a85d95342c583441e2d1Dan Albert#include <cassert> 177112dae6acac544a0271a85d95342c583441e2d1Dan Albert 187112dae6acac544a0271a85d95342c583441e2d1Dan Albert#include "constexpr_char_traits.hpp" 197112dae6acac544a0271a85d95342c583441e2d1Dan Albert 207112dae6acac544a0271a85d95342c583441e2d1Dan Albertint sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); } 217112dae6acac544a0271a85d95342c583441e2d1Dan Albert 227112dae6acac544a0271a85d95342c583441e2d1Dan Alberttemplate<typename CharT> 237112dae6acac544a0271a85d95342c583441e2d1Dan Albertvoid test1 ( std::experimental::basic_string_view<CharT> sv1, size_t pos1, size_t n1, 247112dae6acac544a0271a85d95342c583441e2d1Dan Albert std::experimental::basic_string_view<CharT> sv2, int expected ) { 257112dae6acac544a0271a85d95342c583441e2d1Dan Albert 267112dae6acac544a0271a85d95342c583441e2d1Dan Albert try 277112dae6acac544a0271a85d95342c583441e2d1Dan Albert { 287112dae6acac544a0271a85d95342c583441e2d1Dan Albert assert ( sign( sv1.compare(pos1, n1, sv2)) == sign(expected)); 297112dae6acac544a0271a85d95342c583441e2d1Dan Albert assert(pos1 <= sv1.size()); 307112dae6acac544a0271a85d95342c583441e2d1Dan Albert } 317112dae6acac544a0271a85d95342c583441e2d1Dan Albert catch (const std::out_of_range&) { assert(pos1 > sv1.size()); } 327112dae6acac544a0271a85d95342c583441e2d1Dan Albert} 337112dae6acac544a0271a85d95342c583441e2d1Dan Albert 347112dae6acac544a0271a85d95342c583441e2d1Dan Albert 357112dae6acac544a0271a85d95342c583441e2d1Dan Alberttemplate<typename CharT> 367112dae6acac544a0271a85d95342c583441e2d1Dan Albertvoid test ( const CharT *s1, size_t pos1, size_t n1, const CharT *s2, int expected ) { 377112dae6acac544a0271a85d95342c583441e2d1Dan Albert typedef std::experimental::basic_string_view<CharT> string_view_t; 387112dae6acac544a0271a85d95342c583441e2d1Dan Albert 397112dae6acac544a0271a85d95342c583441e2d1Dan Albert string_view_t sv1 ( s1 ); 407112dae6acac544a0271a85d95342c583441e2d1Dan Albert string_view_t sv2 ( s2 ); 417112dae6acac544a0271a85d95342c583441e2d1Dan Albert test1(sv1, pos1, n1, sv2, expected); 427112dae6acac544a0271a85d95342c583441e2d1Dan Albert} 437112dae6acac544a0271a85d95342c583441e2d1Dan Albert 447112dae6acac544a0271a85d95342c583441e2d1Dan Albertvoid test0() 457112dae6acac544a0271a85d95342c583441e2d1Dan Albert{ 467112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("", 0, 0, "", 0); 477112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("", 0, 0, "abcde", -5); 487112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("", 0, 0, "abcdefghij", -10); 497112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("", 0, 0, "abcdefghijklmnopqrst", -20); 507112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("", 0, 1, "", 0); 517112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("", 0, 1, "abcde", -5); 527112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("", 0, 1, "abcdefghij", -10); 537112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("", 0, 1, "abcdefghijklmnopqrst", -20); 547112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("", 1, 0, "", 0); 557112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("", 1, 0, "abcde", 0); 567112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("", 1, 0, "abcdefghij", 0); 577112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("", 1, 0, "abcdefghijklmnopqrst", 0); 587112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 0, "", 0); 597112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 0, "abcde", -5); 607112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 0, "abcdefghij", -10); 617112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 0, "abcdefghijklmnopqrst", -20); 627112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 1, "", 1); 637112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 1, "abcde", -4); 647112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 1, "abcdefghij", -9); 657112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 1, "abcdefghijklmnopqrst", -19); 667112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 2, "", 2); 677112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 2, "abcde", -3); 687112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 2, "abcdefghij", -8); 697112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 2, "abcdefghijklmnopqrst", -18); 707112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 4, "", 4); 717112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 4, "abcde", -1); 727112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 4, "abcdefghij", -6); 737112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 4, "abcdefghijklmnopqrst", -16); 747112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 5, "", 5); 757112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 5, "abcde", 0); 767112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 5, "abcdefghij", -5); 777112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 5, "abcdefghijklmnopqrst", -15); 787112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 6, "", 5); 797112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 6, "abcde", 0); 807112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 6, "abcdefghij", -5); 817112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 0, 6, "abcdefghijklmnopqrst", -15); 827112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 0, "", 0); 837112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 0, "abcde", -5); 847112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 0, "abcdefghij", -10); 857112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 0, "abcdefghijklmnopqrst", -20); 867112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 1, "", 1); 877112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 1, "abcde", 1); 887112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 1, "abcdefghij", 1); 897112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 1, "abcdefghijklmnopqrst", 1); 907112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 2, "", 2); 917112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 2, "abcde", 1); 927112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 2, "abcdefghij", 1); 937112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 2, "abcdefghijklmnopqrst", 1); 947112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 3, "", 3); 957112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 3, "abcde", 1); 967112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 3, "abcdefghij", 1); 977112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 3, "abcdefghijklmnopqrst", 1); 987112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 4, "", 4); 997112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 4, "abcde", 1); 1007112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 4, "abcdefghij", 1); 1017112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 4, "abcdefghijklmnopqrst", 1); 1027112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 5, "", 4); 1037112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 5, "abcde", 1); 1047112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 5, "abcdefghij", 1); 1057112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 1, 5, "abcdefghijklmnopqrst", 1); 1067112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 0, "", 0); 1077112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 0, "abcde", -5); 1087112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 0, "abcdefghij", -10); 1097112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 0, "abcdefghijklmnopqrst", -20); 1107112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 1, "", 1); 1117112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 1, "abcde", 2); 1127112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 1, "abcdefghij", 2); 1137112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 1, "abcdefghijklmnopqrst", 2); 1147112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 2, "", 2); 1157112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 2, "abcde", 2); 1167112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 2, "abcdefghij", 2); 1177112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 2, "abcdefghijklmnopqrst", 2); 1187112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 3, "", 3); 1197112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 3, "abcde", 2); 1207112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 3, "abcdefghij", 2); 1217112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 3, "abcdefghijklmnopqrst", 2); 1227112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 4, "", 3); 1237112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 4, "abcde", 2); 1247112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 4, "abcdefghij", 2); 1257112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 4, "abcdefghijklmnopqrst", 2); 1267112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 4, 0, "", 0); 1277112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 4, 0, "abcde", -5); 1287112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 4, 0, "abcdefghij", -10); 1297112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 4, 0, "abcdefghijklmnopqrst", -20); 1307112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 4, 1, "", 1); 1317112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 4, 1, "abcde", 4); 1327112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 4, 1, "abcdefghij", 4); 1337112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 4, 1, "abcdefghijklmnopqrst", 4); 1347112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 4, 2, "", 1); 1357112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 4, 2, "abcde", 4); 1367112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 4, 2, "abcdefghij", 4); 1377112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 4, 2, "abcdefghijklmnopqrst", 4); 1387112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 5, 0, "", 0); 1397112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 5, 0, "abcde", -5); 1407112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 5, 0, "abcdefghij", -10); 1417112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 5, 0, "abcdefghijklmnopqrst", -20); 1427112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 5, 1, "", 0); 1437112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 5, 1, "abcde", -5); 1447112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 5, 1, "abcdefghij", -10); 1457112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 5, 1, "abcdefghijklmnopqrst", -20); 1467112dae6acac544a0271a85d95342c583441e2d1Dan Albert} 1477112dae6acac544a0271a85d95342c583441e2d1Dan Albert 1487112dae6acac544a0271a85d95342c583441e2d1Dan Albertvoid test1() 1497112dae6acac544a0271a85d95342c583441e2d1Dan Albert{ 1507112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 6, 0, "", 0); 1517112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 6, 0, "abcde", 0); 1527112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 6, 0, "abcdefghij", 0); 1537112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 6, 0, "abcdefghijklmnopqrst", 0); 1547112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 0, "", 0); 1557112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 0, "abcde", -5); 1567112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 0, "abcdefghij", -10); 1577112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", -20); 1587112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 1, "", 1); 1597112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 1, "abcde", -4); 1607112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 1, "abcdefghij", -9); 1617112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", -19); 1627112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 5, "", 5); 1637112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 5, "abcde", 0); 1647112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 5, "abcdefghij", -5); 1657112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", -15); 1667112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 9, "", 9); 1677112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 9, "abcde", 4); 1687112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 9, "abcdefghij", -1); 1697112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", -11); 1707112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 10, "", 10); 1717112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 10, "abcde", 5); 1727112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 10, "abcdefghij", 0); 1737112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", -10); 1747112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 11, "", 10); 1757112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 11, "abcde", 5); 1767112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 11, "abcdefghij", 0); 1777112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", -10); 1787112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 0, "", 0); 1797112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 0, "abcde", -5); 1807112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 0, "abcdefghij", -10); 1817112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", -20); 1827112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 1, "", 1); 1837112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 1, "abcde", 1); 1847112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 1, "abcdefghij", 1); 1857112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1); 1867112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 4, "", 4); 1877112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 4, "abcde", 1); 1887112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 4, "abcdefghij", 1); 1897112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1); 1907112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 8, "", 8); 1917112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 8, "abcde", 1); 1927112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 8, "abcdefghij", 1); 1937112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1); 1947112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 9, "", 9); 1957112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 9, "abcde", 1); 1967112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 9, "abcdefghij", 1); 1977112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1); 1987112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 10, "", 9); 1997112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 10, "abcde", 1); 2007112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 10, "abcdefghij", 1); 2017112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1); 2027112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 0, "", 0); 2037112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 0, "abcde", -5); 2047112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 0, "abcdefghij", -10); 2057112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", -20); 2067112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 1, "", 1); 2077112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 1, "abcde", 5); 2087112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 1, "abcdefghij", 5); 2097112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 5); 2107112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 2, "", 2); 2117112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 2, "abcde", 5); 2127112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 2, "abcdefghij", 5); 2137112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 5); 2147112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 4, "", 4); 2157112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 4, "abcde", 5); 2167112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 4, "abcdefghij", 5); 2177112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 5); 2187112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 5, "", 5); 2197112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 5, "abcde", 5); 2207112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 5, "abcdefghij", 5); 2217112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 5); 2227112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 6, "", 5); 2237112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 6, "abcde", 5); 2247112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 6, "abcdefghij", 5); 2257112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 5); 2267112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 9, 0, "", 0); 2277112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 9, 0, "abcde", -5); 2287112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 9, 0, "abcdefghij", -10); 2297112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", -20); 2307112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 9, 1, "", 1); 2317112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 9, 1, "abcde", 9); 2327112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 9, 1, "abcdefghij", 9); 2337112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 9); 2347112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 9, 2, "", 1); 2357112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 9, 2, "abcde", 9); 2367112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 9, 2, "abcdefghij", 9); 2377112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 9); 2387112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 10, 0, "", 0); 2397112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 10, 0, "abcde", -5); 2407112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 10, 0, "abcdefghij", -10); 2417112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", -20); 2427112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 10, 1, "", 0); 2437112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 10, 1, "abcde", -5); 2447112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 10, 1, "abcdefghij", -10); 2457112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", -20); 2467112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 11, 0, "", 0); 2477112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 11, 0, "abcde", 0); 2487112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 11, 0, "abcdefghij", 0); 2497112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0); 2507112dae6acac544a0271a85d95342c583441e2d1Dan Albert} 2517112dae6acac544a0271a85d95342c583441e2d1Dan Albert 2527112dae6acac544a0271a85d95342c583441e2d1Dan Albertvoid test2() 2537112dae6acac544a0271a85d95342c583441e2d1Dan Albert{ 2547112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 0, "", 0); 2557112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 0, "abcde", -5); 2567112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", -10); 2577112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", -20); 2587112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 1, "", 1); 2597112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 1, "abcde", -4); 2607112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", -9); 2617112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", -19); 2627112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 10, "", 10); 2637112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 10, "abcde", 5); 2647112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0); 2657112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", -10); 2667112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 19, "", 19); 2677112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 19, "abcde", 14); 2687112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9); 2697112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", -1); 2707112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 20, "", 20); 2717112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 20, "abcde", 15); 2727112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10); 2737112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0); 2747112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 21, "", 20); 2757112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 21, "abcde", 15); 2767112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10); 2777112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0); 2787112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 0, "", 0); 2797112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 0, "abcde", -5); 2807112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", -10); 2817112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", -20); 2827112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 1, "", 1); 2837112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 1, "abcde", 1); 2847112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1); 2857112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1); 2867112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 9, "", 9); 2877112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 9, "abcde", 1); 2887112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1); 2897112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1); 2907112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 18, "", 18); 2917112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 18, "abcde", 1); 2927112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1); 2937112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1); 2947112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 19, "", 19); 2957112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 19, "abcde", 1); 2967112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1); 2977112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1); 2987112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 20, "", 19); 2997112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 20, "abcde", 1); 3007112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1); 3017112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1); 3027112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 0, "", 0); 3037112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 0, "abcde", -5); 3047112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", -10); 3057112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", -20); 3067112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 1, "", 1); 3077112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 1, "abcde", 10); 3087112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10); 3097112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10); 3107112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 5, "", 5); 3117112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 5, "abcde", 10); 3127112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10); 3137112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10); 3147112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 9, "", 9); 3157112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 9, "abcde", 10); 3167112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10); 3177112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10); 3187112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 10, "", 10); 3197112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 10, "abcde", 10); 3207112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10); 3217112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10); 3227112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 11, "", 10); 3237112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 11, "abcde", 10); 3247112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10); 3257112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10); 3267112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 19, 0, "", 0); 3277112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 19, 0, "abcde", -5); 3287112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", -10); 3297112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", -20); 3307112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 19, 1, "", 1); 3317112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 19, 1, "abcde", 19); 3327112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 19); 3337112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19); 3347112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 19, 2, "", 1); 3357112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 19, 2, "abcde", 19); 3367112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 19); 3377112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19); 3387112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 20, 0, "", 0); 3397112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 20, 0, "abcde", -5); 3407112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", -10); 3417112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", -20); 3427112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 20, 1, "", 0); 3437112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 20, 1, "abcde", -5); 3447112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", -10); 3457112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", -20); 3467112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 21, 0, "", 0); 3477112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 21, 0, "abcde", 0); 3487112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0); 3497112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0); 3507112dae6acac544a0271a85d95342c583441e2d1Dan Albert} 3517112dae6acac544a0271a85d95342c583441e2d1Dan Albert 3527112dae6acac544a0271a85d95342c583441e2d1Dan Albert 3537112dae6acac544a0271a85d95342c583441e2d1Dan Albertint main () { 3547112dae6acac544a0271a85d95342c583441e2d1Dan Albert test0(); 3557112dae6acac544a0271a85d95342c583441e2d1Dan Albert test1(); 3567112dae6acac544a0271a85d95342c583441e2d1Dan Albert test2(); 3577112dae6acac544a0271a85d95342c583441e2d1Dan Albert 3587112dae6acac544a0271a85d95342c583441e2d1Dan Albert { 3597112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 5, 1, "", 0); 3607112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 4, "", 3); 3617112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("abcde", 2, 4, "abcde", 2); 3627112dae6acac544a0271a85d95342c583441e2d1Dan Albert test("ABCde", 2, 4, "abcde", -1); 3637112dae6acac544a0271a85d95342c583441e2d1Dan Albert } 3647112dae6acac544a0271a85d95342c583441e2d1Dan Albert 3657112dae6acac544a0271a85d95342c583441e2d1Dan Albert { 3667112dae6acac544a0271a85d95342c583441e2d1Dan Albert test(L"abcde", 5, 1, L"", 0); 3677112dae6acac544a0271a85d95342c583441e2d1Dan Albert test(L"abcde", 2, 4, L"", 3); 3687112dae6acac544a0271a85d95342c583441e2d1Dan Albert test(L"abcde", 2, 4, L"abcde", 2); 3697112dae6acac544a0271a85d95342c583441e2d1Dan Albert test(L"ABCde", 2, 4, L"abcde", -1); 3707112dae6acac544a0271a85d95342c583441e2d1Dan Albert } 3717112dae6acac544a0271a85d95342c583441e2d1Dan Albert 3727112dae6acac544a0271a85d95342c583441e2d1Dan Albert#if __cplusplus >= 201103L 3737112dae6acac544a0271a85d95342c583441e2d1Dan Albert { 3747112dae6acac544a0271a85d95342c583441e2d1Dan Albert test(u"abcde", 5, 1, u"", 0); 3757112dae6acac544a0271a85d95342c583441e2d1Dan Albert test(u"abcde", 2, 4, u"", 3); 3767112dae6acac544a0271a85d95342c583441e2d1Dan Albert test(u"abcde", 2, 4, u"abcde", 2); 3777112dae6acac544a0271a85d95342c583441e2d1Dan Albert test(u"ABCde", 2, 4, u"abcde", -1); 3787112dae6acac544a0271a85d95342c583441e2d1Dan Albert } 3797112dae6acac544a0271a85d95342c583441e2d1Dan Albert 3807112dae6acac544a0271a85d95342c583441e2d1Dan Albert { 3817112dae6acac544a0271a85d95342c583441e2d1Dan Albert test(U"abcde", 5, 1, U"", 0); 3827112dae6acac544a0271a85d95342c583441e2d1Dan Albert test(U"abcde", 2, 4, U"", 3); 3837112dae6acac544a0271a85d95342c583441e2d1Dan Albert test(U"abcde", 2, 4, U"abcde", 2); 3847112dae6acac544a0271a85d95342c583441e2d1Dan Albert test(U"ABCde", 2, 4, U"abcde", -1); 3857112dae6acac544a0271a85d95342c583441e2d1Dan Albert } 3867112dae6acac544a0271a85d95342c583441e2d1Dan Albert#endif 3877112dae6acac544a0271a85d95342c583441e2d1Dan Albert 3887112dae6acac544a0271a85d95342c583441e2d1Dan Albert#if _LIBCPP_STD_VER > 11 3897112dae6acac544a0271a85d95342c583441e2d1Dan Albert { 3907112dae6acac544a0271a85d95342c583441e2d1Dan Albert typedef std::experimental::basic_string_view<char, constexpr_char_traits<char>> SV; 3917112dae6acac544a0271a85d95342c583441e2d1Dan Albert constexpr SV sv1 { "abcde", 5 }; 3927112dae6acac544a0271a85d95342c583441e2d1Dan Albert constexpr SV sv2 { "abcde", 0 }; 3937112dae6acac544a0271a85d95342c583441e2d1Dan Albert static_assert ( sv1.compare(5, 1, sv2) == 0, "" ); 3947112dae6acac544a0271a85d95342c583441e2d1Dan Albert static_assert ( sv1.compare(2, 4, sv2) == 1, "" ); 3957112dae6acac544a0271a85d95342c583441e2d1Dan Albert } 3967112dae6acac544a0271a85d95342c583441e2d1Dan Albert#endif 3977112dae6acac544a0271a85d95342c583441e2d1Dan Albert} 398