Ë
    ~ìqjKR  ã                   ó¨  — d dl Zd dlZd dlmZ d dlZd dl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)m*Z*m+Z+m,Z, e%ee)eee!fZ-e'ee+eee#fZ.e&ee*eee"fZ/e(ee,e ee$fZ0e-e.z   Z1ejd                  dk\  re1e/z   e0z   Z1eefZ3ejh                  jk                  de-e.z   «      d„ «       Z6ejh                  jk                  d	g d
¢«      ejh                  jk                  dg d
¢«      ejh                  jk                  de1«      d„ «       «       «       Z7d„ Z8ejh                  js                  ejd                  dk  d¬«      d„ «       Z:ejh                  jk                  de-«      d„ «       Z;ejh                  jk                  de3«      d„ «       Z<d„ Z=d„ Z>d„ Z?d„ Z@d„ ZAd„ ZBd„ ZCd„ ZDd„ ZEd„ ZFd„ ZGd„ ZHd„ ZId „ ZJy)!é    N)Úassert_allclose)ÚMultiLineStringÚ
MultiPointÚMultiPolygon)Úassert_geometries_equal)!Úempty_line_stringÚempty_line_string_mÚempty_line_string_zÚempty_line_string_zmÚempty_multi_polygon_mÚempty_multi_polygon_zÚempty_multi_polygon_zmÚgeometry_collectionÚline_stringÚline_string_mÚline_string_zÚline_string_zmÚlinear_ringÚmulti_line_stringÚmulti_line_string_mÚmulti_line_string_zÚmulti_line_string_zmÚmulti_pointÚmulti_point_mÚmulti_point_zÚmulti_point_zmÚmulti_polygonÚmulti_polygon_mÚmulti_polygon_zÚmulti_polygon_zmÚpointÚpoint_mÚpoint_zÚpoint_zmÚpolygonÚ	polygon_mÚ	polygon_zÚ
polygon_zm©é   é   r   Úgeomc                 ón   — t        j                  t        j                  | | g«      Ž }t        || | g«       y ©N)ÚshapelyÚfrom_ragged_arrayÚto_ragged_arrayr   )r,   Úactuals     ú[/var/www/html/truck-me/venv/lib/python3.12/site-packages/shapely/tests/test_ragged_array.pyÚtest_roundtripr4   Z   s/   € ä×&Ñ&¬×(?Ñ(?ÀÀtÀÓ(MÐN€FÜ˜F T¨4 LÕ1ó    Ú	include_m)NTFÚ	include_zc                 ó‚  — t        j                  | | g||¬«      \  }}}t        j                  t        j                  |«      d¬«      j                  «       }ddg}| j                  }|s|€|r|j                  | «       t         j                  dk\  r| j                  }nd}|s|€|r|j                  | «       ||k(  sJ ‚y )N)r7   r6   r   )ÚaxisFr)   )
r/   r1   ÚnpÚallÚisnanÚtolistÚhas_zÚappendÚgeos_versionÚhas_m)	r,   r7   r6   Ú_ÚcoordsÚnan_dimsÚexpectedr>   rA   s	            r3   Útest_to_ragged_arrayrF   `   sµ   € ô ×*Ñ*Ø	ˆtˆ 	°Yô�L€A€vˆqô �v‰v”b—h‘h˜vÓ&¨QÔ/×6Ñ6Ó8€HØ�uˆ~€HØ�J‰J€EÙ�YÐ&©5Ø�‰˜E˜	Ô"Ü×Ñ˜zÒ)Ø—
‘
‰àˆÙ�YÐ&©5Ø�‰˜E˜	Ô"Ø�xÒÐÑr5   c                  óž  — t        j                  t        t        g«      \  } }} |j                  d   dk(  sJ ‚t        j                  t
        g«      \  } }} |j                  d   dk(  sJ ‚t        j                  t        g«      \  } }} |j                  d   dk(  sJ ‚t        j                  t        g«      \  } }} |j                  d   dk(  sJ ‚y )Né   r*   é   )r/   r1   r   r   Úshaper   r
   r   ©rB   rC   s     r3   Útest_include_z_defaultrL   u   sÇ   € ô ×*Ñ*¬K¼Ð+GÓH�L€A€vˆqØ�<‰<˜‰?˜aÒÐÐô ×*Ñ*Ô,=Ð+>Ó?�L€A€vˆqØ�<‰<˜‰?˜aÒÐÐÜ×*Ñ*Ô,?Ð+@ÓA�L€A€vˆqØ�<‰<˜‰?˜aÒÐÐä×*Ñ*Ô,AÐ+BÓC�L€A€vˆqØ�<‰<˜‰?˜aÒÐÑr5   zGEOS < 3.12)Úreasonc                  óz  — t        j                  t        t        g«      \  } }} |j                  d   dk(  sJ ‚t        j                  t        t        t
        g«      \  } }} |j                  d   dk(  sJ ‚t        j                  t        g«      \  } }} |j                  d   dk(  sJ ‚t        j                  t        g«      \  } }} |j                  d   dk(  sJ ‚t        j                  t        g«      \  } }} |j                  d   dk(  sJ ‚t        j                  t        g«      \  } }} |j                  d   dk(  sJ ‚y )NrH   r*   é   rI   )
r/   r1   r   r   rJ   r   r	   r   r   r   rK   s     r3   Útest_include_m_defaultrP   †   s,  € ô
 ×*Ñ*¬K¼Ð+GÓH�L€A€vˆqØ�<‰<˜‰?˜aÒÐÐô ×*Ñ*¬K¼ÌÐ+WÓX�L€A€vˆqØ�<‰<˜‰?˜aÒÐÐô ×*Ñ*Ô,?Ð+@ÓA�L€A€vˆqØ�<‰<˜‰?˜aÒÐÐÜ×*Ñ*Ô,@Ð+AÓB�L€A€vˆqØ�<‰<˜‰?˜aÒÐÐä×*Ñ*Ô,AÐ+BÓC�L€A€vˆqØ�<‰<˜‰?˜aÒÐÐÜ×*Ñ*Ô,BÐ+CÓD�L€A€vˆqØ�<‰<˜‰?˜aÒÐÑr5   c                 óÖ   — t        j                  | | g«      \  }}}d|j                  _        |D ]  }d|j                  _        Œ t        j                  |||«      }t        || | g«       y )NF)r/   r1   ÚflagsÚ	writeabler0   r   )r,   ÚtyprC   ÚoffsetsÚarrÚresults         r3   Útest_read_only_arraysrX   ž   sh   € ô #×2Ñ2°D¸$°<Ó@Ñ€Cˆ�Ø"€F‡L�LÔØò $ˆØ#ˆ�	‰	Õð$ä×&Ñ& s¨F°GÓ<€FÜ˜F T¨4 LÕ1r5   c                 óŽ   — t        j                  t        «      5  t        j                  | | g«       d d d «       y # 1 sw Y   y xY wr.   )ÚpytestÚraisesÚ
ValueErrorr/   r1   )r,   s    r3   Útest_raise_geometry_typer]   ©   s5   € ä	�‰”zÓ	"ñ .Ü×Ñ  t Ô-÷.÷ .ñ .ús	   š;»Ac            
      ó´  — t        j                  g d¢«      } t        j                  | «      \  }}}t        j                  ddgddgt        j
                  t        j
                  gt        j
                  t        j
                  gddgt        j
                  t        j
                  gt        j
                  t        j
                  gg«      }|t         j                  j                  k(  sJ ‚t        |«      t        | «      k(  sJ ‚t        ||«       t        |«      dk(  sJ ‚t        j                  ||«      }t        j                  d«      | d<   t        || «       y )N)zPOINT (0 0)zPOINT (1 1)úPOINT EMPTYr_   zPOINT (4 4)Nr_   r   rH   rO   r_   éþÿÿÿ)r/   Úfrom_wktr1   r:   ÚarrayÚnanÚGeometryTypeÚPOINTÚlenr   r0   r   )rV   rT   rW   rU   rE   Úgeomss         r3   Útest_pointsrh   ¯   s  € Ü
×
Ñ
ò	
ó
€Cô #×2Ñ2°3Ó7Ñ€Cˆ�Ü�x‰xà�ˆFØ�ˆFÜ�V‰V”R—V‘VÐÜ�V‰V”R—V‘VÐØ�ˆFÜ�V‰V”R—V‘VÐÜ�V‰V”R—V‘VÐð	
ó
€Hð ”'×&Ñ&×,Ñ,Ò,Ð,Ð,Üˆv‹;œ#˜c›(Ò"Ð"Ð"Ü�F˜HÔ%Üˆw‹<˜1ÒÐÐä×%Ñ% c¨6Ó2€Eä×Ñ˜}Ó-€Cˆ�GÜ˜E 3Õ'r5   c                  ó  — t        j                  g d¢«      } t        j                  | «      \  }}}t        j                  ddgddgddgddgddgddgddgddgddgddgg
«      }t        j                  g d¢d¬«      }|t         j
                  j                  k(  sJ ‚t        ||«       t        |«      d	k(  sJ ‚|d
   j                  t        j                  k(  sJ ‚t        |d
   |«       t        j                  |||«      }t        j                  d«      | d<   t        || «       |d
   d	d  f}t        j                  |||«      }t        || d	d  «       |d
   d d f}t        j                  |||«      }t        || d d «       y )N)z LINESTRING (30 10, 10 30, 40 40)z'LINESTRING (40 40, 30 30, 40 20, 30 10)úLINESTRING EMPTYrj   z LINESTRING (10 10, 20 20, 10 40)Nrj   ç      >@ç      $@ç      D@ç      4@)r   r*   é   ro   ro   é
   rp   rp   Úint32©ÚdtyperH   r   rj   r`   éÿÿÿÿ)r/   ra   r1   r:   rb   rd   Ú
