Ë
    ~ìqjj%  ã                   óà  — d dl Zd dlZd dlZd dlmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZ ej                   j#                  ej$                  dk  d¬«      ej                   j'                  d	eez   «      d
„ «       «       Zej                   j#                  ej$                  dk  d¬«      d„ «       Zej                   j#                  ej$                  dk  d¬«      d„ «       Zej                   j#                  ej$                  dk  d¬«      d„ «       Zej                   j#                  ej$                  dk  d¬«      d„ «       Zej                   j#                  ej$                  dk  d¬«      ej                   j'                  d	e«      d„ «       «       Zej                   j#                  ej$                  dk  d¬«      ej                   j'                  d	e«      d„ «       «       Zej                   j#                  ej$                  dk  d¬«      d„ «       Zej                   j#                  ej$                  dk  d¬«      d„ «       Zej                   j#                  ej$                  dk\  d¬«      d„ «       Zy)é    N)ÚGeometryÚ
LineStringÚMultiPolygonÚPolygon)ÚUnsupportedGEOSVersionError)Úassert_geometries_equal)Ú	all_typesÚall_types_zÚempty_line_string)é   é   r   zrequires >= 3.12)ÚreasonÚgeometryc                 ó<  — t        j                  | g«      }|j                  dk(  sJ ‚|j                  t        j
                  k(  sJ ‚|j                  «       du sJ ‚t        j                  | g«      }t	        j                  t        gt        ¬«      }t        ||«       y )Nr   T)Údtype)ÚshapelyÚcoverage_is_validÚndimr   ÚnpÚbool_ÚitemÚcoverage_invalid_edgesÚarrayr   Úobjectr   )r   ÚactualÚexpecteds      úW/var/www/html/truck-me/venv/lib/python3.12/site-packages/shapely/tests/test_coverage.pyÚtest_coverage_is_validr      s‚   € ô ×&Ñ&¨ zÓ2€FØ�;‰;˜!ÒÐÐØ�<‰<œ2Ÿ8™8Ò#Ð#Ð#Ø�;‰;‹=˜DÑ Ð Ð ä×+Ñ+¨X¨JÓ7€FÜ�x‰xÔ*Ð+´6Ô:€HÜ˜F HÕ-ó    c                  óÖ   — t        ddg«      t        ddg«      t        g d¢«      g} t        j                  | «      sJ ‚t        j                  | «      t
        k(  j                  «       sJ ‚y )N©r   r   ©é   r#   ©r#   r   ©r   r#   ©r!   r%   r"   r$   r!   )r   r   r   r   r   r   Úall©Úgeomss    r   Ú$test_coverage_is_valid_non_polygonalr*   !   sg   € ô
 	�F˜FÐ#Ó$Ü�F˜FÐ#Ó$ÜÒ8Ó9ð€Eô
 ×$Ñ$ UÔ+Ð+Ð+Ü×*Ñ*¨5Ó1Ô5FÑF×KÑKÔMÐMÑMr   c                  óh  — t        g d¢«      } t        g d¢«      }t        j                  | |g«      sJ ‚t        j                  t        j                  | |g«      «      j                  «       sJ ‚t        g d¢«      }t        j                  | |g«      rJ ‚t        j                  | |g«      }t        ddg«      t        g d¢«      g}t        ||«       t        g d¢«      }t        j                  | |g«      rJ ‚t        j                  | |g«      }t        j                  |«      j                  «       rJ ‚y )N©r!   r"   r$   r!   ©r!   r"   r%   r!   )r!   ©ç      à?r/   r"   r%   r!   r!   r"   )r!   r.   r"   )r!   r$   r"   r%   r!   )	r   r   r   Úis_emptyr   r'   r   r   Úany)Úpoly1Úpoly2Úpoly2bÚresultr   Úpoly3s         r   Ú test_coverage_is_valid_polygonalr7   .   s  € ô Ò4Ó5€EÜÒ4Ó5€EÜ×$Ñ$ e¨U ^Ô4Ð4Ð4Ü×ÑœG×:Ñ:¸EÀ5¸>ÓJÓK×OÑOÔQÐQÐQô ÒAÓB€FÜ×(Ñ(¨%°¨Ô9Ð9Ð9Ü×+Ñ+¨U°F¨OÓ<€FÜ˜F FÐ+Ó,¬jÒ9UÓ.VÐW€HÜ˜F HÔ-ô Ò<Ó=€EÜ×(Ñ(¨%°¨Ô8Ð8Ð8Ü×+Ñ+¨U°E¨NÓ;€FÜ×Ñ Ó'×+Ñ+Ô-Ð-Ð-Ð-r   c                  óÎ  — t        j                  d«      } t        j                  d«      }t        j                  d«      }t        j                  d«      }t        j                  | |gd¬«      sJ ‚t        j                  | |gd¬«      sJ ‚t        j                  | |gd¬«      }t	        |t
        gdz  «       t        j                  | |gd¬«      }t	        |t
        gdz  «       t        j                  | |gd¬«      rJ ‚t        j                  | |gd¬«      rJ ‚t        j                  d	d
