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 11// <string_view> 12 13// constexpr int compare(size_type pos1, size_type n1, basic_string_view str, 14// size_type pos2, size_type n2) const; 15 16#include <experimental/string_view> 17#include <cassert> 18 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::experimental::basic_string_view<CharT> sv1, size_t pos1, size_t n1, 25 std::experimental::basic_string_view<CharT> sv2, size_t pos2, size_t n2, 26 int expected ) { 27 28 try 29 { 30 assert ( sign( sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected)); 31 assert(pos1 <= sv1.size()); 32 assert(pos2 <= sv2.size()); 33 } 34 catch (const std::out_of_range&) { assert(pos1 > sv1.size() || pos2 > sv2.size()); } 35} 36 37 38template<typename CharT> 39void test ( const CharT *s1, size_t pos1, size_t n1, 40 const CharT *s2, size_t pos2, size_t n2, 41 int expected ) { 42 typedef std::experimental::basic_string_view<CharT> string_view_t; 43 44 string_view_t sv1 ( s1 ); 45 string_view_t sv2 ( s2 ); 46 test1(sv1, pos1, n1, sv2, pos2, n2, expected); 47} 48 49void test0() 50{ 51 test("", 0, 0, "", 0, 0, 0); 52 test("", 0, 0, "", 0, 1, 0); 53 test("", 0, 0, "", 1, 0, 0); 54 test("", 0, 0, "abcde", 0, 0, 0); 55 test("", 0, 0, "abcde", 0, 1, -1); 56 test("", 0, 0, "abcde", 0, 2, -2); 57 test("", 0, 0, "abcde", 0, 4, -4); 58 test("", 0, 0, "abcde", 0, 5, -5); 59 test("", 0, 0, "abcde", 0, 6, -5); 60 test("", 0, 0, "abcde", 1, 0, 0); 61 test("", 0, 0, "abcde", 1, 1, -1); 62 test("", 0, 0, "abcde", 1, 2, -2); 63 test("", 0, 0, "abcde", 1, 3, -3); 64 test("", 0, 0, "abcde", 1, 4, -4); 65 test("", 0, 0, "abcde", 1, 5, -4); 66 test("", 0, 0, "abcde", 2, 0, 0); 67 test("", 0, 0, "abcde", 2, 1, -1); 68 test("", 0, 0, "abcde", 2, 2, -2); 69 test("", 0, 0, "abcde", 2, 3, -3); 70 test("", 0, 0, "abcde", 2, 4, -3); 71 test("", 0, 0, "abcde", 4, 0, 0); 72 test("", 0, 0, "abcde", 4, 1, -1); 73 test("", 0, 0, "abcde", 4, 2, -1); 74 test("", 0, 0, "abcde", 5, 0, 0); 75 test("", 0, 0, "abcde", 5, 1, 0); 76 test("", 0, 0, "abcde", 6, 0, 0); 77 test("", 0, 0, "abcdefghij", 0, 0, 0); 78 test("", 0, 0, "abcdefghij", 0, 1, -1); 79 test("", 0, 0, "abcdefghij", 0, 5, -5); 80 test("", 0, 0, "abcdefghij", 0, 9, -9); 81 test("", 0, 0, "abcdefghij", 0, 10, -10); 82 test("", 0, 0, "abcdefghij", 0, 11, -10); 83 test("", 0, 0, "abcdefghij", 1, 0, 0); 84 test("", 0, 0, "abcdefghij", 1, 1, -1); 85 test("", 0, 0, "abcdefghij", 1, 4, -4); 86 test("", 0, 0, "abcdefghij", 1, 8, -8); 87 test("", 0, 0, "abcdefghij", 1, 9, -9); 88 test("", 0, 0, "abcdefghij", 1, 10, -9); 89 test("", 0, 0, "abcdefghij", 5, 0, 0); 90 test("", 0, 0, "abcdefghij", 5, 1, -1); 91 test("", 0, 0, "abcdefghij", 5, 2, -2); 92 test("", 0, 0, "abcdefghij", 5, 4, -4); 93 test("", 0, 0, "abcdefghij", 5, 5, -5); 94 test("", 0, 0, "abcdefghij", 5, 6, -5); 95 test("", 0, 0, "abcdefghij", 9, 0, 0); 96 test("", 0, 0, "abcdefghij", 9, 1, -1); 97 test("", 0, 0, "abcdefghij", 9, 2, -1); 98 test("", 0, 0, "abcdefghij", 10, 0, 0); 99 test("", 0, 0, "abcdefghij", 10, 1, 0); 100 test("", 0, 0, "abcdefghij", 11, 0, 0); 101 test("", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0); 102 test("", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1); 103 test("", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10); 104 test("", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19); 105 test("", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20); 106 test("", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20); 107 test("", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0); 108 test("", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1); 109 test("", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9); 110 test("", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18); 111 test("", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19); 112 test("", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19); 113 test("", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0); 114 test("", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1); 115 test("", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5); 116 test("", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9); 117 test("", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10); 118 test("", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10); 119 test("", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0); 120 test("", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1); 121 test("", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1); 122 test("", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0); 123 test("", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0); 124 test("", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0); 125 test("", 0, 1, "", 0, 0, 0); 126 test("", 0, 1, "", 0, 1, 0); 127 test("", 0, 1, "", 1, 0, 0); 128 test("", 0, 1, "abcde", 0, 0, 0); 129 test("", 0, 1, "abcde", 0, 1, -1); 130 test("", 0, 1, "abcde", 0, 2, -2); 131 test("", 0, 1, "abcde", 0, 4, -4); 132 test("", 0, 1, "abcde", 0, 5, -5); 133 test("", 0, 1, "abcde", 0, 6, -5); 134 test("", 0, 1, "abcde", 1, 0, 0); 135 test("", 0, 1, "abcde", 1, 1, -1); 136 test("", 0, 1, "abcde", 1, 2, -2); 137 test("", 0, 1, "abcde", 1, 3, -3); 138 test("", 0, 1, "abcde", 1, 4, -4); 139 test("", 0, 1, "abcde", 1, 5, -4); 140 test("", 0, 1, "abcde", 2, 0, 0); 141 test("", 0, 1, "abcde", 2, 1, -1); 142 test("", 0, 1, "abcde", 2, 2, -2); 143 test("", 0, 1, "abcde", 2, 3, -3); 144 test("", 0, 1, "abcde", 2, 4, -3); 145 test("", 0, 1, "abcde", 4, 0, 0); 146 test("", 0, 1, "abcde", 4, 1, -1); 147 test("", 0, 1, "abcde", 4, 2, -1); 148 test("", 0, 1, "abcde", 5, 0, 0); 149 test("", 0, 1, "abcde", 5, 1, 0); 150 test("", 0, 1, "abcde", 6, 0, 0); 151} 152 153void test1() 154{ 155 test("", 0, 1, "abcdefghij", 0, 0, 0); 156 test("", 0, 1, "abcdefghij", 0, 1, -1); 157 test("", 0, 1, "abcdefghij", 0, 5, -5); 158 test("", 0, 1, "abcdefghij", 0, 9, -9); 159 test("", 0, 1, "abcdefghij", 0, 10, -10); 160 test("", 0, 1, "abcdefghij", 0, 11, -10); 161 test("", 0, 1, "abcdefghij", 1, 0, 0); 162 test("", 0, 1, "abcdefghij", 1, 1, -1); 163 test("", 0, 1, "abcdefghij", 1, 4, -4); 164 test("", 0, 1, "abcdefghij", 1, 8, -8); 165 test("", 0, 1, "abcdefghij", 1, 9, -9); 166 test("", 0, 1, "abcdefghij", 1, 10, -9); 167 test("", 0, 1, "abcdefghij", 5, 0, 0); 168 test("", 0, 1, "abcdefghij", 5, 1, -1); 169 test("", 0, 1, "abcdefghij", 5, 2, -2); 170 test("", 0, 1, "abcdefghij", 5, 4, -4); 171 test("", 0, 1, "abcdefghij", 5, 5, -5); 172 test("", 0, 1, "abcdefghij", 5, 6, -5); 173 test("", 0, 1, "abcdefghij", 9, 0, 0); 174 test("", 0, 1, "abcdefghij", 9, 1, -1); 175 test("", 0, 1, "abcdefghij", 9, 2, -1); 176 test("", 0, 1, "abcdefghij", 10, 0, 0); 177 test("", 0, 1, "abcdefghij", 10, 1, 0); 178 test("", 0, 1, "abcdefghij", 11, 0, 0); 179 test("", 0, 1, "abcdefghijklmnopqrst", 0, 0, 0); 180 test("", 0, 1, "abcdefghijklmnopqrst", 0, 1, -1); 181 test("", 0, 1, "abcdefghijklmnopqrst", 0, 10, -10); 182 test("", 0, 1, "abcdefghijklmnopqrst", 0, 19, -19); 183 test("", 0, 1, "abcdefghijklmnopqrst", 0, 20, -20); 184 test("", 0, 1, "abcdefghijklmnopqrst", 0, 21, -20); 185 test("", 0, 1, "abcdefghijklmnopqrst", 1, 0, 0); 186 test("", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1); 187 test("", 0, 1, "abcdefghijklmnopqrst", 1, 9, -9); 188 test("", 0, 1, "abcdefghijklmnopqrst", 1, 18, -18); 189 test("", 0, 1, "abcdefghijklmnopqrst", 1, 19, -19); 190 test("", 0, 1, "abcdefghijklmnopqrst", 1, 20, -19); 191 test("", 0, 1, "abcdefghijklmnopqrst", 10, 0, 0); 192 test("", 0, 1, "abcdefghijklmnopqrst", 10, 1, -1); 193 test("", 0, 1, "abcdefghijklmnopqrst", 10, 5, -5); 194 test("", 0, 1, "abcdefghijklmnopqrst", 10, 9, -9); 195 test("", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10); 196 test("", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10); 197 test("", 0, 1, "abcdefghijklmnopqrst", 19, 0, 0); 198 test("", 0, 1, "abcdefghijklmnopqrst", 19, 1, -1); 199 test("", 0, 1, "abcdefghijklmnopqrst", 19, 2, -1); 200 test("", 0, 1, "abcdefghijklmnopqrst", 20, 0, 0); 201 test("", 0, 1, "abcdefghijklmnopqrst", 20, 1, 0); 202 test("", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0); 203 test("", 1, 0, "", 0, 0, 0); 204 test("", 1, 0, "", 0, 1, 0); 205 test("", 1, 0, "", 1, 0, 0); 206 test("", 1, 0, "abcde", 0, 0, 0); 207 test("", 1, 0, "abcde", 0, 1, 0); 208 test("", 1, 0, "abcde", 0, 2, 0); 209 test("", 1, 0, "abcde", 0, 4, 0); 210 test("", 1, 0, "abcde", 0, 5, 0); 211 test("", 1, 0, "abcde", 0, 6, 0); 212 test("", 1, 0, "abcde", 1, 0, 0); 213 test("", 1, 0, "abcde", 1, 1, 0); 214 test("", 1, 0, "abcde", 1, 2, 0); 215 test("", 1, 0, "abcde", 1, 3, 0); 216 test("", 1, 0, "abcde", 1, 4, 0); 217 test("", 1, 0, "abcde", 1, 5, 0); 218 test("", 1, 0, "abcde", 2, 0, 0); 219 test("", 1, 0, "abcde", 2, 1, 0); 220 test("", 1, 0, "abcde", 2, 2, 0); 221 test("", 1, 0, "abcde", 2, 3, 0); 222 test("", 1, 0, "abcde", 2, 4, 0); 223 test("", 1, 0, "abcde", 4, 0, 0); 224 test("", 1, 0, "abcde", 4, 1, 0); 225 test("", 1, 0, "abcde", 4, 2, 0); 226 test("", 1, 0, "abcde", 5, 0, 0); 227 test("", 1, 0, "abcde", 5, 1, 0); 228 test("", 1, 0, "abcde", 6, 0, 0); 229 test("", 1, 0, "abcdefghij", 0, 0, 0); 230 test("", 1, 0, "abcdefghij", 0, 1, 0); 231 test("", 1, 0, "abcdefghij", 0, 5, 0); 232 test("", 1, 0, "abcdefghij", 0, 9, 0); 233 test("", 1, 0, "abcdefghij", 0, 10, 0); 234 test("", 1, 0, "abcdefghij", 0, 11, 0); 235 test("", 1, 0, "abcdefghij", 1, 0, 0); 236 test("", 1, 0, "abcdefghij", 1, 1, 0); 237 test("", 1, 0, "abcdefghij", 1, 4, 0); 238 test("", 1, 0, "abcdefghij", 1, 8, 0); 239 test("", 1, 0, "abcdefghij", 1, 9, 0); 240 test("", 1, 0, "abcdefghij", 1, 10, 0); 241 test("", 1, 0, "abcdefghij", 5, 0, 0); 242 test("", 1, 0, "abcdefghij", 5, 1, 0); 243 test("", 1, 0, "abcdefghij", 5, 2, 0); 244 test("", 1, 0, "abcdefghij", 5, 4, 0); 245 test("", 1, 0, "abcdefghij", 5, 5, 0); 246 test("", 1, 0, "abcdefghij", 5, 6, 0); 247 test("", 1, 0, "abcdefghij", 9, 0, 0); 248 test("", 1, 0, "abcdefghij", 9, 1, 0); 249 test("", 1, 0, "abcdefghij", 9, 2, 0); 250 test("", 1, 0, "abcdefghij", 10, 0, 0); 251 test("", 1, 0, "abcdefghij", 10, 1, 0); 252 test("", 1, 0, "abcdefghij", 11, 0, 0); 253 test("", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0); 254 test("", 1, 0, "abcdefghijklmnopqrst", 0, 1, 0); 255} 256 257void test2() 258{ 259 test("", 1, 0, "abcdefghijklmnopqrst", 0, 10, 0); 260 test("", 1, 0, "abcdefghijklmnopqrst", 0, 19, 0); 261 test("", 1, 0, "abcdefghijklmnopqrst", 0, 20, 0); 262 test("", 1, 0, "abcdefghijklmnopqrst", 0, 21, 0); 263 test("", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0); 264 test("", 1, 0, "abcdefghijklmnopqrst", 1, 1, 0); 265 test("", 1, 0, "abcdefghijklmnopqrst", 1, 9, 0); 266 test("", 1, 0, "abcdefghijklmnopqrst", 1, 18, 0); 267 test("", 1, 0, "abcdefghijklmnopqrst", 1, 19, 0); 268 test("", 1, 0, "abcdefghijklmnopqrst", 1, 20, 0); 269 test("", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0); 270 test("", 1, 0, "abcdefghijklmnopqrst", 10, 1, 0); 271 test("", 1, 0, "abcdefghijklmnopqrst", 10, 5, 0); 272 test("", 1, 0, "abcdefghijklmnopqrst", 10, 9, 0); 273 test("", 1, 0, "abcdefghijklmnopqrst", 10, 10, 0); 274 test("", 1, 0, "abcdefghijklmnopqrst", 10, 11, 0); 275 test("", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0); 276 test("", 1, 0, "abcdefghijklmnopqrst", 19, 1, 0); 277 test("", 1, 0, "abcdefghijklmnopqrst", 19, 2, 0); 278 test("", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0); 279 test("", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0); 280 test("", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0); 281 test("abcde", 0, 0, "", 0, 0, 0); 282 test("abcde", 0, 0, "", 0, 1, 0); 283 test("abcde", 0, 0, "", 1, 0, 0); 284 test("abcde", 0, 0, "abcde", 0, 0, 0); 285 test("abcde", 0, 0, "abcde", 0, 1, -1); 286 test("abcde", 0, 0, "abcde", 0, 2, -2); 287 test("abcde", 0, 0, "abcde", 0, 4, -4); 288 test("abcde", 0, 0, "abcde", 0, 5, -5); 289 test("abcde", 0, 0, "abcde", 0, 6, -5); 290 test("abcde", 0, 0, "abcde", 1, 0, 0); 291 test("abcde", 0, 0, "abcde", 1, 1, -1); 292 test("abcde", 0, 0, "abcde", 1, 2, -2); 293 test("abcde", 0, 0, "abcde", 1, 3, -3); 294 test("abcde", 0, 0, "abcde", 1, 4, -4); 295 test("abcde", 0, 0, "abcde", 1, 5, -4); 296 test("abcde", 0, 0, "abcde", 2, 0, 0); 297 test("abcde", 0, 0, "abcde", 2, 1, -1); 298 test("abcde", 0, 0, "abcde", 2, 2, -2); 299 test("abcde", 0, 0, "abcde", 2, 3, -3); 300 test("abcde", 0, 0, "abcde", 2, 4, -3); 301 test("abcde", 0, 0, "abcde", 4, 0, 0); 302 test("abcde", 0, 0, "abcde", 4, 1, -1); 303 test("abcde", 0, 0, "abcde", 4, 2, -1); 304 test("abcde", 0, 0, "abcde", 5, 0, 0); 305 test("abcde", 0, 0, "abcde", 5, 1, 0); 306 test("abcde", 0, 0, "abcde", 6, 0, 0); 307 test("abcde", 0, 0, "abcdefghij", 0, 0, 0); 308 test("abcde", 0, 0, "abcdefghij", 0, 1, -1); 309 test("abcde", 0, 0, "abcdefghij", 0, 5, -5); 310 test("abcde", 0, 0, "abcdefghij", 0, 9, -9); 311 test("abcde", 0, 0, "abcdefghij", 0, 10, -10); 312 test("abcde", 0, 0, "abcdefghij", 0, 11, -10); 313 test("abcde", 0, 0, "abcdefghij", 1, 0, 0); 314 test("abcde", 0, 0, "abcdefghij", 1, 1, -1); 315 test("abcde", 0, 0, "abcdefghij", 1, 4, -4); 316 test("abcde", 0, 0, "abcdefghij", 1, 8, -8); 317 test("abcde", 0, 0, "abcdefghij", 1, 9, -9); 318 test("abcde", 0, 0, "abcdefghij", 1, 10, -9); 319 test("abcde", 0, 0, "abcdefghij", 5, 0, 0); 320 test("abcde", 0, 0, "abcdefghij", 5, 1, -1); 321 test("abcde", 0, 0, "abcdefghij", 5, 2, -2); 322 test("abcde", 0, 0, "abcdefghij", 5, 4, -4); 323 test("abcde", 0, 0, "abcdefghij", 5, 5, -5); 324 test("abcde", 0, 0, "abcdefghij", 5, 6, -5); 325 test("abcde", 0, 0, "abcdefghij", 9, 0, 0); 326 test("abcde", 0, 0, "abcdefghij", 9, 1, -1); 327 test("abcde", 0, 0, "abcdefghij", 9, 2, -1); 328 test("abcde", 0, 0, "abcdefghij", 10, 0, 0); 329 test("abcde", 0, 0, "abcdefghij", 10, 1, 0); 330 test("abcde", 0, 0, "abcdefghij", 11, 0, 0); 331 test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0); 332 test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1); 333 test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10); 334 test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19); 335 test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20); 336 test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20); 337 test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0); 338 test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1); 339 test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9); 340 test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18); 341 test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19); 342 test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19); 343 test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0); 344 test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1); 345 test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5); 346 test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9); 347 test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10); 348 test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10); 349 test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0); 350 test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1); 351 test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1); 352 test("abcde", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0); 353 test("abcde", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0); 354 test("abcde", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0); 355 test("abcde", 0, 1, "", 0, 0, 1); 356 test("abcde", 0, 1, "", 0, 1, 1); 357 test("abcde", 0, 1, "", 1, 0, 0); 358 test("abcde", 0, 1, "abcde", 0, 0, 1); 359} 360 361void test3() 362{ 363 test("abcde", 0, 1, "abcde", 0, 1, 0); 364 test("abcde", 0, 1, "abcde", 0, 2, -1); 365 test("abcde", 0, 1, "abcde", 0, 4, -3); 366 test("abcde", 0, 1, "abcde", 0, 5, -4); 367 test("abcde", 0, 1, "abcde", 0, 6, -4); 368 test("abcde", 0, 1, "abcde", 1, 0, 1); 369 test("abcde", 0, 1, "abcde", 1, 1, -1); 370 test("abcde", 0, 1, "abcde", 1, 2, -1); 371 test("abcde", 0, 1, "abcde", 1, 3, -1); 372 test("abcde", 0, 1, "abcde", 1, 4, -1); 373 test("abcde", 0, 1, "abcde", 1, 5, -1); 374 test("abcde", 0, 1, "abcde", 2, 0, 1); 375 test("abcde", 0, 1, "abcde", 2, 1, -2); 376 test("abcde", 0, 1, "abcde", 2, 2, -2); 377 test("abcde", 0, 1, "abcde", 2, 3, -2); 378 test("abcde", 0, 1, "abcde", 2, 4, -2); 379 test("abcde", 0, 1, "abcde", 4, 0, 1); 380 test("abcde", 0, 1, "abcde", 4, 1, -4); 381 test("abcde", 0, 1, "abcde", 4, 2, -4); 382 test("abcde", 0, 1, "abcde", 5, 0, 1); 383 test("abcde", 0, 1, "abcde", 5, 1, 1); 384 test("abcde", 0, 1, "abcde", 6, 0, 0); 385 test("abcde", 0, 1, "abcdefghij", 0, 0, 1); 386 test("abcde", 0, 1, "abcdefghij", 0, 1, 0); 387 test("abcde", 0, 1, "abcdefghij", 0, 5, -4); 388 test("abcde", 0, 1, "abcdefghij", 0, 9, -8); 389 test("abcde", 0, 1, "abcdefghij", 0, 10, -9); 390 test("abcde", 0, 1, "abcdefghij", 0, 11, -9); 391 test("abcde", 0, 1, "abcdefghij", 1, 0, 1); 392 test("abcde", 0, 1, "abcdefghij", 1, 1, -1); 393 test("abcde", 0, 1, "abcdefghij", 1, 4, -1); 394 test("abcde", 0, 1, "abcdefghij", 1, 8, -1); 395 test("abcde", 0, 1, "abcdefghij", 1, 9, -1); 396 test("abcde", 0, 1, "abcdefghij", 1, 10, -1); 397 test("abcde", 0, 1, "abcdefghij", 5, 0, 1); 398 test("abcde", 0, 1, "abcdefghij", 5, 1, -5); 399 test("abcde", 0, 1, "abcdefghij", 5, 2, -5); 400 test("abcde", 0, 1, "abcdefghij", 5, 4, -5); 401 test("abcde", 0, 1, "abcdefghij", 5, 5, -5); 402 test("abcde", 0, 1, "abcdefghij", 5, 6, -5); 403 test("abcde", 0, 1, "abcdefghij", 9, 0, 1); 404 test("abcde", 0, 1, "abcdefghij", 9, 1, -9); 405 test("abcde", 0, 1, "abcdefghij", 9, 2, -9); 406 test("abcde", 0, 1, "abcdefghij", 10, 0, 1); 407 test("abcde", 0, 1, "abcdefghij", 10, 1, 1); 408 test("abcde", 0, 1, "abcdefghij", 11, 0, 0); 409 test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 0, 1); 410 test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 1, 0); 411 test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 10, -9); 412 test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 19, -18); 413 test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 20, -19); 414 test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 21, -19); 415 test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 0, 1); 416 test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1); 417 test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 9, -1); 418 test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 18, -1); 419 test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 19, -1); 420 test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 20, -1); 421 test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 0, 1); 422 test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 1, -10); 423 test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 5, -10); 424 test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 9, -10); 425 test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10); 426 test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10); 427 test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, 0, 1); 428 test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, 1, -19); 429 test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, 2, -19); 430 test("abcde", 0, 1, "abcdefghijklmnopqrst", 20, 0, 1); 431 test("abcde", 0, 1, "abcdefghijklmnopqrst", 20, 1, 1); 432 test("abcde", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0); 433 test("abcde", 0, 2, "", 0, 0, 2); 434 test("abcde", 0, 2, "", 0, 1, 2); 435 test("abcde", 0, 2, "", 1, 0, 0); 436 test("abcde", 0, 2, "abcde", 0, 0, 2); 437 test("abcde", 0, 2, "abcde", 0, 1, 1); 438 test("abcde", 0, 2, "abcde", 0, 2, 0); 439 test("abcde", 0, 2, "abcde", 0, 4, -2); 440 test("abcde", 0, 2, "abcde", 0, 5, -3); 441 test("abcde", 0, 2, "abcde", 0, 6, -3); 442 test("abcde", 0, 2, "abcde", 1, 0, 2); 443 test("abcde", 0, 2, "abcde", 1, 1, -1); 444 test("abcde", 0, 2, "abcde", 1, 2, -1); 445 test("abcde", 0, 2, "abcde", 1, 3, -1); 446 test("abcde", 0, 2, "abcde", 1, 4, -1); 447 test("abcde", 0, 2, "abcde", 1, 5, -1); 448 test("abcde", 0, 2, "abcde", 2, 0, 2); 449 test("abcde", 0, 2, "abcde", 2, 1, -2); 450 test("abcde", 0, 2, "abcde", 2, 2, -2); 451 test("abcde", 0, 2, "abcde", 2, 3, -2); 452 test("abcde", 0, 2, "abcde", 2, 4, -2); 453 test("abcde", 0, 2, "abcde", 4, 0, 2); 454 test("abcde", 0, 2, "abcde", 4, 1, -4); 455 test("abcde", 0, 2, "abcde", 4, 2, -4); 456 test("abcde", 0, 2, "abcde", 5, 0, 2); 457 test("abcde", 0, 2, "abcde", 5, 1, 2); 458 test("abcde", 0, 2, "abcde", 6, 0, 0); 459 test("abcde", 0, 2, "abcdefghij", 0, 0, 2); 460 test("abcde", 0, 2, "abcdefghij", 0, 1, 1); 461 test("abcde", 0, 2, "abcdefghij", 0, 5, -3); 462 test("abcde", 0, 2, "abcdefghij", 0, 9, -7); 463} 464 465void test4() 466{ 467 test("abcde", 0, 2, "abcdefghij", 0, 10, -8); 468 test("abcde", 0, 2, "abcdefghij", 0, 11, -8); 469 test("abcde", 0, 2, "abcdefghij", 1, 0, 2); 470 test("abcde", 0, 2, "abcdefghij", 1, 1, -1); 471 test("abcde", 0, 2, "abcdefghij", 1, 4, -1); 472 test("abcde", 0, 2, "abcdefghij", 1, 8, -1); 473 test("abcde", 0, 2, "abcdefghij", 1, 9, -1); 474 test("abcde", 0, 2, "abcdefghij", 1, 10, -1); 475 test("abcde", 0, 2, "abcdefghij", 5, 0, 2); 476 test("abcde", 0, 2, "abcdefghij", 5, 1, -5); 477 test("abcde", 0, 2, "abcdefghij", 5, 2, -5); 478 test("abcde", 0, 2, "abcdefghij", 5, 4, -5); 479 test("abcde", 0, 2, "abcdefghij", 5, 5, -5); 480 test("abcde", 0, 2, "abcdefghij", 5, 6, -5); 481 test("abcde", 0, 2, "abcdefghij", 9, 0, 2); 482 test("abcde", 0, 2, "abcdefghij", 9, 1, -9); 483 test("abcde", 0, 2, "abcdefghij", 9, 2, -9); 484 test("abcde", 0, 2, "abcdefghij", 10, 0, 2); 485 test("abcde", 0, 2, "abcdefghij", 10, 1, 2); 486 test("abcde", 0, 2, "abcdefghij", 11, 0, 0); 487 test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 0, 2); 488 test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 1, 1); 489 test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 10, -8); 490 test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 19, -17); 491 test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 20, -18); 492 test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 21, -18); 493 test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 0, 2); 494 test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 1, -1); 495 test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 9, -1); 496 test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 18, -1); 497 test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 19, -1); 498 test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 20, -1); 499 test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 0, 2); 500 test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 1, -10); 501 test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 5, -10); 502 test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 9, -10); 503 test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 10, -10); 504 test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 11, -10); 505 test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, 0, 2); 506 test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, 1, -19); 507 test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, 2, -19); 508 test("abcde", 0, 2, "abcdefghijklmnopqrst", 20, 0, 2); 509 test("abcde", 0, 2, "abcdefghijklmnopqrst", 20, 1, 2); 510 test("abcde", 0, 2, "abcdefghijklmnopqrst", 21, 0, 0); 511 test("abcde", 0, 4, "", 0, 0, 4); 512 test("abcde", 0, 4, "", 0, 1, 4); 513 test("abcde", 0, 4, "", 1, 0, 0); 514 test("abcde", 0, 4, "abcde", 0, 0, 4); 515 test("abcde", 0, 4, "abcde", 0, 1, 3); 516 test("abcde", 0, 4, "abcde", 0, 2, 2); 517 test("abcde", 0, 4, "abcde", 0, 4, 0); 518 test("abcde", 0, 4, "abcde", 0, 5, -1); 519 test("abcde", 0, 4, "abcde", 0, 6, -1); 520 test("abcde", 0, 4, "abcde", 1, 0, 4); 521 test("abcde", 0, 4, "abcde", 1, 1, -1); 522 test("abcde", 0, 4, "abcde", 1, 2, -1); 523 test("abcde", 0, 4, "abcde", 1, 3, -1); 524 test("abcde", 0, 4, "abcde", 1, 4, -1); 525 test("abcde", 0, 4, "abcde", 1, 5, -1); 526 test("abcde", 0, 4, "abcde", 2, 0, 4); 527 test("abcde", 0, 4, "abcde", 2, 1, -2); 528 test("abcde", 0, 4, "abcde", 2, 2, -2); 529 test("abcde", 0, 4, "abcde", 2, 3, -2); 530 test("abcde", 0, 4, "abcde", 2, 4, -2); 531 test("abcde", 0, 4, "abcde", 4, 0, 4); 532 test("abcde", 0, 4, "abcde", 4, 1, -4); 533 test("abcde", 0, 4, "abcde", 4, 2, -4); 534 test("abcde", 0, 4, "abcde", 5, 0, 4); 535 test("abcde", 0, 4, "abcde", 5, 1, 4); 536 test("abcde", 0, 4, "abcde", 6, 0, 0); 537 test("abcde", 0, 4, "abcdefghij", 0, 0, 4); 538 test("abcde", 0, 4, "abcdefghij", 0, 1, 3); 539 test("abcde", 0, 4, "abcdefghij", 0, 5, -1); 540 test("abcde", 0, 4, "abcdefghij", 0, 9, -5); 541 test("abcde", 0, 4, "abcdefghij", 0, 10, -6); 542 test("abcde", 0, 4, "abcdefghij", 0, 11, -6); 543 test("abcde", 0, 4, "abcdefghij", 1, 0, 4); 544 test("abcde", 0, 4, "abcdefghij", 1, 1, -1); 545 test("abcde", 0, 4, "abcdefghij", 1, 4, -1); 546 test("abcde", 0, 4, "abcdefghij", 1, 8, -1); 547 test("abcde", 0, 4, "abcdefghij", 1, 9, -1); 548 test("abcde", 0, 4, "abcdefghij", 1, 10, -1); 549 test("abcde", 0, 4, "abcdefghij", 5, 0, 4); 550 test("abcde", 0, 4, "abcdefghij", 5, 1, -5); 551 test("abcde", 0, 4, "abcdefghij", 5, 2, -5); 552 test("abcde", 0, 4, "abcdefghij", 5, 4, -5); 553 test("abcde", 0, 4, "abcdefghij", 5, 5, -5); 554 test("abcde", 0, 4, "abcdefghij", 5, 6, -5); 555 test("abcde", 0, 4, "abcdefghij", 9, 0, 4); 556 test("abcde", 0, 4, "abcdefghij", 9, 1, -9); 557 test("abcde", 0, 4, "abcdefghij", 9, 2, -9); 558 test("abcde", 0, 4, "abcdefghij", 10, 0, 4); 559 test("abcde", 0, 4, "abcdefghij", 10, 1, 4); 560 test("abcde", 0, 4, "abcdefghij", 11, 0, 0); 561 test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 0, 4); 562 test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 1, 3); 563 test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 10, -6); 564 test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 19, -15); 565 test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 20, -16); 566 test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 21, -16); 567} 568 569void test5() 570{ 571 test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 0, 4); 572 test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 1, -1); 573 test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 9, -1); 574 test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 18, -1); 575 test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 19, -1); 576 test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 20, -1); 577 test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 0, 4); 578 test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 1, -10); 579 test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 5, -10); 580 test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 9, -10); 581 test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 10, -10); 582 test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 11, -10); 583 test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, 0, 4); 584 test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, 1, -19); 585 test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, 2, -19); 586 test("abcde", 0, 4, "abcdefghijklmnopqrst", 20, 0, 4); 587 test("abcde", 0, 4, "abcdefghijklmnopqrst", 20, 1, 4); 588 test("abcde", 0, 4, "abcdefghijklmnopqrst", 21, 0, 0); 589 test("abcde", 0, 5, "", 0, 0, 5); 590 test("abcde", 0, 5, "", 0, 1, 5); 591 test("abcde", 0, 5, "", 1, 0, 0); 592 test("abcde", 0, 5, "abcde", 0, 0, 5); 593 test("abcde", 0, 5, "abcde", 0, 1, 4); 594 test("abcde", 0, 5, "abcde", 0, 2, 3); 595 test("abcde", 0, 5, "abcde", 0, 4, 1); 596 test("abcde", 0, 5, "abcde", 0, 5, 0); 597 test("abcde", 0, 5, "abcde", 0, 6, 0); 598 test("abcde", 0, 5, "abcde", 1, 0, 5); 599 test("abcde", 0, 5, "abcde", 1, 1, -1); 600 test("abcde", 0, 5, "abcde", 1, 2, -1); 601 test("abcde", 0, 5, "abcde", 1, 3, -1); 602 test("abcde", 0, 5, "abcde", 1, 4, -1); 603 test("abcde", 0, 5, "abcde", 1, 5, -1); 604 test("abcde", 0, 5, "abcde", 2, 0, 5); 605 test("abcde", 0, 5, "abcde", 2, 1, -2); 606 test("abcde", 0, 5, "abcde", 2, 2, -2); 607 test("abcde", 0, 5, "abcde", 2, 3, -2); 608 test("abcde", 0, 5, "abcde", 2, 4, -2); 609 test("abcde", 0, 5, "abcde", 4, 0, 5); 610 test("abcde", 0, 5, "abcde", 4, 1, -4); 611 test("abcde", 0, 5, "abcde", 4, 2, -4); 612 test("abcde", 0, 5, "abcde", 5, 0, 5); 613 test("abcde", 0, 5, "abcde", 5, 1, 5); 614 test("abcde", 0, 5, "abcde", 6, 0, 0); 615 test("abcde", 0, 5, "abcdefghij", 0, 0, 5); 616 test("abcde", 0, 5, "abcdefghij", 0, 1, 4); 617 test("abcde", 0, 5, "abcdefghij", 0, 5, 0); 618 test("abcde", 0, 5, "abcdefghij", 0, 9, -4); 619 test("abcde", 0, 5, "abcdefghij", 0, 10, -5); 620 test("abcde", 0, 5, "abcdefghij", 0, 11, -5); 621 test("abcde", 0, 5, "abcdefghij", 1, 0, 5); 622 test("abcde", 0, 5, "abcdefghij", 1, 1, -1); 623 test("abcde", 0, 5, "abcdefghij", 1, 4, -1); 624 test("abcde", 0, 5, "abcdefghij", 1, 8, -1); 625 test("abcde", 0, 5, "abcdefghij", 1, 9, -1); 626 test("abcde", 0, 5, "abcdefghij", 1, 10, -1); 627 test("abcde", 0, 5, "abcdefghij", 5, 0, 5); 628 test("abcde", 0, 5, "abcdefghij", 5, 1, -5); 629 test("abcde", 0, 5, "abcdefghij", 5, 2, -5); 630 test("abcde", 0, 5, "abcdefghij", 5, 4, -5); 631 test("abcde", 0, 5, "abcdefghij", 5, 5, -5); 632 test("abcde", 0, 5, "abcdefghij", 5, 6, -5); 633 test("abcde", 0, 5, "abcdefghij", 9, 0, 5); 634 test("abcde", 0, 5, "abcdefghij", 9, 1, -9); 635 test("abcde", 0, 5, "abcdefghij", 9, 2, -9); 636 test("abcde", 0, 5, "abcdefghij", 10, 0, 5); 637 test("abcde", 0, 5, "abcdefghij", 10, 1, 5); 638 test("abcde", 0, 5, "abcdefghij", 11, 0, 0); 639 test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 0, 5); 640 test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 1, 4); 641 test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 10, -5); 642 test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 19, -14); 643 test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 20, -15); 644 test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 21, -15); 645 test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 0, 5); 646 test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 1, -1); 647 test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 9, -1); 648 test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 18, -1); 649 test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 19, -1); 650 test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 20, -1); 651 test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 0, 5); 652 test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 1, -10); 653 test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 5, -10); 654 test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 9, -10); 655 test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 10, -10); 656 test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 11, -10); 657 test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, 0, 5); 658 test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, 1, -19); 659 test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, 2, -19); 660 test("abcde", 0, 5, "abcdefghijklmnopqrst", 20, 0, 5); 661 test("abcde", 0, 5, "abcdefghijklmnopqrst", 20, 1, 5); 662 test("abcde", 0, 5, "abcdefghijklmnopqrst", 21, 0, 0); 663 test("abcde", 0, 6, "", 0, 0, 5); 664 test("abcde", 0, 6, "", 0, 1, 5); 665 test("abcde", 0, 6, "", 1, 0, 0); 666 test("abcde", 0, 6, "abcde", 0, 0, 5); 667 test("abcde", 0, 6, "abcde", 0, 1, 4); 668 test("abcde", 0, 6, "abcde", 0, 2, 3); 669 test("abcde", 0, 6, "abcde", 0, 4, 1); 670 test("abcde", 0, 6, "abcde", 0, 5, 0); 671} 672 673void test6() 674{ 675 test("abcde", 0, 6, "abcde", 0, 6, 0); 676 test("abcde", 0, 6, "abcde", 1, 0, 5); 677 test("abcde", 0, 6, "abcde", 1, 1, -1); 678 test("abcde", 0, 6, "abcde", 1, 2, -1); 679 test("abcde", 0, 6, "abcde", 1, 3, -1); 680 test("abcde", 0, 6, "abcde", 1, 4, -1); 681 test("abcde", 0, 6, "abcde", 1, 5, -1); 682 test("abcde", 0, 6, "abcde", 2, 0, 5); 683 test("abcde", 0, 6, "abcde", 2, 1, -2); 684 test("abcde", 0, 6, "abcde", 2, 2, -2); 685 test("abcde", 0, 6, "abcde", 2, 3, -2); 686 test("abcde", 0, 6, "abcde", 2, 4, -2); 687 test("abcde", 0, 6, "abcde", 4, 0, 5); 688 test("abcde", 0, 6, "abcde", 4, 1, -4); 689 test("abcde", 0, 6, "abcde", 4, 2, -4); 690 test("abcde", 0, 6, "abcde", 5, 0, 5); 691 test("abcde", 0, 6, "abcde", 5, 1, 5); 692 test("abcde", 0, 6, "abcde", 6, 0, 0); 693 test("abcde", 0, 6, "abcdefghij", 0, 0, 5); 694 test("abcde", 0, 6, "abcdefghij", 0, 1, 4); 695 test("abcde", 0, 6, "abcdefghij", 0, 5, 0); 696 test("abcde", 0, 6, "abcdefghij", 0, 9, -4); 697 test("abcde", 0, 6, "abcdefghij", 0, 10, -5); 698 test("abcde", 0, 6, "abcdefghij", 0, 11, -5); 699 test("abcde", 0, 6, "abcdefghij", 1, 0, 5); 700 test("abcde", 0, 6, "abcdefghij", 1, 1, -1); 701 test("abcde", 0, 6, "abcdefghij", 1, 4, -1); 702 test("abcde", 0, 6, "abcdefghij", 1, 8, -1); 703 test("abcde", 0, 6, "abcdefghij", 1, 9, -1); 704 test("abcde", 0, 6, "abcdefghij", 1, 10, -1); 705 test("abcde", 0, 6, "abcdefghij", 5, 0, 5); 706 test("abcde", 0, 6, "abcdefghij", 5, 1, -5); 707 test("abcde", 0, 6, "abcdefghij", 5, 2, -5); 708 test("abcde", 0, 6, "abcdefghij", 5, 4, -5); 709 test("abcde", 0, 6, "abcdefghij", 5, 5, -5); 710 test("abcde", 0, 6, "abcdefghij", 5, 6, -5); 711 test("abcde", 0, 6, "abcdefghij", 9, 0, 5); 712 test("abcde", 0, 6, "abcdefghij", 9, 1, -9); 713 test("abcde", 0, 6, "abcdefghij", 9, 2, -9); 714 test("abcde", 0, 6, "abcdefghij", 10, 0, 5); 715 test("abcde", 0, 6, "abcdefghij", 10, 1, 5); 716 test("abcde", 0, 6, "abcdefghij", 11, 0, 0); 717 test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 0, 5); 718 test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 1, 4); 719 test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 10, -5); 720 test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 19, -14); 721 test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 20, -15); 722 test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 21, -15); 723 test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 0, 5); 724 test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 1, -1); 725 test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 9, -1); 726 test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 18, -1); 727 test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 19, -1); 728 test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 20, -1); 729 test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 0, 5); 730 test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 1, -10); 731 test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 5, -10); 732 test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 9, -10); 733 test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 10, -10); 734 test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 11, -10); 735 test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, 0, 5); 736 test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, 1, -19); 737 test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, 2, -19); 738 test("abcde", 0, 6, "abcdefghijklmnopqrst", 20, 0, 5); 739 test("abcde", 0, 6, "abcdefghijklmnopqrst", 20, 1, 5); 740 test("abcde", 0, 6, "abcdefghijklmnopqrst", 21, 0, 0); 741 test("abcde", 1, 0, "", 0, 0, 0); 742 test("abcde", 1, 0, "", 0, 1, 0); 743 test("abcde", 1, 0, "", 1, 0, 0); 744 test("abcde", 1, 0, "abcde", 0, 0, 0); 745 test("abcde", 1, 0, "abcde", 0, 1, -1); 746 test("abcde", 1, 0, "abcde", 0, 2, -2); 747 test("abcde", 1, 0, "abcde", 0, 4, -4); 748 test("abcde", 1, 0, "abcde", 0, 5, -5); 749 test("abcde", 1, 0, "abcde", 0, 6, -5); 750 test("abcde", 1, 0, "abcde", 1, 0, 0); 751 test("abcde", 1, 0, "abcde", 1, 1, -1); 752 test("abcde", 1, 0, "abcde", 1, 2, -2); 753 test("abcde", 1, 0, "abcde", 1, 3, -3); 754 test("abcde", 1, 0, "abcde", 1, 4, -4); 755 test("abcde", 1, 0, "abcde", 1, 5, -4); 756 test("abcde", 1, 0, "abcde", 2, 0, 0); 757 test("abcde", 1, 0, "abcde", 2, 1, -1); 758 test("abcde", 1, 0, "abcde", 2, 2, -2); 759 test("abcde", 1, 0, "abcde", 2, 3, -3); 760 test("abcde", 1, 0, "abcde", 2, 4, -3); 761 test("abcde", 1, 0, "abcde", 4, 0, 0); 762 test("abcde", 1, 0, "abcde", 4, 1, -1); 763 test("abcde", 1, 0, "abcde", 4, 2, -1); 764 test("abcde", 1, 0, "abcde", 5, 0, 0); 765 test("abcde", 1, 0, "abcde", 5, 1, 0); 766 test("abcde", 1, 0, "abcde", 6, 0, 0); 767 test("abcde", 1, 0, "abcdefghij", 0, 0, 0); 768 test("abcde", 1, 0, "abcdefghij", 0, 1, -1); 769 test("abcde", 1, 0, "abcdefghij", 0, 5, -5); 770 test("abcde", 1, 0, "abcdefghij", 0, 9, -9); 771 test("abcde", 1, 0, "abcdefghij", 0, 10, -10); 772 test("abcde", 1, 0, "abcdefghij", 0, 11, -10); 773 test("abcde", 1, 0, "abcdefghij", 1, 0, 0); 774 test("abcde", 1, 0, "abcdefghij", 1, 1, -1); 775} 776 777void test7() 778{ 779 test("abcde", 1, 0, "abcdefghij", 1, 4, -4); 780 test("abcde", 1, 0, "abcdefghij", 1, 8, -8); 781 test("abcde", 1, 0, "abcdefghij", 1, 9, -9); 782 test("abcde", 1, 0, "abcdefghij", 1, 10, -9); 783 test("abcde", 1, 0, "abcdefghij", 5, 0, 0); 784 test("abcde", 1, 0, "abcdefghij", 5, 1, -1); 785 test("abcde", 1, 0, "abcdefghij", 5, 2, -2); 786 test("abcde", 1, 0, "abcdefghij", 5, 4, -4); 787 test("abcde", 1, 0, "abcdefghij", 5, 5, -5); 788 test("abcde", 1, 0, "abcdefghij", 5, 6, -5); 789 test("abcde", 1, 0, "abcdefghij", 9, 0, 0); 790 test("abcde", 1, 0, "abcdefghij", 9, 1, -1); 791 test("abcde", 1, 0, "abcdefghij", 9, 2, -1); 792 test("abcde", 1, 0, "abcdefghij", 10, 0, 0); 793 test("abcde", 1, 0, "abcdefghij", 10, 1, 0); 794 test("abcde", 1, 0, "abcdefghij", 11, 0, 0); 795 test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0); 796 test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 1, -1); 797 test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 10, -10); 798 test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 19, -19); 799 test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 20, -20); 800 test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 21, -20); 801 test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0); 802 test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 1, -1); 803 test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 9, -9); 804 test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 18, -18); 805 test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 19, -19); 806 test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 20, -19); 807 test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0); 808 test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 1, -1); 809 test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 5, -5); 810 test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 9, -9); 811 test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 10, -10); 812 test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 11, -10); 813 test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0); 814 test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, 1, -1); 815 test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, 2, -1); 816 test("abcde", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0); 817 test("abcde", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0); 818 test("abcde", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0); 819 test("abcde", 1, 1, "", 0, 0, 1); 820 test("abcde", 1, 1, "", 0, 1, 1); 821 test("abcde", 1, 1, "", 1, 0, 0); 822 test("abcde", 1, 1, "abcde", 0, 0, 1); 823 test("abcde", 1, 1, "abcde", 0, 1, 1); 824 test("abcde", 1, 1, "abcde", 0, 2, 1); 825 test("abcde", 1, 1, "abcde", 0, 4, 1); 826 test("abcde", 1, 1, "abcde", 0, 5, 1); 827 test("abcde", 1, 1, "abcde", 0, 6, 1); 828 test("abcde", 1, 1, "abcde", 1, 0, 1); 829 test("abcde", 1, 1, "abcde", 1, 1, 0); 830 test("abcde", 1, 1, "abcde", 1, 2, -1); 831 test("abcde", 1, 1, "abcde", 1, 3, -2); 832 test("abcde", 1, 1, "abcde", 1, 4, -3); 833 test("abcde", 1, 1, "abcde", 1, 5, -3); 834 test("abcde", 1, 1, "abcde", 2, 0, 1); 835 test("abcde", 1, 1, "abcde", 2, 1, -1); 836 test("abcde", 1, 1, "abcde", 2, 2, -1); 837 test("abcde", 1, 1, "abcde", 2, 3, -1); 838 test("abcde", 1, 1, "abcde", 2, 4, -1); 839 test("abcde", 1, 1, "abcde", 4, 0, 1); 840 test("abcde", 1, 1, "abcde", 4, 1, -3); 841 test("abcde", 1, 1, "abcde", 4, 2, -3); 842 test("abcde", 1, 1, "abcde", 5, 0, 1); 843 test("abcde", 1, 1, "abcde", 5, 1, 1); 844 test("abcde", 1, 1, "abcde", 6, 0, 0); 845 test("abcde", 1, 1, "abcdefghij", 0, 0, 1); 846 test("abcde", 1, 1, "abcdefghij", 0, 1, 1); 847 test("abcde", 1, 1, "abcdefghij", 0, 5, 1); 848 test("abcde", 1, 1, "abcdefghij", 0, 9, 1); 849 test("abcde", 1, 1, "abcdefghij", 0, 10, 1); 850 test("abcde", 1, 1, "abcdefghij", 0, 11, 1); 851 test("abcde", 1, 1, "abcdefghij", 1, 0, 1); 852 test("abcde", 1, 1, "abcdefghij", 1, 1, 0); 853 test("abcde", 1, 1, "abcdefghij", 1, 4, -3); 854 test("abcde", 1, 1, "abcdefghij", 1, 8, -7); 855 test("abcde", 1, 1, "abcdefghij", 1, 9, -8); 856 test("abcde", 1, 1, "abcdefghij", 1, 10, -8); 857 test("abcde", 1, 1, "abcdefghij", 5, 0, 1); 858 test("abcde", 1, 1, "abcdefghij", 5, 1, -4); 859 test("abcde", 1, 1, "abcdefghij", 5, 2, -4); 860 test("abcde", 1, 1, "abcdefghij", 5, 4, -4); 861 test("abcde", 1, 1, "abcdefghij", 5, 5, -4); 862 test("abcde", 1, 1, "abcdefghij", 5, 6, -4); 863 test("abcde", 1, 1, "abcdefghij", 9, 0, 1); 864 test("abcde", 1, 1, "abcdefghij", 9, 1, -8); 865 test("abcde", 1, 1, "abcdefghij", 9, 2, -8); 866 test("abcde", 1, 1, "abcdefghij", 10, 0, 1); 867 test("abcde", 1, 1, "abcdefghij", 10, 1, 1); 868 test("abcde", 1, 1, "abcdefghij", 11, 0, 0); 869 test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 0, 1); 870 test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 1, 1); 871 test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 10, 1); 872 test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 19, 1); 873 test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 20, 1); 874 test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 21, 1); 875 test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 0, 1); 876 test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 1, 0); 877 test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 9, -8); 878 test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 18, -17); 879} 880 881void test8() 882{ 883 test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 19, -18); 884 test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 20, -18); 885 test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 0, 1); 886 test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 1, -9); 887 test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 5, -9); 888 test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 9, -9); 889 test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 10, -9); 890 test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 11, -9); 891 test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 0, 1); 892 test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 1, -18); 893 test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 2, -18); 894 test("abcde", 1, 1, "abcdefghijklmnopqrst", 20, 0, 1); 895 test("abcde", 1, 1, "abcdefghijklmnopqrst", 20, 1, 1); 896 test("abcde", 1, 1, "abcdefghijklmnopqrst", 21, 0, 0); 897 test("abcde", 1, 2, "", 0, 0, 2); 898 test("abcde", 1, 2, "", 0, 1, 2); 899 test("abcde", 1, 2, "", 1, 0, 0); 900 test("abcde", 1, 2, "abcde", 0, 0, 2); 901 test("abcde", 1, 2, "abcde", 0, 1, 1); 902 test("abcde", 1, 2, "abcde", 0, 2, 1); 903 test("abcde", 1, 2, "abcde", 0, 4, 1); 904 test("abcde", 1, 2, "abcde", 0, 5, 1); 905 test("abcde", 1, 2, "abcde", 0, 6, 1); 906 test("abcde", 1, 2, "abcde", 1, 0, 2); 907 test("abcde", 1, 2, "abcde", 1, 1, 1); 908 test("abcde", 1, 2, "abcde", 1, 2, 0); 909 test("abcde", 1, 2, "abcde", 1, 3, -1); 910 test("abcde", 1, 2, "abcde", 1, 4, -2); 911 test("abcde", 1, 2, "abcde", 1, 5, -2); 912 test("abcde", 1, 2, "abcde", 2, 0, 2); 913 test("abcde", 1, 2, "abcde", 2, 1, -1); 914 test("abcde", 1, 2, "abcde", 2, 2, -1); 915 test("abcde", 1, 2, "abcde", 2, 3, -1); 916 test("abcde", 1, 2, "abcde", 2, 4, -1); 917 test("abcde", 1, 2, "abcde", 4, 0, 2); 918 test("abcde", 1, 2, "abcde", 4, 1, -3); 919 test("abcde", 1, 2, "abcde", 4, 2, -3); 920 test("abcde", 1, 2, "abcde", 5, 0, 2); 921 test("abcde", 1, 2, "abcde", 5, 1, 2); 922 test("abcde", 1, 2, "abcde", 6, 0, 0); 923 test("abcde", 1, 2, "abcdefghij", 0, 0, 2); 924 test("abcde", 1, 2, "abcdefghij", 0, 1, 1); 925 test("abcde", 1, 2, "abcdefghij", 0, 5, 1); 926 test("abcde", 1, 2, "abcdefghij", 0, 9, 1); 927 test("abcde", 1, 2, "abcdefghij", 0, 10, 1); 928 test("abcde", 1, 2, "abcdefghij", 0, 11, 1); 929 test("abcde", 1, 2, "abcdefghij", 1, 0, 2); 930 test("abcde", 1, 2, "abcdefghij", 1, 1, 1); 931 test("abcde", 1, 2, "abcdefghij", 1, 4, -2); 932 test("abcde", 1, 2, "abcdefghij", 1, 8, -6); 933 test("abcde", 1, 2, "abcdefghij", 1, 9, -7); 934 test("abcde", 1, 2, "abcdefghij", 1, 10, -7); 935 test("abcde", 1, 2, "abcdefghij", 5, 0, 2); 936 test("abcde", 1, 2, "abcdefghij", 5, 1, -4); 937 test("abcde", 1, 2, "abcdefghij", 5, 2, -4); 938 test("abcde", 1, 2, "abcdefghij", 5, 4, -4); 939 test("abcde", 1, 2, "abcdefghij", 5, 5, -4); 940 test("abcde", 1, 2, "abcdefghij", 5, 6, -4); 941 test("abcde", 1, 2, "abcdefghij", 9, 0, 2); 942 test("abcde", 1, 2, "abcdefghij", 9, 1, -8); 943 test("abcde", 1, 2, "abcdefghij", 9, 2, -8); 944 test("abcde", 1, 2, "abcdefghij", 10, 0, 2); 945 test("abcde", 1, 2, "abcdefghij", 10, 1, 2); 946 test("abcde", 1, 2, "abcdefghij", 11, 0, 0); 947 test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 0, 2); 948 test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 1, 1); 949 test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 10, 1); 950 test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 19, 1); 951 test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 20, 1); 952 test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 21, 1); 953 test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 0, 2); 954 test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 1, 1); 955 test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 9, -7); 956 test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 18, -16); 957 test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 19, -17); 958 test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 20, -17); 959 test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 0, 2); 960 test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 1, -9); 961 test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 5, -9); 962 test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 9, -9); 963 test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 10, -9); 964 test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 11, -9); 965 test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 0, 2); 966 test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 1, -18); 967 test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 2, -18); 968 test("abcde", 1, 2, "abcdefghijklmnopqrst", 20, 0, 2); 969 test("abcde", 1, 2, "abcdefghijklmnopqrst", 20, 1, 2); 970 test("abcde", 1, 2, "abcdefghijklmnopqrst", 21, 0, 0); 971 test("abcde", 1, 3, "", 0, 0, 3); 972 test("abcde", 1, 3, "", 0, 1, 3); 973 test("abcde", 1, 3, "", 1, 0, 0); 974 test("abcde", 1, 3, "abcde", 0, 0, 3); 975 test("abcde", 1, 3, "abcde", 0, 1, 1); 976 test("abcde", 1, 3, "abcde", 0, 2, 1); 977 test("abcde", 1, 3, "abcde", 0, 4, 1); 978 test("abcde", 1, 3, "abcde", 0, 5, 1); 979 test("abcde", 1, 3, "abcde", 0, 6, 1); 980 test("abcde", 1, 3, "abcde", 1, 0, 3); 981 test("abcde", 1, 3, "abcde", 1, 1, 2); 982 test("abcde", 1, 3, "abcde", 1, 2, 1); 983} 984 985void test9() 986{ 987 test("abcde", 1, 3, "abcde", 1, 3, 0); 988 test("abcde", 1, 3, "abcde", 1, 4, -1); 989 test("abcde", 1, 3, "abcde", 1, 5, -1); 990 test("abcde", 1, 3, "abcde", 2, 0, 3); 991 test("abcde", 1, 3, "abcde", 2, 1, -1); 992 test("abcde", 1, 3, "abcde", 2, 2, -1); 993 test("abcde", 1, 3, "abcde", 2, 3, -1); 994 test("abcde", 1, 3, "abcde", 2, 4, -1); 995 test("abcde", 1, 3, "abcde", 4, 0, 3); 996 test("abcde", 1, 3, "abcde", 4, 1, -3); 997 test("abcde", 1, 3, "abcde", 4, 2, -3); 998 test("abcde", 1, 3, "abcde", 5, 0, 3); 999 test("abcde", 1, 3, "abcde", 5, 1, 3); 1000 test("abcde", 1, 3, "abcde", 6, 0, 0); 1001 test("abcde", 1, 3, "abcdefghij", 0, 0, 3); 1002 test("abcde", 1, 3, "abcdefghij", 0, 1, 1); 1003 test("abcde", 1, 3, "abcdefghij", 0, 5, 1); 1004 test("abcde", 1, 3, "abcdefghij", 0, 9, 1); 1005 test("abcde", 1, 3, "abcdefghij", 0, 10, 1); 1006 test("abcde", 1, 3, "abcdefghij", 0, 11, 1); 1007 test("abcde", 1, 3, "abcdefghij", 1, 0, 3); 1008 test("abcde", 1, 3, "abcdefghij", 1, 1, 2); 1009 test("abcde", 1, 3, "abcdefghij", 1, 4, -1); 1010 test("abcde", 1, 3, "abcdefghij", 1, 8, -5); 1011 test("abcde", 1, 3, "abcdefghij", 1, 9, -6); 1012 test("abcde", 1, 3, "abcdefghij", 1, 10, -6); 1013 test("abcde", 1, 3, "abcdefghij", 5, 0, 3); 1014 test("abcde", 1, 3, "abcdefghij", 5, 1, -4); 1015 test("abcde", 1, 3, "abcdefghij", 5, 2, -4); 1016 test("abcde", 1, 3, "abcdefghij", 5, 4, -4); 1017 test("abcde", 1, 3, "abcdefghij", 5, 5, -4); 1018 test("abcde", 1, 3, "abcdefghij", 5, 6, -4); 1019 test("abcde", 1, 3, "abcdefghij", 9, 0, 3); 1020 test("abcde", 1, 3, "abcdefghij", 9, 1, -8); 1021 test("abcde", 1, 3, "abcdefghij", 9, 2, -8); 1022 test("abcde", 1, 3, "abcdefghij", 10, 0, 3); 1023 test("abcde", 1, 3, "abcdefghij", 10, 1, 3); 1024 test("abcde", 1, 3, "abcdefghij", 11, 0, 0); 1025 test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 0, 3); 1026 test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 1, 1); 1027 test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 10, 1); 1028 test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 19, 1); 1029 test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 20, 1); 1030 test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 21, 1); 1031 test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 0, 3); 1032 test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 1, 2); 1033 test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 9, -6); 1034 test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 18, -15); 1035 test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 19, -16); 1036 test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 20, -16); 1037 test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 0, 3); 1038 test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 1, -9); 1039 test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 5, -9); 1040 test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 9, -9); 1041 test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 10, -9); 1042 test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 11, -9); 1043 test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 0, 3); 1044 test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 1, -18); 1045 test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 2, -18); 1046 test("abcde", 1, 3, "abcdefghijklmnopqrst", 20, 0, 3); 1047 test("abcde", 1, 3, "abcdefghijklmnopqrst", 20, 1, 3); 1048 test("abcde", 1, 3, "abcdefghijklmnopqrst", 21, 0, 0); 1049 test("abcde", 1, 4, "", 0, 0, 4); 1050 test("abcde", 1, 4, "", 0, 1, 4); 1051 test("abcde", 1, 4, "", 1, 0, 0); 1052 test("abcde", 1, 4, "abcde", 0, 0, 4); 1053 test("abcde", 1, 4, "abcde", 0, 1, 1); 1054 test("abcde", 1, 4, "abcde", 0, 2, 1); 1055 test("abcde", 1, 4, "abcde", 0, 4, 1); 1056 test("abcde", 1, 4, "abcde", 0, 5, 1); 1057 test("abcde", 1, 4, "abcde", 0, 6, 1); 1058 test("abcde", 1, 4, "abcde", 1, 0, 4); 1059 test("abcde", 1, 4, "abcde", 1, 1, 3); 1060 test("abcde", 1, 4, "abcde", 1, 2, 2); 1061 test("abcde", 1, 4, "abcde", 1, 3, 1); 1062 test("abcde", 1, 4, "abcde", 1, 4, 0); 1063 test("abcde", 1, 4, "abcde", 1, 5, 0); 1064 test("abcde", 1, 4, "abcde", 2, 0, 4); 1065 test("abcde", 1, 4, "abcde", 2, 1, -1); 1066 test("abcde", 1, 4, "abcde", 2, 2, -1); 1067 test("abcde", 1, 4, "abcde", 2, 3, -1); 1068 test("abcde", 1, 4, "abcde", 2, 4, -1); 1069 test("abcde", 1, 4, "abcde", 4, 0, 4); 1070 test("abcde", 1, 4, "abcde", 4, 1, -3); 1071 test("abcde", 1, 4, "abcde", 4, 2, -3); 1072 test("abcde", 1, 4, "abcde", 5, 0, 4); 1073 test("abcde", 1, 4, "abcde", 5, 1, 4); 1074 test("abcde", 1, 4, "abcde", 6, 0, 0); 1075 test("abcde", 1, 4, "abcdefghij", 0, 0, 4); 1076 test("abcde", 1, 4, "abcdefghij", 0, 1, 1); 1077 test("abcde", 1, 4, "abcdefghij", 0, 5, 1); 1078 test("abcde", 1, 4, "abcdefghij", 0, 9, 1); 1079 test("abcde", 1, 4, "abcdefghij", 0, 10, 1); 1080 test("abcde", 1, 4, "abcdefghij", 0, 11, 1); 1081 test("abcde", 1, 4, "abcdefghij", 1, 0, 4); 1082 test("abcde", 1, 4, "abcdefghij", 1, 1, 3); 1083 test("abcde", 1, 4, "abcdefghij", 1, 4, 0); 1084 test("abcde", 1, 4, "abcdefghij", 1, 8, -4); 1085 test("abcde", 1, 4, "abcdefghij", 1, 9, -5); 1086 test("abcde", 1, 4, "abcdefghij", 1, 10, -5); 1087} 1088 1089void test10() 1090{ 1091 test("abcde", 1, 4, "abcdefghij", 5, 0, 4); 1092 test("abcde", 1, 4, "abcdefghij", 5, 1, -4); 1093 test("abcde", 1, 4, "abcdefghij", 5, 2, -4); 1094 test("abcde", 1, 4, "abcdefghij", 5, 4, -4); 1095 test("abcde", 1, 4, "abcdefghij", 5, 5, -4); 1096 test("abcde", 1, 4, "abcdefghij", 5, 6, -4); 1097 test("abcde", 1, 4, "abcdefghij", 9, 0, 4); 1098 test("abcde", 1, 4, "abcdefghij", 9, 1, -8); 1099 test("abcde", 1, 4, "abcdefghij", 9, 2, -8); 1100 test("abcde", 1, 4, "abcdefghij", 10, 0, 4); 1101 test("abcde", 1, 4, "abcdefghij", 10, 1, 4); 1102 test("abcde", 1, 4, "abcdefghij", 11, 0, 0); 1103 test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 0, 4); 1104 test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 1, 1); 1105 test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 10, 1); 1106 test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 19, 1); 1107 test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 20, 1); 1108 test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 21, 1); 1109 test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 0, 4); 1110 test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 1, 3); 1111 test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 9, -5); 1112 test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 18, -14); 1113 test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 19, -15); 1114 test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 20, -15); 1115 test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 0, 4); 1116 test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 1, -9); 1117 test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 5, -9); 1118 test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 9, -9); 1119 test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 10, -9); 1120 test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 11, -9); 1121 test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 0, 4); 1122 test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 1, -18); 1123 test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 2, -18); 1124 test("abcde", 1, 4, "abcdefghijklmnopqrst", 20, 0, 4); 1125 test("abcde", 1, 4, "abcdefghijklmnopqrst", 20, 1, 4); 1126 test("abcde", 1, 4, "abcdefghijklmnopqrst", 21, 0, 0); 1127 test("abcde", 1, 5, "", 0, 0, 4); 1128 test("abcde", 1, 5, "", 0, 1, 4); 1129 test("abcde", 1, 5, "", 1, 0, 0); 1130 test("abcde", 1, 5, "abcde", 0, 0, 4); 1131 test("abcde", 1, 5, "abcde", 0, 1, 1); 1132 test("abcde", 1, 5, "abcde", 0, 2, 1); 1133 test("abcde", 1, 5, "abcde", 0, 4, 1); 1134 test("abcde", 1, 5, "abcde", 0, 5, 1); 1135 test("abcde", 1, 5, "abcde", 0, 6, 1); 1136 test("abcde", 1, 5, "abcde", 1, 0, 4); 1137 test("abcde", 1, 5, "abcde", 1, 1, 3); 1138 test("abcde", 1, 5, "abcde", 1, 2, 2); 1139 test("abcde", 1, 5, "abcde", 1, 3, 1); 1140 test("abcde", 1, 5, "abcde", 1, 4, 0); 1141 test("abcde", 1, 5, "abcde", 1, 5, 0); 1142 test("abcde", 1, 5, "abcde", 2, 0, 4); 1143 test("abcde", 1, 5, "abcde", 2, 1, -1); 1144 test("abcde", 1, 5, "abcde", 2, 2, -1); 1145 test("abcde", 1, 5, "abcde", 2, 3, -1); 1146 test("abcde", 1, 5, "abcde", 2, 4, -1); 1147 test("abcde", 1, 5, "abcde", 4, 0, 4); 1148 test("abcde", 1, 5, "abcde", 4, 1, -3); 1149 test("abcde", 1, 5, "abcde", 4, 2, -3); 1150 test("abcde", 1, 5, "abcde", 5, 0, 4); 1151 test("abcde", 1, 5, "abcde", 5, 1, 4); 1152 test("abcde", 1, 5, "abcde", 6, 0, 0); 1153 test("abcde", 1, 5, "abcdefghij", 0, 0, 4); 1154 test("abcde", 1, 5, "abcdefghij", 0, 1, 1); 1155 test("abcde", 1, 5, "abcdefghij", 0, 5, 1); 1156 test("abcde", 1, 5, "abcdefghij", 0, 9, 1); 1157 test("abcde", 1, 5, "abcdefghij", 0, 10, 1); 1158 test("abcde", 1, 5, "abcdefghij", 0, 11, 1); 1159 test("abcde", 1, 5, "abcdefghij", 1, 0, 4); 1160 test("abcde", 1, 5, "abcdefghij", 1, 1, 3); 1161 test("abcde", 1, 5, "abcdefghij", 1, 4, 0); 1162 test("abcde", 1, 5, "abcdefghij", 1, 8, -4); 1163 test("abcde", 1, 5, "abcdefghij", 1, 9, -5); 1164 test("abcde", 1, 5, "abcdefghij", 1, 10, -5); 1165 test("abcde", 1, 5, "abcdefghij", 5, 0, 4); 1166 test("abcde", 1, 5, "abcdefghij", 5, 1, -4); 1167 test("abcde", 1, 5, "abcdefghij", 5, 2, -4); 1168 test("abcde", 1, 5, "abcdefghij", 5, 4, -4); 1169 test("abcde", 1, 5, "abcdefghij", 5, 5, -4); 1170 test("abcde", 1, 5, "abcdefghij", 5, 6, -4); 1171 test("abcde", 1, 5, "abcdefghij", 9, 0, 4); 1172 test("abcde", 1, 5, "abcdefghij", 9, 1, -8); 1173 test("abcde", 1, 5, "abcdefghij", 9, 2, -8); 1174 test("abcde", 1, 5, "abcdefghij", 10, 0, 4); 1175 test("abcde", 1, 5, "abcdefghij", 10, 1, 4); 1176 test("abcde", 1, 5, "abcdefghij", 11, 0, 0); 1177 test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 0, 4); 1178 test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 1, 1); 1179 test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 10, 1); 1180 test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 19, 1); 1181 test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 20, 1); 1182 test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 21, 1); 1183 test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 0, 4); 1184 test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 1, 3); 1185 test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 9, -5); 1186 test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 18, -14); 1187 test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 19, -15); 1188 test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 20, -15); 1189 test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 0, 4); 1190 test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 1, -9); 1191} 1192 1193void test11() 1194{ 1195 test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 5, -9); 1196 test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 9, -9); 1197 test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 10, -9); 1198 test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 11, -9); 1199 test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 0, 4); 1200 test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 1, -18); 1201 test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 2, -18); 1202 test("abcde", 1, 5, "abcdefghijklmnopqrst", 20, 0, 4); 1203 test("abcde", 1, 5, "abcdefghijklmnopqrst", 20, 1, 4); 1204 test("abcde", 1, 5, "abcdefghijklmnopqrst", 21, 0, 0); 1205 test("abcde", 2, 0, "", 0, 0, 0); 1206 test("abcde", 2, 0, "", 0, 1, 0); 1207 test("abcde", 2, 0, "", 1, 0, 0); 1208 test("abcde", 2, 0, "abcde", 0, 0, 0); 1209 test("abcde", 2, 0, "abcde", 0, 1, -1); 1210 test("abcde", 2, 0, "abcde", 0, 2, -2); 1211 test("abcde", 2, 0, "abcde", 0, 4, -4); 1212 test("abcde", 2, 0, "abcde", 0, 5, -5); 1213 test("abcde", 2, 0, "abcde", 0, 6, -5); 1214 test("abcde", 2, 0, "abcde", 1, 0, 0); 1215 test("abcde", 2, 0, "abcde", 1, 1, -1); 1216 test("abcde", 2, 0, "abcde", 1, 2, -2); 1217 test("abcde", 2, 0, "abcde", 1, 3, -3); 1218 test("abcde", 2, 0, "abcde", 1, 4, -4); 1219 test("abcde", 2, 0, "abcde", 1, 5, -4); 1220 test("abcde", 2, 0, "abcde", 2, 0, 0); 1221 test("abcde", 2, 0, "abcde", 2, 1, -1); 1222 test("abcde", 2, 0, "abcde", 2, 2, -2); 1223 test("abcde", 2, 0, "abcde", 2, 3, -3); 1224 test("abcde", 2, 0, "abcde", 2, 4, -3); 1225 test("abcde", 2, 0, "abcde", 4, 0, 0); 1226 test("abcde", 2, 0, "abcde", 4, 1, -1); 1227 test("abcde", 2, 0, "abcde", 4, 2, -1); 1228 test("abcde", 2, 0, "abcde", 5, 0, 0); 1229 test("abcde", 2, 0, "abcde", 5, 1, 0); 1230 test("abcde", 2, 0, "abcde", 6, 0, 0); 1231 test("abcde", 2, 0, "abcdefghij", 0, 0, 0); 1232 test("abcde", 2, 0, "abcdefghij", 0, 1, -1); 1233 test("abcde", 2, 0, "abcdefghij", 0, 5, -5); 1234 test("abcde", 2, 0, "abcdefghij", 0, 9, -9); 1235 test("abcde", 2, 0, "abcdefghij", 0, 10, -10); 1236 test("abcde", 2, 0, "abcdefghij", 0, 11, -10); 1237 test("abcde", 2, 0, "abcdefghij", 1, 0, 0); 1238 test("abcde", 2, 0, "abcdefghij", 1, 1, -1); 1239 test("abcde", 2, 0, "abcdefghij", 1, 4, -4); 1240 test("abcde", 2, 0, "abcdefghij", 1, 8, -8); 1241 test("abcde", 2, 0, "abcdefghij", 1, 9, -9); 1242 test("abcde", 2, 0, "abcdefghij", 1, 10, -9); 1243 test("abcde", 2, 0, "abcdefghij", 5, 0, 0); 1244 test("abcde", 2, 0, "abcdefghij", 5, 1, -1); 1245 test("abcde", 2, 0, "abcdefghij", 5, 2, -2); 1246 test("abcde", 2, 0, "abcdefghij", 5, 4, -4); 1247 test("abcde", 2, 0, "abcdefghij", 5, 5, -5); 1248 test("abcde", 2, 0, "abcdefghij", 5, 6, -5); 1249 test("abcde", 2, 0, "abcdefghij", 9, 0, 0); 1250 test("abcde", 2, 0, "abcdefghij", 9, 1, -1); 1251 test("abcde", 2, 0, "abcdefghij", 9, 2, -1); 1252 test("abcde", 2, 0, "abcdefghij", 10, 0, 0); 1253 test("abcde", 2, 0, "abcdefghij", 10, 1, 0); 1254 test("abcde", 2, 0, "abcdefghij", 11, 0, 0); 1255 test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 0, 0); 1256 test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 1, -1); 1257 test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 10, -10); 1258 test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 19, -19); 1259 test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 20, -20); 1260 test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 21, -20); 1261 test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 0, 0); 1262 test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 1, -1); 1263 test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 9, -9); 1264 test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 18, -18); 1265 test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 19, -19); 1266 test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 20, -19); 1267 test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 0, 0); 1268 test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 1, -1); 1269 test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 5, -5); 1270 test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 9, -9); 1271 test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 10, -10); 1272 test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 11, -10); 1273 test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, 0, 0); 1274 test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, 1, -1); 1275 test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, 2, -1); 1276 test("abcde", 2, 0, "abcdefghijklmnopqrst", 20, 0, 0); 1277 test("abcde", 2, 0, "abcdefghijklmnopqrst", 20, 1, 0); 1278 test("abcde", 2, 0, "abcdefghijklmnopqrst", 21, 0, 0); 1279 test("abcde", 2, 1, "", 0, 0, 1); 1280 test("abcde", 2, 1, "", 0, 1, 1); 1281 test("abcde", 2, 1, "", 1, 0, 0); 1282 test("abcde", 2, 1, "abcde", 0, 0, 1); 1283 test("abcde", 2, 1, "abcde", 0, 1, 2); 1284 test("abcde", 2, 1, "abcde", 0, 2, 2); 1285 test("abcde", 2, 1, "abcde", 0, 4, 2); 1286 test("abcde", 2, 1, "abcde", 0, 5, 2); 1287 test("abcde", 2, 1, "abcde", 0, 6, 2); 1288 test("abcde", 2, 1, "abcde", 1, 0, 1); 1289 test("abcde", 2, 1, "abcde", 1, 1, 1); 1290 test("abcde", 2, 1, "abcde", 1, 2, 1); 1291 test("abcde", 2, 1, "abcde", 1, 3, 1); 1292 test("abcde", 2, 1, "abcde", 1, 4, 1); 1293 test("abcde", 2, 1, "abcde", 1, 5, 1); 1294 test("abcde", 2, 1, "abcde", 2, 0, 1); 1295} 1296 1297void test12() 1298{ 1299 test("abcde", 2, 1, "abcde", 2, 1, 0); 1300 test("abcde", 2, 1, "abcde", 2, 2, -1); 1301 test("abcde", 2, 1, "abcde", 2, 3, -2); 1302 test("abcde", 2, 1, "abcde", 2, 4, -2); 1303 test("abcde", 2, 1, "abcde", 4, 0, 1); 1304 test("abcde", 2, 1, "abcde", 4, 1, -2); 1305 test("abcde", 2, 1, "abcde", 4, 2, -2); 1306 test("abcde", 2, 1, "abcde", 5, 0, 1); 1307 test("abcde", 2, 1, "abcde", 5, 1, 1); 1308 test("abcde", 2, 1, "abcde", 6, 0, 0); 1309 test("abcde", 2, 1, "abcdefghij", 0, 0, 1); 1310 test("abcde", 2, 1, "abcdefghij", 0, 1, 2); 1311 test("abcde", 2, 1, "abcdefghij", 0, 5, 2); 1312 test("abcde", 2, 1, "abcdefghij", 0, 9, 2); 1313 test("abcde", 2, 1, "abcdefghij", 0, 10, 2); 1314 test("abcde", 2, 1, "abcdefghij", 0, 11, 2); 1315 test("abcde", 2, 1, "abcdefghij", 1, 0, 1); 1316 test("abcde", 2, 1, "abcdefghij", 1, 1, 1); 1317 test("abcde", 2, 1, "abcdefghij", 1, 4, 1); 1318 test("abcde", 2, 1, "abcdefghij", 1, 8, 1); 1319 test("abcde", 2, 1, "abcdefghij", 1, 9, 1); 1320 test("abcde", 2, 1, "abcdefghij", 1, 10, 1); 1321 test("abcde", 2, 1, "abcdefghij", 5, 0, 1); 1322 test("abcde", 2, 1, "abcdefghij", 5, 1, -3); 1323 test("abcde", 2, 1, "abcdefghij", 5, 2, -3); 1324 test("abcde", 2, 1, "abcdefghij", 5, 4, -3); 1325 test("abcde", 2, 1, "abcdefghij", 5, 5, -3); 1326 test("abcde", 2, 1, "abcdefghij", 5, 6, -3); 1327 test("abcde", 2, 1, "abcdefghij", 9, 0, 1); 1328 test("abcde", 2, 1, "abcdefghij", 9, 1, -7); 1329 test("abcde", 2, 1, "abcdefghij", 9, 2, -7); 1330 test("abcde", 2, 1, "abcdefghij", 10, 0, 1); 1331 test("abcde", 2, 1, "abcdefghij", 10, 1, 1); 1332 test("abcde", 2, 1, "abcdefghij", 11, 0, 0); 1333 test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 0, 1); 1334 test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 1, 2); 1335 test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 10, 2); 1336 test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 19, 2); 1337 test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 20, 2); 1338 test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 21, 2); 1339 test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 0, 1); 1340 test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 1, 1); 1341 test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 9, 1); 1342 test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 18, 1); 1343 test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 19, 1); 1344 test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 20, 1); 1345 test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 0, 1); 1346 test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 1, -8); 1347 test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 5, -8); 1348 test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 9, -8); 1349 test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 10, -8); 1350 test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 11, -8); 1351 test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 0, 1); 1352 test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 1, -17); 1353 test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 2, -17); 1354 test("abcde", 2, 1, "abcdefghijklmnopqrst", 20, 0, 1); 1355 test("abcde", 2, 1, "abcdefghijklmnopqrst", 20, 1, 1); 1356 test("abcde", 2, 1, "abcdefghijklmnopqrst", 21, 0, 0); 1357 test("abcde", 2, 2, "", 0, 0, 2); 1358 test("abcde", 2, 2, "", 0, 1, 2); 1359 test("abcde", 2, 2, "", 1, 0, 0); 1360 test("abcde", 2, 2, "abcde", 0, 0, 2); 1361 test("abcde", 2, 2, "abcde", 0, 1, 2); 1362 test("abcde", 2, 2, "abcde", 0, 2, 2); 1363 test("abcde", 2, 2, "abcde", 0, 4, 2); 1364 test("abcde", 2, 2, "abcde", 0, 5, 2); 1365 test("abcde", 2, 2, "abcde", 0, 6, 2); 1366 test("abcde", 2, 2, "abcde", 1, 0, 2); 1367 test("abcde", 2, 2, "abcde", 1, 1, 1); 1368 test("abcde", 2, 2, "abcde", 1, 2, 1); 1369 test("abcde", 2, 2, "abcde", 1, 3, 1); 1370 test("abcde", 2, 2, "abcde", 1, 4, 1); 1371 test("abcde", 2, 2, "abcde", 1, 5, 1); 1372 test("abcde", 2, 2, "abcde", 2, 0, 2); 1373 test("abcde", 2, 2, "abcde", 2, 1, 1); 1374 test("abcde", 2, 2, "abcde", 2, 2, 0); 1375 test("abcde", 2, 2, "abcde", 2, 3, -1); 1376 test("abcde", 2, 2, "abcde", 2, 4, -1); 1377 test("abcde", 2, 2, "abcde", 4, 0, 2); 1378 test("abcde", 2, 2, "abcde", 4, 1, -2); 1379 test("abcde", 2, 2, "abcde", 4, 2, -2); 1380 test("abcde", 2, 2, "abcde", 5, 0, 2); 1381 test("abcde", 2, 2, "abcde", 5, 1, 2); 1382 test("abcde", 2, 2, "abcde", 6, 0, 0); 1383 test("abcde", 2, 2, "abcdefghij", 0, 0, 2); 1384 test("abcde", 2, 2, "abcdefghij", 0, 1, 2); 1385 test("abcde", 2, 2, "abcdefghij", 0, 5, 2); 1386 test("abcde", 2, 2, "abcdefghij", 0, 9, 2); 1387 test("abcde", 2, 2, "abcdefghij", 0, 10, 2); 1388 test("abcde", 2, 2, "abcdefghij", 0, 11, 2); 1389 test("abcde", 2, 2, "abcdefghij", 1, 0, 2); 1390 test("abcde", 2, 2, "abcdefghij", 1, 1, 1); 1391 test("abcde", 2, 2, "abcdefghij", 1, 4, 1); 1392 test("abcde", 2, 2, "abcdefghij", 1, 8, 1); 1393 test("abcde", 2, 2, "abcdefghij", 1, 9, 1); 1394 test("abcde", 2, 2, "abcdefghij", 1, 10, 1); 1395 test("abcde", 2, 2, "abcdefghij", 5, 0, 2); 1396 test("abcde", 2, 2, "abcdefghij", 5, 1, -3); 1397 test("abcde", 2, 2, "abcdefghij", 5, 2, -3); 1398 test("abcde", 2, 2, "abcdefghij", 5, 4, -3); 1399} 1400 1401void test13() 1402{ 1403 test("abcde", 2, 2, "abcdefghij", 5, 5, -3); 1404 test("abcde", 2, 2, "abcdefghij", 5, 6, -3); 1405 test("abcde", 2, 2, "abcdefghij", 9, 0, 2); 1406 test("abcde", 2, 2, "abcdefghij", 9, 1, -7); 1407 test("abcde", 2, 2, "abcdefghij", 9, 2, -7); 1408 test("abcde", 2, 2, "abcdefghij", 10, 0, 2); 1409 test("abcde", 2, 2, "abcdefghij", 10, 1, 2); 1410 test("abcde", 2, 2, "abcdefghij", 11, 0, 0); 1411 test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 0, 2); 1412 test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 1, 2); 1413 test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 10, 2); 1414 test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 19, 2); 1415 test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 20, 2); 1416 test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 21, 2); 1417 test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 0, 2); 1418 test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 1, 1); 1419 test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 9, 1); 1420 test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 18, 1); 1421 test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 19, 1); 1422 test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 20, 1); 1423 test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 0, 2); 1424 test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 1, -8); 1425 test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 5, -8); 1426 test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 9, -8); 1427 test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 10, -8); 1428 test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 11, -8); 1429 test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 0, 2); 1430 test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 1, -17); 1431 test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 2, -17); 1432 test("abcde", 2, 2, "abcdefghijklmnopqrst", 20, 0, 2); 1433 test("abcde", 2, 2, "abcdefghijklmnopqrst", 20, 1, 2); 1434 test("abcde", 2, 2, "abcdefghijklmnopqrst", 21, 0, 0); 1435 test("abcde", 2, 3, "", 0, 0, 3); 1436 test("abcde", 2, 3, "", 0, 1, 3); 1437 test("abcde", 2, 3, "", 1, 0, 0); 1438 test("abcde", 2, 3, "abcde", 0, 0, 3); 1439 test("abcde", 2, 3, "abcde", 0, 1, 2); 1440 test("abcde", 2, 3, "abcde", 0, 2, 2); 1441 test("abcde", 2, 3, "abcde", 0, 4, 2); 1442 test("abcde", 2, 3, "abcde", 0, 5, 2); 1443 test("abcde", 2, 3, "abcde", 0, 6, 2); 1444 test("abcde", 2, 3, "abcde", 1, 0, 3); 1445 test("abcde", 2, 3, "abcde", 1, 1, 1); 1446 test("abcde", 2, 3, "abcde", 1, 2, 1); 1447 test("abcde", 2, 3, "abcde", 1, 3, 1); 1448 test("abcde", 2, 3, "abcde", 1, 4, 1); 1449 test("abcde", 2, 3, "abcde", 1, 5, 1); 1450 test("abcde", 2, 3, "abcde", 2, 0, 3); 1451 test("abcde", 2, 3, "abcde", 2, 1, 2); 1452 test("abcde", 2, 3, "abcde", 2, 2, 1); 1453 test("abcde", 2, 3, "abcde", 2, 3, 0); 1454 test("abcde", 2, 3, "abcde", 2, 4, 0); 1455 test("abcde", 2, 3, "abcde", 4, 0, 3); 1456 test("abcde", 2, 3, "abcde", 4, 1, -2); 1457 test("abcde", 2, 3, "abcde", 4, 2, -2); 1458 test("abcde", 2, 3, "abcde", 5, 0, 3); 1459 test("abcde", 2, 3, "abcde", 5, 1, 3); 1460 test("abcde", 2, 3, "abcde", 6, 0, 0); 1461 test("abcde", 2, 3, "abcdefghij", 0, 0, 3); 1462 test("abcde", 2, 3, "abcdefghij", 0, 1, 2); 1463 test("abcde", 2, 3, "abcdefghij", 0, 5, 2); 1464 test("abcde", 2, 3, "abcdefghij", 0, 9, 2); 1465 test("abcde", 2, 3, "abcdefghij", 0, 10, 2); 1466 test("abcde", 2, 3, "abcdefghij", 0, 11, 2); 1467 test("abcde", 2, 3, "abcdefghij", 1, 0, 3); 1468 test("abcde", 2, 3, "abcdefghij", 1, 1, 1); 1469 test("abcde", 2, 3, "abcdefghij", 1, 4, 1); 1470 test("abcde", 2, 3, "abcdefghij", 1, 8, 1); 1471 test("abcde", 2, 3, "abcdefghij", 1, 9, 1); 1472 test("abcde", 2, 3, "abcdefghij", 1, 10, 1); 1473 test("abcde", 2, 3, "abcdefghij", 5, 0, 3); 1474 test("abcde", 2, 3, "abcdefghij", 5, 1, -3); 1475 test("abcde", 2, 3, "abcdefghij", 5, 2, -3); 1476 test("abcde", 2, 3, "abcdefghij", 5, 4, -3); 1477 test("abcde", 2, 3, "abcdefghij", 5, 5, -3); 1478 test("abcde", 2, 3, "abcdefghij", 5, 6, -3); 1479 test("abcde", 2, 3, "abcdefghij", 9, 0, 3); 1480 test("abcde", 2, 3, "abcdefghij", 9, 1, -7); 1481 test("abcde", 2, 3, "abcdefghij", 9, 2, -7); 1482 test("abcde", 2, 3, "abcdefghij", 10, 0, 3); 1483 test("abcde", 2, 3, "abcdefghij", 10, 1, 3); 1484 test("abcde", 2, 3, "abcdefghij", 11, 0, 0); 1485 test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 0, 3); 1486 test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 1, 2); 1487 test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 10, 2); 1488 test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 19, 2); 1489 test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 20, 2); 1490 test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 21, 2); 1491 test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 0, 3); 1492 test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 1, 1); 1493 test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 9, 1); 1494 test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 18, 1); 1495 test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 19, 1); 1496 test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 20, 1); 1497 test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 0, 3); 1498 test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 1, -8); 1499 test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 5, -8); 1500 test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 9, -8); 1501 test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 10, -8); 1502 test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 11, -8); 1503} 1504 1505void test14() 1506{ 1507 test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 0, 3); 1508 test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 1, -17); 1509 test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 2, -17); 1510 test("abcde", 2, 3, "abcdefghijklmnopqrst", 20, 0, 3); 1511 test("abcde", 2, 3, "abcdefghijklmnopqrst", 20, 1, 3); 1512 test("abcde", 2, 3, "abcdefghijklmnopqrst", 21, 0, 0); 1513 test("abcde", 2, 4, "", 0, 0, 3); 1514 test("abcde", 2, 4, "", 0, 1, 3); 1515 test("abcde", 2, 4, "", 1, 0, 0); 1516 test("abcde", 2, 4, "abcde", 0, 0, 3); 1517 test("abcde", 2, 4, "abcde", 0, 1, 2); 1518 test("abcde", 2, 4, "abcde", 0, 2, 2); 1519 test("abcde", 2, 4, "abcde", 0, 4, 2); 1520 test("abcde", 2, 4, "abcde", 0, 5, 2); 1521 test("abcde", 2, 4, "abcde", 0, 6, 2); 1522 test("abcde", 2, 4, "abcde", 1, 0, 3); 1523 test("abcde", 2, 4, "abcde", 1, 1, 1); 1524 test("abcde", 2, 4, "abcde", 1, 2, 1); 1525 test("abcde", 2, 4, "abcde", 1, 3, 1); 1526 test("abcde", 2, 4, "abcde", 1, 4, 1); 1527 test("abcde", 2, 4, "abcde", 1, 5, 1); 1528 test("abcde", 2, 4, "abcde", 2, 0, 3); 1529 test("abcde", 2, 4, "abcde", 2, 1, 2); 1530 test("abcde", 2, 4, "abcde", 2, 2, 1); 1531 test("abcde", 2, 4, "abcde", 2, 3, 0); 1532 test("abcde", 2, 4, "abcde", 2, 4, 0); 1533 test("abcde", 2, 4, "abcde", 4, 0, 3); 1534 test("abcde", 2, 4, "abcde", 4, 1, -2); 1535 test("abcde", 2, 4, "abcde", 4, 2, -2); 1536 test("abcde", 2, 4, "abcde", 5, 0, 3); 1537 test("abcde", 2, 4, "abcde", 5, 1, 3); 1538 test("abcde", 2, 4, "abcde", 6, 0, 0); 1539 test("abcde", 2, 4, "abcdefghij", 0, 0, 3); 1540 test("abcde", 2, 4, "abcdefghij", 0, 1, 2); 1541 test("abcde", 2, 4, "abcdefghij", 0, 5, 2); 1542 test("abcde", 2, 4, "abcdefghij", 0, 9, 2); 1543 test("abcde", 2, 4, "abcdefghij", 0, 10, 2); 1544 test("abcde", 2, 4, "abcdefghij", 0, 11, 2); 1545 test("abcde", 2, 4, "abcdefghij", 1, 0, 3); 1546 test("abcde", 2, 4, "abcdefghij", 1, 1, 1); 1547 test("abcde", 2, 4, "abcdefghij", 1, 4, 1); 1548 test("abcde", 2, 4, "abcdefghij", 1, 8, 1); 1549 test("abcde", 2, 4, "abcdefghij", 1, 9, 1); 1550 test("abcde", 2, 4, "abcdefghij", 1, 10, 1); 1551 test("abcde", 2, 4, "abcdefghij", 5, 0, 3); 1552 test("abcde", 2, 4, "abcdefghij", 5, 1, -3); 1553 test("abcde", 2, 4, "abcdefghij", 5, 2, -3); 1554 test("abcde", 2, 4, "abcdefghij", 5, 4, -3); 1555 test("abcde", 2, 4, "abcdefghij", 5, 5, -3); 1556 test("abcde", 2, 4, "abcdefghij", 5, 6, -3); 1557 test("abcde", 2, 4, "abcdefghij", 9, 0, 3); 1558 test("abcde", 2, 4, "abcdefghij", 9, 1, -7); 1559 test("abcde", 2, 4, "abcdefghij", 9, 2, -7); 1560 test("abcde", 2, 4, "abcdefghij", 10, 0, 3); 1561 test("abcde", 2, 4, "abcdefghij", 10, 1, 3); 1562 test("abcde", 2, 4, "abcdefghij", 11, 0, 0); 1563 test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 0, 3); 1564 test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 1, 2); 1565 test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 10, 2); 1566 test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 19, 2); 1567 test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 20, 2); 1568 test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 21, 2); 1569 test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 0, 3); 1570 test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 1, 1); 1571 test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 9, 1); 1572 test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 18, 1); 1573 test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 19, 1); 1574 test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 20, 1); 1575 test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 0, 3); 1576 test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 1, -8); 1577 test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 5, -8); 1578 test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 9, -8); 1579 test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 10, -8); 1580 test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 11, -8); 1581 test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 0, 3); 1582 test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 1, -17); 1583 test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 2, -17); 1584 test("abcde", 2, 4, "abcdefghijklmnopqrst", 20, 0, 3); 1585 test("abcde", 2, 4, "abcdefghijklmnopqrst", 20, 1, 3); 1586 test("abcde", 2, 4, "abcdefghijklmnopqrst", 21, 0, 0); 1587 test("abcde", 4, 0, "", 0, 0, 0); 1588 test("abcde", 4, 0, "", 0, 1, 0); 1589 test("abcde", 4, 0, "", 1, 0, 0); 1590 test("abcde", 4, 0, "abcde", 0, 0, 0); 1591 test("abcde", 4, 0, "abcde", 0, 1, -1); 1592 test("abcde", 4, 0, "abcde", 0, 2, -2); 1593 test("abcde", 4, 0, "abcde", 0, 4, -4); 1594 test("abcde", 4, 0, "abcde", 0, 5, -5); 1595 test("abcde", 4, 0, "abcde", 0, 6, -5); 1596 test("abcde", 4, 0, "abcde", 1, 0, 0); 1597 test("abcde", 4, 0, "abcde", 1, 1, -1); 1598 test("abcde", 4, 0, "abcde", 1, 2, -2); 1599 test("abcde", 4, 0, "abcde", 1, 3, -3); 1600 test("abcde", 4, 0, "abcde", 1, 4, -4); 1601 test("abcde", 4, 0, "abcde", 1, 5, -4); 1602 test("abcde", 4, 0, "abcde", 2, 0, 0); 1603 test("abcde", 4, 0, "abcde", 2, 1, -1); 1604 test("abcde", 4, 0, "abcde", 2, 2, -2); 1605 test("abcde", 4, 0, "abcde", 2, 3, -3); 1606 test("abcde", 4, 0, "abcde", 2, 4, -3); 1607} 1608 1609void test15() 1610{ 1611 test("abcde", 4, 0, "abcde", 4, 0, 0); 1612 test("abcde", 4, 0, "abcde", 4, 1, -1); 1613 test("abcde", 4, 0, "abcde", 4, 2, -1); 1614 test("abcde", 4, 0, "abcde", 5, 0, 0); 1615 test("abcde", 4, 0, "abcde", 5, 1, 0); 1616 test("abcde", 4, 0, "abcde", 6, 0, 0); 1617 test("abcde", 4, 0, "abcdefghij", 0, 0, 0); 1618 test("abcde", 4, 0, "abcdefghij", 0, 1, -1); 1619 test("abcde", 4, 0, "abcdefghij", 0, 5, -5); 1620 test("abcde", 4, 0, "abcdefghij", 0, 9, -9); 1621 test("abcde", 4, 0, "abcdefghij", 0, 10, -10); 1622 test("abcde", 4, 0, "abcdefghij", 0, 11, -10); 1623 test("abcde", 4, 0, "abcdefghij", 1, 0, 0); 1624 test("abcde", 4, 0, "abcdefghij", 1, 1, -1); 1625 test("abcde", 4, 0, "abcdefghij", 1, 4, -4); 1626 test("abcde", 4, 0, "abcdefghij", 1, 8, -8); 1627 test("abcde", 4, 0, "abcdefghij", 1, 9, -9); 1628 test("abcde", 4, 0, "abcdefghij", 1, 10, -9); 1629 test("abcde", 4, 0, "abcdefghij", 5, 0, 0); 1630 test("abcde", 4, 0, "abcdefghij", 5, 1, -1); 1631 test("abcde", 4, 0, "abcdefghij", 5, 2, -2); 1632 test("abcde", 4, 0, "abcdefghij", 5, 4, -4); 1633 test("abcde", 4, 0, "abcdefghij", 5, 5, -5); 1634 test("abcde", 4, 0, "abcdefghij", 5, 6, -5); 1635 test("abcde", 4, 0, "abcdefghij", 9, 0, 0); 1636 test("abcde", 4, 0, "abcdefghij", 9, 1, -1); 1637 test("abcde", 4, 0, "abcdefghij", 9, 2, -1); 1638 test("abcde", 4, 0, "abcdefghij", 10, 0, 0); 1639 test("abcde", 4, 0, "abcdefghij", 10, 1, 0); 1640 test("abcde", 4, 0, "abcdefghij", 11, 0, 0); 1641 test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 0, 0); 1642 test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 1, -1); 1643 test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 10, -10); 1644 test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 19, -19); 1645 test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 20, -20); 1646 test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 21, -20); 1647 test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 0, 0); 1648 test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 1, -1); 1649 test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 9, -9); 1650 test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 18, -18); 1651 test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 19, -19); 1652 test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 20, -19); 1653 test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 0, 0); 1654 test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 1, -1); 1655 test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 5, -5); 1656 test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 9, -9); 1657 test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 10, -10); 1658 test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 11, -10); 1659 test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, 0, 0); 1660 test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, 1, -1); 1661 test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, 2, -1); 1662 test("abcde", 4, 0, "abcdefghijklmnopqrst", 20, 0, 0); 1663 test("abcde", 4, 0, "abcdefghijklmnopqrst", 20, 1, 0); 1664 test("abcde", 4, 0, "abcdefghijklmnopqrst", 21, 0, 0); 1665 test("abcde", 4, 1, "", 0, 0, 1); 1666 test("abcde", 4, 1, "", 0, 1, 1); 1667 test("abcde", 4, 1, "", 1, 0, 0); 1668 test("abcde", 4, 1, "abcde", 0, 0, 1); 1669 test("abcde", 4, 1, "abcde", 0, 1, 4); 1670 test("abcde", 4, 1, "abcde", 0, 2, 4); 1671 test("abcde", 4, 1, "abcde", 0, 4, 4); 1672 test("abcde", 4, 1, "abcde", 0, 5, 4); 1673 test("abcde", 4, 1, "abcde", 0, 6, 4); 1674 test("abcde", 4, 1, "abcde", 1, 0, 1); 1675 test("abcde", 4, 1, "abcde", 1, 1, 3); 1676 test("abcde", 4, 1, "abcde", 1, 2, 3); 1677 test("abcde", 4, 1, "abcde", 1, 3, 3); 1678 test("abcde", 4, 1, "abcde", 1, 4, 3); 1679 test("abcde", 4, 1, "abcde", 1, 5, 3); 1680 test("abcde", 4, 1, "abcde", 2, 0, 1); 1681 test("abcde", 4, 1, "abcde", 2, 1, 2); 1682 test("abcde", 4, 1, "abcde", 2, 2, 2); 1683 test("abcde", 4, 1, "abcde", 2, 3, 2); 1684 test("abcde", 4, 1, "abcde", 2, 4, 2); 1685 test("abcde", 4, 1, "abcde", 4, 0, 1); 1686 test("abcde", 4, 1, "abcde", 4, 1, 0); 1687 test("abcde", 4, 1, "abcde", 4, 2, 0); 1688 test("abcde", 4, 1, "abcde", 5, 0, 1); 1689 test("abcde", 4, 1, "abcde", 5, 1, 1); 1690 test("abcde", 4, 1, "abcde", 6, 0, 0); 1691 test("abcde", 4, 1, "abcdefghij", 0, 0, 1); 1692 test("abcde", 4, 1, "abcdefghij", 0, 1, 4); 1693 test("abcde", 4, 1, "abcdefghij", 0, 5, 4); 1694 test("abcde", 4, 1, "abcdefghij", 0, 9, 4); 1695 test("abcde", 4, 1, "abcdefghij", 0, 10, 4); 1696 test("abcde", 4, 1, "abcdefghij", 0, 11, 4); 1697 test("abcde", 4, 1, "abcdefghij", 1, 0, 1); 1698 test("abcde", 4, 1, "abcdefghij", 1, 1, 3); 1699 test("abcde", 4, 1, "abcdefghij", 1, 4, 3); 1700 test("abcde", 4, 1, "abcdefghij", 1, 8, 3); 1701 test("abcde", 4, 1, "abcdefghij", 1, 9, 3); 1702 test("abcde", 4, 1, "abcdefghij", 1, 10, 3); 1703 test("abcde", 4, 1, "abcdefghij", 5, 0, 1); 1704 test("abcde", 4, 1, "abcdefghij", 5, 1, -1); 1705 test("abcde", 4, 1, "abcdefghij", 5, 2, -1); 1706 test("abcde", 4, 1, "abcdefghij", 5, 4, -1); 1707 test("abcde", 4, 1, "abcdefghij", 5, 5, -1); 1708 test("abcde", 4, 1, "abcdefghij", 5, 6, -1); 1709 test("abcde", 4, 1, "abcdefghij", 9, 0, 1); 1710 test("abcde", 4, 1, "abcdefghij", 9, 1, -5); 1711} 1712 1713void test16() 1714{ 1715 test("abcde", 4, 1, "abcdefghij", 9, 2, -5); 1716 test("abcde", 4, 1, "abcdefghij", 10, 0, 1); 1717 test("abcde", 4, 1, "abcdefghij", 10, 1, 1); 1718 test("abcde", 4, 1, "abcdefghij", 11, 0, 0); 1719 test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 0, 1); 1720 test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 1, 4); 1721 test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 10, 4); 1722 test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 19, 4); 1723 test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 20, 4); 1724 test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 21, 4); 1725 test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 0, 1); 1726 test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 1, 3); 1727 test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 9, 3); 1728 test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 18, 3); 1729 test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 19, 3); 1730 test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 20, 3); 1731 test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 0, 1); 1732 test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 1, -6); 1733 test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 5, -6); 1734 test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 9, -6); 1735 test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 10, -6); 1736 test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 11, -6); 1737 test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 0, 1); 1738 test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 1, -15); 1739 test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 2, -15); 1740 test("abcde", 4, 1, "abcdefghijklmnopqrst", 20, 0, 1); 1741 test("abcde", 4, 1, "abcdefghijklmnopqrst", 20, 1, 1); 1742 test("abcde", 4, 1, "abcdefghijklmnopqrst", 21, 0, 0); 1743 test("abcde", 4, 2, "", 0, 0, 1); 1744 test("abcde", 4, 2, "", 0, 1, 1); 1745 test("abcde", 4, 2, "", 1, 0, 0); 1746 test("abcde", 4, 2, "abcde", 0, 0, 1); 1747 test("abcde", 4, 2, "abcde", 0, 1, 4); 1748 test("abcde", 4, 2, "abcde", 0, 2, 4); 1749 test("abcde", 4, 2, "abcde", 0, 4, 4); 1750 test("abcde", 4, 2, "abcde", 0, 5, 4); 1751 test("abcde", 4, 2, "abcde", 0, 6, 4); 1752 test("abcde", 4, 2, "abcde", 1, 0, 1); 1753 test("abcde", 4, 2, "abcde", 1, 1, 3); 1754 test("abcde", 4, 2, "abcde", 1, 2, 3); 1755 test("abcde", 4, 2, "abcde", 1, 3, 3); 1756 test("abcde", 4, 2, "abcde", 1, 4, 3); 1757 test("abcde", 4, 2, "abcde", 1, 5, 3); 1758 test("abcde", 4, 2, "abcde", 2, 0, 1); 1759 test("abcde", 4, 2, "abcde", 2, 1, 2); 1760 test("abcde", 4, 2, "abcde", 2, 2, 2); 1761 test("abcde", 4, 2, "abcde", 2, 3, 2); 1762 test("abcde", 4, 2, "abcde", 2, 4, 2); 1763 test("abcde", 4, 2, "abcde", 4, 0, 1); 1764 test("abcde", 4, 2, "abcde", 4, 1, 0); 1765 test("abcde", 4, 2, "abcde", 4, 2, 0); 1766 test("abcde", 4, 2, "abcde", 5, 0, 1); 1767 test("abcde", 4, 2, "abcde", 5, 1, 1); 1768 test("abcde", 4, 2, "abcde", 6, 0, 0); 1769 test("abcde", 4, 2, "abcdefghij", 0, 0, 1); 1770 test("abcde", 4, 2, "abcdefghij", 0, 1, 4); 1771 test("abcde", 4, 2, "abcdefghij", 0, 5, 4); 1772 test("abcde", 4, 2, "abcdefghij", 0, 9, 4); 1773 test("abcde", 4, 2, "abcdefghij", 0, 10, 4); 1774 test("abcde", 4, 2, "abcdefghij", 0, 11, 4); 1775 test("abcde", 4, 2, "abcdefghij", 1, 0, 1); 1776 test("abcde", 4, 2, "abcdefghij", 1, 1, 3); 1777 test("abcde", 4, 2, "abcdefghij", 1, 4, 3); 1778 test("abcde", 4, 2, "abcdefghij", 1, 8, 3); 1779 test("abcde", 4, 2, "abcdefghij", 1, 9, 3); 1780 test("abcde", 4, 2, "abcdefghij", 1, 10, 3); 1781 test("abcde", 4, 2, "abcdefghij", 5, 0, 1); 1782 test("abcde", 4, 2, "abcdefghij", 5, 1, -1); 1783 test("abcde", 4, 2, "abcdefghij", 5, 2, -1); 1784 test("abcde", 4, 2, "abcdefghij", 5, 4, -1); 1785 test("abcde", 4, 2, "abcdefghij", 5, 5, -1); 1786 test("abcde", 4, 2, "abcdefghij", 5, 6, -1); 1787 test("abcde", 4, 2, "abcdefghij", 9, 0, 1); 1788 test("abcde", 4, 2, "abcdefghij", 9, 1, -5); 1789 test("abcde", 4, 2, "abcdefghij", 9, 2, -5); 1790 test("abcde", 4, 2, "abcdefghij", 10, 0, 1); 1791 test("abcde", 4, 2, "abcdefghij", 10, 1, 1); 1792 test("abcde", 4, 2, "abcdefghij", 11, 0, 0); 1793 test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 0, 1); 1794 test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 1, 4); 1795 test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 10, 4); 1796 test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 19, 4); 1797 test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 20, 4); 1798 test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 21, 4); 1799 test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 0, 1); 1800 test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 1, 3); 1801 test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 9, 3); 1802 test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 18, 3); 1803 test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 19, 3); 1804 test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 20, 3); 1805 test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 0, 1); 1806 test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 1, -6); 1807 test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 5, -6); 1808 test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 9, -6); 1809 test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 10, -6); 1810 test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 11, -6); 1811 test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 0, 1); 1812 test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 1, -15); 1813 test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 2, -15); 1814 test("abcde", 4, 2, "abcdefghijklmnopqrst", 20, 0, 1); 1815} 1816 1817void test17() 1818{ 1819 test("abcde", 4, 2, "abcdefghijklmnopqrst", 20, 1, 1); 1820 test("abcde", 4, 2, "abcdefghijklmnopqrst", 21, 0, 0); 1821 test("abcde", 5, 0, "", 0, 0, 0); 1822 test("abcde", 5, 0, "", 0, 1, 0); 1823 test("abcde", 5, 0, "", 1, 0, 0); 1824 test("abcde", 5, 0, "abcde", 0, 0, 0); 1825 test("abcde", 5, 0, "abcde", 0, 1, -1); 1826 test("abcde", 5, 0, "abcde", 0, 2, -2); 1827 test("abcde", 5, 0, "abcde", 0, 4, -4); 1828 test("abcde", 5, 0, "abcde", 0, 5, -5); 1829 test("abcde", 5, 0, "abcde", 0, 6, -5); 1830 test("abcde", 5, 0, "abcde", 1, 0, 0); 1831 test("abcde", 5, 0, "abcde", 1, 1, -1); 1832 test("abcde", 5, 0, "abcde", 1, 2, -2); 1833 test("abcde", 5, 0, "abcde", 1, 3, -3); 1834 test("abcde", 5, 0, "abcde", 1, 4, -4); 1835 test("abcde", 5, 0, "abcde", 1, 5, -4); 1836 test("abcde", 5, 0, "abcde", 2, 0, 0); 1837 test("abcde", 5, 0, "abcde", 2, 1, -1); 1838 test("abcde", 5, 0, "abcde", 2, 2, -2); 1839 test("abcde", 5, 0, "abcde", 2, 3, -3); 1840 test("abcde", 5, 0, "abcde", 2, 4, -3); 1841 test("abcde", 5, 0, "abcde", 4, 0, 0); 1842 test("abcde", 5, 0, "abcde", 4, 1, -1); 1843 test("abcde", 5, 0, "abcde", 4, 2, -1); 1844 test("abcde", 5, 0, "abcde", 5, 0, 0); 1845 test("abcde", 5, 0, "abcde", 5, 1, 0); 1846 test("abcde", 5, 0, "abcde", 6, 0, 0); 1847 test("abcde", 5, 0, "abcdefghij", 0, 0, 0); 1848 test("abcde", 5, 0, "abcdefghij", 0, 1, -1); 1849 test("abcde", 5, 0, "abcdefghij", 0, 5, -5); 1850 test("abcde", 5, 0, "abcdefghij", 0, 9, -9); 1851 test("abcde", 5, 0, "abcdefghij", 0, 10, -10); 1852 test("abcde", 5, 0, "abcdefghij", 0, 11, -10); 1853 test("abcde", 5, 0, "abcdefghij", 1, 0, 0); 1854 test("abcde", 5, 0, "abcdefghij", 1, 1, -1); 1855 test("abcde", 5, 0, "abcdefghij", 1, 4, -4); 1856 test("abcde", 5, 0, "abcdefghij", 1, 8, -8); 1857 test("abcde", 5, 0, "abcdefghij", 1, 9, -9); 1858 test("abcde", 5, 0, "abcdefghij", 1, 10, -9); 1859 test("abcde", 5, 0, "abcdefghij", 5, 0, 0); 1860 test("abcde", 5, 0, "abcdefghij", 5, 1, -1); 1861 test("abcde", 5, 0, "abcdefghij", 5, 2, -2); 1862 test("abcde", 5, 0, "abcdefghij", 5, 4, -4); 1863 test("abcde", 5, 0, "abcdefghij", 5, 5, -5); 1864 test("abcde", 5, 0, "abcdefghij", 5, 6, -5); 1865 test("abcde", 5, 0, "abcdefghij", 9, 0, 0); 1866 test("abcde", 5, 0, "abcdefghij", 9, 1, -1); 1867 test("abcde", 5, 0, "abcdefghij", 9, 2, -1); 1868 test("abcde", 5, 0, "abcdefghij", 10, 0, 0); 1869 test("abcde", 5, 0, "abcdefghij", 10, 1, 0); 1870 test("abcde", 5, 0, "abcdefghij", 11, 0, 0); 1871 test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 0, 0); 1872 test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 1, -1); 1873 test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 10, -10); 1874 test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 19, -19); 1875 test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 20, -20); 1876 test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 21, -20); 1877 test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 0, 0); 1878 test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 1, -1); 1879 test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 9, -9); 1880 test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 18, -18); 1881 test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 19, -19); 1882 test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 20, -19); 1883 test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 0, 0); 1884 test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 1, -1); 1885 test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 5, -5); 1886 test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 9, -9); 1887 test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 10, -10); 1888 test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 11, -10); 1889 test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, 0, 0); 1890 test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, 1, -1); 1891 test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, 2, -1); 1892 test("abcde", 5, 0, "abcdefghijklmnopqrst", 20, 0, 0); 1893 test("abcde", 5, 0, "abcdefghijklmnopqrst", 20, 1, 0); 1894 test("abcde", 5, 0, "abcdefghijklmnopqrst", 21, 0, 0); 1895 test("abcde", 5, 1, "", 0, 0, 0); 1896 test("abcde", 5, 1, "", 0, 1, 0); 1897 test("abcde", 5, 1, "", 1, 0, 0); 1898 test("abcde", 5, 1, "abcde", 0, 0, 0); 1899 test("abcde", 5, 1, "abcde", 0, 1, -1); 1900 test("abcde", 5, 1, "abcde", 0, 2, -2); 1901 test("abcde", 5, 1, "abcde", 0, 4, -4); 1902 test("abcde", 5, 1, "abcde", 0, 5, -5); 1903 test("abcde", 5, 1, "abcde", 0, 6, -5); 1904 test("abcde", 5, 1, "abcde", 1, 0, 0); 1905 test("abcde", 5, 1, "abcde", 1, 1, -1); 1906 test("abcde", 5, 1, "abcde", 1, 2, -2); 1907 test("abcde", 5, 1, "abcde", 1, 3, -3); 1908 test("abcde", 5, 1, "abcde", 1, 4, -4); 1909 test("abcde", 5, 1, "abcde", 1, 5, -4); 1910 test("abcde", 5, 1, "abcde", 2, 0, 0); 1911 test("abcde", 5, 1, "abcde", 2, 1, -1); 1912 test("abcde", 5, 1, "abcde", 2, 2, -2); 1913 test("abcde", 5, 1, "abcde", 2, 3, -3); 1914 test("abcde", 5, 1, "abcde", 2, 4, -3); 1915 test("abcde", 5, 1, "abcde", 4, 0, 0); 1916 test("abcde", 5, 1, "abcde", 4, 1, -1); 1917 test("abcde", 5, 1, "abcde", 4, 2, -1); 1918 test("abcde", 5, 1, "abcde", 5, 0, 0); 1919} 1920 1921void test18() 1922{ 1923 test("abcde", 5, 1, "abcde", 5, 1, 0); 1924 test("abcde", 5, 1, "abcde", 6, 0, 0); 1925 test("abcde", 5, 1, "abcdefghij", 0, 0, 0); 1926 test("abcde", 5, 1, "abcdefghij", 0, 1, -1); 1927 test("abcde", 5, 1, "abcdefghij", 0, 5, -5); 1928 test("abcde", 5, 1, "abcdefghij", 0, 9, -9); 1929 test("abcde", 5, 1, "abcdefghij", 0, 10, -10); 1930 test("abcde", 5, 1, "abcdefghij", 0, 11, -10); 1931 test("abcde", 5, 1, "abcdefghij", 1, 0, 0); 1932 test("abcde", 5, 1, "abcdefghij", 1, 1, -1); 1933 test("abcde", 5, 1, "abcdefghij", 1, 4, -4); 1934 test("abcde", 5, 1, "abcdefghij", 1, 8, -8); 1935 test("abcde", 5, 1, "abcdefghij", 1, 9, -9); 1936 test("abcde", 5, 1, "abcdefghij", 1, 10, -9); 1937 test("abcde", 5, 1, "abcdefghij", 5, 0, 0); 1938 test("abcde", 5, 1, "abcdefghij", 5, 1, -1); 1939 test("abcde", 5, 1, "abcdefghij", 5, 2, -2); 1940 test("abcde", 5, 1, "abcdefghij", 5, 4, -4); 1941 test("abcde", 5, 1, "abcdefghij", 5, 5, -5); 1942 test("abcde", 5, 1, "abcdefghij", 5, 6, -5); 1943 test("abcde", 5, 1, "abcdefghij", 9, 0, 0); 1944 test("abcde", 5, 1, "abcdefghij", 9, 1, -1); 1945 test("abcde", 5, 1, "abcdefghij", 9, 2, -1); 1946 test("abcde", 5, 1, "abcdefghij", 10, 0, 0); 1947 test("abcde", 5, 1, "abcdefghij", 10, 1, 0); 1948 test("abcde", 5, 1, "abcdefghij", 11, 0, 0); 1949 test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 0, 0); 1950 test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 1, -1); 1951 test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 10, -10); 1952 test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 19, -19); 1953 test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 20, -20); 1954 test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 21, -20); 1955 test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 0, 0); 1956 test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 1, -1); 1957 test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 9, -9); 1958 test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 18, -18); 1959 test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 19, -19); 1960 test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 20, -19); 1961 test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 0, 0); 1962 test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 1, -1); 1963 test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 5, -5); 1964 test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 9, -9); 1965 test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 10, -10); 1966 test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 11, -10); 1967 test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, 0, 0); 1968 test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, 1, -1); 1969 test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, 2, -1); 1970 test("abcde", 5, 1, "abcdefghijklmnopqrst", 20, 0, 0); 1971 test("abcde", 5, 1, "abcdefghijklmnopqrst", 20, 1, 0); 1972 test("abcde", 5, 1, "abcdefghijklmnopqrst", 21, 0, 0); 1973 test("abcde", 6, 0, "", 0, 0, 0); 1974 test("abcde", 6, 0, "", 0, 1, 0); 1975 test("abcde", 6, 0, "", 1, 0, 0); 1976 test("abcde", 6, 0, "abcde", 0, 0, 0); 1977 test("abcde", 6, 0, "abcde", 0, 1, 0); 1978 test("abcde", 6, 0, "abcde", 0, 2, 0); 1979 test("abcde", 6, 0, "abcde", 0, 4, 0); 1980 test("abcde", 6, 0, "abcde", 0, 5, 0); 1981 test("abcde", 6, 0, "abcde", 0, 6, 0); 1982 test("abcde", 6, 0, "abcde", 1, 0, 0); 1983 test("abcde", 6, 0, "abcde", 1, 1, 0); 1984 test("abcde", 6, 0, "abcde", 1, 2, 0); 1985 test("abcde", 6, 0, "abcde", 1, 3, 0); 1986 test("abcde", 6, 0, "abcde", 1, 4, 0); 1987 test("abcde", 6, 0, "abcde", 1, 5, 0); 1988 test("abcde", 6, 0, "abcde", 2, 0, 0); 1989 test("abcde", 6, 0, "abcde", 2, 1, 0); 1990 test("abcde", 6, 0, "abcde", 2, 2, 0); 1991 test("abcde", 6, 0, "abcde", 2, 3, 0); 1992 test("abcde", 6, 0, "abcde", 2, 4, 0); 1993 test("abcde", 6, 0, "abcde", 4, 0, 0); 1994 test("abcde", 6, 0, "abcde", 4, 1, 0); 1995 test("abcde", 6, 0, "abcde", 4, 2, 0); 1996 test("abcde", 6, 0, "abcde", 5, 0, 0); 1997 test("abcde", 6, 0, "abcde", 5, 1, 0); 1998 test("abcde", 6, 0, "abcde", 6, 0, 0); 1999 test("abcde", 6, 0, "abcdefghij", 0, 0, 0); 2000 test("abcde", 6, 0, "abcdefghij", 0, 1, 0); 2001 test("abcde", 6, 0, "abcdefghij", 0, 5, 0); 2002 test("abcde", 6, 0, "abcdefghij", 0, 9, 0); 2003 test("abcde", 6, 0, "abcdefghij", 0, 10, 0); 2004 test("abcde", 6, 0, "abcdefghij", 0, 11, 0); 2005 test("abcde", 6, 0, "abcdefghij", 1, 0, 0); 2006 test("abcde", 6, 0, "abcdefghij", 1, 1, 0); 2007 test("abcde", 6, 0, "abcdefghij", 1, 4, 0); 2008 test("abcde", 6, 0, "abcdefghij", 1, 8, 0); 2009 test("abcde", 6, 0, "abcdefghij", 1, 9, 0); 2010 test("abcde", 6, 0, "abcdefghij", 1, 10, 0); 2011 test("abcde", 6, 0, "abcdefghij", 5, 0, 0); 2012 test("abcde", 6, 0, "abcdefghij", 5, 1, 0); 2013 test("abcde", 6, 0, "abcdefghij", 5, 2, 0); 2014 test("abcde", 6, 0, "abcdefghij", 5, 4, 0); 2015 test("abcde", 6, 0, "abcdefghij", 5, 5, 0); 2016 test("abcde", 6, 0, "abcdefghij", 5, 6, 0); 2017 test("abcde", 6, 0, "abcdefghij", 9, 0, 0); 2018 test("abcde", 6, 0, "abcdefghij", 9, 1, 0); 2019 test("abcde", 6, 0, "abcdefghij", 9, 2, 0); 2020 test("abcde", 6, 0, "abcdefghij", 10, 0, 0); 2021 test("abcde", 6, 0, "abcdefghij", 10, 1, 0); 2022 test("abcde", 6, 0, "abcdefghij", 11, 0, 0); 2023} 2024 2025void test19() 2026{ 2027 test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 0, 0); 2028 test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 1, 0); 2029 test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 10, 0); 2030 test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 19, 0); 2031 test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 20, 0); 2032 test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 21, 0); 2033 test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 0, 0); 2034 test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 1, 0); 2035 test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 9, 0); 2036 test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 18, 0); 2037 test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 19, 0); 2038 test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 20, 0); 2039 test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 0, 0); 2040 test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 1, 0); 2041 test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 5, 0); 2042 test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 9, 0); 2043 test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 10, 0); 2044 test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 11, 0); 2045 test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 0, 0); 2046 test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 1, 0); 2047 test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 2, 0); 2048 test("abcde", 6, 0, "abcdefghijklmnopqrst", 20, 0, 0); 2049 test("abcde", 6, 0, "abcdefghijklmnopqrst", 20, 1, 0); 2050 test("abcde", 6, 0, "abcdefghijklmnopqrst", 21, 0, 0); 2051 test("abcdefghij", 0, 0, "", 0, 0, 0); 2052 test("abcdefghij", 0, 0, "", 0, 1, 0); 2053 test("abcdefghij", 0, 0, "", 1, 0, 0); 2054 test("abcdefghij", 0, 0, "abcde", 0, 0, 0); 2055 test("abcdefghij", 0, 0, "abcde", 0, 1, -1); 2056 test("abcdefghij", 0, 0, "abcde", 0, 2, -2); 2057 test("abcdefghij", 0, 0, "abcde", 0, 4, -4); 2058 test("abcdefghij", 0, 0, "abcde", 0, 5, -5); 2059 test("abcdefghij", 0, 0, "abcde", 0, 6, -5); 2060 test("abcdefghij", 0, 0, "abcde", 1, 0, 0); 2061 test("abcdefghij", 0, 0, "abcde", 1, 1, -1); 2062 test("abcdefghij", 0, 0, "abcde", 1, 2, -2); 2063 test("abcdefghij", 0, 0, "abcde", 1, 3, -3); 2064 test("abcdefghij", 0, 0, "abcde", 1, 4, -4); 2065 test("abcdefghij", 0, 0, "abcde", 1, 5, -4); 2066 test("abcdefghij", 0, 0, "abcde", 2, 0, 0); 2067 test("abcdefghij", 0, 0, "abcde", 2, 1, -1); 2068 test("abcdefghij", 0, 0, "abcde", 2, 2, -2); 2069 test("abcdefghij", 0, 0, "abcde", 2, 3, -3); 2070 test("abcdefghij", 0, 0, "abcde", 2, 4, -3); 2071 test("abcdefghij", 0, 0, "abcde", 4, 0, 0); 2072 test("abcdefghij", 0, 0, "abcde", 4, 1, -1); 2073 test("abcdefghij", 0, 0, "abcde", 4, 2, -1); 2074 test("abcdefghij", 0, 0, "abcde", 5, 0, 0); 2075 test("abcdefghij", 0, 0, "abcde", 5, 1, 0); 2076 test("abcdefghij", 0, 0, "abcde", 6, 0, 0); 2077 test("abcdefghij", 0, 0, "abcdefghij", 0, 0, 0); 2078 test("abcdefghij", 0, 0, "abcdefghij", 0, 1, -1); 2079 test("abcdefghij", 0, 0, "abcdefghij", 0, 5, -5); 2080 test("abcdefghij", 0, 0, "abcdefghij", 0, 9, -9); 2081 test("abcdefghij", 0, 0, "abcdefghij", 0, 10, -10); 2082 test("abcdefghij", 0, 0, "abcdefghij", 0, 11, -10); 2083 test("abcdefghij", 0, 0, "abcdefghij", 1, 0, 0); 2084 test("abcdefghij", 0, 0, "abcdefghij", 1, 1, -1); 2085 test("abcdefghij", 0, 0, "abcdefghij", 1, 4, -4); 2086 test("abcdefghij", 0, 0, "abcdefghij", 1, 8, -8); 2087 test("abcdefghij", 0, 0, "abcdefghij", 1, 9, -9); 2088 test("abcdefghij", 0, 0, "abcdefghij", 1, 10, -9); 2089 test("abcdefghij", 0, 0, "abcdefghij", 5, 0, 0); 2090 test("abcdefghij", 0, 0, "abcdefghij", 5, 1, -1); 2091 test("abcdefghij", 0, 0, "abcdefghij", 5, 2, -2); 2092 test("abcdefghij", 0, 0, "abcdefghij", 5, 4, -4); 2093 test("abcdefghij", 0, 0, "abcdefghij", 5, 5, -5); 2094 test("abcdefghij", 0, 0, "abcdefghij", 5, 6, -5); 2095 test("abcdefghij", 0, 0, "abcdefghij", 9, 0, 0); 2096 test("abcdefghij", 0, 0, "abcdefghij", 9, 1, -1); 2097 test("abcdefghij", 0, 0, "abcdefghij", 9, 2, -1); 2098 test("abcdefghij", 0, 0, "abcdefghij", 10, 0, 0); 2099 test("abcdefghij", 0, 0, "abcdefghij", 10, 1, 0); 2100 test("abcdefghij", 0, 0, "abcdefghij", 11, 0, 0); 2101 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0); 2102 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1); 2103 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10); 2104 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19); 2105 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20); 2106 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20); 2107 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0); 2108 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1); 2109 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9); 2110 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18); 2111 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19); 2112 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19); 2113 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0); 2114 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1); 2115 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5); 2116 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9); 2117 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10); 2118 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10); 2119 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0); 2120 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1); 2121 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1); 2122 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0); 2123 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0); 2124 test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0); 2125 test("abcdefghij", 0, 1, "", 0, 0, 1); 2126 test("abcdefghij", 0, 1, "", 0, 1, 1); 2127} 2128 2129void test20() 2130{ 2131 test("abcdefghij", 0, 1, "", 1, 0, 0); 2132 test("abcdefghij", 0, 1, "abcde", 0, 0, 1); 2133 test("abcdefghij", 0, 1, "abcde", 0, 1, 0); 2134 test("abcdefghij", 0, 1, "abcde", 0, 2, -1); 2135 test("abcdefghij", 0, 1, "abcde", 0, 4, -3); 2136 test("abcdefghij", 0, 1, "abcde", 0, 5, -4); 2137 test("abcdefghij", 0, 1, "abcde", 0, 6, -4); 2138 test("abcdefghij", 0, 1, "abcde", 1, 0, 1); 2139 test("abcdefghij", 0, 1, "abcde", 1, 1, -1); 2140 test("abcdefghij", 0, 1, "abcde", 1, 2, -1); 2141 test("abcdefghij", 0, 1, "abcde", 1, 3, -1); 2142 test("abcdefghij", 0, 1, "abcde", 1, 4, -1); 2143 test("abcdefghij", 0, 1, "abcde", 1, 5, -1); 2144 test("abcdefghij", 0, 1, "abcde", 2, 0, 1); 2145 test("abcdefghij", 0, 1, "abcde", 2, 1, -2); 2146 test("abcdefghij", 0, 1, "abcde", 2, 2, -2); 2147 test("abcdefghij", 0, 1, "abcde", 2, 3, -2); 2148 test("abcdefghij", 0, 1, "abcde", 2, 4, -2); 2149 test("abcdefghij", 0, 1, "abcde", 4, 0, 1); 2150 test("abcdefghij", 0, 1, "abcde", 4, 1, -4); 2151 test("abcdefghij", 0, 1, "abcde", 4, 2, -4); 2152 test("abcdefghij", 0, 1, "abcde", 5, 0, 1); 2153 test("abcdefghij", 0, 1, "abcde", 5, 1, 1); 2154 test("abcdefghij", 0, 1, "abcde", 6, 0, 0); 2155 test("abcdefghij", 0, 1, "abcdefghij", 0, 0, 1); 2156 test("abcdefghij", 0, 1, "abcdefghij", 0, 1, 0); 2157 test("abcdefghij", 0, 1, "abcdefghij", 0, 5, -4); 2158 test("abcdefghij", 0, 1, "abcdefghij", 0, 9, -8); 2159 test("abcdefghij", 0, 1, "abcdefghij", 0, 10, -9); 2160 test("abcdefghij", 0, 1, "abcdefghij", 0, 11, -9); 2161 test("abcdefghij", 0, 1, "abcdefghij", 1, 0, 1); 2162 test("abcdefghij", 0, 1, "abcdefghij", 1, 1, -1); 2163 test("abcdefghij", 0, 1, "abcdefghij", 1, 4, -1); 2164 test("abcdefghij", 0, 1, "abcdefghij", 1, 8, -1); 2165 test("abcdefghij", 0, 1, "abcdefghij", 1, 9, -1); 2166 test("abcdefghij", 0, 1, "abcdefghij", 1, 10, -1); 2167 test("abcdefghij", 0, 1, "abcdefghij", 5, 0, 1); 2168 test("abcdefghij", 0, 1, "abcdefghij", 5, 1, -5); 2169 test("abcdefghij", 0, 1, "abcdefghij", 5, 2, -5); 2170 test("abcdefghij", 0, 1, "abcdefghij", 5, 4, -5); 2171 test("abcdefghij", 0, 1, "abcdefghij", 5, 5, -5); 2172 test("abcdefghij", 0, 1, "abcdefghij", 5, 6, -5); 2173 test("abcdefghij", 0, 1, "abcdefghij", 9, 0, 1); 2174 test("abcdefghij", 0, 1, "abcdefghij", 9, 1, -9); 2175 test("abcdefghij", 0, 1, "abcdefghij", 9, 2, -9); 2176 test("abcdefghij", 0, 1, "abcdefghij", 10, 0, 1); 2177 test("abcdefghij", 0, 1, "abcdefghij", 10, 1, 1); 2178 test("abcdefghij", 0, 1, "abcdefghij", 11, 0, 0); 2179 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 0, 1); 2180 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 1, 0); 2181 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 10, -9); 2182 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 19, -18); 2183 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 20, -19); 2184 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 21, -19); 2185 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 0, 1); 2186 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1); 2187 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 9, -1); 2188 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 18, -1); 2189 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 19, -1); 2190 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 20, -1); 2191 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 0, 1); 2192 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 1, -10); 2193 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 5, -10); 2194 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 9, -10); 2195 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10); 2196 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10); 2197 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, 0, 1); 2198 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, 1, -19); 2199 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, 2, -19); 2200 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 20, 0, 1); 2201 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 20, 1, 1); 2202 test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0); 2203 test("abcdefghij", 0, 5, "", 0, 0, 5); 2204 test("abcdefghij", 0, 5, "", 0, 1, 5); 2205 test("abcdefghij", 0, 5, "", 1, 0, 0); 2206 test("abcdefghij", 0, 5, "abcde", 0, 0, 5); 2207 test("abcdefghij", 0, 5, "abcde", 0, 1, 4); 2208 test("abcdefghij", 0, 5, "abcde", 0, 2, 3); 2209 test("abcdefghij", 0, 5, "abcde", 0, 4, 1); 2210 test("abcdefghij", 0, 5, "abcde", 0, 5, 0); 2211 test("abcdefghij", 0, 5, "abcde", 0, 6, 0); 2212 test("abcdefghij", 0, 5, "abcde", 1, 0, 5); 2213 test("abcdefghij", 0, 5, "abcde", 1, 1, -1); 2214 test("abcdefghij", 0, 5, "abcde", 1, 2, -1); 2215 test("abcdefghij", 0, 5, "abcde", 1, 3, -1); 2216 test("abcdefghij", 0, 5, "abcde", 1, 4, -1); 2217 test("abcdefghij", 0, 5, "abcde", 1, 5, -1); 2218 test("abcdefghij", 0, 5, "abcde", 2, 0, 5); 2219 test("abcdefghij", 0, 5, "abcde", 2, 1, -2); 2220 test("abcdefghij", 0, 5, "abcde", 2, 2, -2); 2221 test("abcdefghij", 0, 5, "abcde", 2, 3, -2); 2222 test("abcdefghij", 0, 5, "abcde", 2, 4, -2); 2223 test("abcdefghij", 0, 5, "abcde", 4, 0, 5); 2224 test("abcdefghij", 0, 5, "abcde", 4, 1, -4); 2225 test("abcdefghij", 0, 5, "abcde", 4, 2, -4); 2226 test("abcdefghij", 0, 5, "abcde", 5, 0, 5); 2227 test("abcdefghij", 0, 5, "abcde", 5, 1, 5); 2228 test("abcdefghij", 0, 5, "abcde", 6, 0, 0); 2229 test("abcdefghij", 0, 5, "abcdefghij", 0, 0, 5); 2230 test("abcdefghij", 0, 5, "abcdefghij", 0, 1, 4); 2231} 2232 2233void test21() 2234{ 2235 test("abcdefghij", 0, 5, "abcdefghij", 0, 5, 0); 2236 test("abcdefghij", 0, 5, "abcdefghij", 0, 9, -4); 2237 test("abcdefghij", 0, 5, "abcdefghij", 0, 10, -5); 2238 test("abcdefghij", 0, 5, "abcdefghij", 0, 11, -5); 2239 test("abcdefghij", 0, 5, "abcdefghij", 1, 0, 5); 2240 test("abcdefghij", 0, 5, "abcdefghij", 1, 1, -1); 2241 test("abcdefghij", 0, 5, "abcdefghij", 1, 4, -1); 2242 test("abcdefghij", 0, 5, "abcdefghij", 1, 8, -1); 2243 test("abcdefghij", 0, 5, "abcdefghij", 1, 9, -1); 2244 test("abcdefghij", 0, 5, "abcdefghij", 1, 10, -1); 2245 test("abcdefghij", 0, 5, "abcdefghij", 5, 0, 5); 2246 test("abcdefghij", 0, 5, "abcdefghij", 5, 1, -5); 2247 test("abcdefghij", 0, 5, "abcdefghij", 5, 2, -5); 2248 test("abcdefghij", 0, 5, "abcdefghij", 5, 4, -5); 2249 test("abcdefghij", 0, 5, "abcdefghij", 5, 5, -5); 2250 test("abcdefghij", 0, 5, "abcdefghij", 5, 6, -5); 2251 test("abcdefghij", 0, 5, "abcdefghij", 9, 0, 5); 2252 test("abcdefghij", 0, 5, "abcdefghij", 9, 1, -9); 2253 test("abcdefghij", 0, 5, "abcdefghij", 9, 2, -9); 2254 test("abcdefghij", 0, 5, "abcdefghij", 10, 0, 5); 2255 test("abcdefghij", 0, 5, "abcdefghij", 10, 1, 5); 2256 test("abcdefghij", 0, 5, "abcdefghij", 11, 0, 0); 2257 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 0, 5); 2258 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 1, 4); 2259 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 10, -5); 2260 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 19, -14); 2261 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 20, -15); 2262 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 21, -15); 2263 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 0, 5); 2264 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 1, -1); 2265 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 9, -1); 2266 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 18, -1); 2267 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 19, -1); 2268 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 20, -1); 2269 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 0, 5); 2270 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 1, -10); 2271 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 5, -10); 2272 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 9, -10); 2273 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 10, -10); 2274 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 11, -10); 2275 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, 0, 5); 2276 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, 1, -19); 2277 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, 2, -19); 2278 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 20, 0, 5); 2279 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 20, 1, 5); 2280 test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 21, 0, 0); 2281 test("abcdefghij", 0, 9, "", 0, 0, 9); 2282 test("abcdefghij", 0, 9, "", 0, 1, 9); 2283 test("abcdefghij", 0, 9, "", 1, 0, 0); 2284 test("abcdefghij", 0, 9, "abcde", 0, 0, 9); 2285 test("abcdefghij", 0, 9, "abcde", 0, 1, 8); 2286 test("abcdefghij", 0, 9, "abcde", 0, 2, 7); 2287 test("abcdefghij", 0, 9, "abcde", 0, 4, 5); 2288 test("abcdefghij", 0, 9, "abcde", 0, 5, 4); 2289 test("abcdefghij", 0, 9, "abcde", 0, 6, 4); 2290 test("abcdefghij", 0, 9, "abcde", 1, 0, 9); 2291 test("abcdefghij", 0, 9, "abcde", 1, 1, -1); 2292 test("abcdefghij", 0, 9, "abcde", 1, 2, -1); 2293 test("abcdefghij", 0, 9, "abcde", 1, 3, -1); 2294 test("abcdefghij", 0, 9, "abcde", 1, 4, -1); 2295 test("abcdefghij", 0, 9, "abcde", 1, 5, -1); 2296 test("abcdefghij", 0, 9, "abcde", 2, 0, 9); 2297 test("abcdefghij", 0, 9, "abcde", 2, 1, -2); 2298 test("abcdefghij", 0, 9, "abcde", 2, 2, -2); 2299 test("abcdefghij", 0, 9, "abcde", 2, 3, -2); 2300 test("abcdefghij", 0, 9, "abcde", 2, 4, -2); 2301 test("abcdefghij", 0, 9, "abcde", 4, 0, 9); 2302 test("abcdefghij", 0, 9, "abcde", 4, 1, -4); 2303 test("abcdefghij", 0, 9, "abcde", 4, 2, -4); 2304 test("abcdefghij", 0, 9, "abcde", 5, 0, 9); 2305 test("abcdefghij", 0, 9, "abcde", 5, 1, 9); 2306 test("abcdefghij", 0, 9, "abcde", 6, 0, 0); 2307 test("abcdefghij", 0, 9, "abcdefghij", 0, 0, 9); 2308 test("abcdefghij", 0, 9, "abcdefghij", 0, 1, 8); 2309 test("abcdefghij", 0, 9, "abcdefghij", 0, 5, 4); 2310 test("abcdefghij", 0, 9, "abcdefghij", 0, 9, 0); 2311 test("abcdefghij", 0, 9, "abcdefghij", 0, 10, -1); 2312 test("abcdefghij", 0, 9, "abcdefghij", 0, 11, -1); 2313 test("abcdefghij", 0, 9, "abcdefghij", 1, 0, 9); 2314 test("abcdefghij", 0, 9, "abcdefghij", 1, 1, -1); 2315 test("abcdefghij", 0, 9, "abcdefghij", 1, 4, -1); 2316 test("abcdefghij", 0, 9, "abcdefghij", 1, 8, -1); 2317 test("abcdefghij", 0, 9, "abcdefghij", 1, 9, -1); 2318 test("abcdefghij", 0, 9, "abcdefghij", 1, 10, -1); 2319 test("abcdefghij", 0, 9, "abcdefghij", 5, 0, 9); 2320 test("abcdefghij", 0, 9, "abcdefghij", 5, 1, -5); 2321 test("abcdefghij", 0, 9, "abcdefghij", 5, 2, -5); 2322 test("abcdefghij", 0, 9, "abcdefghij", 5, 4, -5); 2323 test("abcdefghij", 0, 9, "abcdefghij", 5, 5, -5); 2324 test("abcdefghij", 0, 9, "abcdefghij", 5, 6, -5); 2325 test("abcdefghij", 0, 9, "abcdefghij", 9, 0, 9); 2326 test("abcdefghij", 0, 9, "abcdefghij", 9, 1, -9); 2327 test("abcdefghij", 0, 9, "abcdefghij", 9, 2, -9); 2328 test("abcdefghij", 0, 9, "abcdefghij", 10, 0, 9); 2329 test("abcdefghij", 0, 9, "abcdefghij", 10, 1, 9); 2330 test("abcdefghij", 0, 9, "abcdefghij", 11, 0, 0); 2331 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 0, 9); 2332 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 1, 8); 2333 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 10, -1); 2334 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 19, -10); 2335} 2336 2337void test22() 2338{ 2339 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 20, -11); 2340 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 21, -11); 2341 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 0, 9); 2342 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 1, -1); 2343 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 9, -1); 2344 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 18, -1); 2345 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 19, -1); 2346 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 20, -1); 2347 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 0, 9); 2348 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 1, -10); 2349 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 5, -10); 2350 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 9, -10); 2351 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 10, -10); 2352 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 11, -10); 2353 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, 0, 9); 2354 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, 1, -19); 2355 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, 2, -19); 2356 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 20, 0, 9); 2357 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 20, 1, 9); 2358 test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 21, 0, 0); 2359 test("abcdefghij", 0, 10, "", 0, 0, 10); 2360 test("abcdefghij", 0, 10, "", 0, 1, 10); 2361 test("abcdefghij", 0, 10, "", 1, 0, 0); 2362 test("abcdefghij", 0, 10, "abcde", 0, 0, 10); 2363 test("abcdefghij", 0, 10, "abcde", 0, 1, 9); 2364 test("abcdefghij", 0, 10, "abcde", 0, 2, 8); 2365 test("abcdefghij", 0, 10, "abcde", 0, 4, 6); 2366 test("abcdefghij", 0, 10, "abcde", 0, 5, 5); 2367 test("abcdefghij", 0, 10, "abcde", 0, 6, 5); 2368 test("abcdefghij", 0, 10, "abcde", 1, 0, 10); 2369 test("abcdefghij", 0, 10, "abcde", 1, 1, -1); 2370 test("abcdefghij", 0, 10, "abcde", 1, 2, -1); 2371 test("abcdefghij", 0, 10, "abcde", 1, 3, -1); 2372 test("abcdefghij", 0, 10, "abcde", 1, 4, -1); 2373 test("abcdefghij", 0, 10, "abcde", 1, 5, -1); 2374 test("abcdefghij", 0, 10, "abcde", 2, 0, 10); 2375 test("abcdefghij", 0, 10, "abcde", 2, 1, -2); 2376 test("abcdefghij", 0, 10, "abcde", 2, 2, -2); 2377 test("abcdefghij", 0, 10, "abcde", 2, 3, -2); 2378 test("abcdefghij", 0, 10, "abcde", 2, 4, -2); 2379 test("abcdefghij", 0, 10, "abcde", 4, 0, 10); 2380 test("abcdefghij", 0, 10, "abcde", 4, 1, -4); 2381 test("abcdefghij", 0, 10, "abcde", 4, 2, -4); 2382 test("abcdefghij", 0, 10, "abcde", 5, 0, 10); 2383 test("abcdefghij", 0, 10, "abcde", 5, 1, 10); 2384 test("abcdefghij", 0, 10, "abcde", 6, 0, 0); 2385 test("abcdefghij", 0, 10, "abcdefghij", 0, 0, 10); 2386 test("abcdefghij", 0, 10, "abcdefghij", 0, 1, 9); 2387 test("abcdefghij", 0, 10, "abcdefghij", 0, 5, 5); 2388 test("abcdefghij", 0, 10, "abcdefghij", 0, 9, 1); 2389 test("abcdefghij", 0, 10, "abcdefghij", 0, 10, 0); 2390 test("abcdefghij", 0, 10, "abcdefghij", 0, 11, 0); 2391 test("abcdefghij", 0, 10, "abcdefghij", 1, 0, 10); 2392 test("abcdefghij", 0, 10, "abcdefghij", 1, 1, -1); 2393 test("abcdefghij", 0, 10, "abcdefghij", 1, 4, -1); 2394 test("abcdefghij", 0, 10, "abcdefghij", 1, 8, -1); 2395 test("abcdefghij", 0, 10, "abcdefghij", 1, 9, -1); 2396 test("abcdefghij", 0, 10, "abcdefghij", 1, 10, -1); 2397 test("abcdefghij", 0, 10, "abcdefghij", 5, 0, 10); 2398 test("abcdefghij", 0, 10, "abcdefghij", 5, 1, -5); 2399 test("abcdefghij", 0, 10, "abcdefghij", 5, 2, -5); 2400 test("abcdefghij", 0, 10, "abcdefghij", 5, 4, -5); 2401 test("abcdefghij", 0, 10, "abcdefghij", 5, 5, -5); 2402 test("abcdefghij", 0, 10, "abcdefghij", 5, 6, -5); 2403 test("abcdefghij", 0, 10, "abcdefghij", 9, 0, 10); 2404 test("abcdefghij", 0, 10, "abcdefghij", 9, 1, -9); 2405 test("abcdefghij", 0, 10, "abcdefghij", 9, 2, -9); 2406 test("abcdefghij", 0, 10, "abcdefghij", 10, 0, 10); 2407 test("abcdefghij", 0, 10, "abcdefghij", 10, 1, 10); 2408 test("abcdefghij", 0, 10, "abcdefghij", 11, 0, 0); 2409 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 0, 10); 2410 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 1, 9); 2411 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 10, 0); 2412 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 19, -9); 2413 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 20, -10); 2414 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 21, -10); 2415 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 0, 10); 2416 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 1, -1); 2417 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 9, -1); 2418 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 18, -1); 2419 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 19, -1); 2420 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 20, -1); 2421 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 0, 10); 2422 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 1, -10); 2423 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 5, -10); 2424 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 9, -10); 2425 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 10, -10); 2426 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 11, -10); 2427 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, 0, 10); 2428 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, 1, -19); 2429 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, 2, -19); 2430 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 20, 0, 10); 2431 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 20, 1, 10); 2432 test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 21, 0, 0); 2433 test("abcdefghij", 0, 11, "", 0, 0, 10); 2434 test("abcdefghij", 0, 11, "", 0, 1, 10); 2435 test("abcdefghij", 0, 11, "", 1, 0, 0); 2436 test("abcdefghij", 0, 11, "abcde", 0, 0, 10); 2437 test("abcdefghij", 0, 11, "abcde", 0, 1, 9); 2438 test("abcdefghij", 0, 11, "abcde", 0, 2, 8); 2439} 2440 2441void test23() 2442{ 2443 test("abcdefghij", 0, 11, "abcde", 0, 4, 6); 2444 test("abcdefghij", 0, 11, "abcde", 0, 5, 5); 2445 test("abcdefghij", 0, 11, "abcde", 0, 6, 5); 2446 test("abcdefghij", 0, 11, "abcde", 1, 0, 10); 2447 test("abcdefghij", 0, 11, "abcde", 1, 1, -1); 2448 test("abcdefghij", 0, 11, "abcde", 1, 2, -1); 2449 test("abcdefghij", 0, 11, "abcde", 1, 3, -1); 2450 test("abcdefghij", 0, 11, "abcde", 1, 4, -1); 2451 test("abcdefghij", 0, 11, "abcde", 1, 5, -1); 2452 test("abcdefghij", 0, 11, "abcde", 2, 0, 10); 2453 test("abcdefghij", 0, 11, "abcde", 2, 1, -2); 2454 test("abcdefghij", 0, 11, "abcde", 2, 2, -2); 2455 test("abcdefghij", 0, 11, "abcde", 2, 3, -2); 2456 test("abcdefghij", 0, 11, "abcde", 2, 4, -2); 2457 test("abcdefghij", 0, 11, "abcde", 4, 0, 10); 2458 test("abcdefghij", 0, 11, "abcde", 4, 1, -4); 2459 test("abcdefghij", 0, 11, "abcde", 4, 2, -4); 2460 test("abcdefghij", 0, 11, "abcde", 5, 0, 10); 2461 test("abcdefghij", 0, 11, "abcde", 5, 1, 10); 2462 test("abcdefghij", 0, 11, "abcde", 6, 0, 0); 2463 test("abcdefghij", 0, 11, "abcdefghij", 0, 0, 10); 2464 test("abcdefghij", 0, 11, "abcdefghij", 0, 1, 9); 2465 test("abcdefghij", 0, 11, "abcdefghij", 0, 5, 5); 2466 test("abcdefghij", 0, 11, "abcdefghij", 0, 9, 1); 2467 test("abcdefghij", 0, 11, "abcdefghij", 0, 10, 0); 2468 test("abcdefghij", 0, 11, "abcdefghij", 0, 11, 0); 2469 test("abcdefghij", 0, 11, "abcdefghij", 1, 0, 10); 2470 test("abcdefghij", 0, 11, "abcdefghij", 1, 1, -1); 2471 test("abcdefghij", 0, 11, "abcdefghij", 1, 4, -1); 2472 test("abcdefghij", 0, 11, "abcdefghij", 1, 8, -1); 2473 test("abcdefghij", 0, 11, "abcdefghij", 1, 9, -1); 2474 test("abcdefghij", 0, 11, "abcdefghij", 1, 10, -1); 2475 test("abcdefghij", 0, 11, "abcdefghij", 5, 0, 10); 2476 test("abcdefghij", 0, 11, "abcdefghij", 5, 1, -5); 2477 test("abcdefghij", 0, 11, "abcdefghij", 5, 2, -5); 2478 test("abcdefghij", 0, 11, "abcdefghij", 5, 4, -5); 2479 test("abcdefghij", 0, 11, "abcdefghij", 5, 5, -5); 2480 test("abcdefghij", 0, 11, "abcdefghij", 5, 6, -5); 2481 test("abcdefghij", 0, 11, "abcdefghij", 9, 0, 10); 2482 test("abcdefghij", 0, 11, "abcdefghij", 9, 1, -9); 2483 test("abcdefghij", 0, 11, "abcdefghij", 9, 2, -9); 2484 test("abcdefghij", 0, 11, "abcdefghij", 10, 0, 10); 2485 test("abcdefghij", 0, 11, "abcdefghij", 10, 1, 10); 2486 test("abcdefghij", 0, 11, "abcdefghij", 11, 0, 0); 2487 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 0, 10); 2488 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 1, 9); 2489 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 10, 0); 2490 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 19, -9); 2491 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 20, -10); 2492 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 21, -10); 2493 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 0, 10); 2494 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 1, -1); 2495 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 9, -1); 2496 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 18, -1); 2497 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 19, -1); 2498 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 20, -1); 2499 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 0, 10); 2500 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 1, -10); 2501 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 5, -10); 2502 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 9, -10); 2503 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 10, -10); 2504 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 11, -10); 2505 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, 0, 10); 2506 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, 1, -19); 2507 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, 2, -19); 2508 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 20, 0, 10); 2509 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 20, 1, 10); 2510 test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 21, 0, 0); 2511 test("abcdefghij", 1, 0, "", 0, 0, 0); 2512 test("abcdefghij", 1, 0, "", 0, 1, 0); 2513 test("abcdefghij", 1, 0, "", 1, 0, 0); 2514 test("abcdefghij", 1, 0, "abcde", 0, 0, 0); 2515 test("abcdefghij", 1, 0, "abcde", 0, 1, -1); 2516 test("abcdefghij", 1, 0, "abcde", 0, 2, -2); 2517 test("abcdefghij", 1, 0, "abcde", 0, 4, -4); 2518 test("abcdefghij", 1, 0, "abcde", 0, 5, -5); 2519 test("abcdefghij", 1, 0, "abcde", 0, 6, -5); 2520 test("abcdefghij", 1, 0, "abcde", 1, 0, 0); 2521 test("abcdefghij", 1, 0, "abcde", 1, 1, -1); 2522 test("abcdefghij", 1, 0, "abcde", 1, 2, -2); 2523 test("abcdefghij", 1, 0, "abcde", 1, 3, -3); 2524 test("abcdefghij", 1, 0, "abcde", 1, 4, -4); 2525 test("abcdefghij", 1, 0, "abcde", 1, 5, -4); 2526 test("abcdefghij", 1, 0, "abcde", 2, 0, 0); 2527 test("abcdefghij", 1, 0, "abcde", 2, 1, -1); 2528 test("abcdefghij", 1, 0, "abcde", 2, 2, -2); 2529 test("abcdefghij", 1, 0, "abcde", 2, 3, -3); 2530 test("abcdefghij", 1, 0, "abcde", 2, 4, -3); 2531 test("abcdefghij", 1, 0, "abcde", 4, 0, 0); 2532 test("abcdefghij", 1, 0, "abcde", 4, 1, -1); 2533 test("abcdefghij", 1, 0, "abcde", 4, 2, -1); 2534 test("abcdefghij", 1, 0, "abcde", 5, 0, 0); 2535 test("abcdefghij", 1, 0, "abcde", 5, 1, 0); 2536 test("abcdefghij", 1, 0, "abcde", 6, 0, 0); 2537 test("abcdefghij", 1, 0, "abcdefghij", 0, 0, 0); 2538 test("abcdefghij", 1, 0, "abcdefghij", 0, 1, -1); 2539 test("abcdefghij", 1, 0, "abcdefghij", 0, 5, -5); 2540 test("abcdefghij", 1, 0, "abcdefghij", 0, 9, -9); 2541 test("abcdefghij", 1, 0, "abcdefghij", 0, 10, -10); 2542 test("abcdefghij", 1, 0, "abcdefghij", 0, 11, -10); 2543} 2544 2545void test24() 2546{ 2547 test("abcdefghij", 1, 0, "abcdefghij", 1, 0, 0); 2548 test("abcdefghij", 1, 0, "abcdefghij", 1, 1, -1); 2549 test("abcdefghij", 1, 0, "abcdefghij", 1, 4, -4); 2550 test("abcdefghij", 1, 0, "abcdefghij", 1, 8, -8); 2551 test("abcdefghij", 1, 0, "abcdefghij", 1, 9, -9); 2552 test("abcdefghij", 1, 0, "abcdefghij", 1, 10, -9); 2553 test("abcdefghij", 1, 0, "abcdefghij", 5, 0, 0); 2554 test("abcdefghij", 1, 0, "abcdefghij", 5, 1, -1); 2555 test("abcdefghij", 1, 0, "abcdefghij", 5, 2, -2); 2556 test("abcdefghij", 1, 0, "abcdefghij", 5, 4, -4); 2557 test("abcdefghij", 1, 0, "abcdefghij", 5, 5, -5); 2558 test("abcdefghij", 1, 0, "abcdefghij", 5, 6, -5); 2559 test("abcdefghij", 1, 0, "abcdefghij", 9, 0, 0); 2560 test("abcdefghij", 1, 0, "abcdefghij", 9, 1, -1); 2561 test("abcdefghij", 1, 0, "abcdefghij", 9, 2, -1); 2562 test("abcdefghij", 1, 0, "abcdefghij", 10, 0, 0); 2563 test("abcdefghij", 1, 0, "abcdefghij", 10, 1, 0); 2564 test("abcdefghij", 1, 0, "abcdefghij", 11, 0, 0); 2565 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0); 2566 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 1, -1); 2567 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 10, -10); 2568 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 19, -19); 2569 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 20, -20); 2570 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 21, -20); 2571 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0); 2572 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 1, -1); 2573 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 9, -9); 2574 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 18, -18); 2575 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 19, -19); 2576 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 20, -19); 2577 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0); 2578 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 1, -1); 2579 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 5, -5); 2580 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 9, -9); 2581 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 10, -10); 2582 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 11, -10); 2583 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0); 2584 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, 1, -1); 2585 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, 2, -1); 2586 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0); 2587 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0); 2588 test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0); 2589 test("abcdefghij", 1, 1, "", 0, 0, 1); 2590 test("abcdefghij", 1, 1, "", 0, 1, 1); 2591 test("abcdefghij", 1, 1, "", 1, 0, 0); 2592 test("abcdefghij", 1, 1, "abcde", 0, 0, 1); 2593 test("abcdefghij", 1, 1, "abcde", 0, 1, 1); 2594 test("abcdefghij", 1, 1, "abcde", 0, 2, 1); 2595 test("abcdefghij", 1, 1, "abcde", 0, 4, 1); 2596 test("abcdefghij", 1, 1, "abcde", 0, 5, 1); 2597 test("abcdefghij", 1, 1, "abcde", 0, 6, 1); 2598 test("abcdefghij", 1, 1, "abcde", 1, 0, 1); 2599 test("abcdefghij", 1, 1, "abcde", 1, 1, 0); 2600 test("abcdefghij", 1, 1, "abcde", 1, 2, -1); 2601 test("abcdefghij", 1, 1, "abcde", 1, 3, -2); 2602 test("abcdefghij", 1, 1, "abcde", 1, 4, -3); 2603 test("abcdefghij", 1, 1, "abcde", 1, 5, -3); 2604 test("abcdefghij", 1, 1, "abcde", 2, 0, 1); 2605 test("abcdefghij", 1, 1, "abcde", 2, 1, -1); 2606 test("abcdefghij", 1, 1, "abcde", 2, 2, -1); 2607 test("abcdefghij", 1, 1, "abcde", 2, 3, -1); 2608 test("abcdefghij", 1, 1, "abcde", 2, 4, -1); 2609 test("abcdefghij", 1, 1, "abcde", 4, 0, 1); 2610 test("abcdefghij", 1, 1, "abcde", 4, 1, -3); 2611 test("abcdefghij", 1, 1, "abcde", 4, 2, -3); 2612 test("abcdefghij", 1, 1, "abcde", 5, 0, 1); 2613 test("abcdefghij", 1, 1, "abcde", 5, 1, 1); 2614 test("abcdefghij", 1, 1, "abcde", 6, 0, 0); 2615 test("abcdefghij", 1, 1, "abcdefghij", 0, 0, 1); 2616 test("abcdefghij", 1, 1, "abcdefghij", 0, 1, 1); 2617 test("abcdefghij", 1, 1, "abcdefghij", 0, 5, 1); 2618 test("abcdefghij", 1, 1, "abcdefghij", 0, 9, 1); 2619 test("abcdefghij", 1, 1, "abcdefghij", 0, 10, 1); 2620 test("abcdefghij", 1, 1, "abcdefghij", 0, 11, 1); 2621 test("abcdefghij", 1, 1, "abcdefghij", 1, 0, 1); 2622 test("abcdefghij", 1, 1, "abcdefghij", 1, 1, 0); 2623 test("abcdefghij", 1, 1, "abcdefghij", 1, 4, -3); 2624 test("abcdefghij", 1, 1, "abcdefghij", 1, 8, -7); 2625 test("abcdefghij", 1, 1, "abcdefghij", 1, 9, -8); 2626 test("abcdefghij", 1, 1, "abcdefghij", 1, 10, -8); 2627 test("abcdefghij", 1, 1, "abcdefghij", 5, 0, 1); 2628 test("abcdefghij", 1, 1, "abcdefghij", 5, 1, -4); 2629 test("abcdefghij", 1, 1, "abcdefghij", 5, 2, -4); 2630 test("abcdefghij", 1, 1, "abcdefghij", 5, 4, -4); 2631 test("abcdefghij", 1, 1, "abcdefghij", 5, 5, -4); 2632 test("abcdefghij", 1, 1, "abcdefghij", 5, 6, -4); 2633 test("abcdefghij", 1, 1, "abcdefghij", 9, 0, 1); 2634 test("abcdefghij", 1, 1, "abcdefghij", 9, 1, -8); 2635 test("abcdefghij", 1, 1, "abcdefghij", 9, 2, -8); 2636 test("abcdefghij", 1, 1, "abcdefghij", 10, 0, 1); 2637 test("abcdefghij", 1, 1, "abcdefghij", 10, 1, 1); 2638 test("abcdefghij", 1, 1, "abcdefghij", 11, 0, 0); 2639 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 0, 1); 2640 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 1, 1); 2641 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 10, 1); 2642 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 19, 1); 2643 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 20, 1); 2644 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 21, 1); 2645 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 0, 1); 2646 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 1, 0); 2647} 2648 2649void test25() 2650{ 2651 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 9, -8); 2652 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 18, -17); 2653 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 19, -18); 2654 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 20, -18); 2655 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 0, 1); 2656 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 1, -9); 2657 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 5, -9); 2658 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 9, -9); 2659 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 10, -9); 2660 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 11, -9); 2661 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 0, 1); 2662 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 1, -18); 2663 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 2, -18); 2664 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 20, 0, 1); 2665 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 20, 1, 1); 2666 test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 21, 0, 0); 2667 test("abcdefghij", 1, 4, "", 0, 0, 4); 2668 test("abcdefghij", 1, 4, "", 0, 1, 4); 2669 test("abcdefghij", 1, 4, "", 1, 0, 0); 2670 test("abcdefghij", 1, 4, "abcde", 0, 0, 4); 2671 test("abcdefghij", 1, 4, "abcde", 0, 1, 1); 2672 test("abcdefghij", 1, 4, "abcde", 0, 2, 1); 2673 test("abcdefghij", 1, 4, "abcde", 0, 4, 1); 2674 test("abcdefghij", 1, 4, "abcde", 0, 5, 1); 2675 test("abcdefghij", 1, 4, "abcde", 0, 6, 1); 2676 test("abcdefghij", 1, 4, "abcde", 1, 0, 4); 2677 test("abcdefghij", 1, 4, "abcde", 1, 1, 3); 2678 test("abcdefghij", 1, 4, "abcde", 1, 2, 2); 2679 test("abcdefghij", 1, 4, "abcde", 1, 3, 1); 2680 test("abcdefghij", 1, 4, "abcde", 1, 4, 0); 2681 test("abcdefghij", 1, 4, "abcde", 1, 5, 0); 2682 test("abcdefghij", 1, 4, "abcde", 2, 0, 4); 2683 test("abcdefghij", 1, 4, "abcde", 2, 1, -1); 2684 test("abcdefghij", 1, 4, "abcde", 2, 2, -1); 2685 test("abcdefghij", 1, 4, "abcde", 2, 3, -1); 2686 test("abcdefghij", 1, 4, "abcde", 2, 4, -1); 2687 test("abcdefghij", 1, 4, "abcde", 4, 0, 4); 2688 test("abcdefghij", 1, 4, "abcde", 4, 1, -3); 2689 test("abcdefghij", 1, 4, "abcde", 4, 2, -3); 2690 test("abcdefghij", 1, 4, "abcde", 5, 0, 4); 2691 test("abcdefghij", 1, 4, "abcde", 5, 1, 4); 2692 test("abcdefghij", 1, 4, "abcde", 6, 0, 0); 2693 test("abcdefghij", 1, 4, "abcdefghij", 0, 0, 4); 2694 test("abcdefghij", 1, 4, "abcdefghij", 0, 1, 1); 2695 test("abcdefghij", 1, 4, "abcdefghij", 0, 5, 1); 2696 test("abcdefghij", 1, 4, "abcdefghij", 0, 9, 1); 2697 test("abcdefghij", 1, 4, "abcdefghij", 0, 10, 1); 2698 test("abcdefghij", 1, 4, "abcdefghij", 0, 11, 1); 2699 test("abcdefghij", 1, 4, "abcdefghij", 1, 0, 4); 2700 test("abcdefghij", 1, 4, "abcdefghij", 1, 1, 3); 2701 test("abcdefghij", 1, 4, "abcdefghij", 1, 4, 0); 2702 test("abcdefghij", 1, 4, "abcdefghij", 1, 8, -4); 2703 test("abcdefghij", 1, 4, "abcdefghij", 1, 9, -5); 2704 test("abcdefghij", 1, 4, "abcdefghij", 1, 10, -5); 2705 test("abcdefghij", 1, 4, "abcdefghij", 5, 0, 4); 2706 test("abcdefghij", 1, 4, "abcdefghij", 5, 1, -4); 2707 test("abcdefghij", 1, 4, "abcdefghij", 5, 2, -4); 2708 test("abcdefghij", 1, 4, "abcdefghij", 5, 4, -4); 2709 test("abcdefghij", 1, 4, "abcdefghij", 5, 5, -4); 2710 test("abcdefghij", 1, 4, "abcdefghij", 5, 6, -4); 2711 test("abcdefghij", 1, 4, "abcdefghij", 9, 0, 4); 2712 test("abcdefghij", 1, 4, "abcdefghij", 9, 1, -8); 2713 test("abcdefghij", 1, 4, "abcdefghij", 9, 2, -8); 2714 test("abcdefghij", 1, 4, "abcdefghij", 10, 0, 4); 2715 test("abcdefghij", 1, 4, "abcdefghij", 10, 1, 4); 2716 test("abcdefghij", 1, 4, "abcdefghij", 11, 0, 0); 2717 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 0, 4); 2718 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 1, 1); 2719 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 10, 1); 2720 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 19, 1); 2721 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 20, 1); 2722 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 21, 1); 2723 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 0, 4); 2724 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 1, 3); 2725 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 9, -5); 2726 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 18, -14); 2727 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 19, -15); 2728 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 20, -15); 2729 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 0, 4); 2730 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 1, -9); 2731 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 5, -9); 2732 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 9, -9); 2733 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 10, -9); 2734 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 11, -9); 2735 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 0, 4); 2736 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 1, -18); 2737 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 2, -18); 2738 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 20, 0, 4); 2739 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 20, 1, 4); 2740 test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 21, 0, 0); 2741 test("abcdefghij", 1, 8, "", 0, 0, 8); 2742 test("abcdefghij", 1, 8, "", 0, 1, 8); 2743 test("abcdefghij", 1, 8, "", 1, 0, 0); 2744 test("abcdefghij", 1, 8, "abcde", 0, 0, 8); 2745 test("abcdefghij", 1, 8, "abcde", 0, 1, 1); 2746 test("abcdefghij", 1, 8, "abcde", 0, 2, 1); 2747 test("abcdefghij", 1, 8, "abcde", 0, 4, 1); 2748 test("abcdefghij", 1, 8, "abcde", 0, 5, 1); 2749 test("abcdefghij", 1, 8, "abcde", 0, 6, 1); 2750 test("abcdefghij", 1, 8, "abcde", 1, 0, 8); 2751} 2752 2753void test26() 2754{ 2755 test("abcdefghij", 1, 8, "abcde", 1, 1, 7); 2756 test("abcdefghij", 1, 8, "abcde", 1, 2, 6); 2757 test("abcdefghij", 1, 8, "abcde", 1, 3, 5); 2758 test("abcdefghij", 1, 8, "abcde", 1, 4, 4); 2759 test("abcdefghij", 1, 8, "abcde", 1, 5, 4); 2760 test("abcdefghij", 1, 8, "abcde", 2, 0, 8); 2761 test("abcdefghij", 1, 8, "abcde", 2, 1, -1); 2762 test("abcdefghij", 1, 8, "abcde", 2, 2, -1); 2763 test("abcdefghij", 1, 8, "abcde", 2, 3, -1); 2764 test("abcdefghij", 1, 8, "abcde", 2, 4, -1); 2765 test("abcdefghij", 1, 8, "abcde", 4, 0, 8); 2766 test("abcdefghij", 1, 8, "abcde", 4, 1, -3); 2767 test("abcdefghij", 1, 8, "abcde", 4, 2, -3); 2768 test("abcdefghij", 1, 8, "abcde", 5, 0, 8); 2769 test("abcdefghij", 1, 8, "abcde", 5, 1, 8); 2770 test("abcdefghij", 1, 8, "abcde", 6, 0, 0); 2771 test("abcdefghij", 1, 8, "abcdefghij", 0, 0, 8); 2772 test("abcdefghij", 1, 8, "abcdefghij", 0, 1, 1); 2773 test("abcdefghij", 1, 8, "abcdefghij", 0, 5, 1); 2774 test("abcdefghij", 1, 8, "abcdefghij", 0, 9, 1); 2775 test("abcdefghij", 1, 8, "abcdefghij", 0, 10, 1); 2776 test("abcdefghij", 1, 8, "abcdefghij", 0, 11, 1); 2777 test("abcdefghij", 1, 8, "abcdefghij", 1, 0, 8); 2778 test("abcdefghij", 1, 8, "abcdefghij", 1, 1, 7); 2779 test("abcdefghij", 1, 8, "abcdefghij", 1, 4, 4); 2780 test("abcdefghij", 1, 8, "abcdefghij", 1, 8, 0); 2781 test("abcdefghij", 1, 8, "abcdefghij", 1, 9, -1); 2782 test("abcdefghij", 1, 8, "abcdefghij", 1, 10, -1); 2783 test("abcdefghij", 1, 8, "abcdefghij", 5, 0, 8); 2784 test("abcdefghij", 1, 8, "abcdefghij", 5, 1, -4); 2785 test("abcdefghij", 1, 8, "abcdefghij", 5, 2, -4); 2786 test("abcdefghij", 1, 8, "abcdefghij", 5, 4, -4); 2787 test("abcdefghij", 1, 8, "abcdefghij", 5, 5, -4); 2788 test("abcdefghij", 1, 8, "abcdefghij", 5, 6, -4); 2789 test("abcdefghij", 1, 8, "abcdefghij", 9, 0, 8); 2790 test("abcdefghij", 1, 8, "abcdefghij", 9, 1, -8); 2791 test("abcdefghij", 1, 8, "abcdefghij", 9, 2, -8); 2792 test("abcdefghij", 1, 8, "abcdefghij", 10, 0, 8); 2793 test("abcdefghij", 1, 8, "abcdefghij", 10, 1, 8); 2794 test("abcdefghij", 1, 8, "abcdefghij", 11, 0, 0); 2795 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 0, 8); 2796 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 1, 1); 2797 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 10, 1); 2798 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 19, 1); 2799 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 20, 1); 2800 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 21, 1); 2801 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 0, 8); 2802 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 1, 7); 2803 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 9, -1); 2804 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 18, -10); 2805 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 19, -11); 2806 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 20, -11); 2807 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 0, 8); 2808 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 1, -9); 2809 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 5, -9); 2810 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 9, -9); 2811 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 10, -9); 2812 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 11, -9); 2813 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 0, 8); 2814 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 1, -18); 2815 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 2, -18); 2816 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 20, 0, 8); 2817 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 20, 1, 8); 2818 test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 21, 0, 0); 2819 test("abcdefghij", 1, 9, "", 0, 0, 9); 2820 test("abcdefghij", 1, 9, "", 0, 1, 9); 2821 test("abcdefghij", 1, 9, "", 1, 0, 0); 2822 test("abcdefghij", 1, 9, "abcde", 0, 0, 9); 2823 test("abcdefghij", 1, 9, "abcde", 0, 1, 1); 2824 test("abcdefghij", 1, 9, "abcde", 0, 2, 1); 2825 test("abcdefghij", 1, 9, "abcde", 0, 4, 1); 2826 test("abcdefghij", 1, 9, "abcde", 0, 5, 1); 2827 test("abcdefghij", 1, 9, "abcde", 0, 6, 1); 2828 test("abcdefghij", 1, 9, "abcde", 1, 0, 9); 2829 test("abcdefghij", 1, 9, "abcde", 1, 1, 8); 2830 test("abcdefghij", 1, 9, "abcde", 1, 2, 7); 2831 test("abcdefghij", 1, 9, "abcde", 1, 3, 6); 2832 test("abcdefghij", 1, 9, "abcde", 1, 4, 5); 2833 test("abcdefghij", 1, 9, "abcde", 1, 5, 5); 2834 test("abcdefghij", 1, 9, "abcde", 2, 0, 9); 2835 test("abcdefghij", 1, 9, "abcde", 2, 1, -1); 2836 test("abcdefghij", 1, 9, "abcde", 2, 2, -1); 2837 test("abcdefghij", 1, 9, "abcde", 2, 3, -1); 2838 test("abcdefghij", 1, 9, "abcde", 2, 4, -1); 2839 test("abcdefghij", 1, 9, "abcde", 4, 0, 9); 2840 test("abcdefghij", 1, 9, "abcde", 4, 1, -3); 2841 test("abcdefghij", 1, 9, "abcde", 4, 2, -3); 2842 test("abcdefghij", 1, 9, "abcde", 5, 0, 9); 2843 test("abcdefghij", 1, 9, "abcde", 5, 1, 9); 2844 test("abcdefghij", 1, 9, "abcde", 6, 0, 0); 2845 test("abcdefghij", 1, 9, "abcdefghij", 0, 0, 9); 2846 test("abcdefghij", 1, 9, "abcdefghij", 0, 1, 1); 2847 test("abcdefghij", 1, 9, "abcdefghij", 0, 5, 1); 2848 test("abcdefghij", 1, 9, "abcdefghij", 0, 9, 1); 2849 test("abcdefghij", 1, 9, "abcdefghij", 0, 10, 1); 2850 test("abcdefghij", 1, 9, "abcdefghij", 0, 11, 1); 2851 test("abcdefghij", 1, 9, "abcdefghij", 1, 0, 9); 2852 test("abcdefghij", 1, 9, "abcdefghij", 1, 1, 8); 2853 test("abcdefghij", 1, 9, "abcdefghij", 1, 4, 5); 2854 test("abcdefghij", 1, 9, "abcdefghij", 1, 8, 1); 2855} 2856 2857void test27() 2858{ 2859 test("abcdefghij", 1, 9, "abcdefghij", 1, 9, 0); 2860 test("abcdefghij", 1, 9, "abcdefghij", 1, 10, 0); 2861 test("abcdefghij", 1, 9, "abcdefghij", 5, 0, 9); 2862 test("abcdefghij", 1, 9, "abcdefghij", 5, 1, -4); 2863 test("abcdefghij", 1, 9, "abcdefghij", 5, 2, -4); 2864 test("abcdefghij", 1, 9, "abcdefghij", 5, 4, -4); 2865 test("abcdefghij", 1, 9, "abcdefghij", 5, 5, -4); 2866 test("abcdefghij", 1, 9, "abcdefghij", 5, 6, -4); 2867 test("abcdefghij", 1, 9, "abcdefghij", 9, 0, 9); 2868 test("abcdefghij", 1, 9, "abcdefghij", 9, 1, -8); 2869 test("abcdefghij", 1, 9, "abcdefghij", 9, 2, -8); 2870 test("abcdefghij", 1, 9, "abcdefghij", 10, 0, 9); 2871 test("abcdefghij", 1, 9, "abcdefghij", 10, 1, 9); 2872 test("abcdefghij", 1, 9, "abcdefghij", 11, 0, 0); 2873 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 0, 9); 2874 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 1, 1); 2875 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 10, 1); 2876 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 19, 1); 2877 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 20, 1); 2878 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 21, 1); 2879 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 0, 9); 2880 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 1, 8); 2881 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 9, 0); 2882 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 18, -9); 2883 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 19, -10); 2884 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 20, -10); 2885 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 0, 9); 2886 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 1, -9); 2887 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 5, -9); 2888 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 9, -9); 2889 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 10, -9); 2890 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 11, -9); 2891 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 0, 9); 2892 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 1, -18); 2893 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 2, -18); 2894 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 20, 0, 9); 2895 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 20, 1, 9); 2896 test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 21, 0, 0); 2897 test("abcdefghij", 1, 10, "", 0, 0, 9); 2898 test("abcdefghij", 1, 10, "", 0, 1, 9); 2899 test("abcdefghij", 1, 10, "", 1, 0, 0); 2900 test("abcdefghij", 1, 10, "abcde", 0, 0, 9); 2901 test("abcdefghij", 1, 10, "abcde", 0, 1, 1); 2902 test("abcdefghij", 1, 10, "abcde", 0, 2, 1); 2903 test("abcdefghij", 1, 10, "abcde", 0, 4, 1); 2904 test("abcdefghij", 1, 10, "abcde", 0, 5, 1); 2905 test("abcdefghij", 1, 10, "abcde", 0, 6, 1); 2906 test("abcdefghij", 1, 10, "abcde", 1, 0, 9); 2907 test("abcdefghij", 1, 10, "abcde", 1, 1, 8); 2908 test("abcdefghij", 1, 10, "abcde", 1, 2, 7); 2909 test("abcdefghij", 1, 10, "abcde", 1, 3, 6); 2910 test("abcdefghij", 1, 10, "abcde", 1, 4, 5); 2911 test("abcdefghij", 1, 10, "abcde", 1, 5, 5); 2912 test("abcdefghij", 1, 10, "abcde", 2, 0, 9); 2913 test("abcdefghij", 1, 10, "abcde", 2, 1, -1); 2914 test("abcdefghij", 1, 10, "abcde", 2, 2, -1); 2915 test("abcdefghij", 1, 10, "abcde", 2, 3, -1); 2916 test("abcdefghij", 1, 10, "abcde", 2, 4, -1); 2917 test("abcdefghij", 1, 10, "abcde", 4, 0, 9); 2918 test("abcdefghij", 1, 10, "abcde", 4, 1, -3); 2919 test("abcdefghij", 1, 10, "abcde", 4, 2, -3); 2920 test("abcdefghij", 1, 10, "abcde", 5, 0, 9); 2921 test("abcdefghij", 1, 10, "abcde", 5, 1, 9); 2922 test("abcdefghij", 1, 10, "abcde", 6, 0, 0); 2923 test("abcdefghij", 1, 10, "abcdefghij", 0, 0, 9); 2924 test("abcdefghij", 1, 10, "abcdefghij", 0, 1, 1); 2925 test("abcdefghij", 1, 10, "abcdefghij", 0, 5, 1); 2926 test("abcdefghij", 1, 10, "abcdefghij", 0, 9, 1); 2927 test("abcdefghij", 1, 10, "abcdefghij", 0, 10, 1); 2928 test("abcdefghij", 1, 10, "abcdefghij", 0, 11, 1); 2929 test("abcdefghij", 1, 10, "abcdefghij", 1, 0, 9); 2930 test("abcdefghij", 1, 10, "abcdefghij", 1, 1, 8); 2931 test("abcdefghij", 1, 10, "abcdefghij", 1, 4, 5); 2932 test("abcdefghij", 1, 10, "abcdefghij", 1, 8, 1); 2933 test("abcdefghij", 1, 10, "abcdefghij", 1, 9, 0); 2934 test("abcdefghij", 1, 10, "abcdefghij", 1, 10, 0); 2935 test("abcdefghij", 1, 10, "abcdefghij", 5, 0, 9); 2936 test("abcdefghij", 1, 10, "abcdefghij", 5, 1, -4); 2937 test("abcdefghij", 1, 10, "abcdefghij", 5, 2, -4); 2938 test("abcdefghij", 1, 10, "abcdefghij", 5, 4, -4); 2939 test("abcdefghij", 1, 10, "abcdefghij", 5, 5, -4); 2940 test("abcdefghij", 1, 10, "abcdefghij", 5, 6, -4); 2941 test("abcdefghij", 1, 10, "abcdefghij", 9, 0, 9); 2942 test("abcdefghij", 1, 10, "abcdefghij", 9, 1, -8); 2943 test("abcdefghij", 1, 10, "abcdefghij", 9, 2, -8); 2944 test("abcdefghij", 1, 10, "abcdefghij", 10, 0, 9); 2945 test("abcdefghij", 1, 10, "abcdefghij", 10, 1, 9); 2946 test("abcdefghij", 1, 10, "abcdefghij", 11, 0, 0); 2947 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 0, 9); 2948 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 1, 1); 2949 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 10, 1); 2950 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 19, 1); 2951 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 20, 1); 2952 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 21, 1); 2953 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 0, 9); 2954 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 1, 8); 2955 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 9, 0); 2956 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 18, -9); 2957 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 19, -10); 2958 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 20, -10); 2959} 2960 2961void test28() 2962{ 2963 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 0, 9); 2964 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 1, -9); 2965 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 5, -9); 2966 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 9, -9); 2967 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 10, -9); 2968 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 11, -9); 2969 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 0, 9); 2970 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 1, -18); 2971 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 2, -18); 2972 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 20, 0, 9); 2973 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 20, 1, 9); 2974 test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 21, 0, 0); 2975 test("abcdefghij", 5, 0, "", 0, 0, 0); 2976 test("abcdefghij", 5, 0, "", 0, 1, 0); 2977 test("abcdefghij", 5, 0, "", 1, 0, 0); 2978 test("abcdefghij", 5, 0, "abcde", 0, 0, 0); 2979 test("abcdefghij", 5, 0, "abcde", 0, 1, -1); 2980 test("abcdefghij", 5, 0, "abcde", 0, 2, -2); 2981 test("abcdefghij", 5, 0, "abcde", 0, 4, -4); 2982 test("abcdefghij", 5, 0, "abcde", 0, 5, -5); 2983 test("abcdefghij", 5, 0, "abcde", 0, 6, -5); 2984 test("abcdefghij", 5, 0, "abcde", 1, 0, 0); 2985 test("abcdefghij", 5, 0, "abcde", 1, 1, -1); 2986 test("abcdefghij", 5, 0, "abcde", 1, 2, -2); 2987 test("abcdefghij", 5, 0, "abcde", 1, 3, -3); 2988 test("abcdefghij", 5, 0, "abcde", 1, 4, -4); 2989 test("abcdefghij", 5, 0, "abcde", 1, 5, -4); 2990 test("abcdefghij", 5, 0, "abcde", 2, 0, 0); 2991 test("abcdefghij", 5, 0, "abcde", 2, 1, -1); 2992 test("abcdefghij", 5, 0, "abcde", 2, 2, -2); 2993 test("abcdefghij", 5, 0, "abcde", 2, 3, -3); 2994 test("abcdefghij", 5, 0, "abcde", 2, 4, -3); 2995 test("abcdefghij", 5, 0, "abcde", 4, 0, 0); 2996 test("abcdefghij", 5, 0, "abcde", 4, 1, -1); 2997 test("abcdefghij", 5, 0, "abcde", 4, 2, -1); 2998 test("abcdefghij", 5, 0, "abcde", 5, 0, 0); 2999 test("abcdefghij", 5, 0, "abcde", 5, 1, 0); 3000 test("abcdefghij", 5, 0, "abcde", 6, 0, 0); 3001 test("abcdefghij", 5, 0, "abcdefghij", 0, 0, 0); 3002 test("abcdefghij", 5, 0, "abcdefghij", 0, 1, -1); 3003 test("abcdefghij", 5, 0, "abcdefghij", 0, 5, -5); 3004 test("abcdefghij", 5, 0, "abcdefghij", 0, 9, -9); 3005 test("abcdefghij", 5, 0, "abcdefghij", 0, 10, -10); 3006 test("abcdefghij", 5, 0, "abcdefghij", 0, 11, -10); 3007 test("abcdefghij", 5, 0, "abcdefghij", 1, 0, 0); 3008 test("abcdefghij", 5, 0, "abcdefghij", 1, 1, -1); 3009 test("abcdefghij", 5, 0, "abcdefghij", 1, 4, -4); 3010 test("abcdefghij", 5, 0, "abcdefghij", 1, 8, -8); 3011 test("abcdefghij", 5, 0, "abcdefghij", 1, 9, -9); 3012 test("abcdefghij", 5, 0, "abcdefghij", 1, 10, -9); 3013 test("abcdefghij", 5, 0, "abcdefghij", 5, 0, 0); 3014 test("abcdefghij", 5, 0, "abcdefghij", 5, 1, -1); 3015 test("abcdefghij", 5, 0, "abcdefghij", 5, 2, -2); 3016 test("abcdefghij", 5, 0, "abcdefghij", 5, 4, -4); 3017 test("abcdefghij", 5, 0, "abcdefghij", 5, 5, -5); 3018 test("abcdefghij", 5, 0, "abcdefghij", 5, 6, -5); 3019 test("abcdefghij", 5, 0, "abcdefghij", 9, 0, 0); 3020 test("abcdefghij", 5, 0, "abcdefghij", 9, 1, -1); 3021 test("abcdefghij", 5, 0, "abcdefghij", 9, 2, -1); 3022 test("abcdefghij", 5, 0, "abcdefghij", 10, 0, 0); 3023 test("abcdefghij", 5, 0, "abcdefghij", 10, 1, 0); 3024 test("abcdefghij", 5, 0, "abcdefghij", 11, 0, 0); 3025 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 0, 0); 3026 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 1, -1); 3027 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 10, -10); 3028 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 19, -19); 3029 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 20, -20); 3030 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 21, -20); 3031 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 0, 0); 3032 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 1, -1); 3033 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 9, -9); 3034 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 18, -18); 3035 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 19, -19); 3036 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 20, -19); 3037 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 0, 0); 3038 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 1, -1); 3039 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 5, -5); 3040 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 9, -9); 3041 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 10, -10); 3042 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 11, -10); 3043 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, 0, 0); 3044 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, 1, -1); 3045 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, 2, -1); 3046 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 20, 0, 0); 3047 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 20, 1, 0); 3048 test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 21, 0, 0); 3049 test("abcdefghij", 5, 1, "", 0, 0, 1); 3050 test("abcdefghij", 5, 1, "", 0, 1, 1); 3051 test("abcdefghij", 5, 1, "", 1, 0, 0); 3052 test("abcdefghij", 5, 1, "abcde", 0, 0, 1); 3053 test("abcdefghij", 5, 1, "abcde", 0, 1, 5); 3054 test("abcdefghij", 5, 1, "abcde", 0, 2, 5); 3055 test("abcdefghij", 5, 1, "abcde", 0, 4, 5); 3056 test("abcdefghij", 5, 1, "abcde", 0, 5, 5); 3057 test("abcdefghij", 5, 1, "abcde", 0, 6, 5); 3058 test("abcdefghij", 5, 1, "abcde", 1, 0, 1); 3059 test("abcdefghij", 5, 1, "abcde", 1, 1, 4); 3060 test("abcdefghij", 5, 1, "abcde", 1, 2, 4); 3061 test("abcdefghij", 5, 1, "abcde", 1, 3, 4); 3062 test("abcdefghij", 5, 1, "abcde", 1, 4, 4); 3063} 3064 3065void test29() 3066{ 3067 test("abcdefghij", 5, 1, "abcde", 1, 5, 4); 3068 test("abcdefghij", 5, 1, "abcde", 2, 0, 1); 3069 test("abcdefghij", 5, 1, "abcde", 2, 1, 3); 3070 test("abcdefghij", 5, 1, "abcde", 2, 2, 3); 3071 test("abcdefghij", 5, 1, "abcde", 2, 3, 3); 3072 test("abcdefghij", 5, 1, "abcde", 2, 4, 3); 3073 test("abcdefghij", 5, 1, "abcde", 4, 0, 1); 3074 test("abcdefghij", 5, 1, "abcde", 4, 1, 1); 3075 test("abcdefghij", 5, 1, "abcde", 4, 2, 1); 3076 test("abcdefghij", 5, 1, "abcde", 5, 0, 1); 3077 test("abcdefghij", 5, 1, "abcde", 5, 1, 1); 3078 test("abcdefghij", 5, 1, "abcde", 6, 0, 0); 3079 test("abcdefghij", 5, 1, "abcdefghij", 0, 0, 1); 3080 test("abcdefghij", 5, 1, "abcdefghij", 0, 1, 5); 3081 test("abcdefghij", 5, 1, "abcdefghij", 0, 5, 5); 3082 test("abcdefghij", 5, 1, "abcdefghij", 0, 9, 5); 3083 test("abcdefghij", 5, 1, "abcdefghij", 0, 10, 5); 3084 test("abcdefghij", 5, 1, "abcdefghij", 0, 11, 5); 3085 test("abcdefghij", 5, 1, "abcdefghij", 1, 0, 1); 3086 test("abcdefghij", 5, 1, "abcdefghij", 1, 1, 4); 3087 test("abcdefghij", 5, 1, "abcdefghij", 1, 4, 4); 3088 test("abcdefghij", 5, 1, "abcdefghij", 1, 8, 4); 3089 test("abcdefghij", 5, 1, "abcdefghij", 1, 9, 4); 3090 test("abcdefghij", 5, 1, "abcdefghij", 1, 10, 4); 3091 test("abcdefghij", 5, 1, "abcdefghij", 5, 0, 1); 3092 test("abcdefghij", 5, 1, "abcdefghij", 5, 1, 0); 3093 test("abcdefghij", 5, 1, "abcdefghij", 5, 2, -1); 3094 test("abcdefghij", 5, 1, "abcdefghij", 5, 4, -3); 3095 test("abcdefghij", 5, 1, "abcdefghij", 5, 5, -4); 3096 test("abcdefghij", 5, 1, "abcdefghij", 5, 6, -4); 3097 test("abcdefghij", 5, 1, "abcdefghij", 9, 0, 1); 3098 test("abcdefghij", 5, 1, "abcdefghij", 9, 1, -4); 3099 test("abcdefghij", 5, 1, "abcdefghij", 9, 2, -4); 3100 test("abcdefghij", 5, 1, "abcdefghij", 10, 0, 1); 3101 test("abcdefghij", 5, 1, "abcdefghij", 10, 1, 1); 3102 test("abcdefghij", 5, 1, "abcdefghij", 11, 0, 0); 3103 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 0, 1); 3104 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 1, 5); 3105 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 10, 5); 3106 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 19, 5); 3107 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 20, 5); 3108 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 21, 5); 3109 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 0, 1); 3110 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 1, 4); 3111 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 9, 4); 3112 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 18, 4); 3113 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 19, 4); 3114 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 20, 4); 3115 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 0, 1); 3116 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 1, -5); 3117 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 5, -5); 3118 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 9, -5); 3119 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 10, -5); 3120 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 11, -5); 3121 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 0, 1); 3122 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 1, -14); 3123 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 2, -14); 3124 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 20, 0, 1); 3125 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 20, 1, 1); 3126 test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 21, 0, 0); 3127 test("abcdefghij", 5, 2, "", 0, 0, 2); 3128 test("abcdefghij", 5, 2, "", 0, 1, 2); 3129 test("abcdefghij", 5, 2, "", 1, 0, 0); 3130 test("abcdefghij", 5, 2, "abcde", 0, 0, 2); 3131 test("abcdefghij", 5, 2, "abcde", 0, 1, 5); 3132 test("abcdefghij", 5, 2, "abcde", 0, 2, 5); 3133 test("abcdefghij", 5, 2, "abcde", 0, 4, 5); 3134 test("abcdefghij", 5, 2, "abcde", 0, 5, 5); 3135 test("abcdefghij", 5, 2, "abcde", 0, 6, 5); 3136 test("abcdefghij", 5, 2, "abcde", 1, 0, 2); 3137 test("abcdefghij", 5, 2, "abcde", 1, 1, 4); 3138 test("abcdefghij", 5, 2, "abcde", 1, 2, 4); 3139 test("abcdefghij", 5, 2, "abcde", 1, 3, 4); 3140 test("abcdefghij", 5, 2, "abcde", 1, 4, 4); 3141 test("abcdefghij", 5, 2, "abcde", 1, 5, 4); 3142 test("abcdefghij", 5, 2, "abcde", 2, 0, 2); 3143 test("abcdefghij", 5, 2, "abcde", 2, 1, 3); 3144 test("abcdefghij", 5, 2, "abcde", 2, 2, 3); 3145 test("abcdefghij", 5, 2, "abcde", 2, 3, 3); 3146 test("abcdefghij", 5, 2, "abcde", 2, 4, 3); 3147 test("abcdefghij", 5, 2, "abcde", 4, 0, 2); 3148 test("abcdefghij", 5, 2, "abcde", 4, 1, 1); 3149 test("abcdefghij", 5, 2, "abcde", 4, 2, 1); 3150 test("abcdefghij", 5, 2, "abcde", 5, 0, 2); 3151 test("abcdefghij", 5, 2, "abcde", 5, 1, 2); 3152 test("abcdefghij", 5, 2, "abcde", 6, 0, 0); 3153 test("abcdefghij", 5, 2, "abcdefghij", 0, 0, 2); 3154 test("abcdefghij", 5, 2, "abcdefghij", 0, 1, 5); 3155 test("abcdefghij", 5, 2, "abcdefghij", 0, 5, 5); 3156 test("abcdefghij", 5, 2, "abcdefghij", 0, 9, 5); 3157 test("abcdefghij", 5, 2, "abcdefghij", 0, 10, 5); 3158 test("abcdefghij", 5, 2, "abcdefghij", 0, 11, 5); 3159 test("abcdefghij", 5, 2, "abcdefghij", 1, 0, 2); 3160 test("abcdefghij", 5, 2, "abcdefghij", 1, 1, 4); 3161 test("abcdefghij", 5, 2, "abcdefghij", 1, 4, 4); 3162 test("abcdefghij", 5, 2, "abcdefghij", 1, 8, 4); 3163 test("abcdefghij", 5, 2, "abcdefghij", 1, 9, 4); 3164 test("abcdefghij", 5, 2, "abcdefghij", 1, 10, 4); 3165 test("abcdefghij", 5, 2, "abcdefghij", 5, 0, 2); 3166 test("abcdefghij", 5, 2, "abcdefghij", 5, 1, 1); 3167} 3168 3169void test30() 3170{ 3171 test("abcdefghij", 5, 2, "abcdefghij", 5, 2, 0); 3172 test("abcdefghij", 5, 2, "abcdefghij", 5, 4, -2); 3173 test("abcdefghij", 5, 2, "abcdefghij", 5, 5, -3); 3174 test("abcdefghij", 5, 2, "abcdefghij", 5, 6, -3); 3175 test("abcdefghij", 5, 2, "abcdefghij", 9, 0, 2); 3176 test("abcdefghij", 5, 2, "abcdefghij", 9, 1, -4); 3177 test("abcdefghij", 5, 2, "abcdefghij", 9, 2, -4); 3178 test("abcdefghij", 5, 2, "abcdefghij", 10, 0, 2); 3179 test("abcdefghij", 5, 2, "abcdefghij", 10, 1, 2); 3180 test("abcdefghij", 5, 2, "abcdefghij", 11, 0, 0); 3181 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 0, 2); 3182 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 1, 5); 3183 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 10, 5); 3184 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 19, 5); 3185 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 20, 5); 3186 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 21, 5); 3187 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 0, 2); 3188 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 1, 4); 3189 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 9, 4); 3190 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 18, 4); 3191 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 19, 4); 3192 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 20, 4); 3193 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 0, 2); 3194 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 1, -5); 3195 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 5, -5); 3196 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 9, -5); 3197 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 10, -5); 3198 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 11, -5); 3199 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 0, 2); 3200 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 1, -14); 3201 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 2, -14); 3202 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 20, 0, 2); 3203 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 20, 1, 2); 3204 test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 21, 0, 0); 3205 test("abcdefghij", 5, 4, "", 0, 0, 4); 3206 test("abcdefghij", 5, 4, "", 0, 1, 4); 3207 test("abcdefghij", 5, 4, "", 1, 0, 0); 3208 test("abcdefghij", 5, 4, "abcde", 0, 0, 4); 3209 test("abcdefghij", 5, 4, "abcde", 0, 1, 5); 3210 test("abcdefghij", 5, 4, "abcde", 0, 2, 5); 3211 test("abcdefghij", 5, 4, "abcde", 0, 4, 5); 3212 test("abcdefghij", 5, 4, "abcde", 0, 5, 5); 3213 test("abcdefghij", 5, 4, "abcde", 0, 6, 5); 3214 test("abcdefghij", 5, 4, "abcde", 1, 0, 4); 3215 test("abcdefghij", 5, 4, "abcde", 1, 1, 4); 3216 test("abcdefghij", 5, 4, "abcde", 1, 2, 4); 3217 test("abcdefghij", 5, 4, "abcde", 1, 3, 4); 3218 test("abcdefghij", 5, 4, "abcde", 1, 4, 4); 3219 test("abcdefghij", 5, 4, "abcde", 1, 5, 4); 3220 test("abcdefghij", 5, 4, "abcde", 2, 0, 4); 3221 test("abcdefghij", 5, 4, "abcde", 2, 1, 3); 3222 test("abcdefghij", 5, 4, "abcde", 2, 2, 3); 3223 test("abcdefghij", 5, 4, "abcde", 2, 3, 3); 3224 test("abcdefghij", 5, 4, "abcde", 2, 4, 3); 3225 test("abcdefghij", 5, 4, "abcde", 4, 0, 4); 3226 test("abcdefghij", 5, 4, "abcde", 4, 1, 1); 3227 test("abcdefghij", 5, 4, "abcde", 4, 2, 1); 3228 test("abcdefghij", 5, 4, "abcde", 5, 0, 4); 3229 test("abcdefghij", 5, 4, "abcde", 5, 1, 4); 3230 test("abcdefghij", 5, 4, "abcde", 6, 0, 0); 3231 test("abcdefghij", 5, 4, "abcdefghij", 0, 0, 4); 3232 test("abcdefghij", 5, 4, "abcdefghij", 0, 1, 5); 3233 test("abcdefghij", 5, 4, "abcdefghij", 0, 5, 5); 3234 test("abcdefghij", 5, 4, "abcdefghij", 0, 9, 5); 3235 test("abcdefghij", 5, 4, "abcdefghij", 0, 10, 5); 3236 test("abcdefghij", 5, 4, "abcdefghij", 0, 11, 5); 3237 test("abcdefghij", 5, 4, "abcdefghij", 1, 0, 4); 3238 test("abcdefghij", 5, 4, "abcdefghij", 1, 1, 4); 3239 test("abcdefghij", 5, 4, "abcdefghij", 1, 4, 4); 3240 test("abcdefghij", 5, 4, "abcdefghij", 1, 8, 4); 3241 test("abcdefghij", 5, 4, "abcdefghij", 1, 9, 4); 3242 test("abcdefghij", 5, 4, "abcdefghij", 1, 10, 4); 3243 test("abcdefghij", 5, 4, "abcdefghij", 5, 0, 4); 3244 test("abcdefghij", 5, 4, "abcdefghij", 5, 1, 3); 3245 test("abcdefghij", 5, 4, "abcdefghij", 5, 2, 2); 3246 test("abcdefghij", 5, 4, "abcdefghij", 5, 4, 0); 3247 test("abcdefghij", 5, 4, "abcdefghij", 5, 5, -1); 3248 test("abcdefghij", 5, 4, "abcdefghij", 5, 6, -1); 3249 test("abcdefghij", 5, 4, "abcdefghij", 9, 0, 4); 3250 test("abcdefghij", 5, 4, "abcdefghij", 9, 1, -4); 3251 test("abcdefghij", 5, 4, "abcdefghij", 9, 2, -4); 3252 test("abcdefghij", 5, 4, "abcdefghij", 10, 0, 4); 3253 test("abcdefghij", 5, 4, "abcdefghij", 10, 1, 4); 3254 test("abcdefghij", 5, 4, "abcdefghij", 11, 0, 0); 3255 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 0, 4); 3256 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 1, 5); 3257 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 10, 5); 3258 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 19, 5); 3259 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 20, 5); 3260 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 21, 5); 3261 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 0, 4); 3262 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 1, 4); 3263 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 9, 4); 3264 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 18, 4); 3265 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 19, 4); 3266 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 20, 4); 3267 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 0, 4); 3268 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 1, -5); 3269 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 5, -5); 3270 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 9, -5); 3271} 3272 3273void test31() 3274{ 3275 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 10, -5); 3276 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 11, -5); 3277 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 0, 4); 3278 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 1, -14); 3279 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 2, -14); 3280 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 20, 0, 4); 3281 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 20, 1, 4); 3282 test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 21, 0, 0); 3283 test("abcdefghij", 5, 5, "", 0, 0, 5); 3284 test("abcdefghij", 5, 5, "", 0, 1, 5); 3285 test("abcdefghij", 5, 5, "", 1, 0, 0); 3286 test("abcdefghij", 5, 5, "abcde", 0, 0, 5); 3287 test("abcdefghij", 5, 5, "abcde", 0, 1, 5); 3288 test("abcdefghij", 5, 5, "abcde", 0, 2, 5); 3289 test("abcdefghij", 5, 5, "abcde", 0, 4, 5); 3290 test("abcdefghij", 5, 5, "abcde", 0, 5, 5); 3291 test("abcdefghij", 5, 5, "abcde", 0, 6, 5); 3292 test("abcdefghij", 5, 5, "abcde", 1, 0, 5); 3293 test("abcdefghij", 5, 5, "abcde", 1, 1, 4); 3294 test("abcdefghij", 5, 5, "abcde", 1, 2, 4); 3295 test("abcdefghij", 5, 5, "abcde", 1, 3, 4); 3296 test("abcdefghij", 5, 5, "abcde", 1, 4, 4); 3297 test("abcdefghij", 5, 5, "abcde", 1, 5, 4); 3298 test("abcdefghij", 5, 5, "abcde", 2, 0, 5); 3299 test("abcdefghij", 5, 5, "abcde", 2, 1, 3); 3300 test("abcdefghij", 5, 5, "abcde", 2, 2, 3); 3301 test("abcdefghij", 5, 5, "abcde", 2, 3, 3); 3302 test("abcdefghij", 5, 5, "abcde", 2, 4, 3); 3303 test("abcdefghij", 5, 5, "abcde", 4, 0, 5); 3304 test("abcdefghij", 5, 5, "abcde", 4, 1, 1); 3305 test("abcdefghij", 5, 5, "abcde", 4, 2, 1); 3306 test("abcdefghij", 5, 5, "abcde", 5, 0, 5); 3307 test("abcdefghij", 5, 5, "abcde", 5, 1, 5); 3308 test("abcdefghij", 5, 5, "abcde", 6, 0, 0); 3309 test("abcdefghij", 5, 5, "abcdefghij", 0, 0, 5); 3310 test("abcdefghij", 5, 5, "abcdefghij", 0, 1, 5); 3311 test("abcdefghij", 5, 5, "abcdefghij", 0, 5, 5); 3312 test("abcdefghij", 5, 5, "abcdefghij", 0, 9, 5); 3313 test("abcdefghij", 5, 5, "abcdefghij", 0, 10, 5); 3314 test("abcdefghij", 5, 5, "abcdefghij", 0, 11, 5); 3315 test("abcdefghij", 5, 5, "abcdefghij", 1, 0, 5); 3316 test("abcdefghij", 5, 5, "abcdefghij", 1, 1, 4); 3317 test("abcdefghij", 5, 5, "abcdefghij", 1, 4, 4); 3318 test("abcdefghij", 5, 5, "abcdefghij", 1, 8, 4); 3319 test("abcdefghij", 5, 5, "abcdefghij", 1, 9, 4); 3320 test("abcdefghij", 5, 5, "abcdefghij", 1, 10, 4); 3321 test("abcdefghij", 5, 5, "abcdefghij", 5, 0, 5); 3322 test("abcdefghij", 5, 5, "abcdefghij", 5, 1, 4); 3323 test("abcdefghij", 5, 5, "abcdefghij", 5, 2, 3); 3324 test("abcdefghij", 5, 5, "abcdefghij", 5, 4, 1); 3325 test("abcdefghij", 5, 5, "abcdefghij", 5, 5, 0); 3326 test("abcdefghij", 5, 5, "abcdefghij", 5, 6, 0); 3327 test("abcdefghij", 5, 5, "abcdefghij", 9, 0, 5); 3328 test("abcdefghij", 5, 5, "abcdefghij", 9, 1, -4); 3329 test("abcdefghij", 5, 5, "abcdefghij", 9, 2, -4); 3330 test("abcdefghij", 5, 5, "abcdefghij", 10, 0, 5); 3331 test("abcdefghij", 5, 5, "abcdefghij", 10, 1, 5); 3332 test("abcdefghij", 5, 5, "abcdefghij", 11, 0, 0); 3333 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 0, 5); 3334 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 1, 5); 3335 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 10, 5); 3336 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 19, 5); 3337 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 20, 5); 3338 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 21, 5); 3339 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 0, 5); 3340 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 1, 4); 3341 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 9, 4); 3342 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 18, 4); 3343 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 19, 4); 3344 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 20, 4); 3345 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 0, 5); 3346 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 1, -5); 3347 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 5, -5); 3348 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 9, -5); 3349 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 10, -5); 3350 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 11, -5); 3351 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 0, 5); 3352 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 1, -14); 3353 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 2, -14); 3354 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 20, 0, 5); 3355 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 20, 1, 5); 3356 test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 21, 0, 0); 3357 test("abcdefghij", 5, 6, "", 0, 0, 5); 3358 test("abcdefghij", 5, 6, "", 0, 1, 5); 3359 test("abcdefghij", 5, 6, "", 1, 0, 0); 3360 test("abcdefghij", 5, 6, "abcde", 0, 0, 5); 3361 test("abcdefghij", 5, 6, "abcde", 0, 1, 5); 3362 test("abcdefghij", 5, 6, "abcde", 0, 2, 5); 3363 test("abcdefghij", 5, 6, "abcde", 0, 4, 5); 3364 test("abcdefghij", 5, 6, "abcde", 0, 5, 5); 3365 test("abcdefghij", 5, 6, "abcde", 0, 6, 5); 3366 test("abcdefghij", 5, 6, "abcde", 1, 0, 5); 3367 test("abcdefghij", 5, 6, "abcde", 1, 1, 4); 3368 test("abcdefghij", 5, 6, "abcde", 1, 2, 4); 3369 test("abcdefghij", 5, 6, "abcde", 1, 3, 4); 3370 test("abcdefghij", 5, 6, "abcde", 1, 4, 4); 3371 test("abcdefghij", 5, 6, "abcde", 1, 5, 4); 3372 test("abcdefghij", 5, 6, "abcde", 2, 0, 5); 3373 test("abcdefghij", 5, 6, "abcde", 2, 1, 3); 3374 test("abcdefghij", 5, 6, "abcde", 2, 2, 3); 3375} 3376 3377void test32() 3378{ 3379 test("abcdefghij", 5, 6, "abcde", 2, 3, 3); 3380 test("abcdefghij", 5, 6, "abcde", 2, 4, 3); 3381 test("abcdefghij", 5, 6, "abcde", 4, 0, 5); 3382 test("abcdefghij", 5, 6, "abcde", 4, 1, 1); 3383 test("abcdefghij", 5, 6, "abcde", 4, 2, 1); 3384 test("abcdefghij", 5, 6, "abcde", 5, 0, 5); 3385 test("abcdefghij", 5, 6, "abcde", 5, 1, 5); 3386 test("abcdefghij", 5, 6, "abcde", 6, 0, 0); 3387 test("abcdefghij", 5, 6, "abcdefghij", 0, 0, 5); 3388 test("abcdefghij", 5, 6, "abcdefghij", 0, 1, 5); 3389 test("abcdefghij", 5, 6, "abcdefghij", 0, 5, 5); 3390 test("abcdefghij", 5, 6, "abcdefghij", 0, 9, 5); 3391 test("abcdefghij", 5, 6, "abcdefghij", 0, 10, 5); 3392 test("abcdefghij", 5, 6, "abcdefghij", 0, 11, 5); 3393 test("abcdefghij", 5, 6, "abcdefghij", 1, 0, 5); 3394 test("abcdefghij", 5, 6, "abcdefghij", 1, 1, 4); 3395 test("abcdefghij", 5, 6, "abcdefghij", 1, 4, 4); 3396 test("abcdefghij", 5, 6, "abcdefghij", 1, 8, 4); 3397 test("abcdefghij", 5, 6, "abcdefghij", 1, 9, 4); 3398 test("abcdefghij", 5, 6, "abcdefghij", 1, 10, 4); 3399 test("abcdefghij", 5, 6, "abcdefghij", 5, 0, 5); 3400 test("abcdefghij", 5, 6, "abcdefghij", 5, 1, 4); 3401 test("abcdefghij", 5, 6, "abcdefghij", 5, 2, 3); 3402 test("abcdefghij", 5, 6, "abcdefghij", 5, 4, 1); 3403 test("abcdefghij", 5, 6, "abcdefghij", 5, 5, 0); 3404 test("abcdefghij", 5, 6, "abcdefghij", 5, 6, 0); 3405 test("abcdefghij", 5, 6, "abcdefghij", 9, 0, 5); 3406 test("abcdefghij", 5, 6, "abcdefghij", 9, 1, -4); 3407 test("abcdefghij", 5, 6, "abcdefghij", 9, 2, -4); 3408 test("abcdefghij", 5, 6, "abcdefghij", 10, 0, 5); 3409 test("abcdefghij", 5, 6, "abcdefghij", 10, 1, 5); 3410 test("abcdefghij", 5, 6, "abcdefghij", 11, 0, 0); 3411 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 0, 5); 3412 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 1, 5); 3413 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 10, 5); 3414 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 19, 5); 3415 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 20, 5); 3416 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 21, 5); 3417 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 0, 5); 3418 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 1, 4); 3419 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 9, 4); 3420 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 18, 4); 3421 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 19, 4); 3422 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 20, 4); 3423 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 0, 5); 3424 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 1, -5); 3425 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 5, -5); 3426 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 9, -5); 3427 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 10, -5); 3428 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 11, -5); 3429 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 0, 5); 3430 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 1, -14); 3431 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 2, -14); 3432 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 20, 0, 5); 3433 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 20, 1, 5); 3434 test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 21, 0, 0); 3435 test("abcdefghij", 9, 0, "", 0, 0, 0); 3436 test("abcdefghij", 9, 0, "", 0, 1, 0); 3437 test("abcdefghij", 9, 0, "", 1, 0, 0); 3438 test("abcdefghij", 9, 0, "abcde", 0, 0, 0); 3439 test("abcdefghij", 9, 0, "abcde", 0, 1, -1); 3440 test("abcdefghij", 9, 0, "abcde", 0, 2, -2); 3441 test("abcdefghij", 9, 0, "abcde", 0, 4, -4); 3442 test("abcdefghij", 9, 0, "abcde", 0, 5, -5); 3443 test("abcdefghij", 9, 0, "abcde", 0, 6, -5); 3444 test("abcdefghij", 9, 0, "abcde", 1, 0, 0); 3445 test("abcdefghij", 9, 0, "abcde", 1, 1, -1); 3446 test("abcdefghij", 9, 0, "abcde", 1, 2, -2); 3447 test("abcdefghij", 9, 0, "abcde", 1, 3, -3); 3448 test("abcdefghij", 9, 0, "abcde", 1, 4, -4); 3449 test("abcdefghij", 9, 0, "abcde", 1, 5, -4); 3450 test("abcdefghij", 9, 0, "abcde", 2, 0, 0); 3451 test("abcdefghij", 9, 0, "abcde", 2, 1, -1); 3452 test("abcdefghij", 9, 0, "abcde", 2, 2, -2); 3453 test("abcdefghij", 9, 0, "abcde", 2, 3, -3); 3454 test("abcdefghij", 9, 0, "abcde", 2, 4, -3); 3455 test("abcdefghij", 9, 0, "abcde", 4, 0, 0); 3456 test("abcdefghij", 9, 0, "abcde", 4, 1, -1); 3457 test("abcdefghij", 9, 0, "abcde", 4, 2, -1); 3458 test("abcdefghij", 9, 0, "abcde", 5, 0, 0); 3459 test("abcdefghij", 9, 0, "abcde", 5, 1, 0); 3460 test("abcdefghij", 9, 0, "abcde", 6, 0, 0); 3461 test("abcdefghij", 9, 0, "abcdefghij", 0, 0, 0); 3462 test("abcdefghij", 9, 0, "abcdefghij", 0, 1, -1); 3463 test("abcdefghij", 9, 0, "abcdefghij", 0, 5, -5); 3464 test("abcdefghij", 9, 0, "abcdefghij", 0, 9, -9); 3465 test("abcdefghij", 9, 0, "abcdefghij", 0, 10, -10); 3466 test("abcdefghij", 9, 0, "abcdefghij", 0, 11, -10); 3467 test("abcdefghij", 9, 0, "abcdefghij", 1, 0, 0); 3468 test("abcdefghij", 9, 0, "abcdefghij", 1, 1, -1); 3469 test("abcdefghij", 9, 0, "abcdefghij", 1, 4, -4); 3470 test("abcdefghij", 9, 0, "abcdefghij", 1, 8, -8); 3471 test("abcdefghij", 9, 0, "abcdefghij", 1, 9, -9); 3472 test("abcdefghij", 9, 0, "abcdefghij", 1, 10, -9); 3473 test("abcdefghij", 9, 0, "abcdefghij", 5, 0, 0); 3474 test("abcdefghij", 9, 0, "abcdefghij", 5, 1, -1); 3475 test("abcdefghij", 9, 0, "abcdefghij", 5, 2, -2); 3476 test("abcdefghij", 9, 0, "abcdefghij", 5, 4, -4); 3477 test("abcdefghij", 9, 0, "abcdefghij", 5, 5, -5); 3478 test("abcdefghij", 9, 0, "abcdefghij", 5, 6, -5); 3479} 3480 3481void test33() 3482{ 3483 test("abcdefghij", 9, 0, "abcdefghij", 9, 0, 0); 3484 test("abcdefghij", 9, 0, "abcdefghij", 9, 1, -1); 3485 test("abcdefghij", 9, 0, "abcdefghij", 9, 2, -1); 3486 test("abcdefghij", 9, 0, "abcdefghij", 10, 0, 0); 3487 test("abcdefghij", 9, 0, "abcdefghij", 10, 1, 0); 3488 test("abcdefghij", 9, 0, "abcdefghij", 11, 0, 0); 3489 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 0, 0); 3490 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 1, -1); 3491 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 10, -10); 3492 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 19, -19); 3493 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 20, -20); 3494 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 21, -20); 3495 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 0, 0); 3496 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 1, -1); 3497 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 9, -9); 3498 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 18, -18); 3499 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 19, -19); 3500 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 20, -19); 3501 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 0, 0); 3502 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 1, -1); 3503 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 5, -5); 3504 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 9, -9); 3505 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 10, -10); 3506 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 11, -10); 3507 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, 0, 0); 3508 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, 1, -1); 3509 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, 2, -1); 3510 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 20, 0, 0); 3511 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 20, 1, 0); 3512 test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 21, 0, 0); 3513 test("abcdefghij", 9, 1, "", 0, 0, 1); 3514 test("abcdefghij", 9, 1, "", 0, 1, 1); 3515 test("abcdefghij", 9, 1, "", 1, 0, 0); 3516 test("abcdefghij", 9, 1, "abcde", 0, 0, 1); 3517 test("abcdefghij", 9, 1, "abcde", 0, 1, 9); 3518 test("abcdefghij", 9, 1, "abcde", 0, 2, 9); 3519 test("abcdefghij", 9, 1, "abcde", 0, 4, 9); 3520 test("abcdefghij", 9, 1, "abcde", 0, 5, 9); 3521 test("abcdefghij", 9, 1, "abcde", 0, 6, 9); 3522 test("abcdefghij", 9, 1, "abcde", 1, 0, 1); 3523 test("abcdefghij", 9, 1, "abcde", 1, 1, 8); 3524 test("abcdefghij", 9, 1, "abcde", 1, 2, 8); 3525 test("abcdefghij", 9, 1, "abcde", 1, 3, 8); 3526 test("abcdefghij", 9, 1, "abcde", 1, 4, 8); 3527 test("abcdefghij", 9, 1, "abcde", 1, 5, 8); 3528 test("abcdefghij", 9, 1, "abcde", 2, 0, 1); 3529 test("abcdefghij", 9, 1, "abcde", 2, 1, 7); 3530 test("abcdefghij", 9, 1, "abcde", 2, 2, 7); 3531 test("abcdefghij", 9, 1, "abcde", 2, 3, 7); 3532 test("abcdefghij", 9, 1, "abcde", 2, 4, 7); 3533 test("abcdefghij", 9, 1, "abcde", 4, 0, 1); 3534 test("abcdefghij", 9, 1, "abcde", 4, 1, 5); 3535 test("abcdefghij", 9, 1, "abcde", 4, 2, 5); 3536 test("abcdefghij", 9, 1, "abcde", 5, 0, 1); 3537 test("abcdefghij", 9, 1, "abcde", 5, 1, 1); 3538 test("abcdefghij", 9, 1, "abcde", 6, 0, 0); 3539 test("abcdefghij", 9, 1, "abcdefghij", 0, 0, 1); 3540 test("abcdefghij", 9, 1, "abcdefghij", 0, 1, 9); 3541 test("abcdefghij", 9, 1, "abcdefghij", 0, 5, 9); 3542 test("abcdefghij", 9, 1, "abcdefghij", 0, 9, 9); 3543 test("abcdefghij", 9, 1, "abcdefghij", 0, 10, 9); 3544 test("abcdefghij", 9, 1, "abcdefghij", 0, 11, 9); 3545 test("abcdefghij", 9, 1, "abcdefghij", 1, 0, 1); 3546 test("abcdefghij", 9, 1, "abcdefghij", 1, 1, 8); 3547 test("abcdefghij", 9, 1, "abcdefghij", 1, 4, 8); 3548 test("abcdefghij", 9, 1, "abcdefghij", 1, 8, 8); 3549 test("abcdefghij", 9, 1, "abcdefghij", 1, 9, 8); 3550 test("abcdefghij", 9, 1, "abcdefghij", 1, 10, 8); 3551 test("abcdefghij", 9, 1, "abcdefghij", 5, 0, 1); 3552 test("abcdefghij", 9, 1, "abcdefghij", 5, 1, 4); 3553 test("abcdefghij", 9, 1, "abcdefghij", 5, 2, 4); 3554 test("abcdefghij", 9, 1, "abcdefghij", 5, 4, 4); 3555 test("abcdefghij", 9, 1, "abcdefghij", 5, 5, 4); 3556 test("abcdefghij", 9, 1, "abcdefghij", 5, 6, 4); 3557 test("abcdefghij", 9, 1, "abcdefghij", 9, 0, 1); 3558 test("abcdefghij", 9, 1, "abcdefghij", 9, 1, 0); 3559 test("abcdefghij", 9, 1, "abcdefghij", 9, 2, 0); 3560 test("abcdefghij", 9, 1, "abcdefghij", 10, 0, 1); 3561 test("abcdefghij", 9, 1, "abcdefghij", 10, 1, 1); 3562 test("abcdefghij", 9, 1, "abcdefghij", 11, 0, 0); 3563 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 0, 1); 3564 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 1, 9); 3565 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 10, 9); 3566 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 19, 9); 3567 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 20, 9); 3568 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 21, 9); 3569 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 0, 1); 3570 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 1, 8); 3571 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 9, 8); 3572 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 18, 8); 3573 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 19, 8); 3574 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 20, 8); 3575 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 0, 1); 3576 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 1, -1); 3577 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 5, -1); 3578 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 9, -1); 3579 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 10, -1); 3580 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 11, -1); 3581 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 0, 1); 3582 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 1, -10); 3583} 3584 3585void test34() 3586{ 3587 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 2, -10); 3588 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 20, 0, 1); 3589 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 20, 1, 1); 3590 test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 21, 0, 0); 3591 test("abcdefghij", 9, 2, "", 0, 0, 1); 3592 test("abcdefghij", 9, 2, "", 0, 1, 1); 3593 test("abcdefghij", 9, 2, "", 1, 0, 0); 3594 test("abcdefghij", 9, 2, "abcde", 0, 0, 1); 3595 test("abcdefghij", 9, 2, "abcde", 0, 1, 9); 3596 test("abcdefghij", 9, 2, "abcde", 0, 2, 9); 3597 test("abcdefghij", 9, 2, "abcde", 0, 4, 9); 3598 test("abcdefghij", 9, 2, "abcde", 0, 5, 9); 3599 test("abcdefghij", 9, 2, "abcde", 0, 6, 9); 3600 test("abcdefghij", 9, 2, "abcde", 1, 0, 1); 3601 test("abcdefghij", 9, 2, "abcde", 1, 1, 8); 3602 test("abcdefghij", 9, 2, "abcde", 1, 2, 8); 3603 test("abcdefghij", 9, 2, "abcde", 1, 3, 8); 3604 test("abcdefghij", 9, 2, "abcde", 1, 4, 8); 3605 test("abcdefghij", 9, 2, "abcde", 1, 5, 8); 3606 test("abcdefghij", 9, 2, "abcde", 2, 0, 1); 3607 test("abcdefghij", 9, 2, "abcde", 2, 1, 7); 3608 test("abcdefghij", 9, 2, "abcde", 2, 2, 7); 3609 test("abcdefghij", 9, 2, "abcde", 2, 3, 7); 3610 test("abcdefghij", 9, 2, "abcde", 2, 4, 7); 3611 test("abcdefghij", 9, 2, "abcde", 4, 0, 1); 3612 test("abcdefghij", 9, 2, "abcde", 4, 1, 5); 3613 test("abcdefghij", 9, 2, "abcde", 4, 2, 5); 3614 test("abcdefghij", 9, 2, "abcde", 5, 0, 1); 3615 test("abcdefghij", 9, 2, "abcde", 5, 1, 1); 3616 test("abcdefghij", 9, 2, "abcde", 6, 0, 0); 3617 test("abcdefghij", 9, 2, "abcdefghij", 0, 0, 1); 3618 test("abcdefghij", 9, 2, "abcdefghij", 0, 1, 9); 3619 test("abcdefghij", 9, 2, "abcdefghij", 0, 5, 9); 3620 test("abcdefghij", 9, 2, "abcdefghij", 0, 9, 9); 3621 test("abcdefghij", 9, 2, "abcdefghij", 0, 10, 9); 3622 test("abcdefghij", 9, 2, "abcdefghij", 0, 11, 9); 3623 test("abcdefghij", 9, 2, "abcdefghij", 1, 0, 1); 3624 test("abcdefghij", 9, 2, "abcdefghij", 1, 1, 8); 3625 test("abcdefghij", 9, 2, "abcdefghij", 1, 4, 8); 3626 test("abcdefghij", 9, 2, "abcdefghij", 1, 8, 8); 3627 test("abcdefghij", 9, 2, "abcdefghij", 1, 9, 8); 3628 test("abcdefghij", 9, 2, "abcdefghij", 1, 10, 8); 3629 test("abcdefghij", 9, 2, "abcdefghij", 5, 0, 1); 3630 test("abcdefghij", 9, 2, "abcdefghij", 5, 1, 4); 3631 test("abcdefghij", 9, 2, "abcdefghij", 5, 2, 4); 3632 test("abcdefghij", 9, 2, "abcdefghij", 5, 4, 4); 3633 test("abcdefghij", 9, 2, "abcdefghij", 5, 5, 4); 3634 test("abcdefghij", 9, 2, "abcdefghij", 5, 6, 4); 3635 test("abcdefghij", 9, 2, "abcdefghij", 9, 0, 1); 3636 test("abcdefghij", 9, 2, "abcdefghij", 9, 1, 0); 3637 test("abcdefghij", 9, 2, "abcdefghij", 9, 2, 0); 3638 test("abcdefghij", 9, 2, "abcdefghij", 10, 0, 1); 3639 test("abcdefghij", 9, 2, "abcdefghij", 10, 1, 1); 3640 test("abcdefghij", 9, 2, "abcdefghij", 11, 0, 0); 3641 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 0, 1); 3642 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 1, 9); 3643 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 10, 9); 3644 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 19, 9); 3645 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 20, 9); 3646 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 21, 9); 3647 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 0, 1); 3648 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 1, 8); 3649 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 9, 8); 3650 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 18, 8); 3651 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 19, 8); 3652 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 20, 8); 3653 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 0, 1); 3654 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 1, -1); 3655 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 5, -1); 3656 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 9, -1); 3657 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 10, -1); 3658 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 11, -1); 3659 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 0, 1); 3660 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 1, -10); 3661 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 2, -10); 3662 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 20, 0, 1); 3663 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 20, 1, 1); 3664 test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 21, 0, 0); 3665 test("abcdefghij", 10, 0, "", 0, 0, 0); 3666 test("abcdefghij", 10, 0, "", 0, 1, 0); 3667 test("abcdefghij", 10, 0, "", 1, 0, 0); 3668 test("abcdefghij", 10, 0, "abcde", 0, 0, 0); 3669 test("abcdefghij", 10, 0, "abcde", 0, 1, -1); 3670 test("abcdefghij", 10, 0, "abcde", 0, 2, -2); 3671 test("abcdefghij", 10, 0, "abcde", 0, 4, -4); 3672 test("abcdefghij", 10, 0, "abcde", 0, 5, -5); 3673 test("abcdefghij", 10, 0, "abcde", 0, 6, -5); 3674 test("abcdefghij", 10, 0, "abcde", 1, 0, 0); 3675 test("abcdefghij", 10, 0, "abcde", 1, 1, -1); 3676 test("abcdefghij", 10, 0, "abcde", 1, 2, -2); 3677 test("abcdefghij", 10, 0, "abcde", 1, 3, -3); 3678 test("abcdefghij", 10, 0, "abcde", 1, 4, -4); 3679 test("abcdefghij", 10, 0, "abcde", 1, 5, -4); 3680 test("abcdefghij", 10, 0, "abcde", 2, 0, 0); 3681 test("abcdefghij", 10, 0, "abcde", 2, 1, -1); 3682 test("abcdefghij", 10, 0, "abcde", 2, 2, -2); 3683 test("abcdefghij", 10, 0, "abcde", 2, 3, -3); 3684 test("abcdefghij", 10, 0, "abcde", 2, 4, -3); 3685 test("abcdefghij", 10, 0, "abcde", 4, 0, 0); 3686 test("abcdefghij", 10, 0, "abcde", 4, 1, -1); 3687} 3688 3689void test35() 3690{ 3691 test("abcdefghij", 10, 0, "abcde", 4, 2, -1); 3692 test("abcdefghij", 10, 0, "abcde", 5, 0, 0); 3693 test("abcdefghij", 10, 0, "abcde", 5, 1, 0); 3694 test("abcdefghij", 10, 0, "abcde", 6, 0, 0); 3695 test("abcdefghij", 10, 0, "abcdefghij", 0, 0, 0); 3696 test("abcdefghij", 10, 0, "abcdefghij", 0, 1, -1); 3697 test("abcdefghij", 10, 0, "abcdefghij", 0, 5, -5); 3698 test("abcdefghij", 10, 0, "abcdefghij", 0, 9, -9); 3699 test("abcdefghij", 10, 0, "abcdefghij", 0, 10, -10); 3700 test("abcdefghij", 10, 0, "abcdefghij", 0, 11, -10); 3701 test("abcdefghij", 10, 0, "abcdefghij", 1, 0, 0); 3702 test("abcdefghij", 10, 0, "abcdefghij", 1, 1, -1); 3703 test("abcdefghij", 10, 0, "abcdefghij", 1, 4, -4); 3704 test("abcdefghij", 10, 0, "abcdefghij", 1, 8, -8); 3705 test("abcdefghij", 10, 0, "abcdefghij", 1, 9, -9); 3706 test("abcdefghij", 10, 0, "abcdefghij", 1, 10, -9); 3707 test("abcdefghij", 10, 0, "abcdefghij", 5, 0, 0); 3708 test("abcdefghij", 10, 0, "abcdefghij", 5, 1, -1); 3709 test("abcdefghij", 10, 0, "abcdefghij", 5, 2, -2); 3710 test("abcdefghij", 10, 0, "abcdefghij", 5, 4, -4); 3711 test("abcdefghij", 10, 0, "abcdefghij", 5, 5, -5); 3712 test("abcdefghij", 10, 0, "abcdefghij", 5, 6, -5); 3713 test("abcdefghij", 10, 0, "abcdefghij", 9, 0, 0); 3714 test("abcdefghij", 10, 0, "abcdefghij", 9, 1, -1); 3715 test("abcdefghij", 10, 0, "abcdefghij", 9, 2, -1); 3716 test("abcdefghij", 10, 0, "abcdefghij", 10, 0, 0); 3717 test("abcdefghij", 10, 0, "abcdefghij", 10, 1, 0); 3718 test("abcdefghij", 10, 0, "abcdefghij", 11, 0, 0); 3719 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 0, 0); 3720 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 1, -1); 3721 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 10, -10); 3722 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 19, -19); 3723 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 20, -20); 3724 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 21, -20); 3725 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 0, 0); 3726 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 1, -1); 3727 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 9, -9); 3728 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 18, -18); 3729 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 19, -19); 3730 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 20, -19); 3731 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 0, 0); 3732 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 1, -1); 3733 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 5, -5); 3734 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 9, -9); 3735 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 10, -10); 3736 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 11, -10); 3737 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, 0, 0); 3738 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, 1, -1); 3739 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, 2, -1); 3740 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 20, 0, 0); 3741 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 20, 1, 0); 3742 test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 21, 0, 0); 3743 test("abcdefghij", 10, 1, "", 0, 0, 0); 3744 test("abcdefghij", 10, 1, "", 0, 1, 0); 3745 test("abcdefghij", 10, 1, "", 1, 0, 0); 3746 test("abcdefghij", 10, 1, "abcde", 0, 0, 0); 3747 test("abcdefghij", 10, 1, "abcde", 0, 1, -1); 3748 test("abcdefghij", 10, 1, "abcde", 0, 2, -2); 3749 test("abcdefghij", 10, 1, "abcde", 0, 4, -4); 3750 test("abcdefghij", 10, 1, "abcde", 0, 5, -5); 3751 test("abcdefghij", 10, 1, "abcde", 0, 6, -5); 3752 test("abcdefghij", 10, 1, "abcde", 1, 0, 0); 3753 test("abcdefghij", 10, 1, "abcde", 1, 1, -1); 3754 test("abcdefghij", 10, 1, "abcde", 1, 2, -2); 3755 test("abcdefghij", 10, 1, "abcde", 1, 3, -3); 3756 test("abcdefghij", 10, 1, "abcde", 1, 4, -4); 3757 test("abcdefghij", 10, 1, "abcde", 1, 5, -4); 3758 test("abcdefghij", 10, 1, "abcde", 2, 0, 0); 3759 test("abcdefghij", 10, 1, "abcde", 2, 1, -1); 3760 test("abcdefghij", 10, 1, "abcde", 2, 2, -2); 3761 test("abcdefghij", 10, 1, "abcde", 2, 3, -3); 3762 test("abcdefghij", 10, 1, "abcde", 2, 4, -3); 3763 test("abcdefghij", 10, 1, "abcde", 4, 0, 0); 3764 test("abcdefghij", 10, 1, "abcde", 4, 1, -1); 3765 test("abcdefghij", 10, 1, "abcde", 4, 2, -1); 3766 test("abcdefghij", 10, 1, "abcde", 5, 0, 0); 3767 test("abcdefghij", 10, 1, "abcde", 5, 1, 0); 3768 test("abcdefghij", 10, 1, "abcde", 6, 0, 0); 3769 test("abcdefghij", 10, 1, "abcdefghij", 0, 0, 0); 3770 test("abcdefghij", 10, 1, "abcdefghij", 0, 1, -1); 3771 test("abcdefghij", 10, 1, "abcdefghij", 0, 5, -5); 3772 test("abcdefghij", 10, 1, "abcdefghij", 0, 9, -9); 3773 test("abcdefghij", 10, 1, "abcdefghij", 0, 10, -10); 3774 test("abcdefghij", 10, 1, "abcdefghij", 0, 11, -10); 3775 test("abcdefghij", 10, 1, "abcdefghij", 1, 0, 0); 3776 test("abcdefghij", 10, 1, "abcdefghij", 1, 1, -1); 3777 test("abcdefghij", 10, 1, "abcdefghij", 1, 4, -4); 3778 test("abcdefghij", 10, 1, "abcdefghij", 1, 8, -8); 3779 test("abcdefghij", 10, 1, "abcdefghij", 1, 9, -9); 3780 test("abcdefghij", 10, 1, "abcdefghij", 1, 10, -9); 3781 test("abcdefghij", 10, 1, "abcdefghij", 5, 0, 0); 3782 test("abcdefghij", 10, 1, "abcdefghij", 5, 1, -1); 3783 test("abcdefghij", 10, 1, "abcdefghij", 5, 2, -2); 3784 test("abcdefghij", 10, 1, "abcdefghij", 5, 4, -4); 3785 test("abcdefghij", 10, 1, "abcdefghij", 5, 5, -5); 3786 test("abcdefghij", 10, 1, "abcdefghij", 5, 6, -5); 3787 test("abcdefghij", 10, 1, "abcdefghij", 9, 0, 0); 3788 test("abcdefghij", 10, 1, "abcdefghij", 9, 1, -1); 3789 test("abcdefghij", 10, 1, "abcdefghij", 9, 2, -1); 3790 test("abcdefghij", 10, 1, "abcdefghij", 10, 0, 0); 3791} 3792 3793void test36() 3794{ 3795 test("abcdefghij", 10, 1, "abcdefghij", 10, 1, 0); 3796 test("abcdefghij", 10, 1, "abcdefghij", 11, 0, 0); 3797 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 0, 0); 3798 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 1, -1); 3799 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 10, -10); 3800 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 19, -19); 3801 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 20, -20); 3802 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 21, -20); 3803 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 0, 0); 3804 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 1, -1); 3805 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 9, -9); 3806 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 18, -18); 3807 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 19, -19); 3808 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 20, -19); 3809 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 0, 0); 3810 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 1, -1); 3811 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 5, -5); 3812 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 9, -9); 3813 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 10, -10); 3814 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 11, -10); 3815 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, 0, 0); 3816 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, 1, -1); 3817 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, 2, -1); 3818 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 20, 0, 0); 3819 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 20, 1, 0); 3820 test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 21, 0, 0); 3821 test("abcdefghij", 11, 0, "", 0, 0, 0); 3822 test("abcdefghij", 11, 0, "", 0, 1, 0); 3823 test("abcdefghij", 11, 0, "", 1, 0, 0); 3824 test("abcdefghij", 11, 0, "abcde", 0, 0, 0); 3825 test("abcdefghij", 11, 0, "abcde", 0, 1, 0); 3826 test("abcdefghij", 11, 0, "abcde", 0, 2, 0); 3827 test("abcdefghij", 11, 0, "abcde", 0, 4, 0); 3828 test("abcdefghij", 11, 0, "abcde", 0, 5, 0); 3829 test("abcdefghij", 11, 0, "abcde", 0, 6, 0); 3830 test("abcdefghij", 11, 0, "abcde", 1, 0, 0); 3831 test("abcdefghij", 11, 0, "abcde", 1, 1, 0); 3832 test("abcdefghij", 11, 0, "abcde", 1, 2, 0); 3833 test("abcdefghij", 11, 0, "abcde", 1, 3, 0); 3834 test("abcdefghij", 11, 0, "abcde", 1, 4, 0); 3835 test("abcdefghij", 11, 0, "abcde", 1, 5, 0); 3836 test("abcdefghij", 11, 0, "abcde", 2, 0, 0); 3837 test("abcdefghij", 11, 0, "abcde", 2, 1, 0); 3838 test("abcdefghij", 11, 0, "abcde", 2, 2, 0); 3839 test("abcdefghij", 11, 0, "abcde", 2, 3, 0); 3840 test("abcdefghij", 11, 0, "abcde", 2, 4, 0); 3841 test("abcdefghij", 11, 0, "abcde", 4, 0, 0); 3842 test("abcdefghij", 11, 0, "abcde", 4, 1, 0); 3843 test("abcdefghij", 11, 0, "abcde", 4, 2, 0); 3844 test("abcdefghij", 11, 0, "abcde", 5, 0, 0); 3845 test("abcdefghij", 11, 0, "abcde", 5, 1, 0); 3846 test("abcdefghij", 11, 0, "abcde", 6, 0, 0); 3847 test("abcdefghij", 11, 0, "abcdefghij", 0, 0, 0); 3848 test("abcdefghij", 11, 0, "abcdefghij", 0, 1, 0); 3849 test("abcdefghij", 11, 0, "abcdefghij", 0, 5, 0); 3850 test("abcdefghij", 11, 0, "abcdefghij", 0, 9, 0); 3851 test("abcdefghij", 11, 0, "abcdefghij", 0, 10, 0); 3852 test("abcdefghij", 11, 0, "abcdefghij", 0, 11, 0); 3853 test("abcdefghij", 11, 0, "abcdefghij", 1, 0, 0); 3854 test("abcdefghij", 11, 0, "abcdefghij", 1, 1, 0); 3855 test("abcdefghij", 11, 0, "abcdefghij", 1, 4, 0); 3856 test("abcdefghij", 11, 0, "abcdefghij", 1, 8, 0); 3857 test("abcdefghij", 11, 0, "abcdefghij", 1, 9, 0); 3858 test("abcdefghij", 11, 0, "abcdefghij", 1, 10, 0); 3859 test("abcdefghij", 11, 0, "abcdefghij", 5, 0, 0); 3860 test("abcdefghij", 11, 0, "abcdefghij", 5, 1, 0); 3861 test("abcdefghij", 11, 0, "abcdefghij", 5, 2, 0); 3862 test("abcdefghij", 11, 0, "abcdefghij", 5, 4, 0); 3863 test("abcdefghij", 11, 0, "abcdefghij", 5, 5, 0); 3864 test("abcdefghij", 11, 0, "abcdefghij", 5, 6, 0); 3865 test("abcdefghij", 11, 0, "abcdefghij", 9, 0, 0); 3866 test("abcdefghij", 11, 0, "abcdefghij", 9, 1, 0); 3867 test("abcdefghij", 11, 0, "abcdefghij", 9, 2, 0); 3868 test("abcdefghij", 11, 0, "abcdefghij", 10, 0, 0); 3869 test("abcdefghij", 11, 0, "abcdefghij", 10, 1, 0); 3870 test("abcdefghij", 11, 0, "abcdefghij", 11, 0, 0); 3871 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 0, 0); 3872 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 1, 0); 3873 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 10, 0); 3874 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 19, 0); 3875 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 20, 0); 3876 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 21, 0); 3877 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 0, 0); 3878 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 1, 0); 3879 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 9, 0); 3880 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 18, 0); 3881 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 19, 0); 3882 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 20, 0); 3883 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 0, 0); 3884 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 1, 0); 3885 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 5, 0); 3886 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 9, 0); 3887 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 10, 0); 3888 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 11, 0); 3889 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 0, 0); 3890 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 1, 0); 3891 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 2, 0); 3892 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 20, 0, 0); 3893 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 20, 1, 0); 3894 test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 21, 0, 0); 3895} 3896 3897void test37() 3898{ 3899 test("abcdefghijklmnopqrst", 0, 0, "", 0, 0, 0); 3900 test("abcdefghijklmnopqrst", 0, 0, "", 0, 1, 0); 3901 test("abcdefghijklmnopqrst", 0, 0, "", 1, 0, 0); 3902 test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 0, 0); 3903 test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 1, -1); 3904 test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 2, -2); 3905 test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 4, -4); 3906 test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 5, -5); 3907 test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 6, -5); 3908 test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 0, 0); 3909 test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 1, -1); 3910 test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 2, -2); 3911 test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 3, -3); 3912 test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 4, -4); 3913 test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 5, -4); 3914 test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 0, 0); 3915 test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 1, -1); 3916 test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 2, -2); 3917 test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 3, -3); 3918 test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 4, -3); 3919 test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, 0, 0); 3920 test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, 1, -1); 3921 test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, 2, -1); 3922 test("abcdefghijklmnopqrst", 0, 0, "abcde", 5, 0, 0); 3923 test("abcdefghijklmnopqrst", 0, 0, "abcde", 5, 1, 0); 3924 test("abcdefghijklmnopqrst", 0, 0, "abcde", 6, 0, 0); 3925 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 0, 0); 3926 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 1, -1); 3927 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 5, -5); 3928 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 9, -9); 3929 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 10, -10); 3930 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 11, -10); 3931 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 0, 0); 3932 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 1, -1); 3933 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 4, -4); 3934 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 8, -8); 3935 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 9, -9); 3936 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 10, -9); 3937 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 0, 0); 3938 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 1, -1); 3939 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 2, -2); 3940 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 4, -4); 3941 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 5, -5); 3942 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 6, -5); 3943 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, 0, 0); 3944 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, 1, -1); 3945 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, 2, -1); 3946 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 10, 0, 0); 3947 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 10, 1, 0); 3948 test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 11, 0, 0); 3949 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0); 3950 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1); 3951 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10); 3952 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19); 3953 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20); 3954 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20); 3955 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0); 3956 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1); 3957 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9); 3958 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18); 3959 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19); 3960 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19); 3961 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0); 3962 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1); 3963 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5); 3964 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9); 3965 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10); 3966 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10); 3967 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0); 3968 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1); 3969 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1); 3970 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0); 3971 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0); 3972 test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0); 3973 test("abcdefghijklmnopqrst", 0, 1, "", 0, 0, 1); 3974 test("abcdefghijklmnopqrst", 0, 1, "", 0, 1, 1); 3975 test("abcdefghijklmnopqrst", 0, 1, "", 1, 0, 0); 3976 test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 0, 1); 3977 test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 1, 0); 3978 test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 2, -1); 3979 test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 4, -3); 3980 test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 5, -4); 3981 test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 6, -4); 3982 test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 0, 1); 3983 test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 1, -1); 3984 test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 2, -1); 3985 test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 3, -1); 3986 test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 4, -1); 3987 test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 5, -1); 3988 test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 0, 1); 3989 test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 1, -2); 3990 test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 2, -2); 3991 test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 3, -2); 3992 test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 4, -2); 3993 test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, 0, 1); 3994 test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, 1, -4); 3995 test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, 2, -4); 3996 test("abcdefghijklmnopqrst", 0, 1, "abcde", 5, 0, 1); 3997 test("abcdefghijklmnopqrst", 0, 1, "abcde", 5, 1, 1); 3998 test("abcdefghijklmnopqrst", 0, 1, "abcde", 6, 0, 0); 3999} 4000 4001void test38() 4002{ 4003 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 0, 1); 4004 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 1, 0); 4005 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 5, -4); 4006 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 9, -8); 4007 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 10, -9); 4008 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 11, -9); 4009 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 0, 1); 4010 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 1, -1); 4011 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 4, -1); 4012 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 8, -1); 4013 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 9, -1); 4014 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 10, -1); 4015 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 0, 1); 4016 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 1, -5); 4017 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 2, -5); 4018 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 4, -5); 4019 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 5, -5); 4020 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 6, -5); 4021 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, 0, 1); 4022 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, 1, -9); 4023 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, 2, -9); 4024 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 10, 0, 1); 4025 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 10, 1, 1); 4026 test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 11, 0, 0); 4027 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 0, 1); 4028 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 1, 0); 4029 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 10, -9); 4030 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 19, -18); 4031 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 20, -19); 4032 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 21, -19); 4033 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 0, 1); 4034 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1); 4035 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 9, -1); 4036 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 18, -1); 4037 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 19, -1); 4038 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 20, -1); 4039 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 0, 1); 4040 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 1, -10); 4041 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 5, -10); 4042 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 9, -10); 4043 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10); 4044 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10); 4045 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, 0, 1); 4046 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, 1, -19); 4047 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, 2, -19); 4048 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 20, 0, 1); 4049 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 20, 1, 1); 4050 test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0); 4051 test("abcdefghijklmnopqrst", 0, 10, "", 0, 0, 10); 4052 test("abcdefghijklmnopqrst", 0, 10, "", 0, 1, 10); 4053 test("abcdefghijklmnopqrst", 0, 10, "", 1, 0, 0); 4054 test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 0, 10); 4055 test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 1, 9); 4056 test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 2, 8); 4057 test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 4, 6); 4058 test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 5, 5); 4059 test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 6, 5); 4060 test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 0, 10); 4061 test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 1, -1); 4062 test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 2, -1); 4063 test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 3, -1); 4064 test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 4, -1); 4065 test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 5, -1); 4066 test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 0, 10); 4067 test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 1, -2); 4068 test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 2, -2); 4069 test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 3, -2); 4070 test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 4, -2); 4071 test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 0, 10); 4072 test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 1, -4); 4073 test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 2, -4); 4074 test("abcdefghijklmnopqrst", 0, 10, "abcde", 5, 0, 10); 4075 test("abcdefghijklmnopqrst", 0, 10, "abcde", 5, 1, 10); 4076 test("abcdefghijklmnopqrst", 0, 10, "abcde", 6, 0, 0); 4077 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 0, 10); 4078 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 1, 9); 4079 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 5, 5); 4080 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 9, 1); 4081 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 10, 0); 4082 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 11, 0); 4083 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 0, 10); 4084 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 1, -1); 4085 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 4, -1); 4086 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 8, -1); 4087 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 9, -1); 4088 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 10, -1); 4089 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 0, 10); 4090 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 1, -5); 4091 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 2, -5); 4092 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 4, -5); 4093 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 5, -5); 4094 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 6, -5); 4095 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 0, 10); 4096 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 1, -9); 4097 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 2, -9); 4098 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 10, 0, 10); 4099 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 10, 1, 10); 4100 test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 11, 0, 0); 4101 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 0, 10); 4102 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 1, 9); 4103} 4104 4105void test39() 4106{ 4107 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 10, 0); 4108 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 19, -9); 4109 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 20, -10); 4110 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 21, -10); 4111 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 0, 10); 4112 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 1, -1); 4113 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 9, -1); 4114 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 18, -1); 4115 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 19, -1); 4116 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 20, -1); 4117 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 0, 10); 4118 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 1, -10); 4119 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 5, -10); 4120 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 9, -10); 4121 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 10, -10); 4122 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 11, -10); 4123 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, 0, 10); 4124 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, 1, -19); 4125 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, 2, -19); 4126 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 20, 0, 10); 4127 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 20, 1, 10); 4128 test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 21, 0, 0); 4129 test("abcdefghijklmnopqrst", 0, 19, "", 0, 0, 19); 4130 test("abcdefghijklmnopqrst", 0, 19, "", 0, 1, 19); 4131 test("abcdefghijklmnopqrst", 0, 19, "", 1, 0, 0); 4132 test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 0, 19); 4133 test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 1, 18); 4134 test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 2, 17); 4135 test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 4, 15); 4136 test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 5, 14); 4137 test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 6, 14); 4138 test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 0, 19); 4139 test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 1, -1); 4140 test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 2, -1); 4141 test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 3, -1); 4142 test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 4, -1); 4143 test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 5, -1); 4144 test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 0, 19); 4145 test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 1, -2); 4146 test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 2, -2); 4147 test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 3, -2); 4148 test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 4, -2); 4149 test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 0, 19); 4150 test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 1, -4); 4151 test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 2, -4); 4152 test("abcdefghijklmnopqrst", 0, 19, "abcde", 5, 0, 19); 4153 test("abcdefghijklmnopqrst", 0, 19, "abcde", 5, 1, 19); 4154 test("abcdefghijklmnopqrst", 0, 19, "abcde", 6, 0, 0); 4155 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 0, 19); 4156 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 1, 18); 4157 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 5, 14); 4158 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 9, 10); 4159 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 10, 9); 4160 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 11, 9); 4161 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 0, 19); 4162 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 1, -1); 4163 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 4, -1); 4164 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 8, -1); 4165 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 9, -1); 4166 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 10, -1); 4167 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 0, 19); 4168 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 1, -5); 4169 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 2, -5); 4170 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 4, -5); 4171 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 5, -5); 4172 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 6, -5); 4173 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 0, 19); 4174 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 1, -9); 4175 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 2, -9); 4176 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 10, 0, 19); 4177 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 10, 1, 19); 4178 test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 11, 0, 0); 4179 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 0, 19); 4180 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 1, 18); 4181 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 10, 9); 4182 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 19, 0); 4183 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 20, -1); 4184 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 21, -1); 4185 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 0, 19); 4186 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 1, -1); 4187 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 9, -1); 4188 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 18, -1); 4189 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 19, -1); 4190 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 20, -1); 4191 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 0, 19); 4192 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 1, -10); 4193 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 5, -10); 4194 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 9, -10); 4195 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 10, -10); 4196 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 11, -10); 4197 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 0, 19); 4198 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 1, -19); 4199 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 2, -19); 4200 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 20, 0, 19); 4201 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 20, 1, 19); 4202 test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 21, 0, 0); 4203 test("abcdefghijklmnopqrst", 0, 20, "", 0, 0, 20); 4204 test("abcdefghijklmnopqrst", 0, 20, "", 0, 1, 20); 4205 test("abcdefghijklmnopqrst", 0, 20, "", 1, 0, 0); 4206 test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 0, 20); 4207} 4208 4209void test40() 4210{ 4211 test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 1, 19); 4212 test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 2, 18); 4213 test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 4, 16); 4214 test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 5, 15); 4215 test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 6, 15); 4216 test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 0, 20); 4217 test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 1, -1); 4218 test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 2, -1); 4219 test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 3, -1); 4220 test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 4, -1); 4221 test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 5, -1); 4222 test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 0, 20); 4223 test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 1, -2); 4224 test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 2, -2); 4225 test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 3, -2); 4226 test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 4, -2); 4227 test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 0, 20); 4228 test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 1, -4); 4229 test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 2, -4); 4230 test("abcdefghijklmnopqrst", 0, 20, "abcde", 5, 0, 20); 4231 test("abcdefghijklmnopqrst", 0, 20, "abcde", 5, 1, 20); 4232 test("abcdefghijklmnopqrst", 0, 20, "abcde", 6, 0, 0); 4233 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 0, 20); 4234 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 1, 19); 4235 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 5, 15); 4236 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 9, 11); 4237 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 10, 10); 4238 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 11, 10); 4239 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 0, 20); 4240 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 1, -1); 4241 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 4, -1); 4242 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 8, -1); 4243 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 9, -1); 4244 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 10, -1); 4245 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 0, 20); 4246 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 1, -5); 4247 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 2, -5); 4248 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 4, -5); 4249 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 5, -5); 4250 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 6, -5); 4251 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 0, 20); 4252 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 1, -9); 4253 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 2, -9); 4254 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10, 0, 20); 4255 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10, 1, 20); 4256 test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 11, 0, 0); 4257 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 0, 20); 4258 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 1, 19); 4259 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 10, 10); 4260 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 19, 1); 4261 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 20, 0); 4262 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 21, 0); 4263 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 0, 20); 4264 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 1, -1); 4265 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 9, -1); 4266 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 18, -1); 4267 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 19, -1); 4268 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 20, -1); 4269 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 0, 20); 4270 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 1, -10); 4271 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 5, -10); 4272 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 9, -10); 4273 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 10, -10); 4274 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 11, -10); 4275 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 0, 20); 4276 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 1, -19); 4277 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 2, -19); 4278 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 20, 0, 20); 4279 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 20, 1, 20); 4280 test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 21, 0, 0); 4281 test("abcdefghijklmnopqrst", 0, 21, "", 0, 0, 20); 4282 test("abcdefghijklmnopqrst", 0, 21, "", 0, 1, 20); 4283 test("abcdefghijklmnopqrst", 0, 21, "", 1, 0, 0); 4284 test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 0, 20); 4285 test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 1, 19); 4286 test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 2, 18); 4287 test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 4, 16); 4288 test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 5, 15); 4289 test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 6, 15); 4290 test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 0, 20); 4291 test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 1, -1); 4292 test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 2, -1); 4293 test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 3, -1); 4294 test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 4, -1); 4295 test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 5, -1); 4296 test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 0, 20); 4297 test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 1, -2); 4298 test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 2, -2); 4299 test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 3, -2); 4300 test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 4, -2); 4301 test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 0, 20); 4302 test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 1, -4); 4303 test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 2, -4); 4304 test("abcdefghijklmnopqrst", 0, 21, "abcde", 5, 0, 20); 4305 test("abcdefghijklmnopqrst", 0, 21, "abcde", 5, 1, 20); 4306 test("abcdefghijklmnopqrst", 0, 21, "abcde", 6, 0, 0); 4307 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 0, 20); 4308 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 1, 19); 4309 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 5, 15); 4310 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 9, 11); 4311} 4312 4313void test41() 4314{ 4315 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 10, 10); 4316 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 11, 10); 4317 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 0, 20); 4318 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 1, -1); 4319 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 4, -1); 4320 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 8, -1); 4321 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 9, -1); 4322 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 10, -1); 4323 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 0, 20); 4324 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 1, -5); 4325 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 2, -5); 4326 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 4, -5); 4327 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 5, -5); 4328 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 6, -5); 4329 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 0, 20); 4330 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 1, -9); 4331 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 2, -9); 4332 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10, 0, 20); 4333 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10, 1, 20); 4334 test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 11, 0, 0); 4335 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 0, 20); 4336 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 1, 19); 4337 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 10, 10); 4338 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 19, 1); 4339 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 20, 0); 4340 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 21, 0); 4341 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 0, 20); 4342 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 1, -1); 4343 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 9, -1); 4344 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 18, -1); 4345 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 19, -1); 4346 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 20, -1); 4347 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 0, 20); 4348 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 1, -10); 4349 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 5, -10); 4350 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 9, -10); 4351 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 10, -10); 4352 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 11, -10); 4353 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 0, 20); 4354 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 1, -19); 4355 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 2, -19); 4356 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 20, 0, 20); 4357 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 20, 1, 20); 4358 test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 21, 0, 0); 4359 test("abcdefghijklmnopqrst", 1, 0, "", 0, 0, 0); 4360 test("abcdefghijklmnopqrst", 1, 0, "", 0, 1, 0); 4361 test("abcdefghijklmnopqrst", 1, 0, "", 1, 0, 0); 4362 test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 0, 0); 4363 test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 1, -1); 4364 test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 2, -2); 4365 test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 4, -4); 4366 test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 5, -5); 4367 test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 6, -5); 4368 test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 0, 0); 4369 test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 1, -1); 4370 test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 2, -2); 4371 test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 3, -3); 4372 test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 4, -4); 4373 test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 5, -4); 4374 test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 0, 0); 4375 test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 1, -1); 4376 test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 2, -2); 4377 test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 3, -3); 4378 test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 4, -3); 4379 test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, 0, 0); 4380 test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, 1, -1); 4381 test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, 2, -1); 4382 test("abcdefghijklmnopqrst", 1, 0, "abcde", 5, 0, 0); 4383 test("abcdefghijklmnopqrst", 1, 0, "abcde", 5, 1, 0); 4384 test("abcdefghijklmnopqrst", 1, 0, "abcde", 6, 0, 0); 4385 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 0, 0); 4386 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 1, -1); 4387 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 5, -5); 4388 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 9, -9); 4389 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 10, -10); 4390 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 11, -10); 4391 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 0, 0); 4392 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 1, -1); 4393 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 4, -4); 4394 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 8, -8); 4395 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 9, -9); 4396 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 10, -9); 4397 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 0, 0); 4398 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 1, -1); 4399 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 2, -2); 4400 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 4, -4); 4401 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 5, -5); 4402 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 6, -5); 4403 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, 0, 0); 4404 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, 1, -1); 4405 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, 2, -1); 4406 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 10, 0, 0); 4407 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 10, 1, 0); 4408 test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 11, 0, 0); 4409 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0); 4410 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 1, -1); 4411 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 10, -10); 4412 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 19, -19); 4413 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 20, -20); 4414 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 21, -20); 4415} 4416 4417void test42() 4418{ 4419 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0); 4420 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 1, -1); 4421 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 9, -9); 4422 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 18, -18); 4423 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 19, -19); 4424 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 20, -19); 4425 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0); 4426 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 1, -1); 4427 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 5, -5); 4428 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 9, -9); 4429 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 10, -10); 4430 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 11, -10); 4431 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0); 4432 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, 1, -1); 4433 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, 2, -1); 4434 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0); 4435 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0); 4436 test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0); 4437 test("abcdefghijklmnopqrst", 1, 1, "", 0, 0, 1); 4438 test("abcdefghijklmnopqrst", 1, 1, "", 0, 1, 1); 4439 test("abcdefghijklmnopqrst", 1, 1, "", 1, 0, 0); 4440 test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 0, 1); 4441 test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 1, 1); 4442 test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 2, 1); 4443 test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 4, 1); 4444 test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 5, 1); 4445 test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 6, 1); 4446 test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 0, 1); 4447 test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 1, 0); 4448 test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 2, -1); 4449 test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 3, -2); 4450 test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 4, -3); 4451 test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 5, -3); 4452 test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 0, 1); 4453 test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 1, -1); 4454 test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 2, -1); 4455 test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 3, -1); 4456 test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 4, -1); 4457 test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 0, 1); 4458 test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 1, -3); 4459 test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 2, -3); 4460 test("abcdefghijklmnopqrst", 1, 1, "abcde", 5, 0, 1); 4461 test("abcdefghijklmnopqrst", 1, 1, "abcde", 5, 1, 1); 4462 test("abcdefghijklmnopqrst", 1, 1, "abcde", 6, 0, 0); 4463 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 0, 1); 4464 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 1, 1); 4465 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 5, 1); 4466 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 9, 1); 4467 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 10, 1); 4468 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 11, 1); 4469 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 0, 1); 4470 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 1, 0); 4471 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 4, -3); 4472 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 8, -7); 4473 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 9, -8); 4474 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 10, -8); 4475 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 0, 1); 4476 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 1, -4); 4477 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 2, -4); 4478 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 4, -4); 4479 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 5, -4); 4480 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 6, -4); 4481 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 0, 1); 4482 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 1, -8); 4483 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 2, -8); 4484 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 10, 0, 1); 4485 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 10, 1, 1); 4486 test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 11, 0, 0); 4487 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 0, 1); 4488 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 1, 1); 4489 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 10, 1); 4490 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 19, 1); 4491 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 20, 1); 4492 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 21, 1); 4493 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 0, 1); 4494 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 1, 0); 4495 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 9, -8); 4496 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 18, -17); 4497 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 19, -18); 4498 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 20, -18); 4499 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 0, 1); 4500 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 1, -9); 4501 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 5, -9); 4502 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 9, -9); 4503 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 10, -9); 4504 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 11, -9); 4505 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 0, 1); 4506 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 1, -18); 4507 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 2, -18); 4508 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 20, 0, 1); 4509 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 20, 1, 1); 4510 test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 21, 0, 0); 4511 test("abcdefghijklmnopqrst", 1, 9, "", 0, 0, 9); 4512 test("abcdefghijklmnopqrst", 1, 9, "", 0, 1, 9); 4513 test("abcdefghijklmnopqrst", 1, 9, "", 1, 0, 0); 4514 test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 0, 9); 4515 test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 1, 1); 4516 test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 2, 1); 4517 test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 4, 1); 4518 test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 5, 1); 4519} 4520 4521void test43() 4522{ 4523 test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 6, 1); 4524 test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 0, 9); 4525 test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 1, 8); 4526 test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 2, 7); 4527 test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 3, 6); 4528 test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 4, 5); 4529 test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 5, 5); 4530 test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 0, 9); 4531 test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 1, -1); 4532 test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 2, -1); 4533 test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 3, -1); 4534 test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 4, -1); 4535 test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 0, 9); 4536 test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 1, -3); 4537 test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 2, -3); 4538 test("abcdefghijklmnopqrst", 1, 9, "abcde", 5, 0, 9); 4539 test("abcdefghijklmnopqrst", 1, 9, "abcde", 5, 1, 9); 4540 test("abcdefghijklmnopqrst", 1, 9, "abcde", 6, 0, 0); 4541 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 0, 9); 4542 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 1, 1); 4543 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 5, 1); 4544 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 9, 1); 4545 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 10, 1); 4546 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 11, 1); 4547 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 0, 9); 4548 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 1, 8); 4549 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 4, 5); 4550 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 8, 1); 4551 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 9, 0); 4552 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 10, 0); 4553 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 0, 9); 4554 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 1, -4); 4555 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 2, -4); 4556 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 4, -4); 4557 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 5, -4); 4558 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 6, -4); 4559 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 0, 9); 4560 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 1, -8); 4561 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 2, -8); 4562 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 10, 0, 9); 4563 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 10, 1, 9); 4564 test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 11, 0, 0); 4565 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 0, 9); 4566 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 1, 1); 4567 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 10, 1); 4568 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 19, 1); 4569 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 20, 1); 4570 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 21, 1); 4571 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 0, 9); 4572 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 1, 8); 4573 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 9, 0); 4574 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 18, -9); 4575 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 19, -10); 4576 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 20, -10); 4577 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 0, 9); 4578 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 1, -9); 4579 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 5, -9); 4580 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 9, -9); 4581 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 10, -9); 4582 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 11, -9); 4583 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 0, 9); 4584 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 1, -18); 4585 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 2, -18); 4586 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 20, 0, 9); 4587 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 20, 1, 9); 4588 test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 21, 0, 0); 4589 test("abcdefghijklmnopqrst", 1, 18, "", 0, 0, 18); 4590 test("abcdefghijklmnopqrst", 1, 18, "", 0, 1, 18); 4591 test("abcdefghijklmnopqrst", 1, 18, "", 1, 0, 0); 4592 test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 0, 18); 4593 test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 1, 1); 4594 test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 2, 1); 4595 test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 4, 1); 4596 test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 5, 1); 4597 test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 6, 1); 4598 test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 0, 18); 4599 test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 1, 17); 4600 test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 2, 16); 4601 test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 3, 15); 4602 test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 4, 14); 4603 test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 5, 14); 4604 test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 0, 18); 4605 test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 1, -1); 4606 test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 2, -1); 4607 test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 3, -1); 4608 test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 4, -1); 4609 test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 0, 18); 4610 test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 1, -3); 4611 test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 2, -3); 4612 test("abcdefghijklmnopqrst", 1, 18, "abcde", 5, 0, 18); 4613 test("abcdefghijklmnopqrst", 1, 18, "abcde", 5, 1, 18); 4614 test("abcdefghijklmnopqrst", 1, 18, "abcde", 6, 0, 0); 4615 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 0, 18); 4616 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 1, 1); 4617 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 5, 1); 4618 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 9, 1); 4619 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 10, 1); 4620 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 11, 1); 4621 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 0, 18); 4622 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 1, 17); 4623} 4624 4625void test44() 4626{ 4627 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 4, 14); 4628 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 8, 10); 4629 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 9, 9); 4630 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 10, 9); 4631 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 0, 18); 4632 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 1, -4); 4633 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 2, -4); 4634 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 4, -4); 4635 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 5, -4); 4636 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 6, -4); 4637 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 0, 18); 4638 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 1, -8); 4639 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 2, -8); 4640 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 10, 0, 18); 4641 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 10, 1, 18); 4642 test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 11, 0, 0); 4643 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 0, 18); 4644 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 1, 1); 4645 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 10, 1); 4646 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 19, 1); 4647 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 20, 1); 4648 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 21, 1); 4649 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 0, 18); 4650 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 1, 17); 4651 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 9, 9); 4652 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 18, 0); 4653 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 19, -1); 4654 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 20, -1); 4655 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 0, 18); 4656 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 1, -9); 4657 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 5, -9); 4658 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 9, -9); 4659 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 10, -9); 4660 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 11, -9); 4661 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 0, 18); 4662 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 1, -18); 4663 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 2, -18); 4664 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 20, 0, 18); 4665 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 20, 1, 18); 4666 test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 21, 0, 0); 4667 test("abcdefghijklmnopqrst", 1, 19, "", 0, 0, 19); 4668 test("abcdefghijklmnopqrst", 1, 19, "", 0, 1, 19); 4669 test("abcdefghijklmnopqrst", 1, 19, "", 1, 0, 0); 4670 test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 0, 19); 4671 test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 1, 1); 4672 test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 2, 1); 4673 test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 4, 1); 4674 test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 5, 1); 4675 test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 6, 1); 4676 test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 0, 19); 4677 test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 1, 18); 4678 test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 2, 17); 4679 test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 3, 16); 4680 test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 4, 15); 4681 test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 5, 15); 4682 test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 0, 19); 4683 test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 1, -1); 4684 test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 2, -1); 4685 test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 3, -1); 4686 test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 4, -1); 4687 test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 0, 19); 4688 test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 1, -3); 4689 test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 2, -3); 4690 test("abcdefghijklmnopqrst", 1, 19, "abcde", 5, 0, 19); 4691 test("abcdefghijklmnopqrst", 1, 19, "abcde", 5, 1, 19); 4692 test("abcdefghijklmnopqrst", 1, 19, "abcde", 6, 0, 0); 4693 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 0, 19); 4694 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 1, 1); 4695 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 5, 1); 4696 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 9, 1); 4697 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 10, 1); 4698 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 11, 1); 4699 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 0, 19); 4700 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 1, 18); 4701 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 4, 15); 4702 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 8, 11); 4703 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 9, 10); 4704 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 10, 10); 4705 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 0, 19); 4706 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 1, -4); 4707 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 2, -4); 4708 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 4, -4); 4709 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 5, -4); 4710 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 6, -4); 4711 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 0, 19); 4712 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 1, -8); 4713 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 2, -8); 4714 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 10, 0, 19); 4715 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 10, 1, 19); 4716 test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 11, 0, 0); 4717 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 0, 19); 4718 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 1, 1); 4719 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 10, 1); 4720 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 19, 1); 4721 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 20, 1); 4722 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 21, 1); 4723 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 0, 19); 4724 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 1, 18); 4725 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 9, 10); 4726 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 18, 1); 4727} 4728 4729void test45() 4730{ 4731 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 19, 0); 4732 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 20, 0); 4733 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 0, 19); 4734 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 1, -9); 4735 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 5, -9); 4736 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 9, -9); 4737 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 10, -9); 4738 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 11, -9); 4739 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 0, 19); 4740 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 1, -18); 4741 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 2, -18); 4742 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 20, 0, 19); 4743 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 20, 1, 19); 4744 test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 21, 0, 0); 4745 test("abcdefghijklmnopqrst", 1, 20, "", 0, 0, 19); 4746 test("abcdefghijklmnopqrst", 1, 20, "", 0, 1, 19); 4747 test("abcdefghijklmnopqrst", 1, 20, "", 1, 0, 0); 4748 test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 0, 19); 4749 test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 1, 1); 4750 test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 2, 1); 4751 test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 4, 1); 4752 test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 5, 1); 4753 test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 6, 1); 4754 test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 0, 19); 4755 test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 1, 18); 4756 test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 2, 17); 4757 test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 3, 16); 4758 test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 4, 15); 4759 test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 5, 15); 4760 test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 0, 19); 4761 test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 1, -1); 4762 test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 2, -1); 4763 test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 3, -1); 4764 test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 4, -1); 4765 test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 0, 19); 4766 test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 1, -3); 4767 test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 2, -3); 4768 test("abcdefghijklmnopqrst", 1, 20, "abcde", 5, 0, 19); 4769 test("abcdefghijklmnopqrst", 1, 20, "abcde", 5, 1, 19); 4770 test("abcdefghijklmnopqrst", 1, 20, "abcde", 6, 0, 0); 4771 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 0, 19); 4772 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 1, 1); 4773 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 5, 1); 4774 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 9, 1); 4775 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 10, 1); 4776 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 11, 1); 4777 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 0, 19); 4778 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 1, 18); 4779 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 4, 15); 4780 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 8, 11); 4781 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 9, 10); 4782 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 10, 10); 4783 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 0, 19); 4784 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 1, -4); 4785 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 2, -4); 4786 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 4, -4); 4787 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 5, -4); 4788 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 6, -4); 4789 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 0, 19); 4790 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 1, -8); 4791 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 2, -8); 4792 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 10, 0, 19); 4793 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 10, 1, 19); 4794 test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 11, 0, 0); 4795 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 0, 19); 4796 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 1, 1); 4797 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 10, 1); 4798 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 19, 1); 4799 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 20, 1); 4800 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 21, 1); 4801 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 0, 19); 4802 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 1, 18); 4803 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 9, 10); 4804 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 18, 1); 4805 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 19, 0); 4806 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 20, 0); 4807 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 0, 19); 4808 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 1, -9); 4809 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 5, -9); 4810 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 9, -9); 4811 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 10, -9); 4812 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 11, -9); 4813 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 0, 19); 4814 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 1, -18); 4815 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 2, -18); 4816 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 20, 0, 19); 4817 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 20, 1, 19); 4818 test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 21, 0, 0); 4819 test("abcdefghijklmnopqrst", 10, 0, "", 0, 0, 0); 4820 test("abcdefghijklmnopqrst", 10, 0, "", 0, 1, 0); 4821 test("abcdefghijklmnopqrst", 10, 0, "", 1, 0, 0); 4822 test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 0, 0); 4823 test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 1, -1); 4824 test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 2, -2); 4825 test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 4, -4); 4826 test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 5, -5); 4827 test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 6, -5); 4828 test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 0, 0); 4829 test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 1, -1); 4830 test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 2, -2); 4831} 4832 4833void test46() 4834{ 4835 test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 3, -3); 4836 test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 4, -4); 4837 test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 5, -4); 4838 test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 0, 0); 4839 test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 1, -1); 4840 test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 2, -2); 4841 test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 3, -3); 4842 test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 4, -3); 4843 test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, 0, 0); 4844 test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, 1, -1); 4845 test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, 2, -1); 4846 test("abcdefghijklmnopqrst", 10, 0, "abcde", 5, 0, 0); 4847 test("abcdefghijklmnopqrst", 10, 0, "abcde", 5, 1, 0); 4848 test("abcdefghijklmnopqrst", 10, 0, "abcde", 6, 0, 0); 4849 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 0, 0); 4850 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 1, -1); 4851 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 5, -5); 4852 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 9, -9); 4853 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 10, -10); 4854 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 11, -10); 4855 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 0, 0); 4856 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 1, -1); 4857 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 4, -4); 4858 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 8, -8); 4859 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 9, -9); 4860 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 10, -9); 4861 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 0, 0); 4862 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 1, -1); 4863 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 2, -2); 4864 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 4, -4); 4865 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 5, -5); 4866 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 6, -5); 4867 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, 0, 0); 4868 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, 1, -1); 4869 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, 2, -1); 4870 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 10, 0, 0); 4871 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 10, 1, 0); 4872 test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 11, 0, 0); 4873 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 0, 0); 4874 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 1, -1); 4875 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 10, -10); 4876 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 19, -19); 4877 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 20, -20); 4878 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 21, -20); 4879 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 0, 0); 4880 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 1, -1); 4881 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 9, -9); 4882 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 18, -18); 4883 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 19, -19); 4884 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 20, -19); 4885 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 0, 0); 4886 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 1, -1); 4887 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 5, -5); 4888 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 9, -9); 4889 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 10, -10); 4890 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 11, -10); 4891 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, 0, 0); 4892 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, 1, -1); 4893 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, 2, -1); 4894 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 20, 0, 0); 4895 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 20, 1, 0); 4896 test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 21, 0, 0); 4897 test("abcdefghijklmnopqrst", 10, 1, "", 0, 0, 1); 4898 test("abcdefghijklmnopqrst", 10, 1, "", 0, 1, 1); 4899 test("abcdefghijklmnopqrst", 10, 1, "", 1, 0, 0); 4900 test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 0, 1); 4901 test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 1, 10); 4902 test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 2, 10); 4903 test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 4, 10); 4904 test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 5, 10); 4905 test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 6, 10); 4906 test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 0, 1); 4907 test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 1, 9); 4908 test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 2, 9); 4909 test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 3, 9); 4910 test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 4, 9); 4911 test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 5, 9); 4912 test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 0, 1); 4913 test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 1, 8); 4914 test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 2, 8); 4915 test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 3, 8); 4916 test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 4, 8); 4917 test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 0, 1); 4918 test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 1, 6); 4919 test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 2, 6); 4920 test("abcdefghijklmnopqrst", 10, 1, "abcde", 5, 0, 1); 4921 test("abcdefghijklmnopqrst", 10, 1, "abcde", 5, 1, 1); 4922 test("abcdefghijklmnopqrst", 10, 1, "abcde", 6, 0, 0); 4923 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 0, 1); 4924 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 1, 10); 4925 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 5, 10); 4926 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 9, 10); 4927 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 10, 10); 4928 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 11, 10); 4929 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 0, 1); 4930 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 1, 9); 4931 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 4, 9); 4932 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 8, 9); 4933 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 9, 9); 4934 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 10, 9); 4935} 4936 4937void test47() 4938{ 4939 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 0, 1); 4940 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 1, 5); 4941 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 2, 5); 4942 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 4, 5); 4943 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 5, 5); 4944 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 6, 5); 4945 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 0, 1); 4946 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 1, 1); 4947 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 2, 1); 4948 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10, 0, 1); 4949 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10, 1, 1); 4950 test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 11, 0, 0); 4951 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 0, 1); 4952 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 1, 10); 4953 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 10, 10); 4954 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 19, 10); 4955 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 20, 10); 4956 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 21, 10); 4957 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 0, 1); 4958 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 1, 9); 4959 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 9, 9); 4960 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 18, 9); 4961 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 19, 9); 4962 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 20, 9); 4963 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 0, 1); 4964 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 1, 0); 4965 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 5, -4); 4966 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 9, -8); 4967 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 10, -9); 4968 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 11, -9); 4969 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 0, 1); 4970 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 1, -9); 4971 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 2, -9); 4972 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 20, 0, 1); 4973 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 20, 1, 1); 4974 test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 21, 0, 0); 4975 test("abcdefghijklmnopqrst", 10, 5, "", 0, 0, 5); 4976 test("abcdefghijklmnopqrst", 10, 5, "", 0, 1, 5); 4977 test("abcdefghijklmnopqrst", 10, 5, "", 1, 0, 0); 4978 test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 0, 5); 4979 test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 1, 10); 4980 test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 2, 10); 4981 test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 4, 10); 4982 test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 5, 10); 4983 test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 6, 10); 4984 test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 0, 5); 4985 test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 1, 9); 4986 test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 2, 9); 4987 test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 3, 9); 4988 test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 4, 9); 4989 test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 5, 9); 4990 test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 0, 5); 4991 test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 1, 8); 4992 test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 2, 8); 4993 test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 3, 8); 4994 test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 4, 8); 4995 test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 0, 5); 4996 test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 1, 6); 4997 test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 2, 6); 4998 test("abcdefghijklmnopqrst", 10, 5, "abcde", 5, 0, 5); 4999 test("abcdefghijklmnopqrst", 10, 5, "abcde", 5, 1, 5); 5000 test("abcdefghijklmnopqrst", 10, 5, "abcde", 6, 0, 0); 5001 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 0, 5); 5002 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 1, 10); 5003 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 5, 10); 5004 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 9, 10); 5005 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 10, 10); 5006 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 11, 10); 5007 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 0, 5); 5008 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 1, 9); 5009 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 4, 9); 5010 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 8, 9); 5011 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 9, 9); 5012 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 10, 9); 5013 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 0, 5); 5014 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 1, 5); 5015 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 2, 5); 5016 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 4, 5); 5017 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 5, 5); 5018 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 6, 5); 5019 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 0, 5); 5020 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 1, 1); 5021 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 2, 1); 5022 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10, 0, 5); 5023 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10, 1, 5); 5024 test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 11, 0, 0); 5025 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 0, 5); 5026 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 1, 10); 5027 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 10, 10); 5028 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 19, 10); 5029 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 20, 10); 5030 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 21, 10); 5031 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 0, 5); 5032 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 1, 9); 5033 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 9, 9); 5034 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 18, 9); 5035 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 19, 9); 5036 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 20, 9); 5037 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 0, 5); 5038 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 1, 4); 5039} 5040 5041void test48() 5042{ 5043 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 5, 0); 5044 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 9, -4); 5045 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 10, -5); 5046 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 11, -5); 5047 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 0, 5); 5048 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 1, -9); 5049 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 2, -9); 5050 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 20, 0, 5); 5051 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 20, 1, 5); 5052 test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 21, 0, 0); 5053 test("abcdefghijklmnopqrst", 10, 9, "", 0, 0, 9); 5054 test("abcdefghijklmnopqrst", 10, 9, "", 0, 1, 9); 5055 test("abcdefghijklmnopqrst", 10, 9, "", 1, 0, 0); 5056 test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 0, 9); 5057 test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 1, 10); 5058 test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 2, 10); 5059 test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 4, 10); 5060 test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 5, 10); 5061 test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 6, 10); 5062 test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 0, 9); 5063 test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 1, 9); 5064 test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 2, 9); 5065 test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 3, 9); 5066 test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 4, 9); 5067 test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 5, 9); 5068 test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 0, 9); 5069 test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 1, 8); 5070 test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 2, 8); 5071 test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 3, 8); 5072 test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 4, 8); 5073 test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 0, 9); 5074 test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 1, 6); 5075 test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 2, 6); 5076 test("abcdefghijklmnopqrst", 10, 9, "abcde", 5, 0, 9); 5077 test("abcdefghijklmnopqrst", 10, 9, "abcde", 5, 1, 9); 5078 test("abcdefghijklmnopqrst", 10, 9, "abcde", 6, 0, 0); 5079 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 0, 9); 5080 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 1, 10); 5081 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 5, 10); 5082 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 9, 10); 5083 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 10, 10); 5084 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 11, 10); 5085 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 0, 9); 5086 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 1, 9); 5087 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 4, 9); 5088 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 8, 9); 5089 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 9, 9); 5090 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 10, 9); 5091 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 0, 9); 5092 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 1, 5); 5093 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 2, 5); 5094 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 4, 5); 5095 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 5, 5); 5096 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 6, 5); 5097 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 0, 9); 5098 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 1, 1); 5099 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 2, 1); 5100 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10, 0, 9); 5101 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10, 1, 9); 5102 test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 11, 0, 0); 5103 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 0, 9); 5104 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 1, 10); 5105 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 10, 10); 5106 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 19, 10); 5107 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 20, 10); 5108 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 21, 10); 5109 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 0, 9); 5110 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 1, 9); 5111 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 9, 9); 5112 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 18, 9); 5113 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 19, 9); 5114 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 20, 9); 5115 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 0, 9); 5116 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 1, 8); 5117 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 5, 4); 5118 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 9, 0); 5119 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 10, -1); 5120 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 11, -1); 5121 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 0, 9); 5122 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 1, -9); 5123 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 2, -9); 5124 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 20, 0, 9); 5125 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 20, 1, 9); 5126 test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 21, 0, 0); 5127 test("abcdefghijklmnopqrst", 10, 10, "", 0, 0, 10); 5128 test("abcdefghijklmnopqrst", 10, 10, "", 0, 1, 10); 5129 test("abcdefghijklmnopqrst", 10, 10, "", 1, 0, 0); 5130 test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 0, 10); 5131 test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 1, 10); 5132 test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 2, 10); 5133 test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 4, 10); 5134 test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 5, 10); 5135 test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 6, 10); 5136 test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 0, 10); 5137 test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 1, 9); 5138 test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 2, 9); 5139 test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 3, 9); 5140 test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 4, 9); 5141 test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 5, 9); 5142 test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 0, 10); 5143} 5144 5145void test49() 5146{ 5147 test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 1, 8); 5148 test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 2, 8); 5149 test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 3, 8); 5150 test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 4, 8); 5151 test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 0, 10); 5152 test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 1, 6); 5153 test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 2, 6); 5154 test("abcdefghijklmnopqrst", 10, 10, "abcde", 5, 0, 10); 5155 test("abcdefghijklmnopqrst", 10, 10, "abcde", 5, 1, 10); 5156 test("abcdefghijklmnopqrst", 10, 10, "abcde", 6, 0, 0); 5157 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 0, 10); 5158 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 1, 10); 5159 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 5, 10); 5160 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 9, 10); 5161 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 10, 10); 5162 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 11, 10); 5163 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 0, 10); 5164 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 1, 9); 5165 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 4, 9); 5166 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 8, 9); 5167 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 9, 9); 5168 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 10, 9); 5169 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 0, 10); 5170 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 1, 5); 5171 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 2, 5); 5172 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 4, 5); 5173 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 5, 5); 5174 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 6, 5); 5175 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 0, 10); 5176 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 1, 1); 5177 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 2, 1); 5178 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10, 0, 10); 5179 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10, 1, 10); 5180 test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 11, 0, 0); 5181 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 0, 10); 5182 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 1, 10); 5183 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 10, 10); 5184 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 19, 10); 5185 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 20, 10); 5186 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 21, 10); 5187 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 0, 10); 5188 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 1, 9); 5189 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 9, 9); 5190 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 18, 9); 5191 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 19, 9); 5192 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 20, 9); 5193 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 0, 10); 5194 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 1, 9); 5195 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 5, 5); 5196 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 9, 1); 5197 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 10, 0); 5198 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 11, 0); 5199 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 0, 10); 5200 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 1, -9); 5201 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 2, -9); 5202 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 20, 0, 10); 5203 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 20, 1, 10); 5204 test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 21, 0, 0); 5205 test("abcdefghijklmnopqrst", 10, 11, "", 0, 0, 10); 5206 test("abcdefghijklmnopqrst", 10, 11, "", 0, 1, 10); 5207 test("abcdefghijklmnopqrst", 10, 11, "", 1, 0, 0); 5208 test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 0, 10); 5209 test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 1, 10); 5210 test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 2, 10); 5211 test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 4, 10); 5212 test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 5, 10); 5213 test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 6, 10); 5214 test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 0, 10); 5215 test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 1, 9); 5216 test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 2, 9); 5217 test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 3, 9); 5218 test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 4, 9); 5219 test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 5, 9); 5220 test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 0, 10); 5221 test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 1, 8); 5222 test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 2, 8); 5223 test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 3, 8); 5224 test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 4, 8); 5225 test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 0, 10); 5226 test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 1, 6); 5227 test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 2, 6); 5228 test("abcdefghijklmnopqrst", 10, 11, "abcde", 5, 0, 10); 5229 test("abcdefghijklmnopqrst", 10, 11, "abcde", 5, 1, 10); 5230 test("abcdefghijklmnopqrst", 10, 11, "abcde", 6, 0, 0); 5231 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 0, 10); 5232 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 1, 10); 5233 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 5, 10); 5234 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 9, 10); 5235 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 10, 10); 5236 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 11, 10); 5237 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 0, 10); 5238 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 1, 9); 5239 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 4, 9); 5240 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 8, 9); 5241 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 9, 9); 5242 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 10, 9); 5243 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 0, 10); 5244 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 1, 5); 5245 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 2, 5); 5246 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 4, 5); 5247} 5248 5249void test50() 5250{ 5251 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 5, 5); 5252 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 6, 5); 5253 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 0, 10); 5254 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 1, 1); 5255 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 2, 1); 5256 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10, 0, 10); 5257 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10, 1, 10); 5258 test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 11, 0, 0); 5259 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 0, 10); 5260 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 1, 10); 5261 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 10, 10); 5262 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 19, 10); 5263 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 20, 10); 5264 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 21, 10); 5265 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 0, 10); 5266 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 1, 9); 5267 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 9, 9); 5268 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 18, 9); 5269 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 19, 9); 5270 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 20, 9); 5271 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 0, 10); 5272 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 1, 9); 5273 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 5, 5); 5274 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 9, 1); 5275 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 10, 0); 5276 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 11, 0); 5277 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 0, 10); 5278 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 1, -9); 5279 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 2, -9); 5280 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 20, 0, 10); 5281 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 20, 1, 10); 5282 test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 21, 0, 0); 5283 test("abcdefghijklmnopqrst", 19, 0, "", 0, 0, 0); 5284 test("abcdefghijklmnopqrst", 19, 0, "", 0, 1, 0); 5285 test("abcdefghijklmnopqrst", 19, 0, "", 1, 0, 0); 5286 test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 0, 0); 5287 test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 1, -1); 5288 test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 2, -2); 5289 test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 4, -4); 5290 test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 5, -5); 5291 test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 6, -5); 5292 test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 0, 0); 5293 test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 1, -1); 5294 test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 2, -2); 5295 test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 3, -3); 5296 test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 4, -4); 5297 test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 5, -4); 5298 test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 0, 0); 5299 test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 1, -1); 5300 test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 2, -2); 5301 test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 3, -3); 5302 test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 4, -3); 5303 test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, 0, 0); 5304 test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, 1, -1); 5305 test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, 2, -1); 5306 test("abcdefghijklmnopqrst", 19, 0, "abcde", 5, 0, 0); 5307 test("abcdefghijklmnopqrst", 19, 0, "abcde", 5, 1, 0); 5308 test("abcdefghijklmnopqrst", 19, 0, "abcde", 6, 0, 0); 5309 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 0, 0); 5310 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 1, -1); 5311 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 5, -5); 5312 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 9, -9); 5313 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 10, -10); 5314 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 11, -10); 5315 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 0, 0); 5316 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 1, -1); 5317 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 4, -4); 5318 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 8, -8); 5319 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 9, -9); 5320 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 10, -9); 5321 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 0, 0); 5322 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 1, -1); 5323 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 2, -2); 5324 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 4, -4); 5325 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 5, -5); 5326 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 6, -5); 5327 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, 0, 0); 5328 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, 1, -1); 5329 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, 2, -1); 5330 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 10, 0, 0); 5331 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 10, 1, 0); 5332 test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 11, 0, 0); 5333 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 0, 0); 5334 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 1, -1); 5335 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 10, -10); 5336 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 19, -19); 5337 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 20, -20); 5338 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 21, -20); 5339 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 0, 0); 5340 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 1, -1); 5341 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 9, -9); 5342 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 18, -18); 5343 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 19, -19); 5344 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 20, -19); 5345 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 0, 0); 5346 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 1, -1); 5347 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 5, -5); 5348 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 9, -9); 5349 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 10, -10); 5350 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 11, -10); 5351} 5352 5353void test51() 5354{ 5355 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, 0, 0); 5356 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, 1, -1); 5357 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, 2, -1); 5358 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 20, 0, 0); 5359 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 20, 1, 0); 5360 test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 21, 0, 0); 5361 test("abcdefghijklmnopqrst", 19, 1, "", 0, 0, 1); 5362 test("abcdefghijklmnopqrst", 19, 1, "", 0, 1, 1); 5363 test("abcdefghijklmnopqrst", 19, 1, "", 1, 0, 0); 5364 test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 0, 1); 5365 test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 1, 19); 5366 test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 2, 19); 5367 test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 4, 19); 5368 test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 5, 19); 5369 test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 6, 19); 5370 test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 0, 1); 5371 test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 1, 18); 5372 test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 2, 18); 5373 test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 3, 18); 5374 test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 4, 18); 5375 test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 5, 18); 5376 test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 0, 1); 5377 test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 1, 17); 5378 test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 2, 17); 5379 test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 3, 17); 5380 test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 4, 17); 5381 test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 0, 1); 5382 test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 1, 15); 5383 test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 2, 15); 5384 test("abcdefghijklmnopqrst", 19, 1, "abcde", 5, 0, 1); 5385 test("abcdefghijklmnopqrst", 19, 1, "abcde", 5, 1, 1); 5386 test("abcdefghijklmnopqrst", 19, 1, "abcde", 6, 0, 0); 5387 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 0, 1); 5388 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 1, 19); 5389 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 5, 19); 5390 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 9, 19); 5391 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 10, 19); 5392 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 11, 19); 5393 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 0, 1); 5394 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 1, 18); 5395 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 4, 18); 5396 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 8, 18); 5397 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 9, 18); 5398 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 10, 18); 5399 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 0, 1); 5400 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 1, 14); 5401 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 2, 14); 5402 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 4, 14); 5403 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 5, 14); 5404 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 6, 14); 5405 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 0, 1); 5406 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 1, 10); 5407 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 2, 10); 5408 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 10, 0, 1); 5409 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 10, 1, 1); 5410 test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 11, 0, 0); 5411 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 0, 1); 5412 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 1, 19); 5413 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 10, 19); 5414 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 19, 19); 5415 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 20, 19); 5416 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 21, 19); 5417 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 0, 1); 5418 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 1, 18); 5419 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 9, 18); 5420 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 18, 18); 5421 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 19, 18); 5422 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 20, 18); 5423 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 0, 1); 5424 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 1, 9); 5425 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 5, 9); 5426 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 9, 9); 5427 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 10, 9); 5428 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 11, 9); 5429 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 0, 1); 5430 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 1, 0); 5431 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 2, 0); 5432 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 20, 0, 1); 5433 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 20, 1, 1); 5434 test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 21, 0, 0); 5435 test("abcdefghijklmnopqrst", 19, 2, "", 0, 0, 1); 5436 test("abcdefghijklmnopqrst", 19, 2, "", 0, 1, 1); 5437 test("abcdefghijklmnopqrst", 19, 2, "", 1, 0, 0); 5438 test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 0, 1); 5439 test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 1, 19); 5440 test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 2, 19); 5441 test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 4, 19); 5442 test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 5, 19); 5443 test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 6, 19); 5444 test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 0, 1); 5445 test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 1, 18); 5446 test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 2, 18); 5447 test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 3, 18); 5448 test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 4, 18); 5449 test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 5, 18); 5450 test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 0, 1); 5451 test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 1, 17); 5452 test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 2, 17); 5453 test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 3, 17); 5454 test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 4, 17); 5455} 5456 5457void test52() 5458{ 5459 test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 0, 1); 5460 test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 1, 15); 5461 test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 2, 15); 5462 test("abcdefghijklmnopqrst", 19, 2, "abcde", 5, 0, 1); 5463 test("abcdefghijklmnopqrst", 19, 2, "abcde", 5, 1, 1); 5464 test("abcdefghijklmnopqrst", 19, 2, "abcde", 6, 0, 0); 5465 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 0, 1); 5466 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 1, 19); 5467 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 5, 19); 5468 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 9, 19); 5469 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 10, 19); 5470 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 11, 19); 5471 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 0, 1); 5472 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 1, 18); 5473 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 4, 18); 5474 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 8, 18); 5475 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 9, 18); 5476 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 10, 18); 5477 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 0, 1); 5478 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 1, 14); 5479 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 2, 14); 5480 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 4, 14); 5481 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 5, 14); 5482 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 6, 14); 5483 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 0, 1); 5484 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 1, 10); 5485 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 2, 10); 5486 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 10, 0, 1); 5487 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 10, 1, 1); 5488 test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 11, 0, 0); 5489 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 0, 1); 5490 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 1, 19); 5491 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 10, 19); 5492 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 19, 19); 5493 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 20, 19); 5494 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 21, 19); 5495 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 0, 1); 5496 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 1, 18); 5497 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 9, 18); 5498 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 18, 18); 5499 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 19, 18); 5500 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 20, 18); 5501 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 0, 1); 5502 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 1, 9); 5503 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 5, 9); 5504 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 9, 9); 5505 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 10, 9); 5506 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 11, 9); 5507 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 0, 1); 5508 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 1, 0); 5509 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 2, 0); 5510 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 20, 0, 1); 5511 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 20, 1, 1); 5512 test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 21, 0, 0); 5513 test("abcdefghijklmnopqrst", 20, 0, "", 0, 0, 0); 5514 test("abcdefghijklmnopqrst", 20, 0, "", 0, 1, 0); 5515 test("abcdefghijklmnopqrst", 20, 0, "", 1, 0, 0); 5516 test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 0, 0); 5517 test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 1, -1); 5518 test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 2, -2); 5519 test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 4, -4); 5520 test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 5, -5); 5521 test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 6, -5); 5522 test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 0, 0); 5523 test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 1, -1); 5524 test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 2, -2); 5525 test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 3, -3); 5526 test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 4, -4); 5527 test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 5, -4); 5528 test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 0, 0); 5529 test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 1, -1); 5530 test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 2, -2); 5531 test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 3, -3); 5532 test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 4, -3); 5533 test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, 0, 0); 5534 test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, 1, -1); 5535 test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, 2, -1); 5536 test("abcdefghijklmnopqrst", 20, 0, "abcde", 5, 0, 0); 5537 test("abcdefghijklmnopqrst", 20, 0, "abcde", 5, 1, 0); 5538 test("abcdefghijklmnopqrst", 20, 0, "abcde", 6, 0, 0); 5539 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 0, 0); 5540 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 1, -1); 5541 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 5, -5); 5542 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 9, -9); 5543 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 10, -10); 5544 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 11, -10); 5545 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 0, 0); 5546 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 1, -1); 5547 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 4, -4); 5548 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 8, -8); 5549 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 9, -9); 5550 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 10, -9); 5551 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 0, 0); 5552 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 1, -1); 5553 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 2, -2); 5554 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 4, -4); 5555 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 5, -5); 5556 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 6, -5); 5557 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, 0, 0); 5558 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, 1, -1); 5559} 5560 5561void test53() 5562{ 5563 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, 2, -1); 5564 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 10, 0, 0); 5565 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 10, 1, 0); 5566 test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 11, 0, 0); 5567 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 0, 0); 5568 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 1, -1); 5569 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 10, -10); 5570 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 19, -19); 5571 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 20, -20); 5572 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 21, -20); 5573 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 0, 0); 5574 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 1, -1); 5575 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 9, -9); 5576 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 18, -18); 5577 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 19, -19); 5578 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 20, -19); 5579 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 0, 0); 5580 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 1, -1); 5581 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 5, -5); 5582 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 9, -9); 5583 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 10, -10); 5584 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 11, -10); 5585 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, 0, 0); 5586 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, 1, -1); 5587 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, 2, -1); 5588 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 20, 0, 0); 5589 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 20, 1, 0); 5590 test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 21, 0, 0); 5591 test("abcdefghijklmnopqrst", 20, 1, "", 0, 0, 0); 5592 test("abcdefghijklmnopqrst", 20, 1, "", 0, 1, 0); 5593 test("abcdefghijklmnopqrst", 20, 1, "", 1, 0, 0); 5594 test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 0, 0); 5595 test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 1, -1); 5596 test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 2, -2); 5597 test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 4, -4); 5598 test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 5, -5); 5599 test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 6, -5); 5600 test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 0, 0); 5601 test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 1, -1); 5602 test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 2, -2); 5603 test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 3, -3); 5604 test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 4, -4); 5605 test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 5, -4); 5606 test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 0, 0); 5607 test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 1, -1); 5608 test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 2, -2); 5609 test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 3, -3); 5610 test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 4, -3); 5611 test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, 0, 0); 5612 test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, 1, -1); 5613 test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, 2, -1); 5614 test("abcdefghijklmnopqrst", 20, 1, "abcde", 5, 0, 0); 5615 test("abcdefghijklmnopqrst", 20, 1, "abcde", 5, 1, 0); 5616 test("abcdefghijklmnopqrst", 20, 1, "abcde", 6, 0, 0); 5617 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 0, 0); 5618 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 1, -1); 5619 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 5, -5); 5620 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 9, -9); 5621 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 10, -10); 5622 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 11, -10); 5623 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 0, 0); 5624 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 1, -1); 5625 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 4, -4); 5626 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 8, -8); 5627 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 9, -9); 5628 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 10, -9); 5629 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 0, 0); 5630 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 1, -1); 5631 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 2, -2); 5632 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 4, -4); 5633 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 5, -5); 5634 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 6, -5); 5635 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, 0, 0); 5636 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, 1, -1); 5637 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, 2, -1); 5638 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 10, 0, 0); 5639 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 10, 1, 0); 5640 test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 11, 0, 0); 5641 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 0, 0); 5642 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 1, -1); 5643 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 10, -10); 5644 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 19, -19); 5645 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 20, -20); 5646 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 21, -20); 5647 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 0, 0); 5648 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 1, -1); 5649 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 9, -9); 5650 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 18, -18); 5651 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 19, -19); 5652 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 20, -19); 5653 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 0, 0); 5654 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 1, -1); 5655 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 5, -5); 5656 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 9, -9); 5657 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 10, -10); 5658 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 11, -10); 5659 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, 0, 0); 5660 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, 1, -1); 5661 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, 2, -1); 5662 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 20, 0, 0); 5663} 5664 5665void test54() 5666{ 5667 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 20, 1, 0); 5668 test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 21, 0, 0); 5669 test("abcdefghijklmnopqrst", 21, 0, "", 0, 0, 0); 5670 test("abcdefghijklmnopqrst", 21, 0, "", 0, 1, 0); 5671 test("abcdefghijklmnopqrst", 21, 0, "", 1, 0, 0); 5672 test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 0, 0); 5673 test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 1, 0); 5674 test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 2, 0); 5675 test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 4, 0); 5676 test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 5, 0); 5677 test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 6, 0); 5678 test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 0, 0); 5679 test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 1, 0); 5680 test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 2, 0); 5681 test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 3, 0); 5682 test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 4, 0); 5683 test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 5, 0); 5684 test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 0, 0); 5685 test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 1, 0); 5686 test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 2, 0); 5687 test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 3, 0); 5688 test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 4, 0); 5689 test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 0, 0); 5690 test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 1, 0); 5691 test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 2, 0); 5692 test("abcdefghijklmnopqrst", 21, 0, "abcde", 5, 0, 0); 5693 test("abcdefghijklmnopqrst", 21, 0, "abcde", 5, 1, 0); 5694 test("abcdefghijklmnopqrst", 21, 0, "abcde", 6, 0, 0); 5695 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 0, 0); 5696 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 1, 0); 5697 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 5, 0); 5698 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 9, 0); 5699 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 10, 0); 5700 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 11, 0); 5701 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 0, 0); 5702 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 1, 0); 5703 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 4, 0); 5704 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 8, 0); 5705 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 9, 0); 5706 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 10, 0); 5707 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 0, 0); 5708 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 1, 0); 5709 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 2, 0); 5710 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 4, 0); 5711 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 5, 0); 5712 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 6, 0); 5713 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 0, 0); 5714 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 1, 0); 5715 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 2, 0); 5716 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 10, 0, 0); 5717 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 10, 1, 0); 5718 test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 11, 0, 0); 5719 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 0, 0); 5720 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 1, 0); 5721 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 10, 0); 5722 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 19, 0); 5723 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 20, 0); 5724 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 21, 0); 5725 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 0, 0); 5726 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 1, 0); 5727 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 9, 0); 5728 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 18, 0); 5729 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 19, 0); 5730 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 20, 0); 5731 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 0, 0); 5732 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 1, 0); 5733 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 5, 0); 5734 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 9, 0); 5735 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 10, 0); 5736 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 11, 0); 5737 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 0, 0); 5738 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 1, 0); 5739 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 2, 0); 5740 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 20, 0, 0); 5741 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 20, 1, 0); 5742 test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 21, 0, 0); 5743} 5744 5745 5746int main () { 5747 test0(); 5748 test1(); 5749 test2(); 5750 test3(); 5751 test4(); 5752 test5(); 5753 test6(); 5754 test7(); 5755 test8(); 5756 test9(); 5757 test10(); 5758 test11(); 5759 test12(); 5760 test13(); 5761 test14(); 5762 test15(); 5763 test16(); 5764 test17(); 5765 test18(); 5766 test19(); 5767 test20(); 5768 test21(); 5769 test22(); 5770 test23(); 5771 test24(); 5772 test25(); 5773 test26(); 5774 test27(); 5775 test28(); 5776 test29(); 5777 test30(); 5778 test31(); 5779 test32(); 5780 test33(); 5781 test34(); 5782 test35(); 5783 test36(); 5784 test37(); 5785 test38(); 5786 test39(); 5787 test40(); 5788 test41(); 5789 test42(); 5790 test43(); 5791 test44(); 5792 test45(); 5793 test46(); 5794 test47(); 5795 test48(); 5796 test49(); 5797 test50(); 5798 test51(); 5799 test52(); 5800 test53(); 5801 test54(); 5802 5803 5804 { 5805 test("abcde", 5, 1, "", 0, 0, 0); 5806 test("abcde", 2, 4, "", 0, 0, 3); 5807 test("abcde", 2, 4, "abcde", 3, 4, -2); 5808 test("ABCde", 2, 4, "abcde", 2, 4, -1); 5809 } 5810 5811 { 5812 test(L"abcde", 5, 1, L"", 0, 0, 0); 5813 test(L"abcde", 2, 4, L"", 0, 0, 3); 5814 test(L"abcde", 2, 4, L"abcde", 3, 4, -2); 5815 test(L"ABCde", 2, 4, L"abcde", 2, 4, -1); 5816 } 5817 5818#if __cplusplus >= 201103L 5819 { 5820 test(u"abcde", 5, 1, u"", 0, 0, 0); 5821 test(u"abcde", 2, 4, u"", 0, 0, 3); 5822 test(u"abcde", 2, 4, u"abcde", 3, 4, -2); 5823 test(u"ABCde", 2, 4, u"abcde", 2, 4, -1); 5824 } 5825 5826 { 5827 test(U"abcde", 5, 1, U"", 0, 0, 0); 5828 test(U"abcde", 2, 4, U"", 0, 0, 3); 5829 test(U"abcde", 2, 4, U"abcde", 3, 4, -2); 5830 test(U"ABCde", 2, 4, U"abcde", 2, 4, -1); 5831 } 5832#endif 5833 5834#if _LIBCPP_STD_VER > 11 5835 { 5836 typedef std::experimental::basic_string_view<char, constexpr_char_traits<char>> SV; 5837 constexpr SV sv1 { "abcde", 5 }; 5838 static_assert ( sv1.compare(5, 1, "", 0, 0) == 0, "" ); 5839 static_assert ( sv1.compare(2, 4, "", 0, 0) == 1, "" ); 5840 static_assert ( sv1.compare(2, 4, "abcde", 3, 4) == -1, "" ); 5841 } 5842#endif 5843} 5844