add metadata fixture

This commit is contained in:
Julius Unverfehrt 2022-03-28 12:05:07 +02:00
parent 643ab99bd3
commit 2631eb5c0f
2 changed files with 37 additions and 0 deletions

View File

@ -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)

View File

@ -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