
    jj,u                        S SK r S SKr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Jr  S SKrS SKJr  S SKJrJr  S SKJr  S SKrS SKJrJr  S SKJr  S SKJrJr  \R>                  S	 5       r \R>                  S
 5       r!S r"\RF                  RI                  \RJ                  S:  SS9S 5       r&S r'S r(S r)S r*S r+S r,S r-S r.S r/S r0S r1S r2S r3\RF                  Ri                  S5      S 5       r5S r6S  r7S! r8S" r9S# r:S$ r;S% r<\RF                  R{                  S&S\R|                  /5      S' 5       r?S( r@S) rAS* rBS+ rCS, rD\RF                  R                  S-S.9S/ 5       rF\RF                  R                  S-S.9S0 5       rGS1 rHS2 rIS3 rJ\RF                  R{                  S4SS5/5      \RF                  R{                  S6S7S8/5      S9 5       5       rKS: rLS; rM\RF                  RI                  \R                  S<S9S= 5       rO\RF                  R{                  S4SS5/5      S> 5       rPS? rQS@ rRSA rSSB rTSC rUSD rVSE rWSF rXSG rYSH rZg)I    N)Version)GeometryCollection
LinearRing
LineStringPoint)GeoDataFrame	GeoSeries)from_shapely)assert_geodataframe_equalassert_geoseries_equal)assert_array_equal)assert_frame_equalassert_series_equalc            
          [        [        [        S5      [        S5      5       V Vs/ s H  u  p[        X5      PM     snn 5      $ s  snn f )N   )r	   zipranger   )xys     f/var/www/html/Sattelite-Image/venv/lib/python3.13/site-packages/geopandas/tests/test_pandas_methods.pysr      s6    c%(E!H.EF.EdaeAk.EFGGFs   A
c            	          [        [        S5       V s/ s H  n [        X 5      PM     sn [        R                  " SSS9[        R
                  " / SQSS9S.5      $ s  sn f )Nr   int64dtype      r   geometryvalue1value2)r   r   r   nparangearrayr   s    r   dfr'      sM    .3Ah7hqh7ii1hhy8	
 7s   Ac                 t    S[        U 5      ;   d   eS[        U5      ;   d   eSUR                  5       ;   d   eg )NPOINT)repr_repr_html_r   r'   s     r   	test_reprr-   &   s;    d1gd2hbnn&&&&    )r   	   r   zrequires GEOS>=3.9)reasonc                     [        SS5      n [        SS5      n[        XS /5      nS[        U5      ;   d   e[        X/SS9nS[        U5      ;   d   e[        SS5      n [        S	S	5      n[        XS /5      nS
[        U5      ;   d   e[        X/SS9nS
[        U5      ;   d   eS[        R                  l        S[        U5      ;   d   eS[        R                  l        S[        U5      ;   d   eg )Ngrn5?$@gnI@gtk~@gc97ݚ4@zPOINT (10.12346 50.12346)  crsgsn5?p@gsn5?@@zPOINT (3000.123 3000.123)i  r   zPOINT (10.1 50.1)r/   z!POINT (10.123456789 50.123456789))r   r	   r*   	geopandasoptionsdisplay_precision)p1p2s1s3s2s4s         r   !test_repr_boxed_display_precisionr>   ,   s     
|\	*B	{L	)B	BD>	"B&$r(222 
B8	&B&$r(222 
~~	.B	~~	.B	BD>	"B&$r(222 
B8	&B&$r(222*+I'$r(****+I'.$r(:::r.   c                      [        / SQ5      n S[        U 5      ;   d   e[        / SQU S.5      nS[        U5      ;   d   eSUR                  5       ;   d   eg )NNNNNoner   r   r   ar    r    r	   r*   r   r+   r,   s     r   test_repr_all_missingrF   I   sU    $%AT!W	I15	6BT"X))))r.   c                      [        / 5      n [        U 5      S:X  d   e[        / U S.5      nS[        U5      ;   d   eSUR                  5       ;   d   eg )NzGeoSeries([], dtype: geometry)rC   zEmpty GeoDataFramer    rE   r,   s     r   test_repr_emptyrH   R   sT    "A76666	BA.	/B48+++))))r.   c                      [        [        / SQ5      /5      n S[        U R                  S   5      ;   d   eS[        U 5      ;   d   e[        [	        / SQ5      [	        / SQ5      /5      nS[        U5      ;  d   eg )N)r   r   r   r   r   
LINEARRINGr   )rJ   rK   rL   rJ   )r	   r   strilocr   )r   r<   s     r   test_repr_linearringrQ   \   sz     	:789:A3qvvay>)))3q6!!! 
0189	

B s2w&&&r.   c                 *   [        SS5      nU S   U:X  d   eU R                  S   U:X  d   eU R                  S   U:X  d   eUR                  S   U:X  d   eUR                  S   U:X  d   e[        [        SS5      [        SS5      /SS/S9n[	        U R                  SS/   U5        [	        U R                  SS/   U5        [	        U R                  SS/5      U5        [	        UR                  SS/S4   U5        [        UR                  SS/S4   USSS	9  [        [        SS5      [        SS5      /SS/S9n[        R                  " / S
Q5      n[	        X   U5        [	        U R                  U   U5        [	        X   S   U5        [	        UR                  US4   U5        / SQU l	        [        [        SS5      [        SS5      /SS/S9n[        U SS  U5        [        U R                  SS  U5        [        U R                  SS  U5        g )Nr   )r   r    )r   r   r   r   indexr    F)check_series_typecheck_namesTFTrB   r   )
r   locrP   r	   r   reindexr   r#   r%   rT   )r   r'   expmasks       r   test_indexingr\   n   s   
1+CQ43;;558s??66!966- C'''774=C U1a[%1+.q!f
=C155!Q=#.1661a&>3/199aV,c22661a&*"45s;
A	C5e
 U1a[%1+.q!f
=C88'(D17C(155;,28J/5266$
"23S9 AG
U1a[%1+.q!f
=C!"s#qr
C(ab	3'r.   c                    U R                  / SQ5      n[        [        SS5      [        SS5      S // SQS9n[        X#5        UR                  / SQS9n[        UR                  U5        UR                  SS/S9n[        U[        5      (       d   e[        UR                  [        5      (       d   e[        X!SS/   5        UR                  SS/S9n[        U5      [        R                  L d   e[        X!SS/   5        g )	NrB   r   r   rS   r!   r    columnsr"   )rY   r	   r   r   r    
isinstancer   r   typepd	DataFrame)r   r'   resrZ   s       r   test_reindexre      s    
))I
C
U1a[%1+t4I
FC3$ **9*
%C3<<- **h
3*
4Cc<((((cllI....s*567
**h1*
2C9$$$s(345r.   c                    [         R                  " SS/5      nU R                  U5      nU R                  SS/   n[	        U[
        5      (       d   e[        X45        UR                  USS9nUR                  SS/S S 24   n[	        U[        5      (       d   e[        X45        UR                  / SQS9nUR                  USS9nUSS/   n[	        U[        5      (       d   e[        X45        UR                  [         R                  " SS/5      SS9nUSS	/   n[	        U[        R                  5      (       d   e[        X45        g )
Nr   r   axisr!   r"   r    r^   r   r!   r    r"   )r#   r%   takerP   r`   r	   r   r   r   rY   rb   rc   r   )r   r'   indsresultexpecteds        r   	test_takern      s0   88QFD VVD\Fvvq!f~Hfi((((6, WWTW"Fww1vqy!Hfl++++f/ 
<	=BWWTW"F8Z()Hfl++++f/WWRXXq!f%AW.F8X&'Hfbll++++v(r.   c                 0   [         R                  " / SS9n[        R                  " S[	        U5      S9Ul        UR                  USS9n[        U[        5      (       d   eUR                  S:X  d   e[        UR
                  [        R                  5      (       d   eUR                  US   S	:     XS   S	:     4 HW  n[        U[        5      (       d   eUR                  S:X  d   e[        UR
                  [        R                  5      (       a  MW   e   g )
Nr   r   z
2012-01-01)periodsr   rg   )r   r   r!   d   )r#   r%   rb   
date_rangelenrT   rj   r`   r   shapeDatetimeIndexrX   )r   r'   rk   rl   s       r   test_take_emptyrv      s     88Bg&D }}\3r7;BHWWTW"Ffl++++<<6!!!fllB$4$45555 66"X,,-rX,2D/EF&,////||v%%%&,,(8(89999 Gr.   c                 `   [        [        SS5      [        SS5      [        SS5      /5      nU R                  5       n[        SS5      US'   [        X25        U R                  5       n[        SS5      UR                  S'   [        X25        U R                  5       n[        SS5      UR
                  S'   [        X25        UR                  5       n[        SS5      UR                  S'   [        US   U5        UR                  5       n[        SS5      UR
                  S'   [        US   U5        g )N
   r   r   r   r   r    r    rJ   )r	   r   copyr   rX   rP   )r   r'   rZ   r<   df2s        r   test_assignmentr|      s    
U2r]E!QKq!=
>C	
B"bMBqE2#	
Bb"BFF1I2#	
Br2BGGAJ2#
'')C"2r]CGGM3z?C0
'')C2r]CHHTN3z?C0r.   c                     U R                  SS9nU R                  5       nSUS'   [        U[        5      (       d   e[	        X5        g )Nr   )newr~   )assignrz   r`   r   r   r'   rd   rZ   s      r   test_assignr      sA    
)))
C
'')CCJc<((((s r.   c                    [         R                  " [        5         U R                  [        5        S S S 5        U R                  [
        5      S   S:X  d   eU R                  [        5      n[        [        R                  5      [        S5      :X  dr  [        [        R                  5      [        S5      :X  dL  [        U[        R                  5      (       a  [        U[        5      (       a   eUR                  [        :X  d   eUR                  S5      nUR                  S[        05      n[        U[         5      (       d   eUR                  [
        5      n[        U[        R"                  5      (       a  [        U[         5      (       a   eUR                  S[
        05      n[        U[        R"                  5      (       a  [        U[         5      (       a   eUR                  [        5      n[        U[        R"                  5      (       a  [        U[         5      (       a   eUS   R                  [        :X  d   eg ! , (       d  f       GN= f)Nr   zPOINT (0 0)z2.1.0z2.1.1	geom_listr!   )pytestraises	TypeErrorastypeintrO   objectr   rb   __version__r`   Seriesr	   r   rename_geometryfloatr   rc   )r   r'   rd   s      r   test_astyper      s   	y	!	 
" 88C=},,,
((6
C		 GG$4	4BNN#ww'77 #ryy))*S)2L2LLLyyF"""			K	(B ))Xu%
&Cc<(((( ))C.Cc2<<((C1N1NNN
))[#&
'Cc2<<((C1N1NNN
))F
Cc2<<((C1N1NNN{!!V+++; 
"	!s   I  
Ic                      [        / SQ/ SQS.5      n U R                  [        5      n[        U[        R
                  5      (       a  [        U[         5      (       a   eUS   R                  [        :X  d   eg )NrB   )         rD   brD   )r   r   r   r`   rb   rc   r   )r'   rd   s     r    test_astype_invalid_geodataframer     sZ     
II6	7B
))F
Cc2<<((C1N1NNNs8>>V###r.   c                    U R                  5       n[        [        R                  " U 5      R                  5       U R                  U R
                  R                  S9n[        X!5        U / SQ   R                  5       n[        U/ SQ   U5        [        R                  (       a  U R                  SS9R                  S5      n[        [        R                  " U5      R                  5       UR                  UR
                  R                  S9nUR                  5       n[        XV5        U/ SQ   R                  5       n[        U/ SQ   U5        g g )Nr4   r    ri   r2   )epsgpoints)r!   r"   r   )convert_dtypesr   rb   rc   r4   r    namer   compat
HAS_PYPROJset_crsr   )r'   res1	expected1res2r{   	expected2res3res4s           r   test_convert_dtypesr   "  s   
 D
R'')rvv@P@PI
 i. ./>>@Di(HI4Pjjdj#33H= LL,,.CGGcllFWFW
	 !!#!)2 12AAC!),J"KTR r.   c                 n    SR                  S[        R                  5      nU R                  SS9U:X  d   eg )NzGgeometry,value1,value2
POINT (0 0),0,1
POINT (1 1),1,2
POINT (2 2),2,1

FrS   )replaceoslinesepto_csv)r'   rZ   s     r   test_to_csvr   B  s5    UgdBJJ  9959!S(((r.   z;ignore:Dropping of nuisance columns in DataFrame reductionsc                 h   [         R                  " SS/SS/S9nUR                  SS9n[        X25        [        R
                  " [        5         U R                  5         S S S 5        [        R
                  " [        5         U R                  5         S S S 5        [        R
                  " [        [        45         U R                  5         S S S 5        [        R
                  " [        5         US-     S S S 5        [        R
                  " [        5         U S-     S S S 5        US	:H  n[         R                  " S
UR                  UR                  S9n[        X25        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)Nr   r   r!   r"   rS   Tnumeric_onlyr   rq   F)rT   r_   )rb   r   sumr   r   r   r   max
ValueErroridxmaxrc   rT   r_   r   )r   r'   rZ   rd   s       r   test_numerical_operationsr   I  s   
 ))QF8X"6
7C
&&d&
#C! 
y	!	 
" 
y	!	 
" 
	:.	/	
 
0
 
y	!
Q 
" 
y	!	A 
" )C
,,uBHHbjj
ACs ) 
"	! 
"	! 
0	/
 
"	! 
"	!s<   EE0:F-FF#
E-0
E>
F
F #
F1c                     U R                  [        R                  " / SQ5      5      n[        [	        SS5      S [	        SS5      /5      n[        X5        g )NrW   r   r   )wherer#   r%   r	   r   r   )r   rd   rZ   s      r   
test_wherer   j  s?    
''"((./
0C
U1a[$a4
5C!r.   c                 d    U R                  [        R                  /S9nU SS/   n[        X5        g )N)includer!   r"   )select_dtypesr#   numberr   r   s      r   test_select_dtypesr   p  s2    


BII;

/C
h!
"Cs r.   c                    U R                  5       nU R                  U5      SL d   eS UR                  S'   U R                  U5      SL d   eUR                  5       nUR                  U5      SL d   e[        SS5      UR                  S'   UR                  U5      SL d   eUR                  5       nSUR                  S'   UR                  U5      SL d   eg )NTr   Frx   ry   r   r!   )rz   equalsrP   r   rX   )r   r'   r<   r{   s       r   test_equalsr   v  s    	
B88B<4BGGAJ88B<5   
'')C99S>T!!!"2r]CGGM99S>U"""
'')CCGGK99S>U"""r.   c                    [        [        SS5      S [        SS5      /5      nUR                  [        SS5      5      n[        X05        UR                  [        R
                  5      n[        X25        UR                  5       nX$S'   UR                  [        SS5      5      n[        X15        [        R                  " [        [        45         UR                  S5        S S S 5        UR                  5       n[        R
                  UR                  S'   UR                  S5      n[        UR                  SS05      U5        g ! , (       d  f       Nj= f)Nr   r   r   r    r   r!   r   )r	   r   fillnar   r#   nanrz   r   r   r   NotImplementedErrorr   rX   r   )r   r'   r<   rd   r{   df3s         r   test_fillna_scalarr     s    	E!QKuQ{3	4B
))E!QK
 C3" ))BFF
C3# '')C
O
**U1a[
!Cc&	+Y7	8

1 
9
 '')C66CGGK
**Q-Ccjj(G)<=rB 
9	8s   E
Ec                    [        [        SS5      S [        SS5      /5      nUR                  [        [        SS5      /S-  5      5      n[        X 5        / SQnUR                  [        U Vs/ s H  n[        XD5      PM     snUS95      n[        X 5        UR                  [        [        SS5      /S/S95      n[        X 5        UR                  [        [        SS5      /S/S95      n[        X!5        g s  snf )Nr   r   r   r   )r   r   r   rS   r/   )r	   r   r   r   )r   r<   rd   rT   is        r   test_fillna_seriesr     s    	E!QKuQ{3	4B ))IuQ{ma/0
1C3" E
))IE:EquQ{E:%H
IC3" ))IuQ{mA37
8C3" ))IuQ{mA37
8C3# ;s   .C9c                     [        [        SS5      S [        SS5      /5      nUR                  nUR                  [        SS5      SS9  [	        X5        [
        R                  (       a  UR                  UL d   eg g )Nr   r   r   T)inplace)r	   r   r%   r   r   r   PANDAS_GE_21)r   r<   arrs      r   test_fillna_inplacer     sd    	E!QKuQ{3	4B
((CIIeAqk4I(2!xx3 r.   c                      [        [        SS5      S [        SS5      /5      n U R                  5       nU R                  SS/   n[	        X5        g Nr   r   )r	   r   dropnarX   r   )r<   rd   rZ   s      r   test_dropnar     sC    	E!QKuQ{3	4B
))+C
&&!Q.C3$r.   NAc                    [        [        SS5      U [        SS5      // SQSS9n[        R                  " / SQ/ SQSS9nUR	                  5       n[        U5      [        R                  L d   e[        X25        UR                  5       n[        X25        UR                  5       n[        X2) 5        UR                  5       n[        X2) 5        g )Nr   r   )r   r   r   ttrT   r   )FTF)
r	   r   rb   r   isnullra   r   isnanotnullnotna)r   r<   rZ   rd   s       r   	test_isnar     s    	E!QKU1a[1	NB
))(	
EC
))+C9		!!!!
'')C!
**,CT"
((*CT"r.   c                     [        / 5      n [        U [        SS5      /5      nUR                  5       (       a   eUR	                  5       (       d   e[        [        SS5      [        SS5      /5      nUR                  5       (       d   eUR	                  5       (       d   e[        X /5      nUR                  5       (       a   eUR	                  5       (       a   eg )Nr   )r   r	   r   allany)emptyr   s     r   test_any_allr     s    r"E5%1+&'Auuww;5577N75A;a,-A5577N75577N75.!Auuww;uuww;wr.   c                     [        [        SS5      [        SS5      [        SS5      /5      n U R                  5       nUR                  R	                  5       / SQ:X  d   eU R                  SS9nUR                  R	                  5       / SQ:X  d   e[        U R                  S S R                  5       U R                  S S 5        g )Nr   r   r   r   r   F	ascending)r   r   r   )r	   r   sort_valuesrT   tolistr   rP   )r   rd   r   s      r   test_sort_valuesr     s    5A;aU1a[9:A
--/C99***==5=)D::)+++ 166"1:113QVVBQZ@r.   c            	         [        [        SS5      S [        5       [        SS5      /5      n U R                  5       nUR                  R	                  5       / SQ:X  d   eU R                  SS9nUR                  R	                  5       / SQ:X  d   eU R                  SS9nUR                  R	                  5       / S	Q:X  d   eU R                  SSS
9nUR                  R	                  5       / SQ:X  d   e[        / SQ5      n U R                  5       nUR                  R	                  5       / SQ:X  d   e[        [        5       [        5       [        5       /5      n U R                  5       nUR                  R	                  5       / SQ:X  d   e[        [        5       S [        5       /5      n U R                  5       nUR                  R	                  5       / SQ:X  d   eg )Nr   r   )r   r   r   r   Fr   )r   r   r   r   first)na_position)r   r   r   r   )r   r   )r   r   r   r   r@   )r   r   r   r   )r	   r   r   rT   r   )r   rd   s     r   test_sort_values_empty_missingr     s}   5A;eguQ{;<A
--/C99--- --%-
(C99--- --G-
,C99--- --%W-
=C99--- 	$%A
--/C99***57EGUW-.A
--/C99***57D%'*+A
--/C99***r.   c                      [        [        SS5      [        SS5      [        SS5      /5      n [        [        SS5      [        SS5      /5      n[        U R	                  5       U5        g r   )r	   r   r
   r   unique)r   rZ   s     r   test_uniquer     sP    5A;aU1a[9:A
aU1a[1
2Cqxxz3'r.   c            
         [        [        SS5      [        SS5      [        SS5      /5      n U R                  5       nSn[        R                  " SS/[        [        SS5      [        SS5      /5      US9n[        X5        [        [        SS5      [        SS5      [        SS5      /SS9nUR                  5       n[        XS5        [        R                  (       ae  UR                  5       R                  R                  R                  c   eUR                  5       R                  R                  R                  S:X  d   e[        [        SS5      [        SS/SS//5      [        SS5      /5      nUR                  5       n[        [        SS5      [        SS/SS//5      /5      n[        R                  " SS/XS9n	[        Xy5        [        [        SS5      S [        SS5      /5      n
U
R                  SS	9n[        R                  " S/[        [        SS5      /5      US9n[        X5        [        R                  " SS/[        [        SS5      S /5      US9nU
R                  S
S	9n[        X5        g )Nr   r   countr   r   	EPSG:4326r3   T)r   F)r	   r   value_countsrb   r   r
   r   r   r   rT   r%   r4   r   )r   rd   r   rZ   r<   r   r;   r   rT   exp3r=   r   exp4_dropnaexp4_keepnares4_keepnas                  r   test_value_countsr   !  s   5A;aU1a[9:A
..
CD
))QF,aU1a[/I"JQU
VC!	E!QKq!eAqk:	LB??D" &&,,00<<< &&,,00K??? 
E!QKaVaV,<!=uQ{K	LB??D%1+zAq6Aq62B'CDEE99aV54D# 
E!QKuQ{3	4B??$?'D))QC|U1a[M'BNK*))QF,aT7J*KRVWK////K1r.   F)strictc                      [        [        SS5      [        SS5      /5      n U R                  5       n[        U5      S:X  d   eg )Nr   r   )r	   r   drop_duplicatesrs   )dupsdroppeds     r   test_drop_duplicates_seriesr   B  s?     eAqk5A;/0D""$Gw<1r.   c            	      
   Sn [        [        U 5       Vs/ s H  n[        SS5      PM     sn[        U 5      S.5      nUR                  SS9n[	        U5      S:X  d   eUR                  5       n[	        U5      U :X  d   eg s  snf )Nr   r   )r    r!   r    )subsetr   )r   r   r   r   rs   )gdf_len_dup_gdfdropped_geometrydropped_alls        r   test_drop_duplicates_framer  M  s     G+0>:>aeAqk>:eGnUG ..j.A A%%%))+K{w&&& ;s   B c                 
   U R                  S5      R                  5       n[        R                  " SS/SS/SS/S.5      R	                  S5      n[        X5        U R                  S5      R                  SS9n[        R                  " SS/SS/S.SS	9R	                  S5      n[        X5        U R                  S5      S
   R                  S 5      n[        [        R                  R                  SS/5      [        SS5      /[        R                  " SS/SS9S
S9n[        X5        U R                  S5      S
   R                  S 5      n[        R                  " SS/[        R                  " SS/SS9S
S9n[        X5        g )Nr"   r   r   r   Tr   )r!   r"   r   r   r    c                 "    U R                  5       $ N	union_allr&   s    r   <lambda>test_groupby.<locals>.<lambda>k  s
    1;;=r.   rJ   r   r   r   r   c                 6    U R                  5       R                  $ r  )r
  arear&   s    r   r  r  u  s    1;;=;M;Mr.           )groupbyr   rb   rc   	set_indexr   r   applyr	   shapelyr    
MultiPointr   Indexr   r   r   s      r   test_groupbyr  Z  sc   
**X

$
$
&C
,,V1v!Q@i  s  **X

"
"
"
5C
,,1a&QF;7
K
U
UC s  **X
z
*
0
01H
IC
				$	$ff%5	6aDhh1vH-C
 ! **X
z
*
0
01M
NC
))S#Jbhh1vH&EJ
WC!r.   c                    U R                  S5      R                  SS 05      R                  S5      nU R                  S5      R                  SS 4S9R                  S5      n[        [        R
                  R                  SS/5      [        SS5      /[        R                  " SS	/SS
9S9n[        X#5        [        X5        g )Nr"   r    c                 "    U R                  5       $ r  r	  r&   s    r   r  (test_groupby_agg_tuple.<locals>.<lambda>~  s
    AKKMr.   c                 "    U R                  5       $ r  r	  r&   s    r   r  r    s
    Q[[]r.   r    rJ   r  r   r   r  )r    rT   )r  aggset_geometryr   r  r    r  r   rb   r  r   )r'   res_dictres_tuprZ   s       r   test_groupby_agg_tupler"  {  s    


8	j12	3	j	!  	

8	z#:;	<	j	! 
 ""--vv.>?q!Mhh1vH-C g+h0r.   c                     U R                  S5      nUR                  S5      n[        U[        5      (       d   eU R                  SS/   n[        X#5        g )Nr"   r   r   r   )r  	get_groupr`   r   rX   r   )r'   grd   rZ   s       r   test_groupby_groupsr&    sI    


8A
++a.Cc<((((
&&!Q.Cs r.   r4   r   geometry_namer    geomc                   ^ ^ T (       a+  [         R                  (       d  [        R                  " S5        [	        T[        SS5      [        SS5      [        SS5      /S[        R                  " SSS9S[        R                  " / S	QSS90T TS
9n0 n[         R                  (       a	  [        SS9nU 4S jnUR                  S5      R                  " U40 UD6  [         R                  (       d  TS:X  a&  UR                  S5      TS/   R                  U5        OH[        R                  " [        5         UR                  S5      TS/   R                  U5        S S S 5        UR                  S5      R                  " U4S j40 UD6nUR                  / SQ5      R!                  S[         R                  SS9R#                  5       R%                  SS0S9R'                  / SQS9n[)        UR+                  S/S9U5        g ! , (       d  f       N= f)Nrequires pyprojr   r   r!   r   r   r   r"   r   r   F)include_groupsc                 X   > [        U [        5      (       d   eU R                  T:X  d   eg r  )r`   r   r4   )groupr4   s    r   func#test_groupby_metadata.<locals>.func  s(    %....yyCr.   r    c                 8   > [         R                  " X TS/   SS9$ )Nr!   inner)how)r5   sjoin)r   r'  s    r   r  'test_groupby_metadata.<locals>.<lambda>  s    )//!x'@%AwOr.   )r   r   r   r   r   T)dropappendvalue1_leftr^   )r   r   r   r   r   )value1_rightindex_right)r   r   r   skipr   r   r#   r$   r%   PANDAS_GE_22dictr  r  r   AttributeErrorrj   r  	swaplevelrenamer   r   r5  )r4   r'  r'   kwargsr.  rd   rm   s   ``     r   test_groupby_metadatarA    s    6$$%&	E!QKq!eAqkBbii1bhhy8	

 
B F U+  JJxt.v.}
:


8mX67==dC ]]>*JJx -!:;AA$G + **X

$
$O
C 	 	8&"5"5d	C		=1	2	_	-  chhh?J! +*s   2&G==
Hc                 
   S nU R                  U5      n[        U[        5      (       d   e[        X 5        S nU R                  U5      n[        U[        5      (       a   e[	        U[
        R                  " / SQ5      5        g )Nc                 4    [        U [        5      (       d   eU $ r  )r`   r   r(  s    r   	geom_functest_apply.<locals>.geom_func  s    $&&&&r.   c                 H    [        U [        5      (       d   eU R                  $ r  )r`   r   r   rD  s    r   numeric_func test_apply.<locals>.numeric_func  s    $&&&&vvr.   )r  g      ?g       @)r  r`   r	   r   r   rb   r   )r   rE  rl   rH  s       r   
test_applyrJ    sm     WWYFfi((((6% WW\"F&),,,,		/ :;r.   c                     U R                   S/S4   nUR                  S 5      nUR                  n[        R                  R                  X#5        g )Nr   r    c                     U R                   $ r  )is_emptyrD  s    r   r  %test_apply_loc_len1.<locals>.<lambda>  s    t}}r.   )rX   r  rM  r#   testingassert_allclose)r'   r   rl   rm   s       r   test_apply_loc_len1rQ    sB     VVQCO$F\\45FHJJv0r.   z$convert_dtype is removed in pandas 3c                    [         R                  (       d  [        R                  " SS9nO[        R
                  " 5       nU nU R                  S SSS9nS S S 5        [        WU 5        [         R                  (       a0  [        W5      S:X  d   eS[        US   R                  5      ;   d   eg [        W5      S:X  d   eg ! , (       d  f       Nq= f)	NT)recordc                     U $ r   r&   s    r   r  3test_apply_convert_dtypes_keyword.<locals>.<lambda>  s    r.   rU  )convert_dtypeargsr   zthe convert_dtype parameterr   )r   r   warningscatch_warningsr   warnsr  r   rs   rO   message)r   recorderrS  rd   s       r   !test_apply_convert_dtypes_keywordr^    s     **$7<<>	VggkBg? 
3"6{a,F1I4E4E0FFFF6{a 
s   C  
Cc                    U(       a<  [         R                  (       d  [        R                  " S5        U R	                  U5      n U R                  S SS9n[        U5      [        R                  L d   eU R                  [        5      n[        X#5        U R                  S SS9n[        U5      [        R                  L d   e[        X#5        g )Nr*  c                 ,    U R                  [        5      $ r  r   rO   cols    r   r  /test_apply_no_geometry_result.<locals>.<lambda>      #**S/r.   r   rg   c                 ,    U R                  [        5      $ r  ra  rb  s    r   r  rd    re  r.   r   )r   r   r   r:  r   r  ra   rb   rc   r   rO   r   )r'   r4   rl   rm   s       r   test_apply_no_geometry_resultrg    s    
  KK)*ZZ_XX1X:F<2<<'''yy~Hv(XX1X:F<2<<'''v(r.   c                     U R                  S5      n U R                  S SS9nUR                  R                  S:X  d   eg )Nr(  c                     U $ r  rU  rb  s    r   r  4test_apply_preserves_geom_col_name.<locals>.<lambda>  s    #r.   r   rg   )r   r  r    r   )r'   rl   s     r   "test_apply_preserves_geom_col_namerk    s<    			F	#BXXoAX.F??6)))r.   c                   ^  T R                  S SS9n[        UT R                  SS9  T R                  S SS9n[        UT S   R	                  S 5      5        T R                  S SS9nUR
                  S	:X  d   eT R                  S
 SS9nUR
                  S:X  d   eT R                  U 4S jSS9nUR
                  S:X  d   eg )Nc                     U R                   $ r  r  rows    r   r  0test_df_apply_returning_series.<locals>.<lambda>  s    #,,r.   r   rg   F)	check_crsc                     U R                   $ r  )r!   rn  s    r   r  rp    s    #**r.   r!   c                     [        S5      $ )NNaN)r   r&   s    r   r  rp    s    er.   float64c                     g r  rU  r&   s    r   r  rp    s    r.   r   c                 8   > TR                   R                  5       $ r  )r    to_frame)ro  r'   s    r   r  rp  #  s    r{{335r.   )r  r   r    r   r?  r   )r'   rl   rd   s   `  r   test_df_apply_returning_seriesry    s    XX.QX7F62;;%@XX,1X5F8 3 3D 9:XX,1X5F<<9$$$XXn1X-F<<8### ((5A(
>C99   r.   c                    ^ / mU4S jnU R                   U S'   U R                  U5        S[        4S[        R                  4S[        R                  4S[        4/nTU:X  d   eg )Nc                 R   > TR                  U R                  [        U 5      45        g r  )r6  r   ra   )srsapply_typess    r   
get_dtypes1test_df_apply_geometry_dtypes.<locals>.get_dtypes+  s    CHHd3i01r.   geom2r    r!   r"   )r    r  r	   rb   r   )r'   r~  rm   r}  s      @r   test_df_apply_geometry_dtypesr  '  sg    K2 ++BwKHHZ	Y	299	299	)	H ("""r.   c                     U R                  SS9n[        [        R                  " U 5      R                  SS95      n[	        X5        g )Nr!   r^   )pivotr   rb   rc   r   )r'   rl   rm   s      r   
test_pivotr  9  s=     XXhX'FBLL,2282DEHf/r.   c                  2   [         R                  " S/ 05      R                  5       n [        S/ 05      R                  5       n[	        X5        [         R                  " S/ 05      R                  5       n [        S/ 0SS9R                  5       n[	        X5        g )Nr    rD   r  )rb   rc   r   r   r   )rm   actuals     r   test_isna_empty_dtypesr  A  s~     ||Z,-224H:r*+002Fx( ||S"I&++-H3)c2779Fx(r.   c                 0   SU R                   S'   SS0nU R                   U:X  d   eU S S X S   S:     U SS/   4 H  nU R                   U:X  a  M   e   U R                  5       nUR                   U:X  d   eUR                  SS9nUR                   U:X  d   eg )	Nmy_namer   r   r!   r"   r    T)index_parts)attrsreset_indexexplode)r'   r  r   r{   r   s        r   test_preserve_attrsr  N  s     BHHVYE88u bq62lQ./Xz4J1KLxx5    M ..
C99 ++$+
'C99r.   c                     [        SS5      [        SS5      /n [        SS/U S.5      nSSS.Ul        [        SS/U S.5      nUR                  R                  5       Ul        [        SS	/U S.5      nUR                  R                  5       Ul        [        R
                  " XU/5      R                  UR                  :X  d   eS
S0Ul        [        R
                  " XU/5      R                  0 :X  d   eg )Nr   r   )Ar    r   r   r   r   r      c)r   r   r  rz   rb   concat)geomsdf1r{   r   s       r   test_attrs_concatr  a  s     1a[%1+&E
aV7
8Ca CI
aV7
8C		 CI
aV7
8C		 CI99c_%++syy888aCI99c_%++r111r.   c                     [        SS5      [        SS5      /n [        SS/SS/U S.5      nSSS.Ul        [        SS/SS/U S	.5      nUR                  R                  5       Ul        [        R
                  " X5      R                  UR                  :X  d   eS
S0Ul        [        R
                  " X5      R                  0 :X  d   eg )Nr   r   rD   r   r   )keyval1r    r   r   )r  val2r    r  )r   r   r  rz   rb   merge)r  r  r{   s      r   test_attrs_merger  q  s    1a[%1+&E
SzAq6uM
NCa CI
SzAq6uM
NC		 CI88C##syy000aCI88C##r)))r.   c                    U R                  SS9n U R                  R                  SL d   eU S S X S   S:     U SS/   4 H  nU R                  R                  SL a  M   e   U R                  5       nUR                  R                  SL d   e[        R
                  " [        5         U R                  / SQ5        S S S 5        [        R
                  " [        5         U / SQ     S S S 5        [        R
                  " [        5         [        R                  " X /5        S S S 5        g ! , (       d  f       Ns= f! , (       d  f       NZ= f! , (       d  f       g = f)	NF)allows_duplicate_labelsr   r!   r"   r    )r   r   r   )r!   r!   r    )
	set_flagsflagsr  r  r   r   r   rY   rb   r  )r'   r   r{   s      r   test_preserve_flagsr    s   	e	4B88++u444 bq62lQ./Xz4J1KLxx//5888 M ..
C99,,555 
z	"


9 
# 
z	"
+, 
# 
z	"
		2( 
#	" 
#	" 
#	" 
#	"s$   'D(D9E
(
D69
E

Ec                     [        [        SS5      [        SS5      [        SS5      /5      n [        R                  " U S5      n[	        U[         5      (       d   eUR
                  R                  R                  R                  (       d   e[        SS5      UR                  S'   UR                  S   [        SS5      :X  d   eg )Nr   r   r   rx   r   )r	   r   r  bufferr`   r%   _datar  	writeablerX   rP   )serrl   s     r   
test_ufuncr    s     U1a[%1+uQ{;
<C^^C#Ffi(((( <<##----"bMFJJqM;;q>U2r]***r.   )[r   rY  packaging.versionr   numpyr#   pandasrb   r  shapely.geometryr   r   r   r   r5   geopandas._compat_compatr   r   r	   geopandas.arrayr
   r   geopandas.testingr   r   numpy.testingr   pandas.testingr   r   fixturer   r'   r-   markskipifgeos_versionr>   rF   rH   rQ   r\   re   rn   rv   r|   r   r   r   r   r   filterwarningsr   r   r   r   r   r   r   r   parametrizer   r   r   r   r   r   r   xfailr   r  r  r"  r&  rA  rJ  rQ  PANDAS_GE_30r^  rg  rk  ry  r  r  r  r  r  r  r  r  rU  r.   r   <module>r     s   	  %    N N  " - (  O , B H H  ' G((94=QR; S;8**'$!(H6*)8:(10!,D$S@) A!!<"!#&C6$,% bff~.# /#"$A+@(2B %  ! % 	' !	'"B1&! { 34:v*>?1K @ 51Kh<(1 F''0VW  X $ { 34) 5)*!(#$0
)&2 *0+r.   