Ë
    ~ìqj]  ã                   ó2  — d dl Z d dlZd dlZd dlZd dlmZmZmZmZm	Z	 d dl
mZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d„ Z,d„ Z-d„ Z.ej^                  ja                  de$e(e ee"eg«      d	„ «       Z1ej^                  ja                  deeg«      d
„ «       Z2ej^                  ja                  de$eee ee"eg«      d„ «       Z3d„ Z4ej^                  ja                  de$eee ee"eg«      d„ «       Z5d„ Z6ej^                  ja                  de$eee(g«      d„ «       Z7ej^                  ja                  de ee"eg«      d„ «       Z8d„ Z9d„ Z:d„ Z;d„ Z<d„ Z=d„ Z>ej^                  ja                  dej~                  ej€                  ej‚                   ej„                  ej†                  ej^                  j‰                  ejŠ                  dk  d¬«      ¬«      g«      ej^                  ja                  d ejŒ                  e«       ejŽ                  e«      ej�                  j’                  k7     «      d„ «       «       ZJd„ ZKd„ ZLd„ ZMd „ ZNej^                  j‰                  ejŠ                  dk  d!¬«      d"„ «       ZOej^                  ja                  de«      d#„ «       ZPd$„ ZQej^                  ja                  de«      d%„ «       ZRd&„ ZSd'„ ZTej^                  ja                  de$e eee(e"eeeee ejŒ                  dg«       ejª                   ejŒ                  dg«      «      g«      d(„ «       ZVd)„ ZWd*„ ZXd+„ ZYej^                  ja                  ddggegge gge eggf«      d,„ «       ZZej^                  ja                  de$ee(g«      d-„ «       Z[ej^                  ja                  dddgg g«      d.„ «       Z\ej^                  ja                  dd/d/gd0g«      d1„ «       Z]d2„ Z^ej^                  ja                  de$e eee(e"eeeeedg«      d3„ «       Z_d4„ Z`d5„ Zaej^                  ja                  ddgge(ggg«      d6„ «       Zbd7„ Zcd8„ Zdd9„ Zeej^                  ja                  d:d;«      d<„ «       Zfd=„ Zgej^                  ja                  d:d;«      d>„ «       Zhej^                  ja                  d:d;«      d?„ «       Zid@„ ZjdA„ Zkej^                  ja                  dB e	g dC¢«      dD e e	g dE¢«       e	g dF¢«      g«      f ej„                   e	g dC¢«      dG e	g dH¢«      ej^                  j‰                  ejŠ                  dIk  dJ¬«      ¬«       e	g dC¢«      dK e e	g dE¢«       e	g dF¢«      g«      f edLdMg«      dD e«       f ej„                   edLdMg«      dG edLdLg«      ej^                  j‰                  ejŠ                  dIk  dJ¬«      ¬«       edLdMg«      dK edLdLg«      f ej„                   eg dN¢«      dD e«       ej^                  j‰                  ejŠ                  dIk(  dO¬«      ¬«       ej„                   eg dN¢«      dG eg dP¢«      ej^                  j‰                  ejŠ                  dIk  dJ¬«      ¬«       ej„                   eg dN¢«      dK eg dQ¢«      ej^                  j‰                  ejŠ                  dIk  dR¬«      ¬«       e	g dN¢«      dD e	«       f ej„                   e	g dN¢«      dG e	g dP¢«      ej^                  j‰                  ejŠ                  dIk  dJ¬«      ¬«       e	g dN¢«      dK e	«       fg«      dS„ «       ZldT„ Zmej^                  ja                  dUdVdWg«      dX„ «       Znej^                  j‰                  ejŠ                  dIk\  dY¬«      dZ„ «       Zoej^                  ja                  d[ ejŒ                  d d\g«      d]d/g«      d^„ «       Zpd_„ Zq ejä                  e$eg«      Zsej^                  ja                  d`e$e$fe&e$feefeefeefeefeefeefe(e(fe+e(fe)e)fe*e)fe e fe!e feefeefe"e"fe#e"fesesfeesfg«      da„ «       Ztej^                  ja                  d`e$e&fe&e&feefeefeefeefeefeefe(e+fe+e+fe)e*fe*e*fe e!fe!e!feefeefe"e#fe#e#fesefeefg«      db„ «       Zuy)cé    N)Ú
LinearRingÚ
LineStringÚMultiPolygonÚPointÚPolygon)Úassert_geometries_equal)Ú	all_typesÚemptyÚempty_line_stringÚempty_line_string_zÚempty_pointÚempty_point_zÚempty_polygonÚ)equal_geometries_abnormally_yield_unequalÚgeometry_collectionÚgeometry_collection_zÚignore_invalidÚignore_warningsÚline_stringÚline_string_nanÚline_string_zÚlinear_ringÚmulti_line_stringÚmulti_line_string_zÚmulti_pointÚmulti_point_zÚmulti_polygonÚmulti_polygon_zÚpointÚpoint_mÚpoint_zÚpoint_zmÚpolygonÚpolygon_with_holeÚpolygon_with_hole_zÚ	polygon_zc                  ój   — t        j                  t        dz   «      j                  «       } | g d¢k(  sJ ‚y )N©N)r   é   é   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )ÚshapelyÚget_num_pointsr	   Útolist©Úactuals    úW/var/www/html/truck-me/venv/lib/python3.12/site-packages/shapely/tests/test_geometry.pyÚtest_get_num_pointsr1   +   s/   € Ü×#Ñ#¤I°Ñ$7Ó8×?Ñ?ÓA€FØÒTÒTÐTÑTó    c                  ój   — t        j                  t        dz   «      j                  «       } | g d¢k(  sJ ‚y )Nr(   )r   r   r   r   é   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r+   Úget_num_interior_ringsr	   r-   r.   s    r0   Útest_get_num_interior_ringsr6   0   s/   € Ü×+Ñ+¬I¸Ñ,?Ó@×GÑGÓI€FØÒTÒTÐTÑTr2   c                  ój   — t        j                  t        dz   «      j                  «       } | g d¢k(  sJ ‚y )Nr(   )r4   r4   r4   r4   r4   é   r4   r8   r8   r   r4   r4   r4   r   r   r   r4   r4   r4   r4   r   )r+   Úget_num_geometriesr	   r-   r.   s    r0   Útest_get_num_geometriesr:   5   s/   € Ü×'Ñ'¬	°GÑ(;Ó<×CÑCÓE€FØÒTÒTÐTÑTr2   Úgeomc                 ó~   — t        j                  | g d¢«      }t        j                  |«      j                  «       sJ ‚y ©N)r   r8   éÿÿÿÿ)r+   Ú	get_pointÚ
is_missingÚall©r;   r/   s     r0   Útest_get_point_non_linestringrC   :   s3   € ô ×Ñ˜t¢ZÓ0€FÜ×Ñ˜fÓ%×)Ñ)Ô+Ð+Ñ+r2   c                 óà   — t        j                  | «      }t        j                  | d| ||dz    g«      }t        |d   |d   «       t        j                  |dd «      j                  «       sJ ‚y ©Nr   r4   r8   é   )r+   r,   r?   r   r@   rA   ©r;   Únr/   s      r0   Útest_get_pointrI   J   sj   € ä×Ñ˜tÓ$€AÜ×Ñ˜t a¨!¨¨Q°!°a±%°Ð%9Ó:€FÜ˜F 1™I v¨a¡yÔ1Ü×Ñ˜f Q q˜kÓ*×.Ñ.Ô0Ð0Ñ0r2   c                 óx   — t        j                  | «      }t        j                  |«      j                  «       sJ ‚y r(   )r+   Úget_exterior_ringr@   rA   rB   s     r0   Ú"test_get_exterior_ring_non_polygonrL   R   s1   € ô ×&Ñ& tÓ,€FÜ×Ñ˜fÓ%×)Ñ)Ô+Ð+Ñ+r2   c                  óÂ   — t        j                  t        t        g«      } t        j                  | «      t         j
                  j                  k(  j                  «       sJ ‚y r(   )r+   rK   r#   r$   Úget_type_idÚGeometryTypeÚ
LINEARRINGrA   r.   s    r0   Útest_get_exterior_ringrQ   c   sF   € Ü×&Ñ&¬Ô1BÐ'CÓD€FÜ×Ñ Ó'¬7×+?Ñ+?×+JÑ+JÑJ×OÑOÔQÐQÑQr2   c                 ó~   — t        j                  | g d¢«      }t        j                  |«      j                  «       sJ ‚y r=   )r+   Úget_interior_ringr@   rA   rB   s     r0   Ú"test_get_interior_ring_non_polygonrT   h   s3   € ô ×&Ñ& tªZÓ8€FÜ×Ñ˜fÓ%×)Ñ)Ô+Ð+Ñ+r2   c                  ó°   — t        j                  t        g d¢«      } t        | d   | d   «       t        j                  | dd «      j                  «       sJ ‚y ©N)r   r>   r4   éþÿÿÿr   r4   r8   rF   )r+   rS   r$   r   r@   rA   r.   s    r0   Útest_get_interior_ringrX   y   sJ   € Ü×&Ñ&Ô'8º.ÓI€FÜ˜F 1™I v¨a¡yÔ1Ü×Ñ˜f Q q˜kÓ*×.Ñ.Ô0Ð0Ñ0r2   c                 ó¨   — t        j                  | g d¢«      }t        |d   |d   «       t        j                  |dd «      j	                  «       sJ ‚y rV   )r+   Úget_geometryr   r@   rA   rB   s     r0   Útest_get_geometry_simpler[      sI   € ä×!Ñ! $ªÓ7€FÜ˜F 1™I v¨a¡yÔ1Ü×Ñ˜f Q q˜kÓ*×.Ñ.Ô0Ð0Ñ0r2   c                 óà   — t        j                  | «      }t        j                  | d| ||dz    g«      }t        |d   |d   «       t        j                  |dd «      j                  «       sJ ‚y rE   )r+   r9   rZ   r   r@   rA   rG   s      r0   Útest_get_geometry_collectionr]   †   sl   € ô 	×"Ñ" 4Ó(€AÜ×!Ñ! $¨¨Q¨B°°Q¸±U°8Ð(<Ó=€FÜ˜F 1™I v¨a¡yÔ1Ü×Ñ˜f Q q˜kÓ*×.Ñ.Ô0Ð0Ñ0r2   c                  ój   — t        j                  t        dz   «      j                  «       } | g d¢k(  sJ ‚y )Nr(   )r   r4   r8   r)   r)   rF   r*   é   é   r`   r   r4   r)   rF   r*   r_   rF   r*   r_   r`   r>   )r+   rN   r	   r-   r.   s    r0   Útest_get_type_idra   �   s/   € Ü× Ñ ¤¨WÑ!4Ó5×<Ñ<Ó>€FØÒUÒUÐUÑUr2   c                  ój   — t        j                  t        dz   «      j                  «       } | g d¢k(  sJ ‚y )Nr(   )r   r4   r4   r8   r8   r   r4   r8   r4   r>   r   r4   r8   r   r4   r8   r   r4   r8   r4   r>   )r+   Úget_dimensionsr	   r-   r.   s    r0   Útest_get_dimensionsrd   •   s/   € Ü×#Ñ#¤I°Ñ$7Ó8×?Ñ?ÓA€FØÒVÒVÐVÑVr2   c                  ór   — t        j                  t        t        d g«      j	                  «       } | g d¢k(  sJ ‚y )N)r8   r)   r>   )r+   Úget_coordinate_dimensionr   r!   r-   r.   s    r0   Útest_get_coordinate_dimensionrg   š   s0   € Ü×-Ñ-¬u´g¸tÐ.DÓE×LÑLÓN€FØ’ZÒÐÑr2   c                  ój   — t        j                  t        dz   «      j                  «       } | g d¢k(  sJ ‚y )Nr(   )r4   r)   r*   r*   é
   r8   r8   ri   r)   r   r   r   r   r   r   r   r   r   r   r   r   )r+   Úget_num_coordinatesr	   r-   r.   s    r0   Útest_get_num_coordinatesrk   Ÿ   s/   € Ü×(Ñ(¬°WÑ)<Ó=×DÑDÓF€FØÒVÒVÐVÑVr2   c                  ój   — t        j                  t        dz   «      j                  «       } | g d¢k(  sJ ‚y)z;All geometry types have no SRID by default; None returns -1r(   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r>   N)r+   Úget_sridr	   r-   r.   s    r0   Útest_get_sridrn   ¤   s/   € ä×Ñœi¨'Ñ1Ó2×9Ñ9Ó;€FØÒUÒUÐUÑUr2   c                  ó¨   — t        j                  t        d«      } t        j                  t        «      dk(  sJ ‚t        j                  | «      dk(  sJ ‚y )Niæ  r   )r+   Úset_sridr   rm   r.   s    r0   Útest_get_set_sridrq   ª   sF   € Ü×Ñœe TÓ*€FÜ×ÑœEÓ" aÒ'Ð'Ð'Ü×Ñ˜FÓ# tÒ+Ð+Ñ+r2   Úfunc)r)   é   r   zGEOS < 3.12)Úreason)Úmarksc                 ó>   — t        j                   | |«      «      sJ ‚y r(   )ÚnpÚisnan)rr   r;   s     r0   Útest_get_xyz_no_pointry   °   s   € ô& �8‰8‘D˜“JÔÐÑr2   c                  ól   — t        j                  t        t        g«      j	                  «       ddgk(  sJ ‚y )Ng       @)r+   Úget_xr   r!   r-   © r2   r0   Ú