LINESTRINGr   rf   rs   rq   r0   r   ©rV   rT   rC   rU   rE   Úexpected_offsetsrW   Úoffsets_sliceds           r3   Útest_linestringsry   Ò   sŸ  € Ü
×
Ñ
ò	
ó
€Cô #×2Ñ2°3Ó7Ñ€Cˆ�Ü�x‰xà�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLð	
ó€Hô —x‘xÒ ;À7ÔKÐØ”'×&Ñ&×1Ñ1Ò1Ð1Ð1Ü�F˜HÔ%Üˆw‹<˜1ÒÐÐØ�1‰:×ÑœrŸx™xÒ'Ð'Ð'Ü�G˜A‘JÐ 0Ô1ä×&Ñ& s¨F°GÓ<€Fä×ÑÐ1Ó2€Cˆ�GÜ˜F CÔ(ð ˜a‘j  �nÐ&€NÜ×&Ñ& s¨F°NÓC€FÜ˜F C¨¨ GÔ,à˜a‘j  "�oÐ'€NÜ×&Ñ& s¨F°NÓC€FÜ˜F C¨¨ HÕ-r5   c                  óØ  — t        j                  g d¢«      } t        j                  | «      \  }}}t        j                  ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgg«      }t        j                  g d	¢«      }t        j                  g d
¢«      }|t         j
                  j                  k(  sJ ‚t        ||«       t        |«      dk(  sJ ‚|d   j                  t        j                  k(  sJ ‚|d   j                  t        j                  k(  sJ ‚t        |d   |«       t        |d   |«       t        j                  |||«      }t        j                  d«      | d<   t        || «       |d   |d   dd  f}t        j                  |||«      }t        || dd  «       |d   |d   d d f}t        j                  |||«      }t        || d d «       y )N)ú-POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))zKPOLYGON ((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30))úPOLYGON EMPTYr|   r{   Nr|   rk   rl   rm   rn   ç     €A@ç     €F@ç      .@)r   é   rp   é   é   ©r   rH   r*   r*   r*   rO   rO   rO   rI   r   rH   r|   r`   rt   )r/   ra   r1   r:   rb   rd   ÚPOLYGONr   rf   rs   rq   r0   r   ©	rV   rT   rC   rU   rE   Úexpected_offsets1Úexpected_offsets2rW   rx   s	            r3   Útest_polygonsrˆ     s"  € Ü
×
Ñ
ò	
ó
€Cô #×2Ñ2°3Ó7Ñ€Cˆ�Ü�x‰xà�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLð'	
ó€Hô. Ÿ™Ò!3Ó4ÐÜŸ™Ò!9Ó:Ðà”'×&Ñ&×.Ñ.Ò.Ð.Ð.Ü�F˜HÔ%Üˆw‹<˜1ÒÐÐØ�1‰:×ÑœrŸx™xÒ'Ð'Ð'Ø�1‰:×ÑœrŸx™xÒ'Ð'Ð'Ü�G˜A‘JÐ 1Ô2Ü�G˜A‘JÐ 1Ô2ä×&Ñ& s¨F°GÓ<€Fä×Ñ˜Ó/€Cˆ�GÜ˜F CÔ(ð
 ˜a‘j '¨!¡*¨Q¨R .Ð1€NÜ×&Ñ& s¨F°NÓC€FÜ˜F C¨¨ GÔ,à˜a‘j '¨!¡*¨S¨b /Ð2€NÜ×&Ñ& s¨F°NÓC€FÜ˜F C¨¨ HÕ-r5   c                  óö  — t        j                  g d¢«      } t        j                  | «      \  }}}t        j                  ddgddgddgddgddgddgddgddgg«      }t        j                  g d¢«      }|t         j
                  j                  k(  sJ ‚t        ||«       t        |«      dk(  sJ ‚|d   j                  t        j                  k(  sJ ‚t        |d   |«       t        j                  |||«      }t        j                  d	«      | d
<   t        || «       |d   dd  f}t        j                  |||«      }t        || dd  «       |d   d d f}t        j                  |||«      }t        || d d «       y )N)z'MULTIPOINT (10 40, 40 30, 20 20, 30 10)zMULTIPOINT (30 10)úMULTIPOINT EMPTYrŠ   z MULTIPOINT (30 10, 10 30, 40 40)NrŠ   rl   rm   rk   rn   )r   rO   r€   r€   r€   é   r‹   r‹   rH   r   rŠ   r`   rt   )r/   ra   r1   r:   rb   rd   Ú
MULTIPOINTr   rf   rs   rq   r0   r   rv   s           r3   Útest_multipointsr�   C  s�  € Ü
×
Ñ
ò	
ó
€Cô #×2Ñ2°3Ó7Ñ€Cˆ�Ü�x‰xà�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLð		
ó€Hô —x‘xÒ 8Ó9Ðà”'×&Ñ&×1Ñ1Ò1Ð1Ð1Ü�F˜HÔ%Üˆw‹<˜1ÒÐÐØ�1‰:×ÑœrŸx™xÒ'Ð'Ð'Ü�G˜A‘JÐ 0Ô1ä×&Ñ& s¨F°GÓ<€Fä×ÑÐ1Ó2€Cˆ�GÜ˜F CÔ(ð ˜a‘j  �nÐ&€NÜ×&Ñ& s¨F°NÓC€FÜ˜F C¨¨ GÔ,à˜a‘j  "�oÐ'€NÜ×&Ñ& s¨F°NÓC€FÜ˜F C¨¨ HÕ-r5   c                  óÌ  — t        j                  g d¢«      } t        j                  | «      \  }}}t        j                  ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgg«      }t        j                  g d	¢«      }t        j                  g d
¢«      }|t         j
                  j                  k(  sJ ‚t        ||«       t        |«      dk(  sJ ‚|d   j                  t        j                  k(  sJ ‚|d   j                  t        j                  k(  sJ ‚t        |d   |«       t        |d   |«       t        j                  |||«      }t        j                  d«      | d<   t        || «       |d   |d   dd  f}t        j                  |||«      }t        || dd  «       |d   |d   d d f}t        j                  |||«      }t        || d d «       y )N)z'MULTILINESTRING ((30 10, 10 30, 40 40))zEMULTILINESTRING ((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10))úMULTILINESTRING EMPTYr�   zGMULTILINESTRING ((35 10, 45 45), (15 40, 10 20), (30 10, 10 30, 40 40))Nr�   rk   rl   rm   rn   r}   r~   r   )r   r*   é   rp   r+   r�   é   )r   rH   r*   r*   r*   r�   r�   r�   rI   r   rH   r�   r`   rt   )r/   ra   r1   r:   rb   rd   ÚMULTILINESTRINGr   rf   rs   rq   r0   r   r…   s	            r3   Útest_multilinestringsr“   s  s  € Ü
