diff --git a/test/static_string.cpp b/test/static_string.cpp index 7c77842..091b74b 100644 --- a/test/static_string.cpp +++ b/test/static_string.cpp @@ -192,22 +192,24 @@ testFLN(const S& s, const typename S::value_type* str, typename S::size_type pos return s.find_last_not_of(str, pos, n) == x; } -template +template bool -testR(S s, typename S::size_type pos1, typename S::size_type n1, const typename S::value_type* str, S expected) +testR(const char (&s_in)[N1], std::size_t pos1, std::size_t n1, const char* str, const char (&expected)[N2]) { + using S = static_string<400>; + S s(s_in); typename S::const_iterator first = s.begin() + pos1; typename S::const_iterator last = s.begin() + pos1 + n1; s.replace(first, last, str); return s == expected; } -template +template bool -testR(S s, typename S::size_type pos, typename S::size_type n1, typename S::size_type n2, typename S::value_type c, S expected) +testR(const char (&s_in)[N1], std::size_t pos, std::size_t n1, std::size_t n2, char c, const char (&expected)[N2]) { - const typename S::size_type old_size = s.size(); - if (pos <= old_size) + static_string<400> s(s_in); + if (pos <= s.size()) { s.replace(pos, n1, n2, c); return s == expected; @@ -219,16 +221,14 @@ testR(S s, typename S::size_type pos, typename S::size_type n1, typename S::size } } -template +template bool -testR(S s, typename S::size_type pos, typename S::size_type n1, const typename S::value_type* str, typename S::size_type n2, S expected) +testR(const char (&s_in)[N1], std::size_t pos, std::size_t n1, const char* str, std::size_t n2, const char (&expected)[N2]) { - const typename S::size_type old_size = s.size(); - S s0 = s; - if (n1 > old_size) - s.size(); - if (pos <= old_size) + static_string<400> s(s_in); + if (pos <= s.size()) { + auto s0 = s; if (pos + n1 > s0.size()) // this is a precondition violation for the const_iterator overload return s.replace(pos, n1, str, n2) == expected; @@ -6271,837 +6271,837 @@ testReplace() BOOST_TEST(s_short.replace(s_short.begin(), s_short.begin(), s_short.begin(), s_short.end()) == "123/123/123/123/123/123/123/123/"); BOOST_TEST(s_long.replace(s_long.begin(), s_long.begin(), s_long.begin(), s_long.end()) == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/"); - BOOST_TEST(testR(S(""), 0, 0, "", S(""))); - BOOST_TEST(testR(S(""), 0, 0, "12345", S("12345"))); - BOOST_TEST(testR(S(""), 0, 0, "1234567890", S("1234567890"))); - BOOST_TEST(testR(S(""), 0, 0, "12345678901234567890", S("12345678901234567890"))); - BOOST_TEST(testR(S("abcde"), 0, 0, "", S("abcde"))); - BOOST_TEST(testR(S("abcde"), 0, 0, "12345", S("12345abcde"))); - BOOST_TEST(testR(S("abcde"), 0, 0, "1234567890", S("1234567890abcde"))); - BOOST_TEST(testR(S("abcde"), 0, 0, "12345678901234567890", S("12345678901234567890abcde"))); - BOOST_TEST(testR(S("abcde"), 0, 1, "", S("bcde"))); - BOOST_TEST(testR(S("abcde"), 0, 1, "12345", S("12345bcde"))); - BOOST_TEST(testR(S("abcde"), 0, 1, "1234567890", S("1234567890bcde"))); - BOOST_TEST(testR(S("abcde"), 0, 1, "12345678901234567890", S("12345678901234567890bcde"))); - BOOST_TEST(testR(S("abcde"), 0, 2, "", S("cde"))); - BOOST_TEST(testR(S("abcde"), 0, 2, "12345", S("12345cde"))); - BOOST_TEST(testR(S("abcde"), 0, 2, "1234567890", S("1234567890cde"))); - BOOST_TEST(testR(S("abcde"), 0, 2, "12345678901234567890", S("12345678901234567890cde"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "", S("e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "12345", S("12345e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "1234567890", S("1234567890e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "12345678901234567890", S("12345678901234567890e"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "", S(""))); - BOOST_TEST(testR(S("abcde"), 0, 5, "12345", S("12345"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "1234567890", S("1234567890"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "12345678901234567890", S("12345678901234567890"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "", S("abcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "12345", S("a12345bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "1234567890", S("a1234567890bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "12345678901234567890", S("a12345678901234567890bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "", S("acde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "12345", S("a12345cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "1234567890", S("a1234567890cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "12345678901234567890", S("a12345678901234567890cde"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "", S("ade"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "12345", S("a12345de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "1234567890", S("a1234567890de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "12345678901234567890", S("a12345678901234567890de"))); - BOOST_TEST(testR(S("abcde"), 1, 3, "", S("ae"))); - BOOST_TEST(testR(S("abcde"), 1, 3, "12345", S("a12345e"))); - BOOST_TEST(testR(S("abcde"), 1, 3, "1234567890", S("a1234567890e"))); - BOOST_TEST(testR(S("abcde"), 1, 3, "12345678901234567890", S("a12345678901234567890e"))); - BOOST_TEST(testR(S("abcde"), 1, 4, "", S("a"))); - BOOST_TEST(testR(S("abcde"), 1, 4, "12345", S("a12345"))); - BOOST_TEST(testR(S("abcde"), 1, 4, "1234567890", S("a1234567890"))); - BOOST_TEST(testR(S("abcde"), 1, 4, "12345678901234567890", S("a12345678901234567890"))); - BOOST_TEST(testR(S("abcde"), 2, 0, "", S("abcde"))); - BOOST_TEST(testR(S("abcde"), 2, 0, "12345", S("ab12345cde"))); - BOOST_TEST(testR(S("abcde"), 2, 0, "1234567890", S("ab1234567890cde"))); - BOOST_TEST(testR(S("abcde"), 2, 0, "12345678901234567890", S("ab12345678901234567890cde"))); - BOOST_TEST(testR(S("abcde"), 2, 1, "", S("abde"))); - BOOST_TEST(testR(S("abcde"), 2, 1, "12345", S("ab12345de"))); - BOOST_TEST(testR(S("abcde"), 2, 1, "1234567890", S("ab1234567890de"))); - BOOST_TEST(testR(S("abcde"), 2, 1, "12345678901234567890", S("ab12345678901234567890de"))); - BOOST_TEST(testR(S("abcde"), 2, 2, "", S("abe"))); - BOOST_TEST(testR(S("abcde"), 2, 2, "12345", S("ab12345e"))); - BOOST_TEST(testR(S("abcde"), 2, 2, "1234567890", S("ab1234567890e"))); - BOOST_TEST(testR(S("abcde"), 2, 2, "12345678901234567890", S("ab12345678901234567890e"))); - BOOST_TEST(testR(S("abcde"), 2, 3, "", S("ab"))); - BOOST_TEST(testR(S("abcde"), 2, 3, "12345", S("ab12345"))); - BOOST_TEST(testR(S("abcde"), 2, 3, "1234567890", S("ab1234567890"))); - BOOST_TEST(testR(S("abcde"), 2, 3, "12345678901234567890", S("ab12345678901234567890"))); - BOOST_TEST(testR(S("abcde"), 4, 0, "", S("abcde"))); - BOOST_TEST(testR(S("abcde"), 4, 0, "12345", S("abcd12345e"))); - BOOST_TEST(testR(S("abcde"), 4, 0, "1234567890", S("abcd1234567890e"))); - BOOST_TEST(testR(S("abcde"), 4, 0, "12345678901234567890", S("abcd12345678901234567890e"))); - BOOST_TEST(testR(S("abcde"), 4, 1, "", S("abcd"))); - BOOST_TEST(testR(S("abcde"), 4, 1, "12345", S("abcd12345"))); - BOOST_TEST(testR(S("abcde"), 4, 1, "1234567890", S("abcd1234567890"))); - BOOST_TEST(testR(S("abcde"), 4, 1, "12345678901234567890", S("abcd12345678901234567890"))); - BOOST_TEST(testR(S("abcde"), 5, 0, "", S("abcde"))); - BOOST_TEST(testR(S("abcde"), 5, 0, "12345", S("abcde12345"))); - BOOST_TEST(testR(S("abcde"), 5, 0, "1234567890", S("abcde1234567890"))); - BOOST_TEST(testR(S("abcde"), 5, 0, "12345678901234567890", S("abcde12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 0, "", S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 0, "12345", S("12345abcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 0, "1234567890", S("1234567890abcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 0, "12345678901234567890", S("12345678901234567890abcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 1, "", S("bcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 1, "12345", S("12345bcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 1, "1234567890", S("1234567890bcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 1, "12345678901234567890", S("12345678901234567890bcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 5, "", S("fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 5, "12345", S("12345fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 5, "1234567890", S("1234567890fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 5, "12345678901234567890", S("12345678901234567890fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 9, "", S("j"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 9, "12345", S("12345j"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 9, "1234567890", S("1234567890j"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 9, "12345678901234567890", S("12345678901234567890j"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 10, "", S(""))); - BOOST_TEST(testR(S("abcdefghij"), 0, 10, "12345", S("12345"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 10, "1234567890", S("1234567890"))); - BOOST_TEST(testR(S("abcdefghij"), 0, 10, "12345678901234567890", S("12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 0, "", S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 0, "12345", S("a12345bcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 0, "1234567890", S("a1234567890bcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 0, "12345678901234567890", S("a12345678901234567890bcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 1, "", S("acdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 1, "12345", S("a12345cdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 1, "1234567890", S("a1234567890cdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 1, "12345678901234567890", S("a12345678901234567890cdefghij"))); - BOOST_TEST(testR(S(""), 0, 0, 0, '2', S(""))); - BOOST_TEST(testR(S(""), 0, 0, 5, '2', S("22222"))); - BOOST_TEST(testR(S(""), 0, 0, 10, '2', S("2222222222"))); - BOOST_TEST(testR(S(""), 0, 0, 20, '2', S("22222222222222222222"))); - BOOST_TEST(testR(S(""), 0, 1, 0, '2', S(""))); - BOOST_TEST(testR(S(""), 0, 1, 5, '2', S("22222"))); - BOOST_TEST(testR(S(""), 0, 1, 10, '2', S("2222222222"))); - BOOST_TEST(testR(S(""), 0, 1, 20, '2', S("22222222222222222222"))); - BOOST_TEST(testR(S("abcde"), 0, 0, 0, '2', S("abcde"))); - BOOST_TEST(testR(S("abcde"), 0, 0, 5, '2', S("22222abcde"))); - BOOST_TEST(testR(S("abcde"), 0, 0, 10, '2', S("2222222222abcde"))); - BOOST_TEST(testR(S("abcde"), 0, 0, 20, '2', S("22222222222222222222abcde"))); - BOOST_TEST(testR(S("abcde"), 0, 1, 0, '2', S("bcde"))); - BOOST_TEST(testR(S("abcde"), 0, 1, 5, '2', S("22222bcde"))); - BOOST_TEST(testR(S("abcde"), 0, 1, 10, '2', S("2222222222bcde"))); - BOOST_TEST(testR(S("abcde"), 0, 1, 20, '2', S("22222222222222222222bcde"))); - BOOST_TEST(testR(S("abcde"), 0, 2, 0, '2', S("cde"))); - BOOST_TEST(testR(S("abcde"), 0, 2, 5, '2', S("22222cde"))); - BOOST_TEST(testR(S("abcde"), 0, 2, 10, '2', S("2222222222cde"))); - BOOST_TEST(testR(S("abcde"), 0, 2, 20, '2', S("22222222222222222222cde"))); - BOOST_TEST(testR(S("abcde"), 0, 4, 0, '2', S("e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, 5, '2', S("22222e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, 10, '2', S("2222222222e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, 20, '2', S("22222222222222222222e"))); - BOOST_TEST(testR(S("abcde"), 0, 5, 0, '2', S(""))); - BOOST_TEST(testR(S("abcde"), 0, 5, 5, '2', S("22222"))); - BOOST_TEST(testR(S("abcde"), 0, 5, 10, '2', S("2222222222"))); - BOOST_TEST(testR(S("abcde"), 0, 5, 20, '2', S("22222222222222222222"))); - BOOST_TEST(testR(S("abcde"), 0, 6, 0, '2', S(""))); - BOOST_TEST(testR(S("abcde"), 0, 6, 5, '2', S("22222"))); - BOOST_TEST(testR(S("abcde"), 0, 6, 10, '2', S("2222222222"))); - BOOST_TEST(testR(S("abcde"), 0, 6, 20, '2', S("22222222222222222222"))); - BOOST_TEST(testR(S("abcde"), 1, 0, 0, '2', S("abcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, 5, '2', S("a22222bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, 10, '2', S("a2222222222bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, 20, '2', S("a22222222222222222222bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, 0, '2', S("acde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, 5, '2', S("a22222cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, 10, '2', S("a2222222222cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, 20, '2', S("a22222222222222222222cde"))); - BOOST_TEST(testR(S("abcde"), 1, 2, 0, '2', S("ade"))); - BOOST_TEST(testR(S("abcde"), 1, 2, 5, '2', S("a22222de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, 10, '2', S("a2222222222de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, 20, '2', S("a22222222222222222222de"))); - BOOST_TEST(testR(S("abcde"), 1, 3, 0, '2', S("ae"))); - BOOST_TEST(testR(S("abcde"), 1, 3, 5, '2', S("a22222e"))); - BOOST_TEST(testR(S("abcde"), 1, 3, 10, '2', S("a2222222222e"))); - BOOST_TEST(testR(S("abcde"), 1, 3, 20, '2', S("a22222222222222222222e"))); - BOOST_TEST(testR(S("abcde"), 1, 4, 0, '2', S("a"))); - BOOST_TEST(testR(S("abcde"), 1, 4, 5, '2', S("a22222"))); - BOOST_TEST(testR(S("abcde"), 1, 4, 10, '2', S("a2222222222"))); - BOOST_TEST(testR(S("abcde"), 1, 4, 20, '2', S("a22222222222222222222"))); - BOOST_TEST(testR(S("abcde"), 1, 5, 0, '2', S("a"))); - BOOST_TEST(testR(S("abcde"), 1, 5, 5, '2', S("a22222"))); - BOOST_TEST(testR(S("abcde"), 1, 5, 10, '2', S("a2222222222"))); - BOOST_TEST(testR(S("abcde"), 1, 5, 20, '2', S("a22222222222222222222"))); - BOOST_TEST(testR(S("abcde"), 2, 0, 0, '2', S("abcde"))); - BOOST_TEST(testR(S("abcde"), 2, 0, 5, '2', S("ab22222cde"))); - BOOST_TEST(testR(S("abcde"), 2, 0, 10, '2', S("ab2222222222cde"))); - BOOST_TEST(testR(S("abcde"), 2, 0, 20, '2', S("ab22222222222222222222cde"))); - BOOST_TEST(testR(S("abcde"), 2, 1, 0, '2', S("abde"))); - BOOST_TEST(testR(S("abcde"), 2, 1, 5, '2', S("ab22222de"))); - BOOST_TEST(testR(S("abcde"), 2, 1, 10, '2', S("ab2222222222de"))); - BOOST_TEST(testR(S("abcde"), 2, 1, 20, '2', S("ab22222222222222222222de"))); - BOOST_TEST(testR(S("abcde"), 2, 2, 0, '2', S("abe"))); - BOOST_TEST(testR(S("abcde"), 2, 2, 5, '2', S("ab22222e"))); - BOOST_TEST(testR(S("abcde"), 2, 2, 10, '2', S("ab2222222222e"))); - BOOST_TEST(testR(S("abcde"), 2, 2, 20, '2', S("ab22222222222222222222e"))); - BOOST_TEST(testR(S("abcde"), 2, 3, 0, '2', S("ab"))); - BOOST_TEST(testR(S("abcde"), 2, 3, 5, '2', S("ab22222"))); - BOOST_TEST(testR(S("abcde"), 2, 3, 10, '2', S("ab2222222222"))); - BOOST_TEST(testR(S("abcde"), 2, 3, 20, '2', S("ab22222222222222222222"))); - BOOST_TEST(testR(S("abcde"), 2, 4, 0, '2', S("ab"))); - BOOST_TEST(testR(S("abcde"), 2, 4, 5, '2', S("ab22222"))); - BOOST_TEST(testR(S("abcde"), 2, 4, 10, '2', S("ab2222222222"))); - BOOST_TEST(testR(S("abcde"), 2, 4, 20, '2', S("ab22222222222222222222"))); - BOOST_TEST(testR(S("abcde"), 4, 0, 0, '2', S("abcde"))); - BOOST_TEST(testR(S("abcde"), 4, 0, 5, '2', S("abcd22222e"))); - BOOST_TEST(testR(S("abcde"), 4, 0, 10, '2', S("abcd2222222222e"))); - BOOST_TEST(testR(S("abcde"), 4, 0, 20, '2', S("abcd22222222222222222222e"))); - BOOST_TEST(testR(S("abcde"), 4, 1, 0, '2', S("abcd"))); - BOOST_TEST(testR(S("abcde"), 4, 1, 5, '2', S("abcd22222"))); - BOOST_TEST(testR(S("abcde"), 4, 1, 10, '2', S("abcd2222222222"))); - BOOST_TEST(testR(S("abcde"), 4, 1, 20, '2', S("abcd22222222222222222222"))); - BOOST_TEST(testR(S("abcde"), 4, 2, 0, '2', S("abcd"))); + BOOST_TEST(testR("", 0, 0, "", "")); + BOOST_TEST(testR("", 0, 0, "12345", "12345")); + BOOST_TEST(testR("", 0, 0, "1234567890", "1234567890")); + BOOST_TEST(testR("", 0, 0, "12345678901234567890", "12345678901234567890")); + BOOST_TEST(testR("abcde", 0, 0, "", "abcde")); + BOOST_TEST(testR("abcde", 0, 0, "12345", "12345abcde")); + BOOST_TEST(testR("abcde", 0, 0, "1234567890", "1234567890abcde")); + BOOST_TEST(testR("abcde", 0, 0, "12345678901234567890", "12345678901234567890abcde")); + BOOST_TEST(testR("abcde", 0, 1, "", "bcde")); + BOOST_TEST(testR("abcde", 0, 1, "12345", "12345bcde")); + BOOST_TEST(testR("abcde", 0, 1, "1234567890", "1234567890bcde")); + BOOST_TEST(testR("abcde", 0, 1, "12345678901234567890", "12345678901234567890bcde")); + BOOST_TEST(testR("abcde", 0, 2, "", "cde")); + BOOST_TEST(testR("abcde", 0, 2, "12345", "12345cde")); + BOOST_TEST(testR("abcde", 0, 2, "1234567890", "1234567890cde")); + BOOST_TEST(testR("abcde", 0, 2, "12345678901234567890", "12345678901234567890cde")); + BOOST_TEST(testR("abcde", 0, 4, "", "e")); + BOOST_TEST(testR("abcde", 0, 4, "12345", "12345e")); + BOOST_TEST(testR("abcde", 0, 4, "1234567890", "1234567890e")); + BOOST_TEST(testR("abcde", 0, 4, "12345678901234567890", "12345678901234567890e")); + BOOST_TEST(testR("abcde", 0, 5, "", "")); + BOOST_TEST(testR("abcde", 0, 5, "12345", "12345")); + BOOST_TEST(testR("abcde", 0, 5, "1234567890", "1234567890")); + BOOST_TEST(testR("abcde", 0, 5, "12345678901234567890", "12345678901234567890")); + BOOST_TEST(testR("abcde", 1, 0, "", "abcde")); + BOOST_TEST(testR("abcde", 1, 0, "12345", "a12345bcde")); + BOOST_TEST(testR("abcde", 1, 0, "1234567890", "a1234567890bcde")); + BOOST_TEST(testR("abcde", 1, 0, "12345678901234567890", "a12345678901234567890bcde")); + BOOST_TEST(testR("abcde", 1, 1, "", "acde")); + BOOST_TEST(testR("abcde", 1, 1, "12345", "a12345cde")); + BOOST_TEST(testR("abcde", 1, 1, "1234567890", "a1234567890cde")); + BOOST_TEST(testR("abcde", 1, 1, "12345678901234567890", "a12345678901234567890cde")); + BOOST_TEST(testR("abcde", 1, 2, "", "ade")); + BOOST_TEST(testR("abcde", 1, 2, "12345", "a12345de")); + BOOST_TEST(testR("abcde", 1, 2, "1234567890", "a1234567890de")); + BOOST_TEST(testR("abcde", 1, 2, "12345678901234567890", "a12345678901234567890de")); + BOOST_TEST(testR("abcde", 1, 3, "", "ae")); + BOOST_TEST(testR("abcde", 1, 3, "12345", "a12345e")); + BOOST_TEST(testR("abcde", 1, 3, "1234567890", "a1234567890e")); + BOOST_TEST(testR("abcde", 1, 3, "12345678901234567890", "a12345678901234567890e")); + BOOST_TEST(testR("abcde", 1, 4, "", "a")); + BOOST_TEST(testR("abcde", 1, 4, "12345", "a12345")); + BOOST_TEST(testR("abcde", 1, 4, "1234567890", "a1234567890")); + BOOST_TEST(testR("abcde", 1, 4, "12345678901234567890", "a12345678901234567890")); + BOOST_TEST(testR("abcde", 2, 0, "", "abcde")); + BOOST_TEST(testR("abcde", 2, 0, "12345", "ab12345cde")); + BOOST_TEST(testR("abcde", 2, 0, "1234567890", "ab1234567890cde")); + BOOST_TEST(testR("abcde", 2, 0, "12345678901234567890", "ab12345678901234567890cde")); + BOOST_TEST(testR("abcde", 2, 1, "", "abde")); + BOOST_TEST(testR("abcde", 2, 1, "12345", "ab12345de")); + BOOST_TEST(testR("abcde", 2, 1, "1234567890", "ab1234567890de")); + BOOST_TEST(testR("abcde", 2, 1, "12345678901234567890", "ab12345678901234567890de")); + BOOST_TEST(testR("abcde", 2, 2, "", "abe")); + BOOST_TEST(testR("abcde", 2, 2, "12345", "ab12345e")); + BOOST_TEST(testR("abcde", 2, 2, "1234567890", "ab1234567890e")); + BOOST_TEST(testR("abcde", 2, 2, "12345678901234567890", "ab12345678901234567890e")); + BOOST_TEST(testR("abcde", 2, 3, "", "ab")); + BOOST_TEST(testR("abcde", 2, 3, "12345", "ab12345")); + BOOST_TEST(testR("abcde", 2, 3, "1234567890", "ab1234567890")); + BOOST_TEST(testR("abcde", 2, 3, "12345678901234567890", "ab12345678901234567890")); + BOOST_TEST(testR("abcde", 4, 0, "", "abcde")); + BOOST_TEST(testR("abcde", 4, 0, "12345", "abcd12345e")); + BOOST_TEST(testR("abcde", 4, 0, "1234567890", "abcd1234567890e")); + BOOST_TEST(testR("abcde", 4, 0, "12345678901234567890", "abcd12345678901234567890e")); + BOOST_TEST(testR("abcde", 4, 1, "", "abcd")); + BOOST_TEST(testR("abcde", 4, 1, "12345", "abcd12345")); + BOOST_TEST(testR("abcde", 4, 1, "1234567890", "abcd1234567890")); + BOOST_TEST(testR("abcde", 4, 1, "12345678901234567890", "abcd12345678901234567890")); + BOOST_TEST(testR("abcde", 5, 0, "", "abcde")); + BOOST_TEST(testR("abcde", 5, 0, "12345", "abcde12345")); + BOOST_TEST(testR("abcde", 5, 0, "1234567890", "abcde1234567890")); + BOOST_TEST(testR("abcde", 5, 0, "12345678901234567890", "abcde12345678901234567890")); + BOOST_TEST(testR("abcdefghij", 0, 0, "", "abcdefghij")); + BOOST_TEST(testR("abcdefghij", 0, 0, "12345", "12345abcdefghij")); + BOOST_TEST(testR("abcdefghij", 0, 0, "1234567890", "1234567890abcdefghij")); + BOOST_TEST(testR("abcdefghij", 0, 0, "12345678901234567890", "12345678901234567890abcdefghij")); + BOOST_TEST(testR("abcdefghij", 0, 1, "", "bcdefghij")); + BOOST_TEST(testR("abcdefghij", 0, 1, "12345", "12345bcdefghij")); + BOOST_TEST(testR("abcdefghij", 0, 1, "1234567890", "1234567890bcdefghij")); + BOOST_TEST(testR("abcdefghij", 0, 1, "12345678901234567890", "12345678901234567890bcdefghij")); + BOOST_TEST(testR("abcdefghij", 0, 5, "", "fghij")); + BOOST_TEST(testR("abcdefghij", 0, 5, "12345", "12345fghij")); + BOOST_TEST(testR("abcdefghij", 0, 5, "1234567890", "1234567890fghij")); + BOOST_TEST(testR("abcdefghij", 0, 5, "12345678901234567890", "12345678901234567890fghij")); + BOOST_TEST(testR("abcdefghij", 0, 9, "", "j")); + BOOST_TEST(testR("abcdefghij", 0, 9, "12345", "12345j")); + BOOST_TEST(testR("abcdefghij", 0, 9, "1234567890", "1234567890j")); + BOOST_TEST(testR("abcdefghij", 0, 9, "12345678901234567890", "12345678901234567890j")); + BOOST_TEST(testR("abcdefghij", 0, 10, "", "")); + BOOST_TEST(testR("abcdefghij", 0, 10, "12345", "12345")); + BOOST_TEST(testR("abcdefghij", 0, 10, "1234567890", "1234567890")); + BOOST_TEST(testR("abcdefghij", 0, 10, "12345678901234567890", "12345678901234567890")); + BOOST_TEST(testR("abcdefghij", 1, 0, "", "abcdefghij")); + BOOST_TEST(testR("abcdefghij", 1, 0, "12345", "a12345bcdefghij")); + BOOST_TEST(testR("abcdefghij", 1, 0, "1234567890", "a1234567890bcdefghij")); + BOOST_TEST(testR("abcdefghij", 1, 0, "12345678901234567890", "a12345678901234567890bcdefghij")); + BOOST_TEST(testR("abcdefghij", 1, 1, "", "acdefghij")); + BOOST_TEST(testR("abcdefghij", 1, 1, "12345", "a12345cdefghij")); + BOOST_TEST(testR("abcdefghij", 1, 1, "1234567890", "a1234567890cdefghij")); + BOOST_TEST(testR("abcdefghij", 1, 1, "12345678901234567890", "a12345678901234567890cdefghij")); + BOOST_TEST(testR("", 0, 0, 0, '2', "")); + BOOST_TEST(testR("", 0, 0, 5, '2', "22222")); + BOOST_TEST(testR("", 0, 0, 10, '2', "2222222222")); + BOOST_TEST(testR("", 0, 0, 20, '2', "22222222222222222222")); + BOOST_TEST(testR("", 0, 1, 0, '2', "")); + BOOST_TEST(testR("", 0, 1, 5, '2', "22222")); + BOOST_TEST(testR("", 0, 1, 10, '2', "2222222222")); + BOOST_TEST(testR("", 0, 1, 20, '2', "22222222222222222222")); + BOOST_TEST(testR("abcde", 0, 0, 0, '2', "abcde")); + BOOST_TEST(testR("abcde", 0, 0, 5, '2', "22222abcde")); + BOOST_TEST(testR("abcde", 0, 0, 10, '2', "2222222222abcde")); + BOOST_TEST(testR("abcde", 0, 0, 20, '2', "22222222222222222222abcde")); + BOOST_TEST(testR("abcde", 0, 1, 0, '2', "bcde")); + BOOST_TEST(testR("abcde", 0, 1, 5, '2', "22222bcde")); + BOOST_TEST(testR("abcde", 0, 1, 10, '2', "2222222222bcde")); + BOOST_TEST(testR("abcde", 0, 1, 20, '2', "22222222222222222222bcde")); + BOOST_TEST(testR("abcde", 0, 2, 0, '2', "cde")); + BOOST_TEST(testR("abcde", 0, 2, 5, '2', "22222cde")); + BOOST_TEST(testR("abcde", 0, 2, 10, '2', "2222222222cde")); + BOOST_TEST(testR("abcde", 0, 2, 20, '2', "22222222222222222222cde")); + BOOST_TEST(testR("abcde", 0, 4, 0, '2', "e")); + BOOST_TEST(testR("abcde", 0, 4, 5, '2', "22222e")); + BOOST_TEST(testR("abcde", 0, 4, 10, '2', "2222222222e")); + BOOST_TEST(testR("abcde", 0, 4, 20, '2', "22222222222222222222e")); + BOOST_TEST(testR("abcde", 0, 5, 0, '2', "")); + BOOST_TEST(testR("abcde", 0, 5, 5, '2', "22222")); + BOOST_TEST(testR("abcde", 0, 5, 10, '2', "2222222222")); + BOOST_TEST(testR("abcde", 0, 5, 20, '2', "22222222222222222222")); + BOOST_TEST(testR("abcde", 0, 6, 0, '2', "")); + BOOST_TEST(testR("abcde", 0, 6, 5, '2', "22222")); + BOOST_TEST(testR("abcde", 0, 6, 10, '2', "2222222222")); + BOOST_TEST(testR("abcde", 0, 6, 20, '2', "22222222222222222222")); + BOOST_TEST(testR("abcde", 1, 0, 0, '2', "abcde")); + BOOST_TEST(testR("abcde", 1, 0, 5, '2', "a22222bcde")); + BOOST_TEST(testR("abcde", 1, 0, 10, '2', "a2222222222bcde")); + BOOST_TEST(testR("abcde", 1, 0, 20, '2', "a22222222222222222222bcde")); + BOOST_TEST(testR("abcde", 1, 1, 0, '2', "acde")); + BOOST_TEST(testR("abcde", 1, 1, 5, '2', "a22222cde")); + BOOST_TEST(testR("abcde", 1, 1, 10, '2', "a2222222222cde")); + BOOST_TEST(testR("abcde", 1, 1, 20, '2', "a22222222222222222222cde")); + BOOST_TEST(testR("abcde", 1, 2, 0, '2', "ade")); + BOOST_TEST(testR("abcde", 1, 2, 5, '2', "a22222de")); + BOOST_TEST(testR("abcde", 1, 2, 10, '2', "a2222222222de")); + BOOST_TEST(testR("abcde", 1, 2, 20, '2', "a22222222222222222222de")); + BOOST_TEST(testR("abcde", 1, 3, 0, '2', "ae")); + BOOST_TEST(testR("abcde", 1, 3, 5, '2', "a22222e")); + BOOST_TEST(testR("abcde", 1, 3, 10, '2', "a2222222222e")); + BOOST_TEST(testR("abcde", 1, 3, 20, '2', "a22222222222222222222e")); + BOOST_TEST(testR("abcde", 1, 4, 0, '2', "a")); + BOOST_TEST(testR("abcde", 1, 4, 5, '2', "a22222")); + BOOST_TEST(testR("abcde", 1, 4, 10, '2', "a2222222222")); + BOOST_TEST(testR("abcde", 1, 4, 20, '2', "a22222222222222222222")); + BOOST_TEST(testR("abcde", 1, 5, 0, '2', "a")); + BOOST_TEST(testR("abcde", 1, 5, 5, '2', "a22222")); + BOOST_TEST(testR("abcde", 1, 5, 10, '2', "a2222222222")); + BOOST_TEST(testR("abcde", 1, 5, 20, '2', "a22222222222222222222")); + BOOST_TEST(testR("abcde", 2, 0, 0, '2', "abcde")); + BOOST_TEST(testR("abcde", 2, 0, 5, '2', "ab22222cde")); + BOOST_TEST(testR("abcde", 2, 0, 10, '2', "ab2222222222cde")); + BOOST_TEST(testR("abcde", 2, 0, 20, '2', "ab22222222222222222222cde")); + BOOST_TEST(testR("abcde", 2, 1, 0, '2', "abde")); + BOOST_TEST(testR("abcde", 2, 1, 5, '2', "ab22222de")); + BOOST_TEST(testR("abcde", 2, 1, 10, '2', "ab2222222222de")); + BOOST_TEST(testR("abcde", 2, 1, 20, '2', "ab22222222222222222222de")); + BOOST_TEST(testR("abcde", 2, 2, 0, '2', "abe")); + BOOST_TEST(testR("abcde", 2, 2, 5, '2', "ab22222e")); + BOOST_TEST(testR("abcde", 2, 2, 10, '2', "ab2222222222e")); + BOOST_TEST(testR("abcde", 2, 2, 20, '2', "ab22222222222222222222e")); + BOOST_TEST(testR("abcde", 2, 3, 0, '2', "ab")); + BOOST_TEST(testR("abcde", 2, 3, 5, '2', "ab22222")); + BOOST_TEST(testR("abcde", 2, 3, 10, '2', "ab2222222222")); + BOOST_TEST(testR("abcde", 2, 3, 20, '2', "ab22222222222222222222")); + BOOST_TEST(testR("abcde", 2, 4, 0, '2', "ab")); + BOOST_TEST(testR("abcde", 2, 4, 5, '2', "ab22222")); + BOOST_TEST(testR("abcde", 2, 4, 10, '2', "ab2222222222")); + BOOST_TEST(testR("abcde", 2, 4, 20, '2', "ab22222222222222222222")); + BOOST_TEST(testR("abcde", 4, 0, 0, '2', "abcde")); + BOOST_TEST(testR("abcde", 4, 0, 5, '2', "abcd22222e")); + BOOST_TEST(testR("abcde", 4, 0, 10, '2', "abcd2222222222e")); + BOOST_TEST(testR("abcde", 4, 0, 20, '2', "abcd22222222222222222222e")); + BOOST_TEST(testR("abcde", 4, 1, 0, '2', "abcd")); + BOOST_TEST(testR("abcde", 4, 1, 5, '2', "abcd22222")); + BOOST_TEST(testR("abcde", 4, 1, 10, '2', "abcd2222222222")); + BOOST_TEST(testR("abcde", 4, 1, 20, '2', "abcd22222222222222222222")); + BOOST_TEST(testR("abcde", 4, 2, 0, '2', "abcd")); - BOOST_TEST(testR(S("abcde"), 4, 2, 5, '2', S("abcd22222"))); - BOOST_TEST(testR(S("abcde"), 4, 2, 10, '2', S("abcd2222222222"))); - BOOST_TEST(testR(S("abcde"), 4, 2, 20, '2', S("abcd22222222222222222222"))); + BOOST_TEST(testR("abcde", 4, 2, 5, '2', "abcd22222")); + BOOST_TEST(testR("abcde", 4, 2, 10, '2', "abcd2222222222")); + BOOST_TEST(testR("abcde", 4, 2, 20, '2', "abcd22222222222222222222")); - BOOST_TEST(testR(S("abcde"), 5, 0, 0, '2', S("abcde"))); - BOOST_TEST(testR(S("abcde"), 5, 0, 5, '2', S("abcde22222"))); - BOOST_TEST(testR(S("abcde"), 5, 0, 10, '2', S("abcde2222222222"))); - BOOST_TEST(testR(S("abcde"), 5, 0, 20, '2', S("abcde22222222222222222222"))); + BOOST_TEST(testR("abcde", 5, 0, 0, '2', "abcde")); + BOOST_TEST(testR("abcde", 5, 0, 5, '2', "abcde22222")); + BOOST_TEST(testR("abcde", 5, 0, 10, '2', "abcde2222222222")); + BOOST_TEST(testR("abcde", 5, 0, 20, '2', "abcde22222222222222222222")); - BOOST_TEST(testR(S("abcde"), 5, 1, 0, '2', S("abcde"))); - BOOST_TEST(testR(S("abcde"), 5, 1, 5, '2', S("abcde22222"))); - BOOST_TEST(testR(S("abcde"), 5, 1, 10, '2', S("abcde2222222222"))); - BOOST_TEST(testR(S("abcde"), 5, 1, 20, '2', S("abcde22222222222222222222"))); + BOOST_TEST(testR("abcde", 5, 1, 0, '2', "abcde")); + BOOST_TEST(testR("abcde", 5, 1, 5, '2', "abcde22222")); + BOOST_TEST(testR("abcde", 5, 1, 10, '2', "abcde2222222222")); + BOOST_TEST(testR("abcde", 5, 1, 20, '2', "abcde22222222222222222222")); - BOOST_TEST(testR(S("abcde"), 0, 4, "12345", 4, S("1234e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "12345", 5, S("12345e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "1234567890", 0, S("e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "1234567890", 1, S("1e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "1234567890", 5, S("12345e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "1234567890", 9, S("123456789e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "1234567890", 10, S("1234567890e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "12345678901234567890", 0, S("e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "12345678901234567890", 1, S("1e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "12345678901234567890", 10, S("1234567890e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "12345678901234567890", 19, S("1234567890123456789e"))); - BOOST_TEST(testR(S("abcde"), 0, 4, "12345678901234567890", 20, S("12345678901234567890e"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "", 0, S(""))); - BOOST_TEST(testR(S("abcde"), 0, 5, "12345", 0, S(""))); - BOOST_TEST(testR(S("abcde"), 0, 5, "12345", 1, S("1"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "12345", 2, S("12"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "12345", 4, S("1234"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "12345", 5, S("12345"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "1234567890", 0, S(""))); - BOOST_TEST(testR(S("abcde"), 0, 5, "1234567890", 1, S("1"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "1234567890", 5, S("12345"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "1234567890", 9, S("123456789"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "1234567890", 10, S("1234567890"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "12345678901234567890", 0, S(""))); - BOOST_TEST(testR(S("abcde"), 0, 5, "12345678901234567890", 1, S("1"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "12345678901234567890", 10, S("1234567890"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "12345678901234567890", 19, S("1234567890123456789"))); - BOOST_TEST(testR(S("abcde"), 0, 5, "12345678901234567890", 20, S("12345678901234567890"))); - BOOST_TEST(testR(S("abcde"), 0, 6, "", 0, S(""))); - BOOST_TEST(testR(S("abcde"), 0, 6, "12345", 0, S(""))); - BOOST_TEST(testR(S("abcde"), 0, 6, "12345", 1, S("1"))); - BOOST_TEST(testR(S("abcde"), 0, 6, "12345", 2, S("12"))); - BOOST_TEST(testR(S("abcde"), 0, 6, "12345", 4, S("1234"))); - BOOST_TEST(testR(S("abcde"), 0, 6, "12345", 5, S("12345"))); - BOOST_TEST(testR(S("abcde"), 0, 6, "1234567890", 0, S(""))); - BOOST_TEST(testR(S("abcde"), 0, 6, "1234567890", 1, S("1"))); - BOOST_TEST(testR(S("abcde"), 0, 6, "1234567890", 5, S("12345"))); - BOOST_TEST(testR(S("abcde"), 0, 6, "1234567890", 9, S("123456789"))); - BOOST_TEST(testR(S("abcde"), 0, 6, "1234567890", 10, S("1234567890"))); - BOOST_TEST(testR(S("abcde"), 0, 6, "12345678901234567890", 0, S(""))); - BOOST_TEST(testR(S("abcde"), 0, 6, "12345678901234567890", 1, S("1"))); - BOOST_TEST(testR(S("abcde"), 0, 6, "12345678901234567890", 10, S("1234567890"))); - BOOST_TEST(testR(S("abcde"), 0, 6, "12345678901234567890", 19, S("1234567890123456789"))); - BOOST_TEST(testR(S("abcde"), 0, 6, "12345678901234567890", 20, S("12345678901234567890"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "", 0, S("abcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "12345", 0, S("abcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "12345", 1, S("a1bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "12345", 2, S("a12bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "12345", 4, S("a1234bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "12345", 5, S("a12345bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "1234567890", 0, S("abcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "1234567890", 1, S("a1bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "1234567890", 5, S("a12345bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "1234567890", 9, S("a123456789bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "1234567890", 10, S("a1234567890bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "12345678901234567890", 0, S("abcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "12345678901234567890", 1, S("a1bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "12345678901234567890", 10, S("a1234567890bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "", 0, S("acde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "12345", 0, S("acde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "12345", 1, S("a1cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "12345", 2, S("a12cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "12345", 4, S("a1234cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "12345", 5, S("a12345cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "1234567890", 0, S("acde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "1234567890", 1, S("a1cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "1234567890", 5, S("a12345cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "1234567890", 9, S("a123456789cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "1234567890", 10, S("a1234567890cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "12345678901234567890", 0, S("acde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "12345678901234567890", 1, S("a1cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "12345678901234567890", 10, S("a1234567890cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cde"))); - BOOST_TEST(testR(S("abcde"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cde"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "", 0, S("ade"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "12345", 0, S("ade"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "12345", 1, S("a1de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "12345", 2, S("a12de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "12345", 4, S("a1234de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "12345", 5, S("a12345de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "1234567890", 0, S("ade"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "1234567890", 1, S("a1de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "1234567890", 5, S("a12345de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "1234567890", 9, S("a123456789de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "1234567890", 10, S("a1234567890de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "12345678901234567890", 0, S("ade"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "12345678901234567890", 1, S("a1de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "12345678901234567890", 10, S("a1234567890de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "12345678901234567890", 19, S("a1234567890123456789de"))); - BOOST_TEST(testR(S("abcde"), 1, 2, "12345678901234567890", 20, S("a12345678901234567890de"))); - BOOST_TEST(testR(S("abcde"), 1, 3, "", 0, S("ae"))); - BOOST_TEST(testR(S("abcde"), 1, 3, "12345", 0, S("ae"))); - BOOST_TEST(testR(S("abcde"), 1, 3, "12345", 1, S("a1e"))); - BOOST_TEST(testR(S("abcde"), 1, 3, "12345", 2, S("a12e"))); - BOOST_TEST(testR(S("abcde"), 1, 3, "12345", 4, S("a1234e"))); - BOOST_TEST(testR(S("abcde"), 1, 3, "12345", 5, S("a12345e"))); - BOOST_TEST(testR(S("abcde"), 1, 3, "1234567890", 0, S("ae"))); - BOOST_TEST(testR(S("abcde"), 1, 3, "1234567890", 1, S("a1e"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 10, "1234567890", 5, S("a12345"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 10, "1234567890", 9, S("a123456789"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 10, "1234567890", 10, S("a1234567890"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 10, "12345678901234567890", 0, S("a"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 10, "12345678901234567890", 1, S("a1"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 10, "12345678901234567890", 10, S("a1234567890"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 10, "12345678901234567890", 19, S("a1234567890123456789"))); - BOOST_TEST(testR(S("abcdefghij"), 1, 10, "12345678901234567890", 20, S("a12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "", 0, S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "12345", 0, S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "12345", 1, S("abcde1fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "12345", 2, S("abcde12fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "12345", 4, S("abcde1234fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "12345", 5, S("abcde12345fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "1234567890", 0, S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "1234567890", 1, S("abcde1fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "1234567890", 5, S("abcde12345fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "1234567890", 9, S("abcde123456789fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "1234567890", 10, S("abcde1234567890fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "12345678901234567890", 0, S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "12345678901234567890", 1, S("abcde1fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "12345678901234567890", 10, S("abcde1234567890fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "12345678901234567890", 19, S("abcde1234567890123456789fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 0, "12345678901234567890", 20, S("abcde12345678901234567890fghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "", 0, S("abcdeghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "12345", 0, S("abcdeghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "12345", 1, S("abcde1ghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "12345", 2, S("abcde12ghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "12345", 4, S("abcde1234ghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "12345", 5, S("abcde12345ghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "1234567890", 0, S("abcdeghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "1234567890", 1, S("abcde1ghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "1234567890", 5, S("abcde12345ghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "1234567890", 9, S("abcde123456789ghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "1234567890", 10, S("abcde1234567890ghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "12345678901234567890", 0, S("abcdeghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "12345678901234567890", 1, S("abcde1ghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "12345678901234567890", 10, S("abcde1234567890ghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "12345678901234567890", 19, S("abcde1234567890123456789ghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 1, "12345678901234567890", 20, S("abcde12345678901234567890ghij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "", 0, S("abcdehij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "12345", 0, S("abcdehij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "12345", 1, S("abcde1hij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "12345", 2, S("abcde12hij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "12345", 4, S("abcde1234hij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "12345", 5, S("abcde12345hij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "1234567890", 0, S("abcdehij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "1234567890", 1, S("abcde1hij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "1234567890", 5, S("abcde12345hij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "1234567890", 9, S("abcde123456789hij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "1234567890", 10, S("abcde1234567890hij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "12345678901234567890", 0, S("abcdehij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "12345678901234567890", 1, S("abcde1hij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "12345678901234567890", 10, S("abcde1234567890hij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "12345678901234567890", 19, S("abcde1234567890123456789hij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 2, "12345678901234567890", 20, S("abcde12345678901234567890hij"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "", 0, S("abcdej"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "12345", 0, S("abcdej"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "12345", 1, S("abcde1j"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "12345", 2, S("abcde12j"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "12345", 4, S("abcde1234j"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "12345", 5, S("abcde12345j"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "1234567890", 0, S("abcdej"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "1234567890", 1, S("abcde1j"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "1234567890", 5, S("abcde12345j"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "1234567890", 9, S("abcde123456789j"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "1234567890", 10, S("abcde1234567890j"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "12345678901234567890", 0, S("abcdej"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "12345678901234567890", 1, S("abcde1j"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "12345678901234567890", 10, S("abcde1234567890j"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "12345678901234567890", 19, S("abcde1234567890123456789j"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 4, "12345678901234567890", 20, S("abcde12345678901234567890j"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "", 0, S("abcde"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "12345", 0, S("abcde"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "12345", 1, S("abcde1"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "12345", 2, S("abcde12"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "12345", 4, S("abcde1234"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "12345", 5, S("abcde12345"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "1234567890", 0, S("abcde"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "1234567890", 1, S("abcde1"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "1234567890", 5, S("abcde12345"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "1234567890", 9, S("abcde123456789"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "1234567890", 10, S("abcde1234567890"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "12345678901234567890", 0, S("abcde"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "12345678901234567890", 1, S("abcde1"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "12345678901234567890", 10, S("abcde1234567890"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "12345678901234567890", 19, S("abcde1234567890123456789"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 5, "12345678901234567890", 20, S("abcde12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 6, "", 0, S("abcde"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 6, "12345", 0, S("abcde"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 6, "12345", 1, S("abcde1"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 6, "12345", 2, S("abcde12"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 6, "12345", 4, S("abcde1234"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 6, "12345", 5, S("abcde12345"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 6, "1234567890", 0, S("abcde"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 6, "1234567890", 1, S("abcde1"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 6, "1234567890", 5, S("abcde12345"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 6, "1234567890", 9, S("abcde123456789"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 6, "1234567890", 10, S("abcde1234567890"))); - BOOST_TEST(testR(S("abcdefghij"), 5, 6, "12345678901234567890", 0, S("abcde"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "12345", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "12345", 1, S("1abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "12345", 2, S("12abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "12345", 4, S("1234abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "12345", 5, S("12345abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 1, S("1abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 5, S("12345abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 9, S("123456789abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 10, S("1234567890abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 1, S("1abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 10, S("1234567890abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "", 0, S("bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "12345", 0, S("bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "12345", 1, S("1bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "12345", 2, S("12bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "12345", 4, S("1234bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "12345", 5, S("12345bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 0, S("bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 1, S("1bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 5, S("12345bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 9, S("123456789bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 10, S("1234567890bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 0, S("bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 1, S("1bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 10, S("1234567890bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "", 0, S("klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "12345", 0, S("klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "12345", 1, S("1klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "12345", 2, S("12klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "12345", 4, S("1234klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "12345", 5, S("12345klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 0, S("klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 1, S("1klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 5, S("12345klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 9, S("123456789klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 10, S("1234567890klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 0, S("klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 1, S("1klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 10, S("1234567890klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 19, S("1234567890123456789klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 20, S("12345678901234567890klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "", 0, S("t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "12345", 0, S("t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "12345", 1, S("1t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "12345", 2, S("12t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "12345", 4, S("1234t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "12345", 5, S("12345t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 0, S("t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 1, S("1t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 5, S("12345t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 9, S("123456789t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 10, S("1234567890t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 0, S("t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 1, S("1t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 10, S("1234567890t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 19, S("1234567890123456789t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 20, S("12345678901234567890t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "", 0, S(""))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "12345", 0, S(""))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "12345", 1, S("1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "12345", 2, S("12"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "12345", 4, S("1234"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "12345", 5, S("12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 0, S(""))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 1, S("1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 5, S("12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 9, S("123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 10, S("1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 0, S(""))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 1, S("1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 10, S("1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 19, S("1234567890123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 20, S("12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "", 0, S(""))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "12345", 0, S(""))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "12345", 1, S("1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "12345", 2, S("12"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "12345", 4, S("1234"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "12345", 5, S("12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 0, S(""))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 1, S("1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 5, S("12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 9, S("123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 10, S("1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 0, S(""))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 1, S("1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 10, S("1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 19, S("1234567890123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 20, S("12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "12345", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "12345", 1, S("a1bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "12345", 2, S("a12bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "12345", 4, S("a1234bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "12345", 5, S("a12345bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 1, S("a1bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 5, S("a12345bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 9, S("a123456789bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 10, S("a1234567890bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 1, S("a1bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 10, S("a1234567890bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "", 0, S("acdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "12345", 0, S("acdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "12345", 1, S("a1cdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "12345", 2, S("a12cdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "12345", 4, S("a1234cdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "12345", 5, S("a12345cdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 0, S("acdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 1, S("a1cdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 5, S("a12345cdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 9, S("a123456789cdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 10, S("a1234567890cdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 0, S("acdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 1, S("a1cdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 10, S("a1234567890cdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "", 0, S("aklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "12345", 0, S("aklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "12345", 1, S("a1klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "12345", 2, S("a12klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "12345", 4, S("a1234klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "12345", 5, S("a12345klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 0, S("aklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 1, S("a1klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 5, S("a12345klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 9, S("a123456789klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 10, S("a1234567890klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 0, S("aklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 1, S("a1klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 10, S("a1234567890klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 19, S("a1234567890123456789klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 20, S("a12345678901234567890klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "", 0, S("at"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "12345", 0, S("at"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "12345", 1, S("a1t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "12345", 2, S("a12t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "12345", 4, S("a1234t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "12345", 5, S("a12345t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 0, S("at"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 1, S("a1t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 5, S("a12345t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 9, S("a123456789t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 10, S("a1234567890t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 0, S("at"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 1, S("a1t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 10, S("a1234567890t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 19, S("a1234567890123456789t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 20, S("a12345678901234567890t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "", 0, S("a"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "12345", 0, S("a"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "12345", 1, S("a1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "12345", 2, S("a12"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "12345", 4, S("a1234"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "12345", 5, S("a12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 0, S("a"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 1, S("a1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 5, S("a12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 9, S("a123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 10, S("a1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 0, S("a"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 1, S("a1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 10, S("a1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 19, S("a1234567890123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 20, S("a12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "", 0, S("a"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "12345", 0, S("a"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "12345", 1, S("a1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "12345", 2, S("a12"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "12345", 4, S("a1234"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "12345", 5, S("a12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 0, S("a"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 1, S("a1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 5, S("a12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 9, S("a123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 10, S("a1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 0, S("a"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 1, S("a1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 10, S("a1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 19, S("a1234567890123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 20, S("a12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "12345", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "12345", 1, S("abcdefghij1klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "12345", 2, S("abcdefghij12klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "12345", 4, S("abcdefghij1234klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "12345", 5, S("abcdefghij12345klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 1, S("abcdefghij1klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 5, S("abcdefghij12345klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 9, S("abcdefghij123456789klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 10, S("abcdefghij1234567890klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 1, S("abcdefghij1klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 10, S("abcdefghij1234567890klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 19, S("abcdefghij1234567890123456789klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 20, S("abcdefghij12345678901234567890klmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "", 0, S("abcdefghijlmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "12345", 0, S("abcdefghijlmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "12345", 1, S("abcdefghij1lmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "12345", 2, S("abcdefghij12lmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "12345", 4, S("abcdefghij1234lmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "12345", 5, S("abcdefghij12345lmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 0, S("abcdefghijlmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 1, S("abcdefghij1lmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 5, S("abcdefghij12345lmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 9, S("abcdefghij123456789lmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 10, S("abcdefghij1234567890lmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 0, S("abcdefghijlmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 1, S("abcdefghij1lmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 10, S("abcdefghij1234567890lmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 19, S("abcdefghij1234567890123456789lmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 20, S("abcdefghij12345678901234567890lmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "", 0, S("abcdefghijpqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "12345", 0, S("abcdefghijpqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "12345", 1, S("abcdefghij1pqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "12345", 2, S("abcdefghij12pqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "12345", 4, S("abcdefghij1234pqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "12345", 5, S("abcdefghij12345pqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 0, S("abcdefghijpqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 1, S("abcdefghij1pqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 5, S("abcdefghij12345pqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 9, S("abcdefghij123456789pqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 10, S("abcdefghij1234567890pqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 0, S("abcdefghijpqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 1, S("abcdefghij1pqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 10, S("abcdefghij1234567890pqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 19, S("abcdefghij1234567890123456789pqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 20, S("abcdefghij12345678901234567890pqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "", 0, S("abcdefghijt"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "12345", 0, S("abcdefghijt"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "12345", 1, S("abcdefghij1t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "12345", 2, S("abcdefghij12t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "12345", 4, S("abcdefghij1234t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "12345", 5, S("abcdefghij12345t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 0, S("abcdefghijt"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 1, S("abcdefghij1t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 5, S("abcdefghij12345t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 9, S("abcdefghij123456789t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 10, S("abcdefghij1234567890t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 0, S("abcdefghijt"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 1, S("abcdefghij1t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 10, S("abcdefghij1234567890t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 19, S("abcdefghij1234567890123456789t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 20, S("abcdefghij12345678901234567890t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "", 0, S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "12345", 0, S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "12345", 1, S("abcdefghij1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "12345", 2, S("abcdefghij12"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "12345", 4, S("abcdefghij1234"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "12345", 5, S("abcdefghij12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 0, S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 1, S("abcdefghij1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 5, S("abcdefghij12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 9, S("abcdefghij123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 10, S("abcdefghij1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 0, S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 1, S("abcdefghij1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 10, S("abcdefghij1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 19, S("abcdefghij1234567890123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 20, S("abcdefghij12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "", 0, S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "12345", 0, S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "12345", 1, S("abcdefghij1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "12345", 2, S("abcdefghij12"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "12345", 4, S("abcdefghij1234"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "12345", 5, S("abcdefghij12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 0, S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 1, S("abcdefghij1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 5, S("abcdefghij12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 9, S("abcdefghij123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 10, S("abcdefghij1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 0, S("abcdefghij"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 1, S("abcdefghij1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 10, S("abcdefghij1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 19, S("abcdefghij1234567890123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 20, S("abcdefghij12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "12345", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "12345", 1, S("abcdefghijklmnopqrs1t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "12345", 2, S("abcdefghijklmnopqrs12t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "12345", 4, S("abcdefghijklmnopqrs1234t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "12345", 5, S("abcdefghijklmnopqrs12345t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 1, S("abcdefghijklmnopqrs1t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 5, S("abcdefghijklmnopqrs12345t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 9, S("abcdefghijklmnopqrs123456789t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 10, S("abcdefghijklmnopqrs1234567890t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S(""), 1, 0, "12345", 0, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "12345", 1, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "12345", 2, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "12345", 4, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "12345", 5, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "1234567890", 0, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "1234567890", 1, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "1234567890", 5, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "1234567890", 9, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "1234567890", 10, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "12345678901234567890", 0, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "12345678901234567890", 1, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "12345678901234567890", 10, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "12345678901234567890", 19, S("can't happen"))); - BOOST_TEST(testR(S(""), 1, 0, "12345678901234567890", 20, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "", 0, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "12345", 0, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "12345", 1, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "12345", 2, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "12345", 4, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "12345", 5, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "1234567890", 0, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "1234567890", 1, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "1234567890", 5, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "1234567890", 9, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "1234567890", 10, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "12345678901234567890", 0, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "12345678901234567890", 1, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "12345678901234567890", 10, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "12345678901234567890", 19, S("can't happen"))); - BOOST_TEST(testR(S("abcde"), 6, 0, "12345678901234567890", 20, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "", 0, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "12345", 0, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "12345", 1, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "12345", 2, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "12345", 4, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "12345", 5, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "1234567890", 0, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "1234567890", 1, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "1234567890", 5, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "1234567890", 9, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "1234567890", 10, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "12345678901234567890", 0, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "12345678901234567890", 1, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "12345678901234567890", 10, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "12345678901234567890", 19, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghij"), 11, 0, "12345678901234567890", 20, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "", 0, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "12345", 0, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "12345", 1, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "12345", 2, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "12345", 4, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "12345", 5, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 0, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 1, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 5, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 9, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 10, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 0, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 1, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 10, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 19, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 20, S("can't happen"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 1, S("abcdefghijklmnopqrs1t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890t"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "", 0, S("abcdefghijklmnopqrs"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "12345", 0, S("abcdefghijklmnopqrs"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "12345", 1, S("abcdefghijklmnopqrs1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "12345", 2, S("abcdefghijklmnopqrs12"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "12345", 4, S("abcdefghijklmnopqrs1234"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "12345", 5, S("abcdefghijklmnopqrs12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 0, S("abcdefghijklmnopqrs"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 1, S("abcdefghijklmnopqrs1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 5, S("abcdefghijklmnopqrs12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 9, S("abcdefghijklmnopqrs123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 10, S("abcdefghijklmnopqrs1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 0, S("abcdefghijklmnopqrs"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 1, S("abcdefghijklmnopqrs1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "", 0, S("abcdefghijklmnopqrs"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "12345", 0, S("abcdefghijklmnopqrs"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "12345", 1, S("abcdefghijklmnopqrs1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "12345", 2, S("abcdefghijklmnopqrs12"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "12345", 4, S("abcdefghijklmnopqrs1234"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "12345", 5, S("abcdefghijklmnopqrs12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 0, S("abcdefghijklmnopqrs"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 1, S("abcdefghijklmnopqrs1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 5, S("abcdefghijklmnopqrs12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 9, S("abcdefghijklmnopqrs123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 10, S("abcdefghijklmnopqrs1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 0, S("abcdefghijklmnopqrs"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 1, S("abcdefghijklmnopqrs1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "12345", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "12345", 1, S("abcdefghijklmnopqrst1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "12345", 2, S("abcdefghijklmnopqrst12"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "12345", 4, S("abcdefghijklmnopqrst1234"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "12345", 5, S("abcdefghijklmnopqrst12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 1, S("abcdefghijklmnopqrst1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 5, S("abcdefghijklmnopqrst12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 9, S("abcdefghijklmnopqrst123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 10, S("abcdefghijklmnopqrst1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 1, S("abcdefghijklmnopqrst1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 10, S("abcdefghijklmnopqrst1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 19, S("abcdefghijklmnopqrst1234567890123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 20, S("abcdefghijklmnopqrst12345678901234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "12345", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "12345", 1, S("abcdefghijklmnopqrst1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "12345", 2, S("abcdefghijklmnopqrst12"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "12345", 4, S("abcdefghijklmnopqrst1234"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "12345", 5, S("abcdefghijklmnopqrst12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 1, S("abcdefghijklmnopqrst1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 5, S("abcdefghijklmnopqrst12345"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 9, S("abcdefghijklmnopqrst123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 10, S("abcdefghijklmnopqrst1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 0, S("abcdefghijklmnopqrst"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 1, S("abcdefghijklmnopqrst1"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 10, S("abcdefghijklmnopqrst1234567890"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 19, S("abcdefghijklmnopqrst1234567890123456789"))); - BOOST_TEST(testR(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 20, S("abcdefghijklmnopqrst12345678901234567890"))); + BOOST_TEST(testR("abcde", 0, 4, "12345", 4, "1234e")); + BOOST_TEST(testR("abcde", 0, 4, "12345", 5, "12345e")); + BOOST_TEST(testR("abcde", 0, 4, "1234567890", 0, "e")); + BOOST_TEST(testR("abcde", 0, 4, "1234567890", 1, "1e")); + BOOST_TEST(testR("abcde", 0, 4, "1234567890", 5, "12345e")); + BOOST_TEST(testR("abcde", 0, 4, "1234567890", 9, "123456789e")); + BOOST_TEST(testR("abcde", 0, 4, "1234567890", 10, "1234567890e")); + BOOST_TEST(testR("abcde", 0, 4, "12345678901234567890", 0, "e")); + BOOST_TEST(testR("abcde", 0, 4, "12345678901234567890", 1, "1e")); + BOOST_TEST(testR("abcde", 0, 4, "12345678901234567890", 10, "1234567890e")); + BOOST_TEST(testR("abcde", 0, 4, "12345678901234567890", 19, "1234567890123456789e")); + BOOST_TEST(testR("abcde", 0, 4, "12345678901234567890", 20, "12345678901234567890e")); + BOOST_TEST(testR("abcde", 0, 5, "", 0, "")); + BOOST_TEST(testR("abcde", 0, 5, "12345", 0, "")); + BOOST_TEST(testR("abcde", 0, 5, "12345", 1, "1")); + BOOST_TEST(testR("abcde", 0, 5, "12345", 2, "12")); + BOOST_TEST(testR("abcde", 0, 5, "12345", 4, "1234")); + BOOST_TEST(testR("abcde", 0, 5, "12345", 5, "12345")); + BOOST_TEST(testR("abcde", 0, 5, "1234567890", 0, "")); + BOOST_TEST(testR("abcde", 0, 5, "1234567890", 1, "1")); + BOOST_TEST(testR("abcde", 0, 5, "1234567890", 5, "12345")); + BOOST_TEST(testR("abcde", 0, 5, "1234567890", 9, "123456789")); + BOOST_TEST(testR("abcde", 0, 5, "1234567890", 10, "1234567890")); + BOOST_TEST(testR("abcde", 0, 5, "12345678901234567890", 0, "")); + BOOST_TEST(testR("abcde", 0, 5, "12345678901234567890", 1, "1")); + BOOST_TEST(testR("abcde", 0, 5, "12345678901234567890", 10, "1234567890")); + BOOST_TEST(testR("abcde", 0, 5, "12345678901234567890", 19, "1234567890123456789")); + BOOST_TEST(testR("abcde", 0, 5, "12345678901234567890", 20, "12345678901234567890")); + BOOST_TEST(testR("abcde", 0, 6, "", 0, "")); + BOOST_TEST(testR("abcde", 0, 6, "12345", 0, "")); + BOOST_TEST(testR("abcde", 0, 6, "12345", 1, "1")); + BOOST_TEST(testR("abcde", 0, 6, "12345", 2, "12")); + BOOST_TEST(testR("abcde", 0, 6, "12345", 4, "1234")); + BOOST_TEST(testR("abcde", 0, 6, "12345", 5, "12345")); + BOOST_TEST(testR("abcde", 0, 6, "1234567890", 0, "")); + BOOST_TEST(testR("abcde", 0, 6, "1234567890", 1, "1")); + BOOST_TEST(testR("abcde", 0, 6, "1234567890", 5, "12345")); + BOOST_TEST(testR("abcde", 0, 6, "1234567890", 9, "123456789")); + BOOST_TEST(testR("abcde", 0, 6, "1234567890", 10, "1234567890")); + BOOST_TEST(testR("abcde", 0, 6, "12345678901234567890", 0, "")); + BOOST_TEST(testR("abcde", 0, 6, "12345678901234567890", 1, "1")); + BOOST_TEST(testR("abcde", 0, 6, "12345678901234567890", 10, "1234567890")); + BOOST_TEST(testR("abcde", 0, 6, "12345678901234567890", 19, "1234567890123456789")); + BOOST_TEST(testR("abcde", 0, 6, "12345678901234567890", 20, "12345678901234567890")); + BOOST_TEST(testR("abcde", 1, 0, "", 0, "abcde")); + BOOST_TEST(testR("abcde", 1, 0, "12345", 0, "abcde")); + BOOST_TEST(testR("abcde", 1, 0, "12345", 1, "a1bcde")); + BOOST_TEST(testR("abcde", 1, 0, "12345", 2, "a12bcde")); + BOOST_TEST(testR("abcde", 1, 0, "12345", 4, "a1234bcde")); + BOOST_TEST(testR("abcde", 1, 0, "12345", 5, "a12345bcde")); + BOOST_TEST(testR("abcde", 1, 0, "1234567890", 0, "abcde")); + BOOST_TEST(testR("abcde", 1, 0, "1234567890", 1, "a1bcde")); + BOOST_TEST(testR("abcde", 1, 0, "1234567890", 5, "a12345bcde")); + BOOST_TEST(testR("abcde", 1, 0, "1234567890", 9, "a123456789bcde")); + BOOST_TEST(testR("abcde", 1, 0, "1234567890", 10, "a1234567890bcde")); + BOOST_TEST(testR("abcde", 1, 0, "12345678901234567890", 0, "abcde")); + BOOST_TEST(testR("abcde", 1, 0, "12345678901234567890", 1, "a1bcde")); + BOOST_TEST(testR("abcde", 1, 0, "12345678901234567890", 10, "a1234567890bcde")); + BOOST_TEST(testR("abcde", 1, 0, "12345678901234567890", 19, "a1234567890123456789bcde")); + BOOST_TEST(testR("abcde", 1, 0, "12345678901234567890", 20, "a12345678901234567890bcde")); + BOOST_TEST(testR("abcde", 1, 1, "", 0, "acde")); + BOOST_TEST(testR("abcde", 1, 1, "12345", 0, "acde")); + BOOST_TEST(testR("abcde", 1, 1, "12345", 1, "a1cde")); + BOOST_TEST(testR("abcde", 1, 1, "12345", 2, "a12cde")); + BOOST_TEST(testR("abcde", 1, 1, "12345", 4, "a1234cde")); + BOOST_TEST(testR("abcde", 1, 1, "12345", 5, "a12345cde")); + BOOST_TEST(testR("abcde", 1, 1, "1234567890", 0, "acde")); + BOOST_TEST(testR("abcde", 1, 1, "1234567890", 1, "a1cde")); + BOOST_TEST(testR("abcde", 1, 1, "1234567890", 5, "a12345cde")); + BOOST_TEST(testR("abcde", 1, 1, "1234567890", 9, "a123456789cde")); + BOOST_TEST(testR("abcde", 1, 1, "1234567890", 10, "a1234567890cde")); + BOOST_TEST(testR("abcde", 1, 1, "12345678901234567890", 0, "acde")); + BOOST_TEST(testR("abcde", 1, 1, "12345678901234567890", 1, "a1cde")); + BOOST_TEST(testR("abcde", 1, 1, "12345678901234567890", 10, "a1234567890cde")); + BOOST_TEST(testR("abcde", 1, 1, "12345678901234567890", 19, "a1234567890123456789cde")); + BOOST_TEST(testR("abcde", 1, 1, "12345678901234567890", 20, "a12345678901234567890cde")); + BOOST_TEST(testR("abcde", 1, 2, "", 0, "ade")); + BOOST_TEST(testR("abcde", 1, 2, "12345", 0, "ade")); + BOOST_TEST(testR("abcde", 1, 2, "12345", 1, "a1de")); + BOOST_TEST(testR("abcde", 1, 2, "12345", 2, "a12de")); + BOOST_TEST(testR("abcde", 1, 2, "12345", 4, "a1234de")); + BOOST_TEST(testR("abcde", 1, 2, "12345", 5, "a12345de")); + BOOST_TEST(testR("abcde", 1, 2, "1234567890", 0, "ade")); + BOOST_TEST(testR("abcde", 1, 2, "1234567890", 1, "a1de")); + BOOST_TEST(testR("abcde", 1, 2, "1234567890", 5, "a12345de")); + BOOST_TEST(testR("abcde", 1, 2, "1234567890", 9, "a123456789de")); + BOOST_TEST(testR("abcde", 1, 2, "1234567890", 10, "a1234567890de")); + BOOST_TEST(testR("abcde", 1, 2, "12345678901234567890", 0, "ade")); + BOOST_TEST(testR("abcde", 1, 2, "12345678901234567890", 1, "a1de")); + BOOST_TEST(testR("abcde", 1, 2, "12345678901234567890", 10, "a1234567890de")); + BOOST_TEST(testR("abcde", 1, 2, "12345678901234567890", 19, "a1234567890123456789de")); + BOOST_TEST(testR("abcde", 1, 2, "12345678901234567890", 20, "a12345678901234567890de")); + BOOST_TEST(testR("abcde", 1, 3, "", 0, "ae")); + BOOST_TEST(testR("abcde", 1, 3, "12345", 0, "ae")); + BOOST_TEST(testR("abcde", 1, 3, "12345", 1, "a1e")); + BOOST_TEST(testR("abcde", 1, 3, "12345", 2, "a12e")); + BOOST_TEST(testR("abcde", 1, 3, "12345", 4, "a1234e")); + BOOST_TEST(testR("abcde", 1, 3, "12345", 5, "a12345e")); + BOOST_TEST(testR("abcde", 1, 3, "1234567890", 0, "ae")); + BOOST_TEST(testR("abcde", 1, 3, "1234567890", 1, "a1e")); + BOOST_TEST(testR("abcdefghij", 1, 10, "1234567890", 5, "a12345")); + BOOST_TEST(testR("abcdefghij", 1, 10, "1234567890", 9, "a123456789")); + BOOST_TEST(testR("abcdefghij", 1, 10, "1234567890", 10, "a1234567890")); + BOOST_TEST(testR("abcdefghij", 1, 10, "12345678901234567890", 0, "a")); + BOOST_TEST(testR("abcdefghij", 1, 10, "12345678901234567890", 1, "a1")); + BOOST_TEST(testR("abcdefghij", 1, 10, "12345678901234567890", 10, "a1234567890")); + BOOST_TEST(testR("abcdefghij", 1, 10, "12345678901234567890", 19, "a1234567890123456789")); + BOOST_TEST(testR("abcdefghij", 1, 10, "12345678901234567890", 20, "a12345678901234567890")); + BOOST_TEST(testR("abcdefghij", 5, 0, "", 0, "abcdefghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "12345", 0, "abcdefghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "12345", 1, "abcde1fghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "12345", 2, "abcde12fghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "12345", 4, "abcde1234fghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "12345", 5, "abcde12345fghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "1234567890", 0, "abcdefghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "1234567890", 1, "abcde1fghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "1234567890", 5, "abcde12345fghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "1234567890", 9, "abcde123456789fghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "1234567890", 10, "abcde1234567890fghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "12345678901234567890", 0, "abcdefghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "12345678901234567890", 1, "abcde1fghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "12345678901234567890", 10, "abcde1234567890fghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "12345678901234567890", 19, "abcde1234567890123456789fghij")); + BOOST_TEST(testR("abcdefghij", 5, 0, "12345678901234567890", 20, "abcde12345678901234567890fghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "", 0, "abcdeghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "12345", 0, "abcdeghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "12345", 1, "abcde1ghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "12345", 2, "abcde12ghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "12345", 4, "abcde1234ghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "12345", 5, "abcde12345ghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "1234567890", 0, "abcdeghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "1234567890", 1, "abcde1ghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "1234567890", 5, "abcde12345ghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "1234567890", 9, "abcde123456789ghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "1234567890", 10, "abcde1234567890ghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "12345678901234567890", 0, "abcdeghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "12345678901234567890", 1, "abcde1ghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "12345678901234567890", 10, "abcde1234567890ghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "12345678901234567890", 19, "abcde1234567890123456789ghij")); + BOOST_TEST(testR("abcdefghij", 5, 1, "12345678901234567890", 20, "abcde12345678901234567890ghij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "", 0, "abcdehij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "12345", 0, "abcdehij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "12345", 1, "abcde1hij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "12345", 2, "abcde12hij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "12345", 4, "abcde1234hij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "12345", 5, "abcde12345hij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "1234567890", 0, "abcdehij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "1234567890", 1, "abcde1hij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "1234567890", 5, "abcde12345hij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "1234567890", 9, "abcde123456789hij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "1234567890", 10, "abcde1234567890hij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "12345678901234567890", 0, "abcdehij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "12345678901234567890", 1, "abcde1hij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "12345678901234567890", 10, "abcde1234567890hij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "12345678901234567890", 19, "abcde1234567890123456789hij")); + BOOST_TEST(testR("abcdefghij", 5, 2, "12345678901234567890", 20, "abcde12345678901234567890hij")); + BOOST_TEST(testR("abcdefghij", 5, 4, "", 0, "abcdej")); + BOOST_TEST(testR("abcdefghij", 5, 4, "12345", 0, "abcdej")); + BOOST_TEST(testR("abcdefghij", 5, 4, "12345", 1, "abcde1j")); + BOOST_TEST(testR("abcdefghij", 5, 4, "12345", 2, "abcde12j")); + BOOST_TEST(testR("abcdefghij", 5, 4, "12345", 4, "abcde1234j")); + BOOST_TEST(testR("abcdefghij", 5, 4, "12345", 5, "abcde12345j")); + BOOST_TEST(testR("abcdefghij", 5, 4, "1234567890", 0, "abcdej")); + BOOST_TEST(testR("abcdefghij", 5, 4, "1234567890", 1, "abcde1j")); + BOOST_TEST(testR("abcdefghij", 5, 4, "1234567890", 5, "abcde12345j")); + BOOST_TEST(testR("abcdefghij", 5, 4, "1234567890", 9, "abcde123456789j")); + BOOST_TEST(testR("abcdefghij", 5, 4, "1234567890", 10, "abcde1234567890j")); + BOOST_TEST(testR("abcdefghij", 5, 4, "12345678901234567890", 0, "abcdej")); + BOOST_TEST(testR("abcdefghij", 5, 4, "12345678901234567890", 1, "abcde1j")); + BOOST_TEST(testR("abcdefghij", 5, 4, "12345678901234567890", 10, "abcde1234567890j")); + BOOST_TEST(testR("abcdefghij", 5, 4, "12345678901234567890", 19, "abcde1234567890123456789j")); + BOOST_TEST(testR("abcdefghij", 5, 4, "12345678901234567890", 20, "abcde12345678901234567890j")); + BOOST_TEST(testR("abcdefghij", 5, 5, "", 0, "abcde")); + BOOST_TEST(testR("abcdefghij", 5, 5, "12345", 0, "abcde")); + BOOST_TEST(testR("abcdefghij", 5, 5, "12345", 1, "abcde1")); + BOOST_TEST(testR("abcdefghij", 5, 5, "12345", 2, "abcde12")); + BOOST_TEST(testR("abcdefghij", 5, 5, "12345", 4, "abcde1234")); + BOOST_TEST(testR("abcdefghij", 5, 5, "12345", 5, "abcde12345")); + BOOST_TEST(testR("abcdefghij", 5, 5, "1234567890", 0, "abcde")); + BOOST_TEST(testR("abcdefghij", 5, 5, "1234567890", 1, "abcde1")); + BOOST_TEST(testR("abcdefghij", 5, 5, "1234567890", 5, "abcde12345")); + BOOST_TEST(testR("abcdefghij", 5, 5, "1234567890", 9, "abcde123456789")); + BOOST_TEST(testR("abcdefghij", 5, 5, "1234567890", 10, "abcde1234567890")); + BOOST_TEST(testR("abcdefghij", 5, 5, "12345678901234567890", 0, "abcde")); + BOOST_TEST(testR("abcdefghij", 5, 5, "12345678901234567890", 1, "abcde1")); + BOOST_TEST(testR("abcdefghij", 5, 5, "12345678901234567890", 10, "abcde1234567890")); + BOOST_TEST(testR("abcdefghij", 5, 5, "12345678901234567890", 19, "abcde1234567890123456789")); + BOOST_TEST(testR("abcdefghij", 5, 5, "12345678901234567890", 20, "abcde12345678901234567890")); + BOOST_TEST(testR("abcdefghij", 5, 6, "", 0, "abcde")); + BOOST_TEST(testR("abcdefghij", 5, 6, "12345", 0, "abcde")); + BOOST_TEST(testR("abcdefghij", 5, 6, "12345", 1, "abcde1")); + BOOST_TEST(testR("abcdefghij", 5, 6, "12345", 2, "abcde12")); + BOOST_TEST(testR("abcdefghij", 5, 6, "12345", 4, "abcde1234")); + BOOST_TEST(testR("abcdefghij", 5, 6, "12345", 5, "abcde12345")); + BOOST_TEST(testR("abcdefghij", 5, 6, "1234567890", 0, "abcde")); + BOOST_TEST(testR("abcdefghij", 5, 6, "1234567890", 1, "abcde1")); + BOOST_TEST(testR("abcdefghij", 5, 6, "1234567890", 5, "abcde12345")); + BOOST_TEST(testR("abcdefghij", 5, 6, "1234567890", 9, "abcde123456789")); + BOOST_TEST(testR("abcdefghij", 5, 6, "1234567890", 10, "abcde1234567890")); + BOOST_TEST(testR("abcdefghij", 5, 6, "12345678901234567890", 0, "abcde")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "12345", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "12345", 1, "1abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "12345", 2, "12abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "12345", 4, "1234abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "12345", 5, "12345abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "1234567890", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "1234567890", 1, "1abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "1234567890", 5, "12345abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "1234567890", 9, "123456789abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "1234567890", 10, "1234567890abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "12345678901234567890", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "12345678901234567890", 1, "1abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "12345678901234567890", 10, "1234567890abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "12345678901234567890", 19, "1234567890123456789abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 0, "12345678901234567890", 20, "12345678901234567890abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "", 0, "bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "12345", 0, "bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "12345", 1, "1bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "12345", 2, "12bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "12345", 4, "1234bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "12345", 5, "12345bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "1234567890", 0, "bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "1234567890", 1, "1bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "1234567890", 5, "12345bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "1234567890", 9, "123456789bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "1234567890", 10, "1234567890bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "12345678901234567890", 0, "bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "12345678901234567890", 1, "1bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "12345678901234567890", 10, "1234567890bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "12345678901234567890", 19, "1234567890123456789bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 1, "12345678901234567890", 20, "12345678901234567890bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "", 0, "klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "12345", 0, "klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "12345", 1, "1klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "12345", 2, "12klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "12345", 4, "1234klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "12345", 5, "12345klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "1234567890", 0, "klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "1234567890", 1, "1klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "1234567890", 5, "12345klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "1234567890", 9, "123456789klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "1234567890", 10, "1234567890klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "12345678901234567890", 0, "klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "12345678901234567890", 1, "1klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "12345678901234567890", 10, "1234567890klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "12345678901234567890", 19, "1234567890123456789klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 10, "12345678901234567890", 20, "12345678901234567890klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "", 0, "t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "12345", 0, "t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "12345", 1, "1t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "12345", 2, "12t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "12345", 4, "1234t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "12345", 5, "12345t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "1234567890", 0, "t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "1234567890", 1, "1t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "1234567890", 5, "12345t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "1234567890", 9, "123456789t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "1234567890", 10, "1234567890t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "12345678901234567890", 0, "t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "12345678901234567890", 1, "1t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "12345678901234567890", 10, "1234567890t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "12345678901234567890", 19, "1234567890123456789t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 19, "12345678901234567890", 20, "12345678901234567890t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "", 0, "")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "12345", 0, "")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "12345", 1, "1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "12345", 2, "12")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "12345", 4, "1234")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "12345", 5, "12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "1234567890", 0, "")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "1234567890", 1, "1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "1234567890", 5, "12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "1234567890", 9, "123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "1234567890", 10, "1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "12345678901234567890", 0, "")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "12345678901234567890", 1, "1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "12345678901234567890", 10, "1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "12345678901234567890", 19, "1234567890123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 20, "12345678901234567890", 20, "12345678901234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "", 0, "")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "12345", 0, "")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "12345", 1, "1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "12345", 2, "12")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "12345", 4, "1234")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "12345", 5, "12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "1234567890", 0, "")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "1234567890", 1, "1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "1234567890", 5, "12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "1234567890", 9, "123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "1234567890", 10, "1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "12345678901234567890", 0, "")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "12345678901234567890", 1, "1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "12345678901234567890", 10, "1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "12345678901234567890", 19, "1234567890123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 0, 21, "12345678901234567890", 20, "12345678901234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "12345", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "12345", 1, "a1bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "12345", 2, "a12bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "12345", 4, "a1234bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "12345", 5, "a12345bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "1234567890", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "1234567890", 1, "a1bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "1234567890", 5, "a12345bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "1234567890", 9, "a123456789bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "1234567890", 10, "a1234567890bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "12345678901234567890", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "12345678901234567890", 1, "a1bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "12345678901234567890", 10, "a1234567890bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "12345678901234567890", 19, "a1234567890123456789bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 0, "12345678901234567890", 20, "a12345678901234567890bcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "", 0, "acdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "12345", 0, "acdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "12345", 1, "a1cdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "12345", 2, "a12cdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "12345", 4, "a1234cdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "12345", 5, "a12345cdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "1234567890", 0, "acdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "1234567890", 1, "a1cdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "1234567890", 5, "a12345cdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "1234567890", 9, "a123456789cdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "1234567890", 10, "a1234567890cdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "12345678901234567890", 0, "acdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "12345678901234567890", 1, "a1cdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "12345678901234567890", 10, "a1234567890cdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "12345678901234567890", 19, "a1234567890123456789cdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 1, "12345678901234567890", 20, "a12345678901234567890cdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "", 0, "aklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "12345", 0, "aklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "12345", 1, "a1klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "12345", 2, "a12klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "12345", 4, "a1234klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "12345", 5, "a12345klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "1234567890", 0, "aklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "1234567890", 1, "a1klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "1234567890", 5, "a12345klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "1234567890", 9, "a123456789klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "1234567890", 10, "a1234567890klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "12345678901234567890", 0, "aklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "12345678901234567890", 1, "a1klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "12345678901234567890", 10, "a1234567890klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "12345678901234567890", 19, "a1234567890123456789klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 9, "12345678901234567890", 20, "a12345678901234567890klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "", 0, "at")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "12345", 0, "at")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "12345", 1, "a1t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "12345", 2, "a12t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "12345", 4, "a1234t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "12345", 5, "a12345t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "1234567890", 0, "at")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "1234567890", 1, "a1t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "1234567890", 5, "a12345t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "1234567890", 9, "a123456789t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "1234567890", 10, "a1234567890t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "12345678901234567890", 0, "at")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "12345678901234567890", 1, "a1t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "12345678901234567890", 10, "a1234567890t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "12345678901234567890", 19, "a1234567890123456789t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 18, "12345678901234567890", 20, "a12345678901234567890t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "", 0, "a")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "12345", 0, "a")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "12345", 1, "a1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "12345", 2, "a12")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "12345", 4, "a1234")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "12345", 5, "a12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "1234567890", 0, "a")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "1234567890", 1, "a1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "1234567890", 5, "a12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "1234567890", 9, "a123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "1234567890", 10, "a1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "12345678901234567890", 0, "a")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "12345678901234567890", 1, "a1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "12345678901234567890", 10, "a1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "12345678901234567890", 19, "a1234567890123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 19, "12345678901234567890", 20, "a12345678901234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "", 0, "a")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "12345", 0, "a")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "12345", 1, "a1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "12345", 2, "a12")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "12345", 4, "a1234")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "12345", 5, "a12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "1234567890", 0, "a")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "1234567890", 1, "a1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "1234567890", 5, "a12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "1234567890", 9, "a123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "1234567890", 10, "a1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "12345678901234567890", 0, "a")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "12345678901234567890", 1, "a1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "12345678901234567890", 10, "a1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "12345678901234567890", 19, "a1234567890123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 1, 20, "12345678901234567890", 20, "a12345678901234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "12345", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "12345", 1, "abcdefghij1klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "12345", 2, "abcdefghij12klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "12345", 4, "abcdefghij1234klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "12345", 5, "abcdefghij12345klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "1234567890", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "1234567890", 1, "abcdefghij1klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "1234567890", 5, "abcdefghij12345klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "1234567890", 9, "abcdefghij123456789klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "1234567890", 10, "abcdefghij1234567890klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "12345678901234567890", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "12345678901234567890", 1, "abcdefghij1klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "12345678901234567890", 10, "abcdefghij1234567890klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "12345678901234567890", 19, "abcdefghij1234567890123456789klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 0, "12345678901234567890", 20, "abcdefghij12345678901234567890klmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "", 0, "abcdefghijlmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "12345", 0, "abcdefghijlmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "12345", 1, "abcdefghij1lmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "12345", 2, "abcdefghij12lmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "12345", 4, "abcdefghij1234lmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "12345", 5, "abcdefghij12345lmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "1234567890", 0, "abcdefghijlmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "1234567890", 1, "abcdefghij1lmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "1234567890", 5, "abcdefghij12345lmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "1234567890", 9, "abcdefghij123456789lmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "1234567890", 10, "abcdefghij1234567890lmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "12345678901234567890", 0, "abcdefghijlmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "12345678901234567890", 1, "abcdefghij1lmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "12345678901234567890", 10, "abcdefghij1234567890lmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "12345678901234567890", 19, "abcdefghij1234567890123456789lmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 1, "12345678901234567890", 20, "abcdefghij12345678901234567890lmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "", 0, "abcdefghijpqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "12345", 0, "abcdefghijpqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "12345", 1, "abcdefghij1pqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "12345", 2, "abcdefghij12pqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "12345", 4, "abcdefghij1234pqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "12345", 5, "abcdefghij12345pqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "1234567890", 0, "abcdefghijpqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "1234567890", 1, "abcdefghij1pqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "1234567890", 5, "abcdefghij12345pqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "1234567890", 9, "abcdefghij123456789pqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "1234567890", 10, "abcdefghij1234567890pqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "12345678901234567890", 0, "abcdefghijpqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "12345678901234567890", 1, "abcdefghij1pqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "12345678901234567890", 10, "abcdefghij1234567890pqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "12345678901234567890", 19, "abcdefghij1234567890123456789pqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 5, "12345678901234567890", 20, "abcdefghij12345678901234567890pqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "", 0, "abcdefghijt")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "12345", 0, "abcdefghijt")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "12345", 1, "abcdefghij1t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "12345", 2, "abcdefghij12t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "12345", 4, "abcdefghij1234t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "12345", 5, "abcdefghij12345t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "1234567890", 0, "abcdefghijt")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "1234567890", 1, "abcdefghij1t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "1234567890", 5, "abcdefghij12345t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "1234567890", 9, "abcdefghij123456789t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "1234567890", 10, "abcdefghij1234567890t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "12345678901234567890", 0, "abcdefghijt")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "12345678901234567890", 1, "abcdefghij1t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "12345678901234567890", 10, "abcdefghij1234567890t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "12345678901234567890", 19, "abcdefghij1234567890123456789t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 9, "12345678901234567890", 20, "abcdefghij12345678901234567890t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "", 0, "abcdefghij")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "12345", 0, "abcdefghij")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "12345", 1, "abcdefghij1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "12345", 2, "abcdefghij12")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "12345", 4, "abcdefghij1234")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "12345", 5, "abcdefghij12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "1234567890", 0, "abcdefghij")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "1234567890", 1, "abcdefghij1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "1234567890", 5, "abcdefghij12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "1234567890", 9, "abcdefghij123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "1234567890", 10, "abcdefghij1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "12345678901234567890", 0, "abcdefghij")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "12345678901234567890", 1, "abcdefghij1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "12345678901234567890", 10, "abcdefghij1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "12345678901234567890", 19, "abcdefghij1234567890123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 10, "12345678901234567890", 20, "abcdefghij12345678901234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "", 0, "abcdefghij")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "12345", 0, "abcdefghij")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "12345", 1, "abcdefghij1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "12345", 2, "abcdefghij12")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "12345", 4, "abcdefghij1234")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "12345", 5, "abcdefghij12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "1234567890", 0, "abcdefghij")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "1234567890", 1, "abcdefghij1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "1234567890", 5, "abcdefghij12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "1234567890", 9, "abcdefghij123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "1234567890", 10, "abcdefghij1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "12345678901234567890", 0, "abcdefghij")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "12345678901234567890", 1, "abcdefghij1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "12345678901234567890", 10, "abcdefghij1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "12345678901234567890", 19, "abcdefghij1234567890123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 10, 11, "12345678901234567890", 20, "abcdefghij12345678901234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "12345", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "12345", 1, "abcdefghijklmnopqrs1t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "12345", 2, "abcdefghijklmnopqrs12t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "12345", 4, "abcdefghijklmnopqrs1234t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "12345", 5, "abcdefghijklmnopqrs12345t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "1234567890", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "1234567890", 1, "abcdefghijklmnopqrs1t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "1234567890", 5, "abcdefghijklmnopqrs12345t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "1234567890", 9, "abcdefghijklmnopqrs123456789t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "1234567890", 10, "abcdefghijklmnopqrs1234567890t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "12345678901234567890", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("", 1, 0, "12345", 0, "can't happen")); + BOOST_TEST(testR("", 1, 0, "12345", 1, "can't happen")); + BOOST_TEST(testR("", 1, 0, "12345", 2, "can't happen")); + BOOST_TEST(testR("", 1, 0, "12345", 4, "can't happen")); + BOOST_TEST(testR("", 1, 0, "12345", 5, "can't happen")); + BOOST_TEST(testR("", 1, 0, "1234567890", 0, "can't happen")); + BOOST_TEST(testR("", 1, 0, "1234567890", 1, "can't happen")); + BOOST_TEST(testR("", 1, 0, "1234567890", 5, "can't happen")); + BOOST_TEST(testR("", 1, 0, "1234567890", 9, "can't happen")); + BOOST_TEST(testR("", 1, 0, "1234567890", 10, "can't happen")); + BOOST_TEST(testR("", 1, 0, "12345678901234567890", 0, "can't happen")); + BOOST_TEST(testR("", 1, 0, "12345678901234567890", 1, "can't happen")); + BOOST_TEST(testR("", 1, 0, "12345678901234567890", 10, "can't happen")); + BOOST_TEST(testR("", 1, 0, "12345678901234567890", 19, "can't happen")); + BOOST_TEST(testR("", 1, 0, "12345678901234567890", 20, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "", 0, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "12345", 0, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "12345", 1, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "12345", 2, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "12345", 4, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "12345", 5, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "1234567890", 0, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "1234567890", 1, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "1234567890", 5, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "1234567890", 9, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "1234567890", 10, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "12345678901234567890", 0, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "12345678901234567890", 1, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "12345678901234567890", 10, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "12345678901234567890", 19, "can't happen")); + BOOST_TEST(testR("abcde", 6, 0, "12345678901234567890", 20, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "", 0, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "12345", 0, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "12345", 1, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "12345", 2, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "12345", 4, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "12345", 5, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "1234567890", 0, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "1234567890", 1, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "1234567890", 5, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "1234567890", 9, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "1234567890", 10, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "12345678901234567890", 0, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "12345678901234567890", 1, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "12345678901234567890", 10, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "12345678901234567890", 19, "can't happen")); + BOOST_TEST(testR("abcdefghij", 11, 0, "12345678901234567890", 20, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "", 0, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "12345", 0, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "12345", 1, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "12345", 2, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "12345", 4, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "12345", 5, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "1234567890", 0, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "1234567890", 1, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "1234567890", 5, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "1234567890", 9, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "1234567890", 10, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "12345678901234567890", 0, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "12345678901234567890", 1, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "12345678901234567890", 10, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "12345678901234567890", 19, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 21, 0, "12345678901234567890", 20, "can't happen")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "12345678901234567890", 1, "abcdefghijklmnopqrs1t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "12345678901234567890", 10, "abcdefghijklmnopqrs1234567890t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "12345678901234567890", 19, "abcdefghijklmnopqrs1234567890123456789t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 0, "12345678901234567890", 20, "abcdefghijklmnopqrs12345678901234567890t")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "", 0, "abcdefghijklmnopqrs")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "12345", 0, "abcdefghijklmnopqrs")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "12345", 1, "abcdefghijklmnopqrs1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "12345", 2, "abcdefghijklmnopqrs12")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "12345", 4, "abcdefghijklmnopqrs1234")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "12345", 5, "abcdefghijklmnopqrs12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "1234567890", 0, "abcdefghijklmnopqrs")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "1234567890", 1, "abcdefghijklmnopqrs1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "1234567890", 5, "abcdefghijklmnopqrs12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "1234567890", 9, "abcdefghijklmnopqrs123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "1234567890", 10, "abcdefghijklmnopqrs1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "12345678901234567890", 0, "abcdefghijklmnopqrs")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "12345678901234567890", 1, "abcdefghijklmnopqrs1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "12345678901234567890", 10, "abcdefghijklmnopqrs1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "12345678901234567890", 19, "abcdefghijklmnopqrs1234567890123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 1, "12345678901234567890", 20, "abcdefghijklmnopqrs12345678901234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "", 0, "abcdefghijklmnopqrs")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "12345", 0, "abcdefghijklmnopqrs")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "12345", 1, "abcdefghijklmnopqrs1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "12345", 2, "abcdefghijklmnopqrs12")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "12345", 4, "abcdefghijklmnopqrs1234")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "12345", 5, "abcdefghijklmnopqrs12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "1234567890", 0, "abcdefghijklmnopqrs")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "1234567890", 1, "abcdefghijklmnopqrs1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "1234567890", 5, "abcdefghijklmnopqrs12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "1234567890", 9, "abcdefghijklmnopqrs123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "1234567890", 10, "abcdefghijklmnopqrs1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "12345678901234567890", 0, "abcdefghijklmnopqrs")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "12345678901234567890", 1, "abcdefghijklmnopqrs1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "12345678901234567890", 10, "abcdefghijklmnopqrs1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "12345678901234567890", 19, "abcdefghijklmnopqrs1234567890123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 19, 2, "12345678901234567890", 20, "abcdefghijklmnopqrs12345678901234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "12345", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "12345", 1, "abcdefghijklmnopqrst1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "12345", 2, "abcdefghijklmnopqrst12")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "12345", 4, "abcdefghijklmnopqrst1234")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "12345", 5, "abcdefghijklmnopqrst12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "1234567890", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "1234567890", 1, "abcdefghijklmnopqrst1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "1234567890", 5, "abcdefghijklmnopqrst12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "1234567890", 9, "abcdefghijklmnopqrst123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "1234567890", 10, "abcdefghijklmnopqrst1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "12345678901234567890", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "12345678901234567890", 1, "abcdefghijklmnopqrst1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "12345678901234567890", 10, "abcdefghijklmnopqrst1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "12345678901234567890", 19, "abcdefghijklmnopqrst1234567890123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 0, "12345678901234567890", 20, "abcdefghijklmnopqrst12345678901234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "12345", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "12345", 1, "abcdefghijklmnopqrst1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "12345", 2, "abcdefghijklmnopqrst12")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "12345", 4, "abcdefghijklmnopqrst1234")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "12345", 5, "abcdefghijklmnopqrst12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "1234567890", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "1234567890", 1, "abcdefghijklmnopqrst1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "1234567890", 5, "abcdefghijklmnopqrst12345")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "1234567890", 9, "abcdefghijklmnopqrst123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "1234567890", 10, "abcdefghijklmnopqrst1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "12345678901234567890", 0, "abcdefghijklmnopqrst")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "12345678901234567890", 1, "abcdefghijklmnopqrst1")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "12345678901234567890", 10, "abcdefghijklmnopqrst1234567890")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "12345678901234567890", 19, "abcdefghijklmnopqrst1234567890123456789")); + BOOST_TEST(testR("abcdefghijklmnopqrst", 20, 1, "12345678901234567890", 20, "abcdefghijklmnopqrst12345678901234567890")); using T = static_string<10>; BOOST_TEST_THROWS(T("12345").replace(0, 1, 500, 'a'), std::length_error);