Mercurial > hgrepos > Python2 > PyMuPDF
diff tests/test_remove-rotation.py @ 1:1d09e1dec1d9 upstream
ADD: PyMuPDF v1.26.4: the original sdist.
It does not yet contain MuPDF. This normally will be downloaded when
building PyMuPDF.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:37:51 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test_remove-rotation.py Mon Sep 15 11:37:51 2025 +0200 @@ -0,0 +1,30 @@ +import os +import pymupdf +from gentle_compare import gentle_compare + +scriptdir = os.path.dirname(__file__) + + +def test_remove_rotation(): + """Remove rotation verifying identical appearance and text.""" + filename = os.path.join(scriptdir, "resources", "test-2812.pdf") + doc = pymupdf.open(filename) + + # We always create fresh pages to avoid false positives from cache content. + # Text on these pages consists of pairwise different strings, sorting by + # these strings must therefore yield identical bounding boxes. + for i in range(1, doc.page_count): + assert doc[i].rotation # must be a rotated page + pix0 = doc[i].get_pixmap() # make image + words0 = [] + for w in doc[i].get_text("words"): + words0.append(list(pymupdf.Rect(w[:4]) * doc[i].rotation_matrix) + [w[4]]) + words0.sort(key=lambda w: w[4]) # sort by word strings + # derotate page and confirm nothing else has changed + doc[i].remove_rotation() + assert doc[i].rotation == 0 + pix1 = doc[i].get_pixmap() + words1 = doc[i].get_text("words") + words1.sort(key=lambda w: w[4]) # sort by word strings + assert pix1.digest == pix0.digest, f"{pix1.digest}/{pix0.digest}" + assert gentle_compare(words0, words1)
