2026-06-27 17:54:44 +08:00

27 lines
810 B
Python

from desktop_mark.models import Rect
def test_normalized_keeps_positive_drag() -> None:
assert Rect(10, 20, 30, 40).normalized() == Rect(10, 20, 30, 40)
def test_normalized_handles_negative_drag() -> None:
assert Rect(50, 60, -20, -30).normalized() == Rect(30, 30, 20, 30)
def test_clamped_to_bounds() -> None:
rect = Rect(80, 90, 50, 40).clamped_to(Rect(100, 100, 100, 100))
assert rect == Rect(100, 100, 30, 30)
def test_clamped_negative_drag_to_bounds() -> None:
rect = Rect(250, 250, -200, -200).clamped_to(Rect(100, 100, 100, 100))
assert rect == Rect(100, 100, 100, 100)
def test_contains_uses_normalized_half_open_bounds() -> None:
rect = Rect(20, 20, -10, -10)
assert rect.contains(10, 10)
assert rect.contains(19, 19)
assert not rect.contains(20, 20)