
    h@p                        d dl Z d dlZd dlmZ d dlZd dlZd dlZd dl	m
Z
mZmZmZ d dlZd dlmZ d dlmZmZ d dlmZ d dlZd dlmZmZ d dlmZ d dlmZmZ ej>                  d	        Z ej>                  d
        Z!d Z"ejF                  jI                  ejJ                  dk  d      d        Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3ejF                  ji                  d      d        Z5d Z6d  Z7d! Z8d" Z9d# Z:d$ Z;d% Z<ejF                  j{                  d&dej|                  g      d'        Z?d( Z@d) ZAd* ZBd+ ZCd, ZDejF                  j                  d-.      d/        ZFejF                  j                  d-.      d0        ZGd1 ZHd2 ZId3 ZJejF                  j{                  d4dd5g      ejF                  j{                  d6d7d8g      d9               ZKd: ZLd; ZMejF                  jI                  ej                  d<      d=        ZOejF                  j{                  d4dd5g      d>        ZPd? ZQd@ ZRdA ZSdB ZTdC ZUdD ZVdE ZWdF ZXy)G    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            
          t        t        t        d      t        d            D  cg c]  \  } }t        | |       c}}       S c c}} w )N   )r	   zipranger   )xys     V/var/www/html/immo/lib/python3.12/site-packages/geopandas/tests/test_pandas_methods.pysr      s4    c%(E!H.EFdaeAqkFGGFs   A
c            	          t        t        d      D  cg c]  } t        | |        c} t        j                  dd      t        j
                  g dd      d      S c c} w )Nr   int64dtype      r   geometryvalue1value2)r   r   r   nparangearrayr   s    r   dfr'      sK    .3Ah7q!7ii1hhy8	
 7s   Ac                 h    dt        |       v sJ dt        |      v sJ d|j                         v sJ y )NPOINT)repr_repr_html_r   r'   s     r   	test_reprr-   &   s;    d1gd2hbnn&&&&    )r   	   r   zrequires GEOS>=3.9)reasonc                     t        dd      } t        dd      }t        | |d g      }dt        |      v sJ t        | |gd      }dt        |      v sJ t        dd      } t        d	d	      }t        | |d g      }d
t        |      v sJ t        | |gd      }d
t        |      v sJ dt        j                  _        dt        |      v sJ dt        j                  _        dt        |      v sJ y )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	BD>	"B&$r(222 
B8	&B&$r(222 
~~	.B	~~	.B	BD>	"B&$r(222 
B8	&B&$r(222*+I'$r(****+I'.$r(:::r.   c                      t        g d      } dt        |       v sJ t        g d| d      }dt        |      v sJ d|j                         v sJ y )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                      t        g       } t        |       dk(  sJ t        g | d      }dt        |      v sJ d|j                         v sJ y )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                      t        t        g d      g      } dt        | j                  d         v sJ dt        |       v sJ t        t	        g d      t	        g d      g      }dt        |      vsJ y )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                 :   t        dd      }| d   |k(  sJ | j                  d   |k(  sJ | j                  d   |k(  sJ |j                  d   |k(  sJ |j                  d   |k(  sJ t        t        dd      t        dd      gddg      }t	        | j                  ddg   |       t	        | j                  ddg   |       t	        | j                  ddg      |       t	        |j                  ddgdf   |       t        |j                  ddgdf   |dd	       t        t        dd      t        dd      gddg      }t        j                  g d
      }t	        | |   |       t	        | j                  |   |       t	        ||   d   |       t	        |j                  |df   |       g d| _	        t        t        dd      t        dd      gddg      }t        | dd  |       t        | j                  dd  |       t        | j                  dd  |       y )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1T7C(155;,2d8J/5266$
"23S9 AG
U1a[%1+.q!f
=C!"s#qr
C(ab	3'r.   c                    | j                  g d      }t        t        dd      t        dd      d gg d      }t        ||       |j                  g d      }t        |j                  |       |j                  ddg      }t        |t              sJ t        |j                  t              sJ t        ||ddg          |j                  ddg      }t        |      t        j                  u sJ t        ||ddg          y )	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...sB*567
**h1*
2C9$$$sB(345r.   c                    t        j                  ddg      }| j                  |      }| j                  ddg   }t	        |t
              sJ t        ||       |j                  |d      }|j                  ddgd d f   }t	        |t              sJ t        ||       |j                  g d      }|j                  |d      }|ddg   }t	        |t              sJ t        ||       |j                  t        j                  ddg      d      }|dd	g   }t	        |t        j                        sJ t        ||       y )
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      s,   88QFD VVD\Fvvq!f~Hfi(((68, WWTW"Fww1vqy!Hfl+++fh/ 
<	=BWWTW"F8Z()Hfl+++fh/WWRXXq!f%AW.F8X&'Hfbll+++vx(r.   c                    t        j                  g d      }t        j                  dt	        |            |_        |j                  |d      }t        |t              sJ |j                  dk(  sJ t        |j
                  t        j                        sJ |j                  |d   d	kD     ||d   d	kD     fD ]K  }t        |t              sJ |j                  dk(  sJ t        |j
                  t        j                        rKJ  y )
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 66"X,,-r"X,2D/EF :&,///||v%%%&,,(8(8999:r.   c                 f   t        t        dd      t        dd      t        dd      g      }| j                         }t        dd      |d<   t        ||       | j                         }t        dd      |j                  d<   t        ||       | j                         }t        dd      |j
                  d<   t        ||       |j                         }t        dd      |j                  d<   t        |d   |       |j                         }t        dd      |j
                  d<   t        |d   |       y )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2s#	
