.PHONY: test test-ci test-metrics test-code test-monai \
	eval-ct-totalseg-msd-pancreas eval-ct-dints-msd-pancreas \
	eval-ct-totalseg-amos-pancreas eval-ct-dints-amos-pancreas \
	eval-mri-totalseg-amos-pancreas eval-mri-mrseg-amos-pancreas \
	eval-mri-totalseg-panseg-t1-pancreas eval-mri-mrseg-panseg-t1-pancreas \
	eval-mri-totalseg-panseg-t2-pancreas eval-mri-mrseg-panseg-t2-pancreas

PARQUET ?= dataset_generation/output/ct_pancreas.parquet
MRI_PARQUET ?= dataset_generation/output/mri_pancreas.parquet

# ---------------------------------------------------------------------------
# Unit tests
#   tests/metrics  — HD95 / CC / eval-summary contracts
#   tests/code     — datasets, models, pipeline, utils, infer, artifacts, …
# ---------------------------------------------------------------------------

test:
	uv run --group dev pytest tests/

test-metrics:
	uv run --group dev pytest tests/metrics/

test-code:
	uv run --group dev pytest tests/code/ --ignore=tests/code/test_monai_dints.py --no-cov

test-monai:
	uv run --extra monai --group dev pytest tests/code/test_monai_dints.py

# Same shape as GitHub Actions CI (CPU + monai, coverage XML/HTML).
test-ci:
	uv run --extra monai --group dev pytest tests/ \
		--cov=panseg \
		--cov=phase_2/models/lib \
		--cov-report=term-missing \
		--cov-report=xml:coverage.xml \
		--cov-report=html:htmlcov


eval-ct-totalseg-msd-pancreas:
	uv run python panseg/cli.py eval \
		--parquet $(PARQUET) \
		--modality ct \
		--model totalseg \
		--dataset msd-pancreas

eval-ct-dints-msd-pancreas:
	uv run --extra monai python panseg/cli.py eval \
		--parquet $(PARQUET) \
		--modality ct \
		--model dints \
		--dataset msd-pancreas

eval-ct-totalseg-amos-pancreas:
	uv run python panseg/cli.py eval \
		--parquet $(PARQUET) \
		--modality ct \
		--model totalseg \
		--dataset amos-ct-pancreas

eval-ct-dints-amos-pancreas:
	uv run --extra monai python panseg/cli.py eval \
		--parquet $(PARQUET) \
		--modality ct \
		--model dints \
		--dataset amos-ct-pancreas

eval-mri-totalseg-amos-pancreas:
	uv run python panseg/cli.py eval \
		--parquet $(MRI_PARQUET) \
		--modality mri \
		--model totalseg \
		--dataset amos-pancreas

eval-mri-mrseg-amos-pancreas:
	uv run --extra mrsegmentator python panseg/cli.py eval \
		--parquet $(MRI_PARQUET) \
		--modality mri \
		--model mrseg \
		--dataset amos-pancreas

eval-mri-totalseg-panseg-t1-pancreas:
	uv run python panseg/cli.py eval \
		--parquet $(MRI_PARQUET) \
		--modality mri \
		--model totalseg \
		--dataset panseg-t1-pancreas

eval-mri-mrseg-panseg-t1-pancreas:
	uv run --extra mrsegmentator python panseg/cli.py eval \
		--parquet $(MRI_PARQUET) \
		--modality mri \
		--model mrseg \
		--dataset panseg-t1-pancreas

eval-mri-totalseg-panseg-t2-pancreas:
	uv run python panseg/cli.py eval \
		--parquet $(MRI_PARQUET) \
		--modality mri \
		--model totalseg \
		--dataset panseg-t2-pancreas

eval-mri-mrseg-panseg-t2-pancreas:
	uv run --extra mrsegmentator python panseg/cli.py eval \
		--parquet $(MRI_PARQUET) \
		--modality mri \
		--model mrseg \
		--dataset panseg-t2-pancreas

include trained_model_evals.mk