g«      }t        j                  | |gd¬«      }t	        ||«       t        j                  | |gd¬«      }t	        ||«       t        j                  | |gd¬«      sJ ‚t        j                  | |gd¬«      sJ ‚t        j                  | |gd¬«      rJ ‚t        j                  | |gd¬«      rJ ‚t        j                  | |gd¬«      sJ ‚t	        t        j                  | |gd¬«      t
        gdz  «       t	        t        j                  | |gd¬«      t        j                  d	dg«      «       y )Nú4POLYGON ((0 10, 10 10, 10 7, 10 3, 10 0, 0 0, 0 10))ú7POLYGON ((10 10, 20 10, 20 0, 10 0, 10 3, 10 7, 10 10))ú=POLYGON ((10 10, 20 10, 20 0, 10 0, 10 3, 10 5, 10 7, 10 10))z=POLYGON ((10 10, 20 10, 20 0, 10 0, 10 3, 11 5, 10 7, 10 10))ç        )Ú	gap_widthg       @é   úLINESTRING (10 7, 10 3)úLINESTRING (10 3, 10 5, 10 7)r/   ç      ð?g      ø?zLINESTRING (10 3, 11 5, 10 7))r   Úfrom_wktr   r   r   r   )r2   r3   Úpoly2_extraÚpoly2_shiftr5   r   s         r   Ú test_coverage_is_valid_gap_widthrE   D   sR  € ô ×ÑÐSÓT€EÜ×ÑÐVÓW€Eô ×"Ñ"ØGó€Kô ×"Ñ"ØGó€Kô
 ×$Ñ$ e¨U ^¸sÕCÐCÐCÜ×$Ñ$ e¨U ^¸sÕCÐCÐCä×+Ñ+¨U°E¨NÀcÔJ€FÜ˜FÔ%6Ð$7¸!Ñ$;Ô<Ü×+Ñ+¨U°E¨NÀcÔJ€FÜ˜FÔ%6Ð$7¸!Ñ$;Ô<ô ×(Ñ(¨%°Ð)=ÈÕMÐMÐMÜ×(Ñ(¨%°Ð)=ÈÕMÐMÐMä×ÑØ	"Ð$CÐDó€Hô ×+Ñ+¨U°KÐ,@ÈCÔP€FÜ˜F HÔ-Ü×+Ñ+¨U°KÐ,@ÈCÔP€FÜ˜F HÔ-ô ×$Ñ$ e¨[Ð%9ÀSÕIÐIÐIÜ×$Ñ$ e¨[Ð%9ÀSÕIÐIÐIÜ×(Ñ(¨%°Ð)=ÈÕMÐMÐMÜ×(Ñ(¨%°Ð)=ÈÕMÐMÐMä×$Ñ$ e¨[Ð%9ÀSÕIÐIÐIäÜ×&Ñ&¨¨{Ð';ÀsÔKÜ	Ð˜aÑôô Ü×&Ñ&¨¨{Ð';ÀsÔKÜ×ÑÐ3Ð5TÐUÓVõr   c                  óþ  — t        j                  d«      } t        j                  d«      }t        j                  d«      }t        j                  d«      }t        j                  | ||g| ||gg«      }t         j                  j                  |d«      }t        j                  dgdz  g d¢g«      }t        ||«       t        j                  |d	¬
«      }t         j                  j                  |d«      }t        ||«       y )Nr9   r:   r;   z7POLYGON ((20 10, 30 10, 30 7, 30 3, 30 0, 20 0, 20 10))r<   úLINESTRING EMPTYr   )r?   r@   rG   ÚF)Úorder)r   rB   r   r   Úlibr   r   )r2   r3   rC   r6   Úarrr5   r   Úarr2s           r   Ú"test_coverage_invalid_edges_gufuncrM   z   sâ   € ä×ÑÐSÓT€EÜ×ÑÐVÓW€EÜ×"Ñ"ØGó€Kô ×ÑÐVÓW€Eä
�(‰(�U˜E 5Ð)¨E°;ÀÐ+FÐGÓ
H€CÜ�[‰[×/Ñ/°°SÓ9€FÜ×ÑàÐ  1Ñ$òð	
ó	€Hô ˜F HÔ-ä�8‰8�C˜sÔ#€DÜ�[‰[×/Ñ/°°cÓ:€FÜ˜F HÕ-r   zGEOS < 3.12c                 ó~  — | j                   dv rit        j                  | d«      }t        |t        «      sJ ‚t        j
                  |«      t        j
                  | «      k(  sJ ‚|j                  | «      sJ ‚y t        j                  t        d¬«      5  t        j                  | d«       d d d «       y # 1 sw Y   y xY w)N©r   r   r<   úincorrect geometry type©Úmatch)
Ú	geom_typer   Úcoverage_simplifyÚ
isinstancer   Úget_type_idÚequalsÚpytestÚraisesÚ	TypeError©r   r   s     r   Útest_coverage_simplify_scalarsr\   –   sŸ   € ð ×ÑÐ8Ñ8Ü×*Ñ*¨8°SÓ9ˆÜ˜&¤(Ô+Ð+Ð+Ü×"Ñ" 6Ó*¬g×.AÑ.AÀ(Ó.KÒKÐKÐKØ�}‰}˜XÔ&Ð&Ñ&ä�]‰]œ9Ð,EÔFñ 	5Ü×%Ñ% h°Ô4÷	5÷ 	5ñ 	5ús   ÂB3Â3B<c                 ó²  — | j                   dv r�t        j                  | | gd«      }t        |t        j
                  «      sJ ‚|j                  dk(  sJ ‚t        j                  |«      t        j                  | «      k(  j                  «       sJ ‚y t        j                  t        d¬«      5  t        j                  | | gd«       d d d «       y # 1 sw Y   y xY w)NrO   r<   )r>   rP   rQ   )rS   r   rT   rU   r   ÚndarrayÚshaperV   r'   rX   rY   rZ   r[   s     r   Ú!test_coverage_simplify_geom_typesr`   £   sº   € ð ×ÑÐ8Ñ8Ü×*Ñ*¨H°hÐ+?ÀÓEˆÜ˜&¤"§*¡*Ô-Ð-Ð-Ø�|‰|˜tÒ#Ð#Ð#Ü×#Ñ# FÓ+¬w×/BÑ/BÀ8Ó/LÑL×QÑQÔSÐSÑSä�]‰]œ9Ð,EÔFñ 	AÜ×%Ñ% x°Ð&:¸CÔ@÷	A÷ 	Añ 	Aús   Â+CÃCc                  óÂ   — t        t        g d¢«      t        g d¢«      g«      } t        j                  | d«      }|j	                  t        j
                  d«      «      sJ ‚y )Nr&   )©r>   r>   )r>   r   )r   r   )r   r>   rb   r#   z=MULTIPOLYGON (((0 1, 1 1, 1 0, 0 1)), ((2 3, 3 3, 3 2, 2 3))))r   r   r   rT   rW   rB   )Úmpr   s     r   Ú#test_coverage_simplify_multipolygonrd   °   s^   € ä	äÒ<Ó=ÜÒ<Ó=ð	