Bb"BFF1I2s#	
Br2BGGAJ2s#
'')C"2r]CGGM3z?C0
'')C2r]CHHTN3z?C0r.   c                     | j                  d      }| j                         }d|d<   t        |t              sJ t	        ||       y )Nr   )newr~   )assignrz   r`   r   r   r'   rd   rZ   s      r   test_assignr      s@    
)))
C
'')CCJc<(((sC r.   c                 4   t        j                  t              5  | j                  t               d d d        | j                  t
              d   dk(  sJ | j                  t              }t        t        j                        t        d      k(  sft        t        j                        t        d      k(  sAt        |t        j                        rt        |t              rJ |j                  t        k(  sJ |j                  d      }|j                  dt        i      }t        |t               sJ |j                  t
              }t        |t        j"                        rt        |t               rJ |j                  dt
        i      }t        |t        j"                        rt        |t               rJ |j                  t              }t        |t        j"                        rt        |t               rJ |d   j                  t        k(  sJ y # 1 sw Y   xY w)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)2LLLyyF"""			K	(B ))Xu%
&Cc<((( ))C.Cc2<<(C1NNN
))[#&
'Cc2<<(C1NNN
))F
Cc2<<(C1NNN{!!V+++; s   HHc                      t        g dg dd      } | j                  t              }t        |t        j
                        rt        |t               rJ |d   j                  t        k(  sJ y )NrB   )         )rD   brD   )r   r   r   r`   rb   rc   r   )r'   rd   s     r    test_astype_invalid_geodataframer     sT     
II6	7B
))F
Cc2<<(C1NNNs8>>V###r.   c                    | j                         }t        t        j                  |       j                         | j                  | j
                  j                        }t        ||       | g d   j                         }t        |g d   |       t        j                  r| j                  d      j                  d      }t        t        j                  |      j                         |j                  |j
                  j                        }|j                         }t        ||       |g d   j                         }t        |g d   |       y y )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
	 !!#!)T2 12AAC!),J"KTR r.   c                 r    dj                  dt        j                        }| j                  d      |k(  sJ y )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                 <   t        j                  ddgddg      }|j                  d      }t        ||       t	        j
                  t              5  | j                          d d d        t	        j
                  t              5  | j                          d d d        t	        j
                  t        t        f      5  | j                          d d d        t	        j
                  t              5  |dz    d d d        t	        j
                  t              5  | dz    d d d        |d	k(  }t        j                  d
|j                  |j                        }t        ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   wxY w)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  sC   
 ))QF8X"6
7C
&&d&
#CS! 
y	! 	 
y	! 	 
	:.	/ 	

 
y	! 
Q 
y	! 	A )C
,,uBHHbjj
ACsC )   
  s<   E"E.=E:/FF"E+.E7:FFFc                     | j                  t        j                  g d            }t        t	        dd      d t	        dd      g      }t        ||       y )NrW   r   r   )wherer#   r%   r	   r   r   )r   rd   rZ   s      r   
