Blame tests/run/string_comparison.pyx

Packit 562c7a
Packit 562c7a
cimport cython
Packit 562c7a
Packit 562c7a
import sys
Packit 562c7a
IS_PY3 = sys.version_info[0] >= 3
Packit 562c7a
Packit 562c7a
bstring1 = b"abcdefg"
Packit 562c7a
bstring2 = b"1234567"
Packit 562c7a
Packit 562c7a
string1 = "abcdefg"
Packit 562c7a
string2 = "1234567"
Packit 562c7a
Packit 562c7a
ustring1 = u"abcdefg"
Packit 562c7a
ustring2 = u"1234567"
Packit 562c7a
Packit 562c7a
# unicode
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def unicode_eq(unicode s1, unicode s2):
Packit 562c7a
    """
Packit 562c7a
    >>> unicode_eq(ustring1, ustring1)
Packit 562c7a
    True
Packit 562c7a
    >>> unicode_eq(ustring1+ustring2, ustring1+ustring2)
Packit 562c7a
    True
Packit 562c7a
    >>> unicode_eq(ustring1, ustring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def unicode_neq(unicode s1, unicode s2):
Packit 562c7a
    """
Packit 562c7a
    >>> unicode_neq(ustring1, ustring1)
Packit 562c7a
    False
Packit 562c7a
    >>> unicode_neq(ustring1+ustring2, ustring1+ustring2)
Packit 562c7a
    False
Packit 562c7a
    >>> unicode_neq(ustring1, ustring2)
Packit 562c7a
    True
Packit 562c7a
    """
Packit 562c7a
    return s1 != s2
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def unicode_literal_eq(unicode s):
Packit 562c7a
    """
Packit 562c7a
    >>> unicode_literal_eq(ustring1)
Packit 562c7a
    True
Packit 562c7a
    >>> unicode_literal_eq((ustring1+ustring2)[:len(ustring1)])
Packit 562c7a
    True
Packit 562c7a
    >>> unicode_literal_eq(ustring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s == u"abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def unicode_literal_neq(unicode s):
Packit 562c7a
    """
Packit 562c7a
    >>> unicode_literal_neq(ustring1)
Packit 562c7a
    False
Packit 562c7a
    >>> unicode_literal_neq((ustring1+ustring2)[:len(ustring1)])
Packit 562c7a
    False
Packit 562c7a
    >>> unicode_literal_neq(ustring2)
Packit 562c7a
    True
Packit 562c7a
    """
Packit 562c7a
    return s != u"abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
    "//CascadedCmpNode"
Packit 562c7a
)
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//CascadedCmpNode[@is_pycmp = True]",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = True]",
Packit 562c7a
)
Packit 562c7a
def unicode_cascade(unicode s1, unicode s2):
Packit 562c7a
    """
Packit 562c7a
    >>> unicode_cascade(ustring1, ustring1)
Packit 562c7a
    True
Packit 562c7a
    >>> unicode_cascade(ustring1, (ustring1+ustring2)[:len(ustring1)])
Packit 562c7a
    True
Packit 562c7a
    >>> unicode_cascade(ustring1, ustring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2 == u"abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def unicode_cascade_untyped_end(unicode s1, unicode s2):
Packit 562c7a
    """
Packit 562c7a
    >>> unicode_cascade_untyped_end(ustring1, ustring1)
Packit 562c7a
    True
Packit 562c7a
    >>> unicode_cascade_untyped_end(ustring1, (ustring1+ustring2)[:len(ustring1)])
Packit 562c7a
    True
Packit 562c7a
    >>> unicode_cascade_untyped_end(ustring1, ustring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2 == u"abcdefg" == (<object>ustring1) == ustring1
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def unicode_cascade_untyped_end_bool(unicode s1, unicode s2):
Packit 562c7a
    """
Packit 562c7a
    >>> unicode_cascade_untyped_end_bool(ustring1, ustring1)
Packit 562c7a
    True
Packit 562c7a
    >>> unicode_cascade_untyped_end_bool(ustring1, (ustring1+ustring2)[:len(ustring1)])
Packit 562c7a
    True
Packit 562c7a
    >>> unicode_cascade_untyped_end_bool(ustring1, ustring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    if s1 == s2 == u"abcdefg" == (<object>ustring1) == ustring1:
Packit 562c7a
        return True
Packit 562c7a
    else:
Packit 562c7a
        return False
Packit 562c7a
Packit 562c7a
Packit 562c7a
# str
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def str_eq(str s1, str s2):
Packit 562c7a
    """
Packit 562c7a
    >>> str_eq(string1, string1)
Packit 562c7a
    True
Packit 562c7a
    >>> str_eq(string1+string2, string1+string2)
Packit 562c7a
    True
Packit 562c7a
    >>> str_eq(string1, string2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def str_neq(str s1, str s2):
Packit 562c7a
    """
Packit 562c7a
    >>> str_neq(string1, string1)
Packit 562c7a
    False
Packit 562c7a
    >>> str_neq(string1+string2, string1+string2)
Packit 562c7a
    False
Packit 562c7a
    >>> str_neq(string1, string2)
Packit 562c7a
    True
Packit 562c7a
    """
Packit 562c7a
    return s1 != s2
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def str_literal_eq(str s):
Packit 562c7a
    """
Packit 562c7a
    >>> str_literal_eq(string1)
Packit 562c7a
    True
Packit 562c7a
    >>> str_literal_eq((string1+string2)[:len(string1)])
Packit 562c7a
    True
Packit 562c7a
    >>> str_literal_eq(string2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s == "abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def str_literal_neq(str s):
Packit 562c7a
    """
Packit 562c7a
    >>> str_literal_neq(string1)
Packit 562c7a
    False
Packit 562c7a
    >>> str_literal_neq((string1+string2)[:len(string1)])
Packit 562c7a
    False
Packit 562c7a
    >>> str_literal_neq(string2)
Packit 562c7a
    True
Packit 562c7a
    """
Packit 562c7a
    return s != "abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//CascadedCmpNode[@is_pycmp = True]",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = True]",
Packit 562c7a
)
Packit 562c7a
def str_cascade(str s1, str s2):
Packit 562c7a
    """
Packit 562c7a
    >>> str_cascade(string1, string1)
Packit 562c7a
    True
Packit 562c7a
    >>> str_cascade(string1, (string1+string2)[:len(string1)])
Packit 562c7a
    True
Packit 562c7a
    >>> str_cascade(string1, string2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2 == "abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def str_cascade_untyped_end(str s1, str s2):
Packit 562c7a
    """
Packit 562c7a
    >>> str_cascade_untyped_end(string1, string1)
Packit 562c7a
    True
Packit 562c7a
    >>> str_cascade_untyped_end(string1, (string1+string2)[:len(string1)])
Packit 562c7a
    True
Packit 562c7a
    >>> str_cascade_untyped_end(string1, string2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2 == "abcdefg" == (<object>string1) == string1
Packit 562c7a
Packit 562c7a
# bytes
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def bytes_eq(bytes s1, bytes s2):
Packit 562c7a
    """
Packit 562c7a
    >>> bytes_eq(bstring1, bstring1)
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_eq(bstring1+bstring2, bstring1+bstring2)
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_eq(bstring1, bstring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def bytes_neq(bytes s1, bytes s2):
Packit 562c7a
    """
Packit 562c7a
    >>> bytes_neq(bstring1, bstring1)
Packit 562c7a
    False
Packit 562c7a
    >>> bytes_neq(bstring1+bstring2, bstring1+bstring2)
Packit 562c7a
    False
Packit 562c7a
    >>> bytes_neq(bstring1, bstring2)
Packit 562c7a
    True
Packit 562c7a
    """
Packit 562c7a
    return s1 != s2
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def bytes_literal_eq(bytes s):
Packit 562c7a
    """
Packit 562c7a
    >>> bytes_literal_eq(bstring1)
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_literal_eq((bstring1+bstring2)[:len(bstring1)])
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_literal_eq(bstring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s == b"abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def bytes_literal_neq(bytes s):
Packit 562c7a
    """
Packit 562c7a
    >>> bytes_literal_neq(bstring1)
Packit 562c7a
    False
Packit 562c7a
    >>> bytes_literal_neq((bstring1+bstring2)[:len(bstring1)])
Packit 562c7a
    False
Packit 562c7a
    >>> bytes_literal_neq(bstring2)
Packit 562c7a
    True
Packit 562c7a
    """
Packit 562c7a
    return s != b"abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//CascadedCmpNode[@is_pycmp = True]",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = True]",
Packit 562c7a
)
Packit 562c7a
def bytes_cascade(bytes s1, bytes s2):
Packit 562c7a
    """
Packit 562c7a
    >>> bytes_cascade(bstring1, bstring1)
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_cascade(bstring1, (bstring1+bstring2)[:len(bstring1)])
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_cascade(bstring1, bstring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2 == b"abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def bytes_cascade_untyped_end(bytes s1, bytes s2):
Packit 562c7a
    """
Packit 562c7a
    >>> bytes_cascade_untyped_end(bstring1, bstring1)
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_cascade_untyped_end(bstring1, (bstring1+bstring2)[:len(bstring1)])
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_cascade_untyped_end(bstring1, bstring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2 == b"abcdefg" == (<object>bstring1) == bstring1
Packit 562c7a
Packit 562c7a
Packit 562c7a
# basestring
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def basestring_eq(basestring s1, basestring s2):
Packit 562c7a
    """
Packit 562c7a
    >>> basestring_eq(string1, string1)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_eq(string1, ustring1)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_eq(string1+string2, string1+string2)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_eq(string1+ustring2, ustring1+string2)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_eq(string1, string2)
Packit 562c7a
    False
Packit 562c7a
    >>> basestring_eq(string1, ustring2)
Packit 562c7a
    False
Packit 562c7a
    >>> basestring_eq(ustring1, string2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def basestring_neq(basestring s1, basestring s2):
Packit 562c7a
    """
Packit 562c7a
    >>> basestring_neq(string1, string1)
Packit 562c7a
    False
Packit 562c7a
    >>> basestring_neq(string1+string2, string1+string2)
Packit 562c7a
    False
Packit 562c7a
    >>> basestring_neq(string1+ustring2, ustring1+string2)
Packit 562c7a
    False
Packit 562c7a
    >>> basestring_neq(string1, string2)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_neq(string1, ustring2)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_neq(ustring1, string2)
Packit 562c7a
    True
Packit 562c7a
    """
Packit 562c7a
    return s1 != s2
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def basestring_str_literal_eq(basestring s):
Packit 562c7a
    """
Packit 562c7a
    >>> basestring_str_literal_eq(string1)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_str_literal_eq((string1+string2)[:len(string1)])
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_str_literal_eq(string2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s == "abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def basestring_unicode_literal_eq(basestring s):
Packit 562c7a
    """
Packit 562c7a
    >>> basestring_unicode_literal_eq(string1)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_unicode_literal_eq((string1+string2)[:len(string1)])
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_unicode_literal_eq(string2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s == u"abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def basestring_str_literal_neq(basestring s):
Packit 562c7a
    """
Packit 562c7a
    >>> basestring_str_literal_neq(string1)
Packit 562c7a
    False
Packit 562c7a
    >>> basestring_str_literal_neq((string1+string2)[:len(string1)])
Packit 562c7a
    False
Packit 562c7a
    >>> basestring_str_literal_neq(string2)
Packit 562c7a
    True
Packit 562c7a
    """
Packit 562c7a
    return s != "abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def basestring_unicode_literal_neq(basestring s):
Packit 562c7a
    """
Packit 562c7a
    >>> basestring_unicode_literal_neq(string1)
Packit 562c7a
    False
Packit 562c7a
    >>> basestring_unicode_literal_neq((string1+string2)[:len(string1)])
Packit 562c7a
    False
Packit 562c7a
    >>> basestring_unicode_literal_neq(string2)
Packit 562c7a
    True
Packit 562c7a
    """
Packit 562c7a
    return s != u"abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
    "//CascadedCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//CascadedCmpNode[@is_pycmp = True]",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = True]",
Packit 562c7a
)
Packit 562c7a
def basestring_cascade_str(basestring s1, basestring s2):
Packit 562c7a
    """
Packit 562c7a
    >>> basestring_cascade_str(string1, string1)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_cascade_str(string1, (string1+string2)[:len(string1)])
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_cascade_str(string1, string2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2 == "abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
    "//CascadedCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//CascadedCmpNode[@is_pycmp = True]",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = True]",
Packit 562c7a
)
Packit 562c7a
def basestring_cascade_unicode(basestring s1, basestring s2):
Packit 562c7a
    """
Packit 562c7a
    >>> basestring_cascade_unicode(string1, string1)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_cascade_unicode(ustring1, string1)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_cascade_unicode(string1, ustring1)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_cascade_unicode(string1, (string1+string2)[:len(string1)])
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_cascade_unicode(string1, string2)
Packit 562c7a
    False
Packit 562c7a
    >>> basestring_cascade_unicode(ustring1, string2)
Packit 562c7a
    False
Packit 562c7a
    >>> basestring_cascade_unicode(string1, ustring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2 == u"abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def basestring_cascade_untyped_end(basestring s1, basestring s2):
Packit 562c7a
    """
Packit 562c7a
    >>> basestring_cascade_untyped_end(string1, string1)
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_cascade_untyped_end(string1, (string1+string2)[:len(string1)])
Packit 562c7a
    True
Packit 562c7a
    >>> basestring_cascade_untyped_end(string1, string2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2 == "abcdefg" == (<object>string1) == string1
Packit 562c7a
Packit 562c7a
Packit 562c7a
# untyped/literal comparison
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def untyped_unicode_literal_eq_bool(s):
Packit 562c7a
    """
Packit 562c7a
    >>> untyped_unicode_literal_eq_bool(string1)
Packit 562c7a
    True
Packit 562c7a
    >>> untyped_unicode_literal_eq_bool(ustring1)
Packit 562c7a
    True
Packit 562c7a
    >>> untyped_unicode_literal_eq_bool((string1+string2)[:len(string1)])
Packit 562c7a
    True
Packit 562c7a
    >>> untyped_unicode_literal_eq_bool(string2)
Packit 562c7a
    False
Packit 562c7a
    >>> untyped_unicode_literal_eq_bool(ustring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return True if s == u"abcdefg" else False
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def untyped_str_literal_eq_bool(s):
Packit 562c7a
    """
Packit 562c7a
    >>> untyped_str_literal_eq_bool(string1)
Packit 562c7a
    True
Packit 562c7a
    >>> untyped_str_literal_eq_bool(ustring1)
Packit 562c7a
    True
Packit 562c7a
    >>> untyped_str_literal_eq_bool((string1+string2)[:len(string1)])
Packit 562c7a
    True
Packit 562c7a
    >>> untyped_str_literal_eq_bool(string2)
Packit 562c7a
    False
Packit 562c7a
    >>> untyped_str_literal_eq_bool(ustring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return True if s == "abcdefg" else False
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = True]",
Packit 562c7a
    "//CascadedCmpNode",
Packit 562c7a
    "//CascadedCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//CascadedCmpNode[@is_pycmp = True]",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def untyped_unicode_cascade(s1, unicode s2):
Packit 562c7a
    """
Packit 562c7a
    >>> untyped_unicode_cascade(ustring1, ustring1)
Packit 562c7a
    True
Packit 562c7a
    >>> untyped_unicode_cascade(ustring1, (ustring1+ustring2)[:len(ustring1)])
Packit 562c7a
    True
Packit 562c7a
    >>> untyped_unicode_cascade(ustring1, ustring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return s1 == s2 == u"abcdefg"
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
    "//CascadedCmpNode",
Packit 562c7a
    "//CascadedCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//CascadedCmpNode[@is_pycmp = True]",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = True]",
Packit 562c7a
)
Packit 562c7a
def untyped_unicode_cascade_bool(s1, unicode s2):
Packit 562c7a
    """
Packit 562c7a
    >>> untyped_unicode_cascade_bool(ustring1, ustring1)
Packit 562c7a
    True
Packit 562c7a
    >>> untyped_unicode_cascade_bool(ustring1, (ustring1+ustring2)[:len(ustring1)])
Packit 562c7a
    True
Packit 562c7a
    >>> untyped_unicode_cascade_bool(ustring1, ustring2)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return True if s1 == s2 == u"abcdefg" else False
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PrimaryCmpNode",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = True]",
Packit 562c7a
    "//CascadedCmpNode",
Packit 562c7a
#    "//CascadedCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//CascadedCmpNode[@is_pycmp = True]",
Packit 562c7a
    "//PrimaryCmpNode[@is_pycmp = False]",
Packit 562c7a
)
Packit 562c7a
def untyped_untyped_unicode_cascade_bool(s1, s2):
Packit 562c7a
    """
Packit 562c7a
    >>> untyped_untyped_unicode_cascade_bool(ustring1, ustring1)
Packit 562c7a
    True
Packit 562c7a
    >>> untyped_untyped_unicode_cascade_bool(ustring1, (ustring1+ustring2)[:len(ustring1)])
Packit 562c7a
    True
Packit 562c7a
    >>> untyped_untyped_unicode_cascade_bool(ustring1, ustring2)
Packit 562c7a
    False
Packit 562c7a
    >>> untyped_untyped_unicode_cascade_bool(string1, string2)
Packit 562c7a
    False
Packit 562c7a
    >>> untyped_untyped_unicode_cascade_bool(1, 2)
Packit 562c7a
    False
Packit 562c7a
    >>> untyped_untyped_unicode_cascade_bool(1, 1)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
    return True if s1 == s2 == u"abcdefg" else False
Packit 562c7a
Packit 562c7a
Packit 562c7a
# bytes/str comparison
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    '//CondExprNode',
Packit 562c7a
    '//CondExprNode//PrimaryCmpNode',
Packit 562c7a
    '//CondExprNode//PrimaryCmpNode[@operator = "=="]',
Packit 562c7a
    '//CondExprNode//PrimaryCmpNode[@operator = "!="]',
Packit 562c7a
)
Packit 562c7a
def literal_compare_bytes_str():
Packit 562c7a
    """
Packit 562c7a
    >>> literal_compare_bytes_str()
Packit 562c7a
    True
Packit 562c7a
    """
Packit 562c7a
    # we must not constant fold the subexpressions as the result is Py2/3 sensitive
Packit 562c7a
    return b'abc' != 'abc' if IS_PY3 else b'abc' == 'abc'