added explanations for how the coordinate transformations were inferred
This commit is contained in:
parent
d134884553
commit
3ff6dac2e0
@ -115,6 +115,9 @@ def coordinate_test_page_image(coordinate_test_pdf):
|
|||||||
@pytest.mark.parametrize("corner", ["top_left", "bottom_left"])
|
@pytest.mark.parametrize("corner", ["top_left", "bottom_left"])
|
||||||
@pytest.mark.parametrize("coordinate_system", ["fpdf"])
|
@pytest.mark.parametrize("coordinate_system", ["fpdf"])
|
||||||
def test_fpdf_coordinate_transformer(position_metadata_in_given_system, position_metadata_in_reference_system):
|
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()
|
transformer = FPDFCoordinateTransformer()
|
||||||
assert transformer.forward(position_metadata_in_given_system) == position_metadata_in_reference_system
|
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
|
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("corner", ["top_left", "bottom_left"])
|
||||||
@pytest.mark.parametrize("coordinate_system", ["fitz"])
|
@pytest.mark.parametrize("coordinate_system", ["fitz"])
|
||||||
def test_fitz_coordinate_transformer(position_metadata_in_given_system, position_metadata_in_reference_system):
|
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()
|
transformer = FitzCoordinateTransformer()
|
||||||
assert transformer.forward(position_metadata_in_given_system) == position_metadata_in_reference_system
|
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
|
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("corner", ["top_left", "bottom_left"])
|
||||||
@pytest.mark.parametrize("coordinate_system", ["pdfnet"])
|
@pytest.mark.parametrize("coordinate_system", ["pdfnet"])
|
||||||
def test_pdfnet_coordinate_transformer(position_metadata_in_given_system, position_metadata_in_reference_system):
|
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()
|
transformer = PDFNetCoordinateTransformer()
|
||||||
|
|
||||||
assert transformer.forward(position_metadata_in_reference_system) == position_metadata_in_given_system
|
assert transformer.forward(position_metadata_in_reference_system) == position_metadata_in_given_system
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user