feat(lib): switch __init__ to ONNX-backed generate/generate_scroll
This commit is contained in:
@@ -43,3 +43,45 @@ def test_mouse_model_invalid_path_raises_model_load_error() -> None:
|
||||
from ai_mouse.errors import ModelLoadError
|
||||
with pytest.raises(ModelLoadError):
|
||||
MouseModel(model_path="/nonexistent/path/here")
|
||||
|
||||
|
||||
def test_mouse_model_timestamps_monotonic() -> None:
|
||||
from ai_mouse.mouse import MouseModel
|
||||
m = MouseModel()
|
||||
pts = m.generate((100, 200), (900, 400))
|
||||
times = [p[2] for p in pts]
|
||||
for i in range(1, len(times)):
|
||||
assert times[i] >= times[i - 1]
|
||||
|
||||
|
||||
def test_mouse_model_starts_and_ends_near_endpoints() -> None:
|
||||
from ai_mouse.mouse import MouseModel
|
||||
start = (100, 200)
|
||||
end = (900, 400)
|
||||
m = MouseModel()
|
||||
pts = m.generate(start, end)
|
||||
assert abs(pts[0][0] - start[0]) < 30
|
||||
assert abs(pts[0][1] - start[1]) < 30
|
||||
last_move = pts[-3] # last 2 are click events
|
||||
assert abs(last_move[0] - end[0]) < 30
|
||||
assert abs(last_move[1] - end[1]) < 30
|
||||
|
||||
|
||||
def test_mouse_model_n_points_parameter() -> None:
|
||||
from ai_mouse.mouse import MouseModel
|
||||
m = MouseModel()
|
||||
pts = m.generate((100, 200), (900, 400), n_points=32)
|
||||
# 32 moves + 2 clicks
|
||||
assert len(pts) == 34
|
||||
|
||||
|
||||
def test_mouse_model_click_events_have_matching_coords() -> None:
|
||||
from ai_mouse.mouse import MouseModel
|
||||
m = MouseModel()
|
||||
pts = m.generate((100, 200), (900, 400))
|
||||
down, up = pts[-2], pts[-1]
|
||||
assert down[0] == up[0]
|
||||
assert down[1] == up[1]
|
||||
assert up[2] > down[2]
|
||||
# Within click_dist bounds 20..500
|
||||
assert 20 <= up[2] - down[2] <= 500
|
||||
|
||||
Reference in New Issue
Block a user