§
    Ti<  ã                   ó   — d Z ddlZddlmZ ddlmZmZ d„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zej                             d¬¦  «        d„ ¦   «         Zej                             d¬¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ ZdS )z
Tests for GEOSClipByRect based on unit tests from libgeos.

There are some expected differences due to Shapely's handling of empty
geometries.
é    N)Úclip_by_rect)ÚdumpsÚloadsc                  óx   — t          d¦  «        } t          | dddd¦  «        }t          |d¬¦  «        dk    sJ ‚dS )zPoint outsidezPOINT (0 0)é
   é   r   ©Úrounding_precisionúGEOMETRYCOLLECTION EMPTYN©Úload_wktr   Údump_wkt©Úgeom1Úgeom2s     ú~/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/shapely/tests/legacy/test_clip_by_rect.pyÚtest_point_outsider      sI   € å]Ñ#Ô#€EÝ˜  B¨¨BÑ/Ô/€EÝE¨aÐ0Ñ0Ô0Ð4NÒNÐNÐNÐNÐNÐNó    c                  óx   — t          d¦  «        } t          | dddd¦  «        }t          |d¬¦  «        dk    sJ ‚dS )zPoint insidezPOINT (15 15)r   r   r   r	   Nr   r   s     r   Útest_point_insider      sH   € å_Ñ%Ô%€EÝ˜  B¨¨BÑ/Ô/€EÝE¨aÐ0Ñ0Ô0°OÒCÐCÐCÐCÐCÐCr   c                  óx   — t          d¦  «        } t          | dddd¦  «        }t          |d¬¦  «        dk    sJ ‚dS )zPoint on boundaryzPOINT (15 10)r   r   r   r	   r   Nr   r   s     r   Útest_point_on_boundaryr      sI   € å_Ñ%Ô%€EÝ˜  B¨¨BÑ/Ô/€EÝE¨aÐ0Ñ0Ô0Ð4NÒNÐNÐNÐNÐNÐNr   c                  óx   — t          d¦  «        } t          | dddd¦  «        }t          |d¬¦  «        dk    sJ ‚dS )zLine outsidezLINESTRING (0 0, -5 5)r   r   r   r	   r   Nr   r   s     r   Útest_line_outsider   #   sJ   € åÐ-Ñ.Ô.€EÝ˜  B¨¨BÑ/Ô/€EÝE¨aÐ0Ñ0Ô0Ð4NÒNÐNÐNÐNÐNÐNr   c                  óx   — t          d¦  «        } t          | dddd¦  «        }t          |d¬¦  «        dk    sJ ‚dS )zLine insidezLINESTRING (15 15, 16 15)r   r   r   r	   Nr   r   s     r   Útest_line_insider   *   sJ   € åÐ0Ñ1Ô1€EÝ˜  B¨¨BÑ/Ô/€EÝE¨aÐ0Ñ0Ô0Ð4OÒOÐOÐOÐOÐOÐOr   c                  óx   — t          d¦  «        } t          | dddd¦  «        }t          |d¬¦  «        dk    sJ ‚dS )zLine on boundaryz LINESTRING (10 15, 10 10, 15 10)r   r   r   r	   r   Nr   r   s     r   Útest_line_on_boundaryr   1   sJ   € åÐ7Ñ8Ô8€EÝ˜  B¨¨BÑ/Ô/€EÝE¨aÐ0Ñ0Ô0Ð4NÒNÐNÐNÐNÐNÐNr   c                  óx   — t          d¦  «        } t          | dddd¦  «        }t          |d¬¦  «        dk    sJ ‚dS )zLine splitting rectanglezLINESTRING (10 5, 25 20)r   r   r   r	   zLINESTRING (15 10, 20 15)Nr   r   s     r   Útest_line_splitting_rectangler    8   sJ   € åÐ/Ñ0Ô0€EÝ˜  B¨¨BÑ/Ô/€EÝE¨aÐ0Ñ0Ô0Ð4OÒOÐOÐOÐOÐOÐOr   zTODO issue to CCW)Úreasonc                  óx   — t          d¦  «        } t          | dddd¦  «        }t          |d¬¦  «        dk    sJ ‚dS )z/Polygon shell (CCW) fully on rectangle boundaryú-POLYGON ((10 10, 20 10, 20 20, 10 20, 10 10))r   r   r   r	   Nr   r   s     r   Ú2test_polygon_shell_ccw_fully_on_rectangle_boundaryr$   ?   óX   € õ ÐDÑEÔE€EÝ˜  B¨¨BÑ/Ô/€Eå¨1Ð-Ñ-Ô-Ø:ò	;ð 	;ð 	;ð 	;ð 	;ð 	;r   zTODO issue to CWc                  óx   — t          d¦  «        } t          | dddd¦  «        }t          |d¬¦  «        dk    sJ ‚dS )z.Polygon shell (CW) fully on rectangle boundaryz-POLYGON ((10 10, 10 20, 20 20, 20 10, 10 10))r   r   r   r	   r#   Nr   r   s     r   Ú1test_polygon_shell_cc_fully_on_rectangle_boundaryr'   J   r%   r   c                  óx   — t          d¦  «        } t          | dddd¦  «        }t          |d¬¦  «        dk    sJ ‚dS )z.Polygon hole (CCW) fully on rectangle boundaryúLPOLYGON ((0 0, 0 30, 30 30, 30 0, 0 0), (10 10, 20 10, 20 20, 10 20, 10 10))r   r   r   r	   r   Nr   r   s     r   Ú,polygon_hole_ccw_fully_on_rectangle_boundaryr*   U   óP   € åØVñô €Eõ ˜  B¨¨BÑ/Ô/€EÝE¨aÐ0Ñ0Ô0Ð4NÒNÐNÐNÐNÐNÐNr   c                  óx   — t          d¦  «        } t          | dddd¦  «        }t          |d¬¦  «        dk    sJ ‚dS )z-Polygon hole (CW) fully on rectangle boundaryzLPOLYGON ((0 0, 0 30, 30 30, 30 0, 0 0), (10 10, 10 20, 20 20, 20 10, 10 10))r   r   r   r	   r   Nr   r   s     r   Ú+polygon_hole_cw_fully_on_rectangle_boundaryr-   ^   r+   r   c                  ó|   — d} t          | ¦  «        }t          |dddd¦  «        }t          |d¬¦  «        | k    sJ ‚dS )zPolygon fully within rectanglezLPOLYGON ((1 1, 1 30, 30 30, 30 1, 1 1), (10 10, 20 10, 20 20, 10 20, 10 10))r   é(   r	   Nr   ©Úwktr   r   s      r   Úpolygon_fully_within_rectangler2   g   sK   € à