×
Ñ
ò	
ó
€Cô #×2Ñ2°3Ó7Ñ€Cˆ�Ü�x‰xà�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLð#	
ó€Hô* Ÿ™Ò!:Ó;ÐÜŸ™Ò!9Ó:Ðà”'×&Ñ&×6Ñ6Ò6Ð6Ð6Ü�F˜HÔ%Üˆw‹<˜1ÒÐÐØ�1‰:×ÑœrŸx™xÒ'Ð'Ð'Ø�1‰:×ÑœrŸx™xÒ'Ð'Ð'Ü�G˜A‘JÐ 1Ô2Ü�G˜A‘JÐ 1Ô2ä×&Ñ& s¨F°GÓ<€Fä×ÑÐ6Ó7€Cˆ�GÜ˜F CÔ(ð
 ˜a‘j '¨!¡*¨Q¨R .Ð1€NÜ×&Ñ& s¨F°NÓC€FÜ˜F C¨¨ GÔ,à˜a‘j '¨!¡*¨S¨b /Ð2€NÜ×&Ñ& s¨F°NÓC€FÜ˜F C¨¨ HÕ-r5   c                  ó¾  — t        j                  g d¢«      } t        j                  | «      \  }}}t        j                  ddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgdd	gddgddgddgddgdd
