import os from typing import Any import pytest from PIL import Image from wdtagger import Tagger tagger = Tagger() image_dir = "./tests/images/" image_paths = [os.path.join(image_dir, image) for image in os.listdir(image_dir)] * 16 images = [Image.open(image_path) for image_path in image_paths] def tag_in_batch(images: Any, batch: Any = 1) -> None: for i in range(0, len(images), batch): tagger.tag(images[i : i + batch]) @pytest.mark.benchmark( group="tagger", min_rounds=10, warmup=False, disable_gc=True, ) @pytest.mark.parametrize("batch", [1, 2, 4, 8, 16]) def test_tagger_benchmark(benchmark: Any, batch: Any) -> None: # warmup tag_in_batch(images[:1]) benchmark.pedantic(tag_in_batch, args=(images, batch), iterations=1, rounds=10) # cmd: pytest tests/benchmark_tagger.py -v