1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is dual licensed under the MIT and the University of Illinois Open 6// Source Licenses. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// <string_view> 11 12// constexpr int compare(size_type pos1, size_type n1, basic_string_view str, 13// size_type pos2, size_type n2) const; 14 15#include <string_view> 16#include <cassert> 17 18#include "test_macros.h" 19#include "constexpr_char_traits.hpp" 20 21int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); } 22 23template<typename CharT> 24void test1 ( std::basic_string_view<CharT> sv1, size_t pos1, size_t n1, 25 std::basic_string_view<CharT> sv2, size_t pos2, size_t n2, 26 int expected ) { 27#ifdef TEST_HAS_NO_EXCEPTIONS 28 if (pos1 <= sv1.size() && pos2 <= sv2.size()) 29 assert (sign( sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected)); 30#else 31 try { 32 assert (sign( sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected)); 33 assert(pos1 <= sv1.size() && pos2 <= sv2.size()); 34 } 35 catch (const std::out_of_range&) { 36 assert(pos1 > sv1.size() || pos2 > sv2.size()); 37 } 38#endif 39} 40 41 42template<typename CharT> 43void test ( const CharT *s1, size_t pos1, size_t n1, 44 const CharT *s2, size_t pos2, size_t n2, 45 int expected ) { 46 typedef std::basic_string_view<CharT> string_view_t; 47 48 string_view_t sv1 ( s1 ); 49 string_view_t sv2 ( s2 ); 50 test1(sv1, pos1, n1, sv2, pos2, n2, expected); 51} 52 53void test0() 54{ 55 test("", 0, 0, "", 0, 0, 0); 56 test("", 0, 0, "", 0, 1, 0); 57 test("", 0, 0, "", 1, 0, 0); 58 test("", 0, 0, "abcde", 0, 0, 0); 59 test("", 0, 0, "abcde", 0, 1, -1); 60 test("", 0, 0, "abcde", 0, 2, -2); 61 test("", 0, 0, "abcde", 0, 4, -4); 62 test("", 0, 0, "abcde", 0, 5, -5); 63 test("", 0, 0, "abcde", 0, 6, -5); 64 test("", 0, 0, "abcde", 1, 0, 0); 65 test("", 0, 0, "abcde", 1, 1, -1); 66 test("", 0, 0, "abcde", 1, 2, -2); 67 test("", 0, 0, "abcde", 1, 3, -3); 68 test("", 0, 0, "abcde", 1, 4, -4); 69 test("", 0, 0, "abcde", 1, 5, -4); 70 test("", 0, 0, "abcde", 2, 0, 0); 71 test("", 0, 0, "abcde", 2, 1, -1); 72 test("", 0, 0, "abcde", 2, 2, -2); 73 test("", 0, 0, "abcde", 2, 3, -3); 74 test("", 0, 0, "abcde", 2, 4, -3); 75 test("", 0, 0, "abcde", 4, 0, 0); 76 test("", 0, 0, "abcde", 4, 1, -1); 77 test("", 0, 0, "abcde", 4, 2, -1); 78 test("", 0, 0, "abcde", 5, 0, 0); 79 test("", 0, 0, "abcde", 5, 1, 0); 80 test("", 0, 0, "abcde", 6, 0, 0); 81 test("", 0, 0, "abcdefghij", 0, 0, 0); 82 test("", 0, 0, "abcdefghij", 0, 1, -1); 83 test("", 0, 0, "abcdefghij", 0, 5, -5); 84 test("", 0, 0, "abcdefghij", 0, 9, -9); 85 test("", 0, 0, "abcdefghij", 0, 10, -10); 86 test("", 0, 0, "abcdefghij", 0, 11, -10); 87 test("", 0, 0, "abcdefghij", 1, 0, 0); 88 test("", 0, 0, "abcdefghij", 1, 1, -1); 89 test("", 0, 0, "abcdefghij", 1, 4, -4); 90 test("", 0, 0, "abcdefghij", 1, 8, -8); 91 test("", 0, 0, "abcdefghij", 1, 9, -9); 92 test("", 0, 0, "abcdefghij", 1, 10, -9); 93 test("", 0, 0, "abcdefghij", 5, 0, 0); 94 test("", 0, 0, "abcdefghij", 5, 1, -1); 95 test("", 0, 0, "abcdefghij", 5, 2, -2); 96 test("", 0, 0, "abcdefghij", 5, 4, -4); 97 test("", 0, 0, "abcdefghij", 5, 5, -5); 98 test("", 0, 0, "abcdefghij", 5, 6, -5); 99 test("", 0, 0, "abcdefghij", 9, 0, 0); 100 test("", 0, 0, "abcdefghij", 9, 1, -1); 101 test("", 0, 0, "abcdefghij", 9, 2, -1); 102 test("", 0, 0, "abcdefghij", 10, 0, 0); 103 test("", 0, 0, "abcdefghij", 10, 1, 0); 104 test("", 0, 0, "abcdefghij", 11, 0, 0); 105 test("", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0); 106 test("", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1); 107 test("", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10); 108 test("", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19); 109 test("", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20); 110 test("", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20); 111 test("", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0); 112 test("", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1); 113 test("", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9); 114 test("", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18); 115 test("", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19); 116 test("", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19); 117 test("", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0); 118 test("", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1); 119 test("", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5); 120 test("", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9); 121 test("", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10); 122 test("", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10); 123 test("", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0); 124 test("", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1); 125 test("", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1); 126 test("", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0); 127 test("", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0); 128 test("", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0); 129 test("", 0, 1, "", 0, 0, 0); 130 test("", 0, 1, "", 0, 1, 0); 131 test("", 0, 1, "", 1, 0, 0); 132 test("", 0, 1, "abcde", 0, 0, 0); 133 test("", 0, 1, "abcde", 0, 1, -1); 134 test("", 0, 1, "abcde", 0, 2, -2); 135 test("", 0, 1, "abcde", 0, 4, -4); 136 test("", 0, 1, "abcde", 0, 5, -5); 137 test("", 0, 1, "abcde", 0, 6, -5); 138 test("", 0, 1, "abcde", 1, 0, 0); 139 test("", 0, 1, "abcde", 1, 1, -1); 140 test("", 0, 1, "abcde", 1, 2, -2); 141 test("", 0, 1, "abcde", 1, 3, -3); 142 test("", 0, 1, "abcde", 1, 4, -4); 143 test("", 0, 1, "abcde", 1, 5, -4); 144 test("", 0, 1, "abcde", 2, 0, 0); 145 test("", 0, 1, "abcde", 2, 1, -1); 146 test("", 0, 1, "abcde", 2, 2, -2); 147 test("", 0, 1, "abcde", 2, 3, -3); 148 test("", 0, 1, "abcde", 2, 4, -3); 149 test("", 0, 1, "abcde", 4, 0, 0); 150 test("", 0, 1, "abcde", 4, 1, -1); 151 test("", 0, 1, "abcde", 4, 2, -1); 152 test("", 0, 1, "abcde", 5, 0, 0); 153 test("", 0, 1, "abcde", 5, 1, 0); 154 test("", 0, 1, "abcde", 6, 0, 0); 155} 156 157void test1() 158{ 159 test("", 0, 1, "abcdefghij", 0, 0, 0); 160 test("", 0, 1, "abcdefghij", 0, 1, -1); 161 test("", 0, 1, "abcdefghij", 0, 5, -5); 162 test("", 0, 1, "abcdefghij", 0, 9, -9); 163 test("", 0, 1, "abcdefghij", 0, 10, -10); 164 test("", 0, 1, "abcdefghij", 0, 11, -10); 165 test("", 0, 1, "abcdefghij", 1, 0, 0); 166 test("", 0, 1, "abcdefghij", 1, 1, -1); 167 test("", 0, 1, "abcdefghij", 1, 4, -4); 168 test("", 0, 1, "abcdefghij", 1, 8, -8); 169 test("", 0, 1, "abcdefghij", 1, 9, -9); 170 test("", 0, 1, "abcdefghij", 1, 10, -9); 171 test("", 0, 1, "abcdefghij", 5, 0, 0); 172 test("", 0, 1, "abcdefghij", 5, 1, -1); 173 test("", 0, 1, "abcdefghij", 5, 2, -2); 174 test("", 0, 1, "abcdefghij", 5, 4, -4); 175 test("", 0, 1, "abcdefghij", 5, 5, -5); 176 test("", 0, 1, "abcdefghij", 5, 6, -5); 177 test("", 0, 1, "abcdefghij", 9, 0, 0); 178 test("", 0, 1, "abcdefghij", 9, 1, -1); 179 test("", 0, 1, "abcdefghij", 9, 2, -1); 180 test("", 0, 1, "abcdefghij", 10, 0, 0); 181 test("", 0, 1, "abcdefghij", 10, 1, 0); 182 test("", 0, 1, "abcdefghij", 11, 0, 0); 183 test("", 0, 1, "abcdefghijklmnopqrst", 0, 0, 0); 184 test("", 0, 1, "abcdefghijklmnopqrst", 0, 1, -1); 185 test("", 0, 1, "abcdefghijklmnopqrst", 0, 10, -10); 186 test("", 0, 1, "abcdefghijklmnopqrst", 0, 19, -19); 187 test("", 0, 1, "abcdefghijklmnopqrst", 0, 20, -20); 188 test("", 0, 1, "abcdefghijklmnopqrst", 0, 21, -20); 189 test("", 0, 1, "abcdefghijklmnopqrst", 1, 0, 0); 190 test("", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1); 191 test("", 0, 1, "abcdefghijklmnopqrst", 1, 9, -9); 192 test("", 0, 1, "abcdefghijklmnopqrst", 1, 18, -18); 193 test("", 0, 1, "abcdefghijklmnopqrst", 1, 19, -19); 194 test("", 0, 1, "abcdefghijklmnopqrst", 1, 20, -19); 195 test("", 0, 1, "abcdefghijklmnopqrst", 10, 0, 0); 196 test("", 0, 1, "abcdefghijklmnopqrst", 10, 1, -1); 197 test("", 0, 1, "abcdefghijklmnopqrst", 10, 5, -5); 198 test("", 0, 1, "abcdefghijklmnopqrst", 10, 9, -9); 199 test("", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10); 200 test("", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10); 201 test("", 0, 1, "abcdefghijklmnopqrst", 19, 0, 0); 202 test("", 0, 1, "abcdefghijklmnopqrst", 19, 1, -1); 203 test("", 0, 1, "abcdefghijklmnopqrst", 19, 2, -1); 204 test("", 0, 1, "abcdefghijklmnopqrst", 20, 0, 0); 205 test("", 0, 1, "abcdefghijklmnopqrst", 20, 1, 0); 206 test("", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0); 207 test("", 1, 0, "", 0, 0, 0); 208 test("", 1, 0, "", 0, 1, 0); 209 test("", 1, 0, "", 1, 0, 0); 210 test("", 1, 0, "abcde", 0, 0, 0); 211 test("", 1, 0, "abcde", 0, 1, 0); 212 test("", 1, 0, "abcde", 0, 2, 0); 213 test("", 1, 0, "abcde", 0, 4, 0); 214 test("", 1, 0, "abcde", 0, 5, 0); 215 test("", 1, 0, "abcde", 0, 6, 0); 216 test("", 1, 0, "abcde", 1, 0, 0); 217 test("", 1, 0, "abcde", 1, 1, 0); 218 test("", 1, 0, "abcde", 1, 2, 0); 219 test("", 1, 0, "abcde", 1, 3, 0); 220 test("", 1, 0, "abcde", 1, 4, 0); 221 test("", 1, 0, "abcde", 1, 5, 0); 222 test("", 1, 0, "abcde", 2, 0, 0); 223 test("", 1, 0, "abcde", 2, 1, 0); 224 test("", 1, 0, "abcde", 2, 2, 0); 225 test("", 1, 0, "abcde", 2, 3, 0); 226 test("", 1, 0, "abcde", 2, 4, 0); 227 test("", 1, 0, "abcde", 4, 0, 0); 228 test("", 1, 0, "abcde", 4, 1, 0); 229 test("", 1, 0, "abcde", 4, 2, 0); 230 test("", 1, 0, "abcde", 5, 0, 0); 231 test("", 1, 0, "abcde", 5, 1, 0); 232 test("", 1, 0, "abcde", 6, 0, 0); 233 test("", 1, 0, "abcdefghij", 0, 0, 0); 234 test("", 1, 0, "abcdefghij", 0, 1, 0); 235 test("", 1, 0, "abcdefghij", 0, 5, 0); 236 test("", 1, 0, "abcdefghij", 0, 9, 0); 237 test("", 1, 0, "abcdefghij", 0, 10, 0); 238 test("", 1, 0, "abcdefghij", 0, 11, 0); 239 test("", 1, 0, "abcdefghij", 1, 0, 0); 240 test("", 1, 0, "abcdefghij", 1, 1, 0); 241 test("", 1, 0, "abcdefghij", 1, 4, 0); 242 test("", 1, 0, "abcdefghij", 1, 8, 0); 243 test("", 1, 0, "abcdefghij", 1, 9, 0); 244 test("", 1, 0, "abcdefghij", 1, 10, 0); 245 test("", 1, 0, "abcdefghij", 5, 0, 0); 246 test("", 1, 0, "abcdefghij", 5, 1, 0); 247 test("", 1, 0, "abcdefghij", 5, 2, 0); 248 test("", 1, 0, "abcdefghij", 5, 4, 0); 249 test("", 1, 0, "abcdefghij", 5, 5, 0); 250 test("", 1, 0, "abcdefghij", 5, 6, 0); 251 test("", 1, 0, "abcdefghij", 9, 0, 0); 252 test("", 1, 0, "abcdefghij", 9, 1, 0); 253 test("", 1, 0, "abcdefghij", 9, 2, 0); 254 test("", 1, 0, "abcdefghij", 10, 0, 0); 255 test("", 1, 0, "abcdefghij", 10, 1, 0); 256 test("", 1, 0, "abcdefghij", 11, 0, 0); 257 test("", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0); 258 test("", 1, 0, "abcdefghijklmnopqrst", 0, 1, 0); 259} 260 261void test2() 262{ 263 test("", 1, 0, "abcdefghijklmnopqrst", 0, 10, 0); 264 test("", 1, 0, "abcdefghijklmnopqrst", 0, 19, 0); 265 test("", 1, 0, "abcdefghijklmnopqrst", 0, 20, 0); 266 test("", 1, 0, "abcdefghijklmnopqrst", 0, 21, 0); 267 test("", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0); 268 test("", 1, 0, "abcdefghijklmnopqrst", 1, 1, 0); 269 test("", 1, 0, "abcdefghijklmnopqrst", 1, 9, 0); 270 test("", 1, 0, "abcdefghijklmnopqrst", 1, 18, 0); 271 test("", 1, 0, "abcdefghijklmnopqrst", 1, 19, 0); 272 test("", 1, 0, "abcdefghijklmnopqrst", 1, 20, 0); 273 test("", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0); 274 test("", 1, 0, "abcdefghijklmnopqrst", 10, 1, 0); 275 test("", 1, 0, "abcdefghijklmnopqrst", 10, 5, 0); 276 test("", 1, 0, "abcdefghijklmnopqrst", 10, 9, 0); 277 test("", 1, 0, "abcdefghijklmnopqrst", 10, 10, 0); 278 test("", 1, 0, "abcdefghijklmnopqrst", 10, 11, 0); 279 test("", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0); 280 test("", 1, 0, "abcdefghijklmnopqrst", 19, 1, 0); 281 test("", 1, 0, "abcdefghijklmnopqrst", 19, 2, 0); 282 test("", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0); 283 test("", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0); 284 test("", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0); 285 test("abcde", 0, 0, "", 0, 0, 0); 286 test("abcde", 0, 0, "", 0, 1, 0); 287 test("abcde", 0, 0, "", 1, 0, 0); 288 test("abcde", 0, 0, "abcde", 0, 0, 0); 289 test("abcde", 0, 0, "abcde", 0, 1, -1); 290 test("abcde", 0, 0, "abcde", 0, 2, -2); 291 test("abcde", 0, 0, "abcde", 0, 4, -4); 292 test("abcde", 0, 0, "abcde", 0, 5, -5); 293 test("abcde", 0, 0, "abcde", 0, 6, -5); 294 test("abcde", 0, 0, "abcde", 1, 0, 0); 295 test("abcde", 0, 0, "abcde", 1, 1, -1); 296 test("abcde", 0, 0, "abcde", 1, 2, -2); 297 test("abcde", 0, 0, "abcde", 1, 3, -3); 298 test("abcde", 0, 0, "abcde", 1, 4, -4); 299 test("abcde", 0, 0, "abcde", 1, 5, -4); 300 test("abcde", 0, 0, "abcde", 2, 0, 0); 301 test("abcde", 0, 0, "abcde", 2, 1, -1); 302 test("abcde", 0, 0, "abcde", 2, 2, -2); 303 test("abcde", 0, 0, "abcde", 2, 3, -3); 304 test("abcde", 0, 0, "abcde", 2, 4, -3); 305 test("abcde", 0, 0, "abcde", 4, 0, 0); 306 test("abcde", 0, 0, "abcde", 4, 1, -1); 307 test("abcde", 0, 0, "abcde", 4, 2, -1); 308 test("abcde", 0, 0, "abcde", 5, 0, 0); 309 test("abcde", 0, 0, "abcde", 5, 1, 0); 310 test("abcde", 0, 0, "abcde", 6, 0, 0); 311 test("abcde", 0, 0, "abcdefghij", 0, 0, 0); 312 test("abcde", 0, 0, "abcdefghij", 0, 1, -1); 313 test("abcde", 0, 0, "abcdefghij", 0, 5, -5); 314 test("abcde", 0, 0, "abcdefghij", 0, 9, -9); 315 test("abcde", 0, 0, "abcdefghij", 0, 10, -10); 316 test("abcde", 0, 0, "abcdefghij", 0, 11, -10); 317 test("abcde", 0, 0, "abcdefghij", 1, 0, 0); 318 test("abcde", 0, 0, "abcdefghij", 1, 1, -1); 319 test("abcde", 0, 0, "abcdefghij", 1, 4, -4); 320 test("abcde", 0, 0, "abcdefghij", 1, 8, -8); 321 test("abcde", 0, 0, "abcdefghij", 1, 9, -9); 322 test("abcde", 0, 0, "abcdefghij", 1, 10, -9); 323 test("abcde", 0, 0, "abcdefghij", 5, 0, 0); 324 test("abcde", 0, 0, "abcdefghij", 5, 1, -1); 325 test("abcde", 0, 0, "abcdefghij", 5, 2, -2); 326 test("abcde", 0, 0, "abcdefghij", 5, 4, -4); 327 test("abcde", 0, 0, "abcdefghij", 5, 5, -5); 328 test("abcde", 0, 0, "abcdefghij", 5, 6, -5); 329 test("abcde", 0, 0, "abcdefghij", 9, 0, 0); 330 test("abcde", 0, 0, "abcdefghij", 9, 1, -1); 331 test("abcde", 0, 0, "abcdefghij", 9, 2, -1); 332 test("abcde", 0, 0, "abcdefghij", 10, 0, 0); 333 test("abcde", 0, 0, "abcdefghij", 10, 1, 0); 334 test("abcde", 0, 0, "abcdefghij", 11, 0, 0); 335 test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0); 336 test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1); 337 test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10); 338 test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19); 339 test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20); 340 test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20); 341 test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0); 342 test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1); 343 test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9); 344 test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18); 345 test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19); 346 test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19); 347 test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0); 348 test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1); 349 test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5); 350 test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9); 351 test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10); 352 test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10); 353 test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0); 354 test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1); 355 test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1); 356 test("abcde", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0); 357 test("abcde", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0); 358 test("abcde", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0); 359 test("abcde", 0, 1, "", 0, 0, 1); 360 test("abcde", 0, 1, "", 0, 1, 1); 361 test("abcde", 0, 1, "", 1, 0, 0); 362 test("abcde", 0, 1, "abcde", 0, 0, 1); 363} 364 365void test3() 366{ 367 test("abcde", 0, 1, "abcde", 0, 1, 0); 368 test("abcde", 0, 1, "abcde", 0, 2, -1); 369 test("abcde", 0, 1, "abcde", 0, 4, -3); 370 test("abcde", 0, 1, "abcde", 0, 5, -4); 371 test("abcde", 0, 1, "abcde", 0, 6, -4); 372 test("abcde", 0, 1, "abcde", 1, 0, 1); 373 test("abcde", 0, 1, "abcde", 1, 1, -1); 374 test("abcde", 0, 1, "abcde", 1, 2, -1); 375 test("abcde", 0, 1, "abcde", 1, 3, -1); 376 test("abcde", 0, 1, "abcde", 1, 4, -1); 377 test("abcde", 0, 1, "abcde", 1, 5, -1); 378 test("abcde", 0, 1, "abcde", 2, 0, 1); 379 test("abcde", 0, 1, "abcde", 2, 1, -2); 380 test("abcde", 0, 1, "abcde", 2, 2, -2); 381 test("abcde", 0, 1, "abcde", 2, 3, -2); 382 test("abcde", 0, 1, "abcde", 2, 4, -2); 383 test("abcde", 0, 1, "abcde", 4, 0, 1); 384 test("abcde", 0, 1, "abcde", 4, 1, -4); 385 test("abcde", 0, 1, "abcde", 4, 2, -4); 386 test("abcde", 0, 1, "abcde", 5, 0, 1); 387 test("abcde", 0, 1, "abcde", 5, 1, 1); 388 test("abcde", 0, 1, "abcde", 6, 0, 0); 389 test("abcde", 0, 1, "abcdefghij", 0, 0, 1); 390 test("abcde", 0, 1, "abcdefghij", 0, 1, 0); 391 test("abcde", 0, 1, "abcdefghij", 0, 5, -4); 392 test("abcde", 0, 1, "abcdefghij", 0, 9, -8); 393 test("abcde", 0, 1, "abcdefghij", 0, 10, -9); 394 test("abcde", 0, 1, "abcdefghij", 0, 11, -9); 395 test("abcde", 0, 1, "abcdefghij", 1, 0, 1); 396 test("abcde", 0, 1, "abcdefghij", 1, 1, -1); 397 test("abcde", 0, 1, "abcdefghij", 1, 4, -1); 398 test("abcde", 0, 1, "abcdefghij", 1, 8, -1); 399 test("abcde", 0, 1, "abcdefghij", 1, 9, -1); 400 test("abcde", 0, 1, "abcdefghij", 1, 10, -1); 401 test("abcde", 0, 1, "abcdefghij", 5, 0, 1); 402 test("abcde", 0, 1, "abcdefghij", 5, 1, -5); 403 test("abcde", 0, 1, "abcdefghij", 5, 2, -5); 404 test("abcde", 0, 1, "abcdefghij", 5, 4, -5); 405 test("abcde", 0, 1, "abcdefghij", 5, 5, -5); 406 test("abcde", 0, 1, "abcdefghij", 5, 6, -5); 407 test("abcde", 0, 1, "abcdefghij", 9, 0, 1); 408 test("abcde", 0, 1, "abcdefghij", 9, 1, -9); 409 test("abcde", 0, 1, "abcdefghij", 9, 2, -9); 410 test("abcde", 0, 1, "abcdefghij", 10, 0, 1); 411 test("abcde", 0, 1, "abcdefghij", 10, 1, 1); 412 test("abcde", 0, 1, "abcdefghij", 11, 0, 0); 413 test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 0, 1); 414 test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 1, 0); 415 test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 10, -9); 416 test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 19, -18); 417 test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 20, -19); 418 test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 21, -19); 419 test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 0, 1); 420 test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1); 421 test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 9, -1); 422 test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 18, -1); 423 test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 19, -1); 424 test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 20, -1); 425 test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 0, 1); 426 test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 1, -10); 427 test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 5, -10); 428 test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 9, -10); 429 test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10); 430 test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10); 431 test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, 0, 1); 432 test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, 1, -19); 433 test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, 2, -19); 434 test("abcde", 0, 1, "abcdefghijklmnopqrst", 20, 0, 1); 435 test("abcde", 0, 1, "abcdefghijklmnopqrst", 20, 1, 1); 436 test("abcde", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0); 437 test("abcde", 0, 2, "", 0, 0, 2); 438 test("abcde", 0, 2, "", 0, 1, 2); 439 test("abcde", 0, 2, "", 1, 0, 0); 440 test("abcde", 0, 2, "abcde", 0, 0, 2); 441 test("abcde", 0, 2, "abcde", 0, 1, 1); 442 test("abcde", 0, 2, "abcde", 0, 2, 0); 443 test("abcde", 0, 2, "abcde", 0, 4, -2); 444 test("abcde", 0, 2, "abcde", 0, 5, -3); 445 test("abcde", 0, 2, "abcde", 0, 6, -3); 446 test("abcde", 0, 2, "abcde", 1, 0, 2); 447 test("abcde", 0, 2, "abcde", 1, 1, -1); 448 test("abcde", 0, 2, "abcde", 1, 2, -1); 449 test("abcde", 0, 2, "abcde", 1, 3, -1); 450 test("abcde", 0, 2, "abcde", 1, 4, -1); 451 test("abcde", 0, 2, "abcde", 1, 5, -1); 452 test("abcde", 0, 2, "abcde", 2, 0, 2); 453 test("abcde", 0, 2, "abcde", 2, 1, -2); 454 test("abcde", 0, 2, "abcde", 2, 2, -2); 455 test("abcde", 0, 2, "abcde", 2, 3, -2); 456 test("abcde", 0, 2, "abcde", 2, 4, -2); 457 test("abcde", 0, 2, "abcde", 4, 0, 2); 458 test("abcde", 0, 2, "abcde", 4, 1, -4); 459 test("abcde", 0, 2, "abcde", 4, 2, -4); 460 test("abcde", 0, 2, "abcde", 5, 0, 2); 461 test("abcde", 0, 2, "abcde", 5, 1, 2); 462 test("abcde", 0, 2, "abcde", 6, 0, 0); 463 test("abcde", 0, 2, "abcdefghij", 0, 0, 2); 464 test("abcde", 0, 2, "abcdefghij", 0, 1, 1); 465 test("abcde", 0, 2, "abcdefghij", 0, 5, -3); 466 test("abcde", 0, 2, "abcdefghij", 0, 9, -7); 467} 468 469void test4() 470{ 471 test("abcde", 0, 2, "abcdefghij", 0, 10, -8); 472 test("abcde", 0, 2, "abcdefghij", 0, 11, -8); 473 test("abcde", 0, 2, "abcdefghij", 1, 0, 2); 474 test("abcde", 0, 2, "abcdefghij", 1, 1, -1); 475 test("abcde", 0, 2, "abcdefghij", 1, 4, -1); 476 test("abcde", 0, 2, "abcdefghij", 1, 8, -1); 477 test("abcde", 0, 2, "abcdefghij", 1, 9, -1); 478 test("abcde", 0, 2, "abcdefghij", 1, 10, -1); 479 test("abcde", 0, 2, "abcdefghij", 5, 0, 2); 480 test("abcde", 0, 2, "abcdefghij", 5, 1, -5); 481 test("abcde", 0, 2, "abcdefghij", 5, 2, -5); 482 test("abcde", 0, 2, "abcdefghij", 5, 4, -5); 483 test("abcde", 0, 2, "abcdefghij", 5, 5, -5); 484 test("abcde", 0, 2, "abcdefghij", 5, 6, -5); 485 test("abcde", 0, 2, "abcdefghij", 9, 0, 2); 486 test("abcde", 0, 2, "abcdefghij", 9, 1, -9); 487 test("abcde", 0, 2, "abcdefghij", 9, 2, -9); 488 test("abcde", 0, 2, "abcdefghij", 10, 0, 2); 489 test("abcde", 0, 2, "abcdefghij", 10, 1, 2); 490 test("abcde", 0, 2, "abcdefghij", 11, 0, 0); 491 test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 0, 2); 492 test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 1, 1); 493 test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 10, -8); 494 test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 19, -17); 495 test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 20, -18); 496 test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 21, -18); 497 test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 0, 2); 498 test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 1, -1); 499 test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 9, -1); 500 test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 18, -1); 501 test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 19, -1); 502 test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 20, -1); 503 test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 0, 2); 504 test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 1, -10); 505 test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 5, -10); 506 test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 9, -10); 507 test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 10, -10); 508 test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 11, -10); 509 test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, 0, 2); 510 test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, 1, -19); 511 test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, 2, -19); 512 test("abcde", 0, 2, "abcdefghijklmnopqrst", 20, 0, 2); 513 test("abcde", 0, 2, "abcdefghijklmnopqrst", 20, 1, 2); 514 test("abcde", 0, 2, "abcdefghijklmnopqrst", 21, 0, 0); 515 test("abcde", 0, 4, "", 0, 0, 4); 516 test("abcde", 0, 4, "", 0, 1, 4); 517 test("abcde", 0, 4, "", 1, 0, 0); 518 test("abcde", 0, 4, "abcde", 0, 0, 4); 519 test("abcde", 0, 4, "abcde", 0, 1, 3); 520 test("abcde", 0, 4, "abcde", 0, 2, 2); 521 test("abcde", 0, 4, "abcde", 0, 4, 0); 522 test("abcde", 0, 4, "abcde", 0, 5, -1); 523 test("abcde", 0, 4, "abcde", 0, 6, -1); 524 test("abcde", 0, 4, "abcde", 1, 0, 4); 525 test("abcde", 0, 4, "abcde", 1, 1, -1); 526 test("abcde", 0, 4, "abcde", 1, 2, -1); 527 test("abcde", 0, 4, "abcde", 1, 3, -1); 528 test("abcde", 0, 4, "abcde", 1, 4, -1); 529 test("abcde", 0, 4, "abcde", 1, 5, -1); 530 test("abcde", 0, 4, "abcde", 2, 0, 4); 531 test("abcde", 0, 4, "abcde", 2, 1, -2); 532 test("abcde", 0, 4, "abcde", 2, 2, -2); 533 test("abcde", 0, 4, "abcde", 2, 3, -2); 534 test("abcde", 0, 4, "abcde", 2, 4, -2); 535 test("abcde", 0, 4, "abcde", 4, 0, 4); 536 test("abcde", 0, 4, "abcde", 4, 1, -4); 537 test("abcde", 0, 4, "abcde", 4, 2, -4); 538 test("abcde", 0, 4, "abcde", 5, 0, 4); 539 test("abcde", 0, 4, "abcde", 5, 1, 4); 540 test("abcde", 0, 4, "abcde", 6, 0, 0); 541 test("abcde", 0, 4, "abcdefghij", 0, 0, 4); 542 test("abcde", 0, 4, "abcdefghij", 0, 1, 3); 543 test("abcde", 0, 4, "abcdefghij", 0, 5, -1); 544 test("abcde", 0, 4, "abcdefghij", 0, 9, -5); 545 test("abcde", 0, 4, "abcdefghij", 0, 10, -6); 546 test("abcde", 0, 4, "abcdefghij", 0, 11, -6); 547 test("abcde", 0, 4, "abcdefghij", 1, 0, 4); 548 test("abcde", 0, 4, "abcdefghij", 1, 1, -1); 549 test("abcde", 0, 4, "abcdefghij", 1, 4, -1); 550 test("abcde", 0, 4, "abcdefghij", 1, 8, -1); 551 test("abcde", 0, 4, "abcdefghij", 1, 9, -1); 552 test("abcde", 0, 4, "abcdefghij", 1, 10, -1); 553 test("abcde", 0, 4, "abcdefghij", 5, 0, 4); 554 test("abcde", 0, 4, "abcdefghij", 5, 1, -5); 555 test("abcde", 0, 4, "abcdefghij", 5, 2, -5); 556 test("abcde", 0, 4, "abcdefghij", 5, 4, -5); 557 test("abcde", 0, 4, "abcdefghij", 5, 5, -5); 558 test("abcde", 0, 4, "abcdefghij", 5, 6, -5); 559 test("abcde", 0, 4, "abcdefghij", 9, 0, 4); 560 test("abcde", 0, 4, "abcdefghij", 9, 1, -9); 561 test("abcde", 0, 4, "abcdefghij", 9, 2, -9); 562 test("abcde", 0, 4, "abcdefghij", 10, 0, 4); 563 test("abcde", 0, 4, "abcdefghij", 10, 1, 4); 564 test("abcde", 0, 4, "abcdefghij", 11, 0, 0); 565 test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 0, 4); 566 test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 1, 3); 567 test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 10, -6); 568 test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 19, -15); 569 test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 20, -16); 570 test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 21, -16); 571} 572 573void test5() 574{ 575 test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 0, 4); 576 test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 1, -1); 577 test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 9, -1); 578 test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 18, -1); 579 test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 19, -1); 580 test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 20, -1); 581 test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 0, 4); 582 test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 1, -10); 583 test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 5, -10); 584 test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 9, -10); 585 test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 10, -10); 586 test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 11, -10); 587 test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, 0, 4); 588 test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, 1, -19); 589 test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, 2, -19); 590 test("abcde", 0, 4, "abcdefghijklmnopqrst", 20, 0, 4); 591 test("abcde", 0, 4, "abcdefghijklmnopqrst", 20, 1, 4); 592 test("abcde", 0, 4, "abcdefghijklmnopqrst", 21, 0, 0); 593 test("abcde", 0, 5, "", 0, 0, 5); 594 test("abcde", 0, 5, "", 0, 1, 5); 595 test("abcde", 0, 5, "", 1, 0, 0); 596 test("abcde", 0, 5, "abcde", 0, 0, 5); 597 test("abcde", 0, 5, "abcde", 0, 1, 4); 598 test("abcde", 0, 5, "abcde", 0, 2, 3); 599 test("abcde", 0, 5, "abcde", 0, 4, 1); 600 test("abcde", 0, 5, "abcde", 0, 5, 0); 601 test("abcde", 0, 5, "abcde", 0, 6, 0); 602 test("abcde", 0, 5, "abcde", 1, 0, 5); 603 test("abcde", 0, 5, "abcde", 1, 1, -1); 604 test("abcde", 0, 5, "abcde", 1, 2, -1); 605 test("abcde", 0, 5, "abcde", 1, 3, -1); 606 test("abcde", 0, 5, "abcde", 1, 4, -1); 607 test("abcde", 0, 5, "abcde", 1, 5, -1); 608 test("abcde", 0, 5, "abcde", 2, 0, 5); 609 test("abcde", 0, 5, "abcde", 2, 1, -2); 610 test("abcde", 0, 5, "abcde", 2, 2, -2); 611 test("abcde", 0, 5, "abcde", 2, 3, -2); 612 test("abcde", 0, 5, "abcde", 2, 4, -2); 613 test("abcde", 0, 5, "abcde", 4, 0, 5); 614 test("abcde", 0, 5, "abcde", 4, 1, -4); 615 test("abcde", 0, 5, "abcde", 4, 2, -4); 616 test("abcde", 0, 5, "abcde", 5, 0, 5); 617 test("abcde", 0, 5, "abcde", 5, 1, 5); 618 test("abcde", 0, 5, "abcde", 6, 0, 0); 619 test("abcde", 0, 5, "abcdefghij", 0, 0, 5); 620 test("abcde", 0, 5, "abcdefghij", 0, 1, 4); 621 test("abcde", 0, 5, "abcdefghij", 0, 5, 0); 622 test("abcde", 0, 5, "abcdefghij", 0, 9, -4); 623 test("abcde", 0, 5, "abcdefghij", 0, 10, -5); 624 test("abcde", 0, 5, "abcdefghij", 0, 11, -5); 625 test("abcde", 0, 5, "abcdefghij", 1, 0, 5); 626 test("abcde", 0, 5, "abcdefghij", 1, 1, -1); 627 test("abcde", 0, 5, "abcdefghij", 1, 4, -1); 628 test("abcde", 0, 5, "abcdefghij", 1, 8, -1); 629 test("abcde", 0, 5, "abcdefghij", 1, 9, -1); 630 test("abcde", 0, 5, "abcdefghij", 1, 10, -1); 631 test("abcde", 0, 5, "abcdefghij", 5, 0, 5); 632 test("abcde", 0, 5, "abcdefghij", 5, 1, -5); 633 test("abcde", 0, 5, "abcdefghij", 5, 2, -5); 634 test("abcde", 0, 5, "abcdefghij", 5, 4, -5); 635 test("abcde", 0, 5, "abcdefghij", 5, 5, -5); 636 test("abcde", 0, 5, "abcdefghij", 5, 6, -5); 637 test("abcde", 0, 5, "abcdefghij", 9, 0, 5); 638 test("abcde", 0, 5, "abcdefghij", 9, 1, -9); 639 test("abcde", 0, 5, "abcdefghij", 9, 2, -9); 640 test("abcde", 0, 5, "abcdefghij", 10, 0, 5); 641 test("abcde", 0, 5, "abcdefghij", 10, 1, 5); 642 test("abcde", 0, 5, "abcdefghij", 11, 0, 0); 643 test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 0, 5); 644 test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 1, 4); 645 test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 10, -5); 646 test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 19, -14); 647 test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 20, -15); 648 test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 21, -15); 649 test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 0, 5); 650 test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 1, -1); 651 test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 9, -1); 652 test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 18, -1); 653 test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 19, -1); 654 test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 20, -1); 655 test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 0, 5); 656 test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 1, -10); 657 test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 5, -10); 658 test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 9, -10); 659 test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 10, -10); 660 test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 11, -10); 661 test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, 0, 5); 662 test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, 1, -19); 663 test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, 2, -19); 664 test("abcde", 0, 5, "abcdefghijklmnopqrst", 20, 0, 5); 665 test("abcde", 0, 5, "abcdefghijklmnopqrst", 20, 1, 5); 666 test("abcde", 0, 5, "abcdefghijklmnopqrst", 21, 0, 0); 667 test("abcde", 0, 6, "", 0, 0, 5); 668 test("abcde", 0, 6, "", 0, 1, 5); 669 test("abcde", 0, 6, "", 1, 0, 0); 670 test("abcde", 0, 6, "abcde", 0, 0, 5); 671 test("abcde", 0, 6, "abcde", 0, 1, 4); 672 test("abcde", 0, 6, "abcde", 0, 2, 3); 673 test("abcde", 0, 6, "abcde", 0, 4, 1); 674 test("abcde", 0, 6, "abcde", 0, 5, 0); 675} 676 677void test6() 678{ 679 test("abcde", 0, 6, "abcde", 0, 6, 0); 680 test("abcde", 0, 6, "abcde", 1, 0, 5); 681 test("abcde", 0, 6, "abcde", 1, 1, -1); 682 test("abcde", 0, 6, "abcde", 1, 2, -1); 683 test("abcde", 0, 6, "abcde", 1, 3, -1); 684 test("abcde", 0, 6, "abcde", 1, 4, -1); 685 test("abcde", 0, 6, "abcde", 1, 5, -1); 686 test("abcde", 0, 6, "abcde", 2, 0, 5); 687 test("abcde", 0, 6, "abcde", 2, 1, -2); 688 test("abcde", 0, 6, "abcde", 2, 2, -2); 689 test("abcde", 0, 6, "abcde", 2, 3, -2); 690 test("abcde", 0, 6, "abcde", 2, 4, -2); 691 test("abcde", 0, 6, "abcde", 4, 0, 5); 692 test("abcde", 0, 6, "abcde", 4, 1, -4); 693 test("abcde", 0, 6, "abcde", 4, 2, -4); 694 test("abcde", 0, 6, "abcde", 5, 0, 5); 695 test("abcde", 0, 6, "abcde", 5, 1, 5); 696 test("abcde", 0, 6, "abcde", 6, 0, 0); 697 test("abcde", 0, 6, "abcdefghij", 0, 0, 5); 698 test("abcde", 0, 6, "abcdefghij", 0, 1, 4); 699 test("abcde", 0, 6, "abcdefghij", 0, 5, 0); 700 test("abcde", 0, 6, "abcdefghij", 0, 9, -4); 701 test("abcde", 0, 6, "abcdefghij", 0, 10, -5); 702 test("abcde", 0, 6, "abcdefghij", 0, 11, -5); 703 test("abcde", 0, 6, "abcdefghij", 1, 0, 5); 704 test("abcde", 0, 6, "abcdefghij", 1, 1, -1); 705 test("abcde", 0, 6, "abcdefghij", 1, 4, -1); 706 test("abcde", 0, 6, "abcdefghij", 1, 8, -1); 707 test("abcde", 0, 6, "abcdefghij", 1, 9, -1); 708 test("abcde", 0, 6, "abcdefghij", 1, 10, -1); 709 test("abcde", 0, 6, "abcdefghij", 5, 0, 5); 710 test("abcde", 0, 6, "abcdefghij", 5, 1, -5); 711 test("abcde", 0, 6, "abcdefghij", 5, 2, -5); 712 test("abcde", 0, 6, "abcdefghij", 5, 4, -5); 713 test("abcde", 0, 6, "abcdefghij", 5, 5, -5); 714 test("abcde", 0, 6, "abcdefghij", 5, 6, -5); 715 test("abcde", 0, 6, "abcdefghij", 9, 0, 5); 716 test("abcde", 0, 6, "abcdefghij", 9, 1, -9); 717 test("abcde", 0, 6, "abcdefghij", 9, 2, -9); 718 test("abcde", 0, 6, "abcdefghij", 10, 0, 5); 719 test("abcde", 0, 6, "abcdefghij", 10, 1, 5); 720 test("abcde", 0, 6, "abcdefghij", 11, 0, 0); 721 test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 0, 5); 722 test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 1, 4); 723 test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 10, -5); 724 test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 19, -14); 725 test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 20, -15); 726 test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 21, -15); 727 test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 0, 5); 728 test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 1, -1); 729 test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 9, -1); 730 test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 18, -1); 731 test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 19, -1); 732 test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 20, -1); 733 test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 0, 5); 734 test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 1, -10); 735 test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 5, -10); 736 test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 9, -10); 737 test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 10, -10); 738 test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 11, -10); 739 test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, 0, 5); 740 test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, 1, -19); 741 test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, 2, -19); 742 test("abcde", 0, 6, "abcdefghijklmnopqrst", 20, 0, 5); 743 test("abcde", 0, 6, "abcdefghijklmnopqrst", 20, 1, 5); 744 test("abcde", 0, 6, "abcdefghijklmnopqrst", 21, 0, 0); 745 test("abcde", 1, 0, "", 0, 0, 0); 746 test("abcde", 1, 0, "", 0, 1, 0); 747 test("abcde", 1, 0, "", 1, 0, 0); 748 test("abcde", 1, 0, "abcde", 0, 0, 0); 749 test("abcde", 1, 0, "abcde", 0, 1, -1); 750 test("abcde", 1, 0, "abcde", 0, 2, -2); 751 test("abcde", 1, 0, "abcde", 0, 4, -4); 752 test("abcde", 1, 0, "abcde", 0, 5, -5); 753 test("abcde", 1, 0, "abcde", 0, 6, -5); 754 test("abcde", 1, 0, "abcde", 1, 0, 0); 755 test("abcde", 1, 0, "abcde", 1, 1, -1); 756 test("abcde", 1, 0, "abcde", 1, 2, -2); 757 test("abcde", 1, 0, "abcde", 1, 3, -3); 758 test("abcde", 1, 0, "abcde", 1, 4, -4); 759 test("abcde", 1, 0, "abcde", 1, 5, -4); 760 test("abcde", 1, 0, "abcde", 2, 0, 0); 761 test("abcde", 1, 0, "abcde", 2, 1, -1); 762 test("abcde", 1, 0, "abcde", 2, 2, -2); 763 test("abcde", 1, 0, "abcde", 2, 3, -3); 764 test("abcde", 1, 0, "abcde", 2, 4, -3); 765 test("abcde", 1, 0, "abcde", 4, 0, 0); 766 test("abcde", 1, 0, "abcde", 4, 1, -1); 767 test("abcde", 1, 0, "abcde", 4, 2, -1); 768 test("abcde", 1, 0, "abcde", 5, 0, 0); 769 test("abcde", 1, 0, "abcde", 5, 1, 0); 770 test("abcde", 1, 0, "abcde", 6, 0, 0); 771 test("abcde", 1, 0, "abcdefghij", 0, 0, 0); 772 test("abcde", 1, 0, "abcdefghij", 0, 1, -1); 773 test("abcde", 1, 0, "abcdefghij", 0, 5, -5); 774 test("abcde", 1, 0, "abcdefghij", 0, 9, -9); 775 test("abcde", 1, 0, "abcdefghij", 0, 10, -10); 776 test("abcde", 1, 0, "abcdefghij", 0, 11, -10); 777 test("abcde", 1, 0, "abcdefghij", 1, 0, 0); 778 test("abcde", 1, 0, "abcdefghij", 1, 1, -1); 779} 780 781void test7() 782{ 783 test("abcde", 1, 0, "abcdefghij", 1, 4, -4); 784 test("abcde", 1, 0, "abcdefghij", 1, 8, -8); 785 test("abcde", 1, 0, "abcdefghij", 1, 9, -9); 786 test("abcde", 1, 0, "abcdefghij", 1, 10, -9); 787 test("abcde", 1, 0, "abcdefghij", 5, 0, 0); 788 test("abcde", 1, 0, "abcdefghij", 5, 1, -1); 789 test("abcde", 1, 0, "abcdefghij", 5, 2, -2); 790 test("abcde", 1, 0, "abcdefghij", 5, 4, -4); 791 test("abcde", 1, 0, "abcdefghij", 5, 5, -5); 792 test("abcde", 1, 0, "abcdefghij", 5, 6, -5); 793 test("abcde", 1, 0, "abcdefghij", 9, 0, 0); 794 test("abcde", 1, 0, "abcdefghij", 9, 1, -1); 795 test("abcde", 1, 0, "abcdefghij", 9, 2, -1); 796 test("abcde", 1, 0, "abcdefghij", 10, 0, 0); 797 test("abcde", 1, 0, "abcdefghij", 10, 1, 0); 798 test("abcde", 1, 0, "abcdefghij", 11, 0, 0); 799 test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0); 800 test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 1, -1); 801 test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 10, -10); 802 test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 19, -19); 803 test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 20, -20); 804 test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 21, -20); 805 test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0); 806 test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 1, -1); 807 test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 9, -9); 808 test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 18, -18); 809 test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 19, -19); 810 test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 20, -19); 811 test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0); 812 test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 1, -1); 813 test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 5, -5); 814 test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 9, -9); 815 test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 10, -10); 816 test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 11, -10); 817 test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0); 818 test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, 1, -1); 819 test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, 2, -1); 820 test("abcde", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0); 821 test("abcde", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0); 822 test("abcde", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0); 823 test("abcde", 1, 1, "", 0, 0, 1); 824 test("abcde", 1, 1, "", 0, 1, 1); 825 test("abcde", 1, 1, "", 1, 0, 0); 826 test("abcde", 1, 1, "abcde", 0, 0, 1); 827 test("abcde", 1, 1, "abcde", 0, 1, 1); 828 test("abcde", 1, 1, "abcde", 0, 2, 1); 829 test("abcde", 1, 1, "abcde", 0, 4, 1); 830 test("abcde", 1, 1, "abcde", 0, 5, 1); 831 test("abcde", 1, 1, "abcde", 0, 6, 1); 832 test("abcde", 1, 1, "abcde", 1, 0, 1); 833 test("abcde", 1, 1, "abcde", 1, 1, 0); 834 test("abcde", 1, 1, "abcde", 1, 2, -1); 835 test("abcde", 1, 1, "abcde", 1, 3, -2); 836 test("abcde", 1, 1, "abcde", 1, 4, -3); 837 test("abcde", 1, 1, "abcde", 1, 5, -3); 838 test("abcde", 1, 1, "abcde", 2, 0, 1); 839 test("abcde", 1, 1, "abcde", 2, 1, -1); 840 test("abcde", 1, 1, "abcde", 2, 2, -1); 841 test("abcde", 1, 1, "abcde", 2, 3, -1); 842 test("abcde", 1, 1, "abcde", 2, 4, -1); 843 test("abcde", 1, 1, "abcde", 4, 0, 1); 844 test("abcde", 1, 1, "abcde", 4, 1, -3); 845 test("abcde", 1, 1, "abcde", 4, 2, -3); 846 test("abcde", 1, 1, "abcde", 5, 0, 1); 847 test("abcde", 1, 1, "abcde", 5, 1, 1); 848 test("abcde", 1, 1, "abcde", 6, 0, 0); 849 test("abcde", 1, 1, "abcdefghij", 0, 0, 1); 850 test("abcde", 1, 1, "abcdefghij", 0, 1, 1); 851 test("abcde", 1, 1, "abcdefghij", 0, 5, 1); 852 test("abcde", 1, 1, "abcdefghij", 0, 9, 1); 853 test("abcde", 1, 1, "abcdefghij", 0, 10, 1); 854 test("abcde", 1, 1, "abcdefghij", 0, 11, 1); 855 test("abcde", 1, 1, "abcdefghij", 1, 0, 1); 856 test("abcde", 1, 1, "abcdefghij", 1, 1, 0); 857 test("abcde", 1, 1, "abcdefghij", 1, 4, -3); 858 test("abcde", 1, 1, "abcdefghij", 1, 8, -7); 859 test("abcde", 1, 1, "abcdefghij", 1, 9, -8); 860 test("abcde", 1, 1, "abcdefghij", 1, 10, -8); 861 test("abcde", 1, 1, "abcdefghij", 5, 0, 1); 862 test("abcde", 1, 1, "abcdefghij", 5, 1, -4); 863 test("abcde", 1, 1, "abcdefghij", 5, 2, -4); 864 test("abcde", 1, 1, "abcdefghij", 5, 4, -4); 865 test("abcde", 1, 1, "abcdefghij", 5, 5, -4); 866 test("abcde", 1, 1, "abcdefghij", 5, 6, -4); 867 test("abcde", 1, 1, "abcdefghij", 9, 0, 1); 868 test("abcde", 1, 1, "abcdefghij", 9, 1, -8); 869 test("abcde", 1, 1, "abcdefghij", 9, 2, -8); 870 test("abcde", 1, 1, "abcdefghij", 10, 0, 1); 871 test("abcde", 1, 1, "abcdefghij", 10, 1, 1); 872 test("abcde", 1, 1, "abcdefghij", 11, 0, 0); 873 test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 0, 1); 874 test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 1, 1); 875 test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 10, 1); 876 test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 19, 1); 877 test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 20, 1); 878 test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 21, 1); 879 test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 0, 1); 880 test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 1, 0); 881 test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 9, -8); 882 test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 18, -17); 883} 884 885void test8() 886{ 887 test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 19, -18); 888 test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 20, -18); 889 test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 0, 1); 890 test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 1, -9); 891 test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 5, -9); 892 test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 9, -9); 893 test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 10, -9); 894 test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 11, -9); 895 test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 0, 1); 896 test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 1, -18); 897 test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 2, -18); 898 test("abcde", 1, 1, "abcdefghijklmnopqrst", 20, 0, 1); 899 test("abcde", 1, 1, "abcdefghijklmnopqrst", 20, 1, 1); 900 test("abcde", 1, 1, "abcdefghijklmnopqrst", 21, 0, 0); 901 test("abcde", 1, 2, "", 0, 0, 2); 902 test("abcde", 1, 2, "", 0, 1, 2); 903 test("abcde", 1, 2, "", 1, 0, 0); 904 test("abcde", 1, 2, "abcde", 0, 0, 2); 905 test("abcde", 1, 2, "abcde", 0, 1, 1); 906 test("abcde", 1, 2, "abcde", 0, 2, 1); 907 test("abcde", 1, 2, "abcde", 0, 4, 1); 908 test("abcde", 1, 2, "abcde", 0, 5, 1); 909 test("abcde", 1, 2, "abcde", 0, 6, 1); 910 test("abcde", 1, 2, "abcde", 1, 0, 2); 911 test("abcde", 1, 2, "abcde", 1, 1, 1); 912 test("abcde", 1, 2, "abcde", 1, 2, 0); 913 test("abcde", 1, 2, "abcde", 1, 3, -1); 914 test("abcde", 1, 2, "abcde", 1, 4, -2); 915 test("abcde", 1, 2, "abcde", 1, 5, -2); 916 test("abcde", 1, 2, "abcde", 2, 0, 2); 917 test("abcde", 1, 2, "abcde", 2, 1, -1); 918 test("abcde", 1, 2, "abcde", 2, 2, -1); 919 test("abcde", 1, 2, "abcde", 2, 3, -1); 920 test("abcde", 1, 2, "abcde", 2, 4, -1); 921 test("abcde", 1, 2, "abcde", 4, 0, 2); 922 test("abcde", 1, 2, "abcde", 4, 1, -3); 923 test("abcde", 1, 2, "abcde", 4, 2, -3); 924 test("abcde", 1, 2, "abcde", 5, 0, 2); 925 test("abcde", 1, 2, "abcde", 5, 1, 2); 926 test("abcde", 1, 2, "abcde", 6, 0, 0); 927 test("abcde", 1, 2, "abcdefghij", 0, 0, 2); 928 test("abcde", 1, 2, "abcdefghij", 0, 1, 1); 929 test("abcde", 1, 2, "abcdefghij", 0, 5, 1); 930 test("abcde", 1, 2, "abcdefghij", 0, 9, 1); 931 test("abcde", 1, 2, "abcdefghij", 0, 10, 1); 932 test("abcde", 1, 2, "abcdefghij", 0, 11, 1); 933 test("abcde", 1, 2, "abcdefghij", 1, 0, 2); 934 test("abcde", 1, 2, "abcdefghij", 1, 1, 1); 935 test("abcde", 1, 2, "abcdefghij", 1, 4, -2); 936 test("abcde", 1, 2, "abcdefghij", 1, 8, -6); 937 test("abcde", 1, 2, "abcdefghij", 1, 9, -7); 938 test("abcde", 1, 2, "abcdefghij", 1, 10, -7); 939 test("abcde", 1, 2, "abcdefghij", 5, 0, 2); 940 test("abcde", 1, 2, "abcdefghij", 5, 1, -4); 941 test("abcde", 1, 2, "abcdefghij", 5, 2, -4); 942 test("abcde", 1, 2, "abcdefghij", 5, 4, -4); 943 test("abcde", 1, 2, "abcdefghij", 5, 5, -4); 944 test("abcde", 1, 2, "abcdefghij", 5, 6, -4); 945 test("abcde", 1, 2, "abcdefghij", 9, 0, 2); 946 test("abcde", 1, 2, "abcdefghij", 9, 1, -8); 947 test("abcde", 1, 2, "abcdefghij", 9, 2, -8); 948 test("abcde", 1, 2, "abcdefghij", 10, 0, 2); 949 test("abcde", 1, 2, "abcdefghij", 10, 1, 2); 950 test("abcde", 1, 2, "abcdefghij", 11, 0, 0); 951 test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 0, 2); 952 test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 1, 1); 953 test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 10, 1); 954 test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 19, 1); 955 test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 20, 1); 956 test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 21, 1); 957 test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 0, 2); 958 test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 1, 1); 959 test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 9, -7); 960 test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 18, -16); 961 test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 19, -17); 962 test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 20, -17); 963 test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 0, 2); 964 test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 1, -9); 965 test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 5, -9); 966 test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 9, -9); 967 test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 10, -9); 968 test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 11, -9); 969 test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 0, 2); 970 test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 1, -18); 971 test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 2, -18); 972 test("abcde", 1, 2, "abcdefghijklmnopqrst", 20, 0, 2); 973 test("abcde", 1, 2, "abcdefghijklmnopqrst", 20, 1, 2); 974 test("abcde", 1, 2, "abcdefghijklmnopqrst", 21, 0, 0); 975 test("abcde", 1, 3, "", 0, 0, 3); 976 test("abcde", 1, 3, "", 0, 1, 3); 977 test("abcde", 1, 3, "", 1, 0, 0); 978 test("abcde", 1, 3, "abcde", 0, 0, 3); 979 test("abcde", 1, 3, "abcde", 0, 1, 1); 980 test("abcde", 1, 3, "abcde", 0, 2, 1); 981 test("abcde", 1, 3, "abcde", 0, 4, 1); 982 test("abcde", 1, 3, "abcde", 0, 5, 1); 983 test("abcde", 1, 3, "abcde", 0, 6, 1); 984 test("abcde", 1, 3, "abcde", 1, 0, 3); 985 test("abcde", 1, 3, "abcde", 1, 1, 2); 986 test("abcde", 1, 3, "abcde", 1, 2, 1); 987} 988 989void test9() 990{ 991 test("abcde", 1, 3, "abcde", 1, 3, 0); 992 test("abcde", 1, 3, "abcde", 1, 4, -1); 993 test("abcde", 1, 3, "abcde", 1, 5, -1); 994 test("abcde", 1, 3, "abcde", 2, 0, 3); 995 test("abcde", 1, 3, "abcde", 2, 1, -1); 996 test("abcde", 1, 3, "abcde", 2, 2, -1); 997 test("abcde", 1, 3, "abcde", 2, 3, -1); 998 test("abcde", 1, 3, "abcde", 2, 4, -1); 999 test("abcde", 1, 3, "abcde", 4, 0, 3); 1000 test("abcde", 1, 3, "abcde", 4, 1, -3); 1001 test("abcde", 1, 3, "abcde", 4, 2, -3); 1002 test("abcde", 1, 3, "abcde", 5, 0, 3); 1003 test("abcde", 1, 3, "abcde", 5, 1, 3); 1004 test("abcde", 1, 3, "abcde", 6, 0, 0); 1005 test("abcde", 1, 3, "abcdefghij", 0, 0, 3); 1006 test("abcde", 1, 3, "abcdefghij", 0, 1, 1); 1007 test("abcde", 1, 3, "abcdefghij", 0, 5, 1); 1008 test("abcde", 1, 3, "abcdefghij", 0, 9, 1); 1009 test("abcde", 1, 3, "abcdefghij", 0, 10, 1); 1010 test("abcde", 1, 3, "abcdefghij", 0, 11, 1); 1011 test("abcde", 1, 3, "abcdefghij", 1, 0, 3); 1012 test("abcde", 1, 3, "abcdefghij", 1, 1, 2); 1013 test("abcde", 1, 3, "abcdefghij", 1, 4, -1); 1014 test("abcde", 1, 3, "abcdefghij", 1, 8, -5); 1015 test("abcde", 1, 3, "abcdefghij", 1, 9, -6); 1016 test("abcde", 1, 3, "abcdefghij", 1, 10, -6); 1017 test("abcde", 1, 3, "abcdefghij", 5, 0, 3); 1018 test("abcde", 1, 3, "abcdefghij", 5, 1, -4); 1019 test("abcde", 1, 3, "abcdefghij", 5, 2, -4); 1020 test("abcde", 1, 3, "abcdefghij", 5, 4, -4); 1021 test("abcde", 1, 3, "abcdefghij", 5, 5, -4); 1022 test("abcde", 1, 3, "abcdefghij", 5, 6, -4); 1023 test("abcde", 1, 3, "abcdefghij", 9, 0, 3); 1024 test("abcde", 1, 3, "abcdefghij", 9, 1, -8); 1025 test("abcde", 1, 3, "abcdefghij", 9, 2, -8); 1026 test("abcde", 1, 3, "abcdefghij", 10, 0, 3); 1027 test("abcde", 1, 3, "abcdefghij", 10, 1, 3); 1028 test("abcde", 1, 3, "abcdefghij", 11, 0, 0); 1029 test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 0, 3); 1030 test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 1, 1); 1031 test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 10, 1); 1032 test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 19, 1); 1033 test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 20, 1); 1034 test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 21, 1); 1035 test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 0, 3); 1036 test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 1, 2); 1037 test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 9, -6); 1038 test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 18, -15); 1039 test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 19, -16); 1040 test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 20, -16); 1041 test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 0, 3); 1042 test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 1, -9); 1043 test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 5, -9); 1044 test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 9, -9); 1045 test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 10, -9); 1046 test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 11, -9); 1047 test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 0, 3); 1048 test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 1, -18); 1049 test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 2, -18); 1050 test("abcde", 1, 3, "abcdefghijklmnopqrst", 20, 0, 3); 1051 test("abcde", 1, 3, "abcdefghijklmnopqrst", 20, 1, 3); 1052 test("abcde", 1, 3, "abcdefghijklmnopqrst", 21, 0, 0); 1053 test("abcde", 1, 4, "", 0, 0, 4); 1054 test("abcde", 1, 4, "", 0, 1, 4); 1055 test("abcde", 1, 4, "", 1, 0, 0); 1056 test("abcde", 1, 4, "abcde", 0, 0, 4); 1057 test("abcde", 1, 4, "abcde", 0, 1, 1); 1058 test("abcde", 1, 4, "abcde", 0, 2, 1); 1059 test("abcde", 1, 4, "abcde", 0, 4, 1); 1060 test("abcde", 1, 4, "abcde", 0, 5, 1); 1061 test("abcde", 1, 4, "abcde", 0, 6, 1); 1062 test("abcde", 1, 4, "abcde", 1, 0, 4); 1063 test("abcde", 1, 4, "abcde", 1, 1, 3); 1064 test("abcde", 1, 4, "abcde", 1, 2, 2); 1065 test("abcde", 1, 4, "abcde", 1, 3, 1); 1066 test("abcde", 1, 4, "abcde", 1, 4, 0); 1067 test("abcde", 1, 4, "abcde", 1, 5, 0); 1068 test("abcde", 1, 4, "abcde", 2, 0, 4); 1069 test("abcde", 1, 4, "abcde", 2, 1, -1); 1070 test("abcde", 1, 4, "abcde", 2, 2, -1); 1071 test("abcde", 1, 4, "abcde", 2, 3, -1); 1072 test("abcde", 1, 4, "abcde", 2, 4, -1); 1073 test("abcde", 1, 4, "abcde", 4, 0, 4); 1074 test("abcde", 1, 4, "abcde", 4, 1, -3); 1075 test("abcde", 1, 4, "abcde", 4, 2, -3); 1076 test("abcde", 1, 4, "abcde", 5, 0, 4); 1077 test("abcde", 1, 4, "abcde", 5, 1, 4); 1078 test("abcde", 1, 4, "abcde", 6, 0, 0); 1079 test("abcde", 1, 4, "abcdefghij", 0, 0, 4); 1080 test("abcde", 1, 4, "abcdefghij", 0, 1, 1); 1081 test("abcde", 1, 4, "abcdefghij", 0, 5, 1); 1082 test("abcde", 1, 4, "abcdefghij", 0, 9, 1); 1083 test("abcde", 1, 4, "abcdefghij", 0, 10, 1); 1084 test("abcde", 1, 4, "abcdefghij", 0, 11, 1); 1085 test("abcde", 1, 4, "abcdefghij", 1, 0, 4); 1086 test("abcde", 1, 4, "abcdefghij", 1, 1, 3); 1087 test("abcde", 1, 4, "abcdefghij", 1, 4, 0); 1088 test("abcde", 1, 4, "abcdefghij", 1, 8, -4); 1089 test("abcde", 1, 4, "abcdefghij", 1, 9, -5); 1090 test("abcde", 1, 4, "abcdefghij", 1, 10, -5); 1091} 1092 1093void test10() 1094{ 1095 test("abcde", 1, 4, "abcdefghij", 5, 0, 4); 1096 test("abcde", 1, 4, "abcdefghij", 5, 1, -4); 1097 test("abcde", 1, 4, "abcdefghij", 5, 2, -4); 1098 test("abcde", 1, 4, "abcdefghij", 5, 4, -4); 1099 test("abcde", 1, 4, "abcdefghij", 5, 5, -4); 1100 test("abcde", 1, 4, "abcdefghij", 5, 6, -4); 1101 test("abcde", 1, 4, "abcdefghij", 9, 0, 4); 1102 test("abcde", 1, 4, "abcdefghij", 9, 1, -8); 1103 test("abcde", 1, 4, "abcdefghij", 9, 2, -8); 1104 test("abcde", 1, 4, "abcdefghij", 10, 0, 4); 1105 test("abcde", 1, 4, "abcdefghij", 10, 1, 4); 1106 test("abcde", 1, 4, "abcdefghij", 11, 0, 0); 1107 test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 0, 4); 1108 test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 1, 1); 1109 test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 10, 1); 1110 test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 19, 1); 1111 test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 20, 1); 1112 test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 21, 1); 1113 test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 0, 4); 1114 test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 1, 3); 1115 test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 9, -5); 1116 test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 18, -14); 1117 test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 19, -15); 1118 test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 20, -15); 1119 test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 0, 4); 1120 test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 1, -9); 1121 test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 5, -9); 1122 test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 9, -9); 1123 test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 10, -9); 1124 test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 11, -9); 1125 test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 0, 4); 1126 test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 1, -18); 1127 test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 2, -18); 1128 test("abcde", 1, 4, "abcdefghijklmnopqrst", 20, 0, 4); 1129 test("abcde", 1, 4, "abcdefghijklmnopqrst", 20, 1, 4); 1130 test("abcde", 1, 4, "abcdefghijklmnopqrst", 21, 0, 0); 1131 test("abcde", 1, 5, "", 0, 0, 4); 1132 test("abcde", 1, 5, "", 0, 1, 4); 1133 test("abcde", 1, 5, "", 1, 0, 0); 1134 test("abcde", 1, 5, "abcde", 0, 0, 4); 1135 test("abcde", 1, 5, "abcde", 0, 1, 1); 1136 test("abcde", 1, 5, "abcde", 0, 2, 1); 1137 test("abcde", 1, 5, "abcde", 0, 4, 1); 1138 test("abcde", 1, 5, "abcde", 0, 5, 1); 1139 test("abcde", 1, 5, "abcde", 0, 6, 1); 1140 test("abcde", 1, 5, "abcde", 1, 0, 4); 1141 test("abcde", 1, 5, "abcde", 1, 1, 3); 1142 test("abcde", 1, 5, "abcde", 1, 2, 2); 1143 test("abcde", 1, 5, "abcde", 1, 3, 1); 1144 test("abcde", 1, 5, "abcde", 1, 4, 0); 1145 test("abcde", 1, 5, "abcde", 1, 5, 0); 1146 test("abcde", 1, 5, "abcde", 2, 0, 4); 1147 test("abcde", 1, 5, "abcde", 2, 1, -1); 1148 test("abcde", 1, 5, "abcde", 2, 2, -1); 1149 test("abcde", 1, 5, "abcde", 2, 3, -1); 1150 test("abcde", 1, 5, "abcde", 2, 4, -1); 1151 test("abcde", 1, 5, "abcde", 4, 0, 4); 1152 test("abcde", 1, 5, "abcde", 4, 1, -3); 1153 test("abcde", 1, 5, "abcde", 4, 2, -3); 1154 test("abcde", 1, 5, "abcde", 5, 0, 4); 1155 test("abcde", 1, 5, "abcde", 5, 1, 4); 1156 test("abcde", 1, 5, "abcde", 6, 0, 0); 1157 test("abcde", 1, 5, "abcdefghij", 0, 0, 4); 1158 test("abcde", 1, 5, "abcdefghij", 0, 1, 1); 1159 test("abcde", 1, 5, "abcdefghij", 0, 5, 1); 1160 test("abcde", 1, 5, "abcdefghij", 0, 9, 1); 1161 test("abcde", 1, 5, "abcdefghij", 0, 10, 1); 1162 test("abcde", 1, 5, "abcdefghij", 0, 11, 1); 1163 test("abcde", 1, 5, "abcdefghij", 1, 0, 4); 1164 test("abcde", 1, 5, "abcdefghij", 1, 1, 3); 1165 test("abcde", 1, 5, "abcdefghij", 1, 4, 0); 1166 test("abcde", 1, 5, "abcdefghij", 1, 8, -4); 1167 test("abcde", 1, 5, "abcdefghij", 1, 9, -5); 1168 test("abcde", 1, 5, "abcdefghij", 1, 10, -5); 1169 test("abcde", 1, 5, "abcdefghij", 5, 0, 4); 1170 test("abcde", 1, 5, "abcdefghij", 5, 1, -4); 1171 test("abcde", 1, 5, "abcdefghij", 5, 2, -4); 1172 test("abcde", 1, 5, "abcdefghij", 5, 4, -4); 1173 test("abcde", 1, 5, "abcdefghij", 5, 5, -4); 1174 test("abcde", 1, 5, "abcdefghij", 5, 6, -4); 1175 test("abcde", 1, 5, "abcdefghij", 9, 0, 4); 1176 test("abcde", 1, 5, "abcdefghij", 9, 1, -8); 1177 test("abcde", 1, 5, "abcdefghij", 9, 2, -8); 1178 test("abcde", 1, 5, "abcdefghij", 10, 0, 4); 1179 test("abcde", 1, 5, "abcdefghij", 10, 1, 4); 1180 test("abcde", 1, 5, "abcdefghij", 11, 0, 0); 1181 test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 0, 4); 1182 test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 1, 1); 1183 test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 10, 1); 1184 test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 19, 1); 1185 test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 20, 1); 1186 test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 21, 1); 1187 test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 0, 4); 1188 test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 1, 3); 1189 test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 9, -5); 1190 test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 18, -14); 1191 test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 19, -15); 1192 test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 20, -15); 1193 test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 0, 4); 1194 test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 1, -9); 1195} 1196 1197void test11() 1198{ 1199 test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 5, -9); 1200 test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 9, -9); 1201 test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 10, -9); 1202 test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 11, -9); 1203 test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 0, 4); 1204 test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 1, -18); 1205 test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 2, -18); 1206 test("abcde", 1, 5, "abcdefghijklmnopqrst", 20, 0, 4); 1207 test("abcde", 1, 5, "abcdefghijklmnopqrst", 20, 1, 4); 1208 test("abcde", 1, 5, "abcdefghijklmnopqrst", 21, 0, 0); 1209 test("abcde", 2, 0, "", 0, 0, 0); 1210 test("abcde", 2, 0, "", 0, 1, 0); 1211 test("abcde", 2, 0, "", 1, 0, 0); 1212 test("abcde", 2, 0, "abcde", 0, 0, 0); 1213 test("abcde", 2, 0, "abcde", 0, 1, -1); 1214 test("abcde", 2, 0, "abcde", 0, 2, -2); 1215 test("abcde", 2, 0, "abcde", 0, 4, -4); 1216 test("abcde", 2, 0, "abcde", 0, 5, -5); 1217 test("abcde", 2, 0, "abcde", 0, 6, -5); 1218 test("abcde", 2, 0, "abcde", 1, 0, 0); 1219 test("abcde", 2, 0, "abcde", 1, 1, -1); 1220 test("abcde", 2, 0, "abcde", 1, 2, -2); 1221 test("abcde", 2, 0, "abcde", 1, 3, -3); 1222 test("abcde", 2, 0, "abcde", 1, 4, -4); 1223 test("abcde", 2, 0, "abcde", 1, 5, -4); 1224 test("abcde", 2, 0, "abcde", 2, 0, 0); 1225 test("abcde", 2, 0, "abcde", 2, 1, -1); 1226 test("abcde", 2, 0, "abcde", 2, 2, -2); 1227 test("abcde", 2, 0, "abcde", 2, 3, -3); 1228 test("abcde", 2, 0, "abcde", 2, 4, -3); 1229 test("abcde", 2, 0, "abcde", 4, 0, 0); 1230 test("abcde", 2, 0, "abcde", 4, 1, -1); 1231 test("abcde", 2, 0, "abcde", 4, 2, -1); 1232 test("abcde", 2, 0, "abcde", 5, 0, 0); 1233 test("abcde", 2, 0, "abcde", 5, 1, 0); 1234 test("abcde", 2, 0, "abcde", 6, 0, 0); 1235 test("abcde", 2, 0, "abcdefghij", 0, 0, 0); 1236 test("abcde", 2, 0, "abcdefghij", 0, 1, -1); 1237 test("abcde", 2, 0, "abcdefghij", 0, 5, -5); 1238 test("abcde", 2, 0, "abcdefghij", 0, 9, -9); 1239 test("abcde", 2, 0, "abcdefghij", 0, 10, -10); 1240 test("abcde", 2, 0, "abcdefghij", 0, 11, -10); 1241 test("abcde", 2, 0, "abcdefghij", 1, 0, 0); 1242 test("abcde", 2, 0, "abcdefghij", 1, 1, -1); 1243 test("abcde", 2, 0, "abcdefghij", 1, 4, -4); 1244 test("abcde", 2, 0, "abcdefghij", 1, 8, -8); 1245 test("abcde", 2, 0, "abcdefghij", 1, 9, -9); 1246 test("abcde", 2, 0, "abcdefghij", 1, 10, -9); 1247 test("abcde", 2, 0, "abcdefghij", 5, 0, 0); 1248 test("abcde", 2, 0, "abcdefghij", 5, 1, -1); 1249 test("abcde", 2, 0, "abcdefghij", 5, 2, -2); 1250 test("abcde", 2, 0, "abcdefghij", 5, 4, -4); 1251 test("abcde", 2, 0, "abcdefghij", 5, 5, -5); 1252 test("abcde", 2, 0, "abcdefghij", 5, 6, -5); 1253 test("abcde", 2, 0, "abcdefghij", 9, 0, 0); 1254 test("abcde", 2, 0, "abcdefghij", 9, 1, -1); 1255 test("abcde", 2, 0, "abcdefghij", 9, 2, -1); 1256 test("abcde", 2, 0, "abcdefghij", 10, 0, 0); 1257 test("abcde", 2, 0, "abcdefghij", 10, 1, 0); 1258 test("abcde", 2, 0, "abcdefghij", 11, 0, 0); 1259 test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 0, 0); 1260 test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 1, -1); 1261 test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 10, -10); 1262 test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 19, -19); 1263 test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 20, -20); 1264 test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 21, -20); 1265 test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 0, 0); 1266 test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 1, -1); 1267 test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 9, -9); 1268 test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 18, -18); 1269 test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 19, -19); 1270 test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 20, -19); 1271 test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 0, 0); 1272 test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 1, -1); 1273 test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 5, -5); 1274 test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 9, -9); 1275 test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 10, -10); 1276 test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 11, -10); 1277 test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, 0, 0); 1278 test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, 1, -1); 1279 test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, 2, -1); 1280 test("abcde", 2, 0, "abcdefghijklmnopqrst", 20, 0, 0); 1281 test("abcde", 2, 0, "abcdefghijklmnopqrst", 20, 1, 0); 1282 test("abcde", 2, 0, "abcdefghijklmnopqrst", 21, 0, 0); 1283 test("abcde", 2, 1, "", 0, 0, 1); 1284 test("abcde", 2, 1, "", 0, 1, 1); 1285 test("abcde", 2, 1, "", 1, 0, 0); 1286 test("abcde", 2, 1, "abcde", 0, 0, 1); 1287 test("abcde", 2, 1, "abcde", 0, 1, 2); 1288 test("abcde", 2, 1, "abcde", 0, 2, 2); 1289 test("abcde", 2, 1, "abcde", 0, 4, 2); 1290 test("abcde", 2, 1, "abcde", 0, 5, 2); 1291 test("abcde", 2, 1, "abcde", 0, 6, 2); 1292 test("abcde", 2, 1, "abcde", 1, 0, 1); 1293 test("abcde", 2, 1, "abcde", 1, 1, 1); 1294 test("abcde", 2, 1, "abcde", 1, 2, 1); 1295 test("abcde", 2, 1, "abcde", 1, 3, 1); 1296 test("abcde", 2, 1, "abcde", 1, 4, 1); 1297 test("abcde", 2, 1, "abcde", 1, 5, 1); 1298 test("abcde", 2, 1, "abcde", 2, 0, 1); 1299} 1300 1301void test12() 1302{ 1303 test("abcde", 2, 1, "abcde", 2, 1, 0); 1304 test("abcde", 2, 1, "abcde", 2, 2, -1); 1305 test("abcde", 2, 1, "abcde", 2, 3, -2); 1306 test("abcde", 2, 1, "abcde", 2, 4, -2); 1307 test("abcde", 2, 1, "abcde", 4, 0, 1); 1308 test("abcde", 2, 1, "abcde", 4, 1, -2); 1309 test("abcde", 2, 1, "abcde", 4, 2, -2); 1310 test("abcde", 2, 1, "abcde", 5, 0, 1); 1311 test("abcde", 2, 1, "abcde", 5, 1, 1); 1312 test("abcde", 2, 1, "abcde", 6, 0, 0); 1313 test("abcde", 2, 1, "abcdefghij", 0, 0, 1); 1314 test("abcde", 2, 1, "abcdefghij", 0, 1, 2); 1315 test("abcde", 2, 1, "abcdefghij", 0, 5, 2); 1316 test("abcde", 2, 1, "abcdefghij", 0, 9, 2); 1317 test("abcde", 2, 1, "abcdefghij", 0, 10, 2); 1318 test("abcde", 2, 1, "abcdefghij", 0, 11, 2); 1319 test("abcde", 2, 1, "abcdefghij", 1, 0, 1); 1320 test("abcde", 2, 1, "abcdefghij", 1, 1, 1); 1321 test("abcde", 2, 1, "abcdefghij", 1, 4, 1); 1322 test("abcde", 2, 1, "abcdefghij", 1, 8, 1); 1323 test("abcde", 2, 1, "abcdefghij", 1, 9, 1); 1324 test("abcde", 2, 1, "abcdefghij", 1, 10, 1); 1325 test("abcde", 2, 1, "abcdefghij", 5, 0, 1); 1326 test("abcde", 2, 1, "abcdefghij", 5, 1, -3); 1327 test("abcde", 2, 1, "abcdefghij", 5, 2, -3); 1328 test("abcde", 2, 1, "abcdefghij", 5, 4, -3); 1329 test("abcde", 2, 1, "abcdefghij", 5, 5, -3); 1330 test("abcde", 2, 1, "abcdefghij", 5, 6, -3); 1331 test("abcde", 2, 1, "abcdefghij", 9, 0, 1); 1332 test("abcde", 2, 1, "abcdefghij", 9, 1, -7); 1333 test("abcde", 2, 1, "abcdefghij", 9, 2, -7); 1334 test("abcde", 2, 1, "abcdefghij", 10, 0, 1); 1335 test("abcde", 2, 1, "abcdefghij", 10, 1, 1); 1336 test("abcde", 2, 1, "abcdefghij", 11, 0, 0); 1337 test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 0, 1); 1338 test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 1, 2); 1339 test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 10, 2); 1340 test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 19, 2); 1341 test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 20, 2); 1342 test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 21, 2); 1343 test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 0, 1); 1344 test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 1, 1); 1345 test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 9, 1); 1346 test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 18, 1); 1347 test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 19, 1); 1348 test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 20, 1); 1349 test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 0, 1); 1350 test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 1, -8); 1351 test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 5, -8); 1352 test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 9, -8); 1353 test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 10, -8); 1354 test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 11, -8); 1355 test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 0, 1); 1356 test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 1, -17); 1357 test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 2, -17); 1358 test("abcde", 2, 1, "abcdefghijklmnopqrst", 20, 0, 1); 1359 test("abcde", 2, 1, "abcdefghijklmnopqrst", 20, 1, 1); 1360 test("abcde", 2, 1, "abcdefghijklmnopqrst", 21, 0, 0); 1361 test("abcde", 2, 2, "", 0, 0, 2); 1362 test("abcde", 2, 2, "", 0, 1, 2); 1363 test("abcde", 2, 2, "", 1, 0, 0); 1364 test("abcde", 2, 2, "abcde", 0, 0, 2); 1365 test("abcde", 2, 2, "abcde", 0, 1, 2); 1366 test("abcde", 2, 2, "abcde", 0, 2, 2); 1367 test("abcde", 2, 2, "abcde", 0, 4, 2); 1368 test("abcde", 2, 2, "abcde", 0, 5, 2); 1369 test("abcde", 2, 2, "abcde", 0, 6, 2); 1370 test("abcde", 2, 2, "abcde", 1, 0, 2); 1371 test("abcde", 2, 2, "abcde", 1, 1, 1); 1372 test("abcde", 2, 2, "abcde", 1, 2, 1); 1373 test("abcde", 2, 2, "abcde", 1, 3, 1); 1374 test("abcde", 2, 2, "abcde", 1, 4, 1); 1375 test("abcde", 2, 2, "abcde", 1, 5, 1); 1376 test("abcde", 2, 2, "abcde", 2, 0, 2); 1377 test("abcde", 2, 2, "abcde", 2, 1, 1); 1378 test("abcde", 2, 2, "abcde", 2, 2, 0); 1379 test("abcde", 2, 2, "abcde", 2, 3, -1); 1380 test("abcde", 2, 2, "abcde", 2, 4, -1); 1381 test("abcde", 2, 2, "abcde", 4, 0, 2); 1382 test("abcde", 2, 2, "abcde", 4, 1, -2); 1383 test("abcde", 2, 2, "abcde", 4, 2, -2); 1384 test("abcde", 2, 2, "abcde", 5, 0, 2); 1385 test("abcde", 2, 2, "abcde", 5, 1, 2); 1386 test("abcde", 2, 2, "abcde", 6, 0, 0); 1387 test("abcde", 2, 2, "abcdefghij", 0, 0, 2); 1388 test("abcde", 2, 2, "abcdefghij", 0, 1, 2); 1389 test("abcde", 2, 2, "abcdefghij", 0, 5, 2); 1390 test("abcde", 2, 2, "abcdefghij", 0, 9, 2); 1391 test("abcde", 2, 2, "abcdefghij", 0, 10, 2); 1392 test("abcde", 2, 2, "abcdefghij", 0, 11, 2); 1393 test("abcde", 2, 2, "abcdefghij", 1, 0, 2); 1394 test("abcde", 2, 2, "abcdefghij", 1, 1, 1); 1395 test("abcde", 2, 2, "abcdefghij", 1, 4, 1); 1396 test("abcde", 2, 2, "abcdefghij", 1, 8, 1); 1397 test("abcde", 2, 2, "abcdefghij", 1, 9, 1); 1398 test("abcde", 2, 2, "abcdefghij", 1, 10, 1); 1399 test("abcde", 2, 2, "abcdefghij", 5, 0, 2); 1400 test("abcde", 2, 2, "abcdefghij", 5, 1, -3); 1401 test("abcde", 2, 2, "abcdefghij", 5, 2, -3); 1402 test("abcde", 2, 2, "abcdefghij", 5, 4, -3); 1403} 1404 1405void test13() 1406{ 1407 test("abcde", 2, 2, "abcdefghij", 5, 5, -3); 1408 test("abcde", 2, 2, "abcdefghij", 5, 6, -3); 1409 test("abcde", 2, 2, "abcdefghij", 9, 0, 2); 1410 test("abcde", 2, 2, "abcdefghij", 9, 1, -7); 1411 test("abcde", 2, 2, "abcdefghij", 9, 2, -7); 1412 test("abcde", 2, 2, "abcdefghij", 10, 0, 2); 1413 test("abcde", 2, 2, "abcdefghij", 10, 1, 2); 1414 test("abcde", 2, 2, "abcdefghij", 11, 0, 0); 1415 test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 0, 2); 1416 test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 1, 2); 1417 test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 10, 2); 1418 test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 19, 2); 1419 test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 20, 2); 1420 test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 21, 2); 1421 test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 0, 2); 1422 test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 1, 1); 1423 test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 9, 1); 1424 test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 18, 1); 1425 test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 19, 1); 1426 test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 20, 1); 1427 test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 0, 2); 1428 test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 1, -8); 1429 test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 5, -8); 1430 test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 9, -8); 1431 test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 10, -8); 1432 test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 11, -8); 1433 test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 0, 2); 1434 test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 1, -17); 1435 test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 2, -17); 1436 test("abcde", 2, 2, "abcdefghijklmnopqrst", 20, 0, 2); 1437 test("abcde", 2, 2, "abcdefghijklmnopqrst", 20, 1, 2); 1438 test("abcde", 2, 2, "abcdefghijklmnopqrst", 21, 0, 0); 1439 test("abcde", 2, 3, "", 0, 0, 3); 1440 test("abcde", 2, 3, "", 0, 1, 3); 1441 test("abcde", 2, 3, "", 1, 0, 0); 1442 test("abcde", 2, 3, "abcde", 0, 0, 3); 1443 test("abcde", 2, 3, "abcde", 0, 1, 2); 1444 test("abcde", 2, 3, "abcde", 0, 2, 2); 1445 test("abcde", 2, 3, "abcde", 0, 4, 2); 1446 test("abcde", 2, 3, "abcde", 0, 5, 2); 1447 test("abcde", 2, 3, "abcde", 0, 6, 2); 1448 test("abcde", 2, 3, "abcde", 1, 0, 3); 1449 test("abcde", 2, 3, "abcde", 1, 1, 1); 1450 test("abcde", 2, 3, "abcde", 1, 2, 1); 1451 test("abcde", 2, 3, "abcde", 1, 3, 1); 1452 test("abcde", 2, 3, "abcde", 1, 4, 1); 1453 test("abcde", 2, 3, "abcde", 1, 5, 1); 1454 test("abcde", 2, 3, "abcde", 2, 0, 3); 1455 test("abcde", 2, 3, "abcde", 2, 1, 2); 1456 test("abcde", 2, 3, "abcde", 2, 2, 1); 1457 test("abcde", 2, 3, "abcde", 2, 3, 0); 1458 test("abcde", 2, 3, "abcde", 2, 4, 0); 1459 test("abcde", 2, 3, "abcde", 4, 0, 3); 1460 test("abcde", 2, 3, "abcde", 4, 1, -2); 1461 test("abcde", 2, 3, "abcde", 4, 2, -2); 1462 test("abcde", 2, 3, "abcde", 5, 0, 3); 1463 test("abcde", 2, 3, "abcde", 5, 1, 3); 1464 test("abcde", 2, 3, "abcde", 6, 0, 0); 1465 test("abcde", 2, 3, "abcdefghij", 0, 0, 3); 1466 test("abcde", 2, 3, "abcdefghij", 0, 1, 2); 1467 test("abcde", 2, 3, "abcdefghij", 0, 5, 2); 1468 test("abcde", 2, 3, "abcdefghij", 0, 9, 2); 1469 test("abcde", 2, 3, "abcdefghij", 0, 10, 2); 1470 test("abcde", 2, 3, "abcdefghij", 0, 11, 2); 1471 test("abcde", 2, 3, "abcdefghij", 1, 0, 3); 1472 test("abcde", 2, 3, "abcdefghij", 1, 1, 1); 1473 test("abcde", 2, 3, "abcdefghij", 1, 4, 1); 1474 test("abcde", 2, 3, "abcdefghij", 1, 8, 1); 1475 test("abcde", 2, 3, "abcdefghij", 1, 9, 1); 1476 test("abcde", 2, 3, "abcdefghij", 1, 10, 1); 1477 test("abcde", 2, 3, "abcdefghij", 5, 0, 3); 1478 test("abcde", 2, 3, "abcdefghij", 5, 1, -3); 1479 test("abcde", 2, 3, "abcdefghij", 5, 2, -3); 1480 test("abcde", 2, 3, "abcdefghij", 5, 4, -3); 1481 test("abcde", 2, 3, "abcdefghij", 5, 5, -3); 1482 test("abcde", 2, 3, "abcdefghij", 5, 6, -3); 1483 test("abcde", 2, 3, "abcdefghij", 9, 0, 3); 1484 test("abcde", 2, 3, "abcdefghij", 9, 1, -7); 1485 test("abcde", 2, 3, "abcdefghij", 9, 2, -7); 1486 test("abcde", 2, 3, "abcdefghij", 10, 0, 3); 1487 test("abcde", 2, 3, "abcdefghij", 10, 1, 3); 1488 test("abcde", 2, 3, "abcdefghij", 11, 0, 0); 1489 test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 0, 3); 1490 test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 1, 2); 1491 test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 10, 2); 1492 test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 19, 2); 1493 test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 20, 2); 1494 test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 21, 2); 1495 test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 0, 3); 1496 test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 1, 1); 1497 test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 9, 1); 1498 test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 18, 1); 1499 test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 19, 1); 1500 test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 20, 1); 1501 test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 0, 3); 1502 test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 1, -8); 1503 test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 5, -8); 1504 test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 9, -8); 1505 test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 10, -8); 1506 test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 11, -8); 1507} 1508 1509void test14() 1510{ 1511 test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 0, 3); 1512 test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 1, -17); 1513 test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 2, -17); 1514 test("abcde", 2, 3, "abcdefghijklmnopqrst", 20, 0, 3); 1515 test("abcde", 2, 3, "abcdefghijklmnopqrst", 20, 1, 3); 1516 test("abcde", 2, 3, "abcdefghijklmnopqrst", 21, 0, 0); 1517 test("abcde", 2, 4, "", 0, 0, 3); 1518 test("abcde", 2, 4, "", 0, 1, 3); 1519 test("abcde", 2, 4, "", 1, 0, 0); 1520 test("abcde", 2, 4, "abcde", 0, 0, 3); 1521 test("abcde", 2, 4, "abcde", 0, 1, 2); 1522 test("abcde", 2, 4, "abcde", 0, 2, 2); 1523 test("abcde", 2, 4, "abcde", 0, 4, 2); 1524 test("abcde", 2, 4, "abcde", 0, 5, 2); 1525 test("abcde", 2, 4, "abcde", 0, 6, 2); 1526 test("abcde", 2, 4, "abcde", 1, 0, 3); 1527 test("abcde", 2, 4, "abcde", 1, 1, 1); 1528 test("abcde", 2, 4, "abcde", 1, 2, 1); 1529 test("abcde", 2, 4, "abcde", 1, 3, 1); 1530 test("abcde", 2, 4, "abcde", 1, 4, 1); 1531 test("abcde", 2, 4, "abcde", 1, 5, 1); 1532 test("abcde", 2, 4, "abcde", 2, 0, 3); 1533 test("abcde", 2, 4, "abcde", 2, 1, 2); 1534 test("abcde", 2, 4, "abcde", 2, 2, 1); 1535 test("abcde", 2, 4, "abcde", 2, 3, 0); 1536 test("abcde", 2, 4, "abcde", 2, 4, 0); 1537 test("abcde", 2, 4, "abcde", 4, 0, 3); 1538 test("abcde", 2, 4, "abcde", 4, 1, -2); 1539 test("abcde", 2, 4, "abcde", 4, 2, -2); 1540 test("abcde", 2, 4, "abcde", 5, 0, 3); 1541 test("abcde", 2, 4, "abcde", 5, 1, 3); 1542 test("abcde", 2, 4, "abcde", 6, 0, 0); 1543 test("abcde", 2, 4, "abcdefghij", 0, 0, 3); 1544 test("abcde", 2, 4, "abcdefghij", 0, 1, 2); 1545 test("abcde", 2, 4, "abcdefghij", 0, 5, 2); 1546 test("abcde", 2, 4, "abcdefghij", 0, 9, 2); 1547 test("abcde", 2, 4, "abcdefghij", 0, 10, 2); 1548 test("abcde", 2, 4, "abcdefghij", 0, 11, 2); 1549 test("abcde", 2, 4, "abcdefghij", 1, 0, 3); 1550 test("abcde", 2, 4, "abcdefghij", 1, 1, 1); 1551 test("abcde", 2, 4, "abcdefghij", 1, 4, 1); 1552 test("abcde", 2, 4, "abcdefghij", 1, 8, 1); 1553 test("abcde", 2, 4, "abcdefghij", 1, 9, 1); 1554 test("abcde", 2, 4, "abcdefghij", 1, 10, 1); 1555 test("abcde", 2, 4, "abcdefghij", 5, 0, 3); 1556 test("abcde", 2, 4, "abcdefghij", 5, 1, -3); 1557 test("abcde", 2, 4, "abcdefghij", 5, 2, -3); 1558 test("abcde", 2, 4, "abcdefghij", 5, 4, -3); 1559 test("abcde", 2, 4, "abcdefghij", 5, 5, -3); 1560 test("abcde", 2, 4, "abcdefghij", 5, 6, -3); 1561 test("abcde", 2, 4, "abcdefghij", 9, 0, 3); 1562 test("abcde", 2, 4, "abcdefghij", 9, 1, -7); 1563 test("abcde", 2, 4, "abcdefghij", 9, 2, -7); 1564 test("abcde", 2, 4, "abcdefghij", 10, 0, 3); 1565 test("abcde", 2, 4, "abcdefghij", 10, 1, 3); 1566 test("abcde", 2, 4, "abcdefghij", 11, 0, 0); 1567 test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 0, 3); 1568 test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 1, 2); 1569 test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 10, 2); 1570 test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 19, 2); 1571 test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 20, 2); 1572 test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 21, 2); 1573 test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 0, 3); 1574 test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 1, 1); 1575 test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 9, 1); 1576 test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 18, 1); 1577 test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 19, 1); 1578 test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 20, 1); 1579 test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 0, 3); 1580 test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 1, -8); 1581 test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 5, -8); 1582 test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 9, -8); 1583 test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 10, -8); 1584 test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 11, -8); 1585 test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 0, 3); 1586 test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 1, -17); 1587 test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 2, -17); 1588 test("abcde", 2, 4, "abcdefghijklmnopqrst", 20, 0, 3); 1589 test("abcde", 2, 4, "abcdefghijklmnopqrst", 20, 1, 3); 1590 test("abcde", 2, 4, "abcdefghijklmnopqrst", 21, 0, 0); 1591 test("abcde", 4, 0, "", 0, 0, 0); 1592 test("abcde", 4, 0, "", 0, 1, 0); 1593 test("abcde", 4, 0, "", 1, 0, 0); 1594 test("abcde", 4, 0, "abcde", 0, 0, 0); 1595 test("abcde", 4, 0, "abcde", 0, 1, -1); 1596 test("abcde", 4, 0, "abcde", 0, 2, -2); 1597 test("abcde", 4, 0, "abcde", 0, 4, -4); 1598 test("abcde", 4, 0, "abcde", 0, 5, -5); 1599 test("abcde", 4, 0, "abcde", 0, 6, -5); 1600 test("abcde", 4, 0, "abcde", 1, 0, 0); 1601 test("abcde", 4, 0, "abcde", 1, 1, -1); 1602 test("abcde", 4, 0, "abcde", 1, 2, -2); 1603 test("abcde", 4, 0, "abcde", 1, 3, -3); 1604 test("abcde", 4, 0, "abcde", 1, 4, -4); 1605 test("abcde", 4, 0, "abcde", 1, 5, -4); 1606 test("abcde", 4, 0, "abcde", 2, 0, 0); 1607 test("abcde", 4, 0, "abcde", 2, 1, -1); 1608 test("abcde", 4, 0, "abcde", 2, 2, -2); 1609 test("abcde", 4, 0, "abcde", 2, 3, -3); 1610 test("abcde", 4, 0, "abcde", 2, 4, -3); 1611} 1612 1613void test15() 1614{ 1615 test("abcde", 4, 0, "abcde", 4, 0, 0); 1616 test("abcde", 4, 0, "abcde", 4, 1, -1); 1617 test("abcde", 4, 0, "abcde", 4, 2, -1); 1618 test("abcde", 4, 0, "abcde", 5, 0, 0); 1619 test("abcde", 4, 0, "abcde", 5, 1, 0); 1620 test("abcde", 4, 0, "abcde", 6, 0, 0); 1621 test("abcde", 4, 0, "abcdefghij", 0, 0, 0); 1622 test("abcde", 4, 0, "abcdefghij", 0, 1, -1); 1623 test("abcde", 4, 0, "abcdefghij", 0, 5, -5); 1624 test("abcde", 4, 0, "abcdefghij", 0, 9, -9); 1625 test("abcde", 4, 0, "abcdefghij", 0, 10, -10); 1626 test("abcde", 4, 0, "abcdefghij", 0, 11, -10); 1627 test("abcde", 4, 0, "abcdefghij", 1, 0, 0); 1628 test("abcde", 4, 0, "abcdefghij", 1, 1, -1); 1629 test("abcde", 4, 0, "abcdefghij", 1, 4, -4); 1630 test("abcde", 4, 0, "abcdefghij", 1, 8, -8); 1631 test("abcde", 4, 0, "abcdefghij", 1, 9, -9); 1632 test("abcde", 4, 0, "abcdefghij", 1, 10, -9); 1633 test("abcde", 4, 0, "abcdefghij", 5, 0, 0); 1634 test("abcde", 4, 0, "abcdefghij", 5, 1, -1); 1635 test("abcde", 4, 0, "abcdefghij", 5, 2, -2); 1636 test("abcde", 4, 0, "abcdefghij", 5, 4, -4); 1637 test("abcde", 4, 0, "abcdefghij", 5, 5, -5); 1638 test("abcde", 4, 0, "abcdefghij", 5, 6, -5); 1639 test("abcde", 4, 0, "abcdefghij", 9, 0, 0); 1640 test("abcde", 4, 0, "abcdefghij", 9, 1, -1); 1641 test("abcde", 4, 0, "abcdefghij", 9, 2, -1); 1642 test("abcde", 4, 0, "abcdefghij", 10, 0, 0); 1643 test("abcde", 4, 0, "abcdefghij", 10, 1, 0); 1644 test("abcde", 4, 0, "abcdefghij", 11, 0, 0); 1645 test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 0, 0); 1646 test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 1, -1); 1647 test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 10, -10); 1648 test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 19, -19); 1649 test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 20, -20); 1650 test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 21, -20); 1651 test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 0, 0); 1652 test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 1, -1); 1653 test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 9, -9); 1654 test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 18, -18); 1655 test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 19, -19); 1656 test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 20, -19); 1657 test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 0, 0); 1658 test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 1, -1); 1659 test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 5, -5); 1660 test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 9, -9); 1661 test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 10, -10); 1662 test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 11, -10); 1663 test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, 0, 0); 1664 test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, 1, -1); 1665 test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, 2, -1); 1666 test("abcde", 4, 0, "abcdefghijklmnopqrst", 20, 0, 0); 1667 test("abcde", 4, 0, "abcdefghijklmnopqrst", 20, 1, 0); 1668 test("abcde", 4, 0, "abcdefghijklmnopqrst", 21, 0, 0); 1669 test("abcde", 4, 1, "", 0, 0, 1); 1670 test("abcde", 4, 1, "", 0, 1, 1); 1671 test("abcde", 4, 1, "", 1, 0, 0); 1672 test("abcde", 4, 1, "abcde", 0, 0, 1); 1673 test("abcde", 4, 1, "abcde", 0, 1, 4); 1674 test("abcde", 4, 1, "abcde", 0, 2, 4); 1675 test("abcde", 4, 1, "abcde", 0, 4, 4); 1676 test("abcde", 4, 1, "abcde", 0, 5, 4); 1677 test("abcde", 4, 1, "abcde", 0, 6, 4); 1678 test("abcde", 4, 1, "abcde", 1, 0, 1); 1679 test("abcde", 4, 1, "abcde", 1, 1, 3); 1680 test("abcde", 4, 1, "abcde", 1, 2, 3); 1681 test("abcde", 4, 1, "abcde", 1, 3, 3); 1682 test("abcde", 4, 1, "abcde", 1, 4, 3); 1683 test("abcde", 4, 1, "abcde", 1, 5, 3); 1684 test("abcde", 4, 1, "abcde", 2, 0, 1); 1685 test("abcde", 4, 1, "abcde", 2, 1, 2); 1686 test("abcde", 4, 1, "abcde", 2, 2, 2); 1687 test("abcde", 4, 1, "abcde", 2, 3, 2); 1688 test("abcde", 4, 1, "abcde", 2, 4, 2); 1689 test("abcde", 4, 1, "abcde", 4, 0, 1); 1690 test("abcde", 4, 1, "abcde", 4, 1, 0); 1691 test("abcde", 4, 1, "abcde", 4, 2, 0); 1692 test("abcde", 4, 1, "abcde", 5, 0, 1); 1693 test("abcde", 4, 1, "abcde", 5, 1, 1); 1694 test("abcde", 4, 1, "abcde", 6, 0, 0); 1695 test("abcde", 4, 1, "abcdefghij", 0, 0, 1); 1696 test("abcde", 4, 1, "abcdefghij", 0, 1, 4); 1697 test("abcde", 4, 1, "abcdefghij", 0, 5, 4); 1698 test("abcde", 4, 1, "abcdefghij", 0, 9, 4); 1699 test("abcde", 4, 1, "abcdefghij", 0, 10, 4); 1700 test("abcde", 4, 1, "abcdefghij", 0, 11, 4); 1701 test("abcde", 4, 1, "abcdefghij", 1, 0, 1); 1702 test("abcde", 4, 1, "abcdefghij", 1, 1, 3); 1703 test("abcde", 4, 1, "abcdefghij", 1, 4, 3); 1704 test("abcde", 4, 1, "abcdefghij", 1, 8, 3); 1705 test("abcde", 4, 1, "abcdefghij", 1, 9, 3); 1706 test("abcde", 4, 1, "abcdefghij", 1, 10, 3); 1707 test("abcde", 4, 1, "abcdefghij", 5, 0, 1); 1708 test("abcde", 4, 1, "abcdefghij", 5, 1, -1); 1709 test("abcde", 4, 1, "abcdefghij", 5, 2, -1); 1710 test("abcde", 4, 1, "abcdefghij", 5, 4, -1); 1711 test("abcde", 4, 1, "abcdefghij", 5, 5, -1); 1712 test("abcde", 4, 1, "abcdefghij", 5, 6, -1); 1713 test("abcde", 4, 1, "abcdefghij", 9, 0, 1); 1714 test("abcde", 4, 1, "abcdefghij", 9, 1, -5); 1715} 1716 1717void test16() 1718{ 1719 test("abcde", 4, 1, "abcdefghij", 9, 2, -5); 1720 test("abcde", 4, 1, "abcdefghij", 10, 0, 1); 1721 test("abcde", 4, 1, "abcdefghij", 10, 1, 1); 1722 test("abcde", 4, 1, "abcdefghij", 11, 0, 0); 1723 test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 0, 1); 1724 test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 1, 4); 1725 test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 10, 4); 1726 test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 19, 4); 1727 test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 20, 4); 1728 test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 21, 4); 1729 test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 0, 1); 1730 test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 1, 3); 1731 test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 9, 3); 1732 test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 18, 3); 1733 test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 19, 3); 1734 test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 20, 3); 1735 test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 0, 1); 1736 test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 1, -6); 1737 test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 5, -6); 1738 test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 9, -6); 1739 test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 10, -6); 1740 test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 11, -6); 1741 test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 0, 1); 1742 test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 1, -15); 1743 test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 2, -15); 1744 test("abcde", 4, 1, "abcdefghijklmnopqrst", 20, 0, 1); 1745 test("abcde", 4, 1, "abcdefghijklmnopqrst", 20, 1, 1); 1746 test("abcde", 4, 1, "abcdefghijklmnopqrst", 21, 0, 0); 1747 test("abcde", 4, 2, "", 0, 0, 1); 1748 test("abcde", 4, 2, "", 0, 1, 1); 1749 test("abcde", 4, 2, "", 1, 0, 0); 1750 test("abcde", 4, 2, "abcde", 0, 0, 1); 1751 test("abcde", 4, 2, "abcde", 0, 1, 4); 1752 test("abcde", 4, 2, "abcde", 0, 2, 4); 1753 test("abcde", 4, 2, "abcde", 0, 4, 4); 1754 test("abcde", 4, 2, "abcde", 0, 5, 4); 1755 test("abcde", 4, 2, "abcde", 0, 6, 4); 1756 test("abcde", 4, 2, "abcde", 1, 0, 1); 1757 test("abcde", 4, 2, "abcde", 1, 1, 3); 1758 test("abcde", 4, 2, "abcde", 1, 2, 3); 1759 test("abcde", 4, 2, "abcde", 1, 3, 3); 1760 test("abcde", 4, 2, "abcde", 1, 4, 3); 1761 test("abcde", 4, 2, "abcde", 1, 5, 3); 1762 test("abcde", 4, 2, "abcde", 2, 0, 1); 1763 test("abcde", 4, 2, "abcde", 2, 1, 2); 1764 test("abcde", 4, 2, "abcde", 2, 2, 2); 1765 test("abcde", 4, 2, "abcde", 2, 3, 2); 1766 test("abcde", 4, 2, "abcde", 2, 4, 2); 1767 test("abcde", 4, 2, "abcde", 4, 0, 1); 1768 test("abcde", 4, 2, "abcde", 4, 1, 0); 1769 test("abcde", 4, 2, "abcde", 4, 2, 0); 1770 test("abcde", 4, 2, "abcde", 5, 0, 1); 1771 test("abcde", 4, 2, "abcde", 5, 1, 1); 1772 test("abcde", 4, 2, "abcde", 6, 0, 0); 1773 test("abcde", 4, 2, "abcdefghij", 0, 0, 1); 1774 test("abcde", 4, 2, "abcdefghij", 0, 1, 4); 1775 test("abcde", 4, 2, "abcdefghij", 0, 5, 4); 1776 test("abcde", 4, 2, "abcdefghij", 0, 9, 4); 1777 test("abcde", 4, 2, "abcdefghij", 0, 10, 4); 1778 test("abcde", 4, 2, "abcdefghij", 0, 11, 4); 1779 test("abcde", 4, 2, "abcdefghij", 1, 0, 1); 1780 test("abcde", 4, 2, "abcdefghij", 1, 1, 3); 1781 test("abcde", 4, 2, "abcdefghij", 1, 4, 3); 1782 test("abcde", 4, 2, "abcdefghij", 1, 8, 3); 1783 test("abcde", 4, 2, "abcdefghij", 1, 9, 3); 1784 test("abcde", 4, 2, "abcdefghij", 1, 10, 3); 1785 test("abcde", 4, 2, "abcdefghij", 5, 0, 1); 1786 test("abcde", 4, 2, "abcdefghij", 5, 1, -1); 1787 test("abcde", 4, 2, "abcdefghij", 5, 2, -1); 1788 test("abcde", 4, 2, "abcdefghij", 5, 4, -1); 1789 test("abcde", 4, 2, "abcdefghij", 5, 5, -1); 1790 test("abcde", 4, 2, "abcdefghij", 5, 6, -1); 1791 test("abcde", 4, 2, "abcdefghij", 9, 0, 1); 1792 test("abcde", 4, 2, "abcdefghij", 9, 1, -5); 1793 test("abcde", 4, 2, "abcdefghij", 9, 2, -5); 1794 test("abcde", 4, 2, "abcdefghij", 10, 0, 1); 1795 test("abcde", 4, 2, "abcdefghij", 10, 1, 1); 1796 test("abcde", 4, 2, "abcdefghij", 11, 0, 0); 1797 test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 0, 1); 1798 test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 1, 4); 1799 test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 10, 4); 1800 test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 19, 4); 1801 test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 20, 4); 1802 test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 21, 4); 1803 test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 0, 1); 1804 test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 1, 3); 1805 test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 9, 3); 1806 test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 18, 3); 1807 test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 19, 3); 1808 test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 20, 3); 1809 test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 0, 1); 1810 test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 1, -6); 1811 test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 5, -6); 1812 test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 9, -6); 1813 test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 10, -6); 1814 test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 11, -6); 1815 test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 0, 1); 1816 test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 1, -15); 1817 test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 2, -15); 1818 test("abcde", 4, 2, "abcdefghijklmnopqrst", 20, 0, 1); 1819} 1820 1821void test17() 1822{ 1823 test("abcde", 4, 2, "abcdefghijklmnopqrst", 20, 1, 1); 1824 test("abcde", 4, 2, "abcdefghijklmnopqrst", 21, 0, 0); 1825 test("abcde", 5, 0, "", 0, 0, 0); 1826 test("abcde", 5, 0, "", 0, 1, 0); 1827 test("abcde", 5, 0, "", 1, 0, 0); 1828 test("abcde", 5, 0, "abcde", 0, 0, 0); 1829 test("abcde", 5, 0, "abcde", 0, 1, -1); 1830 test("abcde", 5, 0, "abcde", 0, 2, -2); 1831 test("abcde", 5, 0, "abcde", 0, 4, -4); 1832 test("abcde", 5, 0, "abcde", 0, 5, -5); 1833 test("abcde", 5, 0, "abcde", 0, 6, -5); 1834 test("abcde", 5, 0, "abcde", 1, 0, 0); 1835 test("abcde", 5, 0, "abcde", 1, 1, -1); 1836 test("abcde", 5, 0, "abcde", 1, 2, -2); 1837 test("abcde", 5, 0, "abcde", 1, 3, -3); 1838 test("abcde", 5, 0, "abcde", 1, 4, -4); 1839 test("abcde", 5, 0, "abcde", 1, 5, -4); 1840 test("abcde", 5, 0, "abcde", 2, 0, 0); 1841 test("abcde", 5, 0, "abcde", 2, 1, -1); 1842 test("abcde", 5, 0, "abcde", 2, 2, -2); 1843 test("abcde", 5, 0, "abcde", 2, 3, -3); 1844 test("abcde", 5, 0, "abcde", 2, 4, -3); 1845 test("abcde", 5, 0, "abcde", 4, 0, 0); 1846 test("abcde", 5, 0, "abcde", 4, 1, -1); 1847 test("abcde", 5, 0, "abcde", 4, 2, -1); 1848 test("abcde", 5, 0, "abcde", 5, 0, 0); 1849 test("abcde", 5, 0, "abcde", 5, 1, 0); 1850 test("abcde", 5, 0, "abcde", 6, 0, 0); 1851 test("abcde", 5, 0, "abcdefghij", 0, 0, 0); 1852 test("abcde", 5, 0, "abcdefghij", 0, 1, -1); 1853 test("abcde", 5, 0, "abcdefghij", 0, 5, -5); 1854 test("abcde", 5, 0, "abcdefghij", 0, 9, -9); 1855 test("abcde", 5, 0, "abcdefghij", 0, 10, -10); 1856 test("abcde", 5, 0, "abcdefghij", 0, 11, -10); 1857 test("abcde", 5, 0, "abcdefghij", 1, 0, 0); 1858 test("abcde", 5, 0, "abcdefghij", 1, 1, -1); 1859 test("abcde", 5, 0, "abcdefghij", 1, 4, -4); 1860 test("abcde", 5, 0, "abcdefghij", 1, 8, -8); 1861 test("abcde", 5, 0, "abcdefghij", 1, 9, -9); 1862 test("abcde", 5, 0, "abcdefghij", 1, 10, -9); 1863 test("abcde", 5, 0, "abcdefghij", 5, 0, 0); 1864 test("abcde", 5, 0, "abcdefghij", 5, 1, -1); 1865 test("abcde", 5, 0, "abcdefghij", 5, 2, -2); 1866 test("abcde", 5, 0, "abcdefghij", 5, 4, -4); 1867 test("abcde", 5, 0, "abcdefghij", 5, 5, -5); 1868 test("abcde", 5, 0, "abcdefghij", 5, 6, -5); 1869 test("abcde", 5, 0, "abcdefghij", 9, 0, 0); 1870 test("abcde", 5, 0, "abcdefghij", 9, 1, -1); 1871 test("abcde", 5, 0, "abcdefghij", 9, 2, -1); 1872 test("abcde", 5, 0, "abcdefghij", 10, 0, 0); 1873 test("abcde", 5, 0, "abcdefghij", 10, 1, 0); 1874 test("abcde", 5, 0, "abcdefghij", 11, 0, 0); 1875 test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 0, 0); 1876 test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 1, -1); 1877 test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 10, -10); 1878 test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 19, -19); 1879 test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 20, -20); 1880 test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 21, -20); 1881 test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 0, 0); 1882 test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 1, -1); 1883 test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 9, -9); 1884 test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 18, -18); 1885 test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 19, -19); 1886 test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 20, -19); 1887 test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 0, 0); 1888 test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 1, -1); 1889 test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 5, -5); 1890 test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 9, -9); 1891 test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 10, -10); 1892 test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 11, -10); 1893 test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, 0, 0); 1894 test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, 1, -1); 1895 test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, 2, -1); 1896 test("abcde", 5, 0, "abcdefghijklmnopqrst", 20, 0, 0); 1897 test("abcde", 5, 0, "abcdefghijklmnopqrst", 20, 1, 0); 1898 test("abcde", 5, 0, "abcdefghijklmnopqrst", 21, 0, 0); 1899 test("abcde", 5, 1, "", 0, 0, 0); 1900 test("abcde", 5, 1, "", 0, 1, 0); 1901 test("abcde", 5, 1, "", 1, 0, 0); 1902 test("abcde", 5, 1, "abcde", 0, 0, 0); 1903 test("abcde", 5, 1, "abcde", 0, 1, -1); 1904 test("abcde", 5, 1, "abcde", 0, 2, -2); 1905 test("abcde", 5, 1, "abcde", 0, 4, -4); 1906 test("abcde", 5, 1, "abcde", 0, 5, -5); 1907 test("abcde", 5, 1, "abcde", 0, 6, -5); 1908 test("abcde", 5, 1, "abcde", 1, 0, 0); 1909 test("abcde", 5, 1, "abcde", 1, 1, -1); 1910 test("abcde", 5, 1, "abcde", 1, 2, -2); 1911 test("abcde", 5, 1, "abcde", 1, 3, -3); 1912 test("abcde", 5, 1, "abcde", 1, 4, -4); 1913 test("abcde", 5, 1, "abcde", 1, 5, -4); 1914 test("abcde", 5, 1, "abcde", 2, 0, 0); 1915 test("abcde", 5, 1, "abcde", 2, 1, -1); 1916 test("abcde", 5, 1, "abcde", 2, 2, -2); 1917 test("abcde", 5, 1, "abcde", 2, 3, -3); 1918 test("abcde", 5, 1, "abcde", 2, 4, -3); 1919 test("abcde", 5, 1, "abcde", 4, 0, 0); 1920 test("abcde", 5, 1, "abcde", 4, 1, -1); 1921 test("abcde", 5, 1, "abcde", 4, 2, -1); 1922 test("abcde", 5, 1, "abcde", 5, 0, 0); 1923} 1924 1925void test18() 1926{ 1927 test("abcde", 5, 1, "abcde", 5, 1, 0); 1928 test("abcde", 5, 1, "abcde", 6, 0, 0); 1929 test("abcde", 5, 1, "abcdefghij", 0, 0, 0); 1930 test("abcde", 5, 1, "abcdefghij", 0, 1, -1); 1931 test("abcde", 5, 1, "abcdefghij", 0, 5, -5); 1932 test("abcde", 5, 1, "abcdefghij", 0, 9, -9); 1933 test("abcde", 5, 1, "abcdefghij", 0, 10, -10); 1934 test("abcde", 5, 1, "abcdefghij", 0, 11, -10); 1935 test("abcde", 5, 1, "abcdefghij", 1, 0, 0); 1936 test("abcde", 5, 1, "abcdefghij", 1, 1, -1); 1937 test("abcde", 5, 1, "abcdefghij", 1, 4, -4); 1938 test("abcde", 5, 1, "abcdefghij", 1, 8, -8); 1939 test("abcde", 5, 1, "abcdefghij", 1, 9, -9); 1940 test("abcde", 5, 1, "abcdefghij", 1, 10, -9); 1941 test("abcde", 5, 1, "abcdefghij", 5, 0, 0); 1942 test("abcde", 5, 1, "abcdefghij", 5, 1, -1); 1943 test("abcde", 5, 1, "abcdefghij", 5, 2, -2); 1944 test("abcde", 5, 1, "abcdefghij", 5, 4, -4); 1945 test("abcde", 5, 1, "abcdefghij", 5, 5, -5); 1946 test("abcde", 5, 1, "abcdefghij", 5, 6, -5); 1947 test("abcde", 5, 1, "abcdefghij", 9, 0, 0); 1948 test("abcde", 5, 1, "abcdefghij", 9, 1, -1); 1949 test("abcde", 5, 1, "abcdefghij", 9, 2, -1); 1950 test("abcde", 5, 1, "abcdefghij", 10, 0, 0); 1951 test("abcde", 5, 1, "abcdefghij", 10, 1, 0); 1952 test("abcde", 5, 1, "abcdefghij", 11, 0, 0); 1953 test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 0, 0); 1954 test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 1, -1); 1955 test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 10, -10); 1956 test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 19, -19); 1957 test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 20, -20); 1958 test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 21, -20); 1959 test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 0, 0); 1960 test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 1, -1); 1961 test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 9, -9); 1962 test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 18, -18); 1963 test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 19, -19); 1964 test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 20, -19); 1965 test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 0, 0); 1966 test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 1, -1); 1967 test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 5, -5); 1968 test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 9, -9); 1969 test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 10, -10); 1970 test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 11, -10); 1971 test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, 0, 0); 1972 test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, 1, -1); 1973 test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, 2, -1); 1974 test("abcde", 5, 1, "abcdefghijklmnopqrst", 20, 0, 0); 1975 test("abcde", 5, 1, "abcdefghijklmnopqrst", 20, 1, 0); 1976 test("abcde", 5, 1, "abcdefghijklmnopqrst", 21, 0, 0); 1977 test("abcde", 6, 0, "", 0, 0, 0); 1978 test("abcde", 6, 0, "", 0, 1, 0); 1979 test("abcde", 6, 0, "", 1, 0, 0); 1980 test("abcde", 6, 0, "abcde", 0, 0, 0); 1981 test("abcde", 6, 0, "abcde", 0, 1, 0); 1982 test("abcde", 6, 0, "abcde", 0, 2, 0); 1983 test("abcde", 6, 0, "abcde", 0, 4, 0); 1984 test("abcde", 6, 0, "abcde", 0, 5, 0); 1985 test("abcde", 6, 0, "abcde", 0, 6, 0); 1986 test("abcde", 6, 0, "abcde", 1, 0, 0); 1987 test("abcde", 6, 0, "abcde", 1, 1, 0); 1988 test("abcde", 6, 0, "abcde", 1, 2, 0); 1989 test("abcde", 6, 0, "abcde", 1, 3, 0); 1990 test("abcde", 6, 0, "abcde", 1, 4, 0); 1991 test("abcde", 6, 0, "abcde", 1, 5, 0); 1992 test("abcde", 6, 0, "abcde", 2, 0, 0); 1993 test("abcde", 6, 0, "abcde", 2, 1, 0); 1994 test("abcde", 6, 0, "abcde", 2, 2, 0); 1995 test("abcde", 6, 0, "abcde", 2, 3, 0); 1996 test("abcde", 6, 0, "abcde", 2, 4, 0); 1997 test("abcde", 6, 0, "abcde", 4, 0, 0); 1998 test("abcde", 6, 0, "abcde", 4, 1, 0); 1999 test("abcde", 6, 0, "abcde", 4, 2, 0); 2000 test("abcde", 6, 0, "abcde", 5, 0, 0); 2001 test("abcde", 6, 0, "abcde", 5, 1, 0); 2002 test("abcde", 6, 0, "abcde", 6, 0, 0); 2003 test("abcde", 6, 0, "abcdefghij", 0, 0, 0); 2004 test("abcde", 6, 0, "abcdefghij", 0, 1, 0); 2005 test("abcde", 6, 0, "abcdefghij", 0, 5, 0); 2006 test("abcde", 6, 0, "abcdefghij", 0, 9, 0); 2007 test("abcde", 6, 0, "abcdefghij", 0, 10, 0); 2008 test("abcde", 6, 0, "abcdefghij", 0, 11, 0); 2009 test("abcde", 6, 0, "abcdefghij", 1, 0, 0); 2010 test("abcde", 6, 0, "abcdefghij", 1, 1, 0); 2011 test("abcde", 6, 0, "abcdefghij", 1, 4, 0); 2012 test("abcde", 6, 0, "abcdefghij", 1, 8, 0); 2013 test("abcde", 6, 0, "abcdefghij", 1, 9, 0); 2014 test("abcde", 6, 0, "abcdefghij", 1, 10, 0); 2015 test("abcde", 6, 0, "abcdefghij", 5, 0, 0); 2016 test("abcde", 6, 0, "abcdefghij", 5, 1, 0); 2017 test("abcde", 6, 0, "abcdefghij", 5, 2, 0); 2018 test("abcde", 6, 0, "abcdefghij", 5, 4, 0); 2019 test("abcde", 6, 0, "abcdefghij", 5, 5, 0); 2020 test("abcde", 6, 0, "abcdefghij", 5, 6, 0); 2021 test("abcde", 6, 0, "abcdefghij", 9, 0, 0); 2022 test("abcde", 6, 0, "abcdefghij", 9, 1, 0); 2023 test("abcde", 6, 0, "abcdefghij", 9, 2, 0); 2024 test("abcde", 6, 0, "abcdefghij", 10, 0, 0); 2025 test("abcde", 6, 0, "abcdefghij", 10, 1, 0); 2026 test("abcde", 6, 0, "abcdefghij", 11, 0, 0); 2027} 2028 2029void test19() 2030{ 2031 test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 0, 0); 2032 test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 1, 0); 2033 test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 10, 0); 2034 test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 19, 0); 2035 test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 20, 0); 2036 test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 21, 0); 2037 test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 0, 0); 2038 test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 1, 0); 2039 test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 9, 0); 2040 test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 18, 0); 2041 test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 19, 0); 2042 test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 20, 0); 2043 test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 0, 0); 2044 test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 1, 0); 2045 test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 5, 0); 2046 test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 9, 0); 2047 test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 10, 0); 2048 test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 11, 0); 2049 test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 0, 0); 2050 test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 1, 0); 2051 test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 2, 0); 2052 test("abcde", 6, 0, "abcdefghijklmnopqrst", 20, 0, 0); 2053 test("abcde", 6, 0, "abcdefghijklmnopqrst", 20, 1, 0); 2054 test("abcde", 6, 0, "abcdefghijklmnopqrst", 21, 0, 0); 2055 test("abcdefghij", 0, 0, "", 0, 0, 0); 2056 test("abcdefghij", 0, 0, "", 0, 1, 0); 2057 test("abcdefghij", 0, 0, "", 1, 0, 0); 2058 test("abcdefghij", 0, 0, "abcde", 0, 0, 0); 2059 test("abcdefghij", 0, 0, "abcde", 0, 1, -1); 2060 test("abcdefghij", 0, 0, "abcde", 0, 2, -2); 2061 test("abcdefghij", 0, 0, "abcde", 0, 4, -4); 2062 test("abcdefghij", 0, 0, "abcde", 0, 5, -5); 2063 test("abcdefghij", 0, 0, "abcde", 0, 6, -5); 2064 test("abcdefghij", 0, 0, "abcde", 1, 0, 0); 2065 test("abcdefghij", 0, 0, "abcde", 1, 1, -1); 2066 test("abcdefghij", 0, 0, "abcde", 1, 2, -2); 2067 test("abcdefghij", 0, 0, "abcde", 1, 3, -3); 2068 test("abcdefghij", 0, 0, "abcde", 1, 4, -4); 2069 test("abcdefghij", 0, 0, "abcde", 1, 5, -4); 2070 test("abcdefghij", 0, 0, "abcde", 2, 0, 0); 2071 test("abcdefghij", 0, 0, "abcde", 2, 1, -1); 2072 test("abcdefghij", 0, 0, "abcde", 2, 2, -2); 2073 test("abcdefghij", 0, 0, "abcde", 2, 3, -3); 2074 test("abcdefghij", 0, 0, "abcde", 2, 4, -3); 2075 test("abcdefghij", 0, 0, "abcde", 4, 0, 0); 2076 test("abcdefghij", 0, 0, "abcde", 4, 1, -1); 2077 test("abcdefghij", 0, 0, "abcde", 4, 2, -1); 2078 test("abcdefghij", 0, 0, "abcde", 5, 0, 0); 2079 test("abcdefghij", 0, 0, "abcde", 5, 1, 0); 2080 test("abcdefghij", 0, 0, "abcde", 6, 0, 0); 2081 test("abcdefghij", 0, 0, "abcdefghij", 0, 0, 0); 2082 test("abcdefghij", 0, 0, "abcdefghij", 0, 1, -1); 2083 test("abcdefghij", 0, 0, "abcdefghij", 0, 5, -5); 2084 test("abcdefghij", 0, 0, "abcdefghij", 0, 9, -9); 2085 test("abcdefghij", 0, 0, "abcdefghij", 0, 10, -10); 2086 test("abcdefghij", 0, 0, "abcdefghij", 0, 11, -10); 2087 test("abcdefghij", 0, 0, "abcdefghij", 1, 0, 0); 2088 test("abcdefghij", 0, 0, "abcdefghij", 1, 1, -1); 2089 test("abcdefghij", 0, 0, "abcdefghij", 1, 4, -4); 2090 test("abcdefghij", 0, 0, "abcdefghij", 1, 8, -8); 2091 test("abcdefghij", 0, 0, "abcdefghij", 1, 9, -9); 2092 test("abcdefghij", 0, 0, "abcdefghij", 1, 10, -9); 2093 test("abcdefghij", 0, 0, "abcdefghij", 5, 0, 0); 2094 test("abcdefghij", 0, 0, "abcdefghij", 5, 1, -1); 2095 test("abcdefghij", 0, 0, "abcdefghij", 5, 2, -2); 2096 test("abcdefghij", 0, 0, "abcdefghij", 5, 4, -4); 2097 test("abcdefghij", 0, 0, "abcdefghij", 5, 5, -5); 2098 test("abcdefghij", 0, 0, "abcdefghij", 5, 6, -5); 2099 test("abcdefghij", 0, 0, "abcdefghij", 9, 0, 0); 2100 test("abcdefghij", 0, 0, "abcdefghij", 9, 1, -1); 2101 test("abcdefghij", 0, 0, "abcdefghij", 9, 2, -1); 2102 test("abcdefghij", 0, 0, "abcdefghij", 10, 0, 0); 2103 test("abcdefghij", 0, 0, "abcdefghij", 10, 1, 0); 2104 test("abcdefghij", 0, 0, "abcdefghij", 11, 0, 0); 2105 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0); 2106 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1); 2107 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10); 2108 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19); 2109 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20); 2110 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20); 2111 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0); 2112 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1); 2113 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9); 2114 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18); 2115 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19); 2116 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19); 2117 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0); 2118 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1); 2119 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5); 2120 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9); 2121 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10); 2122 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10); 2123 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0); 2124 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1); 2125 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1); 2126 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0); 2127 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0); 2128 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0); 2129 test("abcdefghij", 0, 1, "", 0, 0, 1); 2130 test("abcdefghij", 0, 1, "", 0, 1, 1); 2131} 2132 2133void test20() 2134{ 2135 test("abcdefghij", 0, 1, "", 1, 0, 0); 2136 test("abcdefghij", 0, 1, "abcde", 0, 0, 1); 2137 test("abcdefghij", 0, 1, "abcde", 0, 1, 0); 2138 test("abcdefghij", 0, 1, "abcde", 0, 2, -1); 2139 test("abcdefghij", 0, 1, "abcde", 0, 4, -3); 2140 test("abcdefghij", 0, 1, "abcde", 0, 5, -4); 2141 test("abcdefghij", 0, 1, "abcde", 0, 6, -4); 2142 test("abcdefghij", 0, 1, "abcde", 1, 0, 1); 2143 test("abcdefghij", 0, 1, "abcde", 1, 1, -1); 2144 test("abcdefghij", 0, 1, "abcde", 1, 2, -1); 2145 test("abcdefghij", 0, 1, "abcde", 1, 3, -1); 2146 test("abcdefghij", 0, 1, "abcde", 1, 4, -1); 2147 test("abcdefghij", 0, 1, "abcde", 1, 5, -1); 2148 test("abcdefghij", 0, 1, "abcde", 2, 0, 1); 2149 test("abcdefghij", 0, 1, "abcde", 2, 1, -2); 2150 test("abcdefghij", 0, 1, "abcde", 2, 2, -2); 2151 test("abcdefghij", 0, 1, "abcde", 2, 3, -2); 2152 test("abcdefghij", 0, 1, "abcde", 2, 4, -2); 2153 test("abcdefghij", 0, 1, "abcde", 4, 0, 1); 2154 test("abcdefghij", 0, 1, "abcde", 4, 1, -4); 2155 test("abcdefghij", 0, 1, "abcde", 4, 2, -4); 2156 test("abcdefghij", 0, 1, "abcde", 5, 0, 1); 2157 test("abcdefghij", 0, 1, "abcde", 5, 1, 1); 2158 test("abcdefghij", 0, 1, "abcde", 6, 0, 0); 2159 test("abcdefghij", 0, 1, "abcdefghij", 0, 0, 1); 2160 test("abcdefghij", 0, 1, "abcdefghij", 0, 1, 0); 2161 test("abcdefghij", 0, 1, "abcdefghij", 0, 5, -4); 2162 test("abcdefghij", 0, 1, "abcdefghij", 0, 9, -8); 2163 test("abcdefghij", 0, 1, "abcdefghij", 0, 10, -9); 2164 test("abcdefghij", 0, 1, "abcdefghij", 0, 11, -9); 2165 test("abcdefghij", 0, 1, "abcdefghij", 1, 0, 1); 2166 test("abcdefghij", 0, 1, "abcdefghij", 1, 1, -1); 2167 test("abcdefghij", 0, 1, "abcdefghij", 1, 4, -1); 2168 test("abcdefghij", 0, 1, "abcdefghij", 1, 8, -1); 2169 test("abcdefghij", 0, 1, "abcdefghij", 1, 9, -1); 2170 test("abcdefghij", 0, 1, "abcdefghij", 1, 10, -1); 2171 test("abcdefghij", 0, 1, "abcdefghij", 5, 0, 1); 2172 test("abcdefghij", 0, 1, "abcdefghij", 5, 1, -5); 2173 test("abcdefghij", 0, 1, "abcdefghij", 5, 2, -5); 2174 test("abcdefghij", 0, 1, "abcdefghij", 5, 4, -5); 2175 test("abcdefghij", 0, 1, "abcdefghij", 5, 5, -5); 2176 test("abcdefghij", 0, 1, "abcdefghij", 5, 6, -5); 2177 test("abcdefghij", 0, 1, "abcdefghij", 9, 0, 1); 2178 test("abcdefghij", 0, 1, "abcdefghij", 9, 1, -9); 2179 test("abcdefghij", 0, 1, "abcdefghij", 9, 2, -9); 2180 test("abcdefghij", 0, 1, "abcdefghij", 10, 0, 1); 2181 test("abcdefghij", 0, 1, "abcdefghij", 10, 1, 1); 2182 test("abcdefghij", 0, 1, "abcdefghij", 11, 0, 0); 2183 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 0, 1); 2184 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 1, 0); 2185 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 10, -9); 2186 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 19, -18); 2187 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 20, -19); 2188 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 21, -19); 2189 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 0, 1); 2190 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1); 2191 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 9, -1); 2192 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 18, -1); 2193 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 19, -1); 2194 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 20, -1); 2195 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 0, 1); 2196 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 1, -10); 2197 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 5, -10); 2198 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 9, -10); 2199 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10); 2200 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10); 2201 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, 0, 1); 2202 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, 1, -19); 2203 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, 2, -19); 2204 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 20, 0, 1); 2205 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 20, 1, 1); 2206 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0); 2207 test("abcdefghij", 0, 5, "", 0, 0, 5); 2208 test("abcdefghij", 0, 5, "", 0, 1, 5); 2209 test("abcdefghij", 0, 5, "", 1, 0, 0); 2210 test("abcdefghij", 0, 5, "abcde", 0, 0, 5); 2211 test("abcdefghij", 0, 5, "abcde", 0, 1, 4); 2212 test("abcdefghij", 0, 5, "abcde", 0, 2, 3); 2213 test("abcdefghij", 0, 5, "abcde", 0, 4, 1); 2214 test("abcdefghij", 0, 5, "abcde", 0, 5, 0); 2215 test("abcdefghij", 0, 5, "abcde", 0, 6, 0); 2216 test("abcdefghij", 0, 5, "abcde", 1, 0, 5); 2217 test("abcdefghij", 0, 5, "abcde", 1, 1, -1); 2218 test("abcdefghij", 0, 5, "abcde", 1, 2, -1); 2219 test("abcdefghij", 0, 5, "abcde", 1, 3, -1); 2220 test("abcdefghij", 0, 5, "abcde", 1, 4, -1); 2221 test("abcdefghij", 0, 5, "abcde", 1, 5, -1); 2222 test("abcdefghij", 0, 5, "abcde", 2, 0, 5); 2223 test("abcdefghij", 0, 5, "abcde", 2, 1, -2); 2224 test("abcdefghij", 0, 5, "abcde", 2, 2, -2); 2225 test("abcdefghij", 0, 5, "abcde", 2, 3, -2); 2226 test("abcdefghij", 0, 5, "abcde", 2, 4, -2); 2227 test("abcdefghij", 0, 5, "abcde", 4, 0, 5); 2228 test("abcdefghij", 0, 5, "abcde", 4, 1, -4); 2229 test("abcdefghij", 0, 5, "abcde", 4, 2, -4); 2230 test("abcdefghij", 0, 5, "abcde", 5, 0, 5); 2231 test("abcdefghij", 0, 5, "abcde", 5, 1, 5); 2232 test("abcdefghij", 0, 5, "abcde", 6, 0, 0); 2233 test("abcdefghij", 0, 5, "abcdefghij", 0, 0, 5); 2234 test("abcdefghij", 0, 5, "abcdefghij", 0, 1, 4); 2235} 2236 2237void test21() 2238{ 2239 test("abcdefghij", 0, 5, "abcdefghij", 0, 5, 0); 2240 test("abcdefghij", 0, 5, "abcdefghij", 0, 9, -4); 2241 test("abcdefghij", 0, 5, "abcdefghij", 0, 10, -5); 2242 test("abcdefghij", 0, 5, "abcdefghij", 0, 11, -5); 2243 test("abcdefghij", 0, 5, "abcdefghij", 1, 0, 5); 2244 test("abcdefghij", 0, 5, "abcdefghij", 1, 1, -1); 2245 test("abcdefghij", 0, 5, "abcdefghij", 1, 4, -1); 2246 test("abcdefghij", 0, 5, "abcdefghij", 1, 8, -1); 2247 test("abcdefghij", 0, 5, "abcdefghij", 1, 9, -1); 2248 test("abcdefghij", 0, 5, "abcdefghij", 1, 10, -1); 2249 test("abcdefghij", 0, 5, "abcdefghij", 5, 0, 5); 2250 test("abcdefghij", 0, 5, "abcdefghij", 5, 1, -5); 2251 test("abcdefghij", 0, 5, "abcdefghij", 5, 2, -5); 2252 test("abcdefghij", 0, 5, "abcdefghij", 5, 4, -5); 2253 test("abcdefghij", 0, 5, "abcdefghij", 5, 5, -5); 2254 test("abcdefghij", 0, 5, "abcdefghij", 5, 6, -5); 2255 test("abcdefghij", 0, 5, "abcdefghij", 9, 0, 5); 2256 test("abcdefghij", 0, 5, "abcdefghij", 9, 1, -9); 2257 test("abcdefghij", 0, 5, "abcdefghij", 9, 2, -9); 2258 test("abcdefghij", 0, 5, "abcdefghij", 10, 0, 5); 2259 test("abcdefghij", 0, 5, "abcdefghij", 10, 1, 5); 2260 test("abcdefghij", 0, 5, "abcdefghij", 11, 0, 0); 2261 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 0, 5); 2262 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 1, 4); 2263 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 10, -5); 2264 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 19, -14); 2265 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 20, -15); 2266 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 21, -15); 2267 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 0, 5); 2268 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 1, -1); 2269 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 9, -1); 2270 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 18, -1); 2271 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 19, -1); 2272 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 20, -1); 2273 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 0, 5); 2274 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 1, -10); 2275 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 5, -10); 2276 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 9, -10); 2277 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 10, -10); 2278 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 11, -10); 2279 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, 0, 5); 2280 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, 1, -19); 2281 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, 2, -19); 2282 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 20, 0, 5); 2283 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 20, 1, 5); 2284 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 21, 0, 0); 2285 test("abcdefghij", 0, 9, "", 0, 0, 9); 2286 test("abcdefghij", 0, 9, "", 0, 1, 9); 2287 test("abcdefghij", 0, 9, "", 1, 0, 0); 2288 test("abcdefghij", 0, 9, "abcde", 0, 0, 9); 2289 test("abcdefghij", 0, 9, "abcde", 0, 1, 8); 2290 test("abcdefghij", 0, 9, "abcde", 0, 2, 7); 2291 test("abcdefghij", 0, 9, "abcde", 0, 4, 5); 2292 test("abcdefghij", 0, 9, "abcde", 0, 5, 4); 2293 test("abcdefghij", 0, 9, "abcde", 0, 6, 4); 2294 test("abcdefghij", 0, 9, "abcde", 1, 0, 9); 2295 test("abcdefghij", 0, 9, "abcde", 1, 1, -1); 2296 test("abcdefghij", 0, 9, "abcde", 1, 2, -1); 2297 test("abcdefghij", 0, 9, "abcde", 1, 3, -1); 2298 test("abcdefghij", 0, 9, "abcde", 1, 4, -1); 2299 test("abcdefghij", 0, 9, "abcde", 1, 5, -1); 2300 test("abcdefghij", 0, 9, "abcde", 2, 0, 9); 2301 test("abcdefghij", 0, 9, "abcde", 2, 1, -2); 2302 test("abcdefghij", 0, 9, "abcde", 2, 2, -2); 2303 test("abcdefghij", 0, 9, "abcde", 2, 3, -2); 2304 test("abcdefghij", 0, 9, "abcde", 2, 4, -2); 2305 test("abcdefghij", 0, 9, "abcde", 4, 0, 9); 2306 test("abcdefghij", 0, 9, "abcde", 4, 1, -4); 2307 test("abcdefghij", 0, 9, "abcde", 4, 2, -4); 2308 test("abcdefghij", 0, 9, "abcde", 5, 0, 9); 2309 test("abcdefghij", 0, 9, "abcde", 5, 1, 9); 2310 test("abcdefghij", 0, 9, "abcde", 6, 0, 0); 2311 test("abcdefghij", 0, 9, "abcdefghij", 0, 0, 9); 2312 test("abcdefghij", 0, 9, "abcdefghij", 0, 1, 8); 2313 test("abcdefghij", 0, 9, "abcdefghij", 0, 5, 4); 2314 test("abcdefghij", 0, 9, "abcdefghij", 0, 9, 0); 2315 test("abcdefghij", 0, 9, "abcdefghij", 0, 10, -1); 2316 test("abcdefghij", 0, 9, "abcdefghij", 0, 11, -1); 2317 test("abcdefghij", 0, 9, "abcdefghij", 1, 0, 9); 2318 test("abcdefghij", 0, 9, "abcdefghij", 1, 1, -1); 2319 test("abcdefghij", 0, 9, "abcdefghij", 1, 4, -1); 2320 test("abcdefghij", 0, 9, "abcdefghij", 1, 8, -1); 2321 test("abcdefghij", 0, 9, "abcdefghij", 1, 9, -1); 2322 test("abcdefghij", 0, 9, "abcdefghij", 1, 10, -1); 2323 test("abcdefghij", 0, 9, "abcdefghij", 5, 0, 9); 2324 test("abcdefghij", 0, 9, "abcdefghij", 5, 1, -5); 2325 test("abcdefghij", 0, 9, "abcdefghij", 5, 2, -5); 2326 test("abcdefghij", 0, 9, "abcdefghij", 5, 4, -5); 2327 test("abcdefghij", 0, 9, "abcdefghij", 5, 5, -5); 2328 test("abcdefghij", 0, 9, "abcdefghij", 5, 6, -5); 2329 test("abcdefghij", 0, 9, "abcdefghij", 9, 0, 9); 2330 test("abcdefghij", 0, 9, "abcdefghij", 9, 1, -9); 2331 test("abcdefghij", 0, 9, "abcdefghij", 9, 2, -9); 2332 test("abcdefghij", 0, 9, "abcdefghij", 10, 0, 9); 2333 test("abcdefghij", 0, 9, "abcdefghij", 10, 1, 9); 2334 test("abcdefghij", 0, 9, "abcdefghij", 11, 0, 0); 2335 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 0, 9); 2336 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 1, 8); 2337 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 10, -1); 2338 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 19, -10); 2339} 2340 2341void test22() 2342{ 2343 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 20, -11); 2344 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 21, -11); 2345 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 0, 9); 2346 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 1, -1); 2347 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 9, -1); 2348 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 18, -1); 2349 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 19, -1); 2350 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 20, -1); 2351 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 0, 9); 2352 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 1, -10); 2353 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 5, -10); 2354 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 9, -10); 2355 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 10, -10); 2356 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 11, -10); 2357 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, 0, 9); 2358 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, 1, -19); 2359 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, 2, -19); 2360 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 20, 0, 9); 2361 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 20, 1, 9); 2362 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 21, 0, 0); 2363 test("abcdefghij", 0, 10, "", 0, 0, 10); 2364 test("abcdefghij", 0, 10, "", 0, 1, 10); 2365 test("abcdefghij", 0, 10, "", 1, 0, 0); 2366 test("abcdefghij", 0, 10, "abcde", 0, 0, 10); 2367 test("abcdefghij", 0, 10, "abcde", 0, 1, 9); 2368 test("abcdefghij", 0, 10, "abcde", 0, 2, 8); 2369 test("abcdefghij", 0, 10, "abcde", 0, 4, 6); 2370 test("abcdefghij", 0, 10, "abcde", 0, 5, 5); 2371 test("abcdefghij", 0, 10, "abcde", 0, 6, 5); 2372 test("abcdefghij", 0, 10, "abcde", 1, 0, 10); 2373 test("abcdefghij", 0, 10, "abcde", 1, 1, -1); 2374 test("abcdefghij", 0, 10, "abcde", 1, 2, -1); 2375 test("abcdefghij", 0, 10, "abcde", 1, 3, -1); 2376 test("abcdefghij", 0, 10, "abcde", 1, 4, -1); 2377 test("abcdefghij", 0, 10, "abcde", 1, 5, -1); 2378 test("abcdefghij", 0, 10, "abcde", 2, 0, 10); 2379 test("abcdefghij", 0, 10, "abcde", 2, 1, -2); 2380 test("abcdefghij", 0, 10, "abcde", 2, 2, -2); 2381 test("abcdefghij", 0, 10, "abcde", 2, 3, -2); 2382 test("abcdefghij", 0, 10, "abcde", 2, 4, -2); 2383 test("abcdefghij", 0, 10, "abcde", 4, 0, 10); 2384 test("abcdefghij", 0, 10, "abcde", 4, 1, -4); 2385 test("abcdefghij", 0, 10, "abcde", 4, 2, -4); 2386 test("abcdefghij", 0, 10, "abcde", 5, 0, 10); 2387 test("abcdefghij", 0, 10, "abcde", 5, 1, 10); 2388 test("abcdefghij", 0, 10, "abcde", 6, 0, 0); 2389 test("abcdefghij", 0, 10, "abcdefghij", 0, 0, 10); 2390 test("abcdefghij", 0, 10, "abcdefghij", 0, 1, 9); 2391 test("abcdefghij", 0, 10, "abcdefghij", 0, 5, 5); 2392 test("abcdefghij", 0, 10, "abcdefghij", 0, 9, 1); 2393 test("abcdefghij", 0, 10, "abcdefghij", 0, 10, 0); 2394 test("abcdefghij", 0, 10, "abcdefghij", 0, 11, 0); 2395 test("abcdefghij", 0, 10, "abcdefghij", 1, 0, 10); 2396 test("abcdefghij", 0, 10, "abcdefghij", 1, 1, -1); 2397 test("abcdefghij", 0, 10, "abcdefghij", 1, 4, -1); 2398 test("abcdefghij", 0, 10, "abcdefghij", 1, 8, -1); 2399 test("abcdefghij", 0, 10, "abcdefghij", 1, 9, -1); 2400 test("abcdefghij", 0, 10, "abcdefghij", 1, 10, -1); 2401 test("abcdefghij", 0, 10, "abcdefghij", 5, 0, 10); 2402 test("abcdefghij", 0, 10, "abcdefghij", 5, 1, -5); 2403 test("abcdefghij", 0, 10, "abcdefghij", 5, 2, -5); 2404 test("abcdefghij", 0, 10, "abcdefghij", 5, 4, -5); 2405 test("abcdefghij", 0, 10, "abcdefghij", 5, 5, -5); 2406 test("abcdefghij", 0, 10, "abcdefghij", 5, 6, -5); 2407 test("abcdefghij", 0, 10, "abcdefghij", 9, 0, 10); 2408 test("abcdefghij", 0, 10, "abcdefghij", 9, 1, -9); 2409 test("abcdefghij", 0, 10, "abcdefghij", 9, 2, -9); 2410 test("abcdefghij", 0, 10, "abcdefghij", 10, 0, 10); 2411 test("abcdefghij", 0, 10, "abcdefghij", 10, 1, 10); 2412 test("abcdefghij", 0, 10, "abcdefghij", 11, 0, 0); 2413 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 0, 10); 2414 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 1, 9); 2415 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 10, 0); 2416 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 19, -9); 2417 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 20, -10); 2418 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 21, -10); 2419 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 0, 10); 2420 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 1, -1); 2421 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 9, -1); 2422 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 18, -1); 2423 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 19, -1); 2424 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 20, -1); 2425 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 0, 10); 2426 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 1, -10); 2427 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 5, -10); 2428 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 9, -10); 2429 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 10, -10); 2430 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 11, -10); 2431 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, 0, 10); 2432 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, 1, -19); 2433 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, 2, -19); 2434 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 20, 0, 10); 2435 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 20, 1, 10); 2436 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 21, 0, 0); 2437 test("abcdefghij", 0, 11, "", 0, 0, 10); 2438 test("abcdefghij", 0, 11, "", 0, 1, 10); 2439 test("abcdefghij", 0, 11, "", 1, 0, 0); 2440 test("abcdefghij", 0, 11, "abcde", 0, 0, 10); 2441 test("abcdefghij", 0, 11, "abcde", 0, 1, 9); 2442 test("abcdefghij", 0, 11, "abcde", 0, 2, 8); 2443} 2444 2445void test23() 2446{ 2447 test("abcdefghij", 0, 11, "abcde", 0, 4, 6); 2448 test("abcdefghij", 0, 11, "abcde", 0, 5, 5); 2449 test("abcdefghij", 0, 11, "abcde", 0, 6, 5); 2450 test("abcdefghij", 0, 11, "abcde", 1, 0, 10); 2451 test("abcdefghij", 0, 11, "abcde", 1, 1, -1); 2452 test("abcdefghij", 0, 11, "abcde", 1, 2, -1); 2453 test("abcdefghij", 0, 11, "abcde", 1, 3, -1); 2454 test("abcdefghij", 0, 11, "abcde", 1, 4, -1); 2455 test("abcdefghij", 0, 11, "abcde", 1, 5, -1); 2456 test("abcdefghij", 0, 11, "abcde", 2, 0, 10); 2457 test("abcdefghij", 0, 11, "abcde", 2, 1, -2); 2458 test("abcdefghij", 0, 11, "abcde", 2, 2, -2); 2459 test("abcdefghij", 0, 11, "abcde", 2, 3, -2); 2460 test("abcdefghij", 0, 11, "abcde", 2, 4, -2); 2461 test("abcdefghij", 0, 11, "abcde", 4, 0, 10); 2462 test("abcdefghij", 0, 11, "abcde", 4, 1, -4); 2463 test("abcdefghij", 0, 11, "abcde", 4, 2, -4); 2464 test("abcdefghij", 0, 11, "abcde", 5, 0, 10); 2465 test("abcdefghij", 0, 11, "abcde", 5, 1, 10); 2466 test("abcdefghij", 0, 11, "abcde", 6, 0, 0); 2467 test("abcdefghij", 0, 11, "abcdefghij", 0, 0, 10); 2468 test("abcdefghij", 0, 11, "abcdefghij", 0, 1, 9); 2469 test("abcdefghij", 0, 11, "abcdefghij", 0, 5, 5); 2470 test("abcdefghij", 0, 11, "abcdefghij", 0, 9, 1); 2471 test("abcdefghij", 0, 11, "abcdefghij", 0, 10, 0); 2472 test("abcdefghij", 0, 11, "abcdefghij", 0, 11, 0); 2473 test("abcdefghij", 0, 11, "abcdefghij", 1, 0, 10); 2474 test("abcdefghij", 0, 11, "abcdefghij", 1, 1, -1); 2475 test("abcdefghij", 0, 11, "abcdefghij", 1, 4, -1); 2476 test("abcdefghij", 0, 11, "abcdefghij", 1, 8, -1); 2477 test("abcdefghij", 0, 11, "abcdefghij", 1, 9, -1); 2478 test("abcdefghij", 0, 11, "abcdefghij", 1, 10, -1); 2479 test("abcdefghij", 0, 11, "abcdefghij", 5, 0, 10); 2480 test("abcdefghij", 0, 11, "abcdefghij", 5, 1, -5); 2481 test("abcdefghij", 0, 11, "abcdefghij", 5, 2, -5); 2482 test("abcdefghij", 0, 11, "abcdefghij", 5, 4, -5); 2483 test("abcdefghij", 0, 11, "abcdefghij", 5, 5, -5); 2484 test("abcdefghij", 0, 11, "abcdefghij", 5, 6, -5); 2485 test("abcdefghij", 0, 11, "abcdefghij", 9, 0, 10); 2486 test("abcdefghij", 0, 11, "abcdefghij", 9, 1, -9); 2487 test("abcdefghij", 0, 11, "abcdefghij", 9, 2, -9); 2488 test("abcdefghij", 0, 11, "abcdefghij", 10, 0, 10); 2489 test("abcdefghij", 0, 11, "abcdefghij", 10, 1, 10); 2490 test("abcdefghij", 0, 11, "abcdefghij", 11, 0, 0); 2491 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 0, 10); 2492 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 1, 9); 2493 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 10, 0); 2494 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 19, -9); 2495 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 20, -10); 2496 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 21, -10); 2497 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 0, 10); 2498 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 1, -1); 2499 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 9, -1); 2500 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 18, -1); 2501 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 19, -1); 2502 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 20, -1); 2503 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 0, 10); 2504 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 1, -10); 2505 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 5, -10); 2506 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 9, -10); 2507 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 10, -10); 2508 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 11, -10); 2509 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, 0, 10); 2510 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, 1, -19); 2511 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, 2, -19); 2512 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 20, 0, 10); 2513 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 20, 1, 10); 2514 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 21, 0, 0); 2515 test("abcdefghij", 1, 0, "", 0, 0, 0); 2516 test("abcdefghij", 1, 0, "", 0, 1, 0); 2517 test("abcdefghij", 1, 0, "", 1, 0, 0); 2518 test("abcdefghij", 1, 0, "abcde", 0, 0, 0); 2519 test("abcdefghij", 1, 0, "abcde", 0, 1, -1); 2520 test("abcdefghij", 1, 0, "abcde", 0, 2, -2); 2521 test("abcdefghij", 1, 0, "abcde", 0, 4, -4); 2522 test("abcdefghij", 1, 0, "abcde", 0, 5, -5); 2523 test("abcdefghij", 1, 0, "abcde", 0, 6, -5); 2524 test("abcdefghij", 1, 0, "abcde", 1, 0, 0); 2525 test("abcdefghij", 1, 0, "abcde", 1, 1, -1); 2526 test("abcdefghij", 1, 0, "abcde", 1, 2, -2); 2527 test("abcdefghij", 1, 0, "abcde", 1, 3, -3); 2528 test("abcdefghij", 1, 0, "abcde", 1, 4, -4); 2529 test("abcdefghij", 1, 0, "abcde", 1, 5, -4); 2530 test("abcdefghij", 1, 0, "abcde", 2, 0, 0); 2531 test("abcdefghij", 1, 0, "abcde", 2, 1, -1); 2532 test("abcdefghij", 1, 0, "abcde", 2, 2, -2); 2533 test("abcdefghij", 1, 0, "abcde", 2, 3, -3); 2534 test("abcdefghij", 1, 0, "abcde", 2, 4, -3); 2535 test("abcdefghij", 1, 0, "abcde", 4, 0, 0); 2536 test("abcdefghij", 1, 0, "abcde", 4, 1, -1); 2537 test("abcdefghij", 1, 0, "abcde", 4, 2, -1); 2538 test("abcdefghij", 1, 0, "abcde", 5, 0, 0); 2539 test("abcdefghij", 1, 0, "abcde", 5, 1, 0); 2540 test("abcdefghij", 1, 0, "abcde", 6, 0, 0); 2541 test("abcdefghij", 1, 0, "abcdefghij", 0, 0, 0); 2542 test("abcdefghij", 1, 0, "abcdefghij", 0, 1, -1); 2543 test("abcdefghij", 1, 0, "abcdefghij", 0, 5, -5); 2544 test("abcdefghij", 1, 0, "abcdefghij", 0, 9, -9); 2545 test("abcdefghij", 1, 0, "abcdefghij", 0, 10, -10); 2546 test("abcdefghij", 1, 0, "abcdefghij", 0, 11, -10); 2547} 2548 2549void test24() 2550{ 2551 test("abcdefghij", 1, 0, "abcdefghij", 1, 0, 0); 2552 test("abcdefghij", 1, 0, "abcdefghij", 1, 1, -1); 2553 test("abcdefghij", 1, 0, "abcdefghij", 1, 4, -4); 2554 test("abcdefghij", 1, 0, "abcdefghij", 1, 8, -8); 2555 test("abcdefghij", 1, 0, "abcdefghij", 1, 9, -9); 2556 test("abcdefghij", 1, 0, "abcdefghij", 1, 10, -9); 2557 test("abcdefghij", 1, 0, "abcdefghij", 5, 0, 0); 2558 test("abcdefghij", 1, 0, "abcdefghij", 5, 1, -1); 2559 test("abcdefghij", 1, 0, "abcdefghij", 5, 2, -2); 2560 test("abcdefghij", 1, 0, "abcdefghij", 5, 4, -4); 2561 test("abcdefghij", 1, 0, "abcdefghij", 5, 5, -5); 2562 test("abcdefghij", 1, 0, "abcdefghij", 5, 6, -5); 2563 test("abcdefghij", 1, 0, "abcdefghij", 9, 0, 0); 2564 test("abcdefghij", 1, 0, "abcdefghij", 9, 1, -1); 2565 test("abcdefghij", 1, 0, "abcdefghij", 9, 2, -1); 2566 test("abcdefghij", 1, 0, "abcdefghij", 10, 0, 0); 2567 test("abcdefghij", 1, 0, "abcdefghij", 10, 1, 0); 2568 test("abcdefghij", 1, 0, "abcdefghij", 11, 0, 0); 2569 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0); 2570 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 1, -1); 2571 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 10, -10); 2572 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 19, -19); 2573 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 20, -20); 2574 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 21, -20); 2575 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0); 2576 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 1, -1); 2577 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 9, -9); 2578 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 18, -18); 2579 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 19, -19); 2580 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 20, -19); 2581 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0); 2582 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 1, -1); 2583 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 5, -5); 2584 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 9, -9); 2585 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 10, -10); 2586 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 11, -10); 2587 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0); 2588 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, 1, -1); 2589 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, 2, -1); 2590 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0); 2591 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0); 2592 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0); 2593 test("abcdefghij", 1, 1, "", 0, 0, 1); 2594 test("abcdefghij", 1, 1, "", 0, 1, 1); 2595 test("abcdefghij", 1, 1, "", 1, 0, 0); 2596 test("abcdefghij", 1, 1, "abcde", 0, 0, 1); 2597 test("abcdefghij", 1, 1, "abcde", 0, 1, 1); 2598 test("abcdefghij", 1, 1, "abcde", 0, 2, 1); 2599 test("abcdefghij", 1, 1, "abcde", 0, 4, 1); 2600 test("abcdefghij", 1, 1, "abcde", 0, 5, 1); 2601 test("abcdefghij", 1, 1, "abcde", 0, 6, 1); 2602 test("abcdefghij", 1, 1, "abcde", 1, 0, 1); 2603 test("abcdefghij", 1, 1, "abcde", 1, 1, 0); 2604 test("abcdefghij", 1, 1, "abcde", 1, 2, -1); 2605 test("abcdefghij", 1, 1, "abcde", 1, 3, -2); 2606 test("abcdefghij", 1, 1, "abcde", 1, 4, -3); 2607 test("abcdefghij", 1, 1, "abcde", 1, 5, -3); 2608 test("abcdefghij", 1, 1, "abcde", 2, 0, 1); 2609 test("abcdefghij", 1, 1, "abcde", 2, 1, -1); 2610 test("abcdefghij", 1, 1, "abcde", 2, 2, -1); 2611 test("abcdefghij", 1, 1, "abcde", 2, 3, -1); 2612 test("abcdefghij", 1, 1, "abcde", 2, 4, -1); 2613 test("abcdefghij", 1, 1, "abcde", 4, 0, 1); 2614 test("abcdefghij", 1, 1, "abcde", 4, 1, -3); 2615 test("abcdefghij", 1, 1, "abcde", 4, 2, -3); 2616 test("abcdefghij", 1, 1, "abcde", 5, 0, 1); 2617 test("abcdefghij", 1, 1, "abcde", 5, 1, 1); 2618 test("abcdefghij", 1, 1, "abcde", 6, 0, 0); 2619 test("abcdefghij", 1, 1, "abcdefghij", 0, 0, 1); 2620 test("abcdefghij", 1, 1, "abcdefghij", 0, 1, 1); 2621 test("abcdefghij", 1, 1, "abcdefghij", 0, 5, 1); 2622 test("abcdefghij", 1, 1, "abcdefghij", 0, 9, 1); 2623 test("abcdefghij", 1, 1, "abcdefghij", 0, 10, 1); 2624 test("abcdefghij", 1, 1, "abcdefghij", 0, 11, 1); 2625 test("abcdefghij", 1, 1, "abcdefghij", 1, 0, 1); 2626 test("abcdefghij", 1, 1, "abcdefghij", 1, 1, 0); 2627 test("abcdefghij", 1, 1, "abcdefghij", 1, 4, -3); 2628 test("abcdefghij", 1, 1, "abcdefghij", 1, 8, -7); 2629 test("abcdefghij", 1, 1, "abcdefghij", 1, 9, -8); 2630 test("abcdefghij", 1, 1, "abcdefghij", 1, 10, -8); 2631 test("abcdefghij", 1, 1, "abcdefghij", 5, 0, 1); 2632 test("abcdefghij", 1, 1, "abcdefghij", 5, 1, -4); 2633 test("abcdefghij", 1, 1, "abcdefghij", 5, 2, -4); 2634 test("abcdefghij", 1, 1, "abcdefghij", 5, 4, -4); 2635 test("abcdefghij", 1, 1, "abcdefghij", 5, 5, -4); 2636 test("abcdefghij", 1, 1, "abcdefghij", 5, 6, -4); 2637 test("abcdefghij", 1, 1, "abcdefghij", 9, 0, 1); 2638 test("abcdefghij", 1, 1, "abcdefghij", 9, 1, -8); 2639 test("abcdefghij", 1, 1, "abcdefghij", 9, 2, -8); 2640 test("abcdefghij", 1, 1, "abcdefghij", 10, 0, 1); 2641 test("abcdefghij", 1, 1, "abcdefghij", 10, 1, 1); 2642 test("abcdefghij", 1, 1, "abcdefghij", 11, 0, 0); 2643 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 0, 1); 2644 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 1, 1); 2645 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 10, 1); 2646 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 19, 1); 2647 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 20, 1); 2648 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 21, 1); 2649 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 0, 1); 2650 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 1, 0); 2651} 2652 2653void test25() 2654{ 2655 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 9, -8); 2656 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 18, -17); 2657 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 19, -18); 2658 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 20, -18); 2659 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 0, 1); 2660 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 1, -9); 2661 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 5, -9); 2662 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 9, -9); 2663 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 10, -9); 2664 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 11, -9); 2665 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 0, 1); 2666 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 1, -18); 2667 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 2, -18); 2668 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 20, 0, 1); 2669 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 20, 1, 1); 2670 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 21, 0, 0); 2671 test("abcdefghij", 1, 4, "", 0, 0, 4); 2672 test("abcdefghij", 1, 4, "", 0, 1, 4); 2673 test("abcdefghij", 1, 4, "", 1, 0, 0); 2674 test("abcdefghij", 1, 4, "abcde", 0, 0, 4); 2675 test("abcdefghij", 1, 4, "abcde", 0, 1, 1); 2676 test("abcdefghij", 1, 4, "abcde", 0, 2, 1); 2677 test("abcdefghij", 1, 4, "abcde", 0, 4, 1); 2678 test("abcdefghij", 1, 4, "abcde", 0, 5, 1); 2679 test("abcdefghij", 1, 4, "abcde", 0, 6, 1); 2680 test("abcdefghij", 1, 4, "abcde", 1, 0, 4); 2681 test("abcdefghij", 1, 4, "abcde", 1, 1, 3); 2682 test("abcdefghij", 1, 4, "abcde", 1, 2, 2); 2683 test("abcdefghij", 1, 4, "abcde", 1, 3, 1); 2684 test("abcdefghij", 1, 4, "abcde", 1, 4, 0); 2685 test("abcdefghij", 1, 4, "abcde", 1, 5, 0); 2686 test("abcdefghij", 1, 4, "abcde", 2, 0, 4); 2687 test("abcdefghij", 1, 4, "abcde", 2, 1, -1); 2688 test("abcdefghij", 1, 4, "abcde", 2, 2, -1); 2689 test("abcdefghij", 1, 4, "abcde", 2, 3, -1); 2690 test("abcdefghij", 1, 4, "abcde", 2, 4, -1); 2691 test("abcdefghij", 1, 4, "abcde", 4, 0, 4); 2692 test("abcdefghij", 1, 4, "abcde", 4, 1, -3); 2693 test("abcdefghij", 1, 4, "abcde", 4, 2, -3); 2694 test("abcdefghij", 1, 4, "abcde", 5, 0, 4); 2695 test("abcdefghij", 1, 4, "abcde", 5, 1, 4); 2696 test("abcdefghij", 1, 4, "abcde", 6, 0, 0); 2697 test("abcdefghij", 1, 4, "abcdefghij", 0, 0, 4); 2698 test("abcdefghij", 1, 4, "abcdefghij", 0, 1, 1); 2699 test("abcdefghij", 1, 4, "abcdefghij", 0, 5, 1); 2700 test("abcdefghij", 1, 4, "abcdefghij", 0, 9, 1); 2701 test("abcdefghij", 1, 4, "abcdefghij", 0, 10, 1); 2702 test("abcdefghij", 1, 4, "abcdefghij", 0, 11, 1); 2703 test("abcdefghij", 1, 4, "abcdefghij", 1, 0, 4); 2704 test("abcdefghij", 1, 4, "abcdefghij", 1, 1, 3); 2705 test("abcdefghij", 1, 4, "abcdefghij", 1, 4, 0); 2706 test("abcdefghij", 1, 4, "abcdefghij", 1, 8, -4); 2707 test("abcdefghij", 1, 4, "abcdefghij", 1, 9, -5); 2708 test("abcdefghij", 1, 4, "abcdefghij", 1, 10, -5); 2709 test("abcdefghij", 1, 4, "abcdefghij", 5, 0, 4); 2710 test("abcdefghij", 1, 4, "abcdefghij", 5, 1, -4); 2711 test("abcdefghij", 1, 4, "abcdefghij", 5, 2, -4); 2712 test("abcdefghij", 1, 4, "abcdefghij", 5, 4, -4); 2713 test("abcdefghij", 1, 4, "abcdefghij", 5, 5, -4); 2714 test("abcdefghij", 1, 4, "abcdefghij", 5, 6, -4); 2715 test("abcdefghij", 1, 4, "abcdefghij", 9, 0, 4); 2716 test("abcdefghij", 1, 4, "abcdefghij", 9, 1, -8); 2717 test("abcdefghij", 1, 4, "abcdefghij", 9, 2, -8); 2718 test("abcdefghij", 1, 4, "abcdefghij", 10, 0, 4); 2719 test("abcdefghij", 1, 4, "abcdefghij", 10, 1, 4); 2720 test("abcdefghij", 1, 4, "abcdefghij", 11, 0, 0); 2721 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 0, 4); 2722 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 1, 1); 2723 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 10, 1); 2724 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 19, 1); 2725 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 20, 1); 2726 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 21, 1); 2727 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 0, 4); 2728 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 1, 3); 2729 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 9, -5); 2730 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 18, -14); 2731 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 19, -15); 2732 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 20, -15); 2733 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 0, 4); 2734 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 1, -9); 2735 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 5, -9); 2736 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 9, -9); 2737 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 10, -9); 2738 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 11, -9); 2739 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 0, 4); 2740 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 1, -18); 2741 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 2, -18); 2742 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 20, 0, 4); 2743 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 20, 1, 4); 2744 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 21, 0, 0); 2745 test("abcdefghij", 1, 8, "", 0, 0, 8); 2746 test("abcdefghij", 1, 8, "", 0, 1, 8); 2747 test("abcdefghij", 1, 8, "", 1, 0, 0); 2748 test("abcdefghij", 1, 8, "abcde", 0, 0, 8); 2749 test("abcdefghij", 1, 8, "abcde", 0, 1, 1); 2750 test("abcdefghij", 1, 8, "abcde", 0, 2, 1); 2751 test("abcdefghij", 1, 8, "abcde", 0, 4, 1); 2752 test("abcdefghij", 1, 8, "abcde", 0, 5, 1); 2753 test("abcdefghij", 1, 8, "abcde", 0, 6, 1); 2754 test("abcdefghij", 1, 8, "abcde", 1, 0, 8); 2755} 2756 2757void test26() 2758{ 2759 test("abcdefghij", 1, 8, "abcde", 1, 1, 7); 2760 test("abcdefghij", 1, 8, "abcde", 1, 2, 6); 2761 test("abcdefghij", 1, 8, "abcde", 1, 3, 5); 2762 test("abcdefghij", 1, 8, "abcde", 1, 4, 4); 2763 test("abcdefghij", 1, 8, "abcde", 1, 5, 4); 2764 test("abcdefghij", 1, 8, "abcde", 2, 0, 8); 2765 test("abcdefghij", 1, 8, "abcde", 2, 1, -1); 2766 test("abcdefghij", 1, 8, "abcde", 2, 2, -1); 2767 test("abcdefghij", 1, 8, "abcde", 2, 3, -1); 2768 test("abcdefghij", 1, 8, "abcde", 2, 4, -1); 2769 test("abcdefghij", 1, 8, "abcde", 4, 0, 8); 2770 test("abcdefghij", 1, 8, "abcde", 4, 1, -3); 2771 test("abcdefghij", 1, 8, "abcde", 4, 2, -3); 2772 test("abcdefghij", 1, 8, "abcde", 5, 0, 8); 2773 test("abcdefghij", 1, 8, "abcde", 5, 1, 8); 2774 test("abcdefghij", 1, 8, "abcde", 6, 0, 0); 2775 test("abcdefghij", 1, 8, "abcdefghij", 0, 0, 8); 2776 test("abcdefghij", 1, 8, "abcdefghij", 0, 1, 1); 2777 test("abcdefghij", 1, 8, "abcdefghij", 0, 5, 1); 2778 test("abcdefghij", 1, 8, "abcdefghij", 0, 9, 1); 2779 test("abcdefghij", 1, 8, "abcdefghij", 0, 10, 1); 2780 test("abcdefghij", 1, 8, "abcdefghij", 0, 11, 1); 2781 test("abcdefghij", 1, 8, "abcdefghij", 1, 0, 8); 2782 test("abcdefghij", 1, 8, "abcdefghij", 1, 1, 7); 2783 test("abcdefghij", 1, 8, "abcdefghij", 1, 4, 4); 2784 test("abcdefghij", 1, 8, "abcdefghij", 1, 8, 0); 2785 test("abcdefghij", 1, 8, "abcdefghij", 1, 9, -1); 2786 test("abcdefghij", 1, 8, "abcdefghij", 1, 10, -1); 2787 test("abcdefghij", 1, 8, "abcdefghij", 5, 0, 8); 2788 test("abcdefghij", 1, 8, "abcdefghij", 5, 1, -4); 2789 test("abcdefghij", 1, 8, "abcdefghij", 5, 2, -4); 2790 test("abcdefghij", 1, 8, "abcdefghij", 5, 4, -4); 2791 test("abcdefghij", 1, 8, "abcdefghij", 5, 5, -4); 2792 test("abcdefghij", 1, 8, "abcdefghij", 5, 6, -4); 2793 test("abcdefghij", 1, 8, "abcdefghij", 9, 0, 8); 2794 test("abcdefghij", 1, 8, "abcdefghij", 9, 1, -8); 2795 test("abcdefghij", 1, 8, "abcdefghij", 9, 2, -8); 2796 test("abcdefghij", 1, 8, "abcdefghij", 10, 0, 8); 2797 test("abcdefghij", 1, 8, "abcdefghij", 10, 1, 8); 2798 test("abcdefghij", 1, 8, "abcdefghij", 11, 0, 0); 2799 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 0, 8); 2800 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 1, 1); 2801 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 10, 1); 2802 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 19, 1); 2803 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 20, 1); 2804 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 21, 1); 2805 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 0, 8); 2806 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 1, 7); 2807 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 9, -1); 2808 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 18, -10); 2809 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 19, -11); 2810 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 20, -11); 2811 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 0, 8); 2812 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 1, -9); 2813 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 5, -9); 2814 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 9, -9); 2815 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 10, -9); 2816 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 11, -9); 2817 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 0, 8); 2818 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 1, -18); 2819 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 2, -18); 2820 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 20, 0, 8); 2821 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 20, 1, 8); 2822 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 21, 0, 0); 2823 test("abcdefghij", 1, 9, "", 0, 0, 9); 2824 test("abcdefghij", 1, 9, "", 0, 1, 9); 2825 test("abcdefghij", 1, 9, "", 1, 0, 0); 2826 test("abcdefghij", 1, 9, "abcde", 0, 0, 9); 2827 test("abcdefghij", 1, 9, "abcde", 0, 1, 1); 2828 test("abcdefghij", 1, 9, "abcde", 0, 2, 1); 2829 test("abcdefghij", 1, 9, "abcde", 0, 4, 1); 2830 test("abcdefghij", 1, 9, "abcde", 0, 5, 1); 2831 test("abcdefghij", 1, 9, "abcde", 0, 6, 1); 2832 test("abcdefghij", 1, 9, "abcde", 1, 0, 9); 2833 test("abcdefghij", 1, 9, "abcde", 1, 1, 8); 2834 test("abcdefghij", 1, 9, "abcde", 1, 2, 7); 2835 test("abcdefghij", 1, 9, "abcde", 1, 3, 6); 2836 test("abcdefghij", 1, 9, "abcde", 1, 4, 5); 2837 test("abcdefghij", 1, 9, "abcde", 1, 5, 5); 2838 test("abcdefghij", 1, 9, "abcde", 2, 0, 9); 2839 test("abcdefghij", 1, 9, "abcde", 2, 1, -1); 2840 test("abcdefghij", 1, 9, "abcde", 2, 2, -1); 2841 test("abcdefghij", 1, 9, "abcde", 2, 3, -1); 2842 test("abcdefghij", 1, 9, "abcde", 2, 4, -1); 2843 test("abcdefghij", 1, 9, "abcde", 4, 0, 9); 2844 test("abcdefghij", 1, 9, "abcde", 4, 1, -3); 2845 test("abcdefghij", 1, 9, "abcde", 4, 2, -3); 2846 test("abcdefghij", 1, 9, "abcde", 5, 0, 9); 2847 test("abcdefghij", 1, 9, "abcde", 5, 1, 9); 2848 test("abcdefghij", 1, 9, "abcde", 6, 0, 0); 2849 test("abcdefghij", 1, 9, "abcdefghij", 0, 0, 9); 2850 test("abcdefghij", 1, 9, "abcdefghij", 0, 1, 1); 2851 test("abcdefghij", 1, 9, "abcdefghij", 0, 5, 1); 2852 test("abcdefghij", 1, 9, "abcdefghij", 0, 9, 1); 2853 test("abcdefghij", 1, 9, "abcdefghij", 0, 10, 1); 2854 test("abcdefghij", 1, 9, "abcdefghij", 0, 11, 1); 2855 test("abcdefghij", 1, 9, "abcdefghij", 1, 0, 9); 2856 test("abcdefghij", 1, 9, "abcdefghij", 1, 1, 8); 2857 test("abcdefghij", 1, 9, "abcdefghij", 1, 4, 5); 2858 test("abcdefghij", 1, 9, "abcdefghij", 1, 8, 1); 2859} 2860 2861void test27() 2862{ 2863 test("abcdefghij", 1, 9, "abcdefghij", 1, 9, 0); 2864 test("abcdefghij", 1, 9, "abcdefghij", 1, 10, 0); 2865 test("abcdefghij", 1, 9, "abcdefghij", 5, 0, 9); 2866 test("abcdefghij", 1, 9, "abcdefghij", 5, 1, -4); 2867 test("abcdefghij", 1, 9, "abcdefghij", 5, 2, -4); 2868 test("abcdefghij", 1, 9, "abcdefghij", 5, 4, -4); 2869 test("abcdefghij", 1, 9, "abcdefghij", 5, 5, -4); 2870 test("abcdefghij", 1, 9, "abcdefghij", 5, 6, -4); 2871 test("abcdefghij", 1, 9, "abcdefghij", 9, 0, 9); 2872 test("abcdefghij", 1, 9, "abcdefghij", 9, 1, -8); 2873 test("abcdefghij", 1, 9, "abcdefghij", 9, 2, -8); 2874 test("abcdefghij", 1, 9, "abcdefghij", 10, 0, 9); 2875 test("abcdefghij", 1, 9, "abcdefghij", 10, 1, 9); 2876 test("abcdefghij", 1, 9, "abcdefghij", 11, 0, 0); 2877 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 0, 9); 2878 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 1, 1); 2879 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 10, 1); 2880 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 19, 1); 2881 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 20, 1); 2882 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 21, 1); 2883 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 0, 9); 2884 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 1, 8); 2885 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 9, 0); 2886 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 18, -9); 2887 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 19, -10); 2888 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 20, -10); 2889 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 0, 9); 2890 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 1, -9); 2891 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 5, -9); 2892 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 9, -9); 2893 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 10, -9); 2894 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 11, -9); 2895 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 0, 9); 2896 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 1, -18); 2897 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 2, -18); 2898 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 20, 0, 9); 2899 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 20, 1, 9); 2900 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 21, 0, 0); 2901 test("abcdefghij", 1, 10, "", 0, 0, 9); 2902 test("abcdefghij", 1, 10, "", 0, 1, 9); 2903 test("abcdefghij", 1, 10, "", 1, 0, 0); 2904 test("abcdefghij", 1, 10, "abcde", 0, 0, 9); 2905 test("abcdefghij", 1, 10, "abcde", 0, 1, 1); 2906 test("abcdefghij", 1, 10, "abcde", 0, 2, 1); 2907 test("abcdefghij", 1, 10, "abcde", 0, 4, 1); 2908 test("abcdefghij", 1, 10, "abcde", 0, 5, 1); 2909 test("abcdefghij", 1, 10, "abcde", 0, 6, 1); 2910 test("abcdefghij", 1, 10, "abcde", 1, 0, 9); 2911 test("abcdefghij", 1, 10, "abcde", 1, 1, 8); 2912 test("abcdefghij", 1, 10, "abcde", 1, 2, 7); 2913 test("abcdefghij", 1, 10, "abcde", 1, 3, 6); 2914 test("abcdefghij", 1, 10, "abcde", 1, 4, 5); 2915 test("abcdefghij", 1, 10, "abcde", 1, 5, 5); 2916 test("abcdefghij", 1, 10, "abcde", 2, 0, 9); 2917 test("abcdefghij", 1, 10, "abcde", 2, 1, -1); 2918 test("abcdefghij", 1, 10, "abcde", 2, 2, -1); 2919 test("abcdefghij", 1, 10, "abcde", 2, 3, -1); 2920 test("abcdefghij", 1, 10, "abcde", 2, 4, -1); 2921 test("abcdefghij", 1, 10, "abcde", 4, 0, 9); 2922 test("abcdefghij", 1, 10, "abcde", 4, 1, -3); 2923 test("abcdefghij", 1, 10, "abcde", 4, 2, -3); 2924 test("abcdefghij", 1, 10, "abcde", 5, 0, 9); 2925 test("abcdefghij", 1, 10, "abcde", 5, 1, 9); 2926 test("abcdefghij", 1, 10, "abcde", 6, 0, 0); 2927 test("abcdefghij", 1, 10, "abcdefghij", 0, 0, 9); 2928 test("abcdefghij", 1, 10, "abcdefghij", 0, 1, 1); 2929 test("abcdefghij", 1, 10, "abcdefghij", 0, 5, 1); 2930 test("abcdefghij", 1, 10, "abcdefghij", 0, 9, 1); 2931 test("abcdefghij", 1, 10, "abcdefghij", 0, 10, 1); 2932 test("abcdefghij", 1, 10, "abcdefghij", 0, 11, 1); 2933 test("abcdefghij", 1, 10, "abcdefghij", 1, 0, 9); 2934 test("abcdefghij", 1, 10, "abcdefghij", 1, 1, 8); 2935 test("abcdefghij", 1, 10, "abcdefghij", 1, 4, 5); 2936 test("abcdefghij", 1, 10, "abcdefghij", 1, 8, 1); 2937 test("abcdefghij", 1, 10, "abcdefghij", 1, 9, 0); 2938 test("abcdefghij", 1, 10, "abcdefghij", 1, 10, 0); 2939 test("abcdefghij", 1, 10, "abcdefghij", 5, 0, 9); 2940 test("abcdefghij", 1, 10, "abcdefghij", 5, 1, -4); 2941 test("abcdefghij", 1, 10, "abcdefghij", 5, 2, -4); 2942 test("abcdefghij", 1, 10, "abcdefghij", 5, 4, -4); 2943 test("abcdefghij", 1, 10, "abcdefghij", 5, 5, -4); 2944 test("abcdefghij", 1, 10, "abcdefghij", 5, 6, -4); 2945 test("abcdefghij", 1, 10, "abcdefghij", 9, 0, 9); 2946 test("abcdefghij", 1, 10, "abcdefghij", 9, 1, -8); 2947 test("abcdefghij", 1, 10, "abcdefghij", 9, 2, -8); 2948 test("abcdefghij", 1, 10, "abcdefghij", 10, 0, 9); 2949 test("abcdefghij", 1, 10, "abcdefghij", 10, 1, 9); 2950 test("abcdefghij", 1, 10, "abcdefghij", 11, 0, 0); 2951 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 0, 9); 2952 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 1, 1); 2953 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 10, 1); 2954 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 19, 1); 2955 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 20, 1); 2956 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 21, 1); 2957 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 0, 9); 2958 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 1, 8); 2959 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 9, 0); 2960 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 18, -9); 2961 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 19, -10); 2962 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 20, -10); 2963} 2964 2965void test28() 2966{ 2967 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 0, 9); 2968 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 1, -9); 2969 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 5, -9); 2970 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 9, -9); 2971 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 10, -9); 2972 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 11, -9); 2973 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 0, 9); 2974 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 1, -18); 2975 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 2, -18); 2976 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 20, 0, 9); 2977 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 20, 1, 9); 2978 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 21, 0, 0); 2979 test("abcdefghij", 5, 0, "", 0, 0, 0); 2980 test("abcdefghij", 5, 0, "", 0, 1, 0); 2981 test("abcdefghij", 5, 0, "", 1, 0, 0); 2982 test("abcdefghij", 5, 0, "abcde", 0, 0, 0); 2983 test("abcdefghij", 5, 0, "abcde", 0, 1, -1); 2984 test("abcdefghij", 5, 0, "abcde", 0, 2, -2); 2985 test("abcdefghij", 5, 0, "abcde", 0, 4, -4); 2986 test("abcdefghij", 5, 0, "abcde", 0, 5, -5); 2987 test("abcdefghij", 5, 0, "abcde", 0, 6, -5); 2988 test("abcdefghij", 5, 0, "abcde", 1, 0, 0); 2989 test("abcdefghij", 5, 0, "abcde", 1, 1, -1); 2990 test("abcdefghij", 5, 0, "abcde", 1, 2, -2); 2991 test("abcdefghij", 5, 0, "abcde", 1, 3, -3); 2992 test("abcdefghij", 5, 0, "abcde", 1, 4, -4); 2993 test("abcdefghij", 5, 0, "abcde", 1, 5, -4); 2994 test("abcdefghij", 5, 0, "abcde", 2, 0, 0); 2995 test("abcdefghij", 5, 0, "abcde", 2, 1, -1); 2996 test("abcdefghij", 5, 0, "abcde", 2, 2, -2); 2997 test("abcdefghij", 5, 0, "abcde", 2, 3, -3); 2998 test("abcdefghij", 5, 0, "abcde", 2, 4, -3); 2999 test("abcdefghij", 5, 0, "abcde", 4, 0, 0); 3000 test("abcdefghij", 5, 0, "abcde", 4, 1, -1); 3001 test("abcdefghij", 5, 0, "abcde", 4, 2, -1); 3002 test("abcdefghij", 5, 0, "abcde", 5, 0, 0); 3003 test("abcdefghij", 5, 0, "abcde", 5, 1, 0); 3004 test("abcdefghij", 5, 0, "abcde", 6, 0, 0); 3005 test("abcdefghij", 5, 0, "abcdefghij", 0, 0, 0); 3006 test("abcdefghij", 5, 0, "abcdefghij", 0, 1, -1); 3007 test("abcdefghij", 5, 0, "abcdefghij", 0, 5, -5); 3008 test("abcdefghij", 5, 0, "abcdefghij", 0, 9, -9); 3009 test("abcdefghij", 5, 0, "abcdefghij", 0, 10, -10); 3010 test("abcdefghij", 5, 0, "abcdefghij", 0, 11, -10); 3011 test("abcdefghij", 5, 0, "abcdefghij", 1, 0, 0); 3012 test("abcdefghij", 5, 0, "abcdefghij", 1, 1, -1); 3013 test("abcdefghij", 5, 0, "abcdefghij", 1, 4, -4); 3014 test("abcdefghij", 5, 0, "abcdefghij", 1, 8, -8); 3015 test("abcdefghij", 5, 0, "abcdefghij", 1, 9, -9); 3016 test("abcdefghij", 5, 0, "abcdefghij", 1, 10, -9); 3017 test("abcdefghij", 5, 0, "abcdefghij", 5, 0, 0); 3018 test("abcdefghij", 5, 0, "abcdefghij", 5, 1, -1); 3019 test("abcdefghij", 5, 0, "abcdefghij", 5, 2, -2); 3020 test("abcdefghij", 5, 0, "abcdefghij", 5, 4, -4); 3021 test("abcdefghij", 5, 0, "abcdefghij", 5, 5, -5); 3022 test("abcdefghij", 5, 0, "abcdefghij", 5, 6, -5); 3023 test("abcdefghij", 5, 0, "abcdefghij", 9, 0, 0); 3024 test("abcdefghij", 5, 0, "abcdefghij", 9, 1, -1); 3025 test("abcdefghij", 5, 0, "abcdefghij", 9, 2, -1); 3026 test("abcdefghij", 5, 0, "abcdefghij", 10, 0, 0); 3027 test("abcdefghij", 5, 0, "abcdefghij", 10, 1, 0); 3028 test("abcdefghij", 5, 0, "abcdefghij", 11, 0, 0); 3029 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 0, 0); 3030 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 1, -1); 3031 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 10, -10); 3032 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 19, -19); 3033 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 20, -20); 3034 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 21, -20); 3035 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 0, 0); 3036 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 1, -1); 3037 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 9, -9); 3038 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 18, -18); 3039 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 19, -19); 3040 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 20, -19); 3041 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 0, 0); 3042 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 1, -1); 3043 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 5, -5); 3044 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 9, -9); 3045 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 10, -10); 3046 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 11, -10); 3047 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, 0, 0); 3048 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, 1, -1); 3049 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, 2, -1); 3050 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 20, 0, 0); 3051 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 20, 1, 0); 3052 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 21, 0, 0); 3053 test("abcdefghij", 5, 1, "", 0, 0, 1); 3054 test("abcdefghij", 5, 1, "", 0, 1, 1); 3055 test("abcdefghij", 5, 1, "", 1, 0, 0); 3056 test("abcdefghij", 5, 1, "abcde", 0, 0, 1); 3057 test("abcdefghij", 5, 1, "abcde", 0, 1, 5); 3058 test("abcdefghij", 5, 1, "abcde", 0, 2, 5); 3059 test("abcdefghij", 5, 1, "abcde", 0, 4, 5); 3060 test("abcdefghij", 5, 1, "abcde", 0, 5, 5); 3061 test("abcdefghij", 5, 1, "abcde", 0, 6, 5); 3062 test("abcdefghij", 5, 1, "abcde", 1, 0, 1); 3063 test("abcdefghij", 5, 1, "abcde", 1, 1, 4); 3064 test("abcdefghij", 5, 1, "abcde", 1, 2, 4); 3065 test("abcdefghij", 5, 1, "abcde", 1, 3, 4); 3066 test("abcdefghij", 5, 1, "abcde", 1, 4, 4); 3067} 3068 3069void test29() 3070{ 3071 test("abcdefghij", 5, 1, "abcde", 1, 5, 4); 3072 test("abcdefghij", 5, 1, "abcde", 2, 0, 1); 3073 test("abcdefghij", 5, 1, "abcde", 2, 1, 3); 3074 test("abcdefghij", 5, 1, "abcde", 2, 2, 3); 3075 test("abcdefghij", 5, 1, "abcde", 2, 3, 3); 3076 test("abcdefghij", 5, 1, "abcde", 2, 4, 3); 3077 test("abcdefghij", 5, 1, "abcde", 4, 0, 1); 3078 test("abcdefghij", 5, 1, "abcde", 4, 1, 1); 3079 test("abcdefghij", 5, 1, "abcde", 4, 2, 1); 3080 test("abcdefghij", 5, 1, "abcde", 5, 0, 1); 3081 test("abcdefghij", 5, 1, "abcde", 5, 1, 1); 3082 test("abcdefghij", 5, 1, "abcde", 6, 0, 0); 3083 test("abcdefghij", 5, 1, "abcdefghij", 0, 0, 1); 3084 test("abcdefghij", 5, 1, "abcdefghij", 0, 1, 5); 3085 test("abcdefghij", 5, 1, "abcdefghij", 0, 5, 5); 3086 test("abcdefghij", 5, 1, "abcdefghij", 0, 9, 5); 3087 test("abcdefghij", 5, 1, "abcdefghij", 0, 10, 5); 3088 test("abcdefghij", 5, 1, "abcdefghij", 0, 11, 5); 3089 test("abcdefghij", 5, 1, "abcdefghij", 1, 0, 1); 3090 test("abcdefghij", 5, 1, "abcdefghij", 1, 1, 4); 3091 test("abcdefghij", 5, 1, "abcdefghij", 1, 4, 4); 3092 test("abcdefghij", 5, 1, "abcdefghij", 1, 8, 4); 3093 test("abcdefghij", 5, 1, "abcdefghij", 1, 9, 4); 3094 test("abcdefghij", 5, 1, "abcdefghij", 1, 10, 4); 3095 test("abcdefghij", 5, 1, "abcdefghij", 5, 0, 1); 3096 test("abcdefghij", 5, 1, "abcdefghij", 5, 1, 0); 3097 test("abcdefghij", 5, 1, "abcdefghij", 5, 2, -1); 3098 test("abcdefghij", 5, 1, "abcdefghij", 5, 4, -3); 3099 test("abcdefghij", 5, 1, "abcdefghij", 5, 5, -4); 3100 test("abcdefghij", 5, 1, "abcdefghij", 5, 6, -4); 3101 test("abcdefghij", 5, 1, "abcdefghij", 9, 0, 1); 3102 test("abcdefghij", 5, 1, "abcdefghij", 9, 1, -4); 3103 test("abcdefghij", 5, 1, "abcdefghij", 9, 2, -4); 3104 test("abcdefghij", 5, 1, "abcdefghij", 10, 0, 1); 3105 test("abcdefghij", 5, 1, "abcdefghij", 10, 1, 1); 3106 test("abcdefghij", 5, 1, "abcdefghij", 11, 0, 0); 3107 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 0, 1); 3108 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 1, 5); 3109 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 10, 5); 3110 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 19, 5); 3111 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 20, 5); 3112 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 21, 5); 3113 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 0, 1); 3114 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 1, 4); 3115 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 9, 4); 3116 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 18, 4); 3117 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 19, 4); 3118 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 20, 4); 3119 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 0, 1); 3120 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 1, -5); 3121 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 5, -5); 3122 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 9, -5); 3123 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 10, -5); 3124 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 11, -5); 3125 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 0, 1); 3126 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 1, -14); 3127 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 2, -14); 3128 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 20, 0, 1); 3129 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 20, 1, 1); 3130 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 21, 0, 0); 3131 test("abcdefghij", 5, 2, "", 0, 0, 2); 3132 test("abcdefghij", 5, 2, "", 0, 1, 2); 3133 test("abcdefghij", 5, 2, "", 1, 0, 0); 3134 test("abcdefghij", 5, 2, "abcde", 0, 0, 2); 3135 test("abcdefghij", 5, 2, "abcde", 0, 1, 5); 3136 test("abcdefghij", 5, 2, "abcde", 0, 2, 5); 3137 test("abcdefghij", 5, 2, "abcde", 0, 4, 5); 3138 test("abcdefghij", 5, 2, "abcde", 0, 5, 5); 3139 test("abcdefghij", 5, 2, "abcde", 0, 6, 5); 3140 test("abcdefghij", 5, 2, "abcde", 1, 0, 2); 3141 test("abcdefghij", 5, 2, "abcde", 1, 1, 4); 3142 test("abcdefghij", 5, 2, "abcde", 1, 2, 4); 3143 test("abcdefghij", 5, 2, "abcde", 1, 3, 4); 3144 test("abcdefghij", 5, 2, "abcde", 1, 4, 4); 3145 test("abcdefghij", 5, 2, "abcde", 1, 5, 4); 3146 test("abcdefghij", 5, 2, "abcde", 2, 0, 2); 3147 test("abcdefghij", 5, 2, "abcde", 2, 1, 3); 3148 test("abcdefghij", 5, 2, "abcde", 2, 2, 3); 3149 test("abcdefghij", 5, 2, "abcde", 2, 3, 3); 3150 test("abcdefghij", 5, 2, "abcde", 2, 4, 3); 3151 test("abcdefghij", 5, 2, "abcde", 4, 0, 2); 3152 test("abcdefghij", 5, 2, "abcde", 4, 1, 1); 3153 test("abcdefghij", 5, 2, "abcde", 4, 2, 1); 3154 test("abcdefghij", 5, 2, "abcde", 5, 0, 2); 3155 test("abcdefghij", 5, 2, "abcde", 5, 1, 2); 3156 test("abcdefghij", 5, 2, "abcde", 6, 0, 0); 3157 test("abcdefghij", 5, 2, "abcdefghij", 0, 0, 2); 3158 test("abcdefghij", 5, 2, "abcdefghij", 0, 1, 5); 3159 test("abcdefghij", 5, 2, "abcdefghij", 0, 5, 5); 3160 test("abcdefghij", 5, 2, "abcdefghij", 0, 9, 5); 3161 test("abcdefghij", 5, 2, "abcdefghij", 0, 10, 5); 3162 test("abcdefghij", 5, 2, "abcdefghij", 0, 11, 5); 3163 test("abcdefghij", 5, 2, "abcdefghij", 1, 0, 2); 3164 test("abcdefghij", 5, 2, "abcdefghij", 1, 1, 4); 3165 test("abcdefghij", 5, 2, "abcdefghij", 1, 4, 4); 3166 test("abcdefghij", 5, 2, "abcdefghij", 1, 8, 4); 3167 test("abcdefghij", 5, 2, "abcdefghij", 1, 9, 4); 3168 test("abcdefghij", 5, 2, "abcdefghij", 1, 10, 4); 3169 test("abcdefghij", 5, 2, "abcdefghij", 5, 0, 2); 3170 test("abcdefghij", 5, 2, "abcdefghij", 5, 1, 1); 3171} 3172 3173void test30() 3174{ 3175 test("abcdefghij", 5, 2, "abcdefghij", 5, 2, 0); 3176 test("abcdefghij", 5, 2, "abcdefghij", 5, 4, -2); 3177 test("abcdefghij", 5, 2, "abcdefghij", 5, 5, -3); 3178 test("abcdefghij", 5, 2, "abcdefghij", 5, 6, -3); 3179 test("abcdefghij", 5, 2, "abcdefghij", 9, 0, 2); 3180 test("abcdefghij", 5, 2, "abcdefghij", 9, 1, -4); 3181 test("abcdefghij", 5, 2, "abcdefghij", 9, 2, -4); 3182 test("abcdefghij", 5, 2, "abcdefghij", 10, 0, 2); 3183 test("abcdefghij", 5, 2, "abcdefghij", 10, 1, 2); 3184 test("abcdefghij", 5, 2, "abcdefghij", 11, 0, 0); 3185 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 0, 2); 3186 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 1, 5); 3187 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 10, 5); 3188 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 19, 5); 3189 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 20, 5); 3190 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 21, 5); 3191 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 0, 2); 3192 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 1, 4); 3193 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 9, 4); 3194 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 18, 4); 3195 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 19, 4); 3196 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 20, 4); 3197 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 0, 2); 3198 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 1, -5); 3199 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 5, -5); 3200 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 9, -5); 3201 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 10, -5); 3202 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 11, -5); 3203 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 0, 2); 3204 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 1, -14); 3205 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 2, -14); 3206 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 20, 0, 2); 3207 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 20, 1, 2); 3208 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 21, 0, 0); 3209 test("abcdefghij", 5, 4, "", 0, 0, 4); 3210 test("abcdefghij", 5, 4, "", 0, 1, 4); 3211 test("abcdefghij", 5, 4, "", 1, 0, 0); 3212 test("abcdefghij", 5, 4, "abcde", 0, 0, 4); 3213 test("abcdefghij", 5, 4, "abcde", 0, 1, 5); 3214 test("abcdefghij", 5, 4, "abcde", 0, 2, 5); 3215 test("abcdefghij", 5, 4, "abcde", 0, 4, 5); 3216 test("abcdefghij", 5, 4, "abcde", 0, 5, 5); 3217 test("abcdefghij", 5, 4, "abcde", 0, 6, 5); 3218 test("abcdefghij", 5, 4, "abcde", 1, 0, 4); 3219 test("abcdefghij", 5, 4, "abcde", 1, 1, 4); 3220 test("abcdefghij", 5, 4, "abcde", 1, 2, 4); 3221 test("abcdefghij", 5, 4, "abcde", 1, 3, 4); 3222 test("abcdefghij", 5, 4, "abcde", 1, 4, 4); 3223 test("abcdefghij", 5, 4, "abcde", 1, 5, 4); 3224 test("abcdefghij", 5, 4, "abcde", 2, 0, 4); 3225 test("abcdefghij", 5, 4, "abcde", 2, 1, 3); 3226 test("abcdefghij", 5, 4, "abcde", 2, 2, 3); 3227 test("abcdefghij", 5, 4, "abcde", 2, 3, 3); 3228 test("abcdefghij", 5, 4, "abcde", 2, 4, 3); 3229 test("abcdefghij", 5, 4, "abcde", 4, 0, 4); 3230 test("abcdefghij", 5, 4, "abcde", 4, 1, 1); 3231 test("abcdefghij", 5, 4, "abcde", 4, 2, 1); 3232 test("abcdefghij", 5, 4, "abcde", 5, 0, 4); 3233 test("abcdefghij", 5, 4, "abcde", 5, 1, 4); 3234 test("abcdefghij", 5, 4, "abcde", 6, 0, 0); 3235 test("abcdefghij", 5, 4, "abcdefghij", 0, 0, 4); 3236 test("abcdefghij", 5, 4, "abcdefghij", 0, 1, 5); 3237 test("abcdefghij", 5, 4, "abcdefghij", 0, 5, 5); 3238 test("abcdefghij", 5, 4, "abcdefghij", 0, 9, 5); 3239 test("abcdefghij", 5, 4, "abcdefghij", 0, 10, 5); 3240 test("abcdefghij", 5, 4, "abcdefghij", 0, 11, 5); 3241 test("abcdefghij", 5, 4, "abcdefghij", 1, 0, 4); 3242 test("abcdefghij", 5, 4, "abcdefghij", 1, 1, 4); 3243 test("abcdefghij", 5, 4, "abcdefghij", 1, 4, 4); 3244 test("abcdefghij", 5, 4, "abcdefghij", 1, 8, 4); 3245 test("abcdefghij", 5, 4, "abcdefghij", 1, 9, 4); 3246 test("abcdefghij", 5, 4, "abcdefghij", 1, 10, 4); 3247 test("abcdefghij", 5, 4, "abcdefghij", 5, 0, 4); 3248 test("abcdefghij", 5, 4, "abcdefghij", 5, 1, 3); 3249 test("abcdefghij", 5, 4, "abcdefghij", 5, 2, 2); 3250 test("abcdefghij", 5, 4, "abcdefghij", 5, 4, 0); 3251 test("abcdefghij", 5, 4, "abcdefghij", 5, 5, -1); 3252 test("abcdefghij", 5, 4, "abcdefghij", 5, 6, -1); 3253 test("abcdefghij", 5, 4, "abcdefghij", 9, 0, 4); 3254 test("abcdefghij", 5, 4, "abcdefghij", 9, 1, -4); 3255 test("abcdefghij", 5, 4, "abcdefghij", 9, 2, -4); 3256 test("abcdefghij", 5, 4, "abcdefghij", 10, 0, 4); 3257 test("abcdefghij", 5, 4, "abcdefghij", 10, 1, 4); 3258 test("abcdefghij", 5, 4, "abcdefghij", 11, 0, 0); 3259 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 0, 4); 3260 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 1, 5); 3261 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 10, 5); 3262 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 19, 5); 3263 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 20, 5); 3264 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 21, 5); 3265 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 0, 4); 3266 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 1, 4); 3267 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 9, 4); 3268 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 18, 4); 3269 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 19, 4); 3270 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 20, 4); 3271 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 0, 4); 3272 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 1, -5); 3273 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 5, -5); 3274 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 9, -5); 3275} 3276 3277void test31() 3278{ 3279 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 10, -5); 3280 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 11, -5); 3281 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 0, 4); 3282 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 1, -14); 3283 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 2, -14); 3284 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 20, 0, 4); 3285 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 20, 1, 4); 3286 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 21, 0, 0); 3287 test("abcdefghij", 5, 5, "", 0, 0, 5); 3288 test("abcdefghij", 5, 5, "", 0, 1, 5); 3289 test("abcdefghij", 5, 5, "", 1, 0, 0); 3290 test("abcdefghij", 5, 5, "abcde", 0, 0, 5); 3291 test("abcdefghij", 5, 5, "abcde", 0, 1, 5); 3292 test("abcdefghij", 5, 5, "abcde", 0, 2, 5); 3293 test("abcdefghij", 5, 5, "abcde", 0, 4, 5); 3294 test("abcdefghij", 5, 5, "abcde", 0, 5, 5); 3295 test("abcdefghij", 5, 5, "abcde", 0, 6, 5); 3296 test("abcdefghij", 5, 5, "abcde", 1, 0, 5); 3297 test("abcdefghij", 5, 5, "abcde", 1, 1, 4); 3298 test("abcdefghij", 5, 5, "abcde", 1, 2, 4); 3299 test("abcdefghij", 5, 5, "abcde", 1, 3, 4); 3300 test("abcdefghij", 5, 5, "abcde", 1, 4, 4); 3301 test("abcdefghij", 5, 5, "abcde", 1, 5, 4); 3302 test("abcdefghij", 5, 5, "abcde", 2, 0, 5); 3303 test("abcdefghij", 5, 5, "abcde", 2, 1, 3); 3304 test("abcdefghij", 5, 5, "abcde", 2, 2, 3); 3305 test("abcdefghij", 5, 5, "abcde", 2, 3, 3); 3306 test("abcdefghij", 5, 5, "abcde", 2, 4, 3); 3307 test("abcdefghij", 5, 5, "abcde", 4, 0, 5); 3308 test("abcdefghij", 5, 5, "abcde", 4, 1, 1); 3309 test("abcdefghij", 5, 5, "abcde", 4, 2, 1); 3310 test("abcdefghij", 5, 5, "abcde", 5, 0, 5); 3311 test("abcdefghij", 5, 5, "abcde", 5, 1, 5); 3312 test("abcdefghij", 5, 5, "abcde", 6, 0, 0); 3313 test("abcdefghij", 5, 5, "abcdefghij", 0, 0, 5); 3314 test("abcdefghij", 5, 5, "abcdefghij", 0, 1, 5); 3315 test("abcdefghij", 5, 5, "abcdefghij", 0, 5, 5); 3316 test("abcdefghij", 5, 5, "abcdefghij", 0, 9, 5); 3317 test("abcdefghij", 5, 5, "abcdefghij", 0, 10, 5); 3318 test("abcdefghij", 5, 5, "abcdefghij", 0, 11, 5); 3319 test("abcdefghij", 5, 5, "abcdefghij", 1, 0, 5); 3320 test("abcdefghij", 5, 5, "abcdefghij", 1, 1, 4); 3321 test("abcdefghij", 5, 5, "abcdefghij", 1, 4, 4); 3322 test("abcdefghij", 5, 5, "abcdefghij", 1, 8, 4); 3323 test("abcdefghij", 5, 5, "abcdefghij", 1, 9, 4); 3324 test("abcdefghij", 5, 5, "abcdefghij", 1, 10, 4); 3325 test("abcdefghij", 5, 5, "abcdefghij", 5, 0, 5); 3326 test("abcdefghij", 5, 5, "abcdefghij", 5, 1, 4); 3327 test("abcdefghij", 5, 5, "abcdefghij", 5, 2, 3); 3328 test("abcdefghij", 5, 5, "abcdefghij", 5, 4, 1); 3329 test("abcdefghij", 5, 5, "abcdefghij", 5, 5, 0); 3330 test("abcdefghij", 5, 5, "abcdefghij", 5, 6, 0); 3331 test("abcdefghij", 5, 5, "abcdefghij", 9, 0, 5); 3332 test("abcdefghij", 5, 5, "abcdefghij", 9, 1, -4); 3333 test("abcdefghij", 5, 5, "abcdefghij", 9, 2, -4); 3334 test("abcdefghij", 5, 5, "abcdefghij", 10, 0, 5); 3335 test("abcdefghij", 5, 5, "abcdefghij", 10, 1, 5); 3336 test("abcdefghij", 5, 5, "abcdefghij", 11, 0, 0); 3337 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 0, 5); 3338 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 1, 5); 3339 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 10, 5); 3340 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 19, 5); 3341 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 20, 5); 3342 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 21, 5); 3343 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 0, 5); 3344 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 1, 4); 3345 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 9, 4); 3346 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 18, 4); 3347 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 19, 4); 3348 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 20, 4); 3349 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 0, 5); 3350 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 1, -5); 3351 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 5, -5); 3352 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 9, -5); 3353 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 10, -5); 3354 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 11, -5); 3355 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 0, 5); 3356 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 1, -14); 3357 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 2, -14); 3358 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 20, 0, 5); 3359 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 20, 1, 5); 3360 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 21, 0, 0); 3361 test("abcdefghij", 5, 6, "", 0, 0, 5); 3362 test("abcdefghij", 5, 6, "", 0, 1, 5); 3363 test("abcdefghij", 5, 6, "", 1, 0, 0); 3364 test("abcdefghij", 5, 6, "abcde", 0, 0, 5); 3365 test("abcdefghij", 5, 6, "abcde", 0, 1, 5); 3366 test("abcdefghij", 5, 6, "abcde", 0, 2, 5); 3367 test("abcdefghij", 5, 6, "abcde", 0, 4, 5); 3368 test("abcdefghij", 5, 6, "abcde", 0, 5, 5); 3369 test("abcdefghij", 5, 6, "abcde", 0, 6, 5); 3370 test("abcdefghij", 5, 6, "abcde", 1, 0, 5); 3371 test("abcdefghij", 5, 6, "abcde", 1, 1, 4); 3372 test("abcdefghij", 5, 6, "abcde", 1, 2, 4); 3373 test("abcdefghij", 5, 6, "abcde", 1, 3, 4); 3374 test("abcdefghij", 5, 6, "abcde", 1, 4, 4); 3375 test("abcdefghij", 5, 6, "abcde", 1, 5, 4); 3376 test("abcdefghij", 5, 6, "abcde", 2, 0, 5); 3377 test("abcdefghij", 5, 6, "abcde", 2, 1, 3); 3378 test("abcdefghij", 5, 6, "abcde", 2, 2, 3); 3379} 3380 3381void test32() 3382{ 3383 test("abcdefghij", 5, 6, "abcde", 2, 3, 3); 3384 test("abcdefghij", 5, 6, "abcde", 2, 4, 3); 3385 test("abcdefghij", 5, 6, "abcde", 4, 0, 5); 3386 test("abcdefghij", 5, 6, "abcde", 4, 1, 1); 3387 test("abcdefghij", 5, 6, "abcde", 4, 2, 1); 3388 test("abcdefghij", 5, 6, "abcde", 5, 0, 5); 3389 test("abcdefghij", 5, 6, "abcde", 5, 1, 5); 3390 test("abcdefghij", 5, 6, "abcde", 6, 0, 0); 3391 test("abcdefghij", 5, 6, "abcdefghij", 0, 0, 5); 3392 test("abcdefghij", 5, 6, "abcdefghij", 0, 1, 5); 3393 test("abcdefghij", 5, 6, "abcdefghij", 0, 5, 5); 3394 test("abcdefghij", 5, 6, "abcdefghij", 0, 9, 5); 3395 test("abcdefghij", 5, 6, "abcdefghij", 0, 10, 5); 3396 test("abcdefghij", 5, 6, "abcdefghij", 0, 11, 5); 3397 test("abcdefghij", 5, 6, "abcdefghij", 1, 0, 5); 3398 test("abcdefghij", 5, 6, "abcdefghij", 1, 1, 4); 3399 test("abcdefghij", 5, 6, "abcdefghij", 1, 4, 4); 3400 test("abcdefghij", 5, 6, "abcdefghij", 1, 8, 4); 3401 test("abcdefghij", 5, 6, "abcdefghij", 1, 9, 4); 3402 test("abcdefghij", 5, 6, "abcdefghij", 1, 10, 4); 3403 test("abcdefghij", 5, 6, "abcdefghij", 5, 0, 5); 3404 test("abcdefghij", 5, 6, "abcdefghij", 5, 1, 4); 3405 test("abcdefghij", 5, 6, "abcdefghij", 5, 2, 3); 3406 test("abcdefghij", 5, 6, "abcdefghij", 5, 4, 1); 3407 test("abcdefghij", 5, 6, "abcdefghij", 5, 5, 0); 3408 test("abcdefghij", 5, 6, "abcdefghij", 5, 6, 0); 3409 test("abcdefghij", 5, 6, "abcdefghij", 9, 0, 5); 3410 test("abcdefghij", 5, 6, "abcdefghij", 9, 1, -4); 3411 test("abcdefghij", 5, 6, "abcdefghij", 9, 2, -4); 3412 test("abcdefghij", 5, 6, "abcdefghij", 10, 0, 5); 3413 test("abcdefghij", 5, 6, "abcdefghij", 10, 1, 5); 3414 test("abcdefghij", 5, 6, "abcdefghij", 11, 0, 0); 3415 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 0, 5); 3416 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 1, 5); 3417 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 10, 5); 3418 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 19, 5); 3419 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 20, 5); 3420 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 21, 5); 3421 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 0, 5); 3422 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 1, 4); 3423 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 9, 4); 3424 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 18, 4); 3425 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 19, 4); 3426 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 20, 4); 3427 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 0, 5); 3428 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 1, -5); 3429 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 5, -5); 3430 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 9, -5); 3431 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 10, -5); 3432 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 11, -5); 3433 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 0, 5); 3434 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 1, -14); 3435 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 2, -14); 3436 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 20, 0, 5); 3437 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 20, 1, 5); 3438 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 21, 0, 0); 3439 test("abcdefghij", 9, 0, "", 0, 0, 0); 3440 test("abcdefghij", 9, 0, "", 0, 1, 0); 3441 test("abcdefghij", 9, 0, "", 1, 0, 0); 3442 test("abcdefghij", 9, 0, "abcde", 0, 0, 0); 3443 test("abcdefghij", 9, 0, "abcde", 0, 1, -1); 3444 test("abcdefghij", 9, 0, "abcde", 0, 2, -2); 3445 test("abcdefghij", 9, 0, "abcde", 0, 4, -4); 3446 test("abcdefghij", 9, 0, "abcde", 0, 5, -5); 3447 test("abcdefghij", 9, 0, "abcde", 0, 6, -5); 3448 test("abcdefghij", 9, 0, "abcde", 1, 0, 0); 3449 test("abcdefghij", 9, 0, "abcde", 1, 1, -1); 3450 test("abcdefghij", 9, 0, "abcde", 1, 2, -2); 3451 test("abcdefghij", 9, 0, "abcde", 1, 3, -3); 3452 test("abcdefghij", 9, 0, "abcde", 1, 4, -4); 3453 test("abcdefghij", 9, 0, "abcde", 1, 5, -4); 3454 test("abcdefghij", 9, 0, "abcde", 2, 0, 0); 3455 test("abcdefghij", 9, 0, "abcde", 2, 1, -1); 3456 test("abcdefghij", 9, 0, "abcde", 2, 2, -2); 3457 test("abcdefghij", 9, 0, "abcde", 2, 3, -3); 3458 test("abcdefghij", 9, 0, "abcde", 2, 4, -3); 3459 test("abcdefghij", 9, 0, "abcde", 4, 0, 0); 3460 test("abcdefghij", 9, 0, "abcde", 4, 1, -1); 3461 test("abcdefghij", 9, 0, "abcde", 4, 2, -1); 3462 test("abcdefghij", 9, 0, "abcde", 5, 0, 0); 3463 test("abcdefghij", 9, 0, "abcde", 5, 1, 0); 3464 test("abcdefghij", 9, 0, "abcde", 6, 0, 0); 3465 test("abcdefghij", 9, 0, "abcdefghij", 0, 0, 0); 3466 test("abcdefghij", 9, 0, "abcdefghij", 0, 1, -1); 3467 test("abcdefghij", 9, 0, "abcdefghij", 0, 5, -5); 3468 test("abcdefghij", 9, 0, "abcdefghij", 0, 9, -9); 3469 test("abcdefghij", 9, 0, "abcdefghij", 0, 10, -10); 3470 test("abcdefghij", 9, 0, "abcdefghij", 0, 11, -10); 3471 test("abcdefghij", 9, 0, "abcdefghij", 1, 0, 0); 3472 test("abcdefghij", 9, 0, "abcdefghij", 1, 1, -1); 3473 test("abcdefghij", 9, 0, "abcdefghij", 1, 4, -4); 3474 test("abcdefghij", 9, 0, "abcdefghij", 1, 8, -8); 3475 test("abcdefghij", 9, 0, "abcdefghij", 1, 9, -9); 3476 test("abcdefghij", 9, 0, "abcdefghij", 1, 10, -9); 3477 test("abcdefghij", 9, 0, "abcdefghij", 5, 0, 0); 3478 test("abcdefghij", 9, 0, "abcdefghij", 5, 1, -1); 3479 test("abcdefghij", 9, 0, "abcdefghij", 5, 2, -2); 3480 test("abcdefghij", 9, 0, "abcdefghij", 5, 4, -4); 3481 test("abcdefghij", 9, 0, "abcdefghij", 5, 5, -5); 3482 test("abcdefghij", 9, 0, "abcdefghij", 5, 6, -5); 3483} 3484 3485void test33() 3486{ 3487 test("abcdefghij", 9, 0, "abcdefghij", 9, 0, 0); 3488 test("abcdefghij", 9, 0, "abcdefghij", 9, 1, -1); 3489 test("abcdefghij", 9, 0, "abcdefghij", 9, 2, -1); 3490 test("abcdefghij", 9, 0, "abcdefghij", 10, 0, 0); 3491 test("abcdefghij", 9, 0, "abcdefghij", 10, 1, 0); 3492 test("abcdefghij", 9, 0, "abcdefghij", 11, 0, 0); 3493 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 0, 0); 3494 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 1, -1); 3495 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 10, -10); 3496 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 19, -19); 3497 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 20, -20); 3498 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 21, -20); 3499 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 0, 0); 3500 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 1, -1); 3501 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 9, -9); 3502 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 18, -18); 3503 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 19, -19); 3504 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 20, -19); 3505 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 0, 0); 3506 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 1, -1); 3507 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 5, -5); 3508 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 9, -9); 3509 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 10, -10); 3510 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 11, -10); 3511 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, 0, 0); 3512 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, 1, -1); 3513 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, 2, -1); 3514 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 20, 0, 0); 3515 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 20, 1, 0); 3516 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 21, 0, 0); 3517 test("abcdefghij", 9, 1, "", 0, 0, 1); 3518 test("abcdefghij", 9, 1, "", 0, 1, 1); 3519 test("abcdefghij", 9, 1, "", 1, 0, 0); 3520 test("abcdefghij", 9, 1, "abcde", 0, 0, 1); 3521 test("abcdefghij", 9, 1, "abcde", 0, 1, 9); 3522 test("abcdefghij", 9, 1, "abcde", 0, 2, 9); 3523 test("abcdefghij", 9, 1, "abcde", 0, 4, 9); 3524 test("abcdefghij", 9, 1, "abcde", 0, 5, 9); 3525 test("abcdefghij", 9, 1, "abcde", 0, 6, 9); 3526 test("abcdefghij", 9, 1, "abcde", 1, 0, 1); 3527 test("abcdefghij", 9, 1, "abcde", 1, 1, 8); 3528 test("abcdefghij", 9, 1, "abcde", 1, 2, 8); 3529 test("abcdefghij", 9, 1, "abcde", 1, 3, 8); 3530 test("abcdefghij", 9, 1, "abcde", 1, 4, 8); 3531 test("abcdefghij", 9, 1, "abcde", 1, 5, 8); 3532 test("abcdefghij", 9, 1, "abcde", 2, 0, 1); 3533 test("abcdefghij", 9, 1, "abcde", 2, 1, 7); 3534 test("abcdefghij", 9, 1, "abcde", 2, 2, 7); 3535 test("abcdefghij", 9, 1, "abcde", 2, 3, 7); 3536 test("abcdefghij", 9, 1, "abcde", 2, 4, 7); 3537 test("abcdefghij", 9, 1, "abcde", 4, 0, 1); 3538 test("abcdefghij", 9, 1, "abcde", 4, 1, 5); 3539 test("abcdefghij", 9, 1, "abcde", 4, 2, 5); 3540 test("abcdefghij", 9, 1, "abcde", 5, 0, 1); 3541 test("abcdefghij", 9, 1, "abcde", 5, 1, 1); 3542 test("abcdefghij", 9, 1, "abcde", 6, 0, 0); 3543 test("abcdefghij", 9, 1, "abcdefghij", 0, 0, 1); 3544 test("abcdefghij", 9, 1, "abcdefghij", 0, 1, 9); 3545 test("abcdefghij", 9, 1, "abcdefghij", 0, 5, 9); 3546 test("abcdefghij", 9, 1, "abcdefghij", 0, 9, 9); 3547 test("abcdefghij", 9, 1, "abcdefghij", 0, 10, 9); 3548 test("abcdefghij", 9, 1, "abcdefghij", 0, 11, 9); 3549 test("abcdefghij", 9, 1, "abcdefghij", 1, 0, 1); 3550 test("abcdefghij", 9, 1, "abcdefghij", 1, 1, 8); 3551 test("abcdefghij", 9, 1, "abcdefghij", 1, 4, 8); 3552 test("abcdefghij", 9, 1, "abcdefghij", 1, 8, 8); 3553 test("abcdefghij", 9, 1, "abcdefghij", 1, 9, 8); 3554 test("abcdefghij", 9, 1, "abcdefghij", 1, 10, 8); 3555 test("abcdefghij", 9, 1, "abcdefghij", 5, 0, 1); 3556 test("abcdefghij", 9, 1, "abcdefghij", 5, 1, 4); 3557 test("abcdefghij", 9, 1, "abcdefghij", 5, 2, 4); 3558 test("abcdefghij", 9, 1, "abcdefghij", 5, 4, 4); 3559 test("abcdefghij", 9, 1, "abcdefghij", 5, 5, 4); 3560 test("abcdefghij", 9, 1, "abcdefghij", 5, 6, 4); 3561 test("abcdefghij", 9, 1, "abcdefghij", 9, 0, 1); 3562 test("abcdefghij", 9, 1, "abcdefghij", 9, 1, 0); 3563 test("abcdefghij", 9, 1, "abcdefghij", 9, 2, 0); 3564 test("abcdefghij", 9, 1, "abcdefghij", 10, 0, 1); 3565 test("abcdefghij", 9, 1, "abcdefghij", 10, 1, 1); 3566 test("abcdefghij", 9, 1, "abcdefghij", 11, 0, 0); 3567 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 0, 1); 3568 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 1, 9); 3569 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 10, 9); 3570 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 19, 9); 3571 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 20, 9); 3572 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 21, 9); 3573 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 0, 1); 3574 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 1, 8); 3575 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 9, 8); 3576 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 18, 8); 3577 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 19, 8); 3578 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 20, 8); 3579 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 0, 1); 3580 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 1, -1); 3581 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 5, -1); 3582 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 9, -1); 3583 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 10, -1); 3584 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 11, -1); 3585 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 0, 1); 3586 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 1, -10); 3587} 3588 3589void test34() 3590{ 3591 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 2, -10); 3592 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 20, 0, 1); 3593 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 20, 1, 1); 3594 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 21, 0, 0); 3595 test("abcdefghij", 9, 2, "", 0, 0, 1); 3596 test("abcdefghij", 9, 2, "", 0, 1, 1); 3597 test("abcdefghij", 9, 2, "", 1, 0, 0); 3598 test("abcdefghij", 9, 2, "abcde", 0, 0, 1); 3599 test("abcdefghij", 9, 2, "abcde", 0, 1, 9); 3600 test("abcdefghij", 9, 2, "abcde", 0, 2, 9); 3601 test("abcdefghij", 9, 2, "abcde", 0, 4, 9); 3602 test("abcdefghij", 9, 2, "abcde", 0, 5, 9); 3603 test("abcdefghij", 9, 2, "abcde", 0, 6, 9); 3604 test("abcdefghij", 9, 2, "abcde", 1, 0, 1); 3605 test("abcdefghij", 9, 2, "abcde", 1, 1, 8); 3606 test("abcdefghij", 9, 2, "abcde", 1, 2, 8); 3607 test("abcdefghij", 9, 2, "abcde", 1, 3, 8); 3608 test("abcdefghij", 9, 2, "abcde", 1, 4, 8); 3609 test("abcdefghij", 9, 2, "abcde", 1, 5, 8); 3610 test("abcdefghij", 9, 2, "abcde", 2, 0, 1); 3611 test("abcdefghij", 9, 2, "abcde", 2, 1, 7); 3612 test("abcdefghij", 9, 2, "abcde", 2, 2, 7); 3613 test("abcdefghij", 9, 2, "abcde", 2, 3, 7); 3614 test("abcdefghij", 9, 2, "abcde", 2, 4, 7); 3615 test("abcdefghij", 9, 2, "abcde", 4, 0, 1); 3616 test("abcdefghij", 9, 2, "abcde", 4, 1, 5); 3617 test("abcdefghij", 9, 2, "abcde", 4, 2, 5); 3618 test("abcdefghij", 9, 2, "abcde", 5, 0, 1); 3619 test("abcdefghij", 9, 2, "abcde", 5, 1, 1); 3620 test("abcdefghij", 9, 2, "abcde", 6, 0, 0); 3621 test("abcdefghij", 9, 2, "abcdefghij", 0, 0, 1); 3622 test("abcdefghij", 9, 2, "abcdefghij", 0, 1, 9); 3623 test("abcdefghij", 9, 2, "abcdefghij", 0, 5, 9); 3624 test("abcdefghij", 9, 2, "abcdefghij", 0, 9, 9); 3625 test("abcdefghij", 9, 2, "abcdefghij", 0, 10, 9); 3626 test("abcdefghij", 9, 2, "abcdefghij", 0, 11, 9); 3627 test("abcdefghij", 9, 2, "abcdefghij", 1, 0, 1); 3628 test("abcdefghij", 9, 2, "abcdefghij", 1, 1, 8); 3629 test("abcdefghij", 9, 2, "abcdefghij", 1, 4, 8); 3630 test("abcdefghij", 9, 2, "abcdefghij", 1, 8, 8); 3631 test("abcdefghij", 9, 2, "abcdefghij", 1, 9, 8); 3632 test("abcdefghij", 9, 2, "abcdefghij", 1, 10, 8); 3633 test("abcdefghij", 9, 2, "abcdefghij", 5, 0, 1); 3634 test("abcdefghij", 9, 2, "abcdefghij", 5, 1, 4); 3635 test("abcdefghij", 9, 2, "abcdefghij", 5, 2, 4); 3636 test("abcdefghij", 9, 2, "abcdefghij", 5, 4, 4); 3637 test("abcdefghij", 9, 2, "abcdefghij", 5, 5, 4); 3638 test("abcdefghij", 9, 2, "abcdefghij", 5, 6, 4); 3639 test("abcdefghij", 9, 2, "abcdefghij", 9, 0, 1); 3640 test("abcdefghij", 9, 2, "abcdefghij", 9, 1, 0); 3641 test("abcdefghij", 9, 2, "abcdefghij", 9, 2, 0); 3642 test("abcdefghij", 9, 2, "abcdefghij", 10, 0, 1); 3643 test("abcdefghij", 9, 2, "abcdefghij", 10, 1, 1); 3644 test("abcdefghij", 9, 2, "abcdefghij", 11, 0, 0); 3645 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 0, 1); 3646 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 1, 9); 3647 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 10, 9); 3648 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 19, 9); 3649 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 20, 9); 3650 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 21, 9); 3651 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 0, 1); 3652 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 1, 8); 3653 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 9, 8); 3654 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 18, 8); 3655 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 19, 8); 3656 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 20, 8); 3657 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 0, 1); 3658 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 1, -1); 3659 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 5, -1); 3660 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 9, -1); 3661 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 10, -1); 3662 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 11, -1); 3663 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 0, 1); 3664 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 1, -10); 3665 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 2, -10); 3666 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 20, 0, 1); 3667 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 20, 1, 1); 3668 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 21, 0, 0); 3669 test("abcdefghij", 10, 0, "", 0, 0, 0); 3670 test("abcdefghij", 10, 0, "", 0, 1, 0); 3671 test("abcdefghij", 10, 0, "", 1, 0, 0); 3672 test("abcdefghij", 10, 0, "abcde", 0, 0, 0); 3673 test("abcdefghij", 10, 0, "abcde", 0, 1, -1); 3674 test("abcdefghij", 10, 0, "abcde", 0, 2, -2); 3675 test("abcdefghij", 10, 0, "abcde", 0, 4, -4); 3676 test("abcdefghij", 10, 0, "abcde", 0, 5, -5); 3677 test("abcdefghij", 10, 0, "abcde", 0, 6, -5); 3678 test("abcdefghij", 10, 0, "abcde", 1, 0, 0); 3679 test("abcdefghij", 10, 0, "abcde", 1, 1, -1); 3680 test("abcdefghij", 10, 0, "abcde", 1, 2, -2); 3681 test("abcdefghij", 10, 0, "abcde", 1, 3, -3); 3682 test("abcdefghij", 10, 0, "abcde", 1, 4, -4); 3683 test("abcdefghij", 10, 0, "abcde", 1, 5, -4); 3684 test("abcdefghij", 10, 0, "abcde", 2, 0, 0); 3685 test("abcdefghij", 10, 0, "abcde", 2, 1, -1); 3686 test("abcdefghij", 10, 0, "abcde", 2, 2, -2); 3687 test("abcdefghij", 10, 0, "abcde", 2, 3, -3); 3688 test("abcdefghij", 10, 0, "abcde", 2, 4, -3); 3689 test("abcdefghij", 10, 0, "abcde", 4, 0, 0); 3690 test("abcdefghij", 10, 0, "abcde", 4, 1, -1); 3691} 3692 3693void test35() 3694{ 3695 test("abcdefghij", 10, 0, "abcde", 4, 2, -1); 3696 test("abcdefghij", 10, 0, "abcde", 5, 0, 0); 3697 test("abcdefghij", 10, 0, "abcde", 5, 1, 0); 3698 test("abcdefghij", 10, 0, "abcde", 6, 0, 0); 3699 test("abcdefghij", 10, 0, "abcdefghij", 0, 0, 0); 3700 test("abcdefghij", 10, 0, "abcdefghij", 0, 1, -1); 3701 test("abcdefghij", 10, 0, "abcdefghij", 0, 5, -5); 3702 test("abcdefghij", 10, 0, "abcdefghij", 0, 9, -9); 3703 test("abcdefghij", 10, 0, "abcdefghij", 0, 10, -10); 3704 test("abcdefghij", 10, 0, "abcdefghij", 0, 11, -10); 3705 test("abcdefghij", 10, 0, "abcdefghij", 1, 0, 0); 3706 test("abcdefghij", 10, 0, "abcdefghij", 1, 1, -1); 3707 test("abcdefghij", 10, 0, "abcdefghij", 1, 4, -4); 3708 test("abcdefghij", 10, 0, "abcdefghij", 1, 8, -8); 3709 test("abcdefghij", 10, 0, "abcdefghij", 1, 9, -9); 3710 test("abcdefghij", 10, 0, "abcdefghij", 1, 10, -9); 3711 test("abcdefghij", 10, 0, "abcdefghij", 5, 0, 0); 3712 test("abcdefghij", 10, 0, "abcdefghij", 5, 1, -1); 3713 test("abcdefghij", 10, 0, "abcdefghij", 5, 2, -2); 3714 test("abcdefghij", 10, 0, "abcdefghij", 5, 4, -4); 3715 test("abcdefghij", 10, 0, "abcdefghij", 5, 5, -5); 3716 test("abcdefghij", 10, 0, "abcdefghij", 5, 6, -5); 3717 test("abcdefghij", 10, 0, "abcdefghij", 9, 0, 0); 3718 test("abcdefghij", 10, 0, "abcdefghij", 9, 1, -1); 3719 test("abcdefghij", 10, 0, "abcdefghij", 9, 2, -1); 3720 test("abcdefghij", 10, 0, "abcdefghij", 10, 0, 0); 3721 test("abcdefghij", 10, 0, "abcdefghij", 10, 1, 0); 3722 test("abcdefghij", 10, 0, "abcdefghij", 11, 0, 0); 3723 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 0, 0); 3724 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 1, -1); 3725 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 10, -10); 3726 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 19, -19); 3727 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 20, -20); 3728 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 21, -20); 3729 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 0, 0); 3730 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 1, -1); 3731 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 9, -9); 3732 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 18, -18); 3733 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 19, -19); 3734 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 20, -19); 3735 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 0, 0); 3736 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 1, -1); 3737 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 5, -5); 3738 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 9, -9); 3739 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 10, -10); 3740 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 11, -10); 3741 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, 0, 0); 3742 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, 1, -1); 3743 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, 2, -1); 3744 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 20, 0, 0); 3745 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 20, 1, 0); 3746 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 21, 0, 0); 3747 test("abcdefghij", 10, 1, "", 0, 0, 0); 3748 test("abcdefghij", 10, 1, "", 0, 1, 0); 3749 test("abcdefghij", 10, 1, "", 1, 0, 0); 3750 test("abcdefghij", 10, 1, "abcde", 0, 0, 0); 3751 test("abcdefghij", 10, 1, "abcde", 0, 1, -1); 3752 test("abcdefghij", 10, 1, "abcde", 0, 2, -2); 3753 test("abcdefghij", 10, 1, "abcde", 0, 4, -4); 3754 test("abcdefghij", 10, 1, "abcde", 0, 5, -5); 3755 test("abcdefghij", 10, 1, "abcde", 0, 6, -5); 3756 test("abcdefghij", 10, 1, "abcde", 1, 0, 0); 3757 test("abcdefghij", 10, 1, "abcde", 1, 1, -1); 3758 test("abcdefghij", 10, 1, "abcde", 1, 2, -2); 3759 test("abcdefghij", 10, 1, "abcde", 1, 3, -3); 3760 test("abcdefghij", 10, 1, "abcde", 1, 4, -4); 3761 test("abcdefghij", 10, 1, "abcde", 1, 5, -4); 3762 test("abcdefghij", 10, 1, "abcde", 2, 0, 0); 3763 test("abcdefghij", 10, 1, "abcde", 2, 1, -1); 3764 test("abcdefghij", 10, 1, "abcde", 2, 2, -2); 3765 test("abcdefghij", 10, 1, "abcde", 2, 3, -3); 3766 test("abcdefghij", 10, 1, "abcde", 2, 4, -3); 3767 test("abcdefghij", 10, 1, "abcde", 4, 0, 0); 3768 test("abcdefghij", 10, 1, "abcde", 4, 1, -1); 3769 test("abcdefghij", 10, 1, "abcde", 4, 2, -1); 3770 test("abcdefghij", 10, 1, "abcde", 5, 0, 0); 3771 test("abcdefghij", 10, 1, "abcde", 5, 1, 0); 3772 test("abcdefghij", 10, 1, "abcde", 6, 0, 0); 3773 test("abcdefghij", 10, 1, "abcdefghij", 0, 0, 0); 3774 test("abcdefghij", 10, 1, "abcdefghij", 0, 1, -1); 3775 test("abcdefghij", 10, 1, "abcdefghij", 0, 5, -5); 3776 test("abcdefghij", 10, 1, "abcdefghij", 0, 9, -9); 3777 test("abcdefghij", 10, 1, "abcdefghij", 0, 10, -10); 3778 test("abcdefghij", 10, 1, "abcdefghij", 0, 11, -10); 3779 test("abcdefghij", 10, 1, "abcdefghij", 1, 0, 0); 3780 test("abcdefghij", 10, 1, "abcdefghij", 1, 1, -1); 3781 test("abcdefghij", 10, 1, "abcdefghij", 1, 4, -4); 3782 test("abcdefghij", 10, 1, "abcdefghij", 1, 8, -8); 3783 test("abcdefghij", 10, 1, "abcdefghij", 1, 9, -9); 3784 test("abcdefghij", 10, 1, "abcdefghij", 1, 10, -9); 3785 test("abcdefghij", 10, 1, "abcdefghij", 5, 0, 0); 3786 test("abcdefghij", 10, 1, "abcdefghij", 5, 1, -1); 3787 test("abcdefghij", 10, 1, "abcdefghij", 5, 2, -2); 3788 test("abcdefghij", 10, 1, "abcdefghij", 5, 4, -4); 3789 test("abcdefghij", 10, 1, "abcdefghij", 5, 5, -5); 3790 test("abcdefghij", 10, 1, "abcdefghij", 5, 6, -5); 3791 test("abcdefghij", 10, 1, "abcdefghij", 9, 0, 0); 3792 test("abcdefghij", 10, 1, "abcdefghij", 9, 1, -1); 3793 test("abcdefghij", 10, 1, "abcdefghij", 9, 2, -1); 3794 test("abcdefghij", 10, 1, "abcdefghij", 10, 0, 0); 3795} 3796 3797void test36() 3798{ 3799 test("abcdefghij", 10, 1, "abcdefghij", 10, 1, 0); 3800 test("abcdefghij", 10, 1, "abcdefghij", 11, 0, 0); 3801 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 0, 0); 3802 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 1, -1); 3803 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 10, -10); 3804 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 19, -19); 3805 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 20, -20); 3806 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 21, -20); 3807 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 0, 0); 3808 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 1, -1); 3809 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 9, -9); 3810 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 18, -18); 3811 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 19, -19); 3812 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 20, -19); 3813 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 0, 0); 3814 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 1, -1); 3815 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 5, -5); 3816 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 9, -9); 3817 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 10, -10); 3818 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 11, -10); 3819 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, 0, 0); 3820 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, 1, -1); 3821 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, 2, -1); 3822 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 20, 0, 0); 3823 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 20, 1, 0); 3824 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 21, 0, 0); 3825 test("abcdefghij", 11, 0, "", 0, 0, 0); 3826 test("abcdefghij", 11, 0, "", 0, 1, 0); 3827 test("abcdefghij", 11, 0, "", 1, 0, 0); 3828 test("abcdefghij", 11, 0, "abcde", 0, 0, 0); 3829 test("abcdefghij", 11, 0, "abcde", 0, 1, 0); 3830 test("abcdefghij", 11, 0, "abcde", 0, 2, 0); 3831 test("abcdefghij", 11, 0, "abcde", 0, 4, 0); 3832 test("abcdefghij", 11, 0, "abcde", 0, 5, 0); 3833 test("abcdefghij", 11, 0, "abcde", 0, 6, 0); 3834 test("abcdefghij", 11, 0, "abcde", 1, 0, 0); 3835 test("abcdefghij", 11, 0, "abcde", 1, 1, 0); 3836 test("abcdefghij", 11, 0, "abcde", 1, 2, 0); 3837 test("abcdefghij", 11, 0, "abcde", 1, 3, 0); 3838 test("abcdefghij", 11, 0, "abcde", 1, 4, 0); 3839 test("abcdefghij", 11, 0, "abcde", 1, 5, 0); 3840 test("abcdefghij", 11, 0, "abcde", 2, 0, 0); 3841 test("abcdefghij", 11, 0, "abcde", 2, 1, 0); 3842 test("abcdefghij", 11, 0, "abcde", 2, 2, 0); 3843 test("abcdefghij", 11, 0, "abcde", 2, 3, 0); 3844 test("abcdefghij", 11, 0, "abcde", 2, 4, 0); 3845 test("abcdefghij", 11, 0, "abcde", 4, 0, 0); 3846 test("abcdefghij", 11, 0, "abcde", 4, 1, 0); 3847 test("abcdefghij", 11, 0, "abcde", 4, 2, 0); 3848 test("abcdefghij", 11, 0, "abcde", 5, 0, 0); 3849 test("abcdefghij", 11, 0, "abcde", 5, 1, 0); 3850 test("abcdefghij", 11, 0, "abcde", 6, 0, 0); 3851 test("abcdefghij", 11, 0, "abcdefghij", 0, 0, 0); 3852 test("abcdefghij", 11, 0, "abcdefghij", 0, 1, 0); 3853 test("abcdefghij", 11, 0, "abcdefghij", 0, 5, 0); 3854 test("abcdefghij", 11, 0, "abcdefghij", 0, 9, 0); 3855 test("abcdefghij", 11, 0, "abcdefghij", 0, 10, 0); 3856 test("abcdefghij", 11, 0, "abcdefghij", 0, 11, 0); 3857 test("abcdefghij", 11, 0, "abcdefghij", 1, 0, 0); 3858 test("abcdefghij", 11, 0, "abcdefghij", 1, 1, 0); 3859 test("abcdefghij", 11, 0, "abcdefghij", 1, 4, 0); 3860 test("abcdefghij", 11, 0, "abcdefghij", 1, 8, 0); 3861 test("abcdefghij", 11, 0, "abcdefghij", 1, 9, 0); 3862 test("abcdefghij", 11, 0, "abcdefghij", 1, 10, 0); 3863 test("abcdefghij", 11, 0, "abcdefghij", 5, 0, 0); 3864 test("abcdefghij", 11, 0, "abcdefghij", 5, 1, 0); 3865 test("abcdefghij", 11, 0, "abcdefghij", 5, 2, 0); 3866 test("abcdefghij", 11, 0, "abcdefghij", 5, 4, 0); 3867 test("abcdefghij", 11, 0, "abcdefghij", 5, 5, 0); 3868 test("abcdefghij", 11, 0, "abcdefghij", 5, 6, 0); 3869 test("abcdefghij", 11, 0, "abcdefghij", 9, 0, 0); 3870 test("abcdefghij", 11, 0, "abcdefghij", 9, 1, 0); 3871 test("abcdefghij", 11, 0, "abcdefghij", 9, 2, 0); 3872 test("abcdefghij", 11, 0, "abcdefghij", 10, 0, 0); 3873 test("abcdefghij", 11, 0, "abcdefghij", 10, 1, 0); 3874 test("abcdefghij", 11, 0, "abcdefghij", 11, 0, 0); 3875 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 0, 0); 3876 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 1, 0); 3877 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 10, 0); 3878 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 19, 0); 3879 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 20, 0); 3880 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 21, 0); 3881 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 0, 0); 3882 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 1, 0); 3883 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 9, 0); 3884 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 18, 0); 3885 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 19, 0); 3886 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 20, 0); 3887 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 0, 0); 3888 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 1, 0); 3889 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 5, 0); 3890 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 9, 0); 3891 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 10, 0); 3892 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 11, 0); 3893 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 0, 0); 3894 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 1, 0); 3895 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 2, 0); 3896 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 20, 0, 0); 3897 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 20, 1, 0); 3898 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 21, 0, 0); 3899} 3900 3901void test37() 3902{ 3903 test("abcdefghijklmnopqrst", 0, 0, "", 0, 0, 0); 3904 test("abcdefghijklmnopqrst", 0, 0, "", 0, 1, 0); 3905 test("abcdefghijklmnopqrst", 0, 0, "", 1, 0, 0); 3906 test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 0, 0); 3907 test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 1, -1); 3908 test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 2, -2); 3909 test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 4, -4); 3910 test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 5, -5); 3911 test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 6, -5); 3912 test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 0, 0); 3913 test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 1, -1); 3914 test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 2, -2); 3915 test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 3, -3); 3916 test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 4, -4); 3917 test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 5, -4); 3918 test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 0, 0); 3919 test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 1, -1); 3920 test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 2, -2); 3921 test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 3, -3); 3922 test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 4, -3); 3923 test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, 0, 0); 3924 test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, 1, -1); 3925 test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, 2, -1); 3926 test("abcdefghijklmnopqrst", 0, 0, "abcde", 5, 0, 0); 3927 test("abcdefghijklmnopqrst", 0, 0, "abcde", 5, 1, 0); 3928 test("abcdefghijklmnopqrst", 0, 0, "abcde", 6, 0, 0); 3929 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 0, 0); 3930 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 1, -1); 3931 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 5, -5); 3932 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 9, -9); 3933 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 10, -10); 3934 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 11, -10); 3935 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 0, 0); 3936 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 1, -1); 3937 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 4, -4); 3938 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 8, -8); 3939 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 9, -9); 3940 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 10, -9); 3941 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 0, 0); 3942 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 1, -1); 3943 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 2, -2); 3944 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 4, -4); 3945 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 5, -5); 3946 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 6, -5); 3947 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, 0, 0); 3948 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, 1, -1); 3949 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, 2, -1); 3950 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 10, 0, 0); 3951 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 10, 1, 0); 3952 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 11, 0, 0); 3953 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0); 3954 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1); 3955 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10); 3956 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19); 3957 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20); 3958 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20); 3959 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0); 3960 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1); 3961 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9); 3962 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18); 3963 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19); 3964 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19); 3965 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0); 3966 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1); 3967 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5); 3968 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9); 3969 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10); 3970 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10); 3971 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0); 3972 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1); 3973 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1); 3974 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0); 3975 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0); 3976 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0); 3977 test("abcdefghijklmnopqrst", 0, 1, "", 0, 0, 1); 3978 test("abcdefghijklmnopqrst", 0, 1, "", 0, 1, 1); 3979 test("abcdefghijklmnopqrst", 0, 1, "", 1, 0, 0); 3980 test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 0, 1); 3981 test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 1, 0); 3982 test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 2, -1); 3983 test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 4, -3); 3984 test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 5, -4); 3985 test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 6, -4); 3986 test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 0, 1); 3987 test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 1, -1); 3988 test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 2, -1); 3989 test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 3, -1); 3990 test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 4, -1); 3991 test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 5, -1); 3992 test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 0, 1); 3993 test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 1, -2); 3994 test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 2, -2); 3995 test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 3, -2); 3996 test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 4, -2); 3997 test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, 0, 1); 3998 test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, 1, -4); 3999 test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, 2, -4); 4000 test("abcdefghijklmnopqrst", 0, 1, "abcde", 5, 0, 1); 4001 test("abcdefghijklmnopqrst", 0, 1, "abcde", 5, 1, 1); 4002 test("abcdefghijklmnopqrst", 0, 1, "abcde", 6, 0, 0); 4003} 4004 4005void test38() 4006{ 4007 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 0, 1); 4008 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 1, 0); 4009 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 5, -4); 4010 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 9, -8); 4011 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 10, -9); 4012 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 11, -9); 4013 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 0, 1); 4014 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 1, -1); 4015 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 4, -1); 4016 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 8, -1); 4017 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 9, -1); 4018 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 10, -1); 4019 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 0, 1); 4020 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 1, -5); 4021 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 2, -5); 4022 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 4, -5); 4023 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 5, -5); 4024 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 6, -5); 4025 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, 0, 1); 4026 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, 1, -9); 4027 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, 2, -9); 4028 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 10, 0, 1); 4029 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 10, 1, 1); 4030 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 11, 0, 0); 4031 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 0, 1); 4032 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 1, 0); 4033 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 10, -9); 4034 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 19, -18); 4035 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 20, -19); 4036 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 21, -19); 4037 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 0, 1); 4038 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1); 4039 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 9, -1); 4040 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 18, -1); 4041 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 19, -1); 4042 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 20, -1); 4043 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 0, 1); 4044 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 1, -10); 4045 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 5, -10); 4046 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 9, -10); 4047 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10); 4048 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10); 4049 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, 0, 1); 4050 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, 1, -19); 4051 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, 2, -19); 4052 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 20, 0, 1); 4053 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 20, 1, 1); 4054 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0); 4055 test("abcdefghijklmnopqrst", 0, 10, "", 0, 0, 10); 4056 test("abcdefghijklmnopqrst", 0, 10, "", 0, 1, 10); 4057 test("abcdefghijklmnopqrst", 0, 10, "", 1, 0, 0); 4058 test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 0, 10); 4059 test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 1, 9); 4060 test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 2, 8); 4061 test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 4, 6); 4062 test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 5, 5); 4063 test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 6, 5); 4064 test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 0, 10); 4065 test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 1, -1); 4066 test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 2, -1); 4067 test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 3, -1); 4068 test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 4, -1); 4069 test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 5, -1); 4070 test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 0, 10); 4071 test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 1, -2); 4072 test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 2, -2); 4073 test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 3, -2); 4074 test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 4, -2); 4075 test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 0, 10); 4076 test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 1, -4); 4077 test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 2, -4); 4078 test("abcdefghijklmnopqrst", 0, 10, "abcde", 5, 0, 10); 4079 test("abcdefghijklmnopqrst", 0, 10, "abcde", 5, 1, 10); 4080 test("abcdefghijklmnopqrst", 0, 10, "abcde", 6, 0, 0); 4081 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 0, 10); 4082 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 1, 9); 4083 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 5, 5); 4084 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 9, 1); 4085 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 10, 0); 4086 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 11, 0); 4087 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 0, 10); 4088 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 1, -1); 4089 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 4, -1); 4090 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 8, -1); 4091 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 9, -1); 4092 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 10, -1); 4093 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 0, 10); 4094 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 1, -5); 4095 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 2, -5); 4096 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 4, -5); 4097 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 5, -5); 4098 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 6, -5); 4099 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 0, 10); 4100 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 1, -9); 4101 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 2, -9); 4102 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 10, 0, 10); 4103 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 10, 1, 10); 4104 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 11, 0, 0); 4105 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 0, 10); 4106 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 1, 9); 4107} 4108 4109void test39() 4110{ 4111 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 10, 0); 4112 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 19, -9); 4113 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 20, -10); 4114 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 21, -10); 4115 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 0, 10); 4116 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 1, -1); 4117 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 9, -1); 4118 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 18, -1); 4119 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 19, -1); 4120 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 20, -1); 4121 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 0, 10); 4122 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 1, -10); 4123 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 5, -10); 4124 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 9, -10); 4125 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 10, -10); 4126 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 11, -10); 4127 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, 0, 10); 4128 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, 1, -19); 4129 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, 2, -19); 4130 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 20, 0, 10); 4131 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 20, 1, 10); 4132 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 21, 0, 0); 4133 test("abcdefghijklmnopqrst", 0, 19, "", 0, 0, 19); 4134 test("abcdefghijklmnopqrst", 0, 19, "", 0, 1, 19); 4135 test("abcdefghijklmnopqrst", 0, 19, "", 1, 0, 0); 4136 test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 0, 19); 4137 test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 1, 18); 4138 test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 2, 17); 4139 test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 4, 15); 4140 test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 5, 14); 4141 test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 6, 14); 4142 test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 0, 19); 4143 test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 1, -1); 4144 test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 2, -1); 4145 test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 3, -1); 4146 test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 4, -1); 4147 test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 5, -1); 4148 test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 0, 19); 4149 test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 1, -2); 4150 test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 2, -2); 4151 test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 3, -2); 4152 test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 4, -2); 4153 test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 0, 19); 4154 test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 1, -4); 4155 test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 2, -4); 4156 test("abcdefghijklmnopqrst", 0, 19, "abcde", 5, 0, 19); 4157 test("abcdefghijklmnopqrst", 0, 19, "abcde", 5, 1, 19); 4158 test("abcdefghijklmnopqrst", 0, 19, "abcde", 6, 0, 0); 4159 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 0, 19); 4160 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 1, 18); 4161 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 5, 14); 4162 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 9, 10); 4163 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 10, 9); 4164 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 11, 9); 4165 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 0, 19); 4166 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 1, -1); 4167 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 4, -1); 4168 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 8, -1); 4169 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 9, -1); 4170 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 10, -1); 4171 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 0, 19); 4172 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 1, -5); 4173 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 2, -5); 4174 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 4, -5); 4175 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 5, -5); 4176 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 6, -5); 4177 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 0, 19); 4178 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 1, -9); 4179 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 2, -9); 4180 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 10, 0, 19); 4181 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 10, 1, 19); 4182 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 11, 0, 0); 4183 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 0, 19); 4184 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 1, 18); 4185 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 10, 9); 4186 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 19, 0); 4187 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 20, -1); 4188 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 21, -1); 4189 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 0, 19); 4190 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 1, -1); 4191 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 9, -1); 4192 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 18, -1); 4193 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 19, -1); 4194 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 20, -1); 4195 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 0, 19); 4196 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 1, -10); 4197 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 5, -10); 4198 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 9, -10); 4199 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 10, -10); 4200 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 11, -10); 4201 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 0, 19); 4202 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 1, -19); 4203 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 2, -19); 4204 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 20, 0, 19); 4205 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 20, 1, 19); 4206 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 21, 0, 0); 4207 test("abcdefghijklmnopqrst", 0, 20, "", 0, 0, 20); 4208 test("abcdefghijklmnopqrst", 0, 20, "", 0, 1, 20); 4209 test("abcdefghijklmnopqrst", 0, 20, "", 1, 0, 0); 4210 test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 0, 20); 4211} 4212 4213void test40() 4214{ 4215 test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 1, 19); 4216 test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 2, 18); 4217 test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 4, 16); 4218 test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 5, 15); 4219 test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 6, 15); 4220 test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 0, 20); 4221 test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 1, -1); 4222 test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 2, -1); 4223 test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 3, -1); 4224 test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 4, -1); 4225 test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 5, -1); 4226 test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 0, 20); 4227 test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 1, -2); 4228 test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 2, -2); 4229 test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 3, -2); 4230 test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 4, -2); 4231 test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 0, 20); 4232 test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 1, -4); 4233 test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 2, -4); 4234 test("abcdefghijklmnopqrst", 0, 20, "abcde", 5, 0, 20); 4235 test("abcdefghijklmnopqrst", 0, 20, "abcde", 5, 1, 20); 4236 test("abcdefghijklmnopqrst", 0, 20, "abcde", 6, 0, 0); 4237 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 0, 20); 4238 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 1, 19); 4239 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 5, 15); 4240 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 9, 11); 4241 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 10, 10); 4242 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 11, 10); 4243 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 0, 20); 4244 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 1, -1); 4245 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 4, -1); 4246 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 8, -1); 4247 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 9, -1); 4248 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 10, -1); 4249 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 0, 20); 4250 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 1, -5); 4251 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 2, -5); 4252 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 4, -5); 4253 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 5, -5); 4254 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 6, -5); 4255 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 0, 20); 4256 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 1, -9); 4257 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 2, -9); 4258 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10, 0, 20); 4259 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10, 1, 20); 4260 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 11, 0, 0); 4261 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 0, 20); 4262 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 1, 19); 4263 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 10, 10); 4264 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 19, 1); 4265 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 20, 0); 4266 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 21, 0); 4267 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 0, 20); 4268 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 1, -1); 4269 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 9, -1); 4270 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 18, -1); 4271 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 19, -1); 4272 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 20, -1); 4273 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 0, 20); 4274 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 1, -10); 4275 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 5, -10); 4276 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 9, -10); 4277 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 10, -10); 4278 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 11, -10); 4279 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 0, 20); 4280 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 1, -19); 4281 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 2, -19); 4282 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 20, 0, 20); 4283 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 20, 1, 20); 4284 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 21, 0, 0); 4285 test("abcdefghijklmnopqrst", 0, 21, "", 0, 0, 20); 4286 test("abcdefghijklmnopqrst", 0, 21, "", 0, 1, 20); 4287 test("abcdefghijklmnopqrst", 0, 21, "", 1, 0, 0); 4288 test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 0, 20); 4289 test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 1, 19); 4290 test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 2, 18); 4291 test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 4, 16); 4292 test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 5, 15); 4293 test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 6, 15); 4294 test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 0, 20); 4295 test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 1, -1); 4296 test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 2, -1); 4297 test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 3, -1); 4298 test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 4, -1); 4299 test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 5, -1); 4300 test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 0, 20); 4301 test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 1, -2); 4302 test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 2, -2); 4303 test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 3, -2); 4304 test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 4, -2); 4305 test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 0, 20); 4306 test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 1, -4); 4307 test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 2, -4); 4308 test("abcdefghijklmnopqrst", 0, 21, "abcde", 5, 0, 20); 4309 test("abcdefghijklmnopqrst", 0, 21, "abcde", 5, 1, 20); 4310 test("abcdefghijklmnopqrst", 0, 21, "abcde", 6, 0, 0); 4311 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 0, 20); 4312 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 1, 19); 4313 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 5, 15); 4314 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 9, 11); 4315} 4316 4317void test41() 4318{ 4319 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 10, 10); 4320 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 11, 10); 4321 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 0, 20); 4322 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 1, -1); 4323 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 4, -1); 4324 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 8, -1); 4325 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 9, -1); 4326 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 10, -1); 4327 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 0, 20); 4328 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 1, -5); 4329 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 2, -5); 4330 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 4, -5); 4331 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 5, -5); 4332 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 6, -5); 4333 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 0, 20); 4334 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 1, -9); 4335 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 2, -9); 4336 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10, 0, 20); 4337 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10, 1, 20); 4338 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 11, 0, 0); 4339 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 0, 20); 4340 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 1, 19); 4341 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 10, 10); 4342 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 19, 1); 4343 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 20, 0); 4344 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 21, 0); 4345 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 0, 20); 4346 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 1, -1); 4347 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 9, -1); 4348 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 18, -1); 4349 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 19, -1); 4350 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 20, -1); 4351 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 0, 20); 4352 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 1, -10); 4353 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 5, -10); 4354 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 9, -10); 4355 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 10, -10); 4356 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 11, -10); 4357 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 0, 20); 4358 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 1, -19); 4359 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 2, -19); 4360 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 20, 0, 20); 4361 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 20, 1, 20); 4362 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 21, 0, 0); 4363 test("abcdefghijklmnopqrst", 1, 0, "", 0, 0, 0); 4364 test("abcdefghijklmnopqrst", 1, 0, "", 0, 1, 0); 4365 test("abcdefghijklmnopqrst", 1, 0, "", 1, 0, 0); 4366 test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 0, 0); 4367 test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 1, -1); 4368 test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 2, -2); 4369 test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 4, -4); 4370 test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 5, -5); 4371 test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 6, -5); 4372 test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 0, 0); 4373 test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 1, -1); 4374 test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 2, -2); 4375 test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 3, -3); 4376 test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 4, -4); 4377 test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 5, -4); 4378 test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 0, 0); 4379 test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 1, -1); 4380 test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 2, -2); 4381 test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 3, -3); 4382 test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 4, -3); 4383 test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, 0, 0); 4384 test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, 1, -1); 4385 test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, 2, -1); 4386 test("abcdefghijklmnopqrst", 1, 0, "abcde", 5, 0, 0); 4387 test("abcdefghijklmnopqrst", 1, 0, "abcde", 5, 1, 0); 4388 test("abcdefghijklmnopqrst", 1, 0, "abcde", 6, 0, 0); 4389 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 0, 0); 4390 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 1, -1); 4391 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 5, -5); 4392 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 9, -9); 4393 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 10, -10); 4394 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 11, -10); 4395 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 0, 0); 4396 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 1, -1); 4397 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 4, -4); 4398 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 8, -8); 4399 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 9, -9); 4400 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 10, -9); 4401 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 0, 0); 4402 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 1, -1); 4403 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 2, -2); 4404 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 4, -4); 4405 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 5, -5); 4406 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 6, -5); 4407 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, 0, 0); 4408 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, 1, -1); 4409 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, 2, -1); 4410 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 10, 0, 0); 4411 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 10, 1, 0); 4412 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 11, 0, 0); 4413 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0); 4414 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 1, -1); 4415 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 10, -10); 4416 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 19, -19); 4417 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 20, -20); 4418 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 21, -20); 4419} 4420 4421void test42() 4422{ 4423 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0); 4424 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 1, -1); 4425 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 9, -9); 4426 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 18, -18); 4427 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 19, -19); 4428 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 20, -19); 4429 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0); 4430 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 1, -1); 4431 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 5, -5); 4432 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 9, -9); 4433 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 10, -10); 4434 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 11, -10); 4435 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0); 4436 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, 1, -1); 4437 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, 2, -1); 4438 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0); 4439 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0); 4440 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0); 4441 test("abcdefghijklmnopqrst", 1, 1, "", 0, 0, 1); 4442 test("abcdefghijklmnopqrst", 1, 1, "", 0, 1, 1); 4443 test("abcdefghijklmnopqrst", 1, 1, "", 1, 0, 0); 4444 test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 0, 1); 4445 test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 1, 1); 4446 test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 2, 1); 4447 test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 4, 1); 4448 test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 5, 1); 4449 test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 6, 1); 4450 test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 0, 1); 4451 test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 1, 0); 4452 test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 2, -1); 4453 test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 3, -2); 4454 test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 4, -3); 4455 test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 5, -3); 4456 test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 0, 1); 4457 test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 1, -1); 4458 test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 2, -1); 4459 test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 3, -1); 4460 test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 4, -1); 4461 test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 0, 1); 4462 test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 1, -3); 4463 test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 2, -3); 4464 test("abcdefghijklmnopqrst", 1, 1, "abcde", 5, 0, 1); 4465 test("abcdefghijklmnopqrst", 1, 1, "abcde", 5, 1, 1); 4466 test("abcdefghijklmnopqrst", 1, 1, "abcde", 6, 0, 0); 4467 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 0, 1); 4468 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 1, 1); 4469 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 5, 1); 4470 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 9, 1); 4471 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 10, 1); 4472 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 11, 1); 4473 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 0, 1); 4474 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 1, 0); 4475 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 4, -3); 4476 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 8, -7); 4477 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 9, -8); 4478 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 10, -8); 4479 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 0, 1); 4480 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 1, -4); 4481 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 2, -4); 4482 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 4, -4); 4483 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 5, -4); 4484 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 6, -4); 4485 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 0, 1); 4486 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 1, -8); 4487 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 2, -8); 4488 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 10, 0, 1); 4489 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 10, 1, 1); 4490 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 11, 0, 0); 4491 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 0, 1); 4492 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 1, 1); 4493 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 10, 1); 4494 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 19, 1); 4495 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 20, 1); 4496 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 21, 1); 4497 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 0, 1); 4498 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 1, 0); 4499 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 9, -8); 4500 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 18, -17); 4501 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 19, -18); 4502 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 20, -18); 4503 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 0, 1); 4504 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 1, -9); 4505 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 5, -9); 4506 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 9, -9); 4507 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 10, -9); 4508 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 11, -9); 4509 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 0, 1); 4510 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 1, -18); 4511 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 2, -18); 4512 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 20, 0, 1); 4513 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 20, 1, 1); 4514 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 21, 0, 0); 4515 test("abcdefghijklmnopqrst", 1, 9, "", 0, 0, 9); 4516 test("abcdefghijklmnopqrst", 1, 9, "", 0, 1, 9); 4517 test("abcdefghijklmnopqrst", 1, 9, "", 1, 0, 0); 4518 test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 0, 9); 4519 test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 1, 1); 4520 test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 2, 1); 4521 test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 4, 1); 4522 test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 5, 1); 4523} 4524 4525void test43() 4526{ 4527 test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 6, 1); 4528 test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 0, 9); 4529 test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 1, 8); 4530 test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 2, 7); 4531 test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 3, 6); 4532 test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 4, 5); 4533 test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 5, 5); 4534 test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 0, 9); 4535 test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 1, -1); 4536 test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 2, -1); 4537 test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 3, -1); 4538 test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 4, -1); 4539 test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 0, 9); 4540 test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 1, -3); 4541 test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 2, -3); 4542 test("abcdefghijklmnopqrst", 1, 9, "abcde", 5, 0, 9); 4543 test("abcdefghijklmnopqrst", 1, 9, "abcde", 5, 1, 9); 4544 test("abcdefghijklmnopqrst", 1, 9, "abcde", 6, 0, 0); 4545 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 0, 9); 4546 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 1, 1); 4547 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 5, 1); 4548 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 9, 1); 4549 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 10, 1); 4550 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 11, 1); 4551 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 0, 9); 4552 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 1, 8); 4553 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 4, 5); 4554 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 8, 1); 4555 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 9, 0); 4556 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 10, 0); 4557 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 0, 9); 4558 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 1, -4); 4559 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 2, -4); 4560 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 4, -4); 4561 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 5, -4); 4562 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 6, -4); 4563 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 0, 9); 4564 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 1, -8); 4565 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 2, -8); 4566 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 10, 0, 9); 4567 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 10, 1, 9); 4568 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 11, 0, 0); 4569 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 0, 9); 4570 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 1, 1); 4571 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 10, 1); 4572 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 19, 1); 4573 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 20, 1); 4574 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 21, 1); 4575 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 0, 9); 4576 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 1, 8); 4577 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 9, 0); 4578 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 18, -9); 4579 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 19, -10); 4580 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 20, -10); 4581 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 0, 9); 4582 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 1, -9); 4583 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 5, -9); 4584 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 9, -9); 4585 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 10, -9); 4586 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 11, -9); 4587 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 0, 9); 4588 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 1, -18); 4589 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 2, -18); 4590 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 20, 0, 9); 4591 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 20, 1, 9); 4592 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 21, 0, 0); 4593 test("abcdefghijklmnopqrst", 1, 18, "", 0, 0, 18); 4594 test("abcdefghijklmnopqrst", 1, 18, "", 0, 1, 18); 4595 test("abcdefghijklmnopqrst", 1, 18, "", 1, 0, 0); 4596 test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 0, 18); 4597 test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 1, 1); 4598 test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 2, 1); 4599 test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 4, 1); 4600 test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 5, 1); 4601 test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 6, 1); 4602 test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 0, 18); 4603 test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 1, 17); 4604 test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 2, 16); 4605 test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 3, 15); 4606 test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 4, 14); 4607 test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 5, 14); 4608 test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 0, 18); 4609 test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 1, -1); 4610 test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 2, -1); 4611 test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 3, -1); 4612 test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 4, -1); 4613 test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 0, 18); 4614 test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 1, -3); 4615 test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 2, -3); 4616 test("abcdefghijklmnopqrst", 1, 18, "abcde", 5, 0, 18); 4617 test("abcdefghijklmnopqrst", 1, 18, "abcde", 5, 1, 18); 4618 test("abcdefghijklmnopqrst", 1, 18, "abcde", 6, 0, 0); 4619 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 0, 18); 4620 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 1, 1); 4621 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 5, 1); 4622 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 9, 1); 4623 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 10, 1); 4624 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 11, 1); 4625 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 0, 18); 4626 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 1, 17); 4627} 4628 4629void test44() 4630{ 4631 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 4, 14); 4632 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 8, 10); 4633 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 9, 9); 4634 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 10, 9); 4635 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 0, 18); 4636 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 1, -4); 4637 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 2, -4); 4638 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 4, -4); 4639 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 5, -4); 4640 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 6, -4); 4641 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 0, 18); 4642 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 1, -8); 4643 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 2, -8); 4644 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 10, 0, 18); 4645 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 10, 1, 18); 4646 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 11, 0, 0); 4647 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 0, 18); 4648 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 1, 1); 4649 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 10, 1); 4650 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 19, 1); 4651 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 20, 1); 4652 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 21, 1); 4653 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 0, 18); 4654 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 1, 17); 4655 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 9, 9); 4656 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 18, 0); 4657 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 19, -1); 4658 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 20, -1); 4659 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 0, 18); 4660 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 1, -9); 4661 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 5, -9); 4662 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 9, -9); 4663 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 10, -9); 4664 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 11, -9); 4665 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 0, 18); 4666 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 1, -18); 4667 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 2, -18); 4668 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 20, 0, 18); 4669 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 20, 1, 18); 4670 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 21, 0, 0); 4671 test("abcdefghijklmnopqrst", 1, 19, "", 0, 0, 19); 4672 test("abcdefghijklmnopqrst", 1, 19, "", 0, 1, 19); 4673 test("abcdefghijklmnopqrst", 1, 19, "", 1, 0, 0); 4674 test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 0, 19); 4675 test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 1, 1); 4676 test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 2, 1); 4677 test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 4, 1); 4678 test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 5, 1); 4679 test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 6, 1); 4680 test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 0, 19); 4681 test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 1, 18); 4682 test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 2, 17); 4683 test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 3, 16); 4684 test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 4, 15); 4685 test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 5, 15); 4686 test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 0, 19); 4687 test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 1, -1); 4688 test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 2, -1); 4689 test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 3, -1); 4690 test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 4, -1); 4691 test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 0, 19); 4692 test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 1, -3); 4693 test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 2, -3); 4694 test("abcdefghijklmnopqrst", 1, 19, "abcde", 5, 0, 19); 4695 test("abcdefghijklmnopqrst", 1, 19, "abcde", 5, 1, 19); 4696 test("abcdefghijklmnopqrst", 1, 19, "abcde", 6, 0, 0); 4697 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 0, 19); 4698 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 1, 1); 4699 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 5, 1); 4700 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 9, 1); 4701 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 10, 1); 4702 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 11, 1); 4703 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 0, 19); 4704 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 1, 18); 4705 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 4, 15); 4706 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 8, 11); 4707 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 9, 10); 4708 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 10, 10); 4709 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 0, 19); 4710 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 1, -4); 4711 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 2, -4); 4712 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 4, -4); 4713 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 5, -4); 4714 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 6, -4); 4715 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 0, 19); 4716 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 1, -8); 4717 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 2, -8); 4718 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 10, 0, 19); 4719 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 10, 1, 19); 4720 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 11, 0, 0); 4721 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 0, 19); 4722 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 1, 1); 4723 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 10, 1); 4724 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 19, 1); 4725 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 20, 1); 4726 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 21, 1); 4727 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 0, 19); 4728 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 1, 18); 4729 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 9, 10); 4730 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 18, 1); 4731} 4732 4733void test45() 4734{ 4735 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 19, 0); 4736 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 20, 0); 4737 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 0, 19); 4738 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 1, -9); 4739 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 5, -9); 4740 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 9, -9); 4741 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 10, -9); 4742 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 11, -9); 4743 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 0, 19); 4744 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 1, -18); 4745 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 2, -18); 4746 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 20, 0, 19); 4747 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 20, 1, 19); 4748 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 21, 0, 0); 4749 test("abcdefghijklmnopqrst", 1, 20, "", 0, 0, 19); 4750 test("abcdefghijklmnopqrst", 1, 20, "", 0, 1, 19); 4751 test("abcdefghijklmnopqrst", 1, 20, "", 1, 0, 0); 4752 test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 0, 19); 4753 test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 1, 1); 4754 test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 2, 1); 4755 test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 4, 1); 4756 test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 5, 1); 4757 test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 6, 1); 4758 test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 0, 19); 4759 test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 1, 18); 4760 test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 2, 17); 4761 test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 3, 16); 4762 test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 4, 15); 4763 test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 5, 15); 4764 test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 0, 19); 4765 test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 1, -1); 4766 test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 2, -1); 4767 test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 3, -1); 4768 test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 4, -1); 4769 test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 0, 19); 4770 test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 1, -3); 4771 test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 2, -3); 4772 test("abcdefghijklmnopqrst", 1, 20, "abcde", 5, 0, 19); 4773 test("abcdefghijklmnopqrst", 1, 20, "abcde", 5, 1, 19); 4774 test("abcdefghijklmnopqrst", 1, 20, "abcde", 6, 0, 0); 4775 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 0, 19); 4776 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 1, 1); 4777 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 5, 1); 4778 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 9, 1); 4779 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 10, 1); 4780 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 11, 1); 4781 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 0, 19); 4782 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 1, 18); 4783 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 4, 15); 4784 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 8, 11); 4785 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 9, 10); 4786 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 10, 10); 4787 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 0, 19); 4788 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 1, -4); 4789 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 2, -4); 4790 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 4, -4); 4791 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 5, -4); 4792 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 6, -4); 4793 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 0, 19); 4794 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 1, -8); 4795 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 2, -8); 4796 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 10, 0, 19); 4797 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 10, 1, 19); 4798 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 11, 0, 0); 4799 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 0, 19); 4800 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 1, 1); 4801 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 10, 1); 4802 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 19, 1); 4803 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 20, 1); 4804 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 21, 1); 4805 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 0, 19); 4806 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 1, 18); 4807 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 9, 10); 4808 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 18, 1); 4809 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 19, 0); 4810 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 20, 0); 4811 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 0, 19); 4812 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 1, -9); 4813 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 5, -9); 4814 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 9, -9); 4815 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 10, -9); 4816 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 11, -9); 4817 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 0, 19); 4818 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 1, -18); 4819 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 2, -18); 4820 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 20, 0, 19); 4821 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 20, 1, 19); 4822 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 21, 0, 0); 4823 test("abcdefghijklmnopqrst", 10, 0, "", 0, 0, 0); 4824 test("abcdefghijklmnopqrst", 10, 0, "", 0, 1, 0); 4825 test("abcdefghijklmnopqrst", 10, 0, "", 1, 0, 0); 4826 test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 0, 0); 4827 test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 1, -1); 4828 test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 2, -2); 4829 test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 4, -4); 4830 test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 5, -5); 4831 test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 6, -5); 4832 test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 0, 0); 4833 test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 1, -1); 4834 test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 2, -2); 4835} 4836 4837void test46() 4838{ 4839 test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 3, -3); 4840 test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 4, -4); 4841 test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 5, -4); 4842 test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 0, 0); 4843 test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 1, -1); 4844 test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 2, -2); 4845 test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 3, -3); 4846 test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 4, -3); 4847 test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, 0, 0); 4848 test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, 1, -1); 4849 test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, 2, -1); 4850 test("abcdefghijklmnopqrst", 10, 0, "abcde", 5, 0, 0); 4851 test("abcdefghijklmnopqrst", 10, 0, "abcde", 5, 1, 0); 4852 test("abcdefghijklmnopqrst", 10, 0, "abcde", 6, 0, 0); 4853 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 0, 0); 4854 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 1, -1); 4855 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 5, -5); 4856 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 9, -9); 4857 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 10, -10); 4858 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 11, -10); 4859 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 0, 0); 4860 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 1, -1); 4861 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 4, -4); 4862 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 8, -8); 4863 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 9, -9); 4864 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 10, -9); 4865 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 0, 0); 4866 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 1, -1); 4867 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 2, -2); 4868 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 4, -4); 4869 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 5, -5); 4870 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 6, -5); 4871 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, 0, 0); 4872 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, 1, -1); 4873 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, 2, -1); 4874 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 10, 0, 0); 4875 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 10, 1, 0); 4876 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 11, 0, 0); 4877 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 0, 0); 4878 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 1, -1); 4879 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 10, -10); 4880 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 19, -19); 4881 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 20, -20); 4882 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 21, -20); 4883 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 0, 0); 4884 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 1, -1); 4885 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 9, -9); 4886 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 18, -18); 4887 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 19, -19); 4888 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 20, -19); 4889 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 0, 0); 4890 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 1, -1); 4891 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 5, -5); 4892 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 9, -9); 4893 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 10, -10); 4894 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 11, -10); 4895 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, 0, 0); 4896 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, 1, -1); 4897 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, 2, -1); 4898 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 20, 0, 0); 4899 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 20, 1, 0); 4900 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 21, 0, 0); 4901 test("abcdefghijklmnopqrst", 10, 1, "", 0, 0, 1); 4902 test("abcdefghijklmnopqrst", 10, 1, "", 0, 1, 1); 4903 test("abcdefghijklmnopqrst", 10, 1, "", 1, 0, 0); 4904 test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 0, 1); 4905 test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 1, 10); 4906 test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 2, 10); 4907 test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 4, 10); 4908 test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 5, 10); 4909 test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 6, 10); 4910 test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 0, 1); 4911 test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 1, 9); 4912 test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 2, 9); 4913 test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 3, 9); 4914 test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 4, 9); 4915 test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 5, 9); 4916 test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 0, 1); 4917 test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 1, 8); 4918 test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 2, 8); 4919 test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 3, 8); 4920 test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 4, 8); 4921 test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 0, 1); 4922 test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 1, 6); 4923 test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 2, 6); 4924 test("abcdefghijklmnopqrst", 10, 1, "abcde", 5, 0, 1); 4925 test("abcdefghijklmnopqrst", 10, 1, "abcde", 5, 1, 1); 4926 test("abcdefghijklmnopqrst", 10, 1, "abcde", 6, 0, 0); 4927 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 0, 1); 4928 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 1, 10); 4929 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 5, 10); 4930 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 9, 10); 4931 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 10, 10); 4932 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 11, 10); 4933 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 0, 1); 4934 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 1, 9); 4935 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 4, 9); 4936 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 8, 9); 4937 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 9, 9); 4938 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 10, 9); 4939} 4940 4941void test47() 4942{ 4943 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 0, 1); 4944 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 1, 5); 4945 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 2, 5); 4946 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 4, 5); 4947 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 5, 5); 4948 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 6, 5); 4949 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 0, 1); 4950 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 1, 1); 4951 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 2, 1); 4952 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10, 0, 1); 4953 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10, 1, 1); 4954 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 11, 0, 0); 4955 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 0, 1); 4956 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 1, 10); 4957 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 10, 10); 4958 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 19, 10); 4959 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 20, 10); 4960 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 21, 10); 4961 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 0, 1); 4962 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 1, 9); 4963 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 9, 9); 4964 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 18, 9); 4965 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 19, 9); 4966 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 20, 9); 4967 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 0, 1); 4968 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 1, 0); 4969 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 5, -4); 4970 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 9, -8); 4971 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 10, -9); 4972 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 11, -9); 4973 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 0, 1); 4974 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 1, -9); 4975 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 2, -9); 4976 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 20, 0, 1); 4977 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 20, 1, 1); 4978 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 21, 0, 0); 4979 test("abcdefghijklmnopqrst", 10, 5, "", 0, 0, 5); 4980 test("abcdefghijklmnopqrst", 10, 5, "", 0, 1, 5); 4981 test("abcdefghijklmnopqrst", 10, 5, "", 1, 0, 0); 4982 test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 0, 5); 4983 test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 1, 10); 4984 test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 2, 10); 4985 test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 4, 10); 4986 test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 5, 10); 4987 test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 6, 10); 4988 test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 0, 5); 4989 test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 1, 9); 4990 test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 2, 9); 4991 test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 3, 9); 4992 test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 4, 9); 4993 test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 5, 9); 4994 test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 0, 5); 4995 test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 1, 8); 4996 test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 2, 8); 4997 test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 3, 8); 4998 test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 4, 8); 4999 test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 0, 5); 5000 test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 1, 6); 5001 test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 2, 6); 5002 test("abcdefghijklmnopqrst", 10, 5, "abcde", 5, 0, 5); 5003 test("abcdefghijklmnopqrst", 10, 5, "abcde", 5, 1, 5); 5004 test("abcdefghijklmnopqrst", 10, 5, "abcde", 6, 0, 0); 5005 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 0, 5); 5006 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 1, 10); 5007 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 5, 10); 5008 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 9, 10); 5009 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 10, 10); 5010 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 11, 10); 5011 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 0, 5); 5012 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 1, 9); 5013 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 4, 9); 5014 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 8, 9); 5015 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 9, 9); 5016 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 10, 9); 5017 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 0, 5); 5018 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 1, 5); 5019 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 2, 5); 5020 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 4, 5); 5021 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 5, 5); 5022 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 6, 5); 5023 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 0, 5); 5024 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 1, 1); 5025 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 2, 1); 5026 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10, 0, 5); 5027 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10, 1, 5); 5028 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 11, 0, 0); 5029 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 0, 5); 5030 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 1, 10); 5031 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 10, 10); 5032 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 19, 10); 5033 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 20, 10); 5034 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 21, 10); 5035 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 0, 5); 5036 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 1, 9); 5037 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 9, 9); 5038 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 18, 9); 5039 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 19, 9); 5040 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 20, 9); 5041 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 0, 5); 5042 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 1, 4); 5043} 5044 5045void test48() 5046{ 5047 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 5, 0); 5048 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 9, -4); 5049 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 10, -5); 5050 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 11, -5); 5051 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 0, 5); 5052 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 1, -9); 5053 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 2, -9); 5054 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 20, 0, 5); 5055 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 20, 1, 5); 5056 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 21, 0, 0); 5057 test("abcdefghijklmnopqrst", 10, 9, "", 0, 0, 9); 5058 test("abcdefghijklmnopqrst", 10, 9, "", 0, 1, 9); 5059 test("abcdefghijklmnopqrst", 10, 9, "", 1, 0, 0); 5060 test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 0, 9); 5061 test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 1, 10); 5062 test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 2, 10); 5063 test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 4, 10); 5064 test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 5, 10); 5065 test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 6, 10); 5066 test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 0, 9); 5067 test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 1, 9); 5068 test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 2, 9); 5069 test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 3, 9); 5070 test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 4, 9); 5071 test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 5, 9); 5072 test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 0, 9); 5073 test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 1, 8); 5074 test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 2, 8); 5075 test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 3, 8); 5076 test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 4, 8); 5077 test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 0, 9); 5078 test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 1, 6); 5079 test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 2, 6); 5080 test("abcdefghijklmnopqrst", 10, 9, "abcde", 5, 0, 9); 5081 test("abcdefghijklmnopqrst", 10, 9, "abcde", 5, 1, 9); 5082 test("abcdefghijklmnopqrst", 10, 9, "abcde", 6, 0, 0); 5083 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 0, 9); 5084 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 1, 10); 5085 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 5, 10); 5086 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 9, 10); 5087 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 10, 10); 5088 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 11, 10); 5089 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 0, 9); 5090 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 1, 9); 5091 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 4, 9); 5092 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 8, 9); 5093 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 9, 9); 5094 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 10, 9); 5095 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 0, 9); 5096 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 1, 5); 5097 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 2, 5); 5098 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 4, 5); 5099 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 5, 5); 5100 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 6, 5); 5101 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 0, 9); 5102 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 1, 1); 5103 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 2, 1); 5104 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10, 0, 9); 5105 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10, 1, 9); 5106 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 11, 0, 0); 5107 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 0, 9); 5108 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 1, 10); 5109 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 10, 10); 5110 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 19, 10); 5111 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 20, 10); 5112 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 21, 10); 5113 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 0, 9); 5114 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 1, 9); 5115 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 9, 9); 5116 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 18, 9); 5117 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 19, 9); 5118 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 20, 9); 5119 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 0, 9); 5120 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 1, 8); 5121 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 5, 4); 5122 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 9, 0); 5123 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 10, -1); 5124 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 11, -1); 5125 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 0, 9); 5126 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 1, -9); 5127 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 2, -9); 5128 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 20, 0, 9); 5129 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 20, 1, 9); 5130 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 21, 0, 0); 5131 test("abcdefghijklmnopqrst", 10, 10, "", 0, 0, 10); 5132 test("abcdefghijklmnopqrst", 10, 10, "", 0, 1, 10); 5133 test("abcdefghijklmnopqrst", 10, 10, "", 1, 0, 0); 5134 test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 0, 10); 5135 test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 1, 10); 5136 test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 2, 10); 5137 test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 4, 10); 5138 test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 5, 10); 5139 test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 6, 10); 5140 test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 0, 10); 5141 test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 1, 9); 5142 test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 2, 9); 5143 test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 3, 9); 5144 test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 4, 9); 5145 test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 5, 9); 5146 test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 0, 10); 5147} 5148 5149void test49() 5150{ 5151 test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 1, 8); 5152 test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 2, 8); 5153 test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 3, 8); 5154 test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 4, 8); 5155 test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 0, 10); 5156 test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 1, 6); 5157 test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 2, 6); 5158 test("abcdefghijklmnopqrst", 10, 10, "abcde", 5, 0, 10); 5159 test("abcdefghijklmnopqrst", 10, 10, "abcde", 5, 1, 10); 5160 test("abcdefghijklmnopqrst", 10, 10, "abcde", 6, 0, 0); 5161 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 0, 10); 5162 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 1, 10); 5163 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 5, 10); 5164 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 9, 10); 5165 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 10, 10); 5166 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 11, 10); 5167 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 0, 10); 5168 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 1, 9); 5169 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 4, 9); 5170 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 8, 9); 5171 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 9, 9); 5172 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 10, 9); 5173 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 0, 10); 5174 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 1, 5); 5175 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 2, 5); 5176 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 4, 5); 5177 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 5, 5); 5178 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 6, 5); 5179 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 0, 10); 5180 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 1, 1); 5181 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 2, 1); 5182 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10, 0, 10); 5183 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10, 1, 10); 5184 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 11, 0, 0); 5185 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 0, 10); 5186 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 1, 10); 5187 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 10, 10); 5188 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 19, 10); 5189 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 20, 10); 5190 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 21, 10); 5191 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 0, 10); 5192 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 1, 9); 5193 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 9, 9); 5194 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 18, 9); 5195 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 19, 9); 5196 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 20, 9); 5197 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 0, 10); 5198 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 1, 9); 5199 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 5, 5); 5200 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 9, 1); 5201 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 10, 0); 5202 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 11, 0); 5203 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 0, 10); 5204 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 1, -9); 5205 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 2, -9); 5206 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 20, 0, 10); 5207 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 20, 1, 10); 5208 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 21, 0, 0); 5209 test("abcdefghijklmnopqrst", 10, 11, "", 0, 0, 10); 5210 test("abcdefghijklmnopqrst", 10, 11, "", 0, 1, 10); 5211 test("abcdefghijklmnopqrst", 10, 11, "", 1, 0, 0); 5212 test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 0, 10); 5213 test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 1, 10); 5214 test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 2, 10); 5215 test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 4, 10); 5216 test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 5, 10); 5217 test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 6, 10); 5218 test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 0, 10); 5219 test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 1, 9); 5220 test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 2, 9); 5221 test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 3, 9); 5222 test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 4, 9); 5223 test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 5, 9); 5224 test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 0, 10); 5225 test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 1, 8); 5226 test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 2, 8); 5227 test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 3, 8); 5228 test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 4, 8); 5229 test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 0, 10); 5230 test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 1, 6); 5231 test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 2, 6); 5232 test("abcdefghijklmnopqrst", 10, 11, "abcde", 5, 0, 10); 5233 test("abcdefghijklmnopqrst", 10, 11, "abcde", 5, 1, 10); 5234 test("abcdefghijklmnopqrst", 10, 11, "abcde", 6, 0, 0); 5235 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 0, 10); 5236 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 1, 10); 5237 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 5, 10); 5238 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 9, 10); 5239 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 10, 10); 5240 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 11, 10); 5241 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 0, 10); 5242 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 1, 9); 5243 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 4, 9); 5244 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 8, 9); 5245 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 9, 9); 5246 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 10, 9); 5247 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 0, 10); 5248 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 1, 5); 5249 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 2, 5); 5250 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 4, 5); 5251} 5252 5253void test50() 5254{ 5255 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 5, 5); 5256 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 6, 5); 5257 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 0, 10); 5258 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 1, 1); 5259 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 2, 1); 5260 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10, 0, 10); 5261 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10, 1, 10); 5262 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 11, 0, 0); 5263 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 0, 10); 5264 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 1, 10); 5265 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 10, 10); 5266 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 19, 10); 5267 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 20, 10); 5268 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 21, 10); 5269 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 0, 10); 5270 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 1, 9); 5271 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 9, 9); 5272 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 18, 9); 5273 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 19, 9); 5274 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 20, 9); 5275 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 0, 10); 5276 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 1, 9); 5277 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 5, 5); 5278 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 9, 1); 5279 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 10, 0); 5280 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 11, 0); 5281 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 0, 10); 5282 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 1, -9); 5283 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 2, -9); 5284 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 20, 0, 10); 5285 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 20, 1, 10); 5286 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 21, 0, 0); 5287 test("abcdefghijklmnopqrst", 19, 0, "", 0, 0, 0); 5288 test("abcdefghijklmnopqrst", 19, 0, "", 0, 1, 0); 5289 test("abcdefghijklmnopqrst", 19, 0, "", 1, 0, 0); 5290 test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 0, 0); 5291 test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 1, -1); 5292 test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 2, -2); 5293 test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 4, -4); 5294 test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 5, -5); 5295 test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 6, -5); 5296 test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 0, 0); 5297 test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 1, -1); 5298 test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 2, -2); 5299 test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 3, -3); 5300 test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 4, -4); 5301 test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 5, -4); 5302 test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 0, 0); 5303 test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 1, -1); 5304 test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 2, -2); 5305 test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 3, -3); 5306 test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 4, -3); 5307 test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, 0, 0); 5308 test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, 1, -1); 5309 test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, 2, -1); 5310 test("abcdefghijklmnopqrst", 19, 0, "abcde", 5, 0, 0); 5311 test("abcdefghijklmnopqrst", 19, 0, "abcde", 5, 1, 0); 5312 test("abcdefghijklmnopqrst", 19, 0, "abcde", 6, 0, 0); 5313 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 0, 0); 5314 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 1, -1); 5315 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 5, -5); 5316 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 9, -9); 5317 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 10, -10); 5318 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 11, -10); 5319 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 0, 0); 5320 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 1, -1); 5321 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 4, -4); 5322 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 8, -8); 5323 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 9, -9); 5324 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 10, -9); 5325 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 0, 0); 5326 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 1, -1); 5327 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 2, -2); 5328 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 4, -4); 5329 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 5, -5); 5330 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 6, -5); 5331 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, 0, 0); 5332 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, 1, -1); 5333 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, 2, -1); 5334 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 10, 0, 0); 5335 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 10, 1, 0); 5336 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 11, 0, 0); 5337 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 0, 0); 5338 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 1, -1); 5339 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 10, -10); 5340 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 19, -19); 5341 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 20, -20); 5342 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 21, -20); 5343 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 0, 0); 5344 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 1, -1); 5345 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 9, -9); 5346 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 18, -18); 5347 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 19, -19); 5348 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 20, -19); 5349 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 0, 0); 5350 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 1, -1); 5351 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 5, -5); 5352 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 9, -9); 5353 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 10, -10); 5354 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 11, -10); 5355} 5356 5357void test51() 5358{ 5359 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, 0, 0); 5360 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, 1, -1); 5361 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, 2, -1); 5362 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 20, 0, 0); 5363 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 20, 1, 0); 5364 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 21, 0, 0); 5365 test("abcdefghijklmnopqrst", 19, 1, "", 0, 0, 1); 5366 test("abcdefghijklmnopqrst", 19, 1, "", 0, 1, 1); 5367 test("abcdefghijklmnopqrst", 19, 1, "", 1, 0, 0); 5368 test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 0, 1); 5369 test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 1, 19); 5370 test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 2, 19); 5371 test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 4, 19); 5372 test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 5, 19); 5373 test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 6, 19); 5374 test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 0, 1); 5375 test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 1, 18); 5376 test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 2, 18); 5377 test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 3, 18); 5378 test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 4, 18); 5379 test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 5, 18); 5380 test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 0, 1); 5381 test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 1, 17); 5382 test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 2, 17); 5383 test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 3, 17); 5384 test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 4, 17); 5385 test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 0, 1); 5386 test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 1, 15); 5387 test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 2, 15); 5388 test("abcdefghijklmnopqrst", 19, 1, "abcde", 5, 0, 1); 5389 test("abcdefghijklmnopqrst", 19, 1, "abcde", 5, 1, 1); 5390 test("abcdefghijklmnopqrst", 19, 1, "abcde", 6, 0, 0); 5391 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 0, 1); 5392 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 1, 19); 5393 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 5, 19); 5394 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 9, 19); 5395 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 10, 19); 5396 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 11, 19); 5397 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 0, 1); 5398 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 1, 18); 5399 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 4, 18); 5400 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 8, 18); 5401 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 9, 18); 5402 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 10, 18); 5403 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 0, 1); 5404 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 1, 14); 5405 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 2, 14); 5406 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 4, 14); 5407 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 5, 14); 5408 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 6, 14); 5409 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 0, 1); 5410 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 1, 10); 5411 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 2, 10); 5412 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 10, 0, 1); 5413 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 10, 1, 1); 5414 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 11, 0, 0); 5415 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 0, 1); 5416 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 1, 19); 5417 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 10, 19); 5418 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 19, 19); 5419 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 20, 19); 5420 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 21, 19); 5421 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 0, 1); 5422 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 1, 18); 5423 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 9, 18); 5424 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 18, 18); 5425 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 19, 18); 5426 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 20, 18); 5427 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 0, 1); 5428 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 1, 9); 5429 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 5, 9); 5430 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 9, 9); 5431 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 10, 9); 5432 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 11, 9); 5433 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 0, 1); 5434 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 1, 0); 5435 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 2, 0); 5436 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 20, 0, 1); 5437 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 20, 1, 1); 5438 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 21, 0, 0); 5439 test("abcdefghijklmnopqrst", 19, 2, "", 0, 0, 1); 5440 test("abcdefghijklmnopqrst", 19, 2, "", 0, 1, 1); 5441 test("abcdefghijklmnopqrst", 19, 2, "", 1, 0, 0); 5442 test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 0, 1); 5443 test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 1, 19); 5444 test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 2, 19); 5445 test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 4, 19); 5446 test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 5, 19); 5447 test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 6, 19); 5448 test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 0, 1); 5449 test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 1, 18); 5450 test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 2, 18); 5451 test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 3, 18); 5452 test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 4, 18); 5453 test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 5, 18); 5454 test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 0, 1); 5455 test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 1, 17); 5456 test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 2, 17); 5457 test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 3, 17); 5458 test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 4, 17); 5459} 5460 5461void test52() 5462{ 5463 test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 0, 1); 5464 test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 1, 15); 5465 test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 2, 15); 5466 test("abcdefghijklmnopqrst", 19, 2, "abcde", 5, 0, 1); 5467 test("abcdefghijklmnopqrst", 19, 2, "abcde", 5, 1, 1); 5468 test("abcdefghijklmnopqrst", 19, 2, "abcde", 6, 0, 0); 5469 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 0, 1); 5470 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 1, 19); 5471 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 5, 19); 5472 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 9, 19); 5473 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 10, 19); 5474 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 11, 19); 5475 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 0, 1); 5476 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 1, 18); 5477 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 4, 18); 5478 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 8, 18); 5479 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 9, 18); 5480 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 10, 18); 5481 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 0, 1); 5482 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 1, 14); 5483 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 2, 14); 5484 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 4, 14); 5485 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 5, 14); 5486 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 6, 14); 5487 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 0, 1); 5488 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 1, 10); 5489 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 2, 10); 5490 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 10, 0, 1); 5491 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 10, 1, 1); 5492 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 11, 0, 0); 5493 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 0, 1); 5494 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 1, 19); 5495 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 10, 19); 5496 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 19, 19); 5497 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 20, 19); 5498 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 21, 19); 5499 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 0, 1); 5500 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 1, 18); 5501 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 9, 18); 5502 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 18, 18); 5503 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 19, 18); 5504 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 20, 18); 5505 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 0, 1); 5506 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 1, 9); 5507 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 5, 9); 5508 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 9, 9); 5509 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 10, 9); 5510 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 11, 9); 5511 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 0, 1); 5512 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 1, 0); 5513 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 2, 0); 5514 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 20, 0, 1); 5515 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 20, 1, 1); 5516 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 21, 0, 0); 5517 test("abcdefghijklmnopqrst", 20, 0, "", 0, 0, 0); 5518 test("abcdefghijklmnopqrst", 20, 0, "", 0, 1, 0); 5519 test("abcdefghijklmnopqrst", 20, 0, "", 1, 0, 0); 5520 test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 0, 0); 5521 test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 1, -1); 5522 test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 2, -2); 5523 test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 4, -4); 5524 test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 5, -5); 5525 test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 6, -5); 5526 test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 0, 0); 5527 test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 1, -1); 5528 test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 2, -2); 5529 test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 3, -3); 5530 test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 4, -4); 5531 test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 5, -4); 5532 test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 0, 0); 5533 test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 1, -1); 5534 test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 2, -2); 5535 test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 3, -3); 5536 test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 4, -3); 5537 test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, 0, 0); 5538 test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, 1, -1); 5539 test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, 2, -1); 5540 test("abcdefghijklmnopqrst", 20, 0, "abcde", 5, 0, 0); 5541 test("abcdefghijklmnopqrst", 20, 0, "abcde", 5, 1, 0); 5542 test("abcdefghijklmnopqrst", 20, 0, "abcde", 6, 0, 0); 5543 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 0, 0); 5544 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 1, -1); 5545 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 5, -5); 5546 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 9, -9); 5547 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 10, -10); 5548 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 11, -10); 5549 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 0, 0); 5550 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 1, -1); 5551 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 4, -4); 5552 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 8, -8); 5553 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 9, -9); 5554 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 10, -9); 5555 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 0, 0); 5556 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 1, -1); 5557 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 2, -2); 5558 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 4, -4); 5559 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 5, -5); 5560 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 6, -5); 5561 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, 0, 0); 5562 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, 1, -1); 5563} 5564 5565void test53() 5566{ 5567 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, 2, -1); 5568 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 10, 0, 0); 5569 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 10, 1, 0); 5570 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 11, 0, 0); 5571 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 0, 0); 5572 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 1, -1); 5573 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 10, -10); 5574 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 19, -19); 5575 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 20, -20); 5576 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 21, -20); 5577 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 0, 0); 5578 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 1, -1); 5579 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 9, -9); 5580 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 18, -18); 5581 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 19, -19); 5582 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 20, -19); 5583 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 0, 0); 5584 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 1, -1); 5585 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 5, -5); 5586 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 9, -9); 5587 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 10, -10); 5588 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 11, -10); 5589 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, 0, 0); 5590 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, 1, -1); 5591 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, 2, -1); 5592 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 20, 0, 0); 5593 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 20, 1, 0); 5594 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 21, 0, 0); 5595 test("abcdefghijklmnopqrst", 20, 1, "", 0, 0, 0); 5596 test("abcdefghijklmnopqrst", 20, 1, "", 0, 1, 0); 5597 test("abcdefghijklmnopqrst", 20, 1, "", 1, 0, 0); 5598 test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 0, 0); 5599 test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 1, -1); 5600 test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 2, -2); 5601 test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 4, -4); 5602 test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 5, -5); 5603 test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 6, -5); 5604 test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 0, 0); 5605 test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 1, -1); 5606 test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 2, -2); 5607 test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 3, -3); 5608 test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 4, -4); 5609 test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 5, -4); 5610 test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 0, 0); 5611 test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 1, -1); 5612 test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 2, -2); 5613 test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 3, -3); 5614 test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 4, -3); 5615 test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, 0, 0); 5616 test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, 1, -1); 5617 test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, 2, -1); 5618 test("abcdefghijklmnopqrst", 20, 1, "abcde", 5, 0, 0); 5619 test("abcdefghijklmnopqrst", 20, 1, "abcde", 5, 1, 0); 5620 test("abcdefghijklmnopqrst", 20, 1, "abcde", 6, 0, 0); 5621 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 0, 0); 5622 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 1, -1); 5623 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 5, -5); 5624 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 9, -9); 5625 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 10, -10); 5626 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 11, -10); 5627 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 0, 0); 5628 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 1, -1); 5629 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 4, -4); 5630 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 8, -8); 5631 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 9, -9); 5632 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 10, -9); 5633 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 0, 0); 5634 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 1, -1); 5635 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 2, -2); 5636 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 4, -4); 5637 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 5, -5); 5638 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 6, -5); 5639 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, 0, 0); 5640 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, 1, -1); 5641 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, 2, -1); 5642 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 10, 0, 0); 5643 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 10, 1, 0); 5644 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 11, 0, 0); 5645 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 0, 0); 5646 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 1, -1); 5647 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 10, -10); 5648 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 19, -19); 5649 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 20, -20); 5650 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 21, -20); 5651 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 0, 0); 5652 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 1, -1); 5653 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 9, -9); 5654 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 18, -18); 5655 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 19, -19); 5656 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 20, -19); 5657 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 0, 0); 5658 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 1, -1); 5659 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 5, -5); 5660 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 9, -9); 5661 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 10, -10); 5662 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 11, -10); 5663 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, 0, 0); 5664 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, 1, -1); 5665 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, 2, -1); 5666 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 20, 0, 0); 5667} 5668 5669void test54() 5670{ 5671 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 20, 1, 0); 5672 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 21, 0, 0); 5673 test("abcdefghijklmnopqrst", 21, 0, "", 0, 0, 0); 5674 test("abcdefghijklmnopqrst", 21, 0, "", 0, 1, 0); 5675 test("abcdefghijklmnopqrst", 21, 0, "", 1, 0, 0); 5676 test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 0, 0); 5677 test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 1, 0); 5678 test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 2, 0); 5679 test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 4, 0); 5680 test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 5, 0); 5681 test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 6, 0); 5682 test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 0, 0); 5683 test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 1, 0); 5684 test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 2, 0); 5685 test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 3, 0); 5686 test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 4, 0); 5687 test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 5, 0); 5688 test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 0, 0); 5689 test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 1, 0); 5690 test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 2, 0); 5691 test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 3, 0); 5692 test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 4, 0); 5693 test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 0, 0); 5694 test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 1, 0); 5695 test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 2, 0); 5696 test("abcdefghijklmnopqrst", 21, 0, "abcde", 5, 0, 0); 5697 test("abcdefghijklmnopqrst", 21, 0, "abcde", 5, 1, 0); 5698 test("abcdefghijklmnopqrst", 21, 0, "abcde", 6, 0, 0); 5699 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 0, 0); 5700 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 1, 0); 5701 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 5, 0); 5702 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 9, 0); 5703 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 10, 0); 5704 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 11, 0); 5705 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 0, 0); 5706 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 1, 0); 5707 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 4, 0); 5708 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 8, 0); 5709 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 9, 0); 5710 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 10, 0); 5711 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 0, 0); 5712 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 1, 0); 5713 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 2, 0); 5714 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 4, 0); 5715 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 5, 0); 5716 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 6, 0); 5717 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 0, 0); 5718 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 1, 0); 5719 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 2, 0); 5720 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 10, 0, 0); 5721 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 10, 1, 0); 5722 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 11, 0, 0); 5723 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 0, 0); 5724 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 1, 0); 5725 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 10, 0); 5726 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 19, 0); 5727 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 20, 0); 5728 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 21, 0); 5729 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 0, 0); 5730 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 1, 0); 5731 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 9, 0); 5732 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 18, 0); 5733 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 19, 0); 5734 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 20, 0); 5735 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 0, 0); 5736 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 1, 0); 5737 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 5, 0); 5738 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 9, 0); 5739 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 10, 0); 5740 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 11, 0); 5741 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 0, 0); 5742 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 1, 0); 5743 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 2, 0); 5744 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 20, 0, 0); 5745 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 20, 1, 0); 5746 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 21, 0, 0); 5747} 5748 5749 5750int main () { 5751 test0(); 5752 test1(); 5753 test2(); 5754 test3(); 5755 test4(); 5756 test5(); 5757 test6(); 5758 test7(); 5759 test8(); 5760 test9(); 5761 test10(); 5762 test11(); 5763 test12(); 5764 test13(); 5765 test14(); 5766 test15(); 5767 test16(); 5768 test17(); 5769 test18(); 5770 test19(); 5771 test20(); 5772 test21(); 5773 test22(); 5774 test23(); 5775 test24(); 5776 test25(); 5777 test26(); 5778 test27(); 5779 test28(); 5780 test29(); 5781 test30(); 5782 test31(); 5783 test32(); 5784 test33(); 5785 test34(); 5786 test35(); 5787 test36(); 5788 test37(); 5789 test38(); 5790 test39(); 5791 test40(); 5792 test41(); 5793 test42(); 5794 test43(); 5795 test44(); 5796 test45(); 5797 test46(); 5798 test47(); 5799 test48(); 5800 test49(); 5801 test50(); 5802 test51(); 5803 test52(); 5804 test53(); 5805 test54(); 5806 5807 5808 { 5809 test("abcde", 5, 1, "", 0, 0, 0); 5810 test("abcde", 2, 4, "", 0, 0, 3); 5811 test("abcde", 2, 4, "abcde", 3, 4, -2); 5812 test("ABCde", 2, 4, "abcde", 2, 4, -1); 5813 } 5814 5815 { 5816 test(L"abcde", 5, 1, L"", 0, 0, 0); 5817 test(L"abcde", 2, 4, L"", 0, 0, 3); 5818 test(L"abcde", 2, 4, L"abcde", 3, 4, -2); 5819 test(L"ABCde", 2, 4, L"abcde", 2, 4, -1); 5820 } 5821 5822#if TEST_STD_VER >= 11 5823 { 5824 test(u"abcde", 5, 1, u"", 0, 0, 0); 5825 test(u"abcde", 2, 4, u"", 0, 0, 3); 5826 test(u"abcde", 2, 4, u"abcde", 3, 4, -2); 5827 test(u"ABCde", 2, 4, u"abcde", 2, 4, -1); 5828 } 5829 5830 { 5831 test(U"abcde", 5, 1, U"", 0, 0, 0); 5832 test(U"abcde", 2, 4, U"", 0, 0, 3); 5833 test(U"abcde", 2, 4, U"abcde", 3, 4, -2); 5834 test(U"ABCde", 2, 4, U"abcde", 2, 4, -1); 5835 } 5836#endif 5837 5838#if TEST_STD_VER > 11 5839 { 5840 typedef std::basic_string_view<char, constexpr_char_traits<char>> SV; 5841 constexpr SV sv1 { "abcde", 5 }; 5842 static_assert ( sv1.compare(5, 1, "", 0, 0) == 0, "" ); 5843 static_assert ( sv1.compare(2, 4, "", 0, 0) == 1, "" ); 5844 static_assert ( sv1.compare(2, 4, "abcde", 3, 4) == -1, "" ); 5845 } 5846#endif 5847} 5848