From 3ff6dac2e006fffe62403384ed659b9567a68867 Mon Sep 17 00:00:00 2001 From: Matthias Bisping Date: Sun, 3 Apr 2022 04:46:52 +0200 Subject: [PATCH] added explanations for how the coordinate transformations were inferred --- test/unit_tests/coordinate_transformer_test.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/unit_tests/coordinate_transformer_test.py b/test/unit_tests/coordinate_transformer_test.py index 0e4201c..cb62da3 100644 --- a/test/unit_tests/coordinate_transformer_test.py +++ b/test/unit_tests/coordinate_transformer_test.py @@ -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