
    rbiv                     
   d dl Z d dlZd dlZd dlZd dlZ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 d dlmZm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 d dl Z d  e!d          D             Z"e"ej#        $                    d          dgz   Z% ee%          Z&d	  e!d
          D             Z'e'dgz   Z( ee(          Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2e j3        4                    dddg          d             Z5d Z6d Z7d Z8e j3        4                    dg d          d             Z9e j3        4                    dg d          d             Z:e j3        4                    dg d           d!             Z;e j3        4                    dd"g          d#             Z<e j3        4                    dg d$          d%             Z=e j3        4                    dg d$          d&             Z>e j3        4                    dg d'          d(             Z?d) Z@e j3        4                    dd*d+g          d,             ZAd- ZBd. ZCd/ ZDd0 ZEe j3        4                    d1d2d3g          d4             ZFe j3        4                    d5ejG        ejH        g          e j3        4                    d6ejG        ejI        g          e j3        4                    d7d8d9g          d:                                     ZJd; ZKd< ZLd= ZMe j3        4                    d>d e eg d?           eg d@          g          fdA eg dB          fg          dC             ZNdD ZOe j3        4                    dEdFg dGffdHdIdJdKg          dL             ZPdM ZQdN ZRdO ZSdP ZTe j3        4                    dQ ejU        ejV                            g dR          gS           ejW        ejV                            g dR          g           ejX        ejV                            g dR          g          ejV                            g dR          gejV                            g dR          g          dT             ZYdU ZZdV Z[dW Z\dX Z]dY Z^dZ Z_d[ Z`e j3        a                    e d\]          d^             Zbe j3        a                    e d\]          d_             Zce j3        a                    ed`]          da             Zde j3        4                    dbdeje        g          dc             Zfdd Zgde Zhdf Zie j3        a                    ed`]          dg             Zje j3        a                    ed`]          dh             Zk G di dj          Zldk ZmdS )l    N)MultiPolygonPolygongeos_version)	CAP_STYLE
JOIN_STYLE)GEOS_GE_312
HAS_PYPROJSHAPELY_GE_21)	GeometryArray
_check_crs_crs_mismatch_warnfrom_shapelyfrom_wkbfrom_wktpoints_from_xyto_wkbto_wktc                 z    g | ]8}t           j                            d  t          d          D                       9S )c                 Z    g | ](}t          j                     t          j                     f)S  random.0is     j/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/geopandas/tests/test_array.py
<listcomp>z<listcomp>.<listcomp>    s)    SSSQv}@SSS       shapelygeometryr   ranger   _s     r   r   r      sO       	 SS%PQ((SSSTT  r   
   POLYGON EMPTYc                     g | ]D}t           j                            t          j                    t          j                              ES r   )r!   r"   Pointr   r$   s     r   r   r   &   sD       ABG6=??FMOO<<  r      c                 z    t          | |          D ])\  }}|||| dS |                    |          s dS *dS )NFT)zipequals)resultexpectedres       r   equal_geometriesr2   -   s`    FH%%  19	I!)uu #,! 	55	4r   c                     t          j        d                              t           j                  } t          j        d                              t           j                  dz  }t	          | |          }t          |t                    sJ t          d          D ][}t          ||         t          j	        j
                  sJ ||         j        | |         k    sJ ||         j        ||         k    sJ \d S )Nr&      )nparangeastypefloat64r   
isinstancer   r#   r!   r"   r)   xy)r:   r;   pointsr   s       r   test_pointsr=   7   s    
	"RZ((A
	"RZ((A-AAq!!Ffm,,,,,2YY # #&)W%5%;<<<<<ay{ad""""ay{ad"""""# #r   c                     t          j        d t          d          D                       } d t          d          D             }d t          d          D             }t          j        | d         | d                   }t          j        | d         | d         | d                   }t          |t                    sJ t          |t                    sJ t          |          |k    sJ t          |          |k    sJ t          j        t          d                    t          j
        d          t          t          d                    fD ]}t          j        ||          }t          j        |||          }t          |t                    sJ t          |t                    sJ t          |          |k    sJ t          |          |k    sJ t          j
        d          }t          j
        d          }t          j        t                    5  t          j        ||	           t          j        |||
           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        |           t          j        |           t          j        |           d d d            d S # 1 swxY w Y   d S )Nc                     g | ]}|||d 	S )r:   r;   zr   r   r:   s     r   r   z'test_points_from_xy.<locals>.<listcomp>H   s"    CCCAQQQ//CCCr   r&   c                 N    g | ]"}t           j                            ||          #S r   r!   r"   r)   rB   s     r   r   z'test_points_from_xy.<locals>.<listcomp>I   s+    	:	:	:1'

 
 A