gddgddgddgddgddgg«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢«      }|t         j
                  j                  k(  sJ ‚t        ||«       t        |«      dk(  sJ ‚|d   j                  t        j                  k(  sJ ‚|d   j                  t        j                  k(  sJ ‚|d   j                  t        j                  k(  sJ ‚t        |d   |«       t        |d   |«       t        |d   |«       t        j                  |||«      }t        j                  d«      | d<   t        || «       |d   |d   |d   dd  f}	t        j                  |||	«      }t        || dd  «       |d   |d   |d   d d f}	t        j                  |||	«      }t        || d d «       t        |«       y )N)zRMULTIPOLYGON (((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30)))zxMULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20)))úMULTIPOLYGON EMPTYr•   z-MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)))Nr•   r}   rl   r~   r   rm   rn   rk   g      @g      9@)r   r€   é	   é   r‚   é   é   )r   rI   r*   r€   r�   rƒ   r*   r   rH   rI   r•   r`   éýÿÿÿ)r/   ra   r1   r:   rb   rd   ÚMULTIPOLYGONr   rf   rs   rq   r0   r   Úprint)
rV   rT   rC   rU   rE   r†   r‡   Úexpected_offsets3rW   rx   s
             r3   Útest_multipolygonsrž   ±  s¨  € Ü
×
Ñ
ò	
ó
€Cô #×2Ñ2°3Ó7Ñ€Cˆ�Ü�x‰xà�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�3ˆKØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLØ�4ˆLð7	
ó€Hô> Ÿ™Ò!:Ó;ÐÜŸ™¢Ó1ÐÜŸ™Ò!9Ó:Ðà”'×&Ñ&×3Ñ3Ò3Ð3Ð3Ü�F˜HÔ%Üˆw‹<˜1ÒÐÐØ�1‰:×ÑœrŸx™xÒ'Ð'Ð'Ø�1‰:×ÑœrŸx™xÒ'Ð'Ð'Ø�1‰:×ÑœrŸx™xÒ'Ð'Ð'Ü�G˜A‘JÐ 1Ô2Ü�G˜A‘JÐ 1Ô2Ü�G˜A‘JÐ 1Ô2ä×&Ñ& s¨F°GÓ<€Fä×ÑÐ3Ó4€Cˆ�GÜ˜F CÔ(ð ˜a‘j '¨!¡*¨g°a©j¸¸¨nÐ=€NÜ×&Ñ& s¨F°NÓC€FÜ˜F C¨¨ GÔ,à˜a‘j '¨!¡*¨g°a©j¸¸"¨oÐ>€NÜ×&Ñ& s¨F°NÓC€FÜ˜F C¨¨ HÔ-Ü	ˆ&…Mr5   c                  ó   — t        j                  t        t        g«      \  } }}| t         j                  j
                  k(  sJ ‚t        j                  | ||«      }t        j                  t        t        g«      t        g«      }t        ||«       y r.   )r/   r1   r!   r   rd   rŒ   r0   r:   rb   r   r   ©rT   rC   rU   rW   rE   s        r3   Útest_mixture_point_multipointr¡   û  sp   € Ü"×2Ñ2´E¼;Ð3GÓHÑ€Cˆ�Ø”'×&Ñ&×1Ñ1Ò1Ð1Ð1Ü×&Ñ& s¨F°GÓ<€FÜ�x‰xœ¤U GÓ,¬kÐ:Ó;€HÜ˜F HÕ-r5   c                  ó   — t        j                  t        t        g«      \  } }}| t         j                  j
                  k(  sJ ‚t        j                  | ||«      }t        j                  t        t        g«      t        g«      }t        ||«       y r.   )r/   r1   r   r   rd   r’   r0   r:   rb   r   r   r    s        r3   Ú'test_mixture_linestring_multilinestringr£     sr   € Ü"×2Ñ2´KÔARÐ3SÓTÑ€Cˆ�Ø”'×&Ñ&×6Ñ6Ò6Ð6Ð6Ü×&Ñ& s¨F°GÓ<€FÜ�x‰xœ¬+¨Ó7Ô9JÐKÓL€HÜ˜F HÕ-r5   c                  ó   — t        j                  t        t        g«      \  } }}| t         j                  j
                  k(  sJ ‚t        j                  | ||«      }t        j                  t        t        g«      t        g«      }t        ||«       y r.   )r/   r1   r%   r   rd   r›   r0   r:   rb   r   r   r    s        r3   Ú!test_mixture_polygon_multipolygonr¥     sp   € Ü"×2Ñ2´G¼]Ð3KÓLÑ€Cˆ�Ø”'×&Ñ&×3Ñ3Ò3Ð3Ð3Ü×&Ñ& s¨F°GÓ<€FÜ�x‰xœ¤w iÓ0´-Ð@ÓA€HÜ˜F HÕ-r5   c                  óN  — t        j                  ddgddggd¬«      } t        j                  ddg«      }t        j                  ddg«      }t        j                  ddg«      }t        j                  t        d¬«      5  t        j                  t
        j                  j                  | |||f«       d d d «       t        j                  t        d¬«      5  t        j                  t
        j                  j                  | ||f«       d d d «       y # 1 sw Y   Œ_xY w# 1 sw Y   y xY w)Nr   rH   Úfloat64rr   rI   z,A linearring requires at least 4 coordinates©Úmatch)
r:   rb   rZ   r[   r\   r/   r0   rd   r›   r„   ©rC   Úoffsets1Úoffsets2Úoffsets3s       r3   Ú&test_from_ragged_incorrect_rings_shortr®     sü   € ä�X‰X˜˜1�v  1˜vÐ&¨iÔ8€FÜ�x‰x˜˜A˜Ó€HÜ�x‰x˜˜A˜Ó€HÜ�x‰x˜˜A˜Ó€Hä	�‰ÜÐHô
ñ 
ô 	×!Ñ!Ü× Ñ ×-Ñ-¨v¸À(ÈHÐ7Uô	
÷
ô 
�‰ÜÐHô
ñ 
ô 	×!Ñ!Ü× Ñ ×(Ñ(¨&°8¸XÐ2Fô	
÷
ð 
÷
ð 
ú÷
ð 
ús   Á>3DÃ2DÄDÄD$c                  ó„  — t        j                  dt         j                  «      } t        j                  ddg«      }t        j                  ddg«      }t        j                  ddg«      }t	        j
                  t        j                  d¬«      5  t        j                  t        j                  j                  | |||f«       d d d «       t	        j
                  t        j                  d¬«      5  t        j                  t        j                  j                  | ||f«       d d d «       y # 1 sw Y   ŒixY w# 1 sw Y   y xY w)N)rO   rI   r   rO   rH   z4Points of LinearRing do not form a closed linestringr¨   )r:   Úfullrc   rb   rZ   r[   r/   ÚGEOSExceptionr0   rd   r›   r„   rª   s       r3   Ú)test_from_ragged_incorrect_rings_unclosedr²   )  sÿ   € ä�W‰W�VœRŸV™VÓ$€FÜ�x‰x˜˜A˜Ó€HÜ�x‰x˜˜A˜Ó€HÜ�x‰x˜˜A˜Ó€Hä	�‰Ü×ÑØDô
ñ 
ô 	×!Ñ!Ü× Ñ ×-Ñ-¨v¸À(ÈHÐ7Uô	
÷	
ô 
�‰Ü×ÑØDô
ñ 
ô 	×!Ñ!Ü× Ñ ×(Ñ(¨&°8¸XÐ2Fô	
÷	
ð 
÷
ð 
ú÷
ð 
ús   Â3D*Ã/2D6Ä*D3Ä6D?c            	      ó  — t        j                  t        d¬«      5  t        j                  t        j
                  j                  t        j                  ddgddgg«      «       d d d «       t        j                  t        d¬«      5  t        j                  t        j
                  j                  t        j                  ddgddgg«      t        j                  ddg«      f¬«       d d d «       y # 1 sw Y   Œ�xY w# 1 sw Y   y xY w)Nz'offsets' must be providedr¨   r   rH   z 'offsets' should not be provided)rU   )
rZ   r[   r\   r/   r0   rd   ru   r:   rb   re   © r5   r3   Útest_from_ragged_wrong_offsetsrµ   A  sÏ   € Ü	�‰”zÐ)EÔ	Fñ 
Ü×!Ñ!Ü× Ñ ×+Ñ+¬R¯X©X¸¸1°vÀÀ1¸vÐ6FÓ-Gô	
÷
ô
 
�‰”zÐ)KÔ	Lñ 
Ü×!Ñ!Ü× Ñ ×&Ñ&Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&Ü—X‘X˜q !˜fÓ%Ð'õ	
÷
ð 
÷
ð 
ú÷

ð 
ús   œAC0ÂA C<Ã0C9Ã<Dc                  óL  — t         j                  j                  «       j                  d«      j                  d«      } t        j                  g d¢«      }t        j                  g d¢«      }t        d«      D ]C  }t        j                  t        j                  j                  | ||f«      }t        |«      dk(  rŒCJ ‚ t        j                  ddg«      }t        d«      D ]D  }t        j                  t        j                  j                  | |||f«      }t        |«      dk(  rŒDJ ‚ y )	Néx   )é<   rI   )r   rp   é   é   é(   é2   r¸   )r   rH   r€   r�   rp   r*   r   rH   )r:   ÚrandomÚdefault_rngÚreshaperb   Úranger/   r0   rd   r„   rf   r›   )rC   r«   r¬   rB   Úpolygonsr­   s         r3   Útest_from_ragged_crash_2284rÂ   O  sý   € ô
 �Y‰Y×"Ñ"Ó$×+Ñ+¨CÓ0×8Ñ8¸ÓA€FÜ�x‰xÒ3Ó4€HÜ�x‰xšÓ%€Hä�2‹Yò "ˆÜ×,Ñ,Ü× Ñ ×(Ñ(¨&°8¸XÐ2Fó
ˆô �8‹} Ó!Ð!Ð!ð"ô �x‰x˜˜A˜Ó€HÜ�2‹Yò "ˆÜ×,Ñ,Ü× Ñ ×-Ñ-¨v¸À(ÈHÐ7Uó
ˆô �8‹} Ó!Ð!Ð!ñ"r5   c                  ó\  — t         j                  j                  «       j                  d«      j                  d«      } t        j                  g d¢t         j
                  ¬«      }t        j                  g d¢t         j
                  ¬«      }t        j                  ddg«      }t        j                  t        d¬	«      5  t        j                  t        j                  j                  | ||f«       d d d «       t        j                  t        d
¬	«      5  t        j                  t        j                  j                  | |||f«       d d d «       t         j                  j                  «       j                  d«      j                  d«      } t        j                  g d¢t         j
                  ¬«      }t        j                  g d¢t         j
                  ¬«      }t        j                  t        d¬	«      5  t        j                  t        j                  j                  | ||f«       d d d «       t        j                  t        d¬	«      5  t        j                  t        j                  j                  | |||f«       d d d «       t        j                  ddg«      }t        j                  t        d¬	«      5  t        j                  t        j                  j                  | |||f«       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   �ŒºxY w# 1 sw Y   ŒçxY w# 1 sw Y   Œ�xY w# 1 sw Y   y xY w)NéF   )é#   rI   )r   rp   r¹   rr   )r   rH   r€   r   rI   z1Number of rings indicated by the geometry offsetsr¨   z-Number of rings indicated by the part offsets)r   rp   r»   )r   rH   rI   z5Number of coordinates indicated by the linear offsetsr*   z:Number of geometry parts indicated by the geometry offsets)r:   r½   r¾   r¿   rb   Úuint32rZ   r[   r\   r/   r0   rd   r„   r›   rª   s       r3   Ú%test_from_ragged_wrong_offsets_valuesrÇ   h  sg  € ô �Y‰Y×"Ñ"Ó$×+Ñ+¨BÓ/×7Ñ7¸Ó@€FÜ�x‰xš¬2¯9©9Ô5€HÜ�x‰xš	¬¯©Ô3€HÜ�x‰x˜˜A˜Ó€Hä	�‰ÜÐMô
ñ 
ô 	×!Ñ!Ü× Ñ ×(Ñ(¨&°8¸XÐ2Fô	
÷
ô 
�‰ÜÐIô
ñ 
ô 	×!Ñ!Ü× Ñ ×-Ñ-¨v¸À(ÈHÐ7Uô	
÷
ô �Y‰Y×"Ñ"Ó$×+Ñ+¨BÓ/×7Ñ7¸Ó@€FÜ�x‰xš¬2¯9©9Ô5€HÜ�x‰xš	¬¯©Ô3€Hä	�‰ÜÐQô
ñ 
ô 	×!Ñ!Ü× Ñ ×(Ñ(¨&°8¸XÐ2Fô	
÷
ô 
�‰ÜÐQô
ñ 
ô 	×!Ñ!Ü× Ñ ×-Ñ-¨v¸À(ÈHÐ7Uô	
÷
ô �x‰x˜˜A˜Ó€HÜ	�‰ÜÐVô
ñ 
ô 	×!Ñ!Ü× Ñ ×-Ñ-¨v¸À(ÈHÐ7Uô	
÷
ð 
÷G
ñ 
ú÷
ñ 
ú÷
ð 
ú÷
ð 
ú÷
ð 
ús<   Â=2K0Ä3K=Ç22L
É3LÊ43L"Ë0K:Ë=LÌ
LÌLÌ"L+)KÚnumpyr:   rZ   Únumpy.testingr   r/   r   r   r   Úshapely.testingr   Úshapely.tests.commonr   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#   r$   r%   r&   r'   r(   Ú	all_typesÚall_types_zÚall_types_mÚall_types_zmÚall_types_dims_combosr@   Úall_types_not_supportedÚmarkÚparametrizer4   rF   rL   ÚskipifrP   rX   r]   rh   ry   rˆ   r�   r“   rž   r¡   r£   r¥   r®   r²   rµ   rÂ   rÇ   r´   r5   r3   ú<module>rÕ      sD  ðÛ Û Ý )ã ß =Ñ =Ý 3÷"÷ "÷ "÷ "÷ "÷ "÷ "÷ "õ "ðJ 
ØØØØØð€	ð ØØØØØð€ð ØØØØØð€ð ØØØØØð€ð " KÑ/Ð Ø
×Ñ˜:Ò%Ø1°KÑ?À,ÑNÐð ØðÐ ð ‡�×Ñ˜ ¨[Ñ!8Ó9ñ2ó :ð2ð
 ‡�×Ñ˜Ò&9Ó:Ø‡�×Ñ˜Ò&9Ó:Ø‡�×Ñ˜Ð!6Ó7ñ ó 8ó ;ó ;ð ò$ ð" ‡�×Ñ�G×(Ñ(¨:Ñ5¸mÐÓLñ ó Mð ð. ‡�×Ñ˜ Ó+ñ2ó ,ð2ð ‡�×Ñ˜Ð!8Ó9ñ.ó :ð.ò
 (òF..òb=.ò@-.ò`;.ò|GòT.ò.ò.ò
ò,
ò0
ò"ó21
r5   