]> git.madduck.net Git - etc/vim.git/blob - tests/data/expression.diff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Hug power operators if its operands are "simple" (#2726)
[etc/vim.git] / tests / data / expression.diff
1 --- [Deterministic header]
2 +++ [Deterministic header]
3 @@ -1,8 +1,8 @@
4  ...
5 -'some_string'
6 -b'\\xa3'
7 +"some_string"
8 +b"\\xa3"
9  Name
10  None
11  True
12  False
13  1
14 @@ -21,71 +21,104 @@
15  Name1 or (Name2 and Name3) or Name4
16  Name1 or Name2 and Name3 or Name4
17  v1 << 2
18  1 >> v2
19  1 % finished
20 -1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8
21 -((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8)
22 +1 + v2 - v3 * 4 ^ 5**v6 / 7 // 8
23 +((1 + v2) - (v3 * 4)) ^ (((5**v6) / 7) // 8)
24  not great
25  ~great
26  +value
27  -1
28  ~int and not v1 ^ 123 + v2 | True
29  (~int) and (not ((v1 ^ (123 + v2)) | True))
30 -+really ** -confusing ** ~operator ** -precedence
31 -flags & ~ select.EPOLLIN and waiters.write_task is not None
32 ++(really ** -(confusing ** ~(operator**-precedence)))
33 +flags & ~select.EPOLLIN and waiters.write_task is not None
34  lambda arg: None
35  lambda a=True: a
36  lambda a, b, c=True: a
37 -lambda a, b, c=True, *, d=(1 << v2), e='str': a
38 -lambda a, b, c=True, *vararg, d=(v1 << 2), e='str', **kwargs: a + b
39 +lambda a, b, c=True, *, d=(1 << v2), e="str": a
40 +lambda a, b, c=True, *vararg, d=(v1 << 2), e="str", **kwargs: a + b
41  manylambdas = lambda x=lambda y=lambda z=1: z: y(): x()
42 -foo = (lambda port_id, ignore_missing: {"port1": port1_resource, "port2": port2_resource}[port_id])
43 +foo = lambda port_id, ignore_missing: {
44 +    "port1": port1_resource,
45 +    "port2": port2_resource,
46 +}[port_id]
47  1 if True else 2
48  str or None if True else str or bytes or None
49  (str or None) if True else (str or bytes or None)
50  str or None if (1 if True else 2) else str or bytes or None
51  (str or None) if (1 if True else 2) else (str or bytes or None)
52 -((super_long_variable_name or None) if (1 if super_long_test_name else 2) else (str or bytes or None))
53 -{'2.7': dead, '3.7': (long_live or die_hard)}
54 -{'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}}
55 +(
56 +    (super_long_variable_name or None)
57 +    if (1 if super_long_test_name else 2)
58 +    else (str or bytes or None)
59 +)
60 +{"2.7": dead, "3.7": (long_live or die_hard)}
61 +{"2.7": dead, "3.7": (long_live or die_hard), **{"3.6": verygood}}
62  {**a, **b, **c}
63 -{'2.7', '3.6', '3.7', '3.8', '3.9', ('4.0' if gilectomy else '3.10')}
64 -({'a': 'b'}, (True or False), (+value), 'string', b'bytes') or None
65 +{"2.7", "3.6", "3.7", "3.8", "3.9", ("4.0" if gilectomy else "3.10")}
66 +({"a": "b"}, (True or False), (+value), "string", b"bytes") or None
67  ()
68  (1,)
69  (1, 2)
70  (1, 2, 3)
71  []
72  [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)]
73 -[1, 2, 3,]
74 +[
75 +    1,
76 +    2,
77 +    3,
78 +]
79  [*a]
80  [*range(10)]
81 -[*a, 4, 5,]
82 -[4, *a, 5,]
83 -[this_is_a_very_long_variable_which_will_force_a_delimiter_split, element, another, *more]
84 +[
85 +    *a,
86 +    4,
87 +    5,
88 +]
89 +[
90 +    4,
91 +    *a,
92 +    5,
93 +]
94 +[
95 +    this_is_a_very_long_variable_which_will_force_a_delimiter_split,
96 +    element,
97 +    another,
98 +    *more,
99 +]
100  {i for i in (1, 2, 3)}
101 -{(i ** 2) for i in (1, 2, 3)}
102 -{(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))}
103 -{((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
104 +{(i**2) for i in (1, 2, 3)}
105 +{(i**2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))}
106 +{((i**2) + j) for i in (1, 2, 3) for j in (1, 2, 3)}
107  [i for i in (1, 2, 3)]
108 -[(i ** 2) for i in (1, 2, 3)]
109 -[(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))]
110 -[((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
111 +[(i**2) for i in (1, 2, 3)]
112 +[(i**2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))]
113 +[((i**2) + j) for i in (1, 2, 3) for j in (1, 2, 3)]
114  {i: 0 for i in (1, 2, 3)}
115 -{i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))}
116 +{i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))}
117  {a: b * 2 for a, b in dictionary.items()}
118  {a: b * -2 for a, b in dictionary.items()}
119 -{k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension}
120 +{
121 +    k: v
122 +    for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension
123 +}
124  Python3 > Python2 > COBOL
125  Life is Life
126  call()
127  call(arg)
128 -call(kwarg='hey')
129 -call(arg, kwarg='hey')
130 -call(arg, another, kwarg='hey', **kwargs)
131 -call(this_is_a_very_long_variable_which_will_force_a_delimiter_split, arg, another, kwarg='hey', **kwargs)  # note: no trailing comma pre-3.6
132 +call(kwarg="hey")
133 +call(arg, kwarg="hey")
134 +call(arg, another, kwarg="hey", **kwargs)
135 +call(
136 +    this_is_a_very_long_variable_which_will_force_a_delimiter_split,
137 +    arg,
138 +    another,
139 +    kwarg="hey",
140 +    **kwargs
141 +)  # note: no trailing comma pre-3.6
142  call(*gidgets[:2])
143  call(a, *gidgets[:2])
144  call(**self.screen_kwargs)
145  call(b, **self.screen_kwargs)
146  lukasz.langa.pl
147 @@ -94,26 +127,29 @@
148  1.0 .real
149  ....__class__
150  list[str]
151  dict[str, int]
152  tuple[str, ...]
153 +tuple[str, int, float, dict[str, int]]
154  tuple[
155 -    str, int, float, dict[str, int]
156 -]
157 -tuple[str, int, float, dict[str, int],]
158 +    str,
159 +    int,
160 +    float,
161 +    dict[str, int],
162 +]
163  very_long_variable_name_filters: t.List[
164      t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]],
165  ]
166  xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(  # type: ignore
167      sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
168  )
169  xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(  # type: ignore
170      sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
171  )
172 -xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[
173 -    ..., List[SomeClass]
174 -] = classmethod(sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__))  # type: ignore
175 +xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod(
176 +    sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)
177 +)  # type: ignore
178  slice[0]
179  slice[0:1]
180  slice[0:1:2]
181  slice[:]
182  slice[:-1]
183 @@ -137,118 +173,199 @@
184  numpy[-(c + 1) :, d]
185  numpy[:, l[-2]]
186  numpy[:, ::-1]
187  numpy[np.newaxis, :]
188  (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
189 -{'2.7': dead, '3.7': long_live or die_hard}
190 -{'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
191 +{"2.7": dead, "3.7": long_live or die_hard}
192 +{"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"}
193  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C]
194  (SomeName)
195  SomeName
196  (Good, Bad, Ugly)
197  (i for i in (1, 2, 3))
198 -((i ** 2) for i in (1, 2, 3))
199 -((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c')))
200 -(((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
201 +((i**2) for i in (1, 2, 3))
202 +((i**2) for i, _ in ((1, "a"), (2, "b"), (3, "c")))
203 +(((i**2) + j) for i in (1, 2, 3) for j in (1, 2, 3))
204  (*starred,)
205 -{"id": "1","type": "type","started_at": now(),"ended_at": now() + timedelta(days=10),"priority": 1,"import_session_id": 1,**kwargs}
206 +{
207 +    "id": "1",
208 +    "type": "type",
209 +    "started_at": now(),
210 +    "ended_at": now() + timedelta(days=10),
211 +    "priority": 1,
212 +    "import_session_id": 1,
213 +    **kwargs,
214 +}
215  a = (1,)
216 -b = 1,
217 +b = (1,)
218  c = 1
219  d = (1,) + a + (2,)
220  e = (1,).count(1)
221  f = 1, *range(10)
222  g = 1, *"ten"
223 -what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove)
224 -what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove)
225 -result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc()).all()
226 -result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc(),).all()
227 +what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(
228 +    vars_to_remove
229 +)
230 +what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(
231 +    vars_to_remove
232 +)
233 +result = (
234 +    session.query(models.Customer.id)
235 +    .filter(
236 +        models.Customer.account_id == account_id, models.Customer.email == email_address
237 +    )
238 +    .order_by(models.Customer.id.asc())
239 +    .all()
240 +)
241 +result = (
242 +    session.query(models.Customer.id)
243 +    .filter(
244 +        models.Customer.account_id == account_id, models.Customer.email == email_address
245 +    )
246 +    .order_by(
247 +        models.Customer.id.asc(),
248 +    )
249 +    .all()
250 +)
251  Ø = set()
252  authors.łukasz.say_thanks()
253  mapping = {
254      A: 0.25 * (10.0 / 12),
255      B: 0.1 * (10.0 / 12),
256      C: 0.1 * (10.0 / 12),
257      D: 0.1 * (10.0 / 12),
258  }
259  
260 +
261  def gen():
262      yield from outside_of_generator
263 -    a = (yield)
264 -    b = ((yield))
265 -    c = (((yield)))
266 +    a = yield
267 +    b = yield
268 +    c = yield
269 +
270  
271  async def f():
272      await some.complicated[0].call(with_args=(True or (1 is not 1)))
273 -print(* [] or [1])
274 +
275 +
276 +print(*[] or [1])
277  print(**{1: 3} if False else {x: x for x in range(3)})
278 -print(* lambda x: x)
279 -assert(not Test),("Short message")
280 -assert this is ComplexTest and not requirements.fit_in_a_single_line(force=False), "Short message"
281 -assert(((parens is TooMany)))
282 -for x, in (1,), (2,), (3,): ...
283 -for y in (): ...
284 -for z in (i for i in (1, 2, 3)): ...
285 -for i in (call()): ...
286 -for j in (1 + (2 + 3)): ...
287 -while(this and that): ...
288 -for addr_family, addr_type, addr_proto, addr_canonname, addr_sockaddr in socket.getaddrinfo('google.com', 'http'):
289 +print(*lambda x: x)
290 +assert not Test, "Short message"
291 +assert this is ComplexTest and not requirements.fit_in_a_single_line(
292 +    force=False
293 +), "Short message"
294 +assert parens is TooMany
295 +for (x,) in (1,), (2,), (3,):
296 +    ...
297 +for y in ():
298 +    ...
299 +for z in (i for i in (1, 2, 3)):
300 +    ...
301 +for i in call():
302 +    ...
303 +for j in 1 + (2 + 3):
304 +    ...
305 +while this and that:
306 +    ...
307 +for (
308 +    addr_family,
309 +    addr_type,
310 +    addr_proto,
311 +    addr_canonname,
312 +    addr_sockaddr,
313 +) in socket.getaddrinfo("google.com", "http"):
314      pass
315 -a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
316 -a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
317 -a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
318 -a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
319 -if (
320 -    threading.current_thread() != threading.main_thread() and
321 -    threading.current_thread() != threading.main_thread() or
322 -    signal.getsignal(signal.SIGINT) != signal.default_int_handler
323 -):
324 -    return True
325 -if (
326 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
327 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
328 -):
329 -    return True
330 -if (
331 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &
332 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
333 -):
334 -    return True
335 -if (
336 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
337 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
338 -):
339 -    return True
340 -if (
341 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -
342 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
343 -):
344 -    return True
345 -if (
346 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
347 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
348 -):
349 -    return True
350 -if (
351 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa /
352 -    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
353 -):
354 -    return True
355 -if (
356 -    ~ aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n
357 -):
358 -    return True
359 -if (
360 -    ~ aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n
361 -):
362 -    return True
363 -if (
364 -    ~ aaaaaaaaaaaaaaaa.a + aaaaaaaaaaaaaaaa.b - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h ^ aaaaaaaaaaaaaaaa.i << aaaaaaaaaaaaaaaa.k >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
365 -):
366 -    return True
367 -aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa - aaaaaaaaaaaaaaaa * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa)
368 +a = (
369 +    aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
370 +    in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
371 +)
372 +a = (
373 +    aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
374 +    not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
375 +)
376 +a = (
377 +    aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
378 +    is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
379 +)
380 +a = (
381 +    aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp
382 +    is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz
383 +)
384 +if (
385 +    threading.current_thread() != threading.main_thread()
386 +    and threading.current_thread() != threading.main_thread()
387 +    or signal.getsignal(signal.SIGINT) != signal.default_int_handler
388 +):
389 +    return True
390 +if (
391 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
392 +    | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
393 +):
394 +    return True
395 +if (
396 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
397 +    & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
398 +):
399 +    return True
400 +if (
401 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
402 +    + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
403 +):
404 +    return True
405 +if (
406 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
407 +    - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
408 +):
409 +    return True
410 +if (
411 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
412 +    * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
413 +):
414 +    return True
415 +if (
416 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
417 +    / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
418 +):
419 +    return True
420 +if (
421 +    ~aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e
422 +    | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l**aaaa.m // aaaa.n
423 +):
424 +    return True
425 +if (
426 +    ~aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e
427 +    | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h
428 +    ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l**aaaaaaaa.m // aaaaaaaa.n
429 +):
430 +    return True
431 +if (
432 +    ~aaaaaaaaaaaaaaaa.a
433 +    + aaaaaaaaaaaaaaaa.b
434 +    - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e
435 +    | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h
436 +    ^ aaaaaaaaaaaaaaaa.i
437 +    << aaaaaaaaaaaaaaaa.k
438 +    >> aaaaaaaaaaaaaaaa.l**aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n
439 +):
440 +    return True
441 +(
442 +    aaaaaaaaaaaaaaaa
443 +    + aaaaaaaaaaaaaaaa
444 +    - aaaaaaaaaaaaaaaa
445 +    * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa)
446 +    / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa)
447 +)
448  aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa
449 -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
450 +(
451 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
452 +    >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
453 +    << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
454 +)
455  bbbb >> bbbb * bbbb
456 -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ^bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
457 +(
458 +    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
459 +    ^ bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
460 +    ^ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
461 +)
462  last_call()
463  # standalone comment at ENDMARKER