&
&	:	:	:r   c                 P    g | ]#}t           j                            |||          $S r   rD   rB   s     r   r   z'test_points_from_xy.<locals>.<listcomp>J   s-    
>
>
>q7!!!Q**
>
>
>r   r:   r;   rA   r*   r:   r;   r@   r:   r;   )rA   )pd	DataFramer#   	geopandasr   r9   r   listSeriesr5   r6   pytestraises
ValueError	TypeError)dfgsgsz	geometry1	geometry2sarr_10arr_20s           r   test_points_from_xyrZ   D   s    
CCrCCC	D	DB	:	:b			:	:	:B
>
>E"II
>
>
>C(C"S'::I(C"S'2c7CCIi/////i/////	??b    	??c!!!! ib		""BIbMM4b		??C & &,Q22	,Q155	)]33333)]33333I"$$$$I#%%%%% Yr]]FYr]]F	z	"	" ? ? 6V4444 6Vv>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
 
y	!	! & & 1%%%% 1%%%% 1%%%%& & & & & & & & & & & & & & & & & &s%   .III4A KKKc                  v    t          t          t                    sJ t          t          t                    sJ d S N)r9   Tr   r2   	trianglesr   r   r   test_from_shapelyr_   i   s4    a'''''Ay)))))))r   c                  V    G d d          } t           | dd           | dd          g          }t          t          j                            dd          t          j                            dd          g          }t	          d t          ||          D                       sJ d S )Nc                   *    e Zd Zd Zed             ZdS ).test_from_shapely_geo_interface.<locals>.Pointc                 "    || _         || _        d S r\   rF   )selfr:   r;   s      r   __init__z7test_from_shapely_geo_interface.<locals>.Point.__init__p   s    DFDFFFr   c                 $    d| j         | j        fdS )Nr)   )typecoordinatesrF   rd   s    r   __geo_interface__z@test_from_shapely_geo_interface.<locals>.Point.__geo_interface__t   s    #TVTV4DEEEr   N)__name__
__module____qualname__re   propertyrj   r   r   r   r)   rb   o   sC        	 	 	 
	F 	F 
	F 	F 	Fr   r)   g      ?g       @g      @g      @c              3   F   K   | ]\  }}|                     |          V  d S r\   r-   r   vts      r   	<genexpr>z2test_from_shapely_geo_interface.<locals>.<genexpr>~   0      ==tq!qxx{{======r   )r   r!   r"   r)   allr,   )r)   r.   r/   s      r   test_from_shapely_geo_interfacerw   n   s    F F F F F F F F 55c??EE#sOO<==F				S	)	)7+;+A+A#s+K+KL H ==s68'<'<==========r   c            	      V   d t           D             } t          |           }t          |t                    sJ t	          d t          |t                     D                       sJ t          t          j        | t                              }t          |t                    sJ t	          d t          |t                     D                       sJ d g}t          |          }t          j	        
                    |t          j        t          |          d                      t          j                            t          j                            dddd          t          j                            dddd          g          }t          |j        g          }|d         |k    sJ d S )	Nc                     g | ]	}|j         
S r   wkbr   ps     r   r   z!test_from_wkb.<locals>.<listcomp>   s    ...qQU...r   c              3   F   K   | ]\  }}|                     |          V  d S r\   rp   rq   s      r   rt   z test_from_wkb.<locals>.<genexpr>   0      CCtq!qxx{{CCCCCCr   dtypec              3   F   K   | ]\  }}|                     |          V  d S r\   rp   rq   s      r   rt   z test_from_wkb.<locals>.<genexpr>   r   r   r      r      )points_no_missingr   r9   r   rv   r,   r5   arrayobjecttestingassert_array_equalfulllenr!   r"   r   boxr{   )L_wkbresmissing_values
multi_polys       r   test_from_wkbr      s   ..-...E
5//Cc=)))))CCs30A'B'BCCCCCCCC 28E000
1
1Cc=)))))CCs30A'B'BCCCCCCCC VN
>
"
"CJ!!#rws>/B/BD'I'IJJJ !..				aAq	)	)7+;+?+?1a+K+KL J JN#
$
$Cq6Zr   c                      dg} t          |           }t          |t                    sJ t          t          j        | t
                              }t          |t                    sJ d S )N*0101000000CDCCCCCCCCCC1440CDCCCCCCCC0C4A40r   )r   r9   r   r5   r   r   )geometry_hexr   s     r   test_from_wkb_hexr      sg    @AL
<
 
 Cc=))))) 28L777
8
8Cc=)))))))r   c                     d} d}t          j        t          |          5  t          | gd           d d d            n# 1 swxY w Y   t          j        t
          |          5  t          | gd          }d d d            n# 1 swxY w Y   |d gk    sJ t          j                    5  t          j        d           t          | gd          }d d d            n# 1 swxY w Y   |d gk    sJ d S )	N201020000000100000000000000000008400000000000000840)point array must contain 0 or >1 elementsmatchraise
on_invalidwarnerrorignore)	rN   rO   	Exceptionr   warnsWarningwarningscatch_warningssimplefilter)invalid_wkb_hexmessager   s      r   test_from_wkb_on_invalidr      s   JO9G	y	0	0	0 8 8/"w77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
gW	-	-	- = =(V<<<= = = = = = = = = = = = = = =4&====		 	"	" ? ?g&&&(X>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4&======3   ?AA%BBB+'CC"%C"c                  p   t          t                    } t          |           }t          j        d t          D             t
                    }t          |t          j                  sJ t          j        	                    ||           t          | d          }t          j        d t          D             t
                    }t          |t          j                  sJ t          j        	                    ||           t          d t          d         g          }t          |          }|d         J d S )Nc                     g | ]	}|j         
S r   rz   r|   s     r   r   ztest_to_wkb.<locals>.<listcomp>       555aAE555r   r   T)hexc                     g | ]	}|j         
S r   )wkb_hexr|   s     r   r   ztest_to_wkb.<locals>.<listcomp>   s    999!AI999r   r   )
r   r   r   r5   r   r   r9   ndarrayr   r   Pr   expas       r   test_to_wkbr      s   &''A
))C
(55#4555V
D
D
DCc2:&&&&&J!!#s+++



C
(99'8999
H
H
HCc2:&&&&&J!!#s+++ 	d-a0122A
))Cq6>>>>>r   string_typestrbytesc           	         | dk    rt           nd fdt          D             }t          |          }t          |t                    sJ dt          fdt          |t                    D                       sJ t          fdt          |t                    D                       sJ t          t          j        |t                              }t          |t                    sJ t          fdt          |t                    D                       sJ d g}t          |          }t          j
                            |t          j        t          |          d                      t          j                            t          j                            d	d	d
d
          t          j                            dddd          g          }t           |j                  g          }|d	         |k    sJ d S )Nr   c                 "    t          | d          S )Nutf8)r   rG   s    r   fztest_from_wkt.<locals>.f   s    F###r   c                 0    g | ]} |j                   S r   wkt)r   r}   r   s     r   r   z!test_from_wkt.<locals>.<listcomp>   s#    111!QQquXX111r   gƠ>c              3   L   K   | ]\  }}|                     |           V  dS )	toleranceNequals_exactr   rr   rs   tols      r   rt   z test_from_wkt.<locals>.<genexpr>   7      XXDAqq~~a3~//XXXXXXr   c              3   L   K   | ]\  }}|                     |           V  dS r   r   r   s      r   rt   z test_from_wkt.<locals>.<genexpr>   r   r   r   c              3   L   K   | ]\  }}|                     |           V  dS r   r   r   s      r   rt   z test_from_wkt.<locals>.<genexpr>   r   r   r   r   r   r   )r   r   r   r9   r   rv   r,   r5   r   r   r   r   r   r   r!   r"   r   r   r   )r   L_wktr   r   r   r   r   s        @@r   test_from_wktr      s   e	$ 	$ 	$ 21110111E
5//Cc=)))))
CXXXXCEV<W<WXXXXXXXXXXXXCEV<W<WXXXXXXXX 28E000
1
1Cc=)))))XXXXCEV<W<WXXXXXXXX VN
>
"
"CJ!!#rws>/B/BD'I'IJJJ !..				aAq	)	)7+;+?+?1a+K+KL J AAjn%%&
'
'Cq6Zr   c                     d} d}t          j        t          |          5  t          | gd           d d d            n# 1 swxY w Y   t          j        t
          |          5  t          | gd          }d d d            n# 1 swxY w Y   |d gk    sJ t          j                    5  t          j        d           t          | gd          }d d d            n# 1 swxY w Y   |d gk    sJ d S )	NzLINESTRING(0 0)r   r   r   r   r   r   r   )	rN   rO   r   r   r   r   r   r   r   )invalid_wktr   r   s      r   test_from_wkt_on_invalidr      s   #K9G	y	0	0	0 4 4+733334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 
gW	-	-	- 9 9}8889 9 9 9 9 9 9 9 9 9 9 9 9 9 94&====		 	"	" ; ;g&&&}:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 4&======r   c                     t          t                    } t          | d          }t          j        d t          D             t
                    }t          |t          j                  sJ t          j        	                    ||           t          d t          d         g          }t          |          }|d         J d S )N)rounding_precisionc                     g | ]	}|j         
S r   r   r|   s     r   r   ztest_to_wkt.<locals>.<listcomp>  r   r   r   r   )
r   r   r   r5   r   r   r9   r   r   r   r   s       r   test_to_wktr     s    &''A
r
*
*
*C
(55#4555V
D
D
DCc2:&&&&&J!!#s+++ 	d-a0122A
))Cq6>>>>>r   c                      t          t                    } t          j        |           }|                                 }|d         | d         k    sJ t          j                            ||           d S Nr   )r   r   r5   asarrayto_numpyr   r   )arrnp_arr1np_arr2s      r   test_as_arrayr     sa    
(
)
)CjooGllnnG1:QJ!!'733333r   z	attr,args)
)containsr   )coversr   )crossesr   )disjointr   )geom_equalsr   )
intersectsr   )overlapsr   )touchesr   )withinr   )geom_equals_exact)皙?c                     dt           d         }t          d         }||t          j                                        fD ]| t          t                     gR  }t          |t          j	                  sJ |j
        t          k    sJ  fdt          D             }|                                |k    sJ }d S )NFr   c           	      b    g | ]+}|% t          |dvrn	dd                    gR  n,S )Ngeom   getattr)r   triargsattrna_valueothers     r   r   z1test_predicates_vector_scalar.<locals>.<listcomp>0  sk     
 
 
  ? GV4%7%7TTT!""XFFuTtTTTT	
 
 
r   )r<   r^   r!   r"   r   r   r]   r9   r5   r   r   booltolist)r   r   pointr   r.   r/   r   r   s   ``    @@r   test_predicates_vector_scalarr     s      H1IE
A,Cg.66889 + +!D!!%/$///&"*-----|t####
 
 
 
 
 
 
 !
 
 
 }}(*****+ +r   c           
      &   d}| dk    rdnd}t           j                                        d gd t          d          D             z   d gz   }d t          d          D             t           j                                        d d gz   }t	          |          }t	          |          } t          ||           |g|R  }t          |t          j                  sJ |j	        t          k    sJ g }	t          ||          D ]{\  }
}|
||	                    |           |
j        s|j        r|	                    |           C|	                     t          |
d| vr| n	| dd                    |g|R             ||                                |	k    sJ d S )	NFr   Tc                 z    g | ]8}t           j                            d  t          d          D                       9S )c                 Z    g | ](}t          j                     t          j                     f)S r   r   r   s     r   r   z<test_predicates_vector_vector.<locals>.<listcomp>.<listcomp>U  )    FFF&-//6=??3FFFr   r   r    r$   s     r   r   z1test_predicates_vector_vector.<locals>.<listcomp>S  sT     
 
 
  $$FFU1XXFFF 
 
 
r   d   c                 z    g | ]8}t           j                            d  t          d          D                       9S )c                 Z    g | ](}t          j                     t          j                     f)S r   r   r   s     r   r   z<test_predicates_vector_vector.<locals>.<listcomp>.<listcomp>\  s)    !W!W!W6=??FMOO"D!W!W!Wr   r   r    r$   s     r   r   z1test_predicates_vector_vector.<locals>.<listcomp>[  sO     	 	 	 	  !W!WeTUhh!W!W!WXX	 	 	r   r   r   )r!   r"   r   r#   r   r   r9   r5   r   r   r   r,   appendis_emptyr   )r   r   r   empty_valueABvec_Avec_Br.   r/   r   bs               r   test_predicates_vector_vectorr  >  s     H*,,$$%K 
		!	!	#	#T*
 
 3ZZ	
 
 
	
 &	 	 	s	 	 	 
		!	!	#	#T40	1A
 OOEOOE!WUD!!%/$///Ffbj)))))<4HAq		  19	OOH%%%%Z 	1: 	OOK((((OOD6#5#54448DDQNNNN    ==??h&&&&&&r   r   )boundarycentroidconvex_hullenvelopeexteriorc                      d t          t                     } fdt          D             }t          ||          sJ d S )Nc                 8    g | ]}|t          |          nS r\   r   r   rs   r   r   s     r   r   z"test_unary_geo.<locals>.<listcomp>  ,    SSSAAM4   xSSSr   r   r]   r^   r2   r   r.   r/   r   s   `  @r   test_unary_geor  u  sR     HQFSSSSSSSSHFH-------r   representative_pointc                      d  t          t                                 } fdt          D             }t          ||          sJ d S )Nc                 H    g | ]}| t          |                      nS r\   r   r  s     r   r   z+test_unary_geo_callable.<locals>.<listcomp>  s5    UUUaam 4  """UUUr   r  r  s   `  @r   test_unary_geo_callabler    sX    HWQFUUUUU9UUUHFH-------r   )
differencesymmetric_differenceunionintersectionc                      d t           j                                        d g}t          |          dk     ret           j                            d t	          d          D                       }|j        r|                    |           t          |          dk     et          |          } t          t                     |          } fdt          t          |          D             }t          ||          sJ d S )N   c                 Z    g | ](}t          j                     t          j                     f)S r   r   r   s     r   r   z*test_binary_geo_vector.<locals>.<listcomp>  )    BBBAfmoov}/BBBr   r   c                 T    g | ]$\  }}|| t          |          |          n%S r\   r   )r   rs   qr   r   s      r   r   z*test_binary_geo_vector.<locals>.<listcomp>  O       Aq  !}4H  r   )r!   r"   r   r   r#   is_validr   r   r   r]   r,   r^   r2   )r   quadsr   Qr.   r/   r   s   `     @r   test_binary_geo_vectorr%    s    H%%''.E
e**r//''BBqBBB
 
 = 	LL e**r// 	UAWQa  F    	5))  H
 FH-------r   c                     d g }t          |          dk     ret          j                            d t	          d          D                       }|j        r|                    |           t          |          dk     e|d         }|t          j                                        fD ]5 t          t                               } fdt          D             }6t          ||          sJ d S )Nr   c                 Z    g | ](}t          j                     t          j                     f)S r   r   r   s     r   r   z*test_binary_geo_scalar.<locals>.<listcomp>  r  r   r   r   c                 J    g | ]}| t          |                    n S r\   r   )r   rs   r   r   r   s     r   r   z*test_binary_geo_scalar.<locals>.<listcomp>  sD     
 
 
GHq}GAtU###(
 
 
r   )r   r!   r"   r   r#   r"  r   r   r]   r^   r2   )r   r#  r   r   r.   r/   r   r   s   `     @@r   test_binary_geo_scalarr)    s    HE
e**q..''BBqBBB
 
 = 	LL e**q.. 	aAW%--//0 
 
!D!!%((
 
 
 
 
 
LU
 
 
 FH-------r   )	is_closedr"  r   	is_simplehas_zis_ringc                     d dk    r_t           dk     rTt          j        t                    5  t          j         d d d            n# 1 swxY w Y   t          }t          |          }nt          }t          }t          |           } dk    r fd|D             }n fd|D             }|
                                |k    sJ d S )NFr+  )r      r-  c                 F    g | ]}||j         t          |          nS r\   )r  r   r  s     r   r   z)test_unary_predicates.<locals>.<listcomp>  sC     
 
 
 !"!*2HGAth
 
 
r   c                 8    g | ]}|t          |          nS r\   r   r  s     r   r   z)test_unary_predicates.<locals>.<listcomp>  s,    RRRGAt$$$8RRRr   )r   rN   rO   r   r]   r+  triangle_no_missingr   r^   r   r   )r   valsVr.   r/   r   s   `    @r   test_unary_predicatesr5    s1    H{|f44]9%% 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	"QFy
 
 
 
 

 
 

 SRRRRTRRR==??h&&&&&&s   AAAc                     t           j                            g d          t           j                            g d          t           j                            g d          t           j                            g d          t           j                            d          d g} g d}t          |           j        }|	                                |k    sJ d S )N)r   r   r   r   r   r   )r7  r8  r9  r7  r'   )TFTFFF)
r!   r"   
LinearRing
LineStringr   r   loadsr   r-  r   )gr/   r.   s      r   test_is_ringr>    s    ##$=$=$=>>##$=$=$=>>##$E$E$EFF  !:!:!:;;/**	A 877H!__$F==??h&&&&&&r   arealengthc                 *    t           j        t          t                     }t	          |t           j                  sJ |j        t          j        d          k    sJ  fdt          D             }t           j        	                    ||           d S )Nr8   c                 8    g | ]}|t          |          nS r\   r   r  s     r   r   z$test_unary_float.<locals>.<listcomp>  r  r   )
r5   nanr   r]   r9   r   r   r^   r   assert_allcloser  s   `  @r   test_unary_floatrE    s    vHQFfbj)))))<28I......SSSSSSSSHJvx00000r   c                      t           j        } t          |           dgt          t                     dz
  z  d gz   k    sJ d S )Nr   r   )r]   	geom_typerL   r   )cats    r   test_geom_typesrI    s>    
+C99s1vvz2dV;;;;;;;r   c                      t           j                            g d          d t           j                            dd          g} t	          |           }|j        }t          |          g dk    sJ d S )Nr7  r   r   r8  r   r   )r   Nr)   )r!   r"   r   r)   r   rG  rL   )geomsGrH  s      r   test_geom_types_null_mixedrO  	  sw      !9!9!9::q!$$E 	UA
+C99222222222r   c                     dt           j        t          d t          t                                                 t          d d d                   } fdt          t          d d d         t                    D             }t           j	        
                    | |           t          d         t                                        } fdt          D             }t           j	        
                    | |           t                              t          j                                                  } gt          t                    z  }t           j	        
                    | |           d S )Ndistancer   c                 p    g | ]2\  }}|)|j         s"| |j         s t          |          |          n3S r\   r   r   r   rs   r}   r   r   s      r   r   z(test_binary_distance.<locals>.<listcomp>  s`        Aq Y!*Y!)qz) GAtQ	  r   r   c                 X    g | ]&}| |j         s t          |                    n'S r\   rS  r   rs   r   r   r}   s     r   r   z(test_binary_distance.<locals>.<listcomp>*  sM        %&II4(  r   )r5   rC  r   r   r]   rQ  r,   r^   r<   r   rD  r!   r"   r   r.   r/   r   r   r}   s     @@@r   test_binary_distancerX    sS   DvH xQx[!!!DDbD'**F     	$$B$00  H Jvx000 	q	AZZ]]F       H Jvx000 ZZ(002233FzCFF"HJvx00000r   c                     dd  t          t          d t          t                                       t          d d d                   } fdt	          t
          d d d         t                    D             }t          |           |k    sJ t          d          t          t                              } fdt
          D             }t          |           |k    sJ d S )Nrelater   c                 T    g | ]$\  }}|| t          |          |          n%S r\   r   rT  s      r   r   z&test_binary_relate.<locals>.<listcomp>=  r!  r   r   c                 J    g | ]}| t          |                    n S r\   r   rV  s     r   r   z&test_binary_relate.<locals>.<listcomp>F  s7    VVVqq} 4  ###(VVVr   )r   r   r   r]   r,   r^   r<   rL   rW  s     @@@r   test_binary_relater]  7  s    DH (WQxQx[$''$$B$00F    	$$B$00  H <<8#### 	q	AWQa  FVVVVVVIVVVH<<8######r   
normalizedTFc                 h    t           j        d gd t          t          t                    dz
            D             z   d gz   }t          |          }|                    t                     } fdt          t          |          D             }t           j	        
                    ||           d S )Nc                 z    g | ]8}t           j                            d  t          d          D                       9S )c                 Z    g | ](}t          j                     t          j                     f)S r   r   r$   s     r   r   z2test_binary_project.<locals>.<listcomp>.<listcomp>Q  r   r   r4   )r!   r"   r;  r#   r$   s     r   r   z'test_binary_project.<locals>.<listcomp>O  sT     
 
 
  ''FFU1XXFFF 
 
 
r   r4   r^  c                 P    g | ]"\  }}|||                     |          n#S )Nrb  )project)r   r}   liner   r^  s      r   r   z'test_binary_project.<locals>.<listcomp>Z  sQ        At AM LLzL222	  r   )r5   rC  r#   r   r   r   rd  r,   r<   r   rD  )r^  linesLr.   r/   r   s   `    @r   test_binary_projectrh  J  s    vH	
 
 3q66A:&&	
 
 
	
 &	 
 	UAYYqZY00F     65))  H Jvx00000r   	cap_style
join_style
resolution      c                 R    d  fdt           D             }t                              d           }t          ||          sJ t	          j        dgt          t                    z            }t                              |           }t          ||          sJ d S )Nc                 J    g | ]}||                     d          n S )Nr   rk  ri  rj  )buffer)r   r}   ri  rj  r   rk  s     r   r   ztest_buffer.<locals>.<listcomp>j  sX     	 	 	  } HH
iJ     	 	 	r   r   rp  )r<   r   rq  r2   r5   r   r   )rk  ri  rj  r/   r.   distr   s   ```   @r   test_bufferrs  e  s     H	 	 	 	 	 	 	 	 	 	H XX
iJ   F Hf-----8SECFFN##DXXyZ   F Hf-------r   c                      d t          d          D             } t          |           }|                    d          }d | D             }t          d t	          ||          D                       sJ d S )Nc                     g | ]K}t           j                            d  t          d          D                                           d          LS )c                 Z    g | ](}t          j                     t          j                     f)S r   r   r   s     r   r   z,test_simplify.<locals>.<listcomp>.<listcomp>  r  r   r   r&   )r!   r"   r   r#   rq  r$   s     r   r   z!test_simplify.<locals>.<listcomp>  s_         	  BBqBBB	
 	

&**  r   r&   r   c                 8    g | ]}|                     d           S )r   )simplifyr   rs   s     r   r   z!test_simplify.<locals>.<listcomp>  s"    111!

1111r   c              3   F   K   | ]\  }}|                     |          V  d S r\   rp   )r   r   r  s      r   rt   z test_simplify.<locals>.<genexpr>  ru   r   )r#   r   rx  rv   r,   )r^   r]   r.   r/   s       r   test_simplifyr{    s      r	  I 	YAZZ]]F11y111H==s8V'<'<==========r   c                     t           j                            g d          t           j                            g d          g} t          |           }t	          j        t          d          5  |                                }d d d            n# 1 swxY w Y   t           j                            g d          }|                    |          sJ |                    |	                                          sJ d S )NrK  r7  r   r   r8  z)The 'unary_union' attribute is deprecatedr   r7  r~  r8  rL  )
r!   r"   r   r   rN   r   DeprecationWarningunary_unionr-   	union_all)rM  rN  ur/   s       r   test_unary_unionr    s,     !9!9!9::  !9!9!9::E 	UA	"M
 
 
   MMOO              
 ''(H(H(HIIH88H88AKKMM"""""""s   -BBBc                     t           j                            g d          t           j                            g d          g} t          |           }|                                }t           j                            g d          }|                    |          sJ |                    d          }|                    |          sJ t          r4t          r-|                    d          }|                    |          sJ t          j	        t          d          5  |                    d	           d d d            d S # 1 swxY w Y   d S )
NrK  r}  r  coverage)methoddisjoint_subsetz Method 'invalid' not recognized.r   invalid)r!   r"   r   r   r  r-   r   r
   rN   rO   rP   )rM  rN  r  r/   u_cov
u_disjoints         r   test_union_allr    s     !9!9!9::  !9!9!9::E 	UA	A''(H(H(HIIH88HKKzK**E<<!!!!! +} +[[(9[::
  *****	z)K	L	L	L & &	9%%%& & & & & & & & & & & & & & & & & &s   !EE	E	zgrid_size, expectedr7  r&   r   r&   r&   )r   g?)gffffff@r   r   r   r   )r  )r   r   r  r  r7  c                     t          g d          t          g d          g}t          |          }|                    |           }|                    |          sJ d S )Nr  r  )	grid_size)r   r   r  r-   )r  r/   rM  rN  r  s        r   test_union_all_grid_sizer    so    " 	+++,,,,,--E 	UA	i((A88Hr   c                  >   t           j                            g d          t           j                            g d          g} t          |           }t	          j        t          d          5  |                    dd           d d d            d S # 1 swxY w Y   d S )NrK  r}  z0grid_size is not supported for method 'coverage'r   r  r   )r  r  )r!   r"   r   r   rN   rO   rP   r  )rM  rN  s     r   test_union_all_grid_size_errorr    s      !9!9!9::  !9!9!9::E 	UA	L
 
 
 4 4 	
:3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   -BBBz	attr, argaffine_transform)r   r   r   r   r   r   )	translater   )rotate)r&   )scaler   )skewr   c                       t          t                      } fdt          D             }t          ||          sJ d S )Nc                 h    g | ].}|(|j         s! t          t          j                  |gR  n|/S r\   )r   r   r!   affinity)r   rs   argr   s     r   r   z)test_affinity_methods.<locals>.<listcomp>  sY        :;aj' $''0C0000WX  r   r  )r   r  r.   r/   s   ``  r   test_affinity_methodsr    sg     WQs#F      H FH-------r   c                     t           j        t          j        } fdt          D             }t           j                            | |           t          j        } fdt          D             }t           j                            | |           d S )Nc                 &    g | ]}||j         nS r\   rG   r   r}   r   s     r   r   z#test_coords_x_y.<locals>.<listcomp>  #    CCCqq}(CCCr   c                 &    g | ]}||j         nS r\   rH   r  s     r   r   z#test_coords_x_y.<locals>.<listcomp>  r  r   )r5   rC  r   r:   r<   r   rD  r;   )r.   r/   r   s     @r   test_coords_x_yr    s    vHSFCCCCFCCCHJvx000SFCCCCFCCCHJvx00000r   c                  
   t           j        } d t          D             }t          j                            | |           d t          j                                        fD ]t}t          |g          }|j        } | j
        dk    sJ | j        dk    sJ t          j                            | t          j        t          j        gdz  g                     ut          g           }|j        } | j        dk    sJ | j        dk    sJ d S )Nc                 N    g | ]"}||j         s|j        nt          j        gdz  #S Nr   r   boundsr5   rC  ry  s     r   r   ztest_bounds.<locals>.<listcomp>  s=       HIajx!|  r   r4   r8   r   )r   r   )r]   r  r^   r5   r   rD  r!   r"   r   r   ndimr   r   rC  shape)r.   r/   r   Es       r   test_boundsr    s   XF MV  H Jvx000 w'//112 E E$  {a|y((((

""628bfX\N+C+CDDDD 	RAXF<6!!!!<9$$$$$$r   c            
         t           j        } t          j        d t          D                       }t          j        t          j        |d d df                   t          j        |d d df                   t          j        |d d df                   t          j        |d d df                   g          }t          j                            | |           g d gt          j
                                        gfD ]r}t          |          }|j        } | j        dk    sJ | j        dk    sJ t          j                            | t          j        t          j        gdz                       sd S )Nc                 N    g | ]"}||j         s|j        nt          j        gdz  #S r  r  ry  s     r   r   z%test_total_bounds.<locals>.<listcomp>  s0    XXX!)qz)1XXXr   r   r   r4   r   r8   r   )r]   total_boundsr5   r   r^   nanminnanmaxr   rD  r!   r"   r   r   r  r   rC  )r.   r  r/   rM  r  s        r   test_total_boundsr    sb   ^FXXXiXXX F xIfQQQTl##IfQQQTl##IfQQQTl##IfQQQTl##		
 H Jvx000 tfw/7799:; C C{a|y((((

""628RVHqL+A+ABBBBC Cr   c                  \   d t          d          D             } t          |           }||j        dk             }t          |t                    sJ |g d         }t          |          dk    sJ t          |t                    sJ d |D             g dk    sJ |dd d         }t          |          d	k    sJ t          |t                    sJ d
 |D             g dk    sJ |d         }t          |t          j        j                  sJ |	                    | d                   sJ d S )Nc                 N    g | ]"}t           j                            ||          #S r   rD   r   s     r   r   z test_getitem.<locals>.<listcomp>,  +    >>>qg$$Q**>>>r   r&   g333333?)r   r   r   r   c                     g | ]	}|j         
S r   rG   r|   s     r   r   z test_getitem.<locals>.<listcomp>5      AACr   r   r4   r   c                     g | ]	}|j         
S r   rG   r|   s     r   r   z test_getitem.<locals>.<listcomp>:  r  r   )r   r   r      	   )
r#   r   r?  r9   r   r   r!   r"   r)   r-   )r<   r   P2P3P4P5s         r   test_getitemr  +  sH   >>E"II>>>FVA	
16C<Bb-(((((	
999Br77a<<<<b-(((((			))))	
14a4Br77a<<<<b-(((((////	
1Bb'*01111199VAYr   item)r7  )r4   r   )r4   r4   )r   r4   r"   c                     d t          d          D             }t          |          }| |dg<   t          |d         t          j        j                  sJ d S )Nc                 N    g | ]"}t           j                            ||          #S r   rD   r   s     r   r   z test_setitem.<locals>.<listcomp>P  r  r   r&   r   )r#   r   r9   r!   r"   r   )r  r<   r   s      r   test_setitemr  A  s[     ?>E"II>>>FVAAqcFadG,45555555r   c            	      j   t          j        t                    5  t          d d         t          d d         k    } d d d            n# 1 swxY w Y   t	          t
          d         t
          d         t
          d         g          }t	          t
          d         t
          d         t
          d         g          }||k    }|                                g dk    sJ ||k    }|                                g dk    sJ t          j        	                    t          j        
                    dddd          t          j        
                    ddd	d	          g          }t	          t
          d         t
          d         t
          d         |g          }||k    }|                                g d
k    sJ d S )Nr   r  r   r4   r   r   )TFT)FTFr   )FFFT)rN   rO   rP   r   r   r<   r   r!   r"   r   r   )r%   a1a2r   r   a3s         r   test_equality_opsr  X  s   	z	"	"  bqbEQrrUN               
vay&)VAY7	8	8B	vay&)VAY7	8	8B
(C::<<.......
(C::<</////// !..				aAq	)	)7+;+?+?1a+K+KL J 
vay&)VAY
C	D	DB


C::<<666666666s   !AAAc                  f    dt          t                    v sJ dt          t                    v sJ d S )Nr   r   )dirr   r   r   r   test_dirr  o  s6    QQr   c                      t          t                    } |                     | j                                                  sJ d S r\   )r   r2  r   r  rv   )r]   s    r   test_chainingr  t  s<    ())A::aj!!%%'''''''r   c                     dd l } |                     |                     t                              }|d         J |d         j        sJ t          d d                             |d d                                                   sJ d S )Nr   r   )pickler<  dumpsr]   r   r   rv   )r  T2s     r   test_pickler  z  s    MMM	fll1oo	&	&Bb6>>>b6?SbS6b"g&&**,,,,,,,r   c                  Z   t          j        t                    5 } t                              t
                     d d d            n# 1 swxY w Y   dt          | j                                                  v sJ dt          | j                  v sJ dt          | j                  v sJ d S )Nlengths1221)	rN   rO   rP   r]   r   r   r   valuelower)infos    r   test_raise_on_bad_sizesr    s    	z	"	" d	

1               DJ--//////3tz??""""3tz??""""""s    AA
A
c            	         t           j                            t           j                            dddd          t           j                            dddd          g          } t	          | g          }|                    d          }|                     d          g}t          ||           |                    t          j        dg                    }t          ||           d S )Nr   r   r   r   )	r!   r"   r   r   r   rq  r2   r5   r   )r   r   r.   r/   s       r   test_buffer_single_multipolygonr    s    !..				aAq	)	)7+;+?+?1a+K+KL J 
|
$
$CZZ]]F!!!$$%HVX&&&ZZ!&&FVX&&&&&r   c            	         t           j                            t           j                            dddd          t           j                            dddd          g          } t	          | g          }|                    t                    }t          |d         t                    sJ |d         | j        k    sJ |                    t                    }t          |d         t           j        j
        j                  sJ |                    t          j        d                    }|j        t          j        d          k    sJ |d         | j        d d         k    sJ d S )Nr   r   r   r   U10r&   )r!   r"   r   r   r   r7   r   r9   r   r   baseBaseGeometryr5   r   )r   r   r.   s      r   test_astype_multipolygonr    s3   !..				aAq	)	)7+;+?+?1a+K+KL J 
|
$
$CZZ__FfQi%%%%%!9
&&&& ZZFfQi!1!6!CDDDDD ZZ((F<28E??****!9
ss+++++++r   zpyproj not installed)reasonc                      t                                           } d| _        t          | t                     du sJ t          | |           du sJ t          | t           d          du sJ d S )N  FT)
allow_none)r]   copycrsr   t1s    r   test_check_crsr    sr    	
BBFb!%%%%b"%%%%b!---555555r   c                  .   t                                           } t                                           }d| _        d|_        t          j        t
          d          5  t          | |           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          t           |           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          | t                      d d d            d S # 1 swxY w Y   d S )Nr    zCRS mismatch between the CRSr   )r]   r  r  rN   r   UserWarningr   )r  t2s     r   test_crs_mismatch_warnr    s   	
B	
BBFBF 
k)G	H	H	H # #2r"""# # # # # # # # # # # # # # # 
k)G	H	H	H " "1b!!!" " " " " " " " " " " " " " " 
k)G	H	H	H " "2q!!!" " " " " " " " " " " " " " " " " "s6   A99A= A=CCC'D

DDzpyproj installedc                      t          j        t          d          5  t                                          } d| _        d d d            n# 1 swxY w Y   | j        J d S )Nz(Cannot set the CRS, falling back to Noner   r  )rN   r   r  r]   r  r  rs   s    r   test_missing_pyprojr    s    	k)S	T	T	T  FFHH               5=====s   !A		AANAc                 V    t                                           }| |d<   |d         J d S r   )r]   r  )r  r  s     r   	test_isnar    s)    	
BBqEa5=====r   c                  j    t                                           } t          j        | d<   | d         J d S r   )r]   r  rI   r  r  s    r   test_isna_pdNAr    s+    	
BEBqEa5=====r   c                  $   t                                           } d| _        |                     d          j        | j        k    sJ |                     d          j        | j        k    sJ |                     d          j        | j        k    sJ d S )Nr  r   r   r   )r]   r  r  shiftr  s    r   test_shift_has_crsr    sy    	AAE771::>QU""""771::>QU""""772;;?ae######r   c                      t                                           } d| _        |                                 j        | j        k    sJ d S )Nr  )r]   r  r  uniquer  s    r   test_unique_has_crsr    s9    	AAE88::>QU""""""r   c                      t                                           } d| _        t          j        t
          d          5  |                     d           d d d            d S # 1 swxY w Y   d S )Nr  z+The 'pyproj' package is required for to_crsr   r  )r]   r  r  rN   rO   ImportErrorto_crsr  s    r   test_to_crs_pyproj_errorr    s    	AAE	H
 
 
   	
                 s   AA#&A#c                      t          j        t          d          5  t                                           d d d            d S # 1 swxY w Y   d S )Nz5The 'pyproj' package is required for estimate_utm_crsr   )rN   rO   r  r]   estimate_utm_crsr   r   r   "test_estimate_utm_crs_pyproj_errorr	    s    	R
 
 
   	
                 s   AA
Ac                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestEstimateUtmCrsc                     t           j                            dd          | _        t           j                            dd          | _        t          | j        | j        gd          | _        d S )Ng&SRg):_D@gYڂRg ~:XD@z	epsg:4326r  )r!   r"   r)   esbsolr   	landmarksri   s    r   setup_methodzTestEstimateUtmCrs.setup_method  sW    #))(G<<#))(G<<%tx&:LLLr   c                     t          j        d          }| j                                        |                    d          k    sJ | j                            d          |                    d          k    sJ d S )Npyproj
EPSG:32618NAD83z
EPSG:26918)rN   importorskipr  r  CRSrd   r  s     r   !test_estimate_utm_crs__geographicz4TestEstimateUtmCrs.test_estimate_utm_crs__geographic  sp    $X..~..00FJJ|4L4LLLLL~..w776::l;S;SSSSSSSr   c                     t          j        d          }| j                            d                                          |                    d          k    sJ d S )Nr  z	EPSG:3857r  )rN   r  r  r  r  r  r  s     r    test_estimate_utm_crs__projectedz3TestEstimateUtmCrs.test_estimate_utm_crs__projected  sd    $X..~$$[11BBDD

I
 I
 
 
 
 
 
 
r   c                 &   t          j        d          }t          t          j                            dd          t          j                            dd          gd          }|                                |                    d          k    sJ d S )	Nr  gqsH:AgaQSAg_ QAg.pk`Az	EPSG:3851r  z
EPSG:32760)rN   r  r   r!   r"   r)   r  r  )rd   r  antimeridians      r   #test_estimate_utm_crs__antimeridianz6TestEstimateUtmCrs.test_estimate_utm_crs__antimeridian  s    $X..# &&'8:LMM &&'8:KLL 
 
 
 ,,..&**\2J2JJJJJJJr   c                    t          j        d           t          j        t          d          5  t	          t
          j                            g d          gd                                           d d d            d S # 1 swxY w Y   d S )Nr  zUnable to determine UTM CRSr   )r   Z   )r   r!  )r4   r!  z	EPSG:4326r  	rN   r  rO   RuntimeErrorr   r!   r"   r   r  ri   s    r   $test_estimate_utm_crs__out_of_boundsz7TestEstimateUtmCrs.test_estimate_utm_crs__out_of_bounds  s    H%%%]</LMMM 	! 	!!))*E*E*EFFG[     	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   ABBBc                    t          j        d           t          j        t          d          5  t	          t
          j                            g d          g                                           d d d            d S # 1 swxY w Y   d S )Nr  zcrs must be setr   r   r"  ri   s    r   "test_estimate_utm_crs__missing_crsz5TestEstimateUtmCrs.test_estimate_utm_crs__missing_crs'  s    H%%%]</@AAA 	! 	!!))*E*E*EFFG    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   AA??BBN)	rk   rl   rm   r  r  r  r  r$  r&  r   r   r   r  r     sw        M M M
T T T
 
 

K 
K 
K! ! !! ! ! ! !r   r  c                      t          j        g           j        j        } |                     dd          t          j        dgt                    k    sJ |                     dd          sJ d S )Nr  rv   T)keepdimsr   F)rK   GeoDataFramer"   r   _reducer5   r   )r   s    r   test_reduce_keepdimsr+  0  so    

 "
-
-
-
6
<C;;ut;,,$v0N0N0NNNNN;;uu;-------r   )nr   r   numpyr5   pandasrI   r!   shapely.affinityshapely.geometryshapely.wkbshapely.wktr   r   r   shapely.geometry.baser   r   rK   geopandas._compatr   r	   r
   geopandas.arrayr   r   r   r   r   r   r   r   r   rN   r#   r2  r   r<  r^   r]   r   r<   r   r2   r=   rZ   r_   rw   r   r   r   r   markparametrizer   r   r   r   r   r  r  r  r%  r)  r5  r>  rE  rI  rO  rX  r]  rh  roundsquarebevelrs  r{  r  r  r  r  r  r  r  r  r  r)  r"   	GeoSeriesr   r  r  r  r  r  r  r  r  skipifr  r  r  rC  r  r  r  r  r  r	  r  r+  r   r   r   <module>r<     s&
                              7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7     D D D D D D D D D D
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  U2YY     7;#4#4_#E#Et"LL	L FKeBii    
dV	#L  
# 
# 
#"& "& "&J* * *
> > >&     6* * *  $  $ (899!  !  :9! H  $
 
 
4 4 4    + + +2    %' %' %'P 
  
 
. .
 
. "8!9::. . ;:. 
KKK . . ., 
KKK . . ., 
   ' ' '2' ' ' &(!3441 1 541< < <
3 
3 
31 1 1B$ $ $& e}551 1 6514 y	8H&IJJ
(8*:J'KLLBx00. . 10 ML KJ.0> > ># # # & & &,  LG77788G88899 	
 
GG???@@A   
4 
4 
4 	00023	 	. .	 	.1 1 1% % %,C C C0     , 
	&../O/O/OPPQ	
 	
 	
 		%%&F&F&FGGH	
 	
 	'"**+K+K+KLLMNN			!	!"B"B"B	C	CD  !A!A!ABB
 6 6 67 7 7.     
( ( (- - -# # #
' 
' 
', , ,( 
N+ABB6 6 CB6 
N+ABB" " CB"& J'9::  ;: bf~..  /.  $ $ $# # # J'9::  ;: J'9::  ;:-! -! -! -! -! -! -! -!`. . . . .r   