added explanations for how the coordinate transformations were inferred

This commit is contained in:
Matthias Bisping 2022-04-03 04:46:52 +02:00
parent d134884553
commit 3ff6dac2e0

View File

@ -115,6 +115,9 @@ 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_in_given_system, position_metadata_in_reference_system):
"""We use FPDF's coordinate system as the reference system (arbitrarily). Hence, FPDFCoordinateTransformer
actually does not do anything. This test merely documents the fact, that FPDF is the reference system.
"""
transformer = FPDFCoordinateTransformer()
assert transformer.forward(position_metadata_in_given_system) == position_metadata_in_reference_system
assert transformer.backward(position_metadata_in_reference_system) == position_metadata_in_given_system
@ -128,6 +131,12 @@ def test_fpdf_coordinate_transformer(position_metadata_in_given_system, position
@pytest.mark.parametrize("corner", ["top_left", "bottom_left"])
@pytest.mark.parametrize("coordinate_system", ["fitz"])
def test_fitz_coordinate_transformer(position_metadata_in_given_system, position_metadata_in_reference_system):
"""How I inferred the transformation:
- extract images from coordinate_test_fpdf with ParsablePDFImageExtractor (see test_parsable_pdf_image_extractor)
- Compare position_metadata_in_given_system (fitz) with position_metadata_in_reference_system (fpdf)
- Observe that they are identical
"""
transformer = FitzCoordinateTransformer()
assert transformer.forward(position_metadata_in_given_system) == position_metadata_in_reference_system
assert transformer.backward(position_metadata_in_reference_system) == position_metadata_in_given_system
@ -141,6 +150,13 @@ def test_fitz_coordinate_transformer(position_metadata_in_given_system, position
@pytest.mark.parametrize("corner", ["top_left", "bottom_left"])
@pytest.mark.parametrize("coordinate_system", ["pdfnet"])
def test_pdfnet_coordinate_transformer(position_metadata_in_given_system, position_metadata_in_reference_system):
"""How I inferred the transformation:
- save coordinate_test_fpdf to disk as file f
- draw boxes for position_metadata_in_reference_system in f with draw_metadata_box
- save annotated pdf as file g
- look at discrepancy between the black square and the red box in g
"""
transformer = PDFNetCoordinateTransformer()
assert transformer.forward(position_metadata_in_reference_system) == position_metadata_in_given_system