X€CÝS‰MŒM€EÝ˜  1 b¨"Ñ-Ô-€EÝE¨aÐ0Ñ0Ô0°CÒ7Ð7Ð7Ð7Ð7Ð7r   c                  ó|   — d} t          | ¦  «        }t          |dddd¦  «        }t          |d¬¦  «        dk    sJ ‚dS )zPolygon overlapping rectangler)   é   é   r   r	   z5POLYGON ((5 5, 5 15, 10 15, 10 10, 15 10, 15 5, 5 5))Nr   r0   s      r   Úpolygon_overlapping_rectangler6   o   s^   € à
X€CÝS‰MŒM€EÝ˜  1 b¨"Ñ-Ô-€Eå¨1Ð-Ñ-Ô-ØBò	Cð 	Cð 	Cð 	Cð 	Cð 	Cr   )Ú__doc__ÚpytestÚshapely.opsr   Úshapely.wktr   r   r   r   r   r   r   r   r   r   r    ÚmarkÚxfailr$   r'   r*   r-   r2   r6   © r   r   ú<module>r>      sn  ððð ð €€€à $Ð $Ð $Ð $Ð $Ð $Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ðOð Oð OðDð Dð DðOð Oð OðOð Oð OðPð Pð PðOð Oð OðPð Pð Pð „×ÒÐ-ÐÑ.Ô.ðð ñ /Ô.ðð „×ÒÐ,ÐÑ-Ô-ðð ñ .Ô-ððOð Oð OðOð Oð Oð8ð 8ð 8ðð ð ð ð r   