ó
€Bô ×&Ñ& r¨1Ó-€FØ�=‰=Ü×ÑØKó	
ôð ñ r   c                  ó  — t        j                  t        j                  g d¢«      t        j                  g d¢«      g«      } t        j                  | d«      }t        j                  | d«      }t        j                  | d«      }t        j
                  |t        j                  | «      «      j                  «       sJ ‚t        j
                  |t        j                  ddg«      «      j                  «       sJ ‚t        j
                  |t        j                  dd	g«      «      j                  «       sJ ‚t        j                  | dd
¬«      }t        j
                  |t        j                  ddg«      «      j                  «       sJ ‚y )N)r!   )é   r   ©rf   é
   ©rh   é   ©r   rh   r!   )rk   ri   rg   )rf   rf   )r   rf   rk   r#   é   rh   z)POLYGON ((20 10, 0 10, 0 0, 20 0, 20 10))z+POLYGON ((20 10, 0 10, 0 20, 20 20, 20 10))z$POLYGON ((20 10, 0 10, 20 0, 20 10))z$POLYGON ((20 10, 0 10, 0 20, 20 10))F)Úsimplify_boundary)	r   r   r   r   rT   rW   Ú	normalizer'   rB   )ÚpolygonsÚlow_toleranceÚmid_toleranceÚhigh_toleranceÚno_boundarys        r   Útest_coverage_simplify_arrayrt   À   sg  € ä�x‰xä�O‰OÒQÓRÜ�O‰OÒTÓUð	