test_wherer   j  sA    
''"((./
0C
U1a[$a4
5CS!r.   c                 l    | j                  t        j                  g      }| ddg   }t        ||       y )N)includer!   r"   )select_dtypesr#   numberr   r   s      r   test_select_dtypesr   p  s4    


BII;

/C
h!
"CsC r.   c                    | j                         }| j                  |      du sJ d |j                  d<   | j                  |      du sJ |j                         }|j                  |      du sJ t        dd      |j                  d<   |j                  |      du sJ |j                         }d|j                  d<   |j                  |      du sJ y )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                    t        t        dd      d t        dd      g      }|j                  t        dd            }t        ||        |j                  t        j
                        }t        ||       |j                         }||d<   |j                  t        dd            }t        ||       t        j                  t        t        f      5  |j                  d       d d d        |j                         }t        j
                  |j                  d<   |j                  d      }t        |j                  ddi      |       y # 1 sw Y   exY w)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C
O
**U1a[
!Cc2&	+Y7	8 

1
 '')C66CGGK
**Q-Ccjj(G)<=rB s   EEc                    t        t        dd      d t        dd      g      }|j                  t        t        dd      gdz              }t        ||        g d}|j                  t        |D cg c]  }t        ||       c}|            }t        ||        |j                  t        t        dd      gdg            }t        ||        |j                  t        t        dd      gdg            }t        ||       y c c}w )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:quQ{:%H
IC3" ))IuQ{mA37
8C3" ))IuQ{mA37
8C3# ;s   /Dc                     t        t        dd      d t        dd      g      }|j                  }|j                  t        dd      d       t	        ||        t
        j                  r|j                  |u sJ y y )Nr   r   r   T)inplace)r	   r   r%   r   r   r   PANDAS_GE_21)r   r<   arrs      r   test_fillna_inplacer     sf    	E!QKuQ{3	4B
((CIIeAqk4I(2q!xx3 r.   c                      t        t        dd      d t        dd      g      } | j                         }| j                  ddg   }t	        ||       y Nr   r   )r	   r   dropnarX   r   )r<   rd   rZ   s      r   test_dropnar     sE    	E!QKuQ{3	4B
))+C
&&!Q.C3$r.   NAc                    t        t        dd      | t        dd      gg dd      }t        j                  g dg dd      }|j	                         }t        |      t        j                  u sJ t        ||       |j                         }t        ||       |j                         }t        ||        |j                         }t        ||        y )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		!!!S!
'')CS!
**,CcT"
((*CcT"r.   c                  |   t        g       } t        | t        dd      g      }|j                         rJ |j	                         sJ t        t        dd      t        dd      g      }|j                         sJ |j	                         sJ t        | | g      }|j                         rJ |j	                         rJ y )Nr   )r   r	   r   allany)emptyr   s     r   test_any_allr     s    r"E5%1+&'Auuw;557N75A;a,-A557N7557N75%.!Auuw;uuw;wr.   c                     t        t        dd      t        dd      t        dd      g      } | j                         }|j                  j	                         g dk(  sJ | j                  d      }|j                  j	                         g dk(  sJ t        | j                  d d j                         | j                  d d        y )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            	         t        t        dd      d t               t        dd      g      } | j                         }|j                  j	                         g dk(  sJ | j                  d      }|j                  j	                         g dk(  sJ | j                  d      }|j                  j	                         g d	k(  sJ | j                  dd
      }|j                  j	                         g dk(  sJ t        g d      } | j                         }|j                  j	                         g dk(  sJ t        t               t               t               g      } | j                         }|j                  j	                         g dk(  sJ t        t               d t               g      } | j                         }|j                  j	                         g dk(  sJ y )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                      t        t        dd      t        dd      t        dd      g      } t        t        dd      t        dd      g      }t        | j	                         |       y 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            
         t        t        dd      t        dd      t        dd      g      } | j                         }d}t        j                  ddgt        t        dd      t        dd      g      |      }t        ||       t        t        dd      t        dd      t        dd      gd      }|j                         }t        ||       |j                         j                  j                  j                  J t        t        dd      t        ddgddgg      t        dd      g      }|j                         }t        t        dd      t        ddgddgg      g      }t        j                  ddg||      }	t        ||	       t        t        dd      d t        dd      g      }
|
j                  d	      }t        j                  dgt        t        dd      g      |      }t        ||       t        j                  ddgt        t        dd      d g      |      }|
j                  d
	      }t        ||       y )Nr   r   countr   r   	EPSG:4326r3   T)r   F)r	   r   value_countsrb   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S!	E!QKq!eAqk:	LB??Dc" ??""((,,444 
