diff tests/test_cluster_drawings.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_cluster_drawings.py	Mon Sep 15 11:37:51 2025 +0200
@@ -0,0 +1,47 @@
+import os
+import pymupdf
+
+scriptdir = os.path.dirname(__file__)
+
+
+def test_cluster1():
+    """Confirm correct identification of known examples."""
+    if not hasattr(pymupdf, "mupdf"):
+        print("Not executing 'test_cluster1' in classic")
+        return
+    filename = os.path.join(scriptdir, "resources", "symbol-list.pdf")
+    doc = pymupdf.open(filename)
+    page = doc[0]
+    assert len(page.cluster_drawings()) == 10
+    filename = os.path.join(scriptdir, "resources", "chinese-tables.pdf")
+    doc = pymupdf.open(filename)
+    page = doc[0]
+    assert len(page.cluster_drawings()) == 2
+
+
+def test_cluster2():
+    """Join disjoint but neighbored drawings."""
+    if not hasattr(pymupdf, "mupdf"):
+        print("Not executing 'test_cluster2' in classic")
+        return
+    doc = pymupdf.open()
+    page = doc.new_page()
+    r1 = pymupdf.Rect(100, 100, 200, 200)
+    r2 = pymupdf.Rect(203, 203, 400, 400)
+    page.draw_rect(r1)
+    page.draw_rect(r2)
+    assert page.cluster_drawings() == [r1 | r2]
+
+
+def test_cluster3():
+    """Confirm as separate if neighborhood threshold exceeded."""
+    if not hasattr(pymupdf, "mupdf"):
+        print("Not executing 'test_cluster3' in classic")
+        return
+    doc = pymupdf.open()
+    page = doc.new_page()
+    r1 = pymupdf.Rect(100, 100, 200, 200)
+    r2 = pymupdf.Rect(204, 200, 400, 400)
+    page.draw_rect(r1)
+    page.draw_rect(r2)
+    assert page.cluster_drawings() == [r1, r2]