ó€Hô ×-Ñ-¨h¸Ó:€MÜ×-Ñ-¨h¸Ó:€MÜ×.Ñ.¨x¸Ó<€Nä�>‰>˜-¬×):Ñ):¸8Ó)DÓE×IÑIÔKÐKÐKÜ�>‰>ØÜ×Ñà;Ø=ðó	
ó÷ 
�cƒeðð ð ô �>‰>ØÜ×Ñà6Ø6ðó	
ó÷ 
�cƒeðð ð ô ×+Ñ+¨H°bÈEÔR€KÜ�>‰>ØÜ×Ñà;Ø=ðó	
ó÷ 
�cƒeðð ñ r   c                  óÌ  — t        g d¢«      t        g d¢«      g} t        j                  t        «      5  t	        j
                  | «       d d d «       t        j                  t        «      5  t	        j                  | «       d d d «       t        j                  t        «      5  t	        j                  | d«       d d d «       y # 1 sw Y   ŒyxY w# 1 sw Y   ŒNxY w# 1 sw Y   y xY w)Nr,   r-   rA   )r   rX   rY   r   r   r   r   rT   r(   s    r   Útest_coverage_unsupported_geosrv   ì   sº   € ô 	Ò0Ó1ÜÒ0Ó1ð€Eô 
�‰Ô2Ó	3ñ )Ü×!Ñ! %Ô(÷)ô 
�‰Ô2Ó	3ñ .Ü×&Ñ& uÔ-÷.ô 
�‰Ô2Ó	3ñ .Ü×!Ñ! %¨Ô-÷.ð .÷)ð )ú÷.ð .ú÷.ð .ús#   ´CÁ+CÂ"CÃCÃCÃC#)Únumpyr   rX   r   r   r   r   r   Úshapely.errorsr   Úshapely.testingr   Úshapely.tests.commonr	   r
   r   ÚmarkÚskipifÚgeos_versionÚparametrizer   r*   r7   rE   rM   r\   r`   rd   rt   rv   © r   r   ú<module>r€      sŽ  ðÛ Û ã ÷ó õ 7Ý 3÷ñ ð ‡�×Ñ�G×(Ñ(¨:Ñ5Ð>PÐÓQØ‡�×Ñ˜ Y°Ñ%<Ó=ñ.ó >ó Rð.ð ‡�×Ñ�G×(Ñ(¨:Ñ5Ð>PÐÓQñ	Nó Rð	Nð ‡�×Ñ�G×(Ñ(¨:Ñ5Ð>PÐÓQñ.ó Rð.ð* ‡�×Ñ�G×(Ñ(¨:Ñ5Ð>PÐÓQñ2ó Rð2ðj ‡�×Ñ�G×(Ñ(¨:Ñ5Ð>PÐÓQñ.ó Rð.ð6 ‡�×Ñ�G×(Ñ(¨:Ñ5¸mÐÓLØ‡�×Ñ˜ YÓ/ñ5ó 0ó Mð5ð ‡�×Ñ�G×(Ñ(¨:Ñ5¸mÐÓLØ‡�×Ñ˜ YÓ/ñAó 0ó MðAð ‡�×Ñ�G×(Ñ(¨:Ñ5¸mÐÓLñó Mðð ‡�×Ñ�G×(Ñ(¨:Ñ5¸mÐÓLñ(ó Mð(ðV ‡�×Ñ�G×(Ñ(¨JÑ6Ð?QÐÓRñ.ó Sñ.r   