E!QKaVaV,<!=uQ{K	LB??D%1+zAq6Aq62B'CDEE99aV5t4Dd# 
E!QKuQ{3	4B??$?'D))QC|U1a[M'BNKk*))QF,aT7J*KRVWK////K[1r.   F)strictc                      t        t        dd      t        dd      g      } | j                         }t        |      dk(  sJ y )Nr   r   )r	   r   drop_duplicatesrs   )dupsdroppeds     r   test_drop_duplicates_seriesr   A  s?     eAqk5A;/0D""$Gw<1r.   c            	         d} t        t        |       D cg c]  }t        dd       c}t        |       d      }|j                  d      }t	        |      dk(  sJ |j                         }t	        |      | k(  sJ y c c}w )Nr   r   )r    r!   r    )subsetr   )r   r   r   r   rs   )gdf_len_dup_gdfdropped_geometrydropped_alls        r   test_drop_duplicates_framer  L  s     G+0>:aeAqk:eGnUG ..j.A A%%%))+K{w&&& ;s   A>c                 ,   | j                  d      j                         }t        j                  ddgddgddgd      j	                  d      }t        ||       | j                  d      j                  d      }t        j                  ddgddgdd	      j	                  d      }t        ||       | j                  d      d
   j                  d       }t        t        j                  j                  ddg      t        dd      gt        j                  ddgd      d
      }t        ||       | j                  d      d
   j                  d       }t        j                  ddgt        j                  ddgd      d
      }t        ||       y )Nr"   r   r   r   Tr   )r!   r"   r   r   r    c                 "    | j                         S N	union_allr&   s    r   <lambda>ztest_groupby.<locals>.<lambda>j  s    1;;= r.   rJ   r   r   r   r   c                 6    | j                         j                  S r  )r	  arear&   s    r   r
  ztest_groupby.<locals>.<lambda>t  s    1;;=;M;M r.           )groupbyr   rb   rc   	set_indexr   r   applyr	   shapelyr    
MultiPointr   Indexr   r   r   s      r   test_groupbyr  Y  sk   
**X

$
$
&C
,,V1v!Q@i  sC  **X

"
"
"
5C
,,1a&QF;7
K
U
UC sC  **X
z
*
0
01H
IC
				$	$ff%5	6aDhh1vH-C
 S! **X
z
*
0
01M
NC
))S#Jbhh1vH&EJ
WCS!r.   c                    | j                  d      j                  dd i      j                  d      }| j                  d      j                  dd f      j                  d      }t        t        j
                  j                  ddg      t        dd      gt        j                  dd	gd
            }t        ||       t        ||       y )Nr"   r    c                 "    | j                         S r  r  r&   s    r   r
  z(test_groupby_agg_tuple.<locals>.<lambda>}  s    AKKM r.   c                 "    | j                         S r  r  r&   s    r   r
  z(test_groupby_agg_tuple.<locals>.<lambda>  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  z  s    


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

8	z#:;	<	j	! 
 ""--vv.>?q!Mhh1vH-C gs+h0r.   c                     | j                  d      }|j                  d      }t        |t              sJ | j                  ddg   }t        ||       y )Nr"   r   r   r   )r  	get_groupr`   r   rX   r   )r'   grd   rZ   s       r   test_groupby_groupsr#    sH    


8A
++a.Cc<(((
&&!Q.CsC r.   r4   r   geometry_namer    geomc                      r%t         j                  st        j                  d       t	        t        dd      t        dd      t        dd      gdt        j                  dd      dt        j                  g d	d      i 
      }i }t         j                  rt        d      } fd} |j                  d      j                  |fi | t         j                  sdk(  r&|j                  d      dg   j                  |       nGt        j                  t              5  |j                  d      dg   j                  |       d d d         |j                  d      j                  fdfi |}|j                  g d      j!                  dt         j                  d      j#                         j%                  ddi      j'                  g d      }t)        |j+                  dg      |       y # 1 sw Y   xY w)Nrequires pyprojr   r   r!   r   r   r   r"   r   r   F)include_groupsc                 L    t        | t              sJ | j                  k(  sJ y r  )r`   r   r4   )groupr4   s    r   funcz#test_groupby_metadata.<locals>.func  s%    %...yyCr.   r    c                 >    t        j                  | | dg   d      S )Nr!   inner)how)r5   sjoin)r   r$  s    r   r
  z'test_groupby_metadata.<locals>.<lambda>  s    )//!Qx'@%AwO r.   )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   r0  )r4   r$  r'   kwargsr+  rd   rm   s   ``     r   test_groupby_metadatar<    s    6$$%&	E!QKq!eAqkBbii1bhhy8	

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


