PYTHON ?= python3
PROJECT_PYTHONPATH := src:.
SMOKE_DIR := artifacts/local-smoke
RESEARCH_DIR := artifacts/research-smoke
PARITY_REPORT := artifacts/mock-parity/report.json

.PHONY: test bundle smoke verify research research-verify parity parity-verify doctor notebook-check notebook-smoke local

test:
	PYTHONPATH=$(PROJECT_PYTHONPATH) $(PYTHON) -m unittest discover -s tests -p '*.py' -q

bundle:
	$(PYTHON) tools/bundle_platforms.py

smoke:
	PYTHONPATH=$(PROJECT_PYTHONPATH) $(PYTHON) -m quant60 smoke --config configs/baseline.json --output $(SMOKE_DIR)

verify:
	PYTHONPATH=$(PROJECT_PYTHONPATH) $(PYTHON) -m quant60 verify-manifest $(SMOKE_DIR)/manifest.json

research:
	PYTHONPATH=$(PROJECT_PYTHONPATH) $(PYTHON) -m quant60 research-smoke --output $(RESEARCH_DIR)

research-verify:
	PYTHONPATH=$(PROJECT_PYTHONPATH) $(PYTHON) -m quant60 verify-research-manifest $(RESEARCH_DIR)/manifest.json

parity:
	PYTHONPATH=$(PROJECT_PYTHONPATH) $(PYTHON) tools/export_mock_parity.py export --output $(PARITY_REPORT)

parity-verify:
	PYTHONPATH=$(PROJECT_PYTHONPATH) $(PYTHON) tools/export_mock_parity.py verify $(PARITY_REPORT)

doctor:
	PYTHONPATH=$(PROJECT_PYTHONPATH) $(PYTHON) tools/capability_probe.py

notebook-check:
	$(PYTHON) tools/run_colab_notebook.py notebooks/quant_os_colab.ipynb

notebook-smoke:
	$(PYTHON) tools/run_colab_notebook.py notebooks/quant_os_colab.ipynb --execute

local: test bundle smoke verify research research-verify parity parity-verify doctor notebook-check notebook-smoke
