
    jj                         S SK r S SKrS SKrS SKrS SKrS SKJr  S SKrS SK	r
S SKJrJrJr  S SKrS SKJr  S SKJrJrJrJr  S SKJrJrJr  S SKrS SKJrJr  S SKJ r J!r!  S SK"J#r#J$r$J%r%  \RL                  S	 5       r'\RL                  " / S
QS9S 5       r(\RR                  RU                  S5       " S S5      5       r+S'S jr, " S S5      r-\RR                  R]                  \R^                  (       + SS9S 5       r0S r1\RR                  R]                  \R^                  (       + SS9S 5       r2\RR                  R]                  \R^                  (       + SS9\RR                  Rg                  SSS/5      S 5       5       r4S r5\RR                  Rg                  SSS/5      S  5       r6\RR                  Rg                  SSS/5      S! 5       r7\RR                  Rq                  S"5      S# 5       r9 " S$ S%\5      r:S& r;g)(    N)Enum)PointPolygonbox)GeoDataFrame	GeoSeriespoints_from_xy	read_file)GeometryArrayGeometryDtypefrom_shapely)assert_geodataframe_equalassert_geoseries_equal)PACKAGE_DIRvalidate_boro_df)assert_frame_equalassert_index_equalassert_series_equalc                     [        [        / SQ5      [        / SQ5      /5      n[        [        / SQ5      [        / SQ5      /5      n[        SS/US.5      n[        SS/US.5      nX44$ )	N))r   r   )   r   r   r   )r   r   )r   )   r   )r   r   )r   r   ))   r   )   r   r   r   )r   r   )r   )   r   )r   r   )r   r   r   r   )col1geometry)col2r   )r   r   r   )requests1s2df1df2s        d/var/www/html/Sattelite-Image/venv/lib/python3.13/site-packages/geopandas/tests/test_geodataframe.pydfsr&      su    	4545	

B 
4545	

B AB7
8C
AB7
8C8O    )unionintersection
differencesymmetric_differenceidentity)paramsc                     U R                   $ N)param)r    s    r%   howr1   +   s     ==r'   _setup_class_nybb_filenamec                      \ rS rSrS rS rS r\R                  R                  \
R                  (       + SS9S 5       r\R                  R                  S5      S	 5       rS
 rS rS rS rS rS r\R                  R                  \
R                  (       + SS9S 5       rS rS rS rS rS rS rS r\R                  R                  \
R                  (       + SS9S 5       rS rS r\R                  R                  \
R                  (       + SS9S 5       r S r!S r"S r#\R                  R                  S5      S  5       r$S! r%S" r&S# r'S$ r(S% r)S& r*S' r+S( r,S) r-S* r.S+ r/S, r0S- r1S. r2S/ r3S0 r4S1 r5S2 r6S3 r7S4 r8S5 r9S6 r:S7 r;S8 r<S9 r=S: r>S; r?S< r@S= rAS> rBS? rCS@ rD\R                  R                  SA/ SBQ5      \R                  R                  SC/ SDQ5      SE 5       5       rF\R                  R                  SA/ SBQ5      \R                  R                  SFSGSH/5      \R                  R                  \
R                  (       + SIS9SJ 5       5       5       rH\R                  R                  SA/ SBQ5      \R                  R                  SKSLSM/5      \R                  R                  SNSLSF/5      \R                  R                  SO5      SP 5       5       5       5       rISQ rJSR rKSS rLSTrMgL)UTestDataFrame2   c           
         Sn[        U R                  5      U l        [        R                  " 5       U l        SU l        [        [        [        U5      [        U5      5       VVs/ s H  u  p#[        X#5      X#-   X#-  S.PM     snnU R                  S9U l        [        [        R                  R                  [        SSSS5      5      U l        g s  snnf )	N
   	epsg:4326)r   value1value2crs	geopandastestsdataznull_geom.geojson)r
   nybb_filenamedftempfilemkdtemptempdirr<   r   zipranger   r$   ospathjoinr   df3)selfNxys       r%   setup_methodTestDataFrame.setup_method4   s    D../'')  a%(33DA #1[AEQUK3 
 GGLLk7FDWX
s   $C
c                 D    [         R                  " U R                  5        g r/   )shutilrmtreerD   rK   s    r%   teardown_methodTestDataFrame.teardown_methodF   s    dll#r'   c                     [        U R                  5      [        L d   e[        R                  (       a'  U R                  R
                  U R
                  :X  d   eg g r/   )typer$   r   compat
HAS_PYPROJr<   rT   s    r%   test_df_initTestDataFrame.test_df_initI   s@    DHH~---88<<488+++ r'   zRequires pyprojreasonc           
         SSK Jn  [        S5      [        SS5      [        [        S5      [        S5      5       VVs/ s H  u  p#[	        X#5      PM     snnS.n[        X@R                  SS9n[        US   U R                  S9n[        UR                  U5        S	U;  d   eUR                  R                  S:X  d   eUR                  S:X  d   e[        [        SS
5      [        S5      5       VVs/ s H  u  p#[	        X#5      PM     nnn[        R                  " U5         UR                  USS9  S S S 5        g s  snnf s  snnf ! , (       d  f       g = f)Nr   )CRSErrorr   ABlocationre   r<   r   r;   r   r7   	dummy_crs)pyproj.exceptionsr`   rF   rE   r   r   r<   r   r   r   name_geometry_column_namepytestraisesset_geometry)rK   r`   rM   rN   r?   rA   locsgeom2s           r%   test_different_geo_colname(TestDataFrame.test_different_geo_colnameN   s   . qr114U1XuQx1HI1Hq1HI

 $HHzBj)txx8r{{D1###{{:---'':555),U1b\58)DE)Dq)DE]]8$OOE{O3 %$ J F$$s   D=
3E#E		
Ez&ignore:Geometry is in a geographic CRSc           
         [        S5      [        SS5      [        [        S5      [        S5      5       VVs/ s H  u  p[        X5      PM     snnS.n[        X0R                  SS9n[        UR                  [        5      (       d   eUS   US'   [        UR                  [        5      (       d   eUR                  S   US   S   :X  d   e[        US   [        5      (       a   e[        US   [        5      (       d   eUR                  S	5      US
'   [        US
   [        5      (       d   e[        [        [        S5      [        S5      5       VVs/ s H  u  p[        X5      PM     snn5      US'   [        US   [        5      (       d   e[        [        S5      [        S5      5       VVs/ s H  u  p[        US	-   US	-
  5      PM     snnUS'   [        X0R                  S9n[        UR                  [        5      (       d   e[        US   [        5      (       d   e[        US   [        5      (       a   eg s  snnf s  snnf s  snnf )Nr   ra   r   rb   re   rf   rc   r   r   buffarrayr;   )
rF   rE   r   r   r<   
isinstancer   r   bufferr   )rK   rM   rN   r?   rA   s        r%   test_geo_getitemTestDataFrame.test_geo_getitemc   s    qr114U1XuQx1HI1Hq1HI

 $HHzB"++y1111C:"++y1111{{1~j!1!!4444bni8888"Z.)4444YYq\6
"V*i0000"Ca%PQ(<S#T<SDAE!K<S#TU7"W+y1111<?a%PQ(<ST<SDAE!a%Q/<STZ$HH-"++y1111"Z.)4444bni88888- J $U Us   I 
I
2Ic                 x   U R                   SS/   n[        U[        R                  5      (       d   e[        U[        5      (       a   eU R                   R                  5       nUR                  SS0S9R                  S5      n[        U[        5      (       d   eUSS/   n[        U[        R                  5      (       d   e[        U[        5      (       a   e[        R                  " [        U5      5      US'   U/ SQ   n[        U[        R                  5      (       d   e[        U[        5      (       a   eg )Nr9   r:   r   geomcolumns)r9   r:   r   )r$   ru   pd	DataFramer   copyrenamerm   nparangelen)rK   resrA   s      r%   test_getitem_no_geometry&TestDataFrame.test_getitem_no_geometry   s
   hh(+,#r||,,,,c<0000 XX]]_YY
F3Y4AA&I"l++++(H%&#r||,,,,c<00003r7+:12#r||,,,,c<00000r'   c                    [        S5      [        R                  " S5      [        [        S5      [        S5      5       VVs/ s H  u  p[	        X5      PM     snnS.n[        U5      n[        [        [        S5      [        S5      5       VVs/ s H  u  p[	        XS-   5      PM     snn5      nUR                  5       nXUR                  4 H,  nXtS'   [        US   U5        [        UR                  U5        M.     [        [        [        S5      [        S5      5       VVs/ s H  u  p[	        XS-   5      PM     snn5      nXS'   [        US   U5        [        UR                  U5        XUR                  4 H+  nXtS'   [        US   R                  [        5      (       a  M+   e   [        S5      [        R                  " S5      [        S5      [        [        S5      [        S5      5       VVs/ s H  u  p[	        X5      PM     snnS.n[        U5      nXUR                  4 H+  nXtS'   [        US   R                  [        5      (       a  M+   e   g s  snnf s  snnf s  snnf s  snnf )	Nr   g      @rc   rd   r   r   r      
other_geom)rc   rd   r   r   )rF   r   r   rE   r   r   r   r   valuesr   r   ru   r   )	rK   rM   rN   r?   rA   sexpectedvalsr"   s	            r%   test_geo_setitemTestDataFrame.test_geo_setitem   s   q314U1XuQx1HI1Hq1HI

 $3uQxq3JK3J41uQA3JKL668 MD!zN"2j>8<"2;;9 " Ca%(4KL4KDAaQ4KLM:r*~x8r{{H5 MD#|b.55}EEEE " q3(14U1XuQx1HI1Hq1HI	
 $MD#|b.55}EEEE "A J L M Js   I
I 
$I&
5I,c                 l   [        U R                  R                  U R                  S   SSS9  U R                  R                  5       n[	        [        [        U R                  5      5      [        [        U R                  5      5      5       VVs/ s H  u  p#[        X#5      PM     nnnXAl        [        XAR                  UR                  S9n[        UR                  U5        [        US   U5        [        R                  (       a(  UR                  SS9nXQl        UR                  S:X  d   eg g s  snnf )Nr   T)check_dtypecheck_index_typeindexr<   	epsg:3857r;   )r   rA   r   r   rE   rF   r   r   r   r   r<   rY   rZ   to_crs)rK   rA   rM   rN   new_geomgss         r%   test_geometry_property$TestDataFrame.test_geometry_property   s    GGGGJ!		
 WW\\^$'c$''l(;U3tww<=P$Q
$QDAE!K$Q 	 
 XXX266Br{{H5r*~x8[1BK66[(((	 
s   D0c                 T   [         R                  " [        5         U R                  R	                  5       nUS	 UR
                    S S S 5        [         R                  " [        5         U R                  R	                  5       nSUl        S S S 5        [         R                  " [        5         U R                  R	                  5       nSUl        S S S 5        [         R                  " [        5         U R                  R	                  5       n[        [        UR                  S   5      5      Ul        S S S 5        [         R                  " [        5         U R                  R	                  5       nUS	 US     S S S 5        [         R                  " [        5         U R                  R	                  5       nXl        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNQ= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r9   appler   )rk   rl   AttributeErrorrA   r   r   
ValueErrorr$   	TypeErrorlistrF   shapeKeyErrorrK   rA   s     r%   test_geometry_property_errors+TestDataFrame.test_geometry_property_errors   sM   ]]>*B:KK + ]]:&B"BK '
 ]]:&B!BK '
 ]]9%BuRXXa[12BK & ]]8$B:zN % ]]:&BK '&5 +* '&
 '&
 &% %$ '&sH   *G'"G+"G%/AG7#H!H
G
G"%
G47
H
H
H'c                    U R                   R                  R                  S:X  d   eU R                   R                  S5      nUR                  R                  S:X  d   eU R                   R                  SSS9nUb   eU R                   R                  R                  S:X  d   eSn[        R
                  " [        US9   U R                   R                  S5      nS S S 5        [        R
                  " [        US9   U R                   R                  SSS9  S S S 5        g ! , (       d  f       NK= f! , (       d  f       g = f)Nr   new_nameTinplacez&Column named Shape_Area already existsmatch
Shape_Area)rA   r   ri   rename_geometryrk   rl   r   )rK   r$   msgs      r%   test_rename_geometry"TestDataFrame.test_rename_geometry   s    ww$$
222gg%%j1||  J...gg%%j$%?{{ww$$
222 7]]:S1'')),7C 2]]:S1GG##L$#? 21 2111s   >D;D0
D-0
D>c           
         [        [        [        S5      [        S5      5       VVs/ s H  u  p[        X5      PM     snn5      nU R                  R
                  nUR                  5       nU R                  R                  Ul        U R                  R                  U5      nX`R                  Ld   e[        UR
                  U5        [        U R                  R
                  U5        [        U R                  S   U R                  R
                  5        [        R                  " [        5         U R                  R                  S5        S S S 5        [        R                  " [        5         U R                  R                  U R                  5        S S S 5        g s  snnf ! , (       d  f       N]= f! , (       d  f       g = f)Nr   r   znonexistent-column)r   rE   rF   r   rA   r   r   r<   rm   r   rk   rl   r   )rK   rM   rN   rz   original_geomr   r$   s          r%   test_set_geometryTestDataFrame.test_set_geometry   s&   #eAha2IJ2I$!%+2IJK((99;ww{{gg""4(''!!!s||X6tww//?twwz2DGG4D4DE]]:&GG  !56 ' ]]:&GG  ) '& K '& '&s   F
/F"-&F3"
F03
Gc           
         [        [        [        S5      [        S5      5       VVs/ s H  u  p[        X5      PM     snn5      n[        USS9nU R                  R                  U5      nUR                  S:X  d   eU R                  R                  USS9nUR                  S:X  d   eUR                  R                  S:X  d   eU R                  R                  UR                  5      nUR                  U R                  R                  :X  d   eUR                  R                  U R                  R                  :X  d   eg s  snnf )Nr   r   r;   z
epsg:26909)	r   rE   rF   r   rA   rm   r<   r   r   )rK   rM   rN   rz   r   new_dfs         r%   test_set_geometry_crs#TestDataFrame.test_set_geometry_crs  s   #eAha2IJ2I$!%+2IJK t-%%b)zz[((( %%bl%;zz\)))""l222 %%dkk2zzTWW[[(((""dggkk111 Ks   E
c                    U R                   R                  nUR                  S5      nUR                  5       U R                   S'   U R                   R	                  S5      nSU;   d   e[        UR                  U5        [        R                  " [        5         U R                   R	                  SSS9nS S S 5        SW;  d   e[        UR                  U5        g ! , (       d  f       N-= f)Nd   simplified_geometryTdrop)	rA   r   simplifyr   rm   r   rk   warnsFutureWarning)rK   gg_simplifiedr$   rJ   s        r%   test_set_geometry_col#TestDataFrame.test_set_geometry_col&  s    GGzz#)5):):)<%&gg""#89 %+++s||\: \\-(''&&'<4&HC )$C///s||\: )(s   C
C(c                 h   [        [        S5      [        S5      5       VVs/ s H  u  p[        X5      PM     nnnU R                  R	                  USS9nUb   e[        X0R                  R                  U R                  R                  S9n[        U R                  R                  U5        g s  snnf )Nr   Tr   r   )
rE   rF   r   rA   rm   r   r   r<   r   r   )rK   rM   rN   rz   rets        r%   test_set_geometry_inplace'TestDataFrame.test_set_geometry_inplace6  s    (+E!HeAh(?@(?a(?@gg""4"6{{WW]]Dtww//6	 As   B.c                    [        [        U R                  5      S-
  SS5      U R                  l        0 n[        [        U R                  5      5       H  n[	        X"5      X'   M     [        U5      nU R                  R                  U5      nUR                  5        H-  u  p%X%S   R                  :X  d   eX%S   R                  :X  a  M-   e   g )Nr   r   )
rF   r   rA   r   r   r   rm   iterrowsrM   rN   )rK   dir   rA   rs         r%   test_set_geometry_series&TestDataFrame.test_set_geometry_series=  s     c$''lQ.B7s477|$A;AD %aL WW!!!$KKMDA*'''*''' "r'   c                     [         R                  " SS/[         R                  " / 5      S9nUR                  S5      n[	        U[
        5      (       d   e[	        UR                  [         R                  5      (       d   eg )Nar   )r|   r   )r}   r~   DatetimeIndexrm   ru   r   r   )rK   rA   results      r%   test_set_geometry_empty%TestDataFrame.test_set_geometry_emptyR  s`    \\3
"32;K;KB;OP,&,////&,,(8(89999r'   c                     U R                   R                  U R                   R                  S S 2S4'   U R                   R                  [        R
                  " S5      5      nUR                  R                  S:X  d   eg Nr   )rA   r   locrm   r   int64ri   r   s     r%   test_set_geometry_np_int&TestDataFrame.test_set_geometry_np_intX  sV     GG,,AqDWW!!"((1+.{{1$$$r'   c                    [        5       nU R                  R                  US'   Sn[        R                  " [
        US9   UR                    S S S 5        / SQnU R                  R                  5       R                  U R                  R                  S9U   n[        R                  " [
        SS9   UR                    S S S 5        SnSn[        R                  " [
        US9   UR                    S S S 5        [        R                  " [
        US9   [        5       R                    S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ng= f! , (       d  f       g = f)	Nrz   z0active geometry column to use has not been set. r   )BoroCodeBoroNamero   ro   zis not present.z)There are columns with geometry data typez5There are no existing columns with geometry data type)r   rA   r   rk   rl   r   r   assign)rK   rA   msg_geo_col_nonecol_subset_drop_geometryr$   msg_other_geo_cols_presentmsg_no_other_geo_colss          r%   test_get_geometry_invalid'TestDataFrame.test_get_geometry_invalid]  s   ^WW%%6
M]]>1ABKK C $E gglln##$''*:*:#;<TU]]>1BCLL D &Q" W]]>1KLLL M ]]>1FGN## HG CB
 DC
 ML HGs/   D-/D>!EE -
D;>
E
E 
E.c                 L   U R                   R                  U R                   R                  S9R                  S5      nUR                  S S 2SS/4   nUR
                  S:X  d   eSn[        R                  " [        US9   UR                    S S S 5        g ! , (       d  f       g = f)Nr   ro   r   r   zis not present. r   )	rA   r   r   rm   r   rj   rk   rl   r   )rK   rA   msg_geo_col_missings      r%   #test_get_geometry_geometry_inactive1TestDataFrame.test_get_geometry_geometry_inactives  s    WW^^$''"2"2^3@@IVVA
J//0''72220 ]]>1DEKK FEEs   ?B
B#c                 (   [         R                  " [        SS9   SU R                  R                  l        S S S 5        [         R                  " [        SS9   SU R                  l        S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)Nz6Overriding the CRS of a GeoSeries that already has CRSr   z	epsg:2100z9Overriding the CRS of a GeoDataFrame that already has CRSr8   )rk   r   DeprecationWarningrA   r   r<   rT   s    r%   "test_override_existing_crs_warning0TestDataFrame.test_override_existing_crs_warning~  sn    \\J
 $/DGG 	
 \\M
 &DGGK	
 

 

 
s   A2B2
B 
Bc                    U R                   R                  S:X  d   e[        U R                   R                  U R                   R                  S.5      nUR                  b   eUR                  S5      R                  S:X  d   e[        U R                   R                  U R                   R                  S.5      nUR                  b   eUR                  S5      R                  S:X  d   eUR                  S5      R                  S:X  d   eg )Nr   foobarr   r   )rA   active_geometry_namer   r   r   rm   )rK   	no_activemultiples      r%   test_active_geometry_name'TestDataFrame.test_active_geometry_name  s    ww++z999 !)9)9$''BRBR!ST	--555%%e,AAUJJJ  (8(8AQAQ RS,,444$$U+@@EIII$$U+@@EIIIr'   c                 j   U R                   nUR                  U5      u  p#[        X!5        [        X15        UR                  UR                  5       5      u  p#[        X!5        [        X15        [        R
                  (       ae  UR                  5       R                  S SS9nUR                  U5      u  p#[        X!5        UR                  c   e[        X45        UR                  b   e[        R                  " UR                  SSS95      nUR                  USS9u  p#[        X!5        [        U5      [        R                  L d   e[        X55        UR                  SS  R                  5       nUR                  S S R                  5       nUR                  5       n[        R                  UR                  S'   UR                  5       n	[        R                  U	R                  S'   UR                  U5      u  p#[        X(5        [        X95        [        R
                  (       a  UR                  5       R                  S SS9n
U	R                  5       R                  S SS9nUR                  U
5      u  p#[        X(5        UR                  c   e[        X;5        UR                  b   e[        R                  " UR                  SSS95      n[        R                  " U	R                  SSS95      nUR                  USS9u  p#[        X(5        [        U5      [        R                  L d   e[        X=5        g )NT)allow_overrider   r   axisr   r   )r$   alignr   r   rY   rZ   set_crsr<   r}   r~   r   rX   r   ilocr   nan)rK   rA   res1res2df_nocrs	df_nogeomr#   r$   exp1exp2	df2_nocrs
exp2_nocrs
df2_nogeomexp2_nogeoms                 r%   
test_alignTestDataFrame.test_align  s   XXXXb\
!$+!$+XXbggi(
!$+!$+wwy((d(CH(+JD%d/88'''%d588### LL!!<=	XXiaX0
!$+DzR\\)))4+ ggabk ggcrl!wwyvv		!wwy		"YYs^
!$-!$-
**4*EI,,T$,GJ9-JD%d188'''%d788###\\#((:A(">?
ll499Za9#@AYYzY2
!$-DzR\\)))4-r'   c                 J   U R                   R                  SS9n[        R                  " U5      nUS   S:X  d   e[	        US   5      S:X  d   eSUS   S   R                  5       ;   d   eUS   S   S	   S
   S   S   S   n[        R                  R                  USS/5        g )NTto_wgs84rX   FeatureCollectionfeaturesr   idr   r   coordinatesg,;RgyLhHD@)	rA   to_jsonjsonloadsr   keysr   testingassert_allcloserK   textr?   coords       r%   test_to_jsonTestDataFrame.test_to_json  s    ww-zz$F|22224
#$)))tJ'*//1111 Z #J/>qA!DQG


""5+<>N*OPr'   c                     U R                   R                  5       nS Ul        [        R                  " S5      n[
        R                  " [        US9   UR                  5         S S S 5        g ! , (       d  f       g = f)NzoYou are calling a geospatial method on the GeoDataFrame, but the active geometry column to use has not been setr   )	rA   r   rj   reescaperk   rl   r   r  )rK   rA   r   s      r%   'test_to_json_missing_geom_errors_nicely5TestDataFrame.test_to_json_missing_geom_errors_nicely  sS    WW\\^ $( ii=
 ]]>5JJL 655s   A++
A9c                     U R                   R                  5       n[        R                  " U5      nUS   S   S   S   S   S   S   nUSS/:X  d   eg )Nr  r   r   r  g  xқ-Ag  `ZA)rA   r  r  r  r  s       r%   test_to_json_wgs84_false&TestDataFrame.test_to_json_wgs84_false  s]    ww zz$Z #J/>qA!DQG*,>????r'   c                     S U R                   R                  R                  l        [        R
                  " [        SS9   U R                   R                  SS9  S S S 5        g ! , (       d  f       g = f)NzCRS is not setr   Tr  )rA   r   rt   r<   rk   rl   r   r  rT   s    r%   test_to_json_no_crs!TestDataFrame.test_to_json_no_crs  sG    %)"]]:-=>GGOOTO* ?>>s   A""
A0z<ignore:Geometry column does not contain geometry:UserWarningc                 6   U R                   R                  5       nUS   US'   [        R                  " [	        U5      5      US'   UR                  SSS9  UR                  5       n[        R                  " U5      nUS   S:X  d   e[	        US   5      S:X  d   eg )	Nr   rz   Tr   rX   r  r  r   )	rA   r   r   r   r   rm   r  r  r  )rK   rA   r  r?   s       r%   test_to_json_geom_col#TestDataFrame.test_to_json_geom_col  s     WW\\^
^6
3r7+:
-zz|zz$F|22224
#$)))r'   c                     U R                   S/   R                  5       n[        R                  " U5      n[	        US   5      S:X  d   eSUS   S   R                  5       ;   d   eg )Nr   r  r   r  r   rA   r  r  r  r   r  )rK   r  r?   s      r%   test_to_json_only_geom_column+TestDataFrame.test_to_json_only_geom_column  sb    ww
|$,,.zz$4
#$)))tJ'*//1111r'   c                 h   [         R                  U R                  R                  U R                  S   S:H  S4'   U R                  R	                  5       n[
        R                  " U5      n[        US   5      S:X  d   eUS    H,  nUS   n[        U5      S:X  d   eUS   S:X  d  M$  US   c  M,   e   g )Nr   Queensr   r  r   
propertiesr   r   r  rA   r   r  r  r  r   rK   r  r?   fpropss        r%   test_to_json_naTestDataFrame.test_to_json_na
  s    EGVVDGGJ'83\ABww zz$4
#$)))j!AlOEu:?"?Z H,\*222	 "r'   c                     [         R                  " [        5         U R                  R	                  SS9  S S S 5        g ! , (       d  f       g = f)Ngarbagena)rk   rl   r   rA   r  rT   s    r%   test_to_json_bad_na!TestDataFrame.test_to_json_bad_na  s,    ]]:&GGOOyO) '&&s	   >
Ac                 b   [         R                  U R                  R                  U R                  S   S:H  S4'   [         R                  U R                  R                  U R                  S   S:H  S4'   U R                  R	                  SS9n[
        R                  " U5      n[        US   5      S	:X  d   eUS    Hq  nUS
   nUS   S:X  a#  [        U5      S:X  d   eSU;  d   eSU;   d   eM4  US   S:X  a#  [        U5      S:X  d   eSU;  d   eSU;   d   eM`  [        U5      S:X  a  Mq   e   g )Nr   r3  r   Bronx
Shape_Lengr   r=  r  r   r4  r   r   r5  r6  s        r%   test_to_json_dropna!TestDataFrame.test_to_json_dropna  s*   EGVVDGGJ'83\ABDFFFDGGJ'72L@Aww&)zz$4
#$)))j!AlOEZ H,5zQ&#5000 $u,,,z"g-5zQ&#5000#u,,,5zQ& "r'   c                 ~   [         R                  U R                  R                  U R                  S   S:H  S4'   [         R                  U R                  R                  U R                  S   S:H  S4'   U R                  R	                  SS9n[
        R                  " U5      n[        US   5      S	:X  d   eUS    H  nUS
   n[        U5      S:X  d   eUS   S:X  a*  [         R                  " US   5      (       d   eSU;   d   eML  US   S:X  d  MW  [         R                  " US   5      (       d   eSU;   a  M   e   g )Nr   r3  r   rB  rC  keepr=  r  r   r4  r   )	r   r  rA   r   r  r  r  r   isnanr6  s        r%   test_to_json_keepna!TestDataFrame.test_to_json_keepna2  s"   EGVVDGGJ'83\ABDFFFDGGJ'72L@Aww&)zz$4
#$)))j!AlOEu:?"?Z H,xxl 34444 $u,,,z"g-xxl 34444#u,,, "r'   c                     U R                   R                  SS9n[        R                  " U5      n[	        US   5      S:X  d   eUS    H  nSUR                  5       ;  a  M   e   g )NTdrop_idr  r   r  r/  rK   r  r?   r7  s       r%   test_to_json_drop_id"TestDataFrame.test_to_json_drop_idE  s_    wwt,zz$4
#$)))j!Aqvvx''' "r'   c                     U R                   S/   R                  SS9n[        R                  " U5      n[	        US   5      S:X  d   eUS    H  nSUR                  5       ;  a  M   e   g )Nr   TrL  r  r   r  r/  rN  s       r%   %test_to_json_drop_id_only_geom_column3TestDataFrame.test_to_json_drop_id_only_geom_columnL  si    ww
|$,,T,:zz$4
#$)))j!Aqvvx''' "r'   c                     [        / SQ// SQ[        SS5      /S9n[        R                  " [        SS9   UR                  5         S S S 5        g ! , (       d  f       g = f)Nr   r   r   )r   br   r   )r?   r|   r   4GeoDataFrame cannot contain duplicated column names.r   )r   r   rk   rl   r   r  r   s     r%   #test_to_json_with_duplicate_columns1TestDataFrame.test_to_json_with_duplicate_columnsS  sL    oq!
 ]]T
 JJL
 
 
s   A
Ac                     U R                   R                  5       n[        U5      [        L d   eU R                   R                  UR                  :X  d   eg r/   )rA   r   rX   r   r<   )rK   r$   s     r%   	test_copyTestDataFrame.test_copy\  s=    ggllnCyL(((ww{{cgg%%%r'   c                     [        5       nUR                  5       n[        U5      [         L d   eUR                  SS9n[        U5      [         L d   eg )NT)deep)r   r   rX   )rK   rA   r$   rJ   s       r%   test_empty_copyTestDataFrame.test_empty_copya  sH    ^ggiCyL(((gg4g CyL(((r'   c                     [        [        R                  " S/ SQ05      5      n[        U5      [         L d   e[        UR	                  5       5      [         L d   eg )Nr   rU  )r   r}   r~   rX   r   r   s     r%   test_no_geom_copyTestDataFrame.test_no_geom_copyi  sD    ",,Y'789Bx<'''BGGI,...r'   c                     [        S/ 05      nUR                  R                  S:X  d   e[        S/ 0SS9nUR                  R                  S:X  d   e[        / S9nUR                  R                  S:X  d   eg )Nr   r   r   )r   r   dtyper   s     r%   
test_emptyTestDataFrame.test_emptyn  ss    :r*+{{  J...3)c2{{  J...2&{{  J...r'   c                     U R                   U R                   S   R                  R                  S5         n[        U5      S:X  d   eUS   R                  nSU;   d   eSU;   d   e[        U5      [        L d   eg )Nr   rd   r   BrooklynrB  )rA   strcontainsr   r   rX   r   )rK   rA   boross      r%   test_bool_indexTestDataFrame.test_bool_indexv  sw    WWTWWZ(,,55c:;2w!||:%%U"""%Bx<'''r'   c                 J   U R                   R                  SS2SS24   R                  (       d   e[        U R                   U R                   R                  S S 2S S 24   5        [        U R                   R                  SS  U R                   R                  SS 2S S 24   5        [        U R                   R                  SS  U R                   R                  S S 2SS 24   5        [        U R                   R                  SS  U R                   R                  SS 2SS 24   5        g )Nr   r   )r$   cxemptyr   r   rT   s    r%   test_coord_slice_points%TestDataFrame.test_coord_slice_points  s    xx{{2b5"R%<(....488TXX[[A%67488<<+TXX[[Q-?@488<<+TXX[[AB-?@488<<+TXX[[QR-@Ar'   c                 R   S/[        SS5      /S.n[        R                  " USS9n[        R                  (       a  UR
                  S:X  d   eOUR
                  b   eUR                  S:X  d   eS/[        SS5      /S.n[        R                  " US	S
9nUR                  S	:X  d   eg )Nr   g        )rc   r   i  r;   r   r   )rd   re   re   re  )r   r   	from_dictrY   rZ   r<   rj   )rK   r?   rA   s      r%   test_from_dictTestDataFrame.test_from_dict  s    SuS#&78##Dd366[(((66>!>'':555SuS#&78##D:>'':555r'   c                 `   [         R                  " S5      nUR                  U5       n[        U5      nUR                  nS S S 5        [
        R                  " WWS9n[        USS9  [        R                  (       a  UR                  U:X  d   eg UR                  b   eg ! , (       d  f       Ne= f)Nfionar;   T)case_sensitive)rk   importorskipopenr   crs_wktr   from_featuresr   rY   rZ   r<   )rK   r@   r{  r7  r  r<   rA   s          r%   test_from_features TestDataFrame.test_from_features  s    ##G,ZZ&!AwH))C ' ''c:D166S= =66>!> '&s   B
B-c                    [        SS5      nSSS0UR                  S.n[        SS5      nSSS0UR                  S.n[        SS5      nSS UR                  S.n[        R                  " X$U/5      nUSS/   n[        R
                  R                  S[        R                  S	.[        R                  SS	.[        R                  [        R                  S	./5      n	[        X5        g )
Nr   Featurer   r   rX   r4  r   r   rV  r   )r   rV  )
r   __geo_interface__r   r  r}   r~   rw  r   r  r   )
rK   p1f1p2f2p3f3rA   r   r   s
             r%   'test_from_features_unaligned_properties5TestDataFrame.test_from_features_unaligned_properties  s    1a[(,,
 1a[(,,
 1a[,,
 ''5S#J<<))266""&&q$9bff;UV
 	8,r'   c                     SnSn[         R                  " U5      n[        R                  " U5      n[         R                  " U5      n[        R                  " U5      n[	        XF5        g )NaO  {
          "type": "FeatureCollection",
          "features": [
            {
              "type": "Feature",
              "properties": {},
              "geometry": {
                "type": "Polygon",
                "coordinates": [
                  [
                    [
                      11.3456529378891,
                      46.49461446367692
                    ],
                    [
                      11.345674395561216,
                      46.494097442978195
                    ],
                    [
                      11.346918940544128,
                      46.49385370294394
                    ],
                    [
                      11.347616314888,
                      46.4938352377453
                    ],
                    [
                      11.347514390945435,
                      46.49466985846028
                    ],
                    [
                      11.3456529378891,
                      46.49461446367692
                    ]
                  ]
                ]
              }
            }
          ]
        }aQ  {
          "type": "FeatureCollection",
          "features": [
            {
              "type": "Feature",
              "properties": null,
              "geometry": {
                "type": "Polygon",
                "coordinates": [
                  [
                    [
                      11.3456529378891,
                      46.49461446367692
                    ],
                    [
                      11.345674395561216,
                      46.494097442978195
                    ],
                    [
                      11.346918940544128,
                      46.49385370294394
                    ],
                    [
                      11.347616314888,
                      46.4938352377453
                    ],
                    [
                      11.347514390945435,
                      46.49466985846028
                    ],
                    [
                      11.3456529378891,
                      46.49461446367692
                    ]
                  ]
                ]
              }
            }
          ]
        })r  r  r   r  r   )rK   geojson_properties_objectgeojson_properties_nullgjson_pogdf1
gjson_nullgdf2s          r%   #test_from_features_empty_properties1TestDataFrame.test_from_features_empty_properties  s^    '%!R'#T ::78))(3 ZZ 78
))*54&r'   c                     " S S5      n[        SS5      nU" US5      n[        SS5      nU" US5      n[        R                  " X5/5      n[        UR                  5      SS/:X  d   eUR
                  R                  5       X$/:X  d   eg )Nc                       \ rS rSrS rSrg)JTestDataFrame.test_from_features_geom_interface_feature.<locals>.Placemarki  c                 2    SSU0UR                   S.U l         g )Nr  r   r  r  )rK   rz   vals      r%   __init__STestDataFrame.test_from_features_geom_interface_feature.<locals>.Placemark.__init__  s    %#&* $ 6 6*&r'   r  N)__name__
__module____qualname____firstlineno__r  __static_attributes__ r'   r%   	Placemarkr    s    r'   r  r   r   r   r   r   )r   r   r  sortedr|   r   tolist)rK   r  r  r  r  r  rA   s          r%   )test_from_features_geom_interface_feature7TestDataFrame.test_from_features_geom_interface_feature  s    	 	 1a[r11a[r1''1bjj!c:%6666{{!!#x///r'   c                    / SQ/ SQ/ SQS.n[         R                  " U5      n[        US   US   5       Vs/ s H  n[        U5      PM     nn[	        X$S9nU/ SQ   n[        R
                  " UR                  5      n[        Xv5        [        R
                  " UR                  S	   5      n[        Xv5        [        R
                  " U5      n[        Xv5        g s  snf )
N)r   rV  c)-   .   g     G@)igL^g^)ri   latlonr  r  re  )r   ri   r  r  r  )r}   r~   rE   r   r   r  r  r   )rK   r?   rA   xyr   gdfr   r   s           r%   test_from_feature_collection*TestDataFrame.test_from_feature_collection,  s    #!)
 \\$(+BuIr%y(AB(A"E"I(AB219: (()>)>?3) (()>)>z)JK3) ((-3) Cs   Cc                    [         R                  " [        [        U R                  5      5      [
        R                  " U R                  R                  5      S.U R                  R                  S9nUR                  SU R                  R                  S9n[        U[         R                  5      (       d   e[        U[        5      (       d   e[        UR                  U R                  R                  5        UR                  R                  S:X  d   eSU;  d   e[        R                   " ["        5         UR                  SU R                  R                  SS9nS S S 5        [        U[         R                  5      (       d   e[        W[        5      (       d   eUR                  R                  S:X  d   eSU;   d   eSU;  d   eSU;   d   eSUR$                  S	'   UR$                  S	   S
:X  d   eUR$                  S	   S
:X  d   e[        R&                  " [(        5         UR                  SSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N)rc   re   r   re   r;   r   T)r<   r   r   r   rc   r   r   )r}   r~   rF   r   rA   r   rt   r   r   rm   r<   ru   r   r   ri   rk   r   r   r   rl   r   )rK   rA   gfgf2s       r%   test_dataframe_to_geodataframe,TestDataFrame.test_dataframe_to_geodataframeE  s   \\DGG%288DGG<L<L3MN''--
 __ZTWW[[_9"bll++++"l++++r{{DGG,<,<={{:---###\\-(//*$''++D/IC )"bll++++#|,,,,||  J...S   $$$R vvvf~"""wwv!###]]:&OOJO5 '& )( '&s   5&H<"I<
I

Ic                    [         R                  " [        [        U R                  5      5      U R                  R
                  R                  R                  U R                  R
                  R                  R                  S.U R                  R                  S9nUR                  5       n[        U[        US   US   5      U R                  R                  S9n[        U5      [         R                  L d   eSU;  d   e[        X5        [!        U[        5      (       d   e[#        US5      (       d   eSUR$                  S'   [        X5        S	US
'   [        X5        g )N)rc   latitude	longituder  r  r  )r   r<   r      r  r   rc   )r}   r~   rF   r   rA   r   centroidrN   rM   r   r   r   r	   r<   rX   r   ru   hasattrr   )rK   rA   df_copyr  s       r%   test_dataframe_not_manipulated,TestDataFrame.test_dataframe_not_manipulatedb  s   \\3tww<( GG,,5577!WW--6688
 ''--
 '')#B{OR
^D

 Bx2<<'''###2'"l++++r:&&&& v2'32'r'   c                     U R                   R                  S   S:X  d   e[        U R                   R                  S   5      U R                   R                  S   :X  d   eg )NrX   r  r  r   )rA   r  r   r   rT   s    r%   test_geodataframe_geointerface,TestDataFrame.test_geodataframe_geointerface}  sO    ww((04GGGG477,,Z89TWW]]1=MMMMr'   c                    U R                   R                  S S R                  5       n[        R                  UR
                  S'   [        [        UR                  SS95      5      S   nUS   b   e[        [        UR                  SS95      5      S   nSUR                  5       ;  d   e[        [        UR                  SS95      5      S   n[        R                  " US   5      (       d   e[        UR
                  S	   5      [        R                  L d   e[        [        UR                  SS95      5      n[        US   S
   [        5      (       d   e[        [        UR                  SS95      5      n[        US   S
   [        5      (       d   e[        [        UR                  SS95      5      n[        US   S
   [        5      (       d   eU/ SQ   n[        UR
                  S	   5      [        R                  L d   e[        [        UR                  SS95      5      n[        US   S
   [        5      (       d   e[        [        UR                  SS95      5      n[        US   S
   [        5      (       d   e[        [        UR                  SS95      5      n[        US   S
   [        5      (       d   e[        R                   " ["        SS9   U/ SQ   n[%        UR                  5       5        S S S 5        ['        SS/[)        SS5      [)        SS5      /S.5      n[        R                   " [*        5         [%        UR                  5       5        S S S 5        g ! , (       d  f       Nq= f! , (       d  f       g = f)Nr   )r   r   nullr=  r4  r   r   rG  )r   rC  rC  )rC  r   r   rW  r   )rC  rC  r   r   r   )r   rz   )rA   r   r   r   r  r   nextiteriterfeaturesr  rH  rX   float64ru   floatrk   rl   r   r   r   r   r   )rK   rA   r   df_only_numerical_colsdf_with_duplicate_columnss        r%   test_geodataframe_iterfeatures,TestDataFrame.test_geodataframe_iterfeatures  s   WW\\"1""$ "} d2??f?567Ej!)))d2??f?567E...d2??f?567Exxz*++++ BFF?+,

:::d2??f?567&.|<eDDDDd2??f?567&.|<eDDDDd2??f?567&.|<eDDDD "$$L!M*..?@BJJNNNd1>>&>IJK&.|<eDDDDd1>>&>IJK&.|<eDDDDd1>>&>IJK&.|<eDDDD]]T
 )+F)% *779:
 aVeAqk5A;5OPQ]]>*"# +*
 
 +*s   !M%M6%
M36
Nc                    [        [        SS5      /SS//S S.5      nSS/S S.n[        [        UR	                  SS95      5      R                  S5      nX#:X  d   eSSS/0n[        [        UR	                  S	S95      5      R                  S5      nX#:X  d   eSS/S S.n[        [        UR	                  S
S95      5      R                  S5      nX#:X  d   eg )Nr   r   )r   
non-scalartest_col)r  r  r  r=  r4  r  r   rG  )r   r   r  r  r  get)rK   rA   r   r   s       r%   *test_geodataframe_iterfeatures_non_scalars8TestDataFrame.test_geodataframe_iterfeatures_non_scalars  s    1+1vhDQ
 $%a&d;d2??f?567;;LI!!! 1a&)d2??f?567;;LI!!!#$a&d;d2??f?567;;LI!!!r'   c                     U R                   R                  SSS9nSUR                  5       ;  d   eUS    H  nSUR                  5       ;  a  M   e   g )Nr  Fr>  	show_bboxbboxr  )rA   to_geo_dictr  )rK   geofeatures      r%   !test_geodataframe_geojson_no_bbox/TestDataFrame.test_geodataframe_geojson_no_bbox  sQ    gg!!Vu!=SXXZ''':G/// 'r'   c                 ^   U R                   R                  SSS9nSUR                  5       ;   d   e[        US   5      S:X  d   e[	        US   [
        5      (       d   eUS    H$  n[	        U[        R                  5      (       d  M$   e   US    H  nSUR                  5       ;   a  M   e   g )Nr  Tr  r  r   r  )rA   r  r  r   ru   tupler   r  )rK   r  boundr  s       r%   test_geodataframe_geojson_bbox,TestDataFrame.test_geodataframe_geojson_bbox  s    gg!!Vt!<###3v;1$$$#f+u----[E!%4444 !:GW\\^+++ 'r'   c                     SS K nUR                  UR                  U R                  5      5      n[	        U R                  U5        g r   )pickler  dumpsrA   r   )rK   r  r$   s      r%   test_pickleTestDataFrame.test_pickle  s.    ll6<<01!$''3/r'   c                 2   [         R                  R                  U R                  S5      nU R                  R                  U5        [        R                  " U5      n[        U R                  U5        U R                  R                  UR                  :X  d   eg )Nzdf.pkl)
rG   rH   rI   rD   rA   	to_pickler}   read_pickler   r<   )rK   filename	unpickleds      r%   test_pickle_method TestDataFrame.test_pickle_method  sb    77<<h7(#NN8,	477I.ww{{imm+++r'   c                     [         R                  " S5      nU R                  R                  5       UR	                  S5      :X  d   eU R                  R                  S5      UR	                  S5      :X  d   eg )Npyprojz
EPSG:32618NAD83z
EPSG:26918)rk   r}  rA   estimate_utm_crsCRS)rK   r  s     r%   test_estimate_utm_crs#TestDataFrame.test_estimate_utm_crs  s\    $$X.ww'')VZZ-EEEEww''0FJJ|4LLLLr'   c                     SS/nSS/n[         R                  " U5      n[         R                  " U5      n[        X4S.5      n[        R                  " XS.5      n[        XeR                  5       5        g )Ns                      s            ?      ?s             @       @s            @      @)	geom_col0	geom_col1)r   from_wkbr   r}   r~   r   to_wkb)rK   wkbs0wkbs1gs0gs1r  expected_dfs          r%   test_to_wkbTestDataFrame.test_to_wkb  sr    <:	
::	
   '  '?@ll#KL;

5r'   c                     SS/nSS/n[         R                  " U5      n[         R                  " U5      n[        X4S.5      n[        R                  " XS.5      n[        XeR                  5       5        g )NzPOINT (0 0)zPOINT (1 1)zPOINT (2 2)zPOINT (3 3))r  r  )r   from_wktr   r}   r~   r   to_wkt)rK   wkts0wkts1r  r  r  r  s          r%   test_to_wktTestDataFrame.test_to_wkt  sb    ..  '  '334ll5#?@;

5r'   r1   )leftinnerright	predicate)
intersectswithinrl  c                     [        U5      n[        U5      n[        R                  " XVXS9nUR                  XaUS9n[        X5        g)u
Basic test for availability of the GeoDataFrame method. Other
sjoin tests are located in /tools/tests/test_sjoin.py
)r1   r  N)r
   r=   sjoinr   )	rK   r1   r  naturalearth_citiesnaturalearth_lowresr  r  r   r   s	            r%   
test_sjoinTestDataFrame.test_sjoin  sD     ,--.??4CMEi@!&3r'   distancer   r   z`dwithin` requires GEOS 3.10c                     [        [        / SQ/ SQ5      S9n[        [        SSSS5      /S9n[        R                  " X4USUS9nUR	                  XASUS9n[        Xe5        g)	z
Basic test for predicate='dwithin' availability of the GeoDataFrame method.
Other sjoin tests are located in /tools/tests/test_sjoin.py
)r   r   r   )r   r   r   re  r   r   dwithin)r1   r  r  N)r   r	   r   r=   r  r   )rK   r1   r  r  r  r   r   s          r%   test_sjoin_dwithin TestDataFrame.test_sjoin_dwithin  sa     ^Iy%IJs1aA&78??SI
 Ei(S!&3r'   max_distanceNr   distance_colz2ignore:Geometry is in a geographic CRS:UserWarningc                     [        U5      n[        U5      n[        R                  " XgXUS9nUR                  XqX#S9n	[        X5        g)r  )r1   r  r   N)r
   r=   sjoin_nearestr   )
rK   r1   r  r   r  r  r  r  r   r   s
             r%   test_sjoin_nearest TestDataFrame.test_sjoin_nearest3  sW     ,--.**S,
 ## $ 
 	"&3r'   c                     [        U5      n[        U5      nXDS   S:H     n[        R                  " X55      nUR                  U5      n[        Xv5        g)zs
Basic test for availability of the GeoDataFrame method. Other
clip tests are located in /tools/tests/test_clip.py
	continentSouth AmericaN)r
   r=   clipr   )rK   r  r  r  worldsouth_americar   r   s           r%   	test_clipTestDataFrame.test_clipI  sP    
 ,--.K0OCD>>$6=)!&3r'   c                    [        U5      n[        U5      nXDS   S:H     n[        R                  " X5SS9n[        R                  " X5SS9n[        R                  " / SQ5      n[        UR                  5      UR                  :H  R                  5       (       a   e[        UR                  5      UR                  :H  R                  5       (       d   e[        XR                  5        g)z-
Test sorting of geodataframe when clipping.
r&  r'  F)sortT)7   ;   >   X   e   r   z                           N)	r
   r=   r(  r}   Indexr  r   allr   )	rK   r  r  citiesr)  r*  unsorted_clipped_citiessorted_clipped_citiesexpected_sorted_indexs	            r%   test_clip_sortingTestDataFrame.test_clip_sortingV  s     ./-.K0OCD"+..U"S )v4 P "S!

 *0015L5R5RR
#% 	  (../3H3N3NN
#% 	  	02M2MNr'   c                 j    Uu  p4[         R                  " X4US9nUR                  XBS9n[        Xe5        g)zr
Basic test for availability of the GeoDataFrame method. Other
overlay tests are located in tests/test_overlay.py
)r1   N)r=   overlayr   )rK   r&   r1   r#   r$   r   r   s          r%   test_overlayTestDataFrame.test_overlaym  s5    
 $$S37S*!&3r'   )r<   rA   r$   rJ   rD   )Nr  r  r  r  rO   rU   r[   rk   markskipifrY   rZ   rp   filterwarningsrw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r#  r&  r)  r,  r0  r9  r?  rD  rI  rO  rR  rX  r[  r_  rb  rg  rn  rt  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  parametrizer  GEOS_GE_310r  r#  r+  rD  rH  r  r  r'   r%   r4   r4   2   sm   
$$,
 [[F---6GH4 I4( [[ HI9 J981$&FP)0>@*& [[F---6GH2 I2$; 7(*:%
$,	 [[F---6GH& I&J5.n [[F---6GH	Q I	Q
@+
 [[F	*	*23*
',-&((&
)/
/(B6"-<['z0"*26:(6N3$j"$0,0,M686 [[U$>?[[[*NO
4 P @
4 [[U$>?[[Z!Q0[[-  4	 1 @4 [[U$>?[[^dAY7[[^dJ-?@[[ TU4 V A 8 @4$4O.	4r'   r4   r   c                    [        U [        5      (       d   e[        U R                  [        5      (       d   e[        X   [        5      (       d   eU R                  U:X  d   eU R                  R
                  U:X  d   e[        U R                  R                  [        5      (       d   e[        U R                  R                  [        5      (       d   eg r/   )
ru   r   r   r   rj   ri   r   r   rf  r   )rA   geometry_columns     r%   check_geodataframerQ  y  s    b,''''bkk9----b)95555##666;;...bkk((-8888bkk''7777r'   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS r\R$                  R'                  SSS/5      S 5       rS rS rS rS rS rS rS rS rSrg)TestConstructori  c           	         [        S5      [        R                  " S5      [        S5       Vs/ s H  n[        X5      PM     snS.n[	        U5      n[        U5        [	        U[        S5      S9n[        U5        [        UR                  [        R                  " [        S5      5      5        [	        U/ SQS9n[        U5        [        UR                  [        R                  " / SQ5      5        [	        USS	/S9n[        U5        [        UR                  [        R                  " SS	/5      5        [        US   [        R                  " [        S5      SS
95        g s  snf )Nr         @r   abcr  )rd   rc   r   r{   rc   r   ri   )rF   r   r   r   r   rQ  r   r   r   r}   r>  r|   r   SeriesrK   rM   r?   rA   s       r%   	test_dictTestConstructor.test_dict  s   q3.3Ah7hqh7

 $2 $d5k22288RXXd5k%:;$(>?22::rxx0F'GH$j(9:22::rxxj0A'BCBsGRYYuQxc%BC# 8s   E c                 \   [         R                  " [        S5      5      [         R                  " [        R                  " S5      5      [        [        S5       Vs/ s H  n[        X5      PM     sn5      S.n[        U5      n[        U5        [        U[         R                  " SS/5      S9n[        U5        [        UR                  [         R                  " SS/5      5        US   R                  5       SS/:X  d   e[         R                  " [        S5      5      [        R                  " S5      [        [        S5       Vs/ s H  n[        X5      PM     sn5      S.n[        R                  " [        5         [        USS/S9  S S S 5        g s  snf s  snf ! , (       d  f       g = f)Nr   rU  r   r   r   r  rc   )r}   rX  rF   r   r   r   r   r   rQ  r>  r   r   r  rk   rl   r   rY  s       r%   test_dict_of_series#TestConstructor.test_dict_of_series  s3   58$299S>*!a"A15;"AB
 $2$bhh1v&672288RXXq!f%56#w~~Aq6))) 58$3!a"A15;"AB

 ]]:&aV, '&# #B #B&&s   FF=F
F+c           	         [        S5      [        R                  " S5      [        S5       Vs/ s H  n[        X5      PM     snS.n[	        USS9n[        US5        [        R                  " [        5         [	        USS9nS S S 5        [	        U5      n[        R                  " [        5         UR                  nS S S 5        UR                  S5      n[        US5        [	        USSS/S9n[        US5        [        UR                  [        R                  " SS/5      5        [!        US   [        R"                  " [        R                  " S5      SS	95        [	        USSS
/S9n[        US5        [        UR                  [        R                  " SS
/5      5        [!        US
   [        R"                  " [        S5      S
S	95        g s  snf ! , (       d  f       GNW= f! , (       d  f       GN/= f)Nr   rU  rc   rd   r   r   re  r   rd   )r   r|   rW  rc   )rF   r   r   r   r   rQ  rk   rl   r   r   r   rm   r   r|   r}   r>  r   rX  )rK   rM   r?   rA   _s        r%   test_dict_specified_geometry,TestConstructor.test_dict_specified_geometry  ss   q305a915;9
 $62|,]]:&dZ8B '
 $]]>*A + __\*2|, $\?RS2|,2::rxxl0C'DEBsGRYYryy~C%HI$c?RS2|,2::rxxs0C'DEBsGRYYuQxc%BC9 : '& +*s   G7G/G$
G!$
G3c           	      X   [        S5      [        R                  " S5      [        S5       Vs/ s H  n[        X5      PM     snS.n[        R                  " US   US   US   /[
        S9R                  n[        U/ SQS9n[        U5        [        U/ S	QS
S9n[        US
5        g s  snf )Nr   rU  r   rc   rd   r   )rf  r{   r`  r   r|   r   )	rF   r   r   r   rt   objectTr   rQ  )rK   rM   r?   r   rA   s        r%   
test_arrayTestConstructor.test_array  s    q3.3Ah7hqh7

 HHd3icD,<=VLNN!%;<2!%=U2|, 8s   B'c           	      X   [        S5      [        R                  " S5      [        S5       Vs/ s H  n[        X5      PM     snS.n[	        U5      n[
        R                  " U5      n[        U5        [        U5      [
        R                  L d   eX44 H  n[	        U5      n[        U5        [	        U[
        R                  " SS/5      S9n[        U5        [        UR                  [
        R                  " SS/5      5        US   R                  5       SS/:X  d   e[	        USS	/S
9n[        U5        [        UR                  [
        R                  " SS	/5      5        [        R                  " [         5         [	        USS9  S S S 5        M     g s  snf ! , (       d  f       GM  = f)Nr   rU  r   r   r   r  rc   r   rd   r{   r   re  )rF   r   r   r   r   r}   r~   rQ  rX   r>  r   r   r  r|   rk   rl   r   rK   rM   r?   gpdfpddfrA   r   s          r%   test_from_frameTestConstructor.test_from_frame  sE   q3.3Ah7hqh7

 D!||D!4 DzR\\))),Br"Cs#r1a&)9:Cs#syy"((Aq6*:;s8??$A...rJ+<=Cs#s{{BHHj#5F,GHz*R,7 +*  8( +*s   F<F
F)	c           	      `   [        S5      [        R                  " S5      [        S5       Vs/ s H  n[        X5      PM     snS.n[	        USS9n[        US5        [        R                  " U5      nX44 H  n[	        USS9n[        US5        M     [	        U5      n[        US5        g s  snf )Nr   rU  r`  r   re  )rF   r   r   r   r   rQ  r}   r~   rk  s          r%   "test_from_frame_specified_geometry2TestConstructor.test_from_frame_specified_geometry  s    q305a915;9
 D<84.||D!,BrL9CsL1 
 $2|, :s   B+c           
         [        [        S5       Vs/ s H  n[        X5      PM     sn[        S5      S.5      S/   n[        [        S5       Vs/ s H  n[        X5      PM     snS9n[        U5        [	        X25        [        S[        S5       Vs/ s H  n[        X5      PM     sn05      n[        U5        [	        X25        [        S[        S5       Vs/ s H  n[        X5      PM     sn0SS9n[        US5        UR                  SS0S9R                  S5      n[	        X25        g s  snf s  snf s  snf s  snf )Nr   )r   otherr   re  r   r{   )r   rF   r   rQ  r   r   rm   )rK   rM   exprA   s       r%   test_only_geometry"TestConstructor.test_only_geometry  s   /4Qx8x!%+x858L
, q#BAE!K#BC2!"*:U1X'FXaX'FGH2!"*q:AE!K:;l
 	2|,jj*l!;j<II,W!"*! 9 $C (G
 ;s   D.D3D8
D=
c                     [        S5      [        R                  " S5      S.n[        U5      n[	        U5      [        L d   e[        SS/05      n[        UR                  5      S/:X  d   eg )Nr   rU  rc   rd   rM   r   )rF   r   r   r   rX   r   rM   )rK   r?   rA   r  s       r%   test_no_geometries"TestConstructor.test_no_geometries%  s\    1XBIIcN3$Bx<'''C!:&CEE{qc!!!r'   c                     [        5       n[        U5      [         L d   e[        / / S./ S9n[        U5      [         L d   eg )Nry  re  )r   rX   r   s     r%   rg  TestConstructor.test_empty.  s>    ^Bx<''',r:Bx<'''r'   c                 v   [        SS5      [        SS5      [        SS5      /n[        U5      n[        / SQUS.SS/SS9n[        U5        [	        UR
                  5      SS/:X  d   e[        / SQUS.SS/[        R                  " / S	Q5      SS
9n[        U5        [	        UR
                  5      SS/:X  d   eg )Nr   r   r   rU  )r   r   r   r   re  )r   r   r   )r|   r   r   )r   r   r   rQ  r   r|   r}   r>  rK   geomsr   r  s       r%   test_column_ordering$TestConstructor.test_column_ordering5  s    q!eAqk5A;7u,%

 	3CKK Z$5555 ,%((9%	
 	3CKK Z$5555r'   c                     [        SS5      [        SS5      [        SS5      /n[        U5      n[        S/ SQ0US9n[        USS9  [        US	S
9n[        S/ SQ0US9n[        USS9  g )Nr   r   r   r   rU  re  r   )rP  my_geomrW  )r   r   r   rQ  r  s       r%   /test_do_not_preserve_series_name_in_constructor?TestConstructor.test_do_not_preserve_series_name_in_constructorJ  sn     q!eAqk5A;7uC+b93
;u9-C+b93
;r'   c           	      
   [         R                  " / SQ/ SQS.5      n[         R                  " [        S5       Vs/ s H  n[	        X"5      PM     sn5      n[        XS9n[        UR                  [        U5      5        g s  snf )NrU  )r   r   r   )r   r   r   re  )	r}   r~   rX  rF   r   r   r   r   r   )rK   r?   r   r  r   s        r%   test_overwrite_geometry'TestConstructor.test_overwrite_geometryV  s\    ||IFG		a915;9:40s||Yu-=> :s   B c                    [         R                  " [        [        S5      [        S5      5       VVs/ s H  u  p[	        X5      [	        X5      S.PM     snn5      nUR                  SS0S9n[        R                  " [        5         [        U5        S S S 5        UR                  SS0S9n[        R                  " [        5         [        USS9  S S S 5        g s  snnf ! , (       d  f       NS= f! , (       d  f       g = f)Nr   )r   rz   rz   r   r{   re  )
r}   r~   rE   rF   r   r   rk   rl   r   r   )rK   rM   rN   rA   r$   rJ   s         r%   test_repeat_geo_col#TestConstructor.test_repeat_geo_col^  s    \\  a%(33DA #1[%+>3
 ii 4i5]]:& ' iiV 4i5]]:&v. '& '&
 '&s   #C
C!C2!
C/2
D rf  r   rf  c                 0   [         R                  " [        SS5      [        SS5      /[        SS5      [        SS5      //5      nUR                  U5      n[         R                  R                  S/SS//5      Ul        [        U5      n[        R                  " [        SS9   UR                    S S S 5        UR                  S5      nUR                  UR                  :X  d   e[        UR                  [        5      (       d   eg ! , (       d  f       N]= f)	Nr   r   r   r   r   z .*geometry .* has not been set.*r   )r   r   )r}   r~   r   astype
MultiIndexfrom_productr|   r   rk   rl   r   r   rm   r   ru   r   )rK   rf  rA   r  res_gdfs        r%   #test_multiindex_with_geometry_label3TestConstructor.test_multiindex_with_geometry_labelp  s     \\E!QKq!5aU1a[7QRSYYu]]//*1v0FG
2]]>1STLL U""?3}}		)))'**I6666	 UTs   #D
Dc                    Sn[        SSS/05      nUR                  5       n[        R                  " SS/SS/5      n[        R
                  " [        US9   XCS'   S S S 5        UR                  S:X  d   eUR                  5       n[        R
                  " [        US9   XEl        S S S 5        UR                  S:X  d   eUR                  5       n[        R
                  " [        SS9   S	US'   S S S 5        UR                  b   e[        R
                  " [        US9   UR                  5       R                  US
9nS S S 5        WR                  S:X  d   eUR                  5       nXHS'   XHS'   UR                  S5      nUSS/   n	U	R                  S:X  d   eXIS'   U	R                  S:X  d   eg ! , (       d  f       GN[= f! , (       d  f       GN#= f! , (       d  f       N= f! , (       d  f       N= f)Nz:You are adding a column named 'geometry' to a GeoDataFramer   r   r   r   r   r   z)Geometry column does not contain geometryr   re  ro   geom3)r   r   r   from_xyrk   r   r   rj   r   UserWarningr   rm   )
rK   r   r  r  geo_colgdf4gdf5gdf3gdf6subsets
             r%   test_default_geo_colname_none-TestConstructor.test_default_geo_colname_none  s   LC!Q=)xxz##QFQF3\\-u5& 6))Z777xxz\\-u5#M 6))Z777 xxz\\J
  %D
 ))111\\-u588:$$g$6D 6))Z777
 xxzWW  )sGn%++w666$z++w666= 65 65
 

 65s0   F/G(GG$/
F>
G
G!$
G2c                    Sn[         R                  " SS/SS//SS/SS//S9nUS   nUS	   n[        X![        X45      S
9n[        R
                  (       a.  UR                  U:X  d   eUR                  R                  U:X  d   eUR                  R                  S:X  d   eUR                  S:X  d   eUR                  R                  S:X  d   eg )N	EPSG:4326r   r   re   rM   rN   r{   )re   rM   )re   rN   rf   r   r}   r~   r   r	   rY   rZ   r<   r   rf  rj   ri   rK   r<   rA   x_coly_colr  s         r%   (test_multiindex_geometry_colname_2_level8TestConstructor.test_multiindex_geometry_colname_2_level  s    \\VaV
J'?#s&L
 ?#?#21MN77c>!><<##s***||!!Z///((J666||  J...r'   c                    Sn[         R                  " SS/SS//SS/SS/SS//S9nUS	   nUS
   n[        X![        X45      S9n[        R
                  (       a.  UR                  U:X  d   eUR                  R                  U:X  d   eUR                  R                  S:X  d   eUR                  S:X  d   eUR                  R                  S:X  d   eg )Nr  r   r   r   re   rM   rN   r{   r   re   rM   r   re   rN   rf   r   r  r  s         r%   (test_multiindex_geometry_colname_3_level8TestConstructor.test_multiindex_geometry_colname_3_level  s     \\VaVZ(c

 )*)*21MN77c>!><<##s***||!!Z///((J666||  J...r'   c                 J   Sn[         R                  " SS/SS//SS/SS/SS//S9nUS	   nUS
   n[        R                  " X45      US'   UR	                  5       nUR                  SUS9n[        R                  (       a  UR                  U:X  d   eUR                  S:X  d   eUR                  R                  S:X  d   eUR                  SUS9n[        R                  (       a  UR                  U:X  d   eUR                  S:X  d   eUR                  R                  S:X  d   eg )Nr  r   r   r   re   rM   rN   r{   r  r  r   r;   )r    r  )r}   r~   r   r  r   rm   rY   rZ   r<   rj   r   ri   )rK   r<   rA   r  r  r$   r  s          r%   0test_multiindex_geometry_colname_3_level_new_col@TestConstructor.test_multiindex_geometry_colname_3_level_new_col  s+   \\VaVZ(c

 )*)*"**58:ggioojco277c>!>((J666||  J...3=77c>!>((,@@@@||  $8888r'   c                     [        U5      n[        R                  " [        S5      [        S5      S.5      n[        R                  " X#/SS9nX2UR
                  '   [        X$5        g )Nr   r   r   r   )r
   r}   r~   rF   concatr|   r   )rK   r@   rA   other_dfr   s        r%   test_assign_cols_using_index,TestConstructor.test_assign_cols_using_index  sO    }%<<aq BC99b^!4'8!"/r'   c           
          " S S[         5      n[        R                  " UR                  SS/UR                  [
        R                  " SS/SS/5      05      n[        X!R                  S9nUR                  UR                  :X  d   eg )Nc                       \ rS rSrSrSrSrg)9TestConstructor.test_geometry_colname_enum.<locals>.Fruiti  r   r   r  N)r  r  r  r  r   pearr  r  r'   r%   Fruitr    s    EDr'   r  r   r   r   r   re  )	r   r}   r~   r   r  r   r  r   r   )rK   r  rA   r   s       r%   test_geometry_colname_enum*TestConstructor.test_geometry_colname_enum  ss    	D 	 \\[[1a&%**i.?.?AA.OP
 2

3''5::555r'   c                    [        [        R                  [        R                  //SS/SS9nUR                  S:X  d   eUR                  S:X  d   eUR
                  S   b   e[        R                  (       a  UR                  S:X  d   eg g )Nr   	somethingr  )r?   r|   r<   )r   r   r   )	r   r   r  r   r   r   rY   rZ   r<   rK   r  s     r%   test_geometry_nan_scalar(TestConstructor.test_geometry_nan_scalar  s    66266"#-

 yyF"""'':555||A&&&77k))) r'   c                    [        [        R                  S [        R                  /[        R                  [        R                  [        R                  /S.SS9nUR
                  S:X  d   eUR                  S:X  d   eUR                  R                  5       R                  5       (       d   e[        R                  (       a  UR                  S:X  d   eg g )N)r   r  r  r;   )r   r   r   )r   r   r  r}   NAr   r   r   isnar?  rY   rZ   r<   r  s     r%   test_geometry_nan_array'TestConstructor.test_geometry_nan_array	  s    VVT2551 ffbffbff5 
 yyF"""'':555||  "&&((((77k))) r'   r  N)r  r  r  r  rZ  r]  rb  rh  rn  rq  rv  rz  rg  r  r  r  r  rk   rJ  rM  r  r  r  r  r  r  r  r  r  r  r  r'   r%   rS  rS    s    D.-0 DD-86-&+("(6*
<?/$ [[Wz8&<=7 >7$7L/"/09606
**r'   rS  zpyproj not availabler]   c                  f    [        S/S9n SU l        U R                  R                  5       S:X  d   eg )Nr   r{   zIGNF:ETRS89UTM28)IGNFETRS89UTM28)r   r<   to_authority)r  s    r%   test_geodataframe_crsr    s1    

|
,C CG77!%<<<<r'   c                      [        S/S9n [        R                  " U R                  5       5      nSU;  d   eSU l        [        R                  " U R                  5       5      nSU;  d   eg )Nr   r{   r<   i  )r   r  r  r  r<   )r  gdf_geojsons     r%   test_geodataframe_nocrs_jsonr    s[    

|
,C**S[[]+K### CG**S[[]+K###r'   c                      [        S/S9n SU l        [        R                  " U R	                  5       5      nSU;   d   eUS   SSS0S.:X  d   eU R
                  nSU;  d   eg )Nr   r{   id  r<   ri   zurn:ogc:def:crs:EPSG::25833)rX   r4  )r   r<   r  r  r  r  )r  r  gdf_geointerfaces      r%   test_geodataframe_crs_jsonr  +  s|    

|
,CCG**S[[]+KKu<="    ,,((((r'   r<   zA+proj=cea +lon_0=0 +lat_ts=45 +x_0=0 +y_0=0 +ellps=WGS84 +units=mz
IGNF:WGS84c                     [        [        SS5      /S/U S9n[        R                  " [        SS9   [
        R                  " UR                  5       5      nS S S 5        SW;  d   eg ! , (       d  f       N= f)Ni  r   )r|   r<   z2GeoDataFrame's CRS is not representable in URN OGCr   r<   )r   r   rk   r   r  r  r  r  )r<   r  r  s      r%   +test_geodataframe_crs_nonrepresentable_jsonr  9  sm     	tT	C
 
O
 jj/
 ###	
 
s   %A''
A5c                  H   [        S/[        SS5      /S.5      n U R                  b   eU S   R                  S   S:X  d   e[	        U S5      b   e[        SS/0[        SS5      /S9n U R                  b   eU S   R                  S   S:X  d   e[	        U S5      b   e[
        R                  " SS/SS//SS/SS//S9nUS	   nUS
   n[        U[        X#5      S9n U R                  b   eU S   R                  S   R                  5       SS/:X  d   e[	        U S5      b   eg )Nr   rf   r<   r   re  rM   rN   r{   )r<   rM   )r<   rN   )	r   r   r<   r   getattrr}   r~   r	   to_list)r  rA   r  r  s       r%   test_geodataframe_crs_colnamer  K  sG   
sq!>
?C77??u:??1"""3&&& s|uQ{m
<C77??u:??1"""3&&& 
1v1v&%#s0L	MBzNEzNE
rN5$@
AC77??u:??1%%'Aq61113&&&r'   geo_col_namepolygonsc                    U u  p#US:w  a  UR                  U5      nUR                  R                  US'   UR                  S5      nUR                  S:X  d   eXR
                  ;   d   eSn[        R                  " [        US9   UR                  SSS9nS S S 5        [        UW5        [        R                  " [        US9   UR                  SSS9nS S S 5        WR                  U:X  d   eSUR
                  ;  d   e[        UUR                  S5      R                  US9R                  U5      5        g ! , (       d  f       N= f! , (       d  f       N{= f)	Nr   r  z)The `drop` keyword argument is deprecatedr   Fr   Tr{   )r   r   r  rm   r   r|   rk   r   r   r   r   )r&   r  rA   ra  r   
deprecatedr  res3s           r%    test_set_geometry_supply_colnamer  c  s*   EBz!-[[))BzN
//*
%C##z111;;&&& =J	m:	6z6 
7c4(	m:	6z5 
7 $$444T\\))) 

#	l	#		&	 
7	6 
7	6s   D7E7
E
Ec                    U u  p#US:w  a  UR                  U5      nUR                  R                  nUR                  U5      nUR                  U:X  d   eSn[
        R                  " [        US9   UR                  USS9nS S S 5        WR                  U:X  d   eUR                  S5      nUR                  U5      nUR                  S:X  d   eXR                  ;   d   e[
        R                  " [        US9   UR                  USS9n	S S S 5        W	R                  S:X  d   eXR                  ;   d   eg ! , (       d  f       N= f! , (       d  f       NC= f)Nr   z]The `drop` keyword argument is deprecated and has no effect when `col` is an array-like valuer   Tr   	centroids)
r   r   r  rm   r   rk   r   r   r   r|   )
r&   r  rA   ra  r  r   	match_strr  r  res4s
             r%   "test_set_geometry_supply_arrayliker    sL   EBz!-$$I
//)
$C##|333	'  

 yt4	

 $$444  -I??9%D $$333<<''' 

 yt4	

 $$333<<'''+
 

 
s   0D69E6
E
Ezerror::FutureWarningc                  :    [        S/ 05      R                  5         g)a0  
Check for a FutureWarning.

`geopandas.array.GeometryArray._reduce` issues a FutureWarning if
the parameter `keepdims` is not set.
`GeometryArray` inherits from `pandas.api.extensions.ExtensionArray`
and its `_reduce` is overridden in `GeometryArray`.
This warning is issued with pandas 2.2.2 (tested).
r   N)r   r?  r  r'   r%   test_reduce_geometry_arrayr    s     *b!"&&(r'   c                       \ rS rSrS rSrg)GDFChildi  c                     g)Nthis is a custom outputr  rT   s    r%   custom_methodGDFChild.custom_method  s    (r'   r  N)r  r  r  r  r  r  r  r'   r%   r  r    s    )r'   r  c                 ~   U u  pS/[        U5      -  UR                  S S 2S4'   [        U5      nUR                  S5      nUUR                  S/   UR                  UR
                  S:H     UR                  5       USS/   UR                  5       UUR                  S/   UR                  UR
                  S:H     UR                  5       USS/   UR                  5       /nU H0  n[        U[        5      (       d   eUR                  5       S:X  a  M0   e   UR                  S/S9n[        U[        5      (       a   eg )	Nr   r   	geometry2r   r   r   r  r{   )r   r   r  r   r   r   dissolver   ru   r  r   )r&   rA   ra  dfcdfc2childrenvr$   s           r%   test_inheritancer    s,   EBBBFF1f9
2,C{+D 	!AVZ !
		1#Qfk"#		H !X&&&& $====  ))[M)
*C#x(((((r'   re  )<r  rG   r!  rR   rB   enumr   numpyr   pandasr}   shapely.geometryr   r   r   r=   geopandas._compat_compatrY   r   r   r	   r
   geopandas.arrayr   r   r   rk   geopandas.testingr   r   geopandas.tests.utilr   r   pandas.testingr   r   r   fixturer&   r1   rJ  usefixturesr4   rQ  rS  rK  rZ   r  r  r  rM  r  r  r  r  rL  r  r  r  r  r'   r%   <module>r     s    	 	      0 0  " H H F F  O > V V  $ V 56C4 C4 7C4L"8R* R*j )))2HI= J=	$ )))2HI
) J
) )))2HI	H,W
$	 J

$'0 *j)AB C< *j)AB!( C!(H 23
) 4
))| )
)r'   