test:
	uv run pytest

nox:
	uv run nox

nox-with-rng-checksum:
	PREVENT_REVERSIONS=1 SSE_TEST_RNG=1 uv run nox

wc:
	find src tests -type f -name "*.py" | xargs wc -l
	find src tests -type f \( -name "*.c" -o -name "*.h" \) | xargs wc -l

local-install:
	uv pip install -e .

build-with-rng-checksum: clean-build-products
	PREVENT_REVERSIONS=1 SSE_TEST_RNG=1 uv sync --reinstall

build: clean-build-products
	PREVENT_REVERSIONS=1 uv sync --reinstall

clean-build-products:
	find src tests \( -name '*.dylib' -o -name '*.so' \) -delete

clean: clean-build-products
	find src tests \( -name '*.egg-info' -o -name __pycache__ \) | xargs -r rm -r
	find src tests -name '*~' -delete
	rm -rf build

benchmark-bin:
	mkdir -p build
	cc -O2 -o build/benchmark \
		src/c/benchmark.c \
		src/c/scramble_ndr.c \
		src/c/scramble_cdlr.c \
		src/c/scramble_nor.c \
		src/c/scramble_cor.c \
		src/c/scramble_clr.c \
		src/c/scramble_cls.c \
		src/c/scramble_clm.c \
		src/c/mutate_sequence.c \
		src/c/lib.c \
		-Isrc/c -lm

benchmark: build benchmark-bin
	uv run python -m SSE_for_Py.cli.benchmark