test_get_xr}   Æ   ó+   € Ü�=‰=œ%¤Ð)Ó*×1Ñ1Ó3¸¸S°zÒAÐAÑAr2   c                  ól   — t        j                  t        t        g«      j	                  «       ddgk(  sJ ‚y )Ng      @)r+   Úget_yr   r!   r-   r|   r2   r0   Ú
test_get_yr�   Ê   r~   r2   c                  ó`   — t        j                  t        g«      j                  «       dgk(  sJ ‚y )Ng      @)r+   Úget_zr!   r-   r|   r2   r0   Ú
test_get_zr„   Î   s&   € Ü�=‰=œ'˜Ó#×*Ñ*Ó,°°Ò5Ð5Ñ5r2   c                  ó`   — t        j                  t        j                  t        «      «      sJ ‚y r(   )rw   rx   r+   rƒ   r   r|   r2   r0   Útest_get_z_2dr†   Ò   s   € Ü�8‰8”G—M‘M¤%Ó(Ô)Ð)Ñ)r2   z,M coordinates not supported with GEOS < 3.12c                  ó$  — t        j                  t        t        g«      j	                  «       ddgk(  sJ ‚t        j                  t        j                  t        «      «      sJ ‚t        j                  t        j                  t        «      «      sJ ‚y )Ng      @)	r+   Úget_mr    r"   r-   rw   rx   r   r!   r|   r2   r0   Ú
test_get_mr‰   Ö   sc   € ô
 �=‰=œ'¤8Ð,Ó-×4Ñ4Ó6¸3À¸*ÒDÐDÐDÜ�8‰8”G—M‘M¤%Ó(Ô)Ð)Ð)Ü�8‰8”G—M‘M¤'Ó*Ô+Ð+Ñ+r2   c                 óä   — t        j                  t        | «      «      }t        | «      r/t	        j
                  t        «      5  t        || «       d d d «       y t        || «       y # 1 sw Y   y xY wr(   )r+   Úfrom_wktÚstrr   ÚpytestÚraisesÚAssertionErrorr   rB   s     r0   Útest_new_from_wktr�   à   sZ   € ä×Ñœc $›iÓ(€FÜ0°Ô6ä�]‰]œ>Ó*ñ 	2Ü# F¨DÔ1÷	2ð 	2ô 	  ¨Õ-÷		2ð 	2ús   ÁA&Á&A/c                  ó¢   — t        dd«      } t        j                  t        «      5  | xj                  dz  c_        d d d «       y # 1 sw Y   y xY w)Nr8   r4   )r   r�   rŽ   ÚAttributeErrorÚ_geom)r   s    r0   Útest_adapt_ptr_raisesr”   ì   s<   € Ü�!�Q‹K€EÜ	�‰”~Ó	&ñ Ø�Š�qÑ�÷÷ ñ ús   ¦AÁAc                 óV   — | t        j                  | d„ «      h}t        |«      dk(  sJ ‚y )Nc                 ó   — | S r(   r|   )Úxs    r0   ú<lambda>z!test_set_unique.<locals>.<lambda>ô   s   € °€ r2   r4   )r+   Ú	transformÚlen)r;   Úas     r0   Útest_set_uniquerœ   ò   s)   € à	Œw× Ñ  ¡{Ó3Ð4€AÜˆq‹6�QŠ;Ð‰;r2   c                  ó"  — t        «       5  t        t        j                  t        j
                  t        j
                  gt        j
                  t        j
                  gggdz  «      «      } d d d «       t         «      dk(  sJ ‚y # 1 sw Y   ŒxY w©Nri   r4   )r   Úsetr+   Úlinestringsrw   Únanrš   ©r›   s    r0   Útest_set_nanr£   ø   so   € ô 
Ó	ñ RÜ”×#Ñ#¤r§v¡v¬r¯v©vÐ&6¼¿¹ÄÇÁÐ8HÐ%IÐ$JÈRÑ$OÓPÓQˆ÷Räˆq‹6�QŠ;Ð‰;÷Rð Rús   ‹A!BÂBc                  óJ   — t        t        gdz  «      } t        | «      dk(  sJ ‚y rž   )rŸ   r   rš   r¢   s    r0   Útest_set_nan_same_objectsr¥      s&   € ô 	Œ_Ð Ñ"Ó#€AÜˆq‹6�QŠ;Ð‰;r2   c                 óÞ   — t        j                  | «      }|dk(  rg }nt        j                  | t        |«      «      }t        j                  | «      }t        |«      |k(  sJ ‚t        ||«       y ©Nr   )r+   r9   rZ   ÚrangeÚ	get_partsrš   r   )r;   Úexpected_num_partsÚexpected_partsÚpartss       r0   Útest_get_partsr­     sg   € ô& !×3Ñ3°DÓ9ÐØ˜QÒØ‰ä ×-Ñ-¨d´EÐ:LÓ4MÓNˆä×Ñ˜dÓ#€EÜˆu‹:Ð+Ò+Ð+Ð+Ü˜E >Õ2r2   c                  ón  — t        j                  d t        t        t        t
        g«      } g }| D ]J  }t        t        j                  |«      «      D ]'  }|j                  t        j                  ||«      «       Œ) ŒL t        j                  | «      }t        |«      t        |«      k(  sJ ‚t        ||«       y r(   )rw   Úarrayr   r   r   r   r¨   r+   r9   ÚappendrZ   r©   rš   r   )r;   r«   ÚgÚir¬   s        r0   Útest_get_parts_arrayr³   %  sŸ   € ô �8‰8�TÔ,¬k¼5Ä-ÐPÓQ€DØ€NØò >ˆÜ”w×1Ñ1°!Ó4Ó5ò 	>ˆAØ×!Ñ!¤'×"6Ñ"6°q¸!Ó"<Õ=ñ	>ð>ô ×Ñ˜dÓ#€EÜˆu‹:œ˜^Ó,Ò,Ð,Ð,Ü˜E >Õ2r2   c                  óR  — t        j                  t        t        t        g«      } t        j
                  | «      }t        j                  | t        |«      «      }t        j                  | «      }t        |«      |k(  sJ ‚t        ||«       g }t        j                  |«      D ]J  }t        t        j
                  |«      «      D ]'  }|j                  t        j                  ||«      «       Œ) ŒL t        j                  |«      }t        |«      t        |«      k(  sJ ‚t        ||«       y)zÁOn the first pass, the individual Multi* geometry objects are returned
    from the collection.  On the second pass, the individual singular geometry
    objects within those are returned.
    N)r+   Úgeometrycollectionsr   r   r   r9   rZ   r¨   r©   rš   r   rw   Úasarrayr°   )r;   rª   r«   r¬   Úexpected_subpartsr±   r²   Úsubpartss           r0   Ú(test_get_parts_geometry_collection_multir¹   3  s  € ô
 ×&Ñ&¬Ô5FÌÐ'VÓW€DÜ ×3Ñ3°DÓ9ÐÜ×)Ñ)¨$´Ð6HÓ0IÓJ€Nä×Ñ˜dÓ#€EÜˆu‹:Ð+Ò+Ð+Ð+Ü˜E >Ô2àÐÜ�Z‰Z˜Ó'ò AˆÜ”w×1Ñ1°!Ó4Ó5ò 	AˆAØ×$Ñ$¤W×%9Ñ%9¸!¸QÓ%?Õ@ñ	AðAô × Ñ  Ó'€HÜˆx‹=œCÐ 1Ó2Ò2Ð2Ð2Ü˜HÐ&7Õ8r2   c                  óÚ  — t        j                  t        t        t        g«      } g }g }t        | «      D ]^  \  }}t        t        j                  |«      «      D ]8  }|j                  t        j                  ||«      «       |j                  |«       Œ: Œ` t        j                  | d¬«      \  }}t        |«      t        |«      k(  sJ ‚t        ||«       t        j                  ||«      sJ ‚y ©NT)Úreturn_index)rw   r¯   r   r   r   Ú	enumerater¨   r+   r9   r°   rZ   r©   rš   r   Úarray_equal©r;   r«   Úexpected_indexr²   r±   Újr¬   Úindexs           r0   Útest_get_parts_return_indexrÃ   J  sÍ   € Ü�8‰8”[¤%¬Ð7Ó8€DØ€NØ€NÜ˜$“ò %‰ˆˆ1Ü”w×1Ñ1°!Ó4Ó5ò 	%ˆAØ×!Ñ!¤'×"6Ñ"6°q¸!Ó"<Ô=Ø×!Ñ! !Õ$ñ	%ð%ô
 ×$Ñ$ T¸Ô=�L€Eˆ5Üˆu‹:œ˜^Ó,Ò,Ð,Ð,Ü˜E >Ô2Ü�>‰>˜% Ô0Ð0Ñ0r2   c                 óŽ   — t        j                  t        d¬«      5  t        j                  | «       ddd«       y# 1 sw Y   yxY w©zOnly 1D inputs are supportedzArray should be one dimensional©ÚmatchN©r�   rŽ   Ú
ValueErrorr+   r©   ©r;   s    r0   Ú!test_get_parts_invalid_dimensionsrË   Y  s6   € ô 
�‰”zÐ)JÔ	Kñ  Ü×Ñ˜$Ô÷ ÷  ñ  úó	   œ;»Ac                 óB   — t        | t        j                  | «      «       y)z?Non-multipart geometries should be returned identical to inputsN)r   r+   r©   rÊ   s    r0   Útest_get_parts_non_multirÎ   c  s   € ô ˜D¤'×"3Ñ"3°DÓ"9Õ:r2   c                 óJ   — t        t        j                  | «      «      dk(  sJ ‚y r§   )rš   r+   r©   rÊ   s    r0   Útest_get_parts_NonerÐ   i  s    € äŒw× Ñ  Ó&Ó'¨1Ò,Ð,Ñ,r2   Úfooé*   c                 óŽ   — t        j                  t        d¬«      5  t        j                  | «       d d d «       y # 1 sw Y   y xY w)Nz*One of the arguments is of incorrect type.rÆ   )r�   rŽ   Ú	TypeErrorr+   r©   rÊ   s    r0   Útest_get_parts_invalid_geometryrÕ   n  s4   € ä	�‰”yÐ(TÔ	Uñ  Ü×Ñ˜$Ô÷ ÷  ñ  úrÌ   c                  óŽ   — t        j                  d¬«      5  t        j                  t        d«       d d d «       y # 1 sw Y   y xY w)Nz@positional argument `return_index` for `get_parts` is deprecatedrÆ   F)r�   Údeprecated_callr+   r©   r   r|   r2   r0   Ú#test_get_parts_deprecate_positionalrØ   t  s:   € Ü	×	Ñ	ØPô
ñ .ô 	×Ñœ+ uÔ-÷.÷ .ñ .úó	   —;»Ac                 ó^  — t        j                  | «      t         j                  j                  k7  st        j                  | «      r&t        j
                  | «      }t        |«      dk(  sJ ‚y t        j
                  | «      }t        |«      dk(  sJ ‚|d   t        j                  | «      k(  sJ ‚y ©Nr   r4   )r+   rN   rO   ÚPOLYGONÚis_emptyÚ	get_ringsrš   rK   )r;   Úringss     r0   Útest_get_ringsrà   {  s“   € ô$ 	×Ñ˜DÓ!¤W×%9Ñ%9×%AÑ%AÒAÄg×FVÑFVØôGô ×!Ñ! $Ó'ˆÜ�5‹z˜QŠÐ‰ä×!Ñ! $Ó'ˆÜ�5‹z˜QŠÐˆØ�Q‰xœ7×4Ñ4°TÓ:Ò:Ð:Ñ:r2   c                  óÜ   — t        j                  t        «      } t        | «      dk(  sJ ‚| d   t        j                  t        «      k(  sJ ‚| d   t        j
                  t        d«      k(  sJ ‚y )Nr8   r   r4   )r+   rÞ   r$   rš   rK   rS   )rß   s    r0   Útest_get_rings_holesrâ   ˜  sa   € Ü×ÑÔ/Ó0€EÜˆu‹:˜Š?Ðˆ?Ø�‰8”w×0Ñ0Ô1BÓCÒCÐCÐCØ�‰8”w×0Ñ0Ô1BÀAÓFÒFÐFÑFr2   c                  óv  — t        j                  t        d t        t        g«      } g }g }t        | «      D ]«  \  }}|�t        j                  |«      rŒ|j                  t        j                  |«      «       |j                  |«       t        t        j                  |«      «      D ]8  }|j                  t        j                  ||«      «       |j                  |«       Œ: Œ­ t        j                  | d¬«      \  }}t        |«      t        |«      k(  sJ ‚t        ||«       t        j                   ||«      sJ ‚y r»   )rw   r¯   r#   r   r$   r½   r+   rÝ   r°   rK   r¨   r5   rS   rÞ   rš   r   r¾   r¿   s           r0   Útest_get_rings_return_indexrä   Ÿ  s  € Ü�8‰8”W˜d¤MÔ3DÐEÓF€DØ€NØ€NÜ˜$“ò %‰ˆˆ1Øˆ9œ×(Ñ(¨Ô+ØØ×Ñœg×7Ñ7¸Ó:Ô;Ø×Ñ˜aÔ Ü”w×5Ñ5°aÓ8Ó9ò 	%ˆAØ×!Ñ!¤'×";Ñ";¸A¸qÓ"AÔBØ×!Ñ! !Õ$ñ	%ð%ô ×$Ñ$ T¸Ô=�L€Eˆ5Üˆu‹:œ˜^Ó,Ò,Ð,Ð,Ü˜E >Ô2Ü�>‰>˜% Ô0Ð0Ñ0r2   c                 óŽ   — t        j                  t        d¬«      5  t        j                  | «       ddd«       y# 1 sw Y   yxY wrÅ   rÈ   rÊ   s    r0   Ú!test_get_rings_invalid_dimensionsræ   ²  s6   € ô 
