37 lines
1.0 KiB
Python
37 lines
1.0 KiB
Python
from merge_intervals import merge_intervals
|
|
|
|
def test_empty():
|
|
assert merge_intervals([]) == []
|
|
|
|
def test_single():
|
|
assert merge_intervals([(1,3)]) == [[1,3]]
|
|
|
|
def test_overlap():
|
|
assert merge_intervals([(1,3),(2,4)]) == [[1,4]]
|
|
|
|
def test_disjoint():
|
|
assert merge_intervals([(1,2),(4,5)]) == [[1,2],[4,5]]
|
|
|
|
def test_nested():
|
|
assert merge_intervals([(1,10),(2,3),(4,5)]) == [[1,10]]
|
|
|
|
def test_touching_default_not_merged():
|
|
assert merge_intervals([(1,2),(3,4)]) == [[1,2],[3,4]]
|
|
|
|
def test_touching_merged():
|
|
assert merge_intervals([(1,2),(3,4)], merge_touching=True) == [[1,4]]
|
|
|
|
def test_unsorted():
|
|
assert merge_intervals([(5,6),(1,2),(2,3)]) == [[1,3],[5,6]]
|
|
|
|
def test_dup():
|
|
assert merge_intervals([(1,2),(1,2)]) == [[1,2]]
|
|
|
|
if __name__=="__main__":
|
|
for n in [x for x in globals() if x.startswith("test_")]:
|
|
globals()[n]()
|
|
print("ALL TESTS PASSED")
|
|
|
|
# Run at import time so unittest discover exercises these cases.
|
|
for n in [x for x in globals() if x.startswith("test_")]:
|
|
globals()[n]() |