8mX67==dC ]]>* 	HJJx -!:;AA$G	H %"**X

$
$O
C 	 	8&"5"5d	C		=1	2	_	-  chhh?J!	H 	Hs   $&G::Hc                     d }| j                  |      }t        |t              sJ t        ||        d }| j                  |      }t        |t              rJ t	        |t        j                  g d             y )Nc                 *    t        | t              sJ | S r  )r`   r   r%  s    r   	geom_funcztest_apply.<locals>.geom_func  s    $&&&r.   c                 >    t        | t              sJ | j                  S r  )r`   r   r   r?  s    r   numeric_funcz test_apply.<locals>.numeric_func  s    $&&&vvr.   )r  g      ?g       @)r  r`   r	   r   r   rb   r   )r   r@  rl   rB  s       r   
test_applyrC    si     WWYFfi(((61% WW\"F&),,,		/ :;r.   c                     | j                   dgdf   }|j                  d       }|j                  }t        j                  j                  ||       y )Nr   r    c                     | j                   S r  )is_emptyr?  s    r   r
  z%test_apply_loc_len1.<locals>.<lambda>  s
    t}} r.   )rX   r  rF  r#   testingassert_allclose)r'   r   rl   rm   s       r   test_apply_loc_len1rI    sD     VVQCO$F\\45FHJJvx0r.   z$convert_dtype is removed in pandas 3c                    t         j                  st        j                  d      }nt	        j
                         }|5 }| j                  d dd      }d d d        t        |        t         j                  r-t              dk(  sJ dt        |d   j                        v sJ y t              dk(  sJ y # 1 sw Y   cxY w)	NT)recordc                     | S r   r&   s    r   r
  z3test_apply_convert_dtypes_keyword.<locals>.<lambda>  s     r.   rM  )convert_dtypeargsr   zthe convert_dtype parameterr   )r   r   warningscatch_warningsr   warnsr  r   rs   rO   message)r   recorderrK  rd   s       r   !test_apply_convert_dtypes_keywordrU    s     **$7<<>	 @VggkBg?@3"6{a,F1I4E4E0FFFF6{a@ @s   B66B?c                    |r6t         j                  st        j                  d       | j	                  |      } | j                  d d      }t        |      t        j                  u sJ | j                  t              }t        ||       | j                  d d      }t        |      t        j                  u sJ t        ||       y )Nr'  c                 ,    | j                  t              S r  r   rO   cols    r   r
  z/test_apply_no_geometry_result.<locals>.<lambda>      #**S/ r.   r   rg   c                 ,    | j                  t              S r  rX  rY  s    r   r
  z/test_apply_no_geometry_result.<locals>.<lambda>  r[  r.   r   )r   r   r   r5  r   r  ra   rb   rc   r   rO   r   )r'   r4   rl   rm   s       r   test_apply_no_geometry_resultr]    s    
  KK)*ZZ_XX1X:F<2<<'''yy~Hvx(XX1X:F<2<<'''vx(r.   c                     | j                  d      } | j                  d d      }|j                  j                  dk(  sJ y )Nr%  c                     | S r  rM  rY  s    r   r
  z4test_apply_preserves_geom_col_name.<locals>.<lambda>  s    # r.   r   rg   )r   r  r    r   )r'   rl   s     r   "test_apply_preserves_geom_col_namer`    s<    			F	#BXXoAX.F??6)))r.   c                      j                  d d      }t        | j                  d        j                  d d      }t        | d   j	                  d               j                  d d      }|j
                  d	k(  sJ  j                  d
 d      }|j
                  dk(  sJ  j                   fdd      }|j
                  dk(  sJ y )Nc                     | j                   S r  r  rows    r   r
  z0test_df_apply_returning_series.<locals>.<lambda>  s
    #,, r.   r   rg   F)	check_crsc                     | j                   S r  )r!   rc  s    r   r
  z0test_df_apply_returning_series.<locals>.<lambda>  s
    #** r.   r!   c                     t        d      S )NNaN)r   r&   s    r   r
  z0test_df_apply_returning_series.<locals>.<lambda>  s
    e r.   float64c                      y r  rM  r&   s    r   r
  z0test_df_apply_returning_series.<locals>.<lambda>  s    r.   r   c                 8    j                   j                         S r  )r    to_frame)rd  r'   s    r   r
  z0test_df_apply_returning_series.<locals>.<lambda>"  s    r{{335 r.   )r  r   r    r   r:  r   )r'   rl   rd   s   `  r   test_df_apply_returning_seriesrm    s    XX.QX7F62;;%@XX,1X5F8 3 3D 9:XX,1X5F<<9$$$XXn1X-F<<8### ((5A(
