Files
mouse_control/pyproject.toml
Huang Qi c8fa5db7d3 Add pytest suite with 40 unit and integration tests
Coverage:
- test_model: SimpleNet forward (parametrized over batch sizes and both
  unsqueezed and flat input shapes), layer dimensions, differentiability,
  and ONNX round-trip
- test_inference: load_model resolution order (bundled, cwd override,
  explicit path, missing path), and predict shape/dtype/determinism plus
  endpoint sanity across 8 cardinal/diagonal targets
- test_train: _load_csv parsing, TrajectoryDataset indexing, full train()
  pipeline producing a single-file ONNX, plus a smoke test against the
  real data shipped under data/
- test_cli: --help for the three console scripts and a real run of
  mouse-visualize via both the entry point and python -m

Wire up pytest via dependency-groups and tool.pytest.ini_options.
2026-05-12 00:33:15 +08:00

52 lines
1.2 KiB
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "mouse-control"
version = "0.1.0"
description = "Neural-network mouse trajectory generation that mimics human motion."
readme = "README.md"
requires-python = ">=3.12"
keywords = ["mouse", "trajectory", "neural-network", "onnx", "anti-detection"]
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
"Operating System :: Microsoft :: Windows",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
]
dependencies = [
"matplotlib>=3.10",
"numpy>=2.0",
"onnxruntime>=1.20",
"onnxscript>=0.7",
"pandas>=2.0",
"scipy>=1.14",
"torch>=2.5",
]
[project.scripts]
mouse-collect = "mouse_control.collect:main"
mouse-train = "mouse_control.train:main"
mouse-visualize = "mouse_control.visualize:main"
[dependency-groups]
dev = ["pytest>=8.0"]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-ra"
[tool.hatch.build.targets.wheel]
packages = ["src/mouse_control"]
artifacts = ["src/mouse_control/assets/*.onnx"]
[tool.hatch.build.targets.sdist]
include = [
"src/",
"data/",
"imgs/",
"README.md",
"pyproject.toml",
]