feat(lib): add MouseModel (numpy + ONNX Runtime)
This commit is contained in:
45
tests/unit/test_mouse.py
Normal file
45
tests/unit/test_mouse.py
Normal file
@@ -0,0 +1,45 @@
|
||||
"""Tests for MouseModel and ai_mouse.generate()."""
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
def test_mouse_model_init_default() -> None:
|
||||
from ai_mouse.mouse import MouseModel
|
||||
m = MouseModel()
|
||||
assert m._seq_len > 0
|
||||
assert m._session is not None
|
||||
m.close()
|
||||
|
||||
|
||||
def test_mouse_model_generate_returns_correct_shape() -> None:
|
||||
from ai_mouse.mouse import MouseModel
|
||||
m = MouseModel()
|
||||
pts = m.generate((100, 200), (900, 400))
|
||||
assert len(pts) == 66 # 64 moves + 2 clicks
|
||||
for x, y, t in pts:
|
||||
assert isinstance(x, int)
|
||||
assert isinstance(y, int)
|
||||
assert isinstance(t, int)
|
||||
|
||||
|
||||
def test_mouse_model_click_false_omits_clicks() -> None:
|
||||
from ai_mouse.mouse import MouseModel
|
||||
m = MouseModel()
|
||||
pts = m.generate((100, 200), (900, 400), click=False)
|
||||
assert len(pts) == 64
|
||||
|
||||
|
||||
def test_mouse_model_seed_reproducibility() -> None:
|
||||
from ai_mouse.mouse import MouseModel
|
||||
m = MouseModel()
|
||||
a = m.generate((100, 200), (900, 400), seed=42)
|
||||
b = m.generate((100, 200), (900, 400), seed=42)
|
||||
assert a == b
|
||||
|
||||
|
||||
def test_mouse_model_invalid_path_raises_model_load_error() -> None:
|
||||
from ai_mouse.mouse import MouseModel
|
||||
from ai_mouse.errors import ModelLoadError
|
||||
with pytest.raises(ModelLoadError):
|
||||
MouseModel(model_path="/nonexistent/path/here")
|
||||
Reference in New Issue
Block a user