mirror of
https://github.com/datahub-project/datahub.git
synced 2025-07-04 23:57:03 +00:00
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
from datahub.utilities.ordered_set import OrderedSet
|
|
|
|
|
|
def test_ordered_set():
|
|
# Test initialization
|
|
ordered_set: OrderedSet[int] = OrderedSet()
|
|
assert len(ordered_set) == 0
|
|
|
|
# Test adding items
|
|
ordered_set.add(1)
|
|
ordered_set.add(2)
|
|
ordered_set.add(3)
|
|
assert len(ordered_set) == 3
|
|
|
|
# Test adding duplicate item
|
|
ordered_set.add(1)
|
|
assert len(ordered_set) == 3
|
|
|
|
# Test discarding item
|
|
ordered_set.discard(2)
|
|
assert len(ordered_set) == 2
|
|
assert 2 not in ordered_set
|
|
|
|
# Test updating with iterable
|
|
ordered_set.update([4, 5, 6])
|
|
assert len(ordered_set) == 5
|
|
assert 4 in ordered_set
|
|
assert 5 in ordered_set
|
|
assert 6 in ordered_set
|
|
|
|
# Test containment check
|
|
assert 3 in ordered_set
|
|
assert 7 not in ordered_set
|
|
|
|
# Test iteration
|
|
items = list(ordered_set)
|
|
assert items == [1, 3, 4, 5, 6]
|
|
|
|
# Test reverse iteration
|
|
items = list(reversed(ordered_set))
|
|
assert items == [6, 5, 4, 3, 1]
|
|
|
|
# Test string representation
|
|
assert repr(ordered_set) == "OrderedSet([1, 3, 4, 5, 6])"
|