Skip to content

Strange behavior of superset and subset #25

@erumoico

Description

@erumoico

If something is not subset, then it cannot be sure is superset or not, it must be tested

>>> {1}.issubset({2, 3})
False
>>> {1} <= {2, 3}
False
>>> OrderedSet([1]).issubset(OrderedSet([2, 3]))
False
>>> OrderedSet([1]) <= OrderedSet([2, 3])
False

>>> {1}.issuperset({2, 3})
False
>>> {1} >= {2, 3}
False
>>> {1} > {2, 3}
False
>>> OrderedSet([1]).issuperset(OrderedSet([2, 3]))
False
>>> OrderedSet([1]) >= OrderedSet([2, 3])
True
>>> OrderedSet([1]) > OrderedSet([2, 3])
True

Edit: Oh, this may be solved by pull #22

Compare between OrderedSet and set

>>> OrderedSet([1]).issubset({3})
False
>>> OrderedSet([1]).issuperset({3}) # What is return {3} <= OrderedSet([1]), but…
True
>>> {3} <= OrderedSet([1])
True
>>> {3}.issubset(OrderedSet([1]))
False
>>> {3}.issuperset(OrderedSet([1]))
False

Compare between OrderedSet and list

>>> OrderedSet([1]).issuperset([3])
True
>>> OrderedSet([1]).issubset([3])
True

if isinstance(other, Set):

It may be: isinstance(other, (Set, list))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions