
    (&h5                     p   d dl mZ d dlZd dlZd dlZd dlmZmZ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 ej         ej        ej        ej                            ej        dk     d                    ej        ej        ej        ej        ej        ej         ej!        ej"        ej#        ej$        fZ%ej&        ej'        ej(        ej)        ej*        ej+        ej,        ej-        ej.        ej/         ej         eej0        d	
          ej                            ej        dk     d                    ej1        ej2        ej3        fZ4e4dd         Z5ej6        ej+        fej7        ej(        ffZ8ej        9                    de
ez             ej        9                    de%          d                         Z:ej        9                    de%          d             Z;ej        9                    de%          d             Z<ej        9                    de
          ej        9                    de4          d                         Z=ej        9                    de4          d             Z>ej        9                    de4          d             Z?d Z@ej        9                    de
          ej        9                    de8          d                         ZAej        9                    de
          ej        9                    de8          d                         ZBej        9                    dd e8D                       d             ZCej        9                    de8          d             ZDej        9                    dd e8D                       d             ZEej        9                    dd  e8D                       d!             ZFd" ZGd# ZHd$ ZIej                            ej        dk     d          d%             ZJej        9                    de
          d&             ZKej        9                    de          d'             ZLej                            ej        dk     d(          ej        9                    de          d)                         ZMej                            ej        dk     d(          ej        9                    de          d*                         ZNej        9                    d+ed,fed,fed-fed,fg          d.             ZOd/ ZPej        9                    d0edfdefd1g          d2             ZQd3 ZRd4 ZSej        9                    d0edfdefd1g          d5             ZTd6 ZUej        9                    d7g d8          d9             ZVd: ZWej        9                    d; eg d<          d,f eg d=          d-f eg d<          d,f eg d=          d-f eg d>          d,f eg d?          d,fed,fed,fed,fd@g
          dA             ZXdB ZYej        9                    de
          ej        9                    de5          dC                         ZZej        9                    de
          dD             Z[ej        9                    de
dEz             dF             Z\dG Z]dS )H    )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                 h     || | g          }|j         dk    sJ |j        t          j        k    sJ d S )N   )shapedtypenpbool_)r   r   actuals      X/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/test_predicates.pytest_unary_arrayr&   H   sF     T8X&''F<4<28######    c                     t          j        dt           j                  } | t          |          }||u sJ |j        t           j        k    sJ d S N r!   outr"   r   uint8r   r!   r   r-   r$   s      r%   test_unary_with_kwargsr1   P   sT    
(2RX
&
&
&CT%S!!!FS====<28######r'   c                 r    | t           j        t           j        fv r | d           sJ d S  | d           rJ d S N)shapelyis_valid_input
is_missing)r   s    r%   test_unary_missingr7   X   sL    &(:;;;tDzz4::r'   ac                    t          t          j        |           ot          j        dk               5   || | gt                    }d d d            n# 1 swxY w Y   |j        dk    sJ |j        t          j        k    sJ d S )Nr   r   )	r   r4   is_emptygeos_versionr   r    r!   r"   r#   )r8   r   r$   s      r%   test_binary_arrayr<   `   s     
(++Q0Dz0Q	R	R % % q!fe$$% % % % % % % % % % % % % % % <4<28######s   AAAc                     t          j        dt           j                  } | t          t          |          }||u sJ |j        t           j        k    sJ d S r)   r.   r0   s      r%   test_binary_with_kwargsr>   k   sV    
(2RX
&
&
&CT%C(((FS====<28######r'   c                      | t          j        t          d d g          t          j        d t          d g                    }|                                 sJ d S r3   )r"   arrayr   allr   r$   s     r%   test_binary_missingrC   s   sQ    T"(E4.//4:M1N1NOOFG==??r'   c                      t          g d          } t          ddg          }t          t          j        dk               5  t          j        | |          j        sJ 	 d d d            d S # 1 swxY w Y   d S )N)r   r   )r   r   )r   r   )r   r   )      )   rG   r   )r   r   r4   r;   intersectionr:   )r8   bs     r%   test_binary_empty_resultrK   y   s    33344AFF#$$A	,z9	:	: 3 3 #Aq))222223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s    A++A/2A/zfunc, func_binc                 v   t          t          j        |           ot          j        dk               5   || | gdd          } || | gt	          dd                    }d d d            n# 1 swxY w Y   |j        dk    sJ |j        t          j        k    sJ t          j	        
                    ||           d S )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0Dz0Q	R	R 1 1 q!fa##8QFE!QKK00	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 <4<28####Jvx00000s   ,A**A.1A.c           
         t          j        | d           }t          t          j        |           ot           j        dk               5   ||g dg d          } || t          dd          t          dd          t          dd          g          }d d d            n# 1 swxY w Y   t          j                            ||           d S )	Nc                     | S r3   r*   xs    r%   <lambda>z)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    
	1kk	*	*B	(++Q0Dz0Q	R	R H H b)))YYY//8AaU1a[[%1++FGG	H H H H H H H H H H H H H H H
 Jvx00000s   ABB#&B#c                     g | ]
}|d          S r   r*   .0funcss     r%   
<listcomp>ra          !F!F!Fu%(!F!F!Fr'   c                     t          j        t          d           } | |g dg d          } | |ddgddgddgg          }t          j                            ||           d S )Nc                     | S r3   r*   rT   s    r%   rV   z"test_xy_array_2D.<locals>.<lambda>   s    A r'   rW   rX   r   rG   r   r   )r4   rY   r   r"   rM   rN   )r   polygon2r$   rP   s       r%   test_xy_array_2Drf      ss     ++66HT(IIIyyy11FtH1v1v1v677HJvx00000r'   c                      | t          t          t          g          dd          } |t          t          gt          dd                    }t          j                            ||           d S )Nr   r   )_prepare_with_copyr   r   r   r"   rM   rN   )r   rO   r$   rP   s       r%   test_xy_preparedri      s_    T$g{%;<<aCCFx+.a<<HJvx00000r'   c                     g | ]
}|d          S r]   r*   r^   s     r%   ra   ra      rb   r'   c                     t          j        dt           j                  }t          j        t
          d           } | ||j        |j        |          }||u sJ |j        t           j        k    sJ d S )Nr*   r+   c                     | S r3   r*   rT   s    r%   rV   z%test_xy_with_kwargs.<locals>.<lambda>   s     r'   r,   )	r"   r   r/   r4   rY   r   rU   yr!   )r   r-   point2r$   s       r%   test_xy_with_kwargsro      sp    
