15
@cython.test_assert_path_exists(
17
"//PrimaryCmpNode[@is_pycmp = False]",
19
def unicode_eq(unicode s1, unicode s2):
21
>>> unicode_eq(ustring1, ustring1)
23
>>> unicode_eq(ustring1+ustring2, ustring1+ustring2)
25
>>> unicode_eq(ustring1, ustring2)
30
@cython.test_assert_path_exists(
32
"//PrimaryCmpNode[@is_pycmp = False]",
34
def unicode_neq(unicode s1, unicode s2):
36
>>> unicode_neq(ustring1, ustring1)
38
>>> unicode_neq(ustring1+ustring2, ustring1+ustring2)
40
>>> unicode_neq(ustring1, ustring2)
45
@cython.test_assert_path_exists(
47
"//PrimaryCmpNode[@is_pycmp = False]",
49
def unicode_literal_eq(unicode s):
51
>>> unicode_literal_eq(ustring1)
53
>>> unicode_literal_eq((ustring1+ustring2)[:len(ustring1)])
55
>>> unicode_literal_eq(ustring2)
58
return s == u"abcdefg"
60
@cython.test_assert_path_exists(
62
"//PrimaryCmpNode[@is_pycmp = False]",
64
def unicode_literal_neq(unicode s):
66
>>> unicode_literal_neq(ustring1)
68
>>> unicode_literal_neq((ustring1+ustring2)[:len(ustring1)])
70
>>> unicode_literal_neq(ustring2)
73
return s != u"abcdefg"
75
@cython.test_assert_path_exists(
77
"//PrimaryCmpNode[@is_pycmp = False]",
80
@cython.test_fail_if_path_exists(
81
"//CascadedCmpNode[@is_pycmp = True]",
82
"//PrimaryCmpNode[@is_pycmp = True]",
84
def unicode_cascade(unicode s1, unicode s2):
86
>>> unicode_cascade(ustring1, ustring1)
88
>>> unicode_cascade(ustring1, (ustring1+ustring2)[:len(ustring1)])
90
>>> unicode_cascade(ustring1, ustring2)
93
return s1 == s2 == u"abcdefg"
95
@cython.test_assert_path_exists(
97
"//PrimaryCmpNode[@is_pycmp = False]",
99
def unicode_cascade_untyped_end(unicode s1, unicode s2):
101
>>> unicode_cascade_untyped_end(ustring1, ustring1)
103
>>> unicode_cascade_untyped_end(ustring1, (ustring1+ustring2)[:len(ustring1)])
105
>>> unicode_cascade_untyped_end(ustring1, ustring2)
108
return s1 == s2 == u"abcdefg" == (<object>ustring1) == ustring1
110
@cython.test_assert_path_exists(
112
"//PrimaryCmpNode[@is_pycmp = False]",
114
def unicode_cascade_untyped_end_bool(unicode s1, unicode s2):
116
>>> unicode_cascade_untyped_end_bool(ustring1, ustring1)
118
>>> unicode_cascade_untyped_end_bool(ustring1, (ustring1+ustring2)[:len(ustring1)])
120
>>> unicode_cascade_untyped_end_bool(ustring1, ustring2)
123
if s1 == s2 == u"abcdefg" == (<object>ustring1) == ustring1:
131
@cython.test_assert_path_exists(
133
"//PrimaryCmpNode[@is_pycmp = False]",
135
def str_eq(str s1, str s2):
137
>>> str_eq(string1, string1)
139
>>> str_eq(string1+string2, string1+string2)
141
>>> str_eq(string1, string2)
146
@cython.test_assert_path_exists(
148
"//PrimaryCmpNode[@is_pycmp = False]",
150
def str_neq(str s1, str s2):
152
>>> str_neq(string1, string1)
154
>>> str_neq(string1+string2, string1+string2)
156
>>> str_neq(string1, string2)
161
@cython.test_assert_path_exists(
163
"//PrimaryCmpNode[@is_pycmp = False]",
165
def str_literal_eq(str s):
167
>>> str_literal_eq(string1)
169
>>> str_literal_eq((string1+string2)[:len(string1)])
171
>>> str_literal_eq(string2)
174
return s == "abcdefg"
176
@cython.test_assert_path_exists(
178
"//PrimaryCmpNode[@is_pycmp = False]",
180
def str_literal_neq(str s):
182
>>> str_literal_neq(string1)
184
>>> str_literal_neq((string1+string2)[:len(string1)])
186
>>> str_literal_neq(string2)
189
return s != "abcdefg"
191
@cython.test_assert_path_exists(
193
"//PrimaryCmpNode[@is_pycmp = False]",
195
@cython.test_fail_if_path_exists(
196
"//CascadedCmpNode[@is_pycmp = True]",
197
"//PrimaryCmpNode[@is_pycmp = True]",
199
def str_cascade(str s1, str s2):
201
>>> str_cascade(string1, string1)
203
>>> str_cascade(string1, (string1+string2)[:len(string1)])
205
>>> str_cascade(string1, string2)
208
return s1 == s2 == "abcdefg"
210
@cython.test_assert_path_exists(
212
"//PrimaryCmpNode[@is_pycmp = False]",
214
def str_cascade_untyped_end(str s1, str s2):
216
>>> str_cascade_untyped_end(string1, string1)
218
>>> str_cascade_untyped_end(string1, (string1+string2)[:len(string1)])
220
>>> str_cascade_untyped_end(string1, string2)
223
return s1 == s2 == "abcdefg" == (<object>string1) == string1
227
@cython.test_assert_path_exists(
229
"//PrimaryCmpNode[@is_pycmp = False]",
231
def bytes_eq(bytes s1, bytes s2):
233
>>> bytes_eq(bstring1, bstring1)
235
>>> bytes_eq(bstring1+bstring2, bstring1+bstring2)
237
>>> bytes_eq(bstring1, bstring2)
242
@cython.test_assert_path_exists(
244
"//PrimaryCmpNode[@is_pycmp = False]",
246
def bytes_neq(bytes s1, bytes s2):
248
>>> bytes_neq(bstring1, bstring1)
250
>>> bytes_neq(bstring1+bstring2, bstring1+bstring2)
252
>>> bytes_neq(bstring1, bstring2)
257
@cython.test_assert_path_exists(
259
"//PrimaryCmpNode[@is_pycmp = False]",
261
def bytes_literal_eq(bytes s):
263
>>> bytes_literal_eq(bstring1)
265
>>> bytes_literal_eq((bstring1+bstring2)[:len(bstring1)])
267
>>> bytes_literal_eq(bstring2)
270
return s == b"abcdefg"
272
@cython.test_assert_path_exists(
274
"//PrimaryCmpNode[@is_pycmp = False]",
276
def bytes_literal_neq(bytes s):
278
>>> bytes_literal_neq(bstring1)
280
>>> bytes_literal_neq((bstring1+bstring2)[:len(bstring1)])
282
>>> bytes_literal_neq(bstring2)
285
return s != b"abcdefg"
287
@cython.test_assert_path_exists(
289
"//PrimaryCmpNode[@is_pycmp = False]",
291
@cython.test_fail_if_path_exists(
292
"//CascadedCmpNode[@is_pycmp = True]",
293
"//PrimaryCmpNode[@is_pycmp = True]",
295
def bytes_cascade(bytes s1, bytes s2):
297
>>> bytes_cascade(bstring1, bstring1)
299
>>> bytes_cascade(bstring1, (bstring1+bstring2)[:len(bstring1)])
301
>>> bytes_cascade(bstring1, bstring2)
304
return s1 == s2 == b"abcdefg"
306
@cython.test_assert_path_exists(
308
"//PrimaryCmpNode[@is_pycmp = False]",
310
def bytes_cascade_untyped_end(bytes s1, bytes s2):
312
>>> bytes_cascade_untyped_end(bstring1, bstring1)
314
>>> bytes_cascade_untyped_end(bstring1, (bstring1+bstring2)[:len(bstring1)])
316
>>> bytes_cascade_untyped_end(bstring1, bstring2)
319
return s1 == s2 == b"abcdefg" == (<object>bstring1) == bstring1
324
@cython.test_assert_path_exists(
326
"//PrimaryCmpNode[@is_pycmp = False]",
328
def basestring_eq(basestring s1, basestring s2):
330
>>> basestring_eq(string1, string1)
332
>>> basestring_eq(string1, ustring1)
334
>>> basestring_eq(string1+string2, string1+string2)
336
>>> basestring_eq(string1+ustring2, ustring1+string2)
338
>>> basestring_eq(string1, string2)
340
>>> basestring_eq(string1, ustring2)
342
>>> basestring_eq(ustring1, string2)
347
@cython.test_assert_path_exists(
349
"//PrimaryCmpNode[@is_pycmp = False]",
351
def basestring_neq(basestring s1, basestring s2):
353
>>> basestring_neq(string1, string1)
355
>>> basestring_neq(string1+string2, string1+string2)
357
>>> basestring_neq(string1+ustring2, ustring1+string2)
359
>>> basestring_neq(string1, string2)
361
>>> basestring_neq(string1, ustring2)
363
>>> basestring_neq(ustring1, string2)
368
@cython.test_assert_path_exists(
370
"//PrimaryCmpNode[@is_pycmp = False]",
372
def basestring_str_literal_eq(basestring s):
374
>>> basestring_str_literal_eq(string1)
376
>>> basestring_str_literal_eq((string1+string2)[:len(string1)])
378
>>> basestring_str_literal_eq(string2)
381
return s == "abcdefg"
383
@cython.test_assert_path_exists(
385
"//PrimaryCmpNode[@is_pycmp = False]",
387
def basestring_unicode_literal_eq(basestring s):
389
>>> basestring_unicode_literal_eq(string1)
391
>>> basestring_unicode_literal_eq((string1+string2)[:len(string1)])
393
>>> basestring_unicode_literal_eq(string2)
396
return s == u"abcdefg"
398
@cython.test_assert_path_exists(
400
"//PrimaryCmpNode[@is_pycmp = False]",
402
def basestring_str_literal_neq(basestring s):
404
>>> basestring_str_literal_neq(string1)
406
>>> basestring_str_literal_neq((string1+string2)[:len(string1)])
408
>>> basestring_str_literal_neq(string2)
411
return s != "abcdefg"
413
@cython.test_assert_path_exists(
415
"//PrimaryCmpNode[@is_pycmp = False]",
417
def basestring_unicode_literal_neq(basestring s):
419
>>> basestring_unicode_literal_neq(string1)
421
>>> basestring_unicode_literal_neq((string1+string2)[:len(string1)])
423
>>> basestring_unicode_literal_neq(string2)
426
return s != u"abcdefg"
428
@cython.test_assert_path_exists(
430
"//PrimaryCmpNode[@is_pycmp = False]",
431
"//CascadedCmpNode[@is_pycmp = False]",
433
@cython.test_fail_if_path_exists(
434
"//CascadedCmpNode[@is_pycmp = True]",
435
"//PrimaryCmpNode[@is_pycmp = True]",
437
def basestring_cascade_str(basestring s1, basestring s2):
439
>>> basestring_cascade_str(string1, string1)
441
>>> basestring_cascade_str(string1, (string1+string2)[:len(string1)])
443
>>> basestring_cascade_str(string1, string2)
446
return s1 == s2 == "abcdefg"
448
@cython.test_assert_path_exists(
450
"//PrimaryCmpNode[@is_pycmp = False]",
451
"//CascadedCmpNode[@is_pycmp = False]",
453
@cython.test_fail_if_path_exists(
454
"//CascadedCmpNode[@is_pycmp = True]",
455
"//PrimaryCmpNode[@is_pycmp = True]",
457
def basestring_cascade_unicode(basestring s1, basestring s2):
459
>>> basestring_cascade_unicode(string1, string1)
461
>>> basestring_cascade_unicode(ustring1, string1)
463
>>> basestring_cascade_unicode(string1, ustring1)
465
>>> basestring_cascade_unicode(string1, (string1+string2)[:len(string1)])
467
>>> basestring_cascade_unicode(string1, string2)
469
>>> basestring_cascade_unicode(ustring1, string2)
471
>>> basestring_cascade_unicode(string1, ustring2)
474
return s1 == s2 == u"abcdefg"
476
@cython.test_assert_path_exists(
478
"//PrimaryCmpNode[@is_pycmp = False]",
480
def basestring_cascade_untyped_end(basestring s1, basestring s2):
482
>>> basestring_cascade_untyped_end(string1, string1)
484
>>> basestring_cascade_untyped_end(string1, (string1+string2)[:len(string1)])
486
>>> basestring_cascade_untyped_end(string1, string2)
489
return s1 == s2 == "abcdefg" == (<object>string1) == string1
492
# untyped/literal comparison
494
@cython.test_assert_path_exists(
496
"//PrimaryCmpNode[@is_pycmp = False]",
498
def untyped_unicode_literal_eq_bool(s):
500
>>> untyped_unicode_literal_eq_bool(string1)
502
>>> untyped_unicode_literal_eq_bool(ustring1)
504
>>> untyped_unicode_literal_eq_bool((string1+string2)[:len(string1)])
506
>>> untyped_unicode_literal_eq_bool(string2)
508
>>> untyped_unicode_literal_eq_bool(ustring2)
511
return True if s == u"abcdefg" else False
513
@cython.test_assert_path_exists(
515
"//PrimaryCmpNode[@is_pycmp = False]",
517
def untyped_str_literal_eq_bool(s):
519
>>> untyped_str_literal_eq_bool(string1)
521
>>> untyped_str_literal_eq_bool(ustring1)
523
>>> untyped_str_literal_eq_bool((string1+string2)[:len(string1)])
525
>>> untyped_str_literal_eq_bool(string2)
527
>>> untyped_str_literal_eq_bool(ustring2)
530
return True if s == "abcdefg" else False
532
@cython.test_assert_path_exists(
534
"//PrimaryCmpNode[@is_pycmp = True]",
536
"//CascadedCmpNode[@is_pycmp = False]",
538
@cython.test_fail_if_path_exists(
539
"//CascadedCmpNode[@is_pycmp = True]",
540
"//PrimaryCmpNode[@is_pycmp = False]",
542
def untyped_unicode_cascade(s1, unicode s2):
544
>>> untyped_unicode_cascade(ustring1, ustring1)
546
>>> untyped_unicode_cascade(ustring1, (ustring1+ustring2)[:len(ustring1)])
548
>>> untyped_unicode_cascade(ustring1, ustring2)
551
return s1 == s2 == u"abcdefg"
553
@cython.test_assert_path_exists(
555
"//PrimaryCmpNode[@is_pycmp = False]",
557
"//CascadedCmpNode[@is_pycmp = False]",
559
@cython.test_fail_if_path_exists(
560
"//CascadedCmpNode[@is_pycmp = True]",
561
"//PrimaryCmpNode[@is_pycmp = True]",
563
def untyped_unicode_cascade_bool(s1, unicode s2):
565
>>> untyped_unicode_cascade_bool(ustring1, ustring1)
567
>>> untyped_unicode_cascade_bool(ustring1, (ustring1+ustring2)[:len(ustring1)])
569
>>> untyped_unicode_cascade_bool(ustring1, ustring2)
572
return True if s1 == s2 == u"abcdefg" else False
574
@cython.test_assert_path_exists(
576
"//PrimaryCmpNode[@is_pycmp = True]",
578
# "//CascadedCmpNode[@is_pycmp = False]",
580
@cython.test_fail_if_path_exists(
581
"//CascadedCmpNode[@is_pycmp = True]",
582
"//PrimaryCmpNode[@is_pycmp = False]",
584
def untyped_untyped_unicode_cascade_bool(s1, s2):
586
>>> untyped_untyped_unicode_cascade_bool(ustring1, ustring1)
588
>>> untyped_untyped_unicode_cascade_bool(ustring1, (ustring1+ustring2)[:len(ustring1)])
590
>>> untyped_untyped_unicode_cascade_bool(ustring1, ustring2)
592
>>> untyped_untyped_unicode_cascade_bool(string1, string2)
594
>>> untyped_untyped_unicode_cascade_bool(1, 2)
596
>>> untyped_untyped_unicode_cascade_bool(1, 1)
599
return True if s1 == s2 == u"abcdefg" else False
602
# bytes/str comparison
604
@cython.test_assert_path_exists(
606
'//PrimaryCmpNode[@operator = "!="]',
608
def literal_compare_bytes_str():
610
>>> literal_compare_bytes_str()
613
# we must not constant fold the subexpressions as the result is Py2/3 sensitive
614
return b'abc' != 'abc'