
    \i5                     >   S SK Jr  S SKrS SKrS SKrS SKJrJrJr  S SK	J
r
JrJrJrJrJrJrJrJrJrJr  \R*                  \R,                  " \R.                  \R0                  R3                  \R4                  S:  SS9S9\R6                  \R8                  \R:                  \R<                  \R>                  \R@                  \RB                  \RD                  \RF                  \RH                  4r%\RL                  \RN                  \RP                  \RR                  \RT                  \RV                  \RX                  \RZ                  \R\                  \R^                  \R,                  " \" \R`                  S	S
9\R0                  R3                  \R4                  S:  SS9S9\Rb                  \Rd                  \Rf                  4r4\4SS r5\Rl                  \RV                  4\Rn                  \RP                  44r8\R0                  Rs                  S\
\-   5      \R0                  Rs                  S\%5      S 5       5       r:\R0                  Rs                  S\%5      S 5       r;\R0                  Rs                  S\%5      S 5       r<\R0                  Rs                  S\
5      \R0                  Rs                  S\45      S 5       5       r=\R0                  Rs                  S\45      S 5       r>\R0                  Rs                  S\45      S 5       r?S r@\R0                  Rs                  S\
5      \R0                  Rs                  S\85      S 5       5       rA\R0                  Rs                  S\
5      \R0                  Rs                  S\85      S 5       5       rB\R0                  Rs                  S\8 V s/ s H  o S    PM	     sn 5      S 5       rC\R0                  Rs                  S\85      S 5       rD\R0                  Rs                  S\8 V s/ s H  o S    PM	     sn 5      S 5       rE\R0                  Rs                  S\8 V s/ s H  o S    PM	     sn 5      S 5       rFS rGS  rHS! rI\R0                  R3                  \R4                  S:  SS9S" 5       rJ\R0                  Rs                  S\
5      S# 5       rK\R0                  Rs                  S\5      S$ 5       rL\R0                  R3                  \R4                  S:  S%S9\R0                  Rs                  S\5      S& 5       5       rM\R0                  R3                  \R4                  S:  S%S9\R0                  Rs                  S\5      S' 5       5       rN\R0                  Rs                  S(\S)4\S)4\S*4\S)4/5      S+ 5       rOS, rP\R0                  Rs                  S-\S4S\4S./5      S/ 5       rQS0 rRS1 rS\R0                  Rs                  S-\S4S\4S./5      S2 5       rTS3 rU\R0                  Rs                  S4/ S5Q5      S6 5       rVS7 rW\R0                  Rs                  S8\" / S9Q5      S)4\" / S:Q5      S*4\" / S9Q5      S)4\" / S:Q5      S*4\" / S;Q5      S)4\" / S<Q5      S)4\S)4\S)4\S)4S=/
5      S> 5       rXS? rY\R0                  Rs                  S\
5      \R0                  Rs                  S\55      S@ 5       5       rZ\R0                  Rs                  S\
5      SA 5       r[\R0                  Rs                  S\
SB-   5      SC 5       r\SD r]gs  sn f s  sn f s  sn f )E    )partialN)
LinearRing
LineStringPoint)	all_typesall_types_mall_types_zall_types_zmemptygeometry_collectionignore_invalidline_stringlinear_ringpointpolygon      r   zGEOS < 3.12)reason)marksg      ?distance)r   
   r   zGEOS < 3.10geometryfuncc                 z    U" X /5      nUR                   S:X  d   eUR                  [        R                  :X  d   eg )N   )shapedtypenpbool_)r   r   actuals      `/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/shapely/tests/test_predicates.pytest_unary_arrayr&   H   s9     8&'F<<4<<288###    c                     [         R                  " S[         R                  S9nU " [        US9nX!L d   eUR                  [         R                  :X  d   eg N r!   outr"   r   uint8r   r!   r   r-   r$   s      r%   test_unary_with_kwargsr1   P   sB    
((2RXX
&C%S!F==<<288###r'   c                     U [         R                  [         R                  4;   a  U " S 5      (       d   eg U " S 5      (       a   eg N)shapelyis_valid_input
is_missing)r   s    r%   test_unary_missingr7   X   s9    &&(:(:;;Dzzz::~:r'   ac                 *   [        [        R                  " U 5      =(       a    [        R                  S:  5         U" X /[        5      nS S S 5        WR
                  S:X  d   eUR                  [        R                  :X  d   eg ! , (       d  f       NA= f)Nr   r   )	r   r4   is_emptygeos_versionr   r    r!   r"   r#   )r8   r   r$   s      r%   test_binary_arrayr<   `   sq     
((+Q0D0Dz0Q	R qfe$ 
S <<4<<288### 
S	Rs   B
Bc                     [         R                  " S[         R                  S9nU " [        [        US9nX!L d   eUR                  [         R                  :X  d   eg r)   r.   r0   s      r%   test_binary_with_kwargsr>   k   sD    
((2RXX
&C%C(F==<<288###r'   c                     U " [         R                  " [        S S /5      [         R                  " S [        S /5      5      nU) R                  5       (       d   eg r3   )r"   arrayr   allr   r$   s     r%   test_binary_missingrC   s   s@    "((E4./4:M1NOFG==???r'   c                      [        / SQ5      n [        SS/5      n[        [        R                  S:  5         [        R                  " X5      R
                  (       d   e S S S 5        g ! , (       d  f       g = f)N)r   r   )r   r   )r   r   )r   r   )      )   rG   r   )r   r   r4   r;   intersectionr:   )r8   bs     r%   test_binary_empty_resultrK   y   sW    34AFF#$A	,,z9	: ##A)2222 
;	:	:s   (A))
A7zfunc, func_binc                    [        [        R                  " U 5      =(       a    [        R                  S:  5         U" X /SS5      nU" X /[	        SS5      5      nS S S 5        WR
                  S:X  d   eUR                  [        R                  :X  d   e[        R                  R                  UW5        g ! , (       d  f       Na= f)Nr   r   r   r   )r   r4   r:   r;   r   r    r!   r"   r#   testingassert_allclose)r8   r   func_binr$   expecteds        r%   test_xy_arrayrQ      s     
((+Q0D0Dz0Q	R qfa#QFE!QK0	 
S
 <<4<<288###JJvx0 
S	Rs    B55
Cc           
         [         R                  " U S 5      n[        [         R                  " U 5      =(       a    [         R                  S:  5         U" U/ SQ/ SQ5      nU" U [        SS5      [        SS5      [        SS5      /5      nS S S 5        [        R                  R                  WW5        g ! , (       d  f       N/= f)	Nc                     U $ r3   r*   xs    r%   <lambda>)test_xy_array_broadcast.<locals>.<lambda>   s    r'   r   r   rG   r   rG   r   r   r   rG   r   r   )	r4   	transformr   r:   r;   r   r"   rM   rN   )r8   r   rO   a2r$   rP   s         r%   test_xy_array_broadcastr\      s     
		1k	*B	((+Q0D0Dz0Q	R b)Y/AaU1a[%1+FG	 
S
 JJvx0 
S	Rs   9B44
Cc                     [         R                  " [        S 5      nU " U/ SQ/ SQ5      nU " USS/SS/SS//5      n[        R                  R                  X#5        g )Nc                     U $ r3   r*   rT   s    r%   rV   "test_xy_array_2D.<locals>.<lambda>   s    Ar'   rX   rY   r   rG   r   r   )r4   rZ   r   r"   rM   rN   )r   polygon2r$   rP   s       r%   test_xy_array_2Dra      sS      +6H(Iy1FH1v1v1v67HJJv0r'   c                     U " [        [        [        /5      SS5      nU" [        [        /[        SS5      5      n[        R
                  R                  X#5        g )Nr   r   )_prepare_with_copyr   r   r   r"   rM   rN   )r   rO   r$   rP   s       r%   test_xy_preparedrd      sD    $g{%;<aCF+.a<HJJv0r'   c                    [         R                  " S[         R                  S9n[        R                  " [
        S 5      nU " X"R                  UR                  US9nX1L d   eUR                  [         R                  :X  d   eg )Nr*   r+   c                     U $ r3   r*   rT   s    r%   rV   %test_xy_with_kwargs.<locals>.<lambda>   s    r'   r,   )	r"   r   r/   r4   rZ   r   rU   yr!   )r   r-   point2r$   s       r%   test_xy_with_kwargsrj      s^    
((2RXX
&Cuk2F&((FHH#6F==<<288###r'   c           
         U " [         R                  " [        [        [        S /5      [         R                  " [        R                  [         R                  [        R                  [        R                  /5      [         R                  " [        R
                  [        R
                  [         R                  [        R
                  /5      5      n[         R                  R                  U/ SQ5        g )N)TFFF)r"   r@   r   rU   nanrh   rM   rN   rB   s     r%   test_xy_missingrm      s    
%t,-
%''266577EGG45
%''577BFFEGG45F
 JJv'BCr'   c                     [         R                  " SS5      n [         R                  " SS5      n[         R                  " XS /U SS9n[        R                  R                  U/ SQ5        UR                  [        R                  :X  d   e[         R                  " XS /U SS9n[        R                  R                  U/ S	Q5        UR                  [        R                  :X  d   e[         R                  " X 5      R                  5       S
L d   e[         R                  " X5      R                  5       SL d   e[         R                  " XSS[        R                  /S9n[        R                  R                  U/ SQ5        g )N2      I@ffffff@皙?)	toleranceTFF皙?TTFTFFTF)
r4   pointsequals_exactr"   rM   rN   r!   r#   itemrl   p1p2r$   s      r%   test_equals_exact_tolerancer      s"   	A	B	c	"B!!24."EFJJv';<<<288###!!24."DFJJv':;<<288### ',,.$666',,.%777 !!"T34GHFJJv';<r'   c                      [        SS/5      n [        SS/5      n[        R                  " X5      (       a   e[        R                  " XSS9(       d   eg )NrE   rG   rG   T)	normalize)r   r4   rz   l1l2s     r%   test_equals_exact_normalizer      sM    	VV$	%B	VV$	%B##B++++$777r'   c                  J   [        SS/5      n [        SS/5      n[        R                  " X5      (       a   e[        SS/5      n [        SS/5      n[        R                  " X5      (       a   e[        R                  " X5      (       d   e[	        5          [        S[
        R                  4S/5      n [        S[
        R                  4S/5      nS S S 5        [        R                  " X5      (       d   e[        R                  " X5      (       a   eg ! , (       d  f       NI= f)NrE   r   )r   r   r   )rG   rG   r   )r   r   rG   )rG   rG   rG   r   )r   r4   equals_identicalrz   r   r"   rl   r   s     r%   test_equals_identicalr      s     
VV$	%B	VV$	%B''//// 
Y	*	+B	Y	*	+B''////'''' 
	!RVVf-.!RVVf-. 
 ##B++++##B+++++	 
	s   ;D
D"c                  X   [         R                  " SS5      n [         R                  " SS5      n[         R                  " XS /U SS9n[        R                  R                  U/ SQ5        UR                  [        R                  :X  d   e[         R                  " XS /U SS9n[        R                  R                  U/ S	Q5        UR                  [        R                  :X  d   e[         R                  " XSS[        R                  /S9n[        R                  R                  U/ S
Q5        g )Nro   rp   rq   rr   rs   r   ru   rv   rw   rx   )
r4   ry   dwithinr"   rM   assert_equalr!   r#   rN   rl   r|   s      r%   test_dwithinr      s    	A	B	c	"B__bd^R$?FJJF$89<<288###__bd^R#>FJJv':;<<288### __RtS"&&.ABFJJv';<r'   c                     [         R                  " U 5      (       a   e[         R                  S:  a  [         R                  " U 5      (       a   eg g Nr   )r4   has_zr;   has_mr   s    r%   test_has_z_has_m_all_typesr      sB    }}X&&&&z)==***** *r'   c                    [         R                  " U 5      (       a  [        R                  " S5        [         R                  " U 5      (       d   e[         R
                  S:  a  [         R                  " U 5      (       a   eg g )N.GEOSHasZ with EMPTY geometries is inconsistentr   )r4   r:   pytestskipr   r;   r   r   s    r%   test_has_z_has_m_all_types_zr   	  s`    !!DE==""""z)==***** *r'   z,M coordinates not supported with GEOS < 3.12c                     [         R                  " U 5      (       a  [        R                  " S5        [         R                  " U 5      (       a   e[         R
                  " U 5      (       d   eg )Nz.GEOSHasM with EMPTY geometries is inconsistentr4   r:   r   r   r   r   r   s    r%   test_has_m_all_types_mr     sL     !!DE}}X&&&&==""""r'   c                     [         R                  " U 5      (       a  [        R                  " S5        [         R                  " U 5      (       d   e[         R
                  " U 5      (       d   eg )Nr   r   r   s    r%   test_has_z_has_m_all_types_zmr     sL     !!DE==""""==""""r'   zgeometry,expectedFTc                 <    [         R                  " U 5      U:X  d   eg r3   )r4   	is_closed)r   rP   s     r%   test_is_closedr   *  s     X&(222r'   c                      [         R                  " SS5      n [         R                  " SS5      n[         R                  " X5      n[        U[        5      (       d   eUS:X  d   eg )Nr   rG   	FF0FFF0F2)r4   ry   relate
isinstancestrr|   s      r%   test_relater   7  sQ    	1	B	1	B^^B#Ffc""""[   r'   zg1, g2)NNc                 6    [         R                  " X5      b   eg r3   )r4   r   g1g2s     r%   test_relate_noner   ?  s    >>"!)))r'   c                  R   [         R                  " / SQ5      n [         R                  " SSSS5      n[         R                  " X5      S:X  d   e[         R                  " XS5      (       d   e[         R                  " XS5      (       d   e[         R                  " XS5      (       a   eg )N)rE   )rG   r   r   r   r   	11F00F212	*********z	F********)r4   linestringsboxr   relate_pattern)gr   s     r%   test_relate_patternr   D  s    45Akk!Q1%G>>!%444!!!k::::!!!k::::%%a+>>>>>r'   c                      [        [        R                  S:  5         [        R                  " [        [        S5      R                  5       SL d   e S S S 5        g ! , (       d  f       g = f)Nr   r   T)r   r4   r;   r   r   r{   r*   r'   r%   test_relate_pattern_emptyr   M  sI    	,,z9	: %%eUG<AACtKKK 
;	:	:s   4A
A)c                 X    [         R                  " XS5      R                  5       SL d   eg )Nr   F)r4   r   r{   r   s     r%   test_relate_pattern_noner   T  s&    !!"'2779UBBBr'   c                  x   [         R                  " [        R                  SS9   [        R                  " [
        [        S5        S S S 5        [         R                  " [        R                  SS9   [        R                  " [
        [        S5        S S S 5        g ! , (       d  f       N[= f! , (       d  f       g = f)NzShould be length 9matchz**z
**********)r   raisesr4   GEOSExceptionr   r   r   r*   r'   r%   $test_relate_pattern_incorrect_lengthr   Y  su    	w,,4H	Iugt4 
J 
w,,4H	Iug|< 
J	I 
J	I 
J	Is   !B0!B+
B(+
B9pattern)s	   *********r   Nc                     [         R                  " [        SS9   [        R                  " [
        [        U 5        S S S 5        g ! , (       d  f       g = f)Nzexpected stringr   )r   r   	TypeErrorr4   r   r   r   )r   s    r%   test_relate_pattern_non_stringr   a  s/    	y(9	:ugw7 
;	:	:s   !A
Ac                      [         R                  " [        SS9   [        R                  " [
        /S-  [        S/S-  5        S S S 5        g ! , (       d  f       g = f)Nzonly supports scalarr   r   r   )r   r   
ValueErrorr4   r   r   r   r*   r'   r%   test_relate_pattern_non_scalarr   g  s=    	z)?	@w{Gk]Q5FG 
A	@	@s   )A
Azgeom, expected)rE   r   rG   r   rE   )rE   r   r   rE   )rE   r   r   )rE   r   r   )NFc                 <    [         R                  " U 5      U:X  d   eg r3   )r4   is_ccw)geomrP   s     r%   test_is_ccwr   l  s      >>$8+++r'   c                 b    [         R                  " U S 5      n [         R                  " U 5        U $ )z"Prepare without modifying in-placec                     U $ r3   r*   rT   s    r%   rV   $_prepare_with_copy.<locals>.<lambda>  s    Qr'   )r4   rZ   preparer   s    r%   rc   rc     s%      ;7HOOHOr'   c                     [        [        R                  " U 5      =(       a    [        R                  S:  5         U" U [        5      nU" [        U 5      [        5      nS S S 5        WW:X  d   eg ! , (       d  f       N= fr   )r   r4   r:   r;   r   rc   )r8   r   r$   results       r%   test_binary_preparedr     sf     
((+Q0D0Dz0Q	R a(+U3	 
S
 V 
S	Rs   $A//
A=c                 P    [         R                  " [        U 5      5      (       d   eg r3   )r4   is_preparedrc   r   s    r%   test_is_prepared_truer     s    1(;<<<<r'   r3   c                 >    [         R                  " U 5      (       a   eg r3   )r4   r   r   s    r%   test_is_prepared_falser     s    ""8,,,,,r'   c                      [         R                  " [        [        5      R                  5       SL d   e[         R                  " [        [        5      R                  5       SL d   eg )NTF)r4   containsr   r{   contains_properlyr*   r'   r%   test_contains_properlyr     sJ    GW-224<<<$$Wg6;;=FFFr'   )^	functoolsr   numpyr"   r   r4   r   r   r   shapely.tests.commonr   r   r	   r
   r   r   r   r   r   r   r   r   paramr   markskipifr;   r:   	is_simpleis_ringr   is_validr6   is_geometryr5   r   r   UNARY_PREDICATESdisjointtouches
intersectscrosseswithinr   r   overlapscovers
covered_byr   equalsrz   r   BINARY_PREDICATESBINARY_PREPARED_PREDICATEScontains_xyintersects_xyXY_PREDICATESparametrizer&   r1   r7   r<   r>   rC   rK   rQ   r\   ra   rd   rj   rm   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rc   r   r   r   r   )funcss   0r%   <module>r      s       1 1    MM
LLkk    :-m ! 
 OONN# * OOOONNNN
LL#.kk    :-m ! 
 NN' , /s3  '**+G../ Y%<=!12$ 3 >$ !12$ 3$ !12 3 i(!23$ 4 )$ !23$ 4$ !23 4
3 i()=91 : )1 i()=91 : )1 !Fu(!FG1 H1 )=91 :1 !Fu(!FG$ H$ !Fu(!FGD HD=(8,* G((:5mL= M= Y/+ 0+ [1+ 2+ :%9   [1# 2	
# :%9   \2# 3	
# 		e	d		33! UDMD%=,#OP* Q*?L UDMD%=,#OPC QC= $<=8 >8
H
 	4	5u=	4	5t<	4	5u=	4	5t<	,	-u5	,	-u5		%	e$,, i(!;< = ) Y/= 0= Y%89- :-GA "G "G "Gs   '\
>\
3\
