1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
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 <string_view>
17#include <cassert>
18#include <stdexcept>
19
20#include "test_macros.h"
21#include "constexpr_char_traits.h"
22
23int sign(int x) { return x > 0 ? 1 : (x < 0 ? -1 : 0); }
24
25template <typename CharT>
26void test1(std::basic_string_view<CharT> sv1,
27 std::size_t pos1,
28 size_t n1,
29 std::basic_string_view<CharT> sv2,
30 std::size_t pos2,
31 size_t n2,
32 int expected) {
33#ifdef TEST_HAS_NO_EXCEPTIONS
34 if (pos1 <= sv1.size() && pos2 <= sv2.size())
35 assert(sign(sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected));
36#else
37 try {
38 assert(sign(sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected));
39 assert(pos1 <= sv1.size() && pos2 <= sv2.size());
40 } catch (const std::out_of_range&) {
41 assert(pos1 > sv1.size() || pos2 > sv2.size());
42 }
43#endif
44}
45
46template <typename CharT>
47void test(const CharT* s1, std::size_t pos1, size_t n1, const CharT* s2, std::size_t pos2, size_t n2, int expected) {
48 typedef std::basic_string_view<CharT> string_view_t;
49
50 string_view_t sv1(s1);
51 string_view_t sv2(s2);
52 test1(sv1, pos1, n1, sv2, pos2, n2, expected);
53}
54
55void test0() {
56 test(s1: "", pos1: 0, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
57 test(s1: "", pos1: 0, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
58 test(s1: "", pos1: 0, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
59 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
60 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
61 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
62 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
63 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
64 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
65 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
66 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
67 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
68 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
69 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
70 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
71 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
72 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
73 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
74 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
75 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
76 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
77 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
78 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
79 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
80 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
81 test(s1: "", pos1: 0, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
82 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
83 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
84 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
85 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
86 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
87 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
88 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
89 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
90 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
91 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
92 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
93 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
94 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
95 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
96 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
97 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
98 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
99 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
100 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
101 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
102 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
103 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
104 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
105 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
106 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
107 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
108 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
109 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
110 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
111 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
112 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
113 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
114 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
115 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
116 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
117 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
118 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
119 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
120 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
121 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
122 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
123 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
124 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
125 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
126 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
127 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
128 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
129 test(s1: "", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
130 test(s1: "", pos1: 0, n1: 1, s2: "", pos2: 0, n2: 0, expected: 0);
131 test(s1: "", pos1: 0, n1: 1, s2: "", pos2: 0, n2: 1, expected: 0);
132 test(s1: "", pos1: 0, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
133 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 0);
134 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: -1);
135 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: -2);
136 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: -4);
137 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: -5);
138 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: -5);
139 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 0);
140 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: -1);
141 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: -2);
142 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: -3);
143 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: -4);
144 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: -4);
145 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 0);
146 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: -1);
147 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: -2);
148 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: -3);
149 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: -3);
150 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 0);
151 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: -1);
152 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: -1);
153 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 0);
154 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 0);
155 test(s1: "", pos1: 0, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
156}
157
158void test1() {
159 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
160 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
161 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
162 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
163 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
164 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
165 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
166 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
167 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
168 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
169 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
170 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
171 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
172 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
173 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
174 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
175 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
176 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
177 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
178 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
179 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
180 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
181 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
182 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
183 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
184 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
185 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
186 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
187 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
188 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
189 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
190 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
191 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
192 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
193 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
194 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
195 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
196 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
197 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
198 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
199 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
200 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
201 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
202 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
203 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
204 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
205 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
206 test(s1: "", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
207 test(s1: "", pos1: 1, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
208 test(s1: "", pos1: 1, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
209 test(s1: "", pos1: 1, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
210 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
211 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: 0);
212 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: 0);
213 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: 0);
214 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: 0);
215 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: 0);
216 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
217 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: 0);
218 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: 0);
219 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: 0);
220 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: 0);
221 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: 0);
222 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
223 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: 0);
224 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: 0);
225 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: 0);
226 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: 0);
227 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
228 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: 0);
229 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: 0);
230 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
231 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
232 test(s1: "", pos1: 1, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
233 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
234 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: 0);
235 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: 0);
236 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: 0);
237 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: 0);
238 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: 0);
239 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
240 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: 0);
241 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: 0);
242 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: 0);
243 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: 0);
244 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: 0);
245 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
246 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: 0);
247 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: 0);
248 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: 0);
249 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: 0);
250 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: 0);
251 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
252 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: 0);
253 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: 0);
254 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
255 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
256 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
257 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
258 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 0);
259}
260
261void test2() {
262 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 0);
263 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 0);
264 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 0);
265 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 0);
266 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
267 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 0);
268 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 0);
269 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 0);
270 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 0);
271 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 0);
272 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
273 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: 0);
274 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: 0);
275 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: 0);
276 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: 0);
277 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: 0);
278 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
279 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: 0);
280 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: 0);
281 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
282 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
283 test(s1: "", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
284 test(s1: "abcde", pos1: 0, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
285 test(s1: "abcde", pos1: 0, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
286 test(s1: "abcde", pos1: 0, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
287 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
288 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
289 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
290 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
291 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
292 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
293 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
294 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
295 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
296 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
297 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
298 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
299 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
300 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
301 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
302 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
303 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
304 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
305 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
306 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
307 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
308 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
309 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
310 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
311 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
312 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
313 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
314 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
315 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
316 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
317 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
318 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
319 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
320 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
321 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
322 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
323 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
324 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
325 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
326 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
327 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
328 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
329 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
330 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
331 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
332 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
333 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
334 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
335 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
336 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
337 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
338 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
339 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
340 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
341 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
342 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
343 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
344 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
345 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
346 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
347 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
348 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
349 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
350 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
351 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
352 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
353 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
354 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
355 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
356 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
357 test(s1: "abcde", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
358 test(s1: "abcde", pos1: 0, n1: 1, s2: "", pos2: 0, n2: 0, expected: 1);
359 test(s1: "abcde", pos1: 0, n1: 1, s2: "", pos2: 0, n2: 1, expected: 1);
360 test(s1: "abcde", pos1: 0, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
361 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 1);
362}
363
364void test3() {
365 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: 0);
366 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: -1);
367 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: -3);
368 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: -4);
369 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: -4);
370 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 1);
371 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: -1);
372 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: -1);
373 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: -1);
374 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: -1);
375 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: -1);
376 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 1);
377 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: -2);
378 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: -2);
379 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: -2);
380 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: -2);
381 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 1);
382 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: -4);
383 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: -4);
384 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 1);
385 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 1);
386 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
387 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
388 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: 0);
389 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: -4);
390 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: -8);
391 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: -9);
392 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: -9);
393 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
394 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
395 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
396 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
397 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
398 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
399 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
400 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
401 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
402 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
403 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
404 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
405 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
406 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
407 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
408 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
409 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
410 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
411 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
412 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 0);
413 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -9);
414 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -18);
415 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -19);
416 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -19);
417 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
418 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
419 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
420 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
421 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
422 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
423 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
424 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
425 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
426 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
427 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
428 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
429 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
430 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
431 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
432 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
433 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
434 test(s1: "abcde", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
435 test(s1: "abcde", pos1: 0, n1: 2, s2: "", pos2: 0, n2: 0, expected: 2);
436 test(s1: "abcde", pos1: 0, n1: 2, s2: "", pos2: 0, n2: 1, expected: 2);
437 test(s1: "abcde", pos1: 0, n1: 2, s2: "", pos2: 1, n2: 0, expected: 0);
438 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 0, n2: 0, expected: 2);
439 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 0, n2: 1, expected: 1);
440 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 0, n2: 2, expected: 0);
441 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 0, n2: 4, expected: -2);
442 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 0, n2: 5, expected: -3);
443 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 0, n2: 6, expected: -3);
444 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 1, n2: 0, expected: 2);
445 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 1, n2: 1, expected: -1);
446 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 1, n2: 2, expected: -1);
447 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 1, n2: 3, expected: -1);
448 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 1, n2: 4, expected: -1);
449 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 1, n2: 5, expected: -1);
450 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 2, n2: 0, expected: 2);
451 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 2, n2: 1, expected: -2);
452 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 2, n2: 2, expected: -2);
453 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 2, n2: 3, expected: -2);
454 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 2, n2: 4, expected: -2);
455 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 4, n2: 0, expected: 2);
456 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 4, n2: 1, expected: -4);
457 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 4, n2: 2, expected: -4);
458 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 5, n2: 0, expected: 2);
459 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 5, n2: 1, expected: 2);
460 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcde", pos2: 6, n2: 0, expected: 0);
461 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 0, n2: 0, expected: 2);
462 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
463 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 0, n2: 5, expected: -3);
464 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 0, n2: 9, expected: -7);
465}
466
467void test4() {
468 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 0, n2: 10, expected: -8);
469 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 0, n2: 11, expected: -8);
470 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 1, n2: 0, expected: 2);
471 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
472 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
473 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
474 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
475 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
476 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 5, n2: 0, expected: 2);
477 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
478 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
479 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
480 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
481 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
482 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 9, n2: 0, expected: 2);
483 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
484 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
485 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 10, n2: 0, expected: 2);
486 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 10, n2: 1, expected: 2);
487 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
488 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 2);
489 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
490 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -8);
491 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -17);
492 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -18);
493 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -18);
494 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 2);
495 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
496 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
497 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
498 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
499 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
500 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 2);
501 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
502 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
503 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
504 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
505 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
506 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 2);
507 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
508 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
509 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 2);
510 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 2);
511 test(s1: "abcde", pos1: 0, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
512 test(s1: "abcde", pos1: 0, n1: 4, s2: "", pos2: 0, n2: 0, expected: 4);
513 test(s1: "abcde", pos1: 0, n1: 4, s2: "", pos2: 0, n2: 1, expected: 4);
514 test(s1: "abcde", pos1: 0, n1: 4, s2: "", pos2: 1, n2: 0, expected: 0);
515 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 0, n2: 0, expected: 4);
516 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 0, n2: 1, expected: 3);
517 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 0, n2: 2, expected: 2);
518 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 0, n2: 4, expected: 0);
519 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 0, n2: 5, expected: -1);
520 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 0, n2: 6, expected: -1);
521 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 1, n2: 0, expected: 4);
522 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 1, n2: 1, expected: -1);
523 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 1, n2: 2, expected: -1);
524 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 1, n2: 3, expected: -1);
525 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 1, n2: 4, expected: -1);
526 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 1, n2: 5, expected: -1);
527 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 2, n2: 0, expected: 4);
528 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 2, n2: 1, expected: -2);
529 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 2, n2: 2, expected: -2);
530 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 2, n2: 3, expected: -2);
531 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 2, n2: 4, expected: -2);
532 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 4, n2: 0, expected: 4);
533 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 4, n2: 1, expected: -4);
534 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 4, n2: 2, expected: -4);
535 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 5, n2: 0, expected: 4);
536 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 5, n2: 1, expected: 4);
537 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcde", pos2: 6, n2: 0, expected: 0);
538 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 0, n2: 0, expected: 4);
539 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 0, n2: 1, expected: 3);
540 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 0, n2: 5, expected: -1);
541 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 0, n2: 9, expected: -5);
542 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 0, n2: 10, expected: -6);
543 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 0, n2: 11, expected: -6);
544 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 1, n2: 0, expected: 4);
545 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
546 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
547 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
548 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
549 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
550 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 5, n2: 0, expected: 4);
551 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
552 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
553 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
554 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
555 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
556 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 9, n2: 0, expected: 4);
557 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
558 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
559 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 10, n2: 0, expected: 4);
560 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 10, n2: 1, expected: 4);
561 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
562 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 4);
563 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 3);
564 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -6);
565 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -15);
566 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -16);
567 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -16);
568}
569
570void test5() {
571 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 4);
572 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
573 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
574 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
575 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
576 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
577 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 4);
578 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
579 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
580 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
581 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
582 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
583 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 4);
584 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
585 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
586 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 4);
587 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 4);
588 test(s1: "abcde", pos1: 0, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
589 test(s1: "abcde", pos1: 0, n1: 5, s2: "", pos2: 0, n2: 0, expected: 5);
590 test(s1: "abcde", pos1: 0, n1: 5, s2: "", pos2: 0, n2: 1, expected: 5);
591 test(s1: "abcde", pos1: 0, n1: 5, s2: "", pos2: 1, n2: 0, expected: 0);
592 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 0, n2: 0, expected: 5);
593 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 0, n2: 1, expected: 4);
594 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 0, n2: 2, expected: 3);
595 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 0, n2: 4, expected: 1);
596 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 0, n2: 5, expected: 0);
597 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 0, n2: 6, expected: 0);
598 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 1, n2: 0, expected: 5);
599 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 1, n2: 1, expected: -1);
600 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 1, n2: 2, expected: -1);
601 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 1, n2: 3, expected: -1);
602 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 1, n2: 4, expected: -1);
603 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 1, n2: 5, expected: -1);
604 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 2, n2: 0, expected: 5);
605 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 2, n2: 1, expected: -2);
606 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 2, n2: 2, expected: -2);
607 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 2, n2: 3, expected: -2);
608 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 2, n2: 4, expected: -2);
609 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 4, n2: 0, expected: 5);
610 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 4, n2: 1, expected: -4);
611 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 4, n2: 2, expected: -4);
612 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 5, n2: 0, expected: 5);
613 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 5, n2: 1, expected: 5);
614 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcde", pos2: 6, n2: 0, expected: 0);
615 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 0, n2: 0, expected: 5);
616 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 0, n2: 1, expected: 4);
617 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 0, n2: 5, expected: 0);
618 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 0, n2: 9, expected: -4);
619 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 0, n2: 10, expected: -5);
620 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 0, n2: 11, expected: -5);
621 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 1, n2: 0, expected: 5);
622 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
623 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
624 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
625 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
626 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
627 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 5, n2: 0, expected: 5);
628 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
629 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
630 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
631 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
632 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
633 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 9, n2: 0, expected: 5);
634 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
635 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
636 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 10, n2: 0, expected: 5);
637 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 10, n2: 1, expected: 5);
638 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
639 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 5);
640 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 4);
641 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -5);
642 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -14);
643 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -15);
644 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -15);
645 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 5);
646 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
647 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
648 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
649 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
650 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
651 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 5);
652 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
653 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
654 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
655 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
656 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
657 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 5);
658 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
659 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
660 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 5);
661 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 5);
662 test(s1: "abcde", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
663 test(s1: "abcde", pos1: 0, n1: 6, s2: "", pos2: 0, n2: 0, expected: 5);
664 test(s1: "abcde", pos1: 0, n1: 6, s2: "", pos2: 0, n2: 1, expected: 5);
665 test(s1: "abcde", pos1: 0, n1: 6, s2: "", pos2: 1, n2: 0, expected: 0);
666 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 0, n2: 0, expected: 5);
667 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 0, n2: 1, expected: 4);
668 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 0, n2: 2, expected: 3);
669 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 0, n2: 4, expected: 1);
670 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 0, n2: 5, expected: 0);
671}
672
673void test6() {
674 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 0, n2: 6, expected: 0);
675 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 1, n2: 0, expected: 5);
676 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 1, n2: 1, expected: -1);
677 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 1, n2: 2, expected: -1);
678 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 1, n2: 3, expected: -1);
679 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 1, n2: 4, expected: -1);
680 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 1, n2: 5, expected: -1);
681 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 2, n2: 0, expected: 5);
682 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 2, n2: 1, expected: -2);
683 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 2, n2: 2, expected: -2);
684 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 2, n2: 3, expected: -2);
685 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 2, n2: 4, expected: -2);
686 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 4, n2: 0, expected: 5);
687 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 4, n2: 1, expected: -4);
688 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 4, n2: 2, expected: -4);
689 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 5, n2: 0, expected: 5);
690 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 5, n2: 1, expected: 5);
691 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcde", pos2: 6, n2: 0, expected: 0);
692 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 0, n2: 0, expected: 5);
693 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 0, n2: 1, expected: 4);
694 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 0, n2: 5, expected: 0);
695 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 0, n2: 9, expected: -4);
696 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 0, n2: 10, expected: -5);
697 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 0, n2: 11, expected: -5);
698 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 1, n2: 0, expected: 5);
699 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
700 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
701 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
702 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
703 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
704 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 5, n2: 0, expected: 5);
705 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
706 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
707 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
708 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
709 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
710 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 9, n2: 0, expected: 5);
711 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
712 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
713 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 10, n2: 0, expected: 5);
714 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 10, n2: 1, expected: 5);
715 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
716 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 5);
717 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 4);
718 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -5);
719 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -14);
720 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -15);
721 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -15);
722 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 5);
723 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
724 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
725 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
726 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
727 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
728 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 5);
729 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
730 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
731 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
732 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
733 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
734 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 5);
735 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
736 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
737 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 5);
738 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 5);
739 test(s1: "abcde", pos1: 0, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
740 test(s1: "abcde", pos1: 1, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
741 test(s1: "abcde", pos1: 1, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
742 test(s1: "abcde", pos1: 1, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
743 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
744 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
745 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
746 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
747 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
748 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
749 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
750 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
751 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
752 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
753 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
754 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
755 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
756 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
757 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
758 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
759 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
760 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
761 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
762 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
763 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
764 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
765 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
766 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
767 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
768 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
769 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
770 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
771 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
772 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
773 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
774}
775
776void test7() {
777 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
778 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
779 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
780 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
781 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
782 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
783 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
784 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
785 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
786 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
787 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
788 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
789 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
790 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
791 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
792 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
793 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
794 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
795 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
796 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
797 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
798 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
799 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
800 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
801 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
802 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
803 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
804 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
805 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
806 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
807 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
808 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
809 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
810 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
811 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
812 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
813 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
814 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
815 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
816 test(s1: "abcde", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
817 test(s1: "abcde", pos1: 1, n1: 1, s2: "", pos2: 0, n2: 0, expected: 1);
818 test(s1: "abcde", pos1: 1, n1: 1, s2: "", pos2: 0, n2: 1, expected: 1);
819 test(s1: "abcde", pos1: 1, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
820 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 1);
821 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: 1);
822 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: 1);
823 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: 1);
824 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: 1);
825 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: 1);
826 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 1);
827 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: 0);
828 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: -1);
829 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: -2);
830 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: -3);
831 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: -3);
832 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 1);
833 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: -1);
834 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: -1);
835 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: -1);
836 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: -1);
837 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 1);
838 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: -3);
839 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: -3);
840 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 1);
841 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 1);
842 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
843 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
844 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
845 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
846 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
847 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
848 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
849 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
850 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: 0);
851 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: -3);
852 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: -7);
853 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: -8);
854 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: -8);
855 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
856 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
857 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
858 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
859 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
860 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
861 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
862 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
863 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
864 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
865 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
866 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
867 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
868 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
869 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
870 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
871 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
872 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
873 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
874 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 0);
875 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -8);
876 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -17);
877}
878
879void test8() {
880 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -18);
881 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -18);
882 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
883 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
884 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
885 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
886 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
887 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
888 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
889 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
890 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
891 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
892 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
893 test(s1: "abcde", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
894 test(s1: "abcde", pos1: 1, n1: 2, s2: "", pos2: 0, n2: 0, expected: 2);
895 test(s1: "abcde", pos1: 1, n1: 2, s2: "", pos2: 0, n2: 1, expected: 2);
896 test(s1: "abcde", pos1: 1, n1: 2, s2: "", pos2: 1, n2: 0, expected: 0);
897 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 0, n2: 0, expected: 2);
898 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 0, n2: 1, expected: 1);
899 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 0, n2: 2, expected: 1);
900 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 0, n2: 4, expected: 1);
901 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 0, n2: 5, expected: 1);
902 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 0, n2: 6, expected: 1);
903 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 1, n2: 0, expected: 2);
904 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 1, n2: 1, expected: 1);
905 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 1, n2: 2, expected: 0);
906 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 1, n2: 3, expected: -1);
907 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 1, n2: 4, expected: -2);
908 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 1, n2: 5, expected: -2);
909 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 2, n2: 0, expected: 2);
910 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 2, n2: 1, expected: -1);
911 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 2, n2: 2, expected: -1);
912 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 2, n2: 3, expected: -1);
913 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 2, n2: 4, expected: -1);
914 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 4, n2: 0, expected: 2);
915 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 4, n2: 1, expected: -3);
916 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 4, n2: 2, expected: -3);
917 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 5, n2: 0, expected: 2);
918 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 5, n2: 1, expected: 2);
919 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcde", pos2: 6, n2: 0, expected: 0);
920 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 0, n2: 0, expected: 2);
921 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
922 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
923 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
924 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
925 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
926 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 1, n2: 0, expected: 2);
927 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 1, n2: 1, expected: 1);
928 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 1, n2: 4, expected: -2);
929 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 1, n2: 8, expected: -6);
930 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 1, n2: 9, expected: -7);
931 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 1, n2: 10, expected: -7);
932 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 5, n2: 0, expected: 2);
933 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
934 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
935 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
936 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
937 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
938 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 9, n2: 0, expected: 2);
939 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
940 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
941 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 10, n2: 0, expected: 2);
942 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 10, n2: 1, expected: 2);
943 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
944 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 2);
945 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
946 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
947 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
948 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
949 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
950 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 2);
951 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 1);
952 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -7);
953 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -16);
954 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -17);
955 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -17);
956 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 2);
957 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
958 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
959 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
960 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
961 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
962 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 2);
963 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
964 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
965 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 2);
966 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 2);
967 test(s1: "abcde", pos1: 1, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
968 test(s1: "abcde", pos1: 1, n1: 3, s2: "", pos2: 0, n2: 0, expected: 3);
969 test(s1: "abcde", pos1: 1, n1: 3, s2: "", pos2: 0, n2: 1, expected: 3);
970 test(s1: "abcde", pos1: 1, n1: 3, s2: "", pos2: 1, n2: 0, expected: 0);
971 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 0, n2: 0, expected: 3);
972 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 0, n2: 1, expected: 1);
973 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 0, n2: 2, expected: 1);
974 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 0, n2: 4, expected: 1);
975 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 0, n2: 5, expected: 1);
976 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 0, n2: 6, expected: 1);
977 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 1, n2: 0, expected: 3);
978 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 1, n2: 1, expected: 2);
979 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 1, n2: 2, expected: 1);
980}
981
982void test9() {
983 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 1, n2: 3, expected: 0);
984 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 1, n2: 4, expected: -1);
985 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 1, n2: 5, expected: -1);
986 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 2, n2: 0, expected: 3);
987 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 2, n2: 1, expected: -1);
988 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 2, n2: 2, expected: -1);
989 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 2, n2: 3, expected: -1);
990 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 2, n2: 4, expected: -1);
991 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 4, n2: 0, expected: 3);
992 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 4, n2: 1, expected: -3);
993 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 4, n2: 2, expected: -3);
994 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 5, n2: 0, expected: 3);
995 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 5, n2: 1, expected: 3);
996 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcde", pos2: 6, n2: 0, expected: 0);
997 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 0, n2: 0, expected: 3);
998 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
999 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
1000 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
1001 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
1002 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
1003 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 1, n2: 0, expected: 3);
1004 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 1, n2: 1, expected: 2);
1005 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
1006 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 1, n2: 8, expected: -5);
1007 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 1, n2: 9, expected: -6);
1008 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 1, n2: 10, expected: -6);
1009 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 5, n2: 0, expected: 3);
1010 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
1011 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
1012 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
1013 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
1014 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
1015 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 9, n2: 0, expected: 3);
1016 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
1017 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
1018 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 10, n2: 0, expected: 3);
1019 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 10, n2: 1, expected: 3);
1020 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1021 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 3);
1022 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
1023 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
1024 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
1025 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
1026 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
1027 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 3);
1028 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 2);
1029 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -6);
1030 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -15);
1031 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -16);
1032 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -16);
1033 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 3);
1034 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
1035 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
1036 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
1037 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
1038 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
1039 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 3);
1040 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
1041 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
1042 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 3);
1043 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 3);
1044 test(s1: "abcde", pos1: 1, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1045 test(s1: "abcde", pos1: 1, n1: 4, s2: "", pos2: 0, n2: 0, expected: 4);
1046 test(s1: "abcde", pos1: 1, n1: 4, s2: "", pos2: 0, n2: 1, expected: 4);
1047 test(s1: "abcde", pos1: 1, n1: 4, s2: "", pos2: 1, n2: 0, expected: 0);
1048 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 0, n2: 0, expected: 4);
1049 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 0, n2: 1, expected: 1);
1050 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 0, n2: 2, expected: 1);
1051 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 0, n2: 4, expected: 1);
1052 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 0, n2: 5, expected: 1);
1053 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 0, n2: 6, expected: 1);
1054 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 1, n2: 0, expected: 4);
1055 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 1, n2: 1, expected: 3);
1056 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 1, n2: 2, expected: 2);
1057 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 1, n2: 3, expected: 1);
1058 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 1, n2: 4, expected: 0);
1059 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 1, n2: 5, expected: 0);
1060 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 2, n2: 0, expected: 4);
1061 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 2, n2: 1, expected: -1);
1062 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 2, n2: 2, expected: -1);
1063 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 2, n2: 3, expected: -1);
1064 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 2, n2: 4, expected: -1);
1065 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 4, n2: 0, expected: 4);
1066 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 4, n2: 1, expected: -3);
1067 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 4, n2: 2, expected: -3);
1068 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 5, n2: 0, expected: 4);
1069 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 5, n2: 1, expected: 4);
1070 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1071 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 0, n2: 0, expected: 4);
1072 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
1073 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
1074 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
1075 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
1076 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
1077 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 1, n2: 0, expected: 4);
1078 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 1, n2: 1, expected: 3);
1079 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 1, n2: 4, expected: 0);
1080 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 1, n2: 8, expected: -4);
1081 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 1, n2: 9, expected: -5);
1082 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 1, n2: 10, expected: -5);
1083}
1084
1085void test10() {
1086 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 5, n2: 0, expected: 4);
1087 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
1088 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
1089 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
1090 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
1091 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
1092 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 9, n2: 0, expected: 4);
1093 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
1094 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
1095 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 10, n2: 0, expected: 4);
1096 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 10, n2: 1, expected: 4);
1097 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1098 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 4);
1099 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
1100 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
1101 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
1102 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
1103 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
1104 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 4);
1105 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 3);
1106 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -5);
1107 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -14);
1108 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -15);
1109 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -15);
1110 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 4);
1111 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
1112 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
1113 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
1114 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
1115 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
1116 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 4);
1117 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
1118 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
1119 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 4);
1120 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 4);
1121 test(s1: "abcde", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1122 test(s1: "abcde", pos1: 1, n1: 5, s2: "", pos2: 0, n2: 0, expected: 4);
1123 test(s1: "abcde", pos1: 1, n1: 5, s2: "", pos2: 0, n2: 1, expected: 4);
1124 test(s1: "abcde", pos1: 1, n1: 5, s2: "", pos2: 1, n2: 0, expected: 0);
1125 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 0, n2: 0, expected: 4);
1126 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 0, n2: 1, expected: 1);
1127 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 0, n2: 2, expected: 1);
1128 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 0, n2: 4, expected: 1);
1129 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 0, n2: 5, expected: 1);
1130 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 0, n2: 6, expected: 1);
1131 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 1, n2: 0, expected: 4);
1132 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 1, n2: 1, expected: 3);
1133 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 1, n2: 2, expected: 2);
1134 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 1, n2: 3, expected: 1);
1135 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 1, n2: 4, expected: 0);
1136 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 1, n2: 5, expected: 0);
1137 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 2, n2: 0, expected: 4);
1138 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 2, n2: 1, expected: -1);
1139 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 2, n2: 2, expected: -1);
1140 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 2, n2: 3, expected: -1);
1141 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 2, n2: 4, expected: -1);
1142 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 4, n2: 0, expected: 4);
1143 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 4, n2: 1, expected: -3);
1144 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 4, n2: 2, expected: -3);
1145 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 5, n2: 0, expected: 4);
1146 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 5, n2: 1, expected: 4);
1147 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1148 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 0, n2: 0, expected: 4);
1149 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
1150 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
1151 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
1152 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
1153 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
1154 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 1, n2: 0, expected: 4);
1155 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 1, n2: 1, expected: 3);
1156 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 1, n2: 4, expected: 0);
1157 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 1, n2: 8, expected: -4);
1158 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 1, n2: 9, expected: -5);
1159 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 1, n2: 10, expected: -5);
1160 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 5, n2: 0, expected: 4);
1161 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
1162 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
1163 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
1164 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
1165 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
1166 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 9, n2: 0, expected: 4);
1167 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
1168 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
1169 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 10, n2: 0, expected: 4);
1170 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 10, n2: 1, expected: 4);
1171 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1172 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 4);
1173 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
1174 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
1175 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
1176 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
1177 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
1178 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 4);
1179 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 3);
1180 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -5);
1181 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -14);
1182 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -15);
1183 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -15);
1184 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 4);
1185 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
1186}
1187
1188void test11() {
1189 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
1190 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
1191 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
1192 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
1193 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 4);
1194 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
1195 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
1196 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 4);
1197 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 4);
1198 test(s1: "abcde", pos1: 1, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1199 test(s1: "abcde", pos1: 2, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
1200 test(s1: "abcde", pos1: 2, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
1201 test(s1: "abcde", pos1: 2, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
1202 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
1203 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
1204 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
1205 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
1206 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
1207 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
1208 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
1209 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
1210 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
1211 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
1212 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
1213 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
1214 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
1215 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
1216 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
1217 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
1218 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
1219 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
1220 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
1221 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
1222 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
1223 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
1224 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1225 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
1226 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
1227 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
1228 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
1229 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
1230 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
1231 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
1232 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
1233 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
1234 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
1235 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
1236 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
1237 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
1238 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
1239 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
1240 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
1241 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
1242 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
1243 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
1244 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
1245 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
1246 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
1247 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
1248 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1249 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
1250 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
1251 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
1252 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
1253 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
1254 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
1255 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
1256 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
1257 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
1258 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
1259 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
1260 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
1261 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
1262 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
1263 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
1264 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
1265 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
1266 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
1267 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
1268 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
1269 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
1270 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
1271 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
1272 test(s1: "abcde", pos1: 2, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1273 test(s1: "abcde", pos1: 2, n1: 1, s2: "", pos2: 0, n2: 0, expected: 1);
1274 test(s1: "abcde", pos1: 2, n1: 1, s2: "", pos2: 0, n2: 1, expected: 1);
1275 test(s1: "abcde", pos1: 2, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
1276 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 1);
1277 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: 2);
1278 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: 2);
1279 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: 2);
1280 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: 2);
1281 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: 2);
1282 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 1);
1283 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: 1);
1284 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: 1);
1285 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: 1);
1286 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: 1);
1287 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: 1);
1288 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 1);
1289}
1290
1291void test12() {
1292 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: 0);
1293 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: -1);
1294 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: -2);
1295 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: -2);
1296 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 1);
1297 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: -2);
1298 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: -2);
1299 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 1);
1300 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 1);
1301 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1302 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
1303 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: 2);
1304 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: 2);
1305 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: 2);
1306 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: 2);
1307 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: 2);
1308 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
1309 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: 1);
1310 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: 1);
1311 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: 1);
1312 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: 1);
1313 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: 1);
1314 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
1315 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: -3);
1316 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -3);
1317 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -3);
1318 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -3);
1319 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -3);
1320 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
1321 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -7);
1322 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -7);
1323 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
1324 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
1325 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1326 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
1327 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 2);
1328 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 2);
1329 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 2);
1330 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 2);
1331 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 2);
1332 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
1333 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 1);
1334 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 1);
1335 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 1);
1336 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 1);
1337 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 1);
1338 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
1339 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -8);
1340 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -8);
1341 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -8);
1342 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -8);
1343 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -8);
1344 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
1345 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -17);
1346 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -17);
1347 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
1348 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
1349 test(s1: "abcde", pos1: 2, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1350 test(s1: "abcde", pos1: 2, n1: 2, s2: "", pos2: 0, n2: 0, expected: 2);
1351 test(s1: "abcde", pos1: 2, n1: 2, s2: "", pos2: 0, n2: 1, expected: 2);
1352 test(s1: "abcde", pos1: 2, n1: 2, s2: "", pos2: 1, n2: 0, expected: 0);
1353 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 0, n2: 0, expected: 2);
1354 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 0, n2: 1, expected: 2);
1355 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 0, n2: 2, expected: 2);
1356 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 0, n2: 4, expected: 2);
1357 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 0, n2: 5, expected: 2);
1358 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 0, n2: 6, expected: 2);
1359 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 1, n2: 0, expected: 2);
1360 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 1, n2: 1, expected: 1);
1361 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 1, n2: 2, expected: 1);
1362 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 1, n2: 3, expected: 1);
1363 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 1, n2: 4, expected: 1);
1364 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 1, n2: 5, expected: 1);
1365 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 2, n2: 0, expected: 2);
1366 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 2, n2: 1, expected: 1);
1367 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 2, n2: 2, expected: 0);
1368 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 2, n2: 3, expected: -1);
1369 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 2, n2: 4, expected: -1);
1370 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 4, n2: 0, expected: 2);
1371 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 4, n2: 1, expected: -2);
1372 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 4, n2: 2, expected: -2);
1373 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 5, n2: 0, expected: 2);
1374 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 5, n2: 1, expected: 2);
1375 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1376 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 0, n2: 0, expected: 2);
1377 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 0, n2: 1, expected: 2);
1378 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 0, n2: 5, expected: 2);
1379 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 0, n2: 9, expected: 2);
1380 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 0, n2: 10, expected: 2);
1381 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 0, n2: 11, expected: 2);
1382 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 1, n2: 0, expected: 2);
1383 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 1, n2: 1, expected: 1);
1384 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 1, n2: 4, expected: 1);
1385 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 1, n2: 8, expected: 1);
1386 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 1, n2: 9, expected: 1);
1387 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 1, n2: 10, expected: 1);
1388 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 5, n2: 0, expected: 2);
1389 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 5, n2: 1, expected: -3);
1390 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 5, n2: 2, expected: -3);
1391 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 5, n2: 4, expected: -3);
1392}
1393
1394void test13() {
1395 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 5, n2: 5, expected: -3);
1396 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 5, n2: 6, expected: -3);
1397 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 9, n2: 0, expected: 2);
1398 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 9, n2: 1, expected: -7);
1399 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 9, n2: 2, expected: -7);
1400 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 10, n2: 0, expected: 2);
1401 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 10, n2: 1, expected: 2);
1402 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1403 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 2);
1404 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 2);
1405 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 2);
1406 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 2);
1407 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 2);
1408 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 2);
1409 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 2);
1410 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 1);
1411 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 1);
1412 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 1);
1413 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 1);
1414 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 1);
1415 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 2);
1416 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -8);
1417 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -8);
1418 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -8);
1419 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -8);
1420 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -8);
1421 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 2);
1422 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -17);
1423 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -17);
1424 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 2);
1425 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 2);
1426 test(s1: "abcde", pos1: 2, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1427 test(s1: "abcde", pos1: 2, n1: 3, s2: "", pos2: 0, n2: 0, expected: 3);
1428 test(s1: "abcde", pos1: 2, n1: 3, s2: "", pos2: 0, n2: 1, expected: 3);
1429 test(s1: "abcde", pos1: 2, n1: 3, s2: "", pos2: 1, n2: 0, expected: 0);
1430 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 0, n2: 0, expected: 3);
1431 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 0, n2: 1, expected: 2);
1432 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 0, n2: 2, expected: 2);
1433 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 0, n2: 4, expected: 2);
1434 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 0, n2: 5, expected: 2);
1435 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 0, n2: 6, expected: 2);
1436 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 1, n2: 0, expected: 3);
1437 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 1, n2: 1, expected: 1);
1438 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 1, n2: 2, expected: 1);
1439 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 1, n2: 3, expected: 1);
1440 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 1, n2: 4, expected: 1);
1441 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 1, n2: 5, expected: 1);
1442 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 2, n2: 0, expected: 3);
1443 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 2, n2: 1, expected: 2);
1444 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 2, n2: 2, expected: 1);
1445 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 2, n2: 3, expected: 0);
1446 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 2, n2: 4, expected: 0);
1447 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 4, n2: 0, expected: 3);
1448 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 4, n2: 1, expected: -2);
1449 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 4, n2: 2, expected: -2);
1450 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 5, n2: 0, expected: 3);
1451 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 5, n2: 1, expected: 3);
1452 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1453 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 0, n2: 0, expected: 3);
1454 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 0, n2: 1, expected: 2);
1455 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 0, n2: 5, expected: 2);
1456 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 0, n2: 9, expected: 2);
1457 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 0, n2: 10, expected: 2);
1458 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 0, n2: 11, expected: 2);
1459 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 1, n2: 0, expected: 3);
1460 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 1, n2: 1, expected: 1);
1461 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 1, n2: 4, expected: 1);
1462 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 1, n2: 8, expected: 1);
1463 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 1, n2: 9, expected: 1);
1464 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 1, n2: 10, expected: 1);
1465 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 5, n2: 0, expected: 3);
1466 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 5, n2: 1, expected: -3);
1467 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 5, n2: 2, expected: -3);
1468 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 5, n2: 4, expected: -3);
1469 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 5, n2: 5, expected: -3);
1470 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 5, n2: 6, expected: -3);
1471 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 9, n2: 0, expected: 3);
1472 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 9, n2: 1, expected: -7);
1473 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 9, n2: 2, expected: -7);
1474 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 10, n2: 0, expected: 3);
1475 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 10, n2: 1, expected: 3);
1476 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1477 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 3);
1478 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 2);
1479 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 2);
1480 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 2);
1481 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 2);
1482 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 2);
1483 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 3);
1484 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 1);
1485 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 1);
1486 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 1);
1487 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 1);
1488 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 1);
1489 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 3);
1490 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -8);
1491 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -8);
1492 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -8);
1493 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -8);
1494 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -8);
1495}
1496
1497void test14() {
1498 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 3);
1499 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -17);
1500 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -17);
1501 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 3);
1502 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 3);
1503 test(s1: "abcde", pos1: 2, n1: 3, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1504 test(s1: "abcde", pos1: 2, n1: 4, s2: "", pos2: 0, n2: 0, expected: 3);
1505 test(s1: "abcde", pos1: 2, n1: 4, s2: "", pos2: 0, n2: 1, expected: 3);
1506 test(s1: "abcde", pos1: 2, n1: 4, s2: "", pos2: 1, n2: 0, expected: 0);
1507 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 0, n2: 0, expected: 3);
1508 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 0, n2: 1, expected: 2);
1509 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 0, n2: 2, expected: 2);
1510 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 0, n2: 4, expected: 2);
1511 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 0, n2: 5, expected: 2);
1512 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 0, n2: 6, expected: 2);
1513 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 1, n2: 0, expected: 3);
1514 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 1, n2: 1, expected: 1);
1515 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 1, n2: 2, expected: 1);
1516 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 1, n2: 3, expected: 1);
1517 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 1, n2: 4, expected: 1);
1518 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 1, n2: 5, expected: 1);
1519 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 2, n2: 0, expected: 3);
1520 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 2, n2: 1, expected: 2);
1521 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 2, n2: 2, expected: 1);
1522 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 2, n2: 3, expected: 0);
1523 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 2, n2: 4, expected: 0);
1524 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 4, n2: 0, expected: 3);
1525 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 4, n2: 1, expected: -2);
1526 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 4, n2: 2, expected: -2);
1527 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 5, n2: 0, expected: 3);
1528 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 5, n2: 1, expected: 3);
1529 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1530 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 0, n2: 0, expected: 3);
1531 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 0, n2: 1, expected: 2);
1532 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 0, n2: 5, expected: 2);
1533 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 0, n2: 9, expected: 2);
1534 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 0, n2: 10, expected: 2);
1535 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 0, n2: 11, expected: 2);
1536 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 1, n2: 0, expected: 3);
1537 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 1, n2: 1, expected: 1);
1538 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 1, n2: 4, expected: 1);
1539 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 1, n2: 8, expected: 1);
1540 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 1, n2: 9, expected: 1);
1541 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 1, n2: 10, expected: 1);
1542 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 5, n2: 0, expected: 3);
1543 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 5, n2: 1, expected: -3);
1544 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 5, n2: 2, expected: -3);
1545 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 5, n2: 4, expected: -3);
1546 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 5, n2: 5, expected: -3);
1547 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 5, n2: 6, expected: -3);
1548 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 9, n2: 0, expected: 3);
1549 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 9, n2: 1, expected: -7);
1550 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 9, n2: 2, expected: -7);
1551 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 10, n2: 0, expected: 3);
1552 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 10, n2: 1, expected: 3);
1553 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1554 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 3);
1555 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 2);
1556 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 2);
1557 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 2);
1558 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 2);
1559 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 2);
1560 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 3);
1561 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 1);
1562 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 1);
1563 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 1);
1564 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 1);
1565 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 1);
1566 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 3);
1567 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -8);
1568 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -8);
1569 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -8);
1570 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -8);
1571 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -8);
1572 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 3);
1573 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -17);
1574 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -17);
1575 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 3);
1576 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 3);
1577 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1578 test(s1: "abcde", pos1: 4, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
1579 test(s1: "abcde", pos1: 4, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
1580 test(s1: "abcde", pos1: 4, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
1581 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
1582 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
1583 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
1584 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
1585 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
1586 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
1587 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
1588 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
1589 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
1590 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
1591 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
1592 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
1593 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
1594 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
1595 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
1596 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
1597 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
1598}
1599
1600void test15() {
1601 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
1602 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
1603 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
1604 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
1605 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
1606 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1607 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
1608 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
1609 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
1610 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
1611 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
1612 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
1613 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
1614 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
1615 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
1616 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
1617 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
1618 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
1619 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
1620 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
1621 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
1622 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
1623 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
1624 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
1625 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
1626 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
1627 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
1628 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
1629 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
1630 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1631 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
1632 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
1633 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
1634 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
1635 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
1636 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
1637 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
1638 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
1639 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
1640 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
1641 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
1642 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
1643 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
1644 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
1645 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
1646 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
1647 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
1648 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
1649 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
1650 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
1651 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
1652 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
1653 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
1654 test(s1: "abcde", pos1: 4, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1655 test(s1: "abcde", pos1: 4, n1: 1, s2: "", pos2: 0, n2: 0, expected: 1);
1656 test(s1: "abcde", pos1: 4, n1: 1, s2: "", pos2: 0, n2: 1, expected: 1);
1657 test(s1: "abcde", pos1: 4, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
1658 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 1);
1659 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: 4);
1660 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: 4);
1661 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: 4);
1662 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: 4);
1663 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: 4);
1664 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 1);
1665 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: 3);
1666 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: 3);
1667 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: 3);
1668 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: 3);
1669 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: 3);
1670 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 1);
1671 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: 2);
1672 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: 2);
1673 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: 2);
1674 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: 2);
1675 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 1);
1676 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: 0);
1677 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: 0);
1678 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 1);
1679 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 1);
1680 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1681 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
1682 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: 4);
1683 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: 4);
1684 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: 4);
1685 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: 4);
1686 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: 4);
1687 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
1688 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: 3);
1689 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: 3);
1690 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: 3);
1691 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: 3);
1692 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: 3);
1693 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
1694 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
1695 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -1);
1696 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -1);
1697 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -1);
1698 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -1);
1699 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
1700 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -5);
1701}
1702
1703void test16() {
1704 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -5);
1705 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
1706 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
1707 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1708 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
1709 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 4);
1710 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 4);
1711 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 4);
1712 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 4);
1713 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 4);
1714 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
1715 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 3);
1716 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 3);
1717 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 3);
1718 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 3);
1719 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 3);
1720 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
1721 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -6);
1722 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -6);
1723 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -6);
1724 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -6);
1725 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -6);
1726 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
1727 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -15);
1728 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -15);
1729 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
1730 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
1731 test(s1: "abcde", pos1: 4, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1732 test(s1: "abcde", pos1: 4, n1: 2, s2: "", pos2: 0, n2: 0, expected: 1);
1733 test(s1: "abcde", pos1: 4, n1: 2, s2: "", pos2: 0, n2: 1, expected: 1);
1734 test(s1: "abcde", pos1: 4, n1: 2, s2: "", pos2: 1, n2: 0, expected: 0);
1735 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 0, n2: 0, expected: 1);
1736 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 0, n2: 1, expected: 4);
1737 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 0, n2: 2, expected: 4);
1738 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 0, n2: 4, expected: 4);
1739 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 0, n2: 5, expected: 4);
1740 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 0, n2: 6, expected: 4);
1741 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 1, n2: 0, expected: 1);
1742 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 1, n2: 1, expected: 3);
1743 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 1, n2: 2, expected: 3);
1744 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 1, n2: 3, expected: 3);
1745 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 1, n2: 4, expected: 3);
1746 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 1, n2: 5, expected: 3);
1747 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 2, n2: 0, expected: 1);
1748 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 2, n2: 1, expected: 2);
1749 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 2, n2: 2, expected: 2);
1750 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 2, n2: 3, expected: 2);
1751 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 2, n2: 4, expected: 2);
1752 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 4, n2: 0, expected: 1);
1753 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 4, n2: 1, expected: 0);
1754 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 4, n2: 2, expected: 0);
1755 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 5, n2: 0, expected: 1);
1756 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 5, n2: 1, expected: 1);
1757 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1758 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
1759 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 0, n2: 1, expected: 4);
1760 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 0, n2: 5, expected: 4);
1761 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 0, n2: 9, expected: 4);
1762 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 0, n2: 10, expected: 4);
1763 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 0, n2: 11, expected: 4);
1764 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
1765 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 1, n2: 1, expected: 3);
1766 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 1, n2: 4, expected: 3);
1767 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 1, n2: 8, expected: 3);
1768 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 1, n2: 9, expected: 3);
1769 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 1, n2: 10, expected: 3);
1770 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
1771 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
1772 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 5, n2: 2, expected: -1);
1773 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 5, n2: 4, expected: -1);
1774 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 5, n2: 5, expected: -1);
1775 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 5, n2: 6, expected: -1);
1776 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
1777 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 9, n2: 1, expected: -5);
1778 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 9, n2: 2, expected: -5);
1779 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
1780 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
1781 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1782 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
1783 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 4);
1784 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 4);
1785 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 4);
1786 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 4);
1787 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 4);
1788 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
1789 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 3);
1790 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 3);
1791 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 3);
1792 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 3);
1793 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 3);
1794 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
1795 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -6);
1796 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -6);
1797 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -6);
1798 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -6);
1799 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -6);
1800 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
1801 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -15);
1802 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -15);
1803 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
1804}
1805
1806void test17() {
1807 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
1808 test(s1: "abcde", pos1: 4, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1809 test(s1: "abcde", pos1: 5, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
1810 test(s1: "abcde", pos1: 5, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
1811 test(s1: "abcde", pos1: 5, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
1812 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
1813 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
1814 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
1815 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
1816 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
1817 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
1818 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
1819 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
1820 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
1821 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
1822 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
1823 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
1824 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
1825 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
1826 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
1827 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
1828 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
1829 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
1830 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
1831 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
1832 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
1833 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
1834 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1835 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
1836 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
1837 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
1838 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
1839 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
1840 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
1841 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
1842 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
1843 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
1844 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
1845 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
1846 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
1847 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
1848 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
1849 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
1850 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
1851 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
1852 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
1853 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
1854 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
1855 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
1856 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
1857 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
1858 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1859 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
1860 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
1861 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
1862 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
1863 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
1864 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
1865 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
1866 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
1867 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
1868 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
1869 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
1870 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
1871 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
1872 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
1873 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
1874 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
1875 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
1876 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
1877 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
1878 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
1879 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
1880 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
1881 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
1882 test(s1: "abcde", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1883 test(s1: "abcde", pos1: 5, n1: 1, s2: "", pos2: 0, n2: 0, expected: 0);
1884 test(s1: "abcde", pos1: 5, n1: 1, s2: "", pos2: 0, n2: 1, expected: 0);
1885 test(s1: "abcde", pos1: 5, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
1886 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 0);
1887 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: -1);
1888 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: -2);
1889 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: -4);
1890 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: -5);
1891 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: -5);
1892 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 0);
1893 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: -1);
1894 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: -2);
1895 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: -3);
1896 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: -4);
1897 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: -4);
1898 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 0);
1899 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: -1);
1900 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: -2);
1901 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: -3);
1902 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: -3);
1903 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 0);
1904 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: -1);
1905 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: -1);
1906 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 0);
1907}
1908
1909void test18() {
1910 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 0);
1911 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1912 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
1913 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
1914 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
1915 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
1916 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
1917 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
1918 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
1919 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
1920 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
1921 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
1922 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
1923 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
1924 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
1925 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
1926 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
1927 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
1928 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
1929 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
1930 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
1931 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
1932 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
1933 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
1934 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
1935 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
1936 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
1937 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
1938 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
1939 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
1940 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
1941 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
1942 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
1943 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
1944 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
1945 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
1946 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
1947 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
1948 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
1949 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
1950 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
1951 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
1952 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
1953 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
1954 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
1955 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
1956 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
1957 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
1958 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
1959 test(s1: "abcde", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
1960 test(s1: "abcde", pos1: 6, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
1961 test(s1: "abcde", pos1: 6, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
1962 test(s1: "abcde", pos1: 6, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
1963 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
1964 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: 0);
1965 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: 0);
1966 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: 0);
1967 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: 0);
1968 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: 0);
1969 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
1970 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: 0);
1971 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: 0);
1972 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: 0);
1973 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: 0);
1974 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: 0);
1975 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
1976 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: 0);
1977 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: 0);
1978 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: 0);
1979 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: 0);
1980 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
1981 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: 0);
1982 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: 0);
1983 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
1984 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
1985 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
1986 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
1987 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: 0);
1988 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: 0);
1989 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: 0);
1990 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: 0);
1991 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: 0);
1992 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
1993 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: 0);
1994 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: 0);
1995 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: 0);
1996 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: 0);
1997 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: 0);
1998 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
1999 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: 0);
2000 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: 0);
2001 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: 0);
2002 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: 0);
2003 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: 0);
2004 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
2005 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: 0);
2006 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: 0);
2007 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
2008 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
2009 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2010}
2011
2012void test19() {
2013 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
2014 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 0);
2015 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 0);
2016 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 0);
2017 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 0);
2018 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 0);
2019 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
2020 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 0);
2021 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 0);
2022 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 0);
2023 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 0);
2024 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 0);
2025 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
2026 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: 0);
2027 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: 0);
2028 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: 0);
2029 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: 0);
2030 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: 0);
2031 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
2032 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: 0);
2033 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: 0);
2034 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
2035 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
2036 test(s1: "abcde", pos1: 6, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2037 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
2038 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
2039 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
2040 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
2041 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
2042 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
2043 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
2044 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
2045 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
2046 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
2047 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
2048 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
2049 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
2050 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
2051 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
2052 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
2053 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
2054 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
2055 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
2056 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
2057 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
2058 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
2059 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
2060 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
2061 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
2062 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2063 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
2064 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
2065 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
2066 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
2067 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
2068 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
2069 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
2070 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
2071 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
2072 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
2073 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
2074 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
2075 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
2076 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
2077 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
2078 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
2079 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
2080 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
2081 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
2082 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
2083 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
2084 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
2085 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
2086 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2087 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
2088 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
2089 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
2090 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
2091 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
2092 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
2093 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
2094 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
2095 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
2096 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
2097 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
2098 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
2099 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
2100 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
2101 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
2102 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
2103 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
2104 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
2105 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
2106 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
2107 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
2108 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
2109 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
2110 test(s1: "abcdefghij", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2111 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "", pos2: 0, n2: 0, expected: 1);
2112 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "", pos2: 0, n2: 1, expected: 1);
2113}
2114
2115void test20() {
2116 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
2117 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 1);
2118 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: 0);
2119 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: -1);
2120 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: -3);
2121 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: -4);
2122 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: -4);
2123 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 1);
2124 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: -1);
2125 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: -1);
2126 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: -1);
2127 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: -1);
2128 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: -1);
2129 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 1);
2130 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: -2);
2131 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: -2);
2132 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: -2);
2133 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: -2);
2134 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 1);
2135 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: -4);
2136 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: -4);
2137 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 1);
2138 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 1);
2139 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2140 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
2141 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: 0);
2142 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: -4);
2143 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: -8);
2144 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: -9);
2145 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: -9);
2146 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
2147 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
2148 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
2149 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
2150 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
2151 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
2152 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
2153 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
2154 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
2155 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
2156 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
2157 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
2158 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
2159 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
2160 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
2161 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
2162 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
2163 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2164 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
2165 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 0);
2166 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -9);
2167 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -18);
2168 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -19);
2169 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -19);
2170 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
2171 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
2172 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
2173 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
2174 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
2175 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
2176 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
2177 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
2178 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
2179 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
2180 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
2181 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
2182 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
2183 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
2184 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
2185 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
2186 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
2187 test(s1: "abcdefghij", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2188 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "", pos2: 0, n2: 0, expected: 5);
2189 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "", pos2: 0, n2: 1, expected: 5);
2190 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "", pos2: 1, n2: 0, expected: 0);
2191 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 0, n2: 0, expected: 5);
2192 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 0, n2: 1, expected: 4);
2193 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 0, n2: 2, expected: 3);
2194 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 0, n2: 4, expected: 1);
2195 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 0, n2: 5, expected: 0);
2196 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 0, n2: 6, expected: 0);
2197 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 1, n2: 0, expected: 5);
2198 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 1, n2: 1, expected: -1);
2199 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 1, n2: 2, expected: -1);
2200 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 1, n2: 3, expected: -1);
2201 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 1, n2: 4, expected: -1);
2202 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 1, n2: 5, expected: -1);
2203 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 2, n2: 0, expected: 5);
2204 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 2, n2: 1, expected: -2);
2205 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 2, n2: 2, expected: -2);
2206 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 2, n2: 3, expected: -2);
2207 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 2, n2: 4, expected: -2);
2208 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 4, n2: 0, expected: 5);
2209 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 4, n2: 1, expected: -4);
2210 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 4, n2: 2, expected: -4);
2211 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 5, n2: 0, expected: 5);
2212 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 5, n2: 1, expected: 5);
2213 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2214 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 0, n2: 0, expected: 5);
2215 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 0, n2: 1, expected: 4);
2216}
2217
2218void test21() {
2219 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 0, n2: 5, expected: 0);
2220 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 0, n2: 9, expected: -4);
2221 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 0, n2: 10, expected: -5);
2222 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 0, n2: 11, expected: -5);
2223 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 1, n2: 0, expected: 5);
2224 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
2225 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
2226 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
2227 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
2228 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
2229 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 5, n2: 0, expected: 5);
2230 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
2231 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
2232 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
2233 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
2234 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
2235 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 9, n2: 0, expected: 5);
2236 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
2237 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
2238 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 10, n2: 0, expected: 5);
2239 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 10, n2: 1, expected: 5);
2240 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2241 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 5);
2242 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 4);
2243 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -5);
2244 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -14);
2245 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -15);
2246 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -15);
2247 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 5);
2248 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
2249 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
2250 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
2251 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
2252 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
2253 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 5);
2254 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
2255 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
2256 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
2257 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
2258 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
2259 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 5);
2260 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
2261 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
2262 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 5);
2263 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 5);
2264 test(s1: "abcdefghij", pos1: 0, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2265 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "", pos2: 0, n2: 0, expected: 9);
2266 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "", pos2: 0, n2: 1, expected: 9);
2267 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "", pos2: 1, n2: 0, expected: 0);
2268 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 0, n2: 0, expected: 9);
2269 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 0, n2: 1, expected: 8);
2270 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 0, n2: 2, expected: 7);
2271 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 0, n2: 4, expected: 5);
2272 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 0, n2: 5, expected: 4);
2273 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 0, n2: 6, expected: 4);
2274 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 1, n2: 0, expected: 9);
2275 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 1, n2: 1, expected: -1);
2276 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 1, n2: 2, expected: -1);
2277 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 1, n2: 3, expected: -1);
2278 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 1, n2: 4, expected: -1);
2279 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 1, n2: 5, expected: -1);
2280 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 2, n2: 0, expected: 9);
2281 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 2, n2: 1, expected: -2);
2282 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 2, n2: 2, expected: -2);
2283 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 2, n2: 3, expected: -2);
2284 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 2, n2: 4, expected: -2);
2285 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 4, n2: 0, expected: 9);
2286 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 4, n2: 1, expected: -4);
2287 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 4, n2: 2, expected: -4);
2288 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 5, n2: 0, expected: 9);
2289 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 5, n2: 1, expected: 9);
2290 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2291 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 0, n2: 0, expected: 9);
2292 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 0, n2: 1, expected: 8);
2293 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 0, n2: 5, expected: 4);
2294 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 0, n2: 9, expected: 0);
2295 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 0, n2: 10, expected: -1);
2296 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 0, n2: 11, expected: -1);
2297 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 1, n2: 0, expected: 9);
2298 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
2299 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
2300 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
2301 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
2302 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
2303 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 5, n2: 0, expected: 9);
2304 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
2305 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
2306 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
2307 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
2308 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
2309 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 9, n2: 0, expected: 9);
2310 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
2311 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
2312 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 10, n2: 0, expected: 9);
2313 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 10, n2: 1, expected: 9);
2314 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2315 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 9);
2316 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 8);
2317 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -1);
2318 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -10);
2319}
2320
2321void test22() {
2322 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -11);
2323 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -11);
2324 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 9);
2325 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
2326 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
2327 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
2328 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
2329 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
2330 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 9);
2331 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
2332 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
2333 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
2334 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
2335 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
2336 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 9);
2337 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
2338 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
2339 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 9);
2340 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 9);
2341 test(s1: "abcdefghij", pos1: 0, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2342 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "", pos2: 0, n2: 0, expected: 10);
2343 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "", pos2: 0, n2: 1, expected: 10);
2344 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "", pos2: 1, n2: 0, expected: 0);
2345 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 0, n2: 0, expected: 10);
2346 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 0, n2: 1, expected: 9);
2347 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 0, n2: 2, expected: 8);
2348 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 0, n2: 4, expected: 6);
2349 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 0, n2: 5, expected: 5);
2350 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 0, n2: 6, expected: 5);
2351 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 1, n2: 0, expected: 10);
2352 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 1, n2: 1, expected: -1);
2353 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 1, n2: 2, expected: -1);
2354 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 1, n2: 3, expected: -1);
2355 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 1, n2: 4, expected: -1);
2356 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 1, n2: 5, expected: -1);
2357 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 2, n2: 0, expected: 10);
2358 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 2, n2: 1, expected: -2);
2359 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 2, n2: 2, expected: -2);
2360 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 2, n2: 3, expected: -2);
2361 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 2, n2: 4, expected: -2);
2362 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 4, n2: 0, expected: 10);
2363 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 4, n2: 1, expected: -4);
2364 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 4, n2: 2, expected: -4);
2365 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 5, n2: 0, expected: 10);
2366 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 5, n2: 1, expected: 10);
2367 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2368 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 0, n2: 0, expected: 10);
2369 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 0, n2: 1, expected: 9);
2370 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 0, n2: 5, expected: 5);
2371 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
2372 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 0, n2: 10, expected: 0);
2373 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 0, n2: 11, expected: 0);
2374 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 1, n2: 0, expected: 10);
2375 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
2376 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
2377 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
2378 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
2379 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
2380 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 5, n2: 0, expected: 10);
2381 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
2382 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
2383 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
2384 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
2385 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
2386 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 9, n2: 0, expected: 10);
2387 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
2388 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
2389 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 10, n2: 0, expected: 10);
2390 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 10, n2: 1, expected: 10);
2391 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2392 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 10);
2393 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 9);
2394 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 0);
2395 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -9);
2396 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -10);
2397 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -10);
2398 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 10);
2399 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
2400 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
2401 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
2402 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
2403 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
2404 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 10);
2405 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
2406 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
2407 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
2408 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
2409 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
2410 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 10);
2411 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
2412 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
2413 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 10);
2414 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 10);
2415 test(s1: "abcdefghij", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2416 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "", pos2: 0, n2: 0, expected: 10);
2417 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "", pos2: 0, n2: 1, expected: 10);
2418 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "", pos2: 1, n2: 0, expected: 0);
2419 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 0, n2: 0, expected: 10);
2420 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 0, n2: 1, expected: 9);
2421 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 0, n2: 2, expected: 8);
2422}
2423
2424void test23() {
2425 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 0, n2: 4, expected: 6);
2426 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 0, n2: 5, expected: 5);
2427 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 0, n2: 6, expected: 5);
2428 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 1, n2: 0, expected: 10);
2429 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 1, n2: 1, expected: -1);
2430 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 1, n2: 2, expected: -1);
2431 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 1, n2: 3, expected: -1);
2432 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 1, n2: 4, expected: -1);
2433 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 1, n2: 5, expected: -1);
2434 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 2, n2: 0, expected: 10);
2435 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 2, n2: 1, expected: -2);
2436 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 2, n2: 2, expected: -2);
2437 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 2, n2: 3, expected: -2);
2438 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 2, n2: 4, expected: -2);
2439 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 4, n2: 0, expected: 10);
2440 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 4, n2: 1, expected: -4);
2441 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 4, n2: 2, expected: -4);
2442 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 5, n2: 0, expected: 10);
2443 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 5, n2: 1, expected: 10);
2444 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2445 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 0, n2: 0, expected: 10);
2446 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 0, n2: 1, expected: 9);
2447 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 0, n2: 5, expected: 5);
2448 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
2449 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 0, n2: 10, expected: 0);
2450 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 0, n2: 11, expected: 0);
2451 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 1, n2: 0, expected: 10);
2452 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
2453 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
2454 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
2455 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
2456 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
2457 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 5, n2: 0, expected: 10);
2458 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
2459 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
2460 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
2461 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
2462 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
2463 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 9, n2: 0, expected: 10);
2464 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
2465 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
2466 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 10, n2: 0, expected: 10);
2467 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 10, n2: 1, expected: 10);
2468 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2469 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 10);
2470 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 9);
2471 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 0);
2472 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -9);
2473 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -10);
2474 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -10);
2475 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 10);
2476 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
2477 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
2478 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
2479 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
2480 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
2481 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 10);
2482 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
2483 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
2484 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
2485 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
2486 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
2487 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 10);
2488 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
2489 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
2490 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 10);
2491 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 10);
2492 test(s1: "abcdefghij", pos1: 0, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2493 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
2494 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
2495 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
2496 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
2497 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
2498 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
2499 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
2500 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
2501 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
2502 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
2503 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
2504 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
2505 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
2506 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
2507 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
2508 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
2509 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
2510 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
2511 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
2512 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
2513 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
2514 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
2515 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
2516 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
2517 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
2518 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2519 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
2520 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
2521 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
2522 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
2523 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
2524 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
2525}
2526
2527void test24() {
2528 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
2529 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
2530 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
2531 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
2532 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
2533 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
2534 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
2535 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
2536 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
2537 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
2538 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
2539 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
2540 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
2541 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
2542 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
2543 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
2544 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
2545 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2546 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
2547 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
2548 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
2549 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
2550 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
2551 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
2552 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
2553 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
2554 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
2555 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
2556 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
2557 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
2558 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
2559 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
2560 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
2561 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
2562 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
2563 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
2564 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
2565 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
2566 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
2567 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
2568 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
2569 test(s1: "abcdefghij", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2570 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "", pos2: 0, n2: 0, expected: 1);
2571 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "", pos2: 0, n2: 1, expected: 1);
2572 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
2573 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 1);
2574 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: 1);
2575 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: 1);
2576 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: 1);
2577 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: 1);
2578 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: 1);
2579 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 1);
2580 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: 0);
2581 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: -1);
2582 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: -2);
2583 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: -3);
2584 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: -3);
2585 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 1);
2586 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: -1);
2587 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: -1);
2588 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: -1);
2589 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: -1);
2590 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 1);
2591 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: -3);
2592 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: -3);
2593 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 1);
2594 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 1);
2595 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2596 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
2597 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
2598 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
2599 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
2600 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
2601 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
2602 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
2603 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: 0);
2604 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: -3);
2605 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: -7);
2606 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: -8);
2607 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: -8);
2608 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
2609 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
2610 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
2611 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
2612 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
2613 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
2614 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
2615 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
2616 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
2617 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
2618 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
2619 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2620 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
2621 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
2622 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
2623 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
2624 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
2625 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
2626 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
2627 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 0);
2628}
2629
2630void test25() {
2631 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -8);
2632 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -17);
2633 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -18);
2634 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -18);
2635 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
2636 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
2637 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
2638 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
2639 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
2640 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
2641 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
2642 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
2643 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
2644 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
2645 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
2646 test(s1: "abcdefghij", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2647 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "", pos2: 0, n2: 0, expected: 4);
2648 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "", pos2: 0, n2: 1, expected: 4);
2649 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "", pos2: 1, n2: 0, expected: 0);
2650 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 0, n2: 0, expected: 4);
2651 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 0, n2: 1, expected: 1);
2652 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 0, n2: 2, expected: 1);
2653 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 0, n2: 4, expected: 1);
2654 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 0, n2: 5, expected: 1);
2655 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 0, n2: 6, expected: 1);
2656 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 1, n2: 0, expected: 4);
2657 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 1, n2: 1, expected: 3);
2658 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 1, n2: 2, expected: 2);
2659 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 1, n2: 3, expected: 1);
2660 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 1, n2: 4, expected: 0);
2661 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 1, n2: 5, expected: 0);
2662 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 2, n2: 0, expected: 4);
2663 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 2, n2: 1, expected: -1);
2664 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 2, n2: 2, expected: -1);
2665 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 2, n2: 3, expected: -1);
2666 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 2, n2: 4, expected: -1);
2667 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 4, n2: 0, expected: 4);
2668 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 4, n2: 1, expected: -3);
2669 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 4, n2: 2, expected: -3);
2670 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 5, n2: 0, expected: 4);
2671 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 5, n2: 1, expected: 4);
2672 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2673 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 0, n2: 0, expected: 4);
2674 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
2675 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
2676 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
2677 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
2678 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
2679 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 1, n2: 0, expected: 4);
2680 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 1, n2: 1, expected: 3);
2681 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 1, n2: 4, expected: 0);
2682 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 1, n2: 8, expected: -4);
2683 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 1, n2: 9, expected: -5);
2684 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 1, n2: 10, expected: -5);
2685 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 5, n2: 0, expected: 4);
2686 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
2687 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
2688 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
2689 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
2690 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
2691 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 9, n2: 0, expected: 4);
2692 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
2693 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
2694 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 10, n2: 0, expected: 4);
2695 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 10, n2: 1, expected: 4);
2696 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2697 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 4);
2698 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
2699 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
2700 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
2701 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
2702 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
2703 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 4);
2704 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 3);
2705 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -5);
2706 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -14);
2707 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -15);
2708 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -15);
2709 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 4);
2710 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
2711 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
2712 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
2713 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
2714 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
2715 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 4);
2716 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
2717 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
2718 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 4);
2719 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 4);
2720 test(s1: "abcdefghij", pos1: 1, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2721 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "", pos2: 0, n2: 0, expected: 8);
2722 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "", pos2: 0, n2: 1, expected: 8);
2723 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "", pos2: 1, n2: 0, expected: 0);
2724 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 0, n2: 0, expected: 8);
2725 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 0, n2: 1, expected: 1);
2726 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 0, n2: 2, expected: 1);
2727 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 0, n2: 4, expected: 1);
2728 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 0, n2: 5, expected: 1);
2729 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 0, n2: 6, expected: 1);
2730 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 1, n2: 0, expected: 8);
2731}
2732
2733void test26() {
2734 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 1, n2: 1, expected: 7);
2735 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 1, n2: 2, expected: 6);
2736 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 1, n2: 3, expected: 5);
2737 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 1, n2: 4, expected: 4);
2738 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 1, n2: 5, expected: 4);
2739 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 2, n2: 0, expected: 8);
2740 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 2, n2: 1, expected: -1);
2741 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 2, n2: 2, expected: -1);
2742 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 2, n2: 3, expected: -1);
2743 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 2, n2: 4, expected: -1);
2744 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 4, n2: 0, expected: 8);
2745 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 4, n2: 1, expected: -3);
2746 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 4, n2: 2, expected: -3);
2747 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 5, n2: 0, expected: 8);
2748 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 5, n2: 1, expected: 8);
2749 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2750 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 0, n2: 0, expected: 8);
2751 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
2752 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
2753 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
2754 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
2755 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
2756 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 1, n2: 0, expected: 8);
2757 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 1, n2: 1, expected: 7);
2758 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 1, n2: 4, expected: 4);
2759 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 1, n2: 8, expected: 0);
2760 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
2761 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
2762 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 5, n2: 0, expected: 8);
2763 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
2764 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
2765 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
2766 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
2767 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
2768 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 9, n2: 0, expected: 8);
2769 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
2770 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
2771 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 10, n2: 0, expected: 8);
2772 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 10, n2: 1, expected: 8);
2773 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2774 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 8);
2775 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
2776 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
2777 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
2778 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
2779 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
2780 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 8);
2781 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 7);
2782 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
2783 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -10);
2784 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -11);
2785 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -11);
2786 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 8);
2787 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
2788 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
2789 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
2790 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
2791 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
2792 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 8);
2793 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
2794 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
2795 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 8);
2796 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 8);
2797 test(s1: "abcdefghij", pos1: 1, n1: 8, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2798 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "", pos2: 0, n2: 0, expected: 9);
2799 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "", pos2: 0, n2: 1, expected: 9);
2800 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "", pos2: 1, n2: 0, expected: 0);
2801 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 0, n2: 0, expected: 9);
2802 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 0, n2: 1, expected: 1);
2803 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 0, n2: 2, expected: 1);
2804 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 0, n2: 4, expected: 1);
2805 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 0, n2: 5, expected: 1);
2806 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 0, n2: 6, expected: 1);
2807 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 1, n2: 0, expected: 9);
2808 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 1, n2: 1, expected: 8);
2809 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 1, n2: 2, expected: 7);
2810 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 1, n2: 3, expected: 6);
2811 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 1, n2: 4, expected: 5);
2812 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 1, n2: 5, expected: 5);
2813 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 2, n2: 0, expected: 9);
2814 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 2, n2: 1, expected: -1);
2815 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 2, n2: 2, expected: -1);
2816 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 2, n2: 3, expected: -1);
2817 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 2, n2: 4, expected: -1);
2818 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 4, n2: 0, expected: 9);
2819 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 4, n2: 1, expected: -3);
2820 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 4, n2: 2, expected: -3);
2821 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 5, n2: 0, expected: 9);
2822 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 5, n2: 1, expected: 9);
2823 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2824 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 0, n2: 0, expected: 9);
2825 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
2826 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
2827 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
2828 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
2829 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
2830 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 1, n2: 0, expected: 9);
2831 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 1, n2: 1, expected: 8);
2832 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 1, n2: 4, expected: 5);
2833 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 1, n2: 8, expected: 1);
2834}
2835
2836void test27() {
2837 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 1, n2: 9, expected: 0);
2838 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 1, n2: 10, expected: 0);
2839 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 5, n2: 0, expected: 9);
2840 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
2841 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
2842 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
2843 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
2844 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
2845 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 9, n2: 0, expected: 9);
2846 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
2847 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
2848 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 10, n2: 0, expected: 9);
2849 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 10, n2: 1, expected: 9);
2850 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2851 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 9);
2852 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
2853 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
2854 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
2855 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
2856 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
2857 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 9);
2858 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 8);
2859 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 0);
2860 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -9);
2861 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -10);
2862 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -10);
2863 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 9);
2864 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
2865 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
2866 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
2867 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
2868 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
2869 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 9);
2870 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
2871 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
2872 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 9);
2873 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 9);
2874 test(s1: "abcdefghij", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2875 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "", pos2: 0, n2: 0, expected: 9);
2876 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "", pos2: 0, n2: 1, expected: 9);
2877 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "", pos2: 1, n2: 0, expected: 0);
2878 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 0, n2: 0, expected: 9);
2879 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 0, n2: 1, expected: 1);
2880 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 0, n2: 2, expected: 1);
2881 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 0, n2: 4, expected: 1);
2882 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 0, n2: 5, expected: 1);
2883 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 0, n2: 6, expected: 1);
2884 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 1, n2: 0, expected: 9);
2885 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 1, n2: 1, expected: 8);
2886 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 1, n2: 2, expected: 7);
2887 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 1, n2: 3, expected: 6);
2888 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 1, n2: 4, expected: 5);
2889 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 1, n2: 5, expected: 5);
2890 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 2, n2: 0, expected: 9);
2891 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 2, n2: 1, expected: -1);
2892 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 2, n2: 2, expected: -1);
2893 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 2, n2: 3, expected: -1);
2894 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 2, n2: 4, expected: -1);
2895 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 4, n2: 0, expected: 9);
2896 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 4, n2: 1, expected: -3);
2897 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 4, n2: 2, expected: -3);
2898 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 5, n2: 0, expected: 9);
2899 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 5, n2: 1, expected: 9);
2900 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2901 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 0, n2: 0, expected: 9);
2902 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
2903 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
2904 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
2905 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
2906 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
2907 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 1, n2: 0, expected: 9);
2908 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 1, n2: 1, expected: 8);
2909 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 1, n2: 4, expected: 5);
2910 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 1, n2: 8, expected: 1);
2911 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 1, n2: 9, expected: 0);
2912 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 1, n2: 10, expected: 0);
2913 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 5, n2: 0, expected: 9);
2914 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
2915 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
2916 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
2917 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
2918 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
2919 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 9, n2: 0, expected: 9);
2920 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
2921 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
2922 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 10, n2: 0, expected: 9);
2923 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 10, n2: 1, expected: 9);
2924 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
2925 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 9);
2926 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
2927 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
2928 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
2929 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
2930 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
2931 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 9);
2932 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 8);
2933 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 0);
2934 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -9);
2935 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -10);
2936 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -10);
2937}
2938
2939void test28() {
2940 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 9);
2941 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
2942 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
2943 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
2944 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
2945 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
2946 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 9);
2947 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
2948 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
2949 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 9);
2950 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 9);
2951 test(s1: "abcdefghij", pos1: 1, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
2952 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
2953 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
2954 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
2955 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
2956 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
2957 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
2958 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
2959 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
2960 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
2961 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
2962 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
2963 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
2964 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
2965 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
2966 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
2967 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
2968 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
2969 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
2970 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
2971 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
2972 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
2973 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
2974 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
2975 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
2976 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
2977 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
2978 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
2979 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
2980 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
2981 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
2982 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
2983 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
2984 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
2985 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
2986 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
2987 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
2988 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
2989 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
2990 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
2991 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
2992 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
2993 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
2994 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
2995 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
2996 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
2997 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
2998 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
2999 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
3000 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
3001 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3002 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
3003 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
3004 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
3005 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
3006 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
3007 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
3008 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
3009 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
3010 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
3011 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
3012 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
3013 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
3014 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
3015 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
3016 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
3017 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
3018 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
3019 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
3020 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
3021 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
3022 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
3023 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
3024 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
3025 test(s1: "abcdefghij", pos1: 5, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3026 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "", pos2: 0, n2: 0, expected: 1);
3027 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "", pos2: 0, n2: 1, expected: 1);
3028 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
3029 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 1);
3030 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: 5);
3031 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: 5);
3032 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: 5);
3033 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: 5);
3034 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: 5);
3035 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 1);
3036 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: 4);
3037 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: 4);
3038 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: 4);
3039 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: 4);
3040}
3041
3042void test29() {
3043 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: 4);
3044 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 1);
3045 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: 3);
3046 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: 3);
3047 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: 3);
3048 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: 3);
3049 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 1);
3050 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: 1);
3051 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: 1);
3052 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 1);
3053 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 1);
3054 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3055 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
3056 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: 5);
3057 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: 5);
3058 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: 5);
3059 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: 5);
3060 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: 5);
3061 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
3062 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: 4);
3063 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: 4);
3064 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: 4);
3065 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: 4);
3066 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: 4);
3067 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
3068 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: 0);
3069 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -1);
3070 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -3);
3071 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
3072 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
3073 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
3074 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -4);
3075 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -4);
3076 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
3077 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
3078 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3079 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
3080 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 5);
3081 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 5);
3082 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 5);
3083 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 5);
3084 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 5);
3085 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
3086 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 4);
3087 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 4);
3088 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 4);
3089 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 4);
3090 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 4);
3091 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
3092 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -5);
3093 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
3094 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -5);
3095 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -5);
3096 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -5);
3097 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
3098 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -14);
3099 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -14);
3100 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
3101 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
3102 test(s1: "abcdefghij", pos1: 5, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3103 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "", pos2: 0, n2: 0, expected: 2);
3104 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "", pos2: 0, n2: 1, expected: 2);
3105 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "", pos2: 1, n2: 0, expected: 0);
3106 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 0, n2: 0, expected: 2);
3107 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 0, n2: 1, expected: 5);
3108 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 0, n2: 2, expected: 5);
3109 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 0, n2: 4, expected: 5);
3110 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 0, n2: 5, expected: 5);
3111 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 0, n2: 6, expected: 5);
3112 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 1, n2: 0, expected: 2);
3113 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 1, n2: 1, expected: 4);
3114 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 1, n2: 2, expected: 4);
3115 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 1, n2: 3, expected: 4);
3116 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 1, n2: 4, expected: 4);
3117 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 1, n2: 5, expected: 4);
3118 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 2, n2: 0, expected: 2);
3119 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 2, n2: 1, expected: 3);
3120 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 2, n2: 2, expected: 3);
3121 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 2, n2: 3, expected: 3);
3122 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 2, n2: 4, expected: 3);
3123 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 4, n2: 0, expected: 2);
3124 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 4, n2: 1, expected: 1);
3125 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 4, n2: 2, expected: 1);
3126 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 5, n2: 0, expected: 2);
3127 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 5, n2: 1, expected: 2);
3128 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3129 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 0, n2: 0, expected: 2);
3130 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 0, n2: 1, expected: 5);
3131 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 0, n2: 5, expected: 5);
3132 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 0, n2: 9, expected: 5);
3133 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 0, n2: 10, expected: 5);
3134 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 0, n2: 11, expected: 5);
3135 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 1, n2: 0, expected: 2);
3136 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 1, n2: 1, expected: 4);
3137 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 1, n2: 4, expected: 4);
3138 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 1, n2: 8, expected: 4);
3139 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 1, n2: 9, expected: 4);
3140 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 1, n2: 10, expected: 4);
3141 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 5, n2: 0, expected: 2);
3142 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 5, n2: 1, expected: 1);
3143}
3144
3145void test30() {
3146 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 5, n2: 2, expected: 0);
3147 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 5, n2: 4, expected: -2);
3148 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 5, n2: 5, expected: -3);
3149 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 5, n2: 6, expected: -3);
3150 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 9, n2: 0, expected: 2);
3151 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 9, n2: 1, expected: -4);
3152 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 9, n2: 2, expected: -4);
3153 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 10, n2: 0, expected: 2);
3154 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 10, n2: 1, expected: 2);
3155 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3156 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 2);
3157 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 5);
3158 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 5);
3159 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 5);
3160 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 5);
3161 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 5);
3162 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 2);
3163 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 4);
3164 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 4);
3165 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 4);
3166 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 4);
3167 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 4);
3168 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 2);
3169 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -5);
3170 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
3171 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -5);
3172 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -5);
3173 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -5);
3174 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 2);
3175 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -14);
3176 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -14);
3177 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 2);
3178 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 2);
3179 test(s1: "abcdefghij", pos1: 5, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3180 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "", pos2: 0, n2: 0, expected: 4);
3181 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "", pos2: 0, n2: 1, expected: 4);
3182 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "", pos2: 1, n2: 0, expected: 0);
3183 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 0, n2: 0, expected: 4);
3184 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 0, n2: 1, expected: 5);
3185 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 0, n2: 2, expected: 5);
3186 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 0, n2: 4, expected: 5);
3187 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 0, n2: 5, expected: 5);
3188 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 0, n2: 6, expected: 5);
3189 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 1, n2: 0, expected: 4);
3190 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 1, n2: 1, expected: 4);
3191 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 1, n2: 2, expected: 4);
3192 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 1, n2: 3, expected: 4);
3193 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 1, n2: 4, expected: 4);
3194 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 1, n2: 5, expected: 4);
3195 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 2, n2: 0, expected: 4);
3196 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 2, n2: 1, expected: 3);
3197 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 2, n2: 2, expected: 3);
3198 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 2, n2: 3, expected: 3);
3199 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 2, n2: 4, expected: 3);
3200 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 4, n2: 0, expected: 4);
3201 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 4, n2: 1, expected: 1);
3202 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 4, n2: 2, expected: 1);
3203 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 5, n2: 0, expected: 4);
3204 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 5, n2: 1, expected: 4);
3205 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3206 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 0, n2: 0, expected: 4);
3207 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 0, n2: 1, expected: 5);
3208 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 0, n2: 5, expected: 5);
3209 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 0, n2: 9, expected: 5);
3210 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 0, n2: 10, expected: 5);
3211 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 0, n2: 11, expected: 5);
3212 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 1, n2: 0, expected: 4);
3213 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 1, n2: 1, expected: 4);
3214 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 1, n2: 4, expected: 4);
3215 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 1, n2: 8, expected: 4);
3216 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 1, n2: 9, expected: 4);
3217 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 1, n2: 10, expected: 4);
3218 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 5, n2: 0, expected: 4);
3219 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 5, n2: 1, expected: 3);
3220 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 5, n2: 2, expected: 2);
3221 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 5, n2: 4, expected: 0);
3222 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 5, n2: 5, expected: -1);
3223 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 5, n2: 6, expected: -1);
3224 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 9, n2: 0, expected: 4);
3225 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 9, n2: 1, expected: -4);
3226 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 9, n2: 2, expected: -4);
3227 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 10, n2: 0, expected: 4);
3228 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 10, n2: 1, expected: 4);
3229 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3230 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 4);
3231 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 5);
3232 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 5);
3233 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 5);
3234 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 5);
3235 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 5);
3236 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 4);
3237 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 4);
3238 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 4);
3239 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 4);
3240 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 4);
3241 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 4);
3242 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 4);
3243 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -5);
3244 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
3245 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -5);
3246}
3247
3248void test31() {
3249 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -5);
3250 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -5);
3251 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 4);
3252 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -14);
3253 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -14);
3254 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 4);
3255 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 4);
3256 test(s1: "abcdefghij", pos1: 5, n1: 4, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3257 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "", pos2: 0, n2: 0, expected: 5);
3258 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "", pos2: 0, n2: 1, expected: 5);
3259 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "", pos2: 1, n2: 0, expected: 0);
3260 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 0, n2: 0, expected: 5);
3261 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 0, n2: 1, expected: 5);
3262 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 0, n2: 2, expected: 5);
3263 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 0, n2: 4, expected: 5);
3264 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 0, n2: 5, expected: 5);
3265 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 0, n2: 6, expected: 5);
3266 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 1, n2: 0, expected: 5);
3267 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 1, n2: 1, expected: 4);
3268 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 1, n2: 2, expected: 4);
3269 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 1, n2: 3, expected: 4);
3270 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 1, n2: 4, expected: 4);
3271 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 1, n2: 5, expected: 4);
3272 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 2, n2: 0, expected: 5);
3273 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 2, n2: 1, expected: 3);
3274 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 2, n2: 2, expected: 3);
3275 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 2, n2: 3, expected: 3);
3276 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 2, n2: 4, expected: 3);
3277 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 4, n2: 0, expected: 5);
3278 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 4, n2: 1, expected: 1);
3279 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 4, n2: 2, expected: 1);
3280 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 5, n2: 0, expected: 5);
3281 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 5, n2: 1, expected: 5);
3282 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3283 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 0, n2: 0, expected: 5);
3284 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 0, n2: 1, expected: 5);
3285 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 0, n2: 5, expected: 5);
3286 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 0, n2: 9, expected: 5);
3287 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 0, n2: 10, expected: 5);
3288 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 0, n2: 11, expected: 5);
3289 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 1, n2: 0, expected: 5);
3290 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 1, n2: 1, expected: 4);
3291 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 1, n2: 4, expected: 4);
3292 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 1, n2: 8, expected: 4);
3293 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 1, n2: 9, expected: 4);
3294 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 1, n2: 10, expected: 4);
3295 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 5, n2: 0, expected: 5);
3296 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 5, n2: 1, expected: 4);
3297 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 5, n2: 2, expected: 3);
3298 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 5, n2: 4, expected: 1);
3299 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 5, n2: 5, expected: 0);
3300 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 5, n2: 6, expected: 0);
3301 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 9, n2: 0, expected: 5);
3302 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 9, n2: 1, expected: -4);
3303 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 9, n2: 2, expected: -4);
3304 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 10, n2: 0, expected: 5);
3305 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 10, n2: 1, expected: 5);
3306 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3307 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 5);
3308 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 5);
3309 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 5);
3310 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 5);
3311 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 5);
3312 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 5);
3313 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 5);
3314 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 4);
3315 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 4);
3316 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 4);
3317 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 4);
3318 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 4);
3319 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 5);
3320 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -5);
3321 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
3322 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -5);
3323 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -5);
3324 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -5);
3325 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 5);
3326 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -14);
3327 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -14);
3328 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 5);
3329 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 5);
3330 test(s1: "abcdefghij", pos1: 5, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3331 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "", pos2: 0, n2: 0, expected: 5);
3332 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "", pos2: 0, n2: 1, expected: 5);
3333 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "", pos2: 1, n2: 0, expected: 0);
3334 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 0, n2: 0, expected: 5);
3335 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 0, n2: 1, expected: 5);
3336 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 0, n2: 2, expected: 5);
3337 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 0, n2: 4, expected: 5);
3338 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 0, n2: 5, expected: 5);
3339 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 0, n2: 6, expected: 5);
3340 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 1, n2: 0, expected: 5);
3341 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 1, n2: 1, expected: 4);
3342 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 1, n2: 2, expected: 4);
3343 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 1, n2: 3, expected: 4);
3344 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 1, n2: 4, expected: 4);
3345 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 1, n2: 5, expected: 4);
3346 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 2, n2: 0, expected: 5);
3347 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 2, n2: 1, expected: 3);
3348 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 2, n2: 2, expected: 3);
3349}
3350
3351void test32() {
3352 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 2, n2: 3, expected: 3);
3353 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 2, n2: 4, expected: 3);
3354 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 4, n2: 0, expected: 5);
3355 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 4, n2: 1, expected: 1);
3356 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 4, n2: 2, expected: 1);
3357 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 5, n2: 0, expected: 5);
3358 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 5, n2: 1, expected: 5);
3359 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3360 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 0, n2: 0, expected: 5);
3361 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 0, n2: 1, expected: 5);
3362 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 0, n2: 5, expected: 5);
3363 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 0, n2: 9, expected: 5);
3364 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 0, n2: 10, expected: 5);
3365 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 0, n2: 11, expected: 5);
3366 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 1, n2: 0, expected: 5);
3367 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 1, n2: 1, expected: 4);
3368 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 1, n2: 4, expected: 4);
3369 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 1, n2: 8, expected: 4);
3370 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 1, n2: 9, expected: 4);
3371 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 1, n2: 10, expected: 4);
3372 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 5, n2: 0, expected: 5);
3373 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 5, n2: 1, expected: 4);
3374 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 5, n2: 2, expected: 3);
3375 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 5, n2: 4, expected: 1);
3376 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 5, n2: 5, expected: 0);
3377 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 5, n2: 6, expected: 0);
3378 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 9, n2: 0, expected: 5);
3379 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 9, n2: 1, expected: -4);
3380 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 9, n2: 2, expected: -4);
3381 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 10, n2: 0, expected: 5);
3382 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 10, n2: 1, expected: 5);
3383 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3384 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 5);
3385 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 5);
3386 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 5);
3387 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 5);
3388 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 5);
3389 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 5);
3390 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 5);
3391 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 4);
3392 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 4);
3393 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 4);
3394 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 4);
3395 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 4);
3396 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 5);
3397 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -5);
3398 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
3399 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -5);
3400 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -5);
3401 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -5);
3402 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 5);
3403 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -14);
3404 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -14);
3405 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 5);
3406 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 5);
3407 test(s1: "abcdefghij", pos1: 5, n1: 6, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3408 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
3409 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
3410 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
3411 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
3412 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
3413 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
3414 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
3415 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
3416 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
3417 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
3418 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
3419 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
3420 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
3421 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
3422 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
3423 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
3424 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
3425 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
3426 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
3427 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
3428 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
3429 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
3430 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
3431 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
3432 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
3433 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3434 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
3435 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
3436 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
3437 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
3438 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
3439 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
3440 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
3441 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
3442 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
3443 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
3444 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
3445 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
3446 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
3447 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
3448 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
3449 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
3450 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
3451 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
3452}
3453
3454void test33() {
3455 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
3456 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
3457 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
3458 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
3459 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
3460 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3461 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
3462 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
3463 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
3464 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
3465 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
3466 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
3467 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
3468 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
3469 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
3470 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
3471 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
3472 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
3473 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
3474 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
3475 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
3476 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
3477 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
3478 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
3479 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
3480 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
3481 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
3482 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
3483 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
3484 test(s1: "abcdefghij", pos1: 9, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3485 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "", pos2: 0, n2: 0, expected: 1);
3486 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "", pos2: 0, n2: 1, expected: 1);
3487 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
3488 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 1);
3489 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: 9);
3490 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: 9);
3491 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: 9);
3492 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: 9);
3493 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: 9);
3494 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 1);
3495 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: 8);
3496 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: 8);
3497 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: 8);
3498 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: 8);
3499 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: 8);
3500 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 1);
3501 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: 7);
3502 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: 7);
3503 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: 7);
3504 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: 7);
3505 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 1);
3506 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: 5);
3507 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: 5);
3508 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 1);
3509 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 1);
3510 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3511 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
3512 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: 9);
3513 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: 9);
3514 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: 9);
3515 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: 9);
3516 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: 9);
3517 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
3518 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: 8);
3519 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: 8);
3520 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: 8);
3521 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: 8);
3522 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: 8);
3523 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
3524 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: 4);
3525 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: 4);
3526 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: 4);
3527 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: 4);
3528 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: 4);
3529 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
3530 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: 0);
3531 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: 0);
3532 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
3533 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
3534 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3535 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
3536 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 9);
3537 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 9);
3538 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 9);
3539 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 9);
3540 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 9);
3541 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
3542 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 8);
3543 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 8);
3544 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 8);
3545 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 8);
3546 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 8);
3547 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
3548 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
3549 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -1);
3550 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -1);
3551 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -1);
3552 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -1);
3553 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
3554 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -10);
3555}
3556
3557void test34() {
3558 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -10);
3559 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
3560 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
3561 test(s1: "abcdefghij", pos1: 9, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3562 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "", pos2: 0, n2: 0, expected: 1);
3563 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "", pos2: 0, n2: 1, expected: 1);
3564 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "", pos2: 1, n2: 0, expected: 0);
3565 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 0, n2: 0, expected: 1);
3566 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 0, n2: 1, expected: 9);
3567 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 0, n2: 2, expected: 9);
3568 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 0, n2: 4, expected: 9);
3569 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 0, n2: 5, expected: 9);
3570 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 0, n2: 6, expected: 9);
3571 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 1, n2: 0, expected: 1);
3572 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 1, n2: 1, expected: 8);
3573 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 1, n2: 2, expected: 8);
3574 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 1, n2: 3, expected: 8);
3575 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 1, n2: 4, expected: 8);
3576 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 1, n2: 5, expected: 8);
3577 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 2, n2: 0, expected: 1);
3578 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 2, n2: 1, expected: 7);
3579 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 2, n2: 2, expected: 7);
3580 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 2, n2: 3, expected: 7);
3581 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 2, n2: 4, expected: 7);
3582 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 4, n2: 0, expected: 1);
3583 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 4, n2: 1, expected: 5);
3584 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 4, n2: 2, expected: 5);
3585 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 5, n2: 0, expected: 1);
3586 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 5, n2: 1, expected: 1);
3587 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3588 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
3589 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 0, n2: 1, expected: 9);
3590 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 0, n2: 5, expected: 9);
3591 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 0, n2: 9, expected: 9);
3592 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 0, n2: 10, expected: 9);
3593 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 0, n2: 11, expected: 9);
3594 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
3595 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 1, n2: 1, expected: 8);
3596 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 1, n2: 4, expected: 8);
3597 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 1, n2: 8, expected: 8);
3598 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 1, n2: 9, expected: 8);
3599 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 1, n2: 10, expected: 8);
3600 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
3601 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 5, n2: 1, expected: 4);
3602 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 5, n2: 2, expected: 4);
3603 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 5, n2: 4, expected: 4);
3604 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 5, n2: 5, expected: 4);
3605 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 5, n2: 6, expected: 4);
3606 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
3607 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 9, n2: 1, expected: 0);
3608 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 9, n2: 2, expected: 0);
3609 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
3610 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
3611 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3612 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
3613 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 9);
3614 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 9);
3615 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 9);
3616 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 9);
3617 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 9);
3618 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
3619 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 8);
3620 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 8);
3621 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 8);
3622 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 8);
3623 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 8);
3624 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
3625 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
3626 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -1);
3627 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -1);
3628 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -1);
3629 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -1);
3630 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
3631 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -10);
3632 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -10);
3633 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
3634 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
3635 test(s1: "abcdefghij", pos1: 9, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3636 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
3637 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
3638 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
3639 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
3640 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
3641 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
3642 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
3643 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
3644 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
3645 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
3646 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
3647 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
3648 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
3649 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
3650 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
3651 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
3652 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
3653 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
3654 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
3655 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
3656 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
3657 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
3658}
3659
3660void test35() {
3661 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
3662 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
3663 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
3664 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3665 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
3666 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
3667 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
3668 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
3669 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
3670 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
3671 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
3672 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
3673 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
3674 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
3675 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
3676 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
3677 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
3678 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
3679 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
3680 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
3681 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
3682 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
3683 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
3684 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
3685 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
3686 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
3687 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
3688 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3689 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
3690 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
3691 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
3692 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
3693 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
3694 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
3695 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
3696 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
3697 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
3698 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
3699 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
3700 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
3701 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
3702 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
3703 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
3704 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
3705 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
3706 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
3707 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
3708 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
3709 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
3710 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
3711 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
3712 test(s1: "abcdefghij", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3713 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "", pos2: 0, n2: 0, expected: 0);
3714 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "", pos2: 0, n2: 1, expected: 0);
3715 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
3716 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 0);
3717 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: -1);
3718 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: -2);
3719 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: -4);
3720 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: -5);
3721 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: -5);
3722 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 0);
3723 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: -1);
3724 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: -2);
3725 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: -3);
3726 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: -4);
3727 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: -4);
3728 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 0);
3729 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: -1);
3730 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: -2);
3731 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: -3);
3732 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: -3);
3733 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 0);
3734 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: -1);
3735 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: -1);
3736 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 0);
3737 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 0);
3738 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3739 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
3740 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
3741 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
3742 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
3743 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
3744 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
3745 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
3746 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
3747 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
3748 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
3749 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
3750 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
3751 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
3752 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
3753 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
3754 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
3755 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
3756 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
3757 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
3758 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
3759 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
3760 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
3761}
3762
3763void test36() {
3764 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
3765 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3766 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
3767 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
3768 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
3769 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
3770 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
3771 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
3772 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
3773 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
3774 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
3775 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
3776 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
3777 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
3778 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
3779 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
3780 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
3781 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
3782 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
3783 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
3784 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
3785 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
3786 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
3787 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
3788 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
3789 test(s1: "abcdefghij", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3790 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
3791 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
3792 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
3793 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
3794 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: 0);
3795 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: 0);
3796 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: 0);
3797 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: 0);
3798 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: 0);
3799 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
3800 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: 0);
3801 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: 0);
3802 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: 0);
3803 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: 0);
3804 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: 0);
3805 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
3806 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: 0);
3807 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: 0);
3808 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: 0);
3809 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: 0);
3810 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
3811 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: 0);
3812 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: 0);
3813 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
3814 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
3815 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3816 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
3817 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: 0);
3818 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: 0);
3819 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: 0);
3820 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: 0);
3821 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: 0);
3822 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
3823 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: 0);
3824 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: 0);
3825 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: 0);
3826 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: 0);
3827 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: 0);
3828 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
3829 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: 0);
3830 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: 0);
3831 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: 0);
3832 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: 0);
3833 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: 0);
3834 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
3835 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: 0);
3836 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: 0);
3837 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
3838 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
3839 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3840 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
3841 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 0);
3842 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 0);
3843 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 0);
3844 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 0);
3845 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 0);
3846 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
3847 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 0);
3848 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 0);
3849 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 0);
3850 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 0);
3851 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 0);
3852 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
3853 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: 0);
3854 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: 0);
3855 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: 0);
3856 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: 0);
3857 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: 0);
3858 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
3859 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: 0);
3860 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: 0);
3861 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
3862 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
3863 test(s1: "abcdefghij", pos1: 11, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3864}
3865
3866void test37() {
3867 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
3868 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
3869 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
3870 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
3871 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
3872 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
3873 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
3874 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
3875 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
3876 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
3877 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
3878 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
3879 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
3880 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
3881 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
3882 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
3883 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
3884 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
3885 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
3886 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
3887 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
3888 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
3889 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
3890 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
3891 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
3892 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3893 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
3894 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
3895 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
3896 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
3897 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
3898 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
3899 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
3900 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
3901 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
3902 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
3903 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
3904 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
3905 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
3906 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
3907 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
3908 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
3909 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
3910 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
3911 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
3912 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
3913 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
3914 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
3915 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
3916 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3917 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
3918 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
3919 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
3920 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
3921 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
3922 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
3923 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
3924 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
3925 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
3926 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
3927 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
3928 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
3929 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
3930 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
3931 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
3932 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
3933 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
3934 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
3935 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
3936 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
3937 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
3938 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
3939 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
3940 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
3941 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "", pos2: 0, n2: 0, expected: 1);
3942 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "", pos2: 0, n2: 1, expected: 1);
3943 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
3944 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 1);
3945 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: 0);
3946 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: -1);
3947 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: -3);
3948 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: -4);
3949 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: -4);
3950 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 1);
3951 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: -1);
3952 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: -1);
3953 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: -1);
3954 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: -1);
3955 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: -1);
3956 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 1);
3957 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: -2);
3958 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: -2);
3959 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: -2);
3960 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: -2);
3961 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 1);
3962 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: -4);
3963 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: -4);
3964 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 1);
3965 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 1);
3966 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
3967}
3968
3969void test38() {
3970 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
3971 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: 0);
3972 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: -4);
3973 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: -8);
3974 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: -9);
3975 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: -9);
3976 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
3977 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
3978 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
3979 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
3980 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
3981 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
3982 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
3983 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
3984 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
3985 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
3986 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
3987 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
3988 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
3989 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
3990 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
3991 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
3992 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
3993 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
3994 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
3995 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 0);
3996 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -9);
3997 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -18);
3998 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -19);
3999 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -19);
4000 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
4001 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
4002 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
4003 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
4004 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
4005 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
4006 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
4007 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
4008 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
4009 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
4010 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
4011 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
4012 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
4013 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
4014 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
4015 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
4016 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
4017 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4018 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "", pos2: 0, n2: 0, expected: 10);
4019 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "", pos2: 0, n2: 1, expected: 10);
4020 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "", pos2: 1, n2: 0, expected: 0);
4021 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 0, n2: 0, expected: 10);
4022 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 0, n2: 1, expected: 9);
4023 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 0, n2: 2, expected: 8);
4024 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 0, n2: 4, expected: 6);
4025 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 0, n2: 5, expected: 5);
4026 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 0, n2: 6, expected: 5);
4027 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 1, n2: 0, expected: 10);
4028 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 1, n2: 1, expected: -1);
4029 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 1, n2: 2, expected: -1);
4030 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 1, n2: 3, expected: -1);
4031 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 1, n2: 4, expected: -1);
4032 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 1, n2: 5, expected: -1);
4033 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 2, n2: 0, expected: 10);
4034 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 2, n2: 1, expected: -2);
4035 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 2, n2: 2, expected: -2);
4036 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 2, n2: 3, expected: -2);
4037 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 2, n2: 4, expected: -2);
4038 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 4, n2: 0, expected: 10);
4039 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 4, n2: 1, expected: -4);
4040 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 4, n2: 2, expected: -4);
4041 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 5, n2: 0, expected: 10);
4042 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 5, n2: 1, expected: 10);
4043 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4044 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 0, n2: 0, expected: 10);
4045 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 0, n2: 1, expected: 9);
4046 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 0, n2: 5, expected: 5);
4047 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
4048 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 0, n2: 10, expected: 0);
4049 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 0, n2: 11, expected: 0);
4050 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 1, n2: 0, expected: 10);
4051 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
4052 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
4053 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
4054 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
4055 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
4056 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 5, n2: 0, expected: 10);
4057 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
4058 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
4059 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
4060 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
4061 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
4062 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 9, n2: 0, expected: 10);
4063 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
4064 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
4065 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 10, n2: 0, expected: 10);
4066 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 10, n2: 1, expected: 10);
4067 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4068 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 10);
4069 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 9);
4070}
4071
4072void test39() {
4073 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 0);
4074 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -9);
4075 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -10);
4076 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -10);
4077 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 10);
4078 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
4079 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
4080 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
4081 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
4082 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
4083 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 10);
4084 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
4085 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
4086 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
4087 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
4088 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
4089 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 10);
4090 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
4091 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
4092 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 10);
4093 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 10);
4094 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4095 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "", pos2: 0, n2: 0, expected: 19);
4096 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "", pos2: 0, n2: 1, expected: 19);
4097 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "", pos2: 1, n2: 0, expected: 0);
4098 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 0, n2: 0, expected: 19);
4099 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 0, n2: 1, expected: 18);
4100 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 0, n2: 2, expected: 17);
4101 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 0, n2: 4, expected: 15);
4102 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 0, n2: 5, expected: 14);
4103 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 0, n2: 6, expected: 14);
4104 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 1, n2: 0, expected: 19);
4105 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 1, n2: 1, expected: -1);
4106 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 1, n2: 2, expected: -1);
4107 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 1, n2: 3, expected: -1);
4108 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 1, n2: 4, expected: -1);
4109 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 1, n2: 5, expected: -1);
4110 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 2, n2: 0, expected: 19);
4111 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 2, n2: 1, expected: -2);
4112 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 2, n2: 2, expected: -2);
4113 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 2, n2: 3, expected: -2);
4114 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 2, n2: 4, expected: -2);
4115 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 4, n2: 0, expected: 19);
4116 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 4, n2: 1, expected: -4);
4117 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 4, n2: 2, expected: -4);
4118 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 5, n2: 0, expected: 19);
4119 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 5, n2: 1, expected: 19);
4120 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4121 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 0, n2: 0, expected: 19);
4122 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 0, n2: 1, expected: 18);
4123 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 0, n2: 5, expected: 14);
4124 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 0, n2: 9, expected: 10);
4125 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 0, n2: 10, expected: 9);
4126 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 0, n2: 11, expected: 9);
4127 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 1, n2: 0, expected: 19);
4128 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
4129 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
4130 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
4131 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
4132 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
4133 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 5, n2: 0, expected: 19);
4134 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
4135 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
4136 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
4137 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
4138 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
4139 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 9, n2: 0, expected: 19);
4140 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
4141 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
4142 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 10, n2: 0, expected: 19);
4143 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 10, n2: 1, expected: 19);
4144 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4145 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 19);
4146 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 18);
4147 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 9);
4148 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 0);
4149 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -1);
4150 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -1);
4151 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 19);
4152 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
4153 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
4154 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
4155 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
4156 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
4157 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 19);
4158 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
4159 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
4160 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
4161 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
4162 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
4163 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 19);
4164 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
4165 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
4166 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 19);
4167 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 19);
4168 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4169 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "", pos2: 0, n2: 0, expected: 20);
4170 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "", pos2: 0, n2: 1, expected: 20);
4171 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "", pos2: 1, n2: 0, expected: 0);
4172 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 0, n2: 0, expected: 20);
4173}
4174
4175void test40() {
4176 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 0, n2: 1, expected: 19);
4177 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 0, n2: 2, expected: 18);
4178 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 0, n2: 4, expected: 16);
4179 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 0, n2: 5, expected: 15);
4180 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 0, n2: 6, expected: 15);
4181 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 1, n2: 0, expected: 20);
4182 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 1, n2: 1, expected: -1);
4183 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 1, n2: 2, expected: -1);
4184 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 1, n2: 3, expected: -1);
4185 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 1, n2: 4, expected: -1);
4186 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 1, n2: 5, expected: -1);
4187 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 2, n2: 0, expected: 20);
4188 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 2, n2: 1, expected: -2);
4189 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 2, n2: 2, expected: -2);
4190 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 2, n2: 3, expected: -2);
4191 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 2, n2: 4, expected: -2);
4192 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 4, n2: 0, expected: 20);
4193 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 4, n2: 1, expected: -4);
4194 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 4, n2: 2, expected: -4);
4195 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 5, n2: 0, expected: 20);
4196 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 5, n2: 1, expected: 20);
4197 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4198 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 0, n2: 0, expected: 20);
4199 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 0, n2: 1, expected: 19);
4200 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 0, n2: 5, expected: 15);
4201 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 0, n2: 9, expected: 11);
4202 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 0, n2: 10, expected: 10);
4203 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 0, n2: 11, expected: 10);
4204 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 1, n2: 0, expected: 20);
4205 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
4206 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
4207 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
4208 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
4209 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
4210 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 5, n2: 0, expected: 20);
4211 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
4212 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
4213 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
4214 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
4215 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
4216 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 9, n2: 0, expected: 20);
4217 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
4218 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
4219 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 10, n2: 0, expected: 20);
4220 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 10, n2: 1, expected: 20);
4221 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4222 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 20);
4223 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 19);
4224 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 10);
4225 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
4226 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 0);
4227 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 0);
4228 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 20);
4229 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
4230 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
4231 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
4232 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
4233 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
4234 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 20);
4235 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
4236 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
4237 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
4238 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
4239 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
4240 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 20);
4241 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
4242 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
4243 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 20);
4244 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 20);
4245 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4246 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "", pos2: 0, n2: 0, expected: 20);
4247 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "", pos2: 0, n2: 1, expected: 20);
4248 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "", pos2: 1, n2: 0, expected: 0);
4249 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 0, n2: 0, expected: 20);
4250 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 0, n2: 1, expected: 19);
4251 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 0, n2: 2, expected: 18);
4252 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 0, n2: 4, expected: 16);
4253 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 0, n2: 5, expected: 15);
4254 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 0, n2: 6, expected: 15);
4255 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 1, n2: 0, expected: 20);
4256 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 1, n2: 1, expected: -1);
4257 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 1, n2: 2, expected: -1);
4258 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 1, n2: 3, expected: -1);
4259 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 1, n2: 4, expected: -1);
4260 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 1, n2: 5, expected: -1);
4261 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 2, n2: 0, expected: 20);
4262 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 2, n2: 1, expected: -2);
4263 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 2, n2: 2, expected: -2);
4264 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 2, n2: 3, expected: -2);
4265 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 2, n2: 4, expected: -2);
4266 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 4, n2: 0, expected: 20);
4267 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 4, n2: 1, expected: -4);
4268 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 4, n2: 2, expected: -4);
4269 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 5, n2: 0, expected: 20);
4270 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 5, n2: 1, expected: 20);
4271 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4272 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 0, n2: 0, expected: 20);
4273 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 0, n2: 1, expected: 19);
4274 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 0, n2: 5, expected: 15);
4275 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 0, n2: 9, expected: 11);
4276}
4277
4278void test41() {
4279 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 0, n2: 10, expected: 10);
4280 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 0, n2: 11, expected: 10);
4281 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 1, n2: 0, expected: 20);
4282 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
4283 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 1, n2: 4, expected: -1);
4284 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 1, n2: 8, expected: -1);
4285 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 1, n2: 9, expected: -1);
4286 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 1, n2: 10, expected: -1);
4287 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 5, n2: 0, expected: 20);
4288 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 5, n2: 1, expected: -5);
4289 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 5, n2: 2, expected: -5);
4290 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 5, n2: 4, expected: -5);
4291 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
4292 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
4293 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 9, n2: 0, expected: 20);
4294 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 9, n2: 1, expected: -9);
4295 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 9, n2: 2, expected: -9);
4296 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 10, n2: 0, expected: 20);
4297 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 10, n2: 1, expected: 20);
4298 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4299 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 20);
4300 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 19);
4301 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 10);
4302 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
4303 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 0);
4304 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 0);
4305 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 20);
4306 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
4307 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -1);
4308 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -1);
4309 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
4310 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
4311 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 20);
4312 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -10);
4313 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -10);
4314 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -10);
4315 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
4316 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
4317 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 20);
4318 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -19);
4319 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -19);
4320 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 20);
4321 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 20);
4322 test(s1: "abcdefghijklmnopqrst", pos1: 0, n1: 21, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4323 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
4324 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
4325 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
4326 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
4327 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
4328 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
4329 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
4330 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
4331 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
4332 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
4333 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
4334 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
4335 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
4336 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
4337 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
4338 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
4339 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
4340 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
4341 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
4342 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
4343 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
4344 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
4345 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
4346 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
4347 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
4348 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4349 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
4350 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
4351 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
4352 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
4353 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
4354 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
4355 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
4356 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
4357 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
4358 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
4359 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
4360 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
4361 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
4362 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
4363 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
4364 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
4365 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
4366 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
4367 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
4368 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
4369 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
4370 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
4371 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
4372 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4373 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
4374 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
4375 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
4376 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
4377 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
4378 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
4379}
4380
4381void test42() {
4382 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
4383 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
4384 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
4385 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
4386 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
4387 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
4388 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
4389 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
4390 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
4391 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
4392 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
4393 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
4394 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
4395 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
4396 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
4397 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
4398 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
4399 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4400 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "", pos2: 0, n2: 0, expected: 1);
4401 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "", pos2: 0, n2: 1, expected: 1);
4402 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
4403 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 1);
4404 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: 1);
4405 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: 1);
4406 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: 1);
4407 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: 1);
4408 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: 1);
4409 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 1);
4410 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: 0);
4411 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: -1);
4412 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: -2);
4413 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: -3);
4414 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: -3);
4415 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 1);
4416 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: -1);
4417 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: -1);
4418 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: -1);
4419 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: -1);
4420 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 1);
4421 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: -3);
4422 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: -3);
4423 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 1);
4424 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 1);
4425 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4426 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
4427 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
4428 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
4429 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
4430 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
4431 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
4432 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
4433 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: 0);
4434 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: -3);
4435 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: -7);
4436 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: -8);
4437 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: -8);
4438 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
4439 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
4440 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
4441 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
4442 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
4443 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
4444 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
4445 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
4446 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
4447 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
4448 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
4449 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4450 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
4451 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
4452 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
4453 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
4454 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
4455 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
4456 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
4457 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 0);
4458 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -8);
4459 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -17);
4460 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -18);
4461 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -18);
4462 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
4463 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
4464 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
4465 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
4466 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
4467 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
4468 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
4469 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
4470 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
4471 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
4472 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
4473 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4474 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "", pos2: 0, n2: 0, expected: 9);
4475 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "", pos2: 0, n2: 1, expected: 9);
4476 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "", pos2: 1, n2: 0, expected: 0);
4477 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 0, n2: 0, expected: 9);
4478 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 0, n2: 1, expected: 1);
4479 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 0, n2: 2, expected: 1);
4480 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 0, n2: 4, expected: 1);
4481 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 0, n2: 5, expected: 1);
4482}
4483
4484void test43() {
4485 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 0, n2: 6, expected: 1);
4486 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 1, n2: 0, expected: 9);
4487 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 1, n2: 1, expected: 8);
4488 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 1, n2: 2, expected: 7);
4489 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 1, n2: 3, expected: 6);
4490 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 1, n2: 4, expected: 5);
4491 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 1, n2: 5, expected: 5);
4492 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 2, n2: 0, expected: 9);
4493 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 2, n2: 1, expected: -1);
4494 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 2, n2: 2, expected: -1);
4495 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 2, n2: 3, expected: -1);
4496 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 2, n2: 4, expected: -1);
4497 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 4, n2: 0, expected: 9);
4498 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 4, n2: 1, expected: -3);
4499 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 4, n2: 2, expected: -3);
4500 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 5, n2: 0, expected: 9);
4501 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 5, n2: 1, expected: 9);
4502 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4503 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 0, n2: 0, expected: 9);
4504 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
4505 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
4506 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
4507 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
4508 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
4509 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 1, n2: 0, expected: 9);
4510 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 1, n2: 1, expected: 8);
4511 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 1, n2: 4, expected: 5);
4512 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 1, n2: 8, expected: 1);
4513 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 1, n2: 9, expected: 0);
4514 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 1, n2: 10, expected: 0);
4515 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 5, n2: 0, expected: 9);
4516 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
4517 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
4518 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
4519 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
4520 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
4521 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 9, n2: 0, expected: 9);
4522 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
4523 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
4524 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 10, n2: 0, expected: 9);
4525 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 10, n2: 1, expected: 9);
4526 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4527 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 9);
4528 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
4529 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
4530 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
4531 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
4532 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
4533 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 9);
4534 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 8);
4535 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 0);
4536 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -9);
4537 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -10);
4538 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -10);
4539 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 9);
4540 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
4541 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
4542 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
4543 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
4544 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
4545 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 9);
4546 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
4547 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
4548 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 9);
4549 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 9);
4550 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4551 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "", pos2: 0, n2: 0, expected: 18);
4552 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "", pos2: 0, n2: 1, expected: 18);
4553 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "", pos2: 1, n2: 0, expected: 0);
4554 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 0, n2: 0, expected: 18);
4555 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 0, n2: 1, expected: 1);
4556 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 0, n2: 2, expected: 1);
4557 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 0, n2: 4, expected: 1);
4558 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 0, n2: 5, expected: 1);
4559 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 0, n2: 6, expected: 1);
4560 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 1, n2: 0, expected: 18);
4561 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 1, n2: 1, expected: 17);
4562 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 1, n2: 2, expected: 16);
4563 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 1, n2: 3, expected: 15);
4564 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 1, n2: 4, expected: 14);
4565 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 1, n2: 5, expected: 14);
4566 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 2, n2: 0, expected: 18);
4567 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 2, n2: 1, expected: -1);
4568 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 2, n2: 2, expected: -1);
4569 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 2, n2: 3, expected: -1);
4570 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 2, n2: 4, expected: -1);
4571 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 4, n2: 0, expected: 18);
4572 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 4, n2: 1, expected: -3);
4573 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 4, n2: 2, expected: -3);
4574 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 5, n2: 0, expected: 18);
4575 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 5, n2: 1, expected: 18);
4576 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4577 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 0, n2: 0, expected: 18);
4578 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
4579 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
4580 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
4581 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
4582 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
4583 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 1, n2: 0, expected: 18);
4584 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 1, n2: 1, expected: 17);
4585}
4586
4587void test44() {
4588 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 1, n2: 4, expected: 14);
4589 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 1, n2: 8, expected: 10);
4590 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 1, n2: 9, expected: 9);
4591 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 1, n2: 10, expected: 9);
4592 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 5, n2: 0, expected: 18);
4593 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
4594 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
4595 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
4596 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
4597 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
4598 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 9, n2: 0, expected: 18);
4599 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
4600 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
4601 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 10, n2: 0, expected: 18);
4602 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 10, n2: 1, expected: 18);
4603 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4604 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 18);
4605 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
4606 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
4607 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
4608 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
4609 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
4610 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 18);
4611 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 17);
4612 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 9);
4613 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 0);
4614 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -1);
4615 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -1);
4616 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 18);
4617 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
4618 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
4619 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
4620 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
4621 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
4622 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 18);
4623 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
4624 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
4625 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 18);
4626 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 18);
4627 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 18, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4628 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "", pos2: 0, n2: 0, expected: 19);
4629 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "", pos2: 0, n2: 1, expected: 19);
4630 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "", pos2: 1, n2: 0, expected: 0);
4631 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 0, n2: 0, expected: 19);
4632 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 0, n2: 1, expected: 1);
4633 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 0, n2: 2, expected: 1);
4634 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 0, n2: 4, expected: 1);
4635 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 0, n2: 5, expected: 1);
4636 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 0, n2: 6, expected: 1);
4637 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 1, n2: 0, expected: 19);
4638 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 1, n2: 1, expected: 18);
4639 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 1, n2: 2, expected: 17);
4640 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 1, n2: 3, expected: 16);
4641 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 1, n2: 4, expected: 15);
4642 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 1, n2: 5, expected: 15);
4643 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 2, n2: 0, expected: 19);
4644 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 2, n2: 1, expected: -1);
4645 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 2, n2: 2, expected: -1);
4646 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 2, n2: 3, expected: -1);
4647 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 2, n2: 4, expected: -1);
4648 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 4, n2: 0, expected: 19);
4649 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 4, n2: 1, expected: -3);
4650 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 4, n2: 2, expected: -3);
4651 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 5, n2: 0, expected: 19);
4652 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 5, n2: 1, expected: 19);
4653 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4654 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 0, n2: 0, expected: 19);
4655 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
4656 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
4657 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
4658 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
4659 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
4660 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 1, n2: 0, expected: 19);
4661 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 1, n2: 1, expected: 18);
4662 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 1, n2: 4, expected: 15);
4663 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 1, n2: 8, expected: 11);
4664 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 1, n2: 9, expected: 10);
4665 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 1, n2: 10, expected: 10);
4666 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 5, n2: 0, expected: 19);
4667 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
4668 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
4669 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
4670 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
4671 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
4672 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 9, n2: 0, expected: 19);
4673 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
4674 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
4675 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 10, n2: 0, expected: 19);
4676 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 10, n2: 1, expected: 19);
4677 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4678 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 19);
4679 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
4680 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
4681 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
4682 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
4683 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
4684 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 19);
4685 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 18);
4686 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 10);
4687 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 1);
4688}
4689
4690void test45() {
4691 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 0);
4692 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 0);
4693 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 19);
4694 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
4695 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
4696 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
4697 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
4698 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
4699 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 19);
4700 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
4701 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
4702 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 19);
4703 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 19);
4704 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 19, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4705 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "", pos2: 0, n2: 0, expected: 19);
4706 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "", pos2: 0, n2: 1, expected: 19);
4707 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "", pos2: 1, n2: 0, expected: 0);
4708 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 0, n2: 0, expected: 19);
4709 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 0, n2: 1, expected: 1);
4710 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 0, n2: 2, expected: 1);
4711 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 0, n2: 4, expected: 1);
4712 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 0, n2: 5, expected: 1);
4713 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 0, n2: 6, expected: 1);
4714 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 1, n2: 0, expected: 19);
4715 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 1, n2: 1, expected: 18);
4716 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 1, n2: 2, expected: 17);
4717 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 1, n2: 3, expected: 16);
4718 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 1, n2: 4, expected: 15);
4719 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 1, n2: 5, expected: 15);
4720 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 2, n2: 0, expected: 19);
4721 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 2, n2: 1, expected: -1);
4722 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 2, n2: 2, expected: -1);
4723 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 2, n2: 3, expected: -1);
4724 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 2, n2: 4, expected: -1);
4725 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 4, n2: 0, expected: 19);
4726 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 4, n2: 1, expected: -3);
4727 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 4, n2: 2, expected: -3);
4728 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 5, n2: 0, expected: 19);
4729 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 5, n2: 1, expected: 19);
4730 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4731 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 0, n2: 0, expected: 19);
4732 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 0, n2: 1, expected: 1);
4733 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 0, n2: 5, expected: 1);
4734 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 0, n2: 9, expected: 1);
4735 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 0, n2: 10, expected: 1);
4736 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 0, n2: 11, expected: 1);
4737 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 1, n2: 0, expected: 19);
4738 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 1, n2: 1, expected: 18);
4739 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 1, n2: 4, expected: 15);
4740 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 1, n2: 8, expected: 11);
4741 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 1, n2: 9, expected: 10);
4742 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 1, n2: 10, expected: 10);
4743 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 5, n2: 0, expected: 19);
4744 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 5, n2: 1, expected: -4);
4745 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 5, n2: 2, expected: -4);
4746 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
4747 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 5, n2: 5, expected: -4);
4748 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 5, n2: 6, expected: -4);
4749 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 9, n2: 0, expected: 19);
4750 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 9, n2: 1, expected: -8);
4751 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 9, n2: 2, expected: -8);
4752 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 10, n2: 0, expected: 19);
4753 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 10, n2: 1, expected: 19);
4754 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4755 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 19);
4756 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 1);
4757 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 1);
4758 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 1);
4759 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 1);
4760 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 1);
4761 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 19);
4762 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 18);
4763 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 10);
4764 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 1);
4765 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 0);
4766 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 0);
4767 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 19);
4768 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -9);
4769 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -9);
4770 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
4771 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
4772 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
4773 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 19);
4774 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -18);
4775 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -18);
4776 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 19);
4777 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 19);
4778 test(s1: "abcdefghijklmnopqrst", pos1: 1, n1: 20, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4779 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
4780 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
4781 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
4782 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
4783 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
4784 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
4785 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
4786 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
4787 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
4788 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
4789 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
4790 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
4791}
4792
4793void test46() {
4794 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
4795 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
4796 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
4797 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
4798 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
4799 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
4800 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
4801 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
4802 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
4803 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
4804 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
4805 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
4806 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
4807 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4808 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
4809 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
4810 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
4811 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
4812 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
4813 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
4814 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
4815 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
4816 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
4817 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
4818 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
4819 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
4820 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
4821 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
4822 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
4823 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
4824 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
4825 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
4826 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
4827 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
4828 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
4829 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
4830 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
4831 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4832 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
4833 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
4834 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
4835 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
4836 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
4837 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
4838 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
4839 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
4840 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
4841 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
4842 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
4843 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
4844 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
4845 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
4846 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
4847 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
4848 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
4849 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
4850 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
4851 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
4852 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
4853 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
4854 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
4855 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4856 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "", pos2: 0, n2: 0, expected: 1);
4857 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "", pos2: 0, n2: 1, expected: 1);
4858 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
4859 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 1);
4860 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: 10);
4861 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: 10);
4862 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: 10);
4863 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: 10);
4864 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: 10);
4865 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 1);
4866 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: 9);
4867 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: 9);
4868 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: 9);
4869 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: 9);
4870 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: 9);
4871 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 1);
4872 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: 8);
4873 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: 8);
4874 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: 8);
4875 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: 8);
4876 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 1);
4877 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: 6);
4878 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: 6);
4879 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 1);
4880 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 1);
4881 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4882 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
4883 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: 10);
4884 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: 10);
4885 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: 10);
4886 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: 10);
4887 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: 10);
4888 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
4889 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: 9);
4890 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: 9);
4891 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: 9);
4892 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: 9);
4893 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: 9);
4894}
4895
4896void test47() {
4897 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
4898 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: 5);
4899 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: 5);
4900 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: 5);
4901 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: 5);
4902 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: 5);
4903 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
4904 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: 1);
4905 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: 1);
4906 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
4907 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
4908 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4909 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
4910 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 10);
4911 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 10);
4912 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 10);
4913 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 10);
4914 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 10);
4915 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
4916 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 9);
4917 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 9);
4918 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 9);
4919 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 9);
4920 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 9);
4921 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
4922 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: 0);
4923 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -4);
4924 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -8);
4925 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -9);
4926 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -9);
4927 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
4928 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -9);
4929 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -9);
4930 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
4931 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
4932 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
4933 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "", pos2: 0, n2: 0, expected: 5);
4934 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "", pos2: 0, n2: 1, expected: 5);
4935 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "", pos2: 1, n2: 0, expected: 0);
4936 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 0, n2: 0, expected: 5);
4937 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 0, n2: 1, expected: 10);
4938 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 0, n2: 2, expected: 10);
4939 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 0, n2: 4, expected: 10);
4940 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 0, n2: 5, expected: 10);
4941 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 0, n2: 6, expected: 10);
4942 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 1, n2: 0, expected: 5);
4943 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 1, n2: 1, expected: 9);
4944 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 1, n2: 2, expected: 9);
4945 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 1, n2: 3, expected: 9);
4946 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 1, n2: 4, expected: 9);
4947 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 1, n2: 5, expected: 9);
4948 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 2, n2: 0, expected: 5);
4949 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 2, n2: 1, expected: 8);
4950 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 2, n2: 2, expected: 8);
4951 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 2, n2: 3, expected: 8);
4952 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 2, n2: 4, expected: 8);
4953 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 4, n2: 0, expected: 5);
4954 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 4, n2: 1, expected: 6);
4955 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 4, n2: 2, expected: 6);
4956 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 5, n2: 0, expected: 5);
4957 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 5, n2: 1, expected: 5);
4958 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcde", pos2: 6, n2: 0, expected: 0);
4959 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 0, n2: 0, expected: 5);
4960 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 0, n2: 1, expected: 10);
4961 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 0, n2: 5, expected: 10);
4962 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 0, n2: 9, expected: 10);
4963 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 0, n2: 10, expected: 10);
4964 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 0, n2: 11, expected: 10);
4965 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 1, n2: 0, expected: 5);
4966 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 1, n2: 1, expected: 9);
4967 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 1, n2: 4, expected: 9);
4968 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 1, n2: 8, expected: 9);
4969 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 1, n2: 9, expected: 9);
4970 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 1, n2: 10, expected: 9);
4971 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 5, n2: 0, expected: 5);
4972 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 5, n2: 1, expected: 5);
4973 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 5, n2: 2, expected: 5);
4974 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 5, n2: 4, expected: 5);
4975 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 5, n2: 5, expected: 5);
4976 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 5, n2: 6, expected: 5);
4977 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 9, n2: 0, expected: 5);
4978 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 9, n2: 1, expected: 1);
4979 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 9, n2: 2, expected: 1);
4980 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 10, n2: 0, expected: 5);
4981 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 10, n2: 1, expected: 5);
4982 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
4983 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 5);
4984 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 10);
4985 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 10);
4986 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 10);
4987 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 10);
4988 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 10);
4989 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 5);
4990 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 9);
4991 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 9);
4992 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 9);
4993 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 9);
4994 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 9);
4995 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 5);
4996 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: 4);
4997}
4998
4999void test48() {
5000 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: 0);
5001 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -4);
5002 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -5);
5003 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -5);
5004 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 5);
5005 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -9);
5006 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -9);
5007 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 5);
5008 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 5);
5009 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 5, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
5010 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "", pos2: 0, n2: 0, expected: 9);
5011 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "", pos2: 0, n2: 1, expected: 9);
5012 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "", pos2: 1, n2: 0, expected: 0);
5013 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 0, n2: 0, expected: 9);
5014 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 0, n2: 1, expected: 10);
5015 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 0, n2: 2, expected: 10);
5016 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 0, n2: 4, expected: 10);
5017 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 0, n2: 5, expected: 10);
5018 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 0, n2: 6, expected: 10);
5019 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 1, n2: 0, expected: 9);
5020 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 1, n2: 1, expected: 9);
5021 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 1, n2: 2, expected: 9);
5022 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 1, n2: 3, expected: 9);
5023 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 1, n2: 4, expected: 9);
5024 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 1, n2: 5, expected: 9);
5025 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 2, n2: 0, expected: 9);
5026 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 2, n2: 1, expected: 8);
5027 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 2, n2: 2, expected: 8);
5028 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 2, n2: 3, expected: 8);
5029 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 2, n2: 4, expected: 8);
5030 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 4, n2: 0, expected: 9);
5031 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 4, n2: 1, expected: 6);
5032 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 4, n2: 2, expected: 6);
5033 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 5, n2: 0, expected: 9);
5034 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 5, n2: 1, expected: 9);
5035 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcde", pos2: 6, n2: 0, expected: 0);
5036 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 0, n2: 0, expected: 9);
5037 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 0, n2: 1, expected: 10);
5038 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 0, n2: 5, expected: 10);
5039 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 0, n2: 9, expected: 10);
5040 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 0, n2: 10, expected: 10);
5041 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 0, n2: 11, expected: 10);
5042 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 1, n2: 0, expected: 9);
5043 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 1, n2: 1, expected: 9);
5044 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 1, n2: 4, expected: 9);
5045 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 1, n2: 8, expected: 9);
5046 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 1, n2: 9, expected: 9);
5047 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 1, n2: 10, expected: 9);
5048 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 5, n2: 0, expected: 9);
5049 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 5, n2: 1, expected: 5);
5050 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 5, n2: 2, expected: 5);
5051 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 5, n2: 4, expected: 5);
5052 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 5, n2: 5, expected: 5);
5053 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 5, n2: 6, expected: 5);
5054 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 9, n2: 0, expected: 9);
5055 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 9, n2: 1, expected: 1);
5056 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 9, n2: 2, expected: 1);
5057 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 10, n2: 0, expected: 9);
5058 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 10, n2: 1, expected: 9);
5059 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
5060 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 9);
5061 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 10);
5062 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 10);
5063 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 10);
5064 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 10);
5065 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 10);
5066 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 9);
5067 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 9);
5068 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 9);
5069 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 9);
5070 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 9);
5071 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 9);
5072 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 9);
5073 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: 8);
5074 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: 4);
5075 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: 0);
5076 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -1);
5077 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -1);
5078 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 9);
5079 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -9);
5080 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -9);
5081 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 9);
5082 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 9);
5083 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 9, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
5084 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "", pos2: 0, n2: 0, expected: 10);
5085 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "", pos2: 0, n2: 1, expected: 10);
5086 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "", pos2: 1, n2: 0, expected: 0);
5087 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 0, n2: 0, expected: 10);
5088 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 0, n2: 1, expected: 10);
5089 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 0, n2: 2, expected: 10);
5090 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 0, n2: 4, expected: 10);
5091 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 0, n2: 5, expected: 10);
5092 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 0, n2: 6, expected: 10);
5093 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 1, n2: 0, expected: 10);
5094 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 1, n2: 1, expected: 9);
5095 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 1, n2: 2, expected: 9);
5096 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 1, n2: 3, expected: 9);
5097 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 1, n2: 4, expected: 9);
5098 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 1, n2: 5, expected: 9);
5099 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 2, n2: 0, expected: 10);
5100}
5101
5102void test49() {
5103 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 2, n2: 1, expected: 8);
5104 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 2, n2: 2, expected: 8);
5105 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 2, n2: 3, expected: 8);
5106 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 2, n2: 4, expected: 8);
5107 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 4, n2: 0, expected: 10);
5108 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 4, n2: 1, expected: 6);
5109 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 4, n2: 2, expected: 6);
5110 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 5, n2: 0, expected: 10);
5111 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 5, n2: 1, expected: 10);
5112 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcde", pos2: 6, n2: 0, expected: 0);
5113 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 0, n2: 0, expected: 10);
5114 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 0, n2: 1, expected: 10);
5115 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 0, n2: 5, expected: 10);
5116 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 0, n2: 9, expected: 10);
5117 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 0, n2: 10, expected: 10);
5118 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 0, n2: 11, expected: 10);
5119 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 1, n2: 0, expected: 10);
5120 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 1, n2: 1, expected: 9);
5121 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 1, n2: 4, expected: 9);
5122 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 1, n2: 8, expected: 9);
5123 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 1, n2: 9, expected: 9);
5124 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 1, n2: 10, expected: 9);
5125 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 5, n2: 0, expected: 10);
5126 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 5, n2: 1, expected: 5);
5127 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 5, n2: 2, expected: 5);
5128 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 5, n2: 4, expected: 5);
5129 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 5, n2: 5, expected: 5);
5130 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 5, n2: 6, expected: 5);
5131 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 9, n2: 0, expected: 10);
5132 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 9, n2: 1, expected: 1);
5133 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 9, n2: 2, expected: 1);
5134 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 10, n2: 0, expected: 10);
5135 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 10, n2: 1, expected: 10);
5136 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
5137 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 10);
5138 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 10);
5139 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 10);
5140 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 10);
5141 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 10);
5142 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 10);
5143 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 10);
5144 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 9);
5145 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 9);
5146 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 9);
5147 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 9);
5148 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 9);
5149 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 10);
5150 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: 9);
5151 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: 5);
5152 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: 1);
5153 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: 0);
5154 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: 0);
5155 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 10);
5156 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -9);
5157 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -9);
5158 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 10);
5159 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 10);
5160 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 10, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
5161 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "", pos2: 0, n2: 0, expected: 10);
5162 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "", pos2: 0, n2: 1, expected: 10);
5163 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "", pos2: 1, n2: 0, expected: 0);
5164 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 0, n2: 0, expected: 10);
5165 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 0, n2: 1, expected: 10);
5166 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 0, n2: 2, expected: 10);
5167 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 0, n2: 4, expected: 10);
5168 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 0, n2: 5, expected: 10);
5169 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 0, n2: 6, expected: 10);
5170 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 1, n2: 0, expected: 10);
5171 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 1, n2: 1, expected: 9);
5172 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 1, n2: 2, expected: 9);
5173 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 1, n2: 3, expected: 9);
5174 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 1, n2: 4, expected: 9);
5175 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 1, n2: 5, expected: 9);
5176 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 2, n2: 0, expected: 10);
5177 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 2, n2: 1, expected: 8);
5178 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 2, n2: 2, expected: 8);
5179 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 2, n2: 3, expected: 8);
5180 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 2, n2: 4, expected: 8);
5181 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 4, n2: 0, expected: 10);
5182 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 4, n2: 1, expected: 6);
5183 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 4, n2: 2, expected: 6);
5184 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 5, n2: 0, expected: 10);
5185 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 5, n2: 1, expected: 10);
5186 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcde", pos2: 6, n2: 0, expected: 0);
5187 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 0, n2: 0, expected: 10);
5188 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 0, n2: 1, expected: 10);
5189 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 0, n2: 5, expected: 10);
5190 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 0, n2: 9, expected: 10);
5191 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 0, n2: 10, expected: 10);
5192 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 0, n2: 11, expected: 10);
5193 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 1, n2: 0, expected: 10);
5194 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 1, n2: 1, expected: 9);
5195 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 1, n2: 4, expected: 9);
5196 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 1, n2: 8, expected: 9);
5197 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 1, n2: 9, expected: 9);
5198 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 1, n2: 10, expected: 9);
5199 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 5, n2: 0, expected: 10);
5200 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 5, n2: 1, expected: 5);
5201 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 5, n2: 2, expected: 5);
5202 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 5, n2: 4, expected: 5);
5203}
5204
5205void test50() {
5206 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 5, n2: 5, expected: 5);
5207 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 5, n2: 6, expected: 5);
5208 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 9, n2: 0, expected: 10);
5209 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 9, n2: 1, expected: 1);
5210 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 9, n2: 2, expected: 1);
5211 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 10, n2: 0, expected: 10);
5212 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 10, n2: 1, expected: 10);
5213 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
5214 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 10);
5215 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 10);
5216 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 10);
5217 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 10);
5218 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 10);
5219 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 10);
5220 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 10);
5221 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 9);
5222 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 9);
5223 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 9);
5224 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 9);
5225 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 9);
5226 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 10);
5227 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: 9);
5228 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: 5);
5229 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: 1);
5230 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: 0);
5231 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: 0);
5232 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 10);
5233 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -9);
5234 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -9);
5235 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 10);
5236 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 10);
5237 test(s1: "abcdefghijklmnopqrst", pos1: 10, n1: 11, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
5238 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
5239 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
5240 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
5241 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
5242 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
5243 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
5244 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
5245 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
5246 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
5247 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
5248 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
5249 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
5250 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
5251 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
5252 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
5253 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
5254 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
5255 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
5256 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
5257 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
5258 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
5259 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
5260 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
5261 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
5262 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
5263 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
5264 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
5265 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
5266 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
5267 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
5268 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
5269 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
5270 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
5271 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
5272 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
5273 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
5274 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
5275 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
5276 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
5277 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
5278 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
5279 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
5280 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
5281 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
5282 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
5283 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
5284 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
5285 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
5286 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
5287 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
5288 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
5289 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
5290 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
5291 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
5292 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
5293 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
5294 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
5295 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
5296 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
5297 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
5298 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
5299 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
5300 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
5301 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
5302 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
5303 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
5304 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
5305 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
5306}
5307
5308void test51() {
5309 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
5310 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
5311 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
5312 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
5313 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
5314 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
5315 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "", pos2: 0, n2: 0, expected: 1);
5316 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "", pos2: 0, n2: 1, expected: 1);
5317 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
5318 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 1);
5319 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: 19);
5320 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: 19);
5321 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: 19);
5322 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: 19);
5323 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: 19);
5324 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 1);
5325 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: 18);
5326 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: 18);
5327 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: 18);
5328 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: 18);
5329 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: 18);
5330 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 1);
5331 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: 17);
5332 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: 17);
5333 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: 17);
5334 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: 17);
5335 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 1);
5336 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: 15);
5337 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: 15);
5338 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 1);
5339 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 1);
5340 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
5341 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
5342 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: 19);
5343 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: 19);
5344 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: 19);
5345 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: 19);
5346 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: 19);
5347 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
5348 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: 18);
5349 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: 18);
5350 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: 18);
5351 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: 18);
5352 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: 18);
5353 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
5354 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: 14);
5355 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: 14);
5356 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: 14);
5357 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: 14);
5358 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: 14);
5359 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
5360 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: 10);
5361 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: 10);
5362 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
5363 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
5364 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
5365 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
5366 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 19);
5367 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 19);
5368 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 19);
5369 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 19);
5370 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 19);
5371 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
5372 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 18);
5373 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 18);
5374 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 18);
5375 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 18);
5376 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 18);
5377 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
5378 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: 9);
5379 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: 9);
5380 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: 9);
5381 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: 9);
5382 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: 9);
5383 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
5384 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: 0);
5385 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: 0);
5386 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
5387 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
5388 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
5389 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "", pos2: 0, n2: 0, expected: 1);
5390 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "", pos2: 0, n2: 1, expected: 1);
5391 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "", pos2: 1, n2: 0, expected: 0);
5392 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 0, n2: 0, expected: 1);
5393 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 0, n2: 1, expected: 19);
5394 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 0, n2: 2, expected: 19);
5395 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 0, n2: 4, expected: 19);
5396 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 0, n2: 5, expected: 19);
5397 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 0, n2: 6, expected: 19);
5398 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 1, n2: 0, expected: 1);
5399 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 1, n2: 1, expected: 18);
5400 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 1, n2: 2, expected: 18);
5401 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 1, n2: 3, expected: 18);
5402 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 1, n2: 4, expected: 18);
5403 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 1, n2: 5, expected: 18);
5404 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 2, n2: 0, expected: 1);
5405 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 2, n2: 1, expected: 17);
5406 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 2, n2: 2, expected: 17);
5407 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 2, n2: 3, expected: 17);
5408 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 2, n2: 4, expected: 17);
5409}
5410
5411void test52() {
5412 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 4, n2: 0, expected: 1);
5413 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 4, n2: 1, expected: 15);
5414 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 4, n2: 2, expected: 15);
5415 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 5, n2: 0, expected: 1);
5416 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 5, n2: 1, expected: 1);
5417 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcde", pos2: 6, n2: 0, expected: 0);
5418 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 0, n2: 0, expected: 1);
5419 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 0, n2: 1, expected: 19);
5420 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 0, n2: 5, expected: 19);
5421 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 0, n2: 9, expected: 19);
5422 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 0, n2: 10, expected: 19);
5423 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 0, n2: 11, expected: 19);
5424 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 1, n2: 0, expected: 1);
5425 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 1, n2: 1, expected: 18);
5426 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 1, n2: 4, expected: 18);
5427 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 1, n2: 8, expected: 18);
5428 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 1, n2: 9, expected: 18);
5429 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 1, n2: 10, expected: 18);
5430 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 5, n2: 0, expected: 1);
5431 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 5, n2: 1, expected: 14);
5432 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 5, n2: 2, expected: 14);
5433 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 5, n2: 4, expected: 14);
5434 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 5, n2: 5, expected: 14);
5435 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 5, n2: 6, expected: 14);
5436 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 9, n2: 0, expected: 1);
5437 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 9, n2: 1, expected: 10);
5438 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 9, n2: 2, expected: 10);
5439 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 10, n2: 0, expected: 1);
5440 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 10, n2: 1, expected: 1);
5441 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
5442 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 1);
5443 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 19);
5444 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 19);
5445 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 19);
5446 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 19);
5447 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 19);
5448 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 1);
5449 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 18);
5450 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 18);
5451 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 18);
5452 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 18);
5453 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 18);
5454 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 1);
5455 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: 9);
5456 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: 9);
5457 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: 9);
5458 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: 9);
5459 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: 9);
5460 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 1);
5461 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: 0);
5462 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: 0);
5463 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 1);
5464 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 1);
5465 test(s1: "abcdefghijklmnopqrst", pos1: 19, n1: 2, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
5466 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
5467 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
5468 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
5469 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
5470 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: -1);
5471 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: -2);
5472 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: -4);
5473 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: -5);
5474 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: -5);
5475 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
5476 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: -1);
5477 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: -2);
5478 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: -3);
5479 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: -4);
5480 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: -4);
5481 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
5482 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: -1);
5483 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: -2);
5484 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: -3);
5485 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: -3);
5486 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
5487 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: -1);
5488 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: -1);
5489 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
5490 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
5491 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
5492 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
5493 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
5494 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
5495 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
5496 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
5497 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
5498 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
5499 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
5500 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
5501 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
5502 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
5503 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
5504 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
5505 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
5506 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
5507 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
5508 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
5509 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
5510 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
5511 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
5512}
5513
5514void test53() {
5515 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
5516 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
5517 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
5518 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
5519 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
5520 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
5521 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
5522 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
5523 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
5524 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
5525 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
5526 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
5527 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
5528 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
5529 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
5530 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
5531 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
5532 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
5533 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
5534 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
5535 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
5536 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
5537 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
5538 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
5539 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
5540 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
5541 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
5542 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
5543 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "", pos2: 0, n2: 0, expected: 0);
5544 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "", pos2: 0, n2: 1, expected: 0);
5545 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "", pos2: 1, n2: 0, expected: 0);
5546 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 0, n2: 0, expected: 0);
5547 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 0, n2: 1, expected: -1);
5548 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 0, n2: 2, expected: -2);
5549 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 0, n2: 4, expected: -4);
5550 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 0, n2: 5, expected: -5);
5551 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 0, n2: 6, expected: -5);
5552 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 1, n2: 0, expected: 0);
5553 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 1, n2: 1, expected: -1);
5554 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 1, n2: 2, expected: -2);
5555 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 1, n2: 3, expected: -3);
5556 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 1, n2: 4, expected: -4);
5557 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 1, n2: 5, expected: -4);
5558 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 2, n2: 0, expected: 0);
5559 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 2, n2: 1, expected: -1);
5560 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 2, n2: 2, expected: -2);
5561 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 2, n2: 3, expected: -3);
5562 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 2, n2: 4, expected: -3);
5563 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 4, n2: 0, expected: 0);
5564 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 4, n2: 1, expected: -1);
5565 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 4, n2: 2, expected: -1);
5566 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 5, n2: 0, expected: 0);
5567 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 5, n2: 1, expected: 0);
5568 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcde", pos2: 6, n2: 0, expected: 0);
5569 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
5570 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 0, n2: 1, expected: -1);
5571 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 0, n2: 5, expected: -5);
5572 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 0, n2: 9, expected: -9);
5573 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 0, n2: 10, expected: -10);
5574 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 0, n2: 11, expected: -10);
5575 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
5576 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 1, n2: 1, expected: -1);
5577 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 1, n2: 4, expected: -4);
5578 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 1, n2: 8, expected: -8);
5579 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 1, n2: 9, expected: -9);
5580 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 1, n2: 10, expected: -9);
5581 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
5582 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 5, n2: 1, expected: -1);
5583 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 5, n2: 2, expected: -2);
5584 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 5, n2: 4, expected: -4);
5585 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 5, n2: 5, expected: -5);
5586 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 5, n2: 6, expected: -5);
5587 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
5588 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 9, n2: 1, expected: -1);
5589 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 9, n2: 2, expected: -1);
5590 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
5591 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
5592 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
5593 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
5594 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: -1);
5595 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: -10);
5596 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: -19);
5597 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: -20);
5598 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: -20);
5599 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
5600 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: -1);
5601 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: -9);
5602 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: -18);
5603 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: -19);
5604 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: -19);
5605 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
5606 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: -1);
5607 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: -5);
5608 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: -9);
5609 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: -10);
5610 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: -10);
5611 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
5612 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: -1);
5613 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: -1);
5614 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
5615}
5616
5617void test54() {
5618 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
5619 test(s1: "abcdefghijklmnopqrst", pos1: 20, n1: 1, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
5620 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "", pos2: 0, n2: 0, expected: 0);
5621 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "", pos2: 0, n2: 1, expected: 0);
5622 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "", pos2: 1, n2: 0, expected: 0);
5623 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 0, n2: 0, expected: 0);
5624 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 0, n2: 1, expected: 0);
5625 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 0, n2: 2, expected: 0);
5626 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 0, n2: 4, expected: 0);
5627 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 0, n2: 5, expected: 0);
5628 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 0, n2: 6, expected: 0);
5629 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 1, n2: 0, expected: 0);
5630 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 1, n2: 1, expected: 0);
5631 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 1, n2: 2, expected: 0);
5632 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 1, n2: 3, expected: 0);
5633 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 1, n2: 4, expected: 0);
5634 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 1, n2: 5, expected: 0);
5635 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 2, n2: 0, expected: 0);
5636 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 2, n2: 1, expected: 0);
5637 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 2, n2: 2, expected: 0);
5638 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 2, n2: 3, expected: 0);
5639 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 2, n2: 4, expected: 0);
5640 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 4, n2: 0, expected: 0);
5641 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 4, n2: 1, expected: 0);
5642 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 4, n2: 2, expected: 0);
5643 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 5, n2: 0, expected: 0);
5644 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 5, n2: 1, expected: 0);
5645 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcde", pos2: 6, n2: 0, expected: 0);
5646 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 0, n2: 0, expected: 0);
5647 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 0, n2: 1, expected: 0);
5648 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 0, n2: 5, expected: 0);
5649 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 0, n2: 9, expected: 0);
5650 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 0, n2: 10, expected: 0);
5651 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 0, n2: 11, expected: 0);
5652 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 1, n2: 0, expected: 0);
5653 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 1, n2: 1, expected: 0);
5654 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 1, n2: 4, expected: 0);
5655 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 1, n2: 8, expected: 0);
5656 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 1, n2: 9, expected: 0);
5657 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 1, n2: 10, expected: 0);
5658 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 5, n2: 0, expected: 0);
5659 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 5, n2: 1, expected: 0);
5660 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 5, n2: 2, expected: 0);
5661 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 5, n2: 4, expected: 0);
5662 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 5, n2: 5, expected: 0);
5663 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 5, n2: 6, expected: 0);
5664 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 9, n2: 0, expected: 0);
5665 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 9, n2: 1, expected: 0);
5666 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 9, n2: 2, expected: 0);
5667 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 10, n2: 0, expected: 0);
5668 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 10, n2: 1, expected: 0);
5669 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghij", pos2: 11, n2: 0, expected: 0);
5670 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 0, expected: 0);
5671 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 1, expected: 0);
5672 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 10, expected: 0);
5673 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 19, expected: 0);
5674 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 20, expected: 0);
5675 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 0, n2: 21, expected: 0);
5676 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 0, expected: 0);
5677 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 1, expected: 0);
5678 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 9, expected: 0);
5679 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 18, expected: 0);
5680 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 19, expected: 0);
5681 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 1, n2: 20, expected: 0);
5682 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 0, expected: 0);
5683 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 1, expected: 0);
5684 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 5, expected: 0);
5685 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 9, expected: 0);
5686 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 10, expected: 0);
5687 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 10, n2: 11, expected: 0);
5688 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 0, expected: 0);
5689 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 1, expected: 0);
5690 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 19, n2: 2, expected: 0);
5691 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 0, expected: 0);
5692 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 20, n2: 1, expected: 0);
5693 test(s1: "abcdefghijklmnopqrst", pos1: 21, n1: 0, s2: "abcdefghijklmnopqrst", pos2: 21, n2: 0, expected: 0);
5694}
5695
5696int main(int, char**) {
5697 test0();
5698 test1();
5699 test2();
5700 test3();
5701 test4();
5702 test5();
5703 test6();
5704 test7();
5705 test8();
5706 test9();
5707 test10();
5708 test11();
5709 test12();
5710 test13();
5711 test14();
5712 test15();
5713 test16();
5714 test17();
5715 test18();
5716 test19();
5717 test20();
5718 test21();
5719 test22();
5720 test23();
5721 test24();
5722 test25();
5723 test26();
5724 test27();
5725 test28();
5726 test29();
5727 test30();
5728 test31();
5729 test32();
5730 test33();
5731 test34();
5732 test35();
5733 test36();
5734 test37();
5735 test38();
5736 test39();
5737 test40();
5738 test41();
5739 test42();
5740 test43();
5741 test44();
5742 test45();
5743 test46();
5744 test47();
5745 test48();
5746 test49();
5747 test50();
5748 test51();
5749 test52();
5750 test53();
5751 test54();
5752
5753 {
5754 test(s1: "abcde", pos1: 5, n1: 1, s2: "", pos2: 0, n2: 0, expected: 0);
5755 test(s1: "abcde", pos1: 2, n1: 4, s2: "", pos2: 0, n2: 0, expected: 3);
5756 test(s1: "abcde", pos1: 2, n1: 4, s2: "abcde", pos2: 3, n2: 4, expected: -2);
5757 test(s1: "ABCde", pos1: 2, n1: 4, s2: "abcde", pos2: 2, n2: 4, expected: -1);
5758 }
5759
5760#ifndef TEST_HAS_NO_WIDE_CHARACTERS
5761 {
5762 test(s1: L"abcde", pos1: 5, n1: 1, s2: L"", pos2: 0, n2: 0, expected: 0);
5763 test(s1: L"abcde", pos1: 2, n1: 4, s2: L"", pos2: 0, n2: 0, expected: 3);
5764 test(s1: L"abcde", pos1: 2, n1: 4, s2: L"abcde", pos2: 3, n2: 4, expected: -2);
5765 test(s1: L"ABCde", pos1: 2, n1: 4, s2: L"abcde", pos2: 2, n2: 4, expected: -1);
5766 }
5767#endif
5768
5769#if TEST_STD_VER >= 11
5770 {
5771 test(u"abcde", 5, 1, u"", 0, 0, 0);
5772 test(u"abcde", 2, 4, u"", 0, 0, 3);
5773 test(u"abcde", 2, 4, u"abcde", 3, 4, -2);
5774 test(u"ABCde", 2, 4, u"abcde", 2, 4, -1);
5775 }
5776
5777 {
5778 test(U"abcde", 5, 1, U"", 0, 0, 0);
5779 test(U"abcde", 2, 4, U"", 0, 0, 3);
5780 test(U"abcde", 2, 4, U"abcde", 3, 4, -2);
5781 test(U"ABCde", 2, 4, U"abcde", 2, 4, -1);
5782 }
5783#endif
5784
5785#if TEST_STD_VER > 11
5786 {
5787 typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
5788 constexpr SV sv1{"abcde", 5};
5789 static_assert(sv1.compare(5, 1, "", 0, 0) == 0, "");
5790 static_assert(sv1.compare(2, 4, "", 0, 0) > 0, "");
5791 static_assert(sv1.compare(2, 4, "abcde", 3, 4) < 0, "");
5792 }
5793#endif
5794
5795 return 0;
5796}
5797

source code of libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp