27 lines
810 B
Python
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)
|