>C99   r.   c                     g fd}| j                   | d<   | j                  |       dt        fdt        j                  fdt        j                  fdt        fg}|k(  sJ y )Nc                 R    j                  | j                  t        |       f       y r  )r1  r   ra   )srsapply_typess    r   
get_dtypesz1test_df_apply_geometry_dtypes.<locals>.get_dtypes*  s    CHHd3i01r.   geom2r    r!   r"   )r    r  r	   rb   r   )r'   rr  rm   rq  s      @r   test_df_apply_geometry_dtypesrt  &  sg    K2 ++BwKHHZ	Y	299	299	)	H ("""r.   c                     | j                  d      }t        t        j                  |       j                  d            }t	        ||       y )Nr!   r^   )pivotr   rb   rc   r   )r'   rl   rm   s      r   
test_pivotrw  8  s?     XXhX'FBLL,2282DEHfh/r.   c                  8   t        j                  dg i      j                         } t        dg i      j                         }t	        | |       t        j                  dg i      j                         } t        dg id      j                         }t	        | |       y )Nr    rD   r  )rb   rc   r   r   r   )rm   actuals     r   test_isna_empty_dtypesrz  @  s     ||Z,-224H:r*+002Fx( ||S"I&++-H3)c2779Fx(r.   c                 ,   d| j                   d<   ddi}| j                   |k(  sJ | d d | | d   dkD     | ddg   fD ]  }| j                   |k(  rJ  | j                         }|j                   |k(  sJ |j                  d      }|j                   |k(  sJ y )	Nmy_namer   r   r!   r"   r    T)index_parts)attrsreset_indexexplode)r'   r~  r   r{   r   s        r   test_preserve_attrsr  M  s     BHHVYE88u bq62blQ./Xz4J1KL !xx5   ! ..
C99 ++$+
'C99r.   c                    | j                  d      } | j                  j                  du sJ | d d | | d   dkD     | ddg   fD ]  }| j                  j                  du rJ  | j                         }|j                  j                  du sJ t	        j
                  t              5  | j                  g d       d d d        t	        j
                  t              5  | g d    d d d        t	        j
                  t              5  t        j                  | | g       d d d        y # 1 sw Y   lxY w# 1 sw Y   OxY w# 1 sw Y   y xY w)	NF)allows_duplicate_labelsr   r!   r"   r    )r   r   r   )r!   r!   r    )
	set_flagsflagsr  r  r   r   r   rY   rb   concat)r'   r   r{   s      r   test_preserve_flagsr  `  s1   	e	4B88++u444 bq62blQ./Xz4J1KL 9xx//58889 ..
C99,,555 
z	" 


9 
z	" -
+,- 
z	" 
		2r(  - - s$   %D$D0D<$D-0D9<Ec                  r   t        t        dd      t        dd      t        dd      g      } t        j                  | d      }t	        |t               sJ |j
                  j                  j                  j                  sJ t        dd      |j                  d<   |j                  d   t        dd      k(  sJ y )Nr   r   r   rx   r   )r	   r   r  bufferr`   r%   _datar  	writeablerX   rP   )serrl   s     r   
test_ufuncr  x  s     U1a[%1+uQ{;
<C^^C#Ffi((( <<##----"bMFJJqM;;q>U2r]***r.   )Yr   rP  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#  r<  rC  rI  PANDAS_GE_30rU  r]  r`  rm  rt  rw  rz  r  r  r  rM  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+@(2@ %  ! % 	' !	'"B1&! { 34:v*>?1K @ 51Kh<(1 F''0VW  X $ { 34) 5)*!(#$0
)&0+r.   