�‰”zÐ)JÔ	Kñ  Ü×Ñ˜$Ô÷ ÷  ñ  úrÌ   c                  óŽ   — t        j                  d¬«      5  t        j                  t        d«       d d d «       y # 1 sw Y   y xY w)Nz@positional argument `return_index` for `get_rings` is deprecatedrÆ   F)r�   r×   r+   rÞ   r#   r|   r2   r0   Ú#test_get_rings_deprecate_positionalrè   ¹  s:   € Ü	×	Ñ	ØPô
ñ *ô 	×Ñœ' 5Ô)÷*÷ *ñ *úrÙ   c                  óF  — t         t        t        t        t        fz   } t        j                  | «      j                  «       }|dgt        | «      z  k(  sJ ‚t        j                  | d«      }t        j                  |«      j                  «       }|dgt        | «      z  k(  sJ ‚y rÛ   )
r	   r!   r   r   r   r+   Úget_precisionr-   rš   Úset_precision)Ú
geometriesr/   Úgeometrys      r0   Útest_get_precisionrî   À  sŒ   € Üœg¤{Ô4EÄ}ÐUÑU€Jä×"Ñ" :Ó.×5Ñ5Ó7€FØ�a�Sœ3˜z›?Ñ*Ò*Ð*Ð*ä×$Ñ$ Z°Ó3€HÜ×"Ñ" 8Ó,×3Ñ3Ó5€FØ�a�Sœ3˜z›?Ñ*Ò*Ð*Ñ*r2   c                  ó€   — t        j                  t        j                  t        j                  d g«      «      «      sJ ‚y r(   )rw   rA   rx   r+   rê   r|   r2   r0   Útest_get_precision_nonerð   Ë  s*   € Ü�6‰6”"—(‘(œ7×0Ñ0°$°Ó8Ó9Ô:Ð:Ñ:r2   Úmode)Úvalid_outputÚ	pointwiseÚkeep_collapsedc                 ó  — t        dd«      }t        j                  |«      dk(  sJ ‚t        dt        «      5  t        j
                  |d| ¬«      }d d d «       t        j                  «      dk(  sJ ‚t        ||«       t        dt        «      5  t        j
                  |d| ¬«      }d d d «       t        j                  |«      dk(  sJ ‚t        |t        dd«      «       t        |t        dd«      «       y # 1 sw Y   Œ§xY w# 1 sw Y   Œ\xY w)NçÍÌÌÌÌÌì?r   ©r)   ri   r   ©rñ   r4   )r   r+   rê   r   ÚUserWarningrë   r   )rñ   Úinitial_geometryrí   s      r0   Útest_set_precisionrû   Ï  sø   € ä˜S #“ÐÜ× Ñ Ð!1Ó2°aÒ7Ð7Ð7ä	˜¤[Ó	1ñ Iä×(Ñ(Ð)9¸1À4ÔHˆ÷Iô × Ñ  Ó*¨aÒ/Ð/Ð/Ü˜HÐ&6Ô7ä	˜¤[Ó	1ñ IÜ×(Ñ(Ð)9¸1À4ÔHˆ÷Iä× Ñ  Ó*¨aÒ/Ð/Ð/Ü˜H¤e¨A¨q£kÔ2äÐ,¬e°C¸«oÕ>÷Ið Iú÷Ið Iús   ·C6ÂDÃ6C?ÄDc                  óÎ   — t        j                  t        g d¢«      d«      } t        | t        g d¢«      «       t        j                  | d«      } t        | t        g d¢«      «       y )N)©r   r   rý   ©r   r4   ©r4   r4   r   r4   )rý   rþ   rÿ   )r+   rë   r   r   )rí   s    r0   Útest_set_precision_drop_coordsr   â  sO   € ä×$Ñ$¤ZÒ0PÓ%QÐSTÓU€HÜ˜H¤jÒ1QÓ&RÔSô ×$Ñ$ X¨qÓ1€HÜ˜H¤jÒ1IÓ&JÕKr2   c                 óö   — t        dt        «      5  t        j                  t	        ddd«      d| ¬«      }d d d «       t        j
                  «      dk(  sJ ‚t        |t	        ddd«      «       y # 1 sw Y   Œ;xY w)Nr÷   rö   r4   rø   )r   rù   r+   rë   r   rê   r   )rñ   rí   s     r0   Útest_set_precision_zr  ì  sp   € ä	˜¤[Ó	1ñ Mä×(Ñ(¬¨s°C¸Ó)=¸qÀtÔLˆ÷Mô × Ñ  Ó*¨aÒ/Ð/Ð/Ü˜H¤e¨A¨q°#Ó&6Õ7÷	Mð Mús   ‘$A/Á/A8c                 óØ   — t        j                  «       5  t        j                  d«       t        j                  t
        d| ¬«      }t        |t
        «       d d d «       y # 1 sw Y   y xY w)NÚignorer4   rø   )ÚwarningsÚcatch_warningsÚsimplefilterr+   rë   r   r   )rñ   r/   s     r0   Útest_set_precision_nanr  õ  sO   € ä	×	 Ñ	 Ó	"ñ 9Ü×Ñ˜hÔ'Ü×&Ñ&¤¸ÀÔEˆÜ ¬Ô8÷9÷ 9ñ 9ús   •AA Á A)c                  ó4   — t        j                  d d«      �J ‚y r§   )r+   rë   r|   r2   r0   Útest_set_precision_noner
  ý  s   € Ü× Ñ   qÓ)Ð1Ð1Ñ1r2   c                  ód   — t        j                  t        dd«      t        j                  «      �J ‚y )Nrö   )r+   rë   r   rw   r¡   r|   r2   r0   Ú test_set_precision_grid_size_nanr    s%   € Ü× Ñ ¤ s¨C£´"·&±&Ó9ÐAÐAÑAr2   zgeometry,mode,expected)©r8   r8   ©rF   r8   )gš™™™™™	@r)   ©rF   rF   ©r8   rF   )gffffff@r)   r  rò   )r  r  ©r)   r)   r  )r  r  r  r  ró   )r  r  r  r  r  r  r  r÷   z%pointwise does not work pre-GEOS 3.10rô   rý   ©çš™™™™™¹?r  )rý   )r  r   r  )r   r  rý   zSegfaults on GEOS 3.10.0)rý   rý   rý   rý   rý   )rý   rý   rý   z7this collapsed into an invalid linearring pre-GEOS 3.10c                 ó˜   — t        j                  | d|¬«      }t        t        j                  |«      |t         j                  dk(  ¬«       y)zILines and polygons collapse to empty geometries if vertices are too closer4   rø   )r)   é	   r   )Ú	normalizeN)r+   rë   r   Úforce_2dÚgeos_version)rí   rñ   Úexpectedr/   s       r0   Útest_set_precision_collapser    s@   € ôB ×"Ñ" 8¨Q°TÔ:€FÜä×Ñ˜Ó ØÜ×&Ñ&¨)Ñ3ö	r2   c                  óò  — t        j                  t        j                  dddd«      «      } t        j                  t        j                  dddd«      «      }t        j                  t        j                  | |«      «      dk(  sJ ‚t        j
                  | d«      } t        j
                  |d«      }t        j                  | |«      }t        j                  |«      dk(  sJ ‚t        |t        ddg«      «       y	)
