From 2631eb5c0f90235b79846c0bf652543fd73f88d8 Mon Sep 17 00:00:00 2001 From: Julius Unverfehrt Date: Mon, 28 Mar 2022 12:05:07 +0200 Subject: [PATCH] add metadata fixture --- test/unit_tests/conftest.py | 29 +++++++++++++++++++++++++ test/unit_tests/image_extractor_test.py | 8 +++++++ 2 files changed, 37 insertions(+) diff --git a/test/unit_tests/conftest.py b/test/unit_tests/conftest.py index 6bd7680..e3dca1e 100644 --- a/test/unit_tests/conftest.py +++ b/test/unit_tests/conftest.py @@ -10,12 +10,15 @@ from image_prediction.estimator.adapter.adapters.keras import KerasEstimatorAdap from image_prediction.estimator.adapter.adapters.mock import EstimatorMock, EstimatorAdapterMock from image_prediction.exceptions import UnknownEstimatorAdapter, UnknownImageExtractor from image_prediction.image_extractor.extractors.mock import ImageExtractorMock +from image_prediction.image_extractor.extractors.parsable import ParsablePDFImageExtractor @pytest.fixture def image_extractor(extractor_type): if extractor_type == "mock": return ImageExtractorMock() + elif extractor_type == "parsable_pdf": + return ParsablePDFImageExtractor() else: raise UnknownImageExtractor(f"No image extractor for type {extractor_type} was specified.") @@ -119,3 +122,29 @@ def classes(): def map_labels(numeric_labels, classes): return [classes[nl] for nl in numeric_labels] + + +@pytest.fixture +def metadata(images): + def build_image_metadata(image): + width, height = image.size + page_width = 595.32 + page_height = 842.04 + x1 = random.uniform(0, page_width - width) + x2 = x1 + width + y1 = random.uniform(0, page_height) + y2 = y1 - height + + metadata = { + "page_width": page_width, + "page_height": page_height, + "page_idx": 0, + "width": width, + "height": height, + "x1": x1, + "x2": x2, + "y1": y1, + "y2": y2 + } + + return map(build_image_metadata, images) diff --git a/test/unit_tests/image_extractor_test.py b/test/unit_tests/image_extractor_test.py index f7fecd2..0c44ab2 100644 --- a/test/unit_tests/image_extractor_test.py +++ b/test/unit_tests/image_extractor_test.py @@ -6,3 +6,11 @@ import pytest def test_image_extractor_mock(image_extractor, images): images_extracted, metadata = map(list, zip(*image_extractor(images))) assert images_extracted == images + + +@pytest.mark.parametrize("extractor_type", ["parsable_pdf"]) +@pytest.mark.parametrize("batch_size", [1, 2, 4]) +def test_parsable_pdf_image_extractor(image_extractor, pdf, images, metadata): + images_extracted, metadata_extracted = map(list, zip(*image_extractor(images))) + assert images_extracted == images + assert metadata_extracted == metadata