(2RX
&
&
&Cukk22FT&&(FH#666FS====<28######r'   c                     g | ]
}|d          S r]   r*   r^   s     r%   ra   ra      rb   r'   c           
          | t          j        t          t          t          d g          t          j        t          j        t           j        t          j        t          j        g          t          j        t          j        t          j        t           j        t          j        g                    }t           j                            |g d           d S )N)TFFF)r"   r@   r   rU   nanrm   rM   rN   rB   s     r%   test_xy_missingrs      s    T
%t,--
%'2657EG455
%'57BFEG455 F
 Jv'B'B'BCCCCCr'   c                     t          j        dd          } t          j        dd          }t          j        | |d g| d          }t          j                            |g d           |j        t          j        k    sJ t          j        | |d g| d          }t          j                            |g d	           |j        t          j        k    sJ t          j        | |                                           d
u sJ t          j        | |                                          du sJ t          j        | |ddt          j	        g          }t          j                            |g d           d S )N2      I@ffffff@皙?)	toleranceTFF皙?TTFTFFTF)
r4   pointsequals_exactr"   rM   rN   r!   r#   itemrr   p1p2r$   s      r%   test_equals_exact_tolerancer      sc   	A		B	c	"	"B!2r4."EEEFJv';';';<<<<28####!2r4."DDDFJv':':':;;;<28#### B'',,..$6666B'',,..%7777 !"bT34GHHHFJv';';';<<<<<r'   c                      t          ddg          } t          ddg          }t          j        | |          rJ t          j        | |d          sJ d S )NrE   rG   rG   T)	normalize)r   r4   r   l1l2s     r%   test_equals_exact_normalizer      sc    	VV$	%	%B	VV$	%	%B#B+++++B$77777777r'   c                  4   t          ddg          } t          ddg          }t          j        | |          rJ t          ddg          } t          ddg          }t          j        | |          rJ t          j        | |          sJ t	                      5  t          dt
          j        fdg          } t          dt
          j        fdg          }d d d            n# 1 swxY w Y   t          j        | |          sJ t          j        | |          rJ d S )NrE   r   )r   r   r   )rG   rG   r   )r   r   rG   )rG   rG   rG   r   )r   r4   equals_identicalr   r   r"   rr   r   s     r%   test_equals_identicalr      sf    