zHOperations should use the most precise precision grid size of the inputsr   rö   g      è?g      ü?g      à?r4   rÿ   )r4   r   N)r+   r  Úboxrê   Úintersectionrë   r   r   )Úbox1Úbox2Úouts      r0   Útest_set_precision_intersectionr!  o  sÍ   € ô ×ÑœWŸ[™[¨¨A¨s°CÓ8Ó9€DÜ×ÑœWŸ[™[¨¨q°$¸Ó=Ó>€Dä× Ñ ¤×!5Ñ!5°d¸DÓ!AÓBÀaÒGÐGÐGô × Ñ   sÓ+€DÜ× Ñ   qÓ)€DÜ
×
Ñ
˜t TÓ
*€CÜ× Ñ  Ó%¨Ò,Ð,Ð,Ü˜C¤¨V°VÐ,<Ó!=Õ>r2   Úpreserve_topologyFTc                 óô   — t        j                  t        «      5  t        j                  t        ddg«      d| ¬«      }d d d «       t        t        j                  «      t        «       «       y # 1 sw Y   Œ1xY w)Nrý   r  ç      ð?)r"  ©r�   Úwarnsrù   r+   rë   r   r   r  )r"  r/   s     r0   Úset_precision_preserve_topologyr'    sa   € ô 
�‰”kÓ	"ñ 
Ü×&Ñ&Ü˜ 
Ð+Ó,ØØ/ô
ˆ÷
ô œG×,Ñ,¨VÓ4´j³lÕC÷
ð 
úó   š$A.Á.A7zGEOS >= 3.10c                  óô   — t        j                  t        «      5  t        j                  t        ddg«      dd¬«      } d d d «       t        t        j                   «      t        «       «       y # 1 sw Y   Œ1xY w)Nrý   r  r$  ró   rø   r%  r.   s    r0   Úset_precision_pointwise_pre_310r*  ‹  sa   € ô 
�‰”kÓ	"ñ 
Ü×&Ñ&Ü˜ 
Ð+Ó,ØØô
ˆ÷
ô œG×,Ñ,¨VÓ4´j³lÕC÷
ð 
úr(  Úflagsr4   rF   c                 ó¶   — t        j                  t        t        f«      5  t        j
                  j                  t        d| «       d d d «       y # 1 sw Y   y xY w)Nr$  )r�   rŽ   rÉ   rÔ   r+   Úlibrë   r   )r+  s    r0   Úset_precision_illegal_flagsr.  —  s@   € ô 
�‰œ
¤IÐ.Ó	/ñ ;Ü�‰×!Ñ!¤+¨s°EÔ:÷;÷ ;ñ ;ús    &AÁAc                  ó¢   — t        j                  t        j                  ddg«      «      } t        j                  | «      j                  «       sJ ‚y)z(Compatibility with empty_like, see GH373N)rw   Ú
empty_liker¯   r+   r@   rA   )r±   s    r0   Ú
test_emptyr1  ž  s:   € ä
�‰”b—h‘h  d˜|Ó,Ó-€AÜ×Ñ˜aÓ ×$Ñ$Ô&Ð&Ñ&r2   zgeom,expectedc                 óz   — t        j                  | «      }t        j                  |«      dk(  sJ ‚t        ||«       y )Nr8   )r+   r  rf   r   ©r;   r  r/   s      r0   Útest_force_2dr4  ¨  s7   € ô4 ×Ñ˜dÓ#€FÜ×+Ñ+¨FÓ3°qÒ8Ð8Ð8Ü˜F HÕ-r2   c                 ó~   — t        j                  | d¬«      }t        j                  |«      dk(  sJ ‚t        ||«       y )NrF   )Úzr)   )r+   Úforce_3drf   r   r3  s      r0   Útest_force_3dr8  Ç  s9   € ô4 ×Ñ˜d aÔ(€FÜ×+Ñ+¨FÓ3°qÒ8Ð8Ð8Ü˜F HÕ-r2   )vr  Únumpyrw   r�   r+   r   r   r   r   r   Úshapely.testingr   Úshapely.tests.commonr	   r
   Úempty_geometry_collectionr   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%   r&   r1   r6   r:   ÚmarkÚparametrizerC   rI   rL   rQ   rT   rX   r[   r]   ra   rd   rg   rk   rn   rq   r{   r€   rƒ   Úparamrˆ   Úskipifr  r¯   rN   rO   ÚPOINTry   r}   r�   r„   r†   r‰   r�   r”   rœ   r£   r¥   r0  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*  r.  r1  rµ   Úgeometry_collection_2r4  r8  r|   r2   r0   ú<module>rC     sò
  ðÛ ã Û ã ß HÕ HÝ 3÷÷ ÷ ÷ ÷ ÷ ÷ ÷ òDUò
