"""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")