VV$	%	%B	VV$	%	%B'B///// 
Y	*	+	+B	Y	*	+	+B'B/////B''''' 
		 / /!RVf-..!RVf-../ / / / / / / / / / / / / / / #B+++++#B+++++++s   ;CC#&C#c                  2   t          j        dd          } t          j        dd          }t          j        | |d g| d          }t          j                            |g d           |j        t          j        k    sJ t          j        | |d g| d          }t          j                            |g d	           |j        t          j        k    sJ t          j        | |ddt          j	        g          }t          j                            |g d
           d S )Nru   rv   rw   rx   ry   r   r{   r|   r}   r~   )
r4   r   dwithinr"   rM   assert_equalr!   r#   rN   rr   r   s      r%   test_dwithinr      s
   	A		B	c	"	"B_b"d^R$???FJF$8$8$8999<28####_b"d^R#>>>FJv':':':;;;<28#### _RtS"&.ABBBFJv';';';<<<<<r'   c                     t          j        |           rJ t           j        dk    rt          j        |           rJ d S d S Nr   )r4   has_zr;   has_mr   s    r%   test_has_z_has_m_all_typesr      sJ    }X&&&&&z))=***** *)**r'   c                     t          j        |           rt          j        d           t          j        |           sJ t           j        dk    rt          j        |           rJ d S d S )N.GEOSHasZ with EMPTY geometries is inconsistentr   )r4   r:   pytestskipr   r;   r   r   s    r%   test_has_z_has_m_all_types_zr   	  so    !! FDEEE="""""z))=***** *)**r'   z,M coordinates not supported with GEOS < 3.12c                     t          j        |           rt          j        d           t          j        |           rJ t          j        |           sJ d S )Nz.GEOSHasM with EMPTY geometries is inconsistentr4   r:   r   r   r   r   r   s    r%   test_has_m_all_types_mr     s[     !! FDEEE}X&&&&&="""""""r'   c                     t          j        |           rt          j        d           t          j        |           sJ t          j        |           sJ d S )Nr   r   r   s    r%   test_has_z_has_m_all_types_zmr     s[     !! FDEEE="""""="""""""r'   zgeometry,expectedFTc                 :    t          j        |           |k    sJ d S r3   )r4   	is_closed)r   rP   s     r%   test_is_closedr   *  s&     X&&(222222r'   c                      t          j        dd          } t          j        dd          }t          j        | |          }t          |t                    sJ |dk    sJ d S )Nr   rG   	FF0FFF0F2)r4   r   relate
isinstancestrr   s      r%   test_relater   7  sb    	1		B	1		B^B##Ffc"""""[      r'   zg1, g2)NNc                 4    t          j        | |          J d S r3   )r4   r   g1g2s     r%   test_relate_noner   ?  s     >"b!!)))))r'   c                  &   t          j        g d          } t          j        dddd          }t          j        | |          dk    sJ t          j        | |d          sJ t          j        | |d          sJ t          j        | |d          rJ d S )N)rE   )rG   r   r   r   r   	11F00F212	*********z	F********)r4   linestringsboxr   relate_pattern)gr   s     r%   test_relate_patternr   D  s    44455Ak!Q1%%G>!W%%4444!!Wk:::::!!Wk:::::%a+>>>>>>>r'   c                      t          t          j        dk               5  t          j        t          t          d                                          du sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   r   T)r   r4   r;   r   r   r   r*   r'   r%   test_relate_pattern_emptyr   M  s    	,z9	:	: L L %eUG<<AACCtKKKKKL L L L L L L L L L L L L L L L L Ls   7A##A'*A'c                 ^    t          j        | |d                                          du sJ d S )Nr   F)r4   r   r   r   s     r%   test_relate_pattern_noner   T  s4    !"b'227799UBBBBBBr'   c                  h   t          j        t          j        d          5  t          j        t
          t          d           d d d            n# 1 swxY w Y   t          j        t          j        d          5  t          j        t
          t          d           d d d            d S # 1 swxY w Y   d S )NzShould be length 9matchz**z
**********)r   raisesr4   GEOSExceptionr   r   r   r*   r'   r%   $test_relate_pattern_incorrect_lengthr   Y  s   	w,4H	I	I	I 5 5ugt4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
w,4H	I	I	I = =ug|<<<= = = = = = = = = = = = = = = = = =s#   !AAA9!B''B+.B+pattern)s	   *********r   Nc                     t          j        t          d          5  t          j        t
          t          |            d d d            d S # 1 swxY w Y   d S )Nzexpected stringr   )r   r   	TypeErrorr4   r   r   r   )r   s    r%   test_relate_pattern_non_stringr   a  s    	y(9	:	:	: 8 8ugw7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   !A

AAc                      t          j        t          d          5  t          j        t
          gdz  t          dgdz             d d d            d S # 1 swxY w Y   d S )Nzonly supports scalarr   r   r   )r   r   
ValueErrorr4   r   r   r   r*   r'   r%   test_relate_pattern_non_scalarr   g  s    	z)?	@	@	@ H Hw{Gk]Q5FGGGH H H H H H H H H H H H H H H H H Hs   )AAAzgeom, expected)rE   r   rG   r   rE   )rE   r   r   rE   )rE   r   r   )rE   r   r   )NFc                 :    t          j        |           |k    sJ d S r3   )r4   is_ccw)geomrP   s     r%   test_is_ccwr   l  s%      >$8++++++r'   c                 Z    t          j        | d           } t          j        |            | S )z"Prepare without modifying in-placec                     | S r3   r*   rT   s    r%   rV   z$_prepare_with_copy.<locals>.<lambda>  s    Q r'   )r4   rY   preparer   s    r%   rh   rh     s+     ;;77HOHOr'   c                    t          t          j        |           ot          j        dk               5   || t                    } |t          |           t                    }d d d            n# 1 swxY w Y   ||k    sJ d S r   )r   r4   r:   r;   r   rh   )r8   r   r$   results       r%   test_binary_preparedr     s     
(++Q0Dz0Q	R	R 4 4 a(++U33	4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 Vs   0A..A25A2c                 L    t          j        t          |                     sJ d S r3   )r4   is_preparedrh   r   s    r%   test_is_prepared_truer     s(    1(;;<<<<<<<r'   r3   c                 2    t          j        |           rJ d S r3   )r4   r   r   s    r%   test_is_prepared_falser     s    "8,,,,,,,r'   c                      t          j        t          t                                                    du sJ t          j        t          t                                                    du sJ d S )NTF)r4   containsr   r   contains_properlyr*   r'   r%   test_contains_properlyr     s\    GW--2244<<<<$Wg66;;==FFF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   equalsr   r   BINARY_PREDICATESBINARY_PREPARED_PREDICATEScontains_xyintersects_xyXY_PREDICATESparametrizer&   r1   r7   r<   r>   rC   rK   rQ   r[   rf   ri   ro   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   r   r   r   r   r*   r'   r%   <module>r      s	               1 1 1 1 1 1 1 1 1 1                          MFLk   :-m ! 
 
   ON# * OONNFL#...k   :-m ! 
 
   N' , /ss3  '*+G./ Y%<==!122$ $ 32 >=$ !122$ $ 32$ !122  32 i((!233$ $ 43 )($ !233$ $ 43$ !233  43
3 3 3 i(()=991 1 :9 )(1 i(()=991 1 :9 )(1 !F!F!F!F!FGG1 1 HG1 )=991 1 :91 !F!F!F!F!FGG$ $ HG$ !F!F!F!F!FGGD D HGD= = =(8 8 8, , ,* G(:5mLL= = ML= Y//+ + 0/+ [11+ + 21+ :%9    [11# # 21	 
# :%9    \22# # 32	 
# 		e	d		 3 3 3! ! ! UDMD%=,#OPP* * QP*? ? ?L L L UDMD%=,#OPPC C QPC= = = $<$<$<==8 8 >=8
H H H
 	444	5	5u=	444	5	5t<	444	5	5u=	444	5	5t<	,,,	-	-u5	,,,	-	-u5		%	e$ , , ,   i((!;<<  =< )( Y//= = 0/= Y%899- - :9-G G G G Gr'   