Uò
Uð
 ‡�×ÑØ
àØØØØØðó
ñ,ó
ð,ð
 ‡�×Ñ˜ +¨{Ð!;Ó<ñ1ó =ð1ð ‡�×ÑØ
àØØØØØØðóñ,óð,ò
Rð
 ‡�×ÑØ
àØØØØØØðóñ,óð,ò
1ð ‡�×Ñ˜ %¨°kÀ7Ð!KÓLñ1ó Mð1ð ‡�×ÑØ
ˆ[Ð+¨]Ð<OÐPóñ1óð1òVò
Wò
 ò
Wò
Vò,ð ‡�×ÑØ
à�‰Ø�‰Ø�‰Øˆ�‰Ø�M‰MØ—+‘+×$Ñ$Ø×$Ñ$ zÑ1¸-ð %ó ô	
ð	
óð ‡�×ÑØ
Ø€B‡H�HˆYÓÐ+˜×+Ñ+¨IÓ6¸'×:NÑ:N×:TÑ:TÑTÑUóñ ó	óð$ òBòBò6ò*ð ‡�×ÑØ×Ñ˜:Ñ%Ø9ð ó ñ,ó	ð,ð ‡�×Ñ˜ Ó+ñ.ó ,ð.òð ‡�×Ñ˜ Ó+ñó ,ðò
òð ‡�×ÑØ
àØØØØØØØØØØ!Øˆ�‰�$�ÓØˆ�‰�h�b—h‘h ˜vÓ&Ó'ðóñ$	3ó%ð$	3ò3ò9ò.1ð ‡�×ÑØ
Ø€f€X��ˆ +  °;Ð@QÐ2RÐ1SÐTóñ ó	ð ð ‡�×Ñ˜ %¨°gÐ!>Ó?ñ;ó @ð;ð
 ‡�×Ñ˜ $¨¨°Ð!3Ó4ñ-ó 5ð-ð ‡�×Ñ˜ %¨%¨°"Ð!5Ó6ñ ó 7ð ò
.ð ‡�×ÑØ
àØØØØØØØØØØ!Øðóñ"	;ó#ð"	;òGò1ð& ‡�×Ñ˜ D 6 (¨g¨Y¨KÐ!8Ó9ñ ó :ð ò*ò+ò;ð ‡�×Ñ˜Ð!PÓQñ?ó Rð?ò$Lð ‡�×Ñ˜Ð!PÓQñ8ó Rð8ð ‡�×Ñ˜Ð!PÓQñ9ó Rð9ò2òBð ‡�×ÑØñ ÒPÓQØÙáÒ<Ó=ÙÒ<Ó=ðóð		
ð 	ˆ�‰ÙÒPÓQØÙÒLÓMØ—+‘+×$Ñ$Ø×$Ñ$ zÑ1Ø>ð %ó ô		
ñ ÒPÓQØÙáÒ<Ó=ÙÒ<Ó=ðóð		
ñ 
�V˜ZÐ(Ó	)¨>¹:»<ÐHØˆ�‰Ù˜ 
Ð+Ó,ØÙ˜ Ð'Ó(Ø—+‘+×$Ñ$Ø×$Ñ$ zÑ1Ø>ð %ó ô		
ñ ˜ 
Ð+Ó,ØÙ˜ Ð'Ó(ð	
ð
 	ˆ�‰ÙÒGÓHØÙ‹LØ—+‘+×$Ñ$Ø×$Ñ$¨
Ñ2Ð;Uð %ó ô		
ð 	ˆ�‰ÙÒGÓHØÙÒ?Ó@Ø—+‘+×$Ñ$Ø×$Ñ$ zÑ1Ø>ð %ó ô		
ð 	ˆ�‰ÙÒGÓHØáÒ/Ó0Ø—+‘+×$Ñ$Ø×$Ñ$ zÑ1ØPð %ó ô		
ñ ÒDÓEØÙ‹Ið	
ð
 	ˆ�‰ÙÒDÓEØÙÒ<Ó=Ø—+‘+×$Ñ$Ø×$Ñ$ zÑ1Ø>ð %ó ô		
ñ ÒDÓEØÙ‹Ið	
ðm[ó^ñ~ó^ð~ò?ð  ‡�×ÑÐ,¨u°d¨mÓ<ñDó =ðDð ‡�×Ñ�G×(Ñ(¨JÑ6¸~ÐÓNñDó OðDð ‡�×Ñ˜ 8 2§8¡8¨Q°¨FÓ#3°Q¸Ð">Ó?ñ;ó @ð;ò'ð 4˜×3Ñ3°U¸KÐ4HÓIÐ ð ‡�×ÑØà	�ˆØ	�%ÐØ	�kÐ"Ø	˜Ð$Ø	�kÐ"Ø	˜Ð$Ø	Ð-Ð.Ø	Ð/Ð0Ø	�'ÐØ	�GÐØ	Ð-Ð.Ø	Ð/Ð0Ø	�kÐ"Ø	˜Ð$Ø	Ð-Ð.Ø	Ð/Ð0Ø	˜Ð&Ø	˜-Ð(Ø	Ð 5Ð6Ø	Ð 5Ð6ð)óñ2.ó3ð2.ð ‡�×ÑØà	�ÐØ	�'ÐØ	�mÐ$Ø	˜Ð&Ø	�mÐ$Ø	˜Ð&Ø	Ð/Ð0Ø	Ð1Ð2Ø	�)ÐØ	�IÐØ	Ð/Ð0Ø	Ð1Ð2Ø	�mÐ$Ø	˜Ð&Ø	Ð/Ð0Ø	Ð1Ð2Ø	˜Ð(Ø	˜/Ð*Ø	Ð 5Ð6Ø	Ð 5Ð6ð)óñ2.ó3ñ2.r2   