coordinate transformer wip

This commit is contained in:
Matthias Bisping 2022-04-03 02:20:03 +02:00
parent f44e6f4fd7
commit 32397256c8

View File

@ -52,7 +52,7 @@ def base_position_metadata():
@pytest.fixture
def position_metadata(corner, coordinate_system):
def position_metadata_in_given_system(corner, coordinate_system):
if coordinate_system == "fpdf":
return get_fpdf_coordinates(corner)
@ -64,8 +64,13 @@ def position_metadata(corner, coordinate_system):
@pytest.fixture
def coordinate_test_pdf(position_metadata, coordinate_test_image, coordinate_test_fpdf):
add_image(coordinate_test_fpdf, ImageMetadataPair(coordinate_test_image, position_metadata))
def position_metadata_in_reference_system(corner):
return get_fpdf_coordinates(corner)
@pytest.fixture
def coordinate_test_pdf(position_metadata_in_given_system, coordinate_test_image, coordinate_test_fpdf):
add_image(coordinate_test_fpdf, ImageMetadataPair(coordinate_test_image, position_metadata_in_given_system))
return coordinate_test_fpdf.output(dest="S").encode("latin1")
@ -76,18 +81,20 @@ def coordinate_test_page_image(coordinate_test_pdf):
@pytest.mark.parametrize("corner", ["top_left", "bottom_left"])
@pytest.mark.parametrize("coordinate_system", ["fpdf"])
def test_fpdf_coordinate_transformer(position_metadata):
assert FPDFCoordinateTransformer()(position_metadata) == position_metadata
def test_fpdf_coordinate_transformer(position_metadata_in_given_system, position_metadata_in_reference_system):
assert FPDFCoordinateTransformer()(position_metadata_in_given_system) == position_metadata_in_reference_system
@pytest.mark.parametrize("corner", ["top_left", "bottom_left"])
@pytest.mark.parametrize("coordinate_system", ["fitz"])
def test_coordinate_transformer(position_metadata, coordinate_test_pdf):
def test_coordinate_transformer(
position_metadata_in_given_system, position_metadata_in_reference_system, coordinate_test_pdf
):
# coordinate_test_pdf.output("/tmp/x.pdf")
# coordinate_test_page_image.show()
metadata_extracted = next(map(second, ParsablePDFImageExtractor()(coordinate_test_pdf)))
position_extracted = project(metadata_extracted, list(position_metadata.keys()))
position_extracted = project(metadata_extracted, list(position_metadata_in_given_system.keys()))
assert position_extracted == position_metadata
assert FitzCoordinateTransformer()(position_metadata) == position_metadata
assert position_extracted == position_metadata_in_given_system
assert FitzCoordinateTransformer()(position_metadata_in_given_system) == position_metadata_in_reference_system