
    jjIf                     N   S SK r S SKrS SKrS SKrS SKJrJrJ	r	  S SK
JrJrJrJr  S SKJrJrJrJr  S SKrS SKJr  \R.                  " S5      rS7S jrS rS	 rS
 rS rS rS rS r \RB                  RE                  S5      S 5       r#\RH                  " SS\RJ                  " SS05      SSSSSS.// SQS9S 5       r&\RH                  " \RJ                  " SSS9\RJ                  " SS S9\RJ                  " SSS!.S"S9\RJ                  " S#S$S9\RJ                  " S%S&S'S(SS)S*.S+S9/S,9S- 5       r'\RB                  RE                  S.5      \RB                  RE                  S/5      S0 5       5       r(\RB                  RE                  S5      S1 5       r)S2 r* " S3 S45      r+ " S5 S65      r,g)8    N)
LineStringPointPolygon)GeoDataFrame	GeoSeriespoints_from_xy	read_file)GeometryArrayfrom_shapelyfrom_wkbfrom_wkt)assert_geodataframe_equalpyprojc                     U=(       d    U n[         R                  " U 5      n [         R                  " U5      n[        [        X5      X-   X-  S.US9$ )N)geometryvalue1value2crs)npasarrayr   r   xyr   s      [/var/www/html/Sattelite-Image/venv/lib/python3.13/site-packages/geopandas/tests/test_crs.py
_create_dfr      sH    	QA


1A


1A#A)QUaeLRU     c                  D    [        [        SSS5      [        SSS5      SS9$ )NNiN   sf i}f 
epsg:26918r   )r   range r   r   df_epsg26918r%      s,     
-
+
q
) r   c                  h    [        5       n U R                  SS9nUR                  SS9n[        XSS9  g )N  epsg&i  Tcheck_less_preciser%   to_crsr   dflonlatutms      r   test_to_crs_transformr3   '   s3    	BYYDY!F
--U-
#Cb$?r   c                      [        5       n S U R                  S'   U R                  SS9nUR                  SS9n[        XSS9  g )N)   r   r'   r(   r*   Tr+   )r%   locr.   r   r/   s      r   #test_to_crs_transform__missing_datar7   .   sA    	B BFF=YYDY!F
--U-
#Cb$?r   c                      [        5       R                  S S n U R                  SS9nUR                  SS9n[        XSS9  g )Nr   r'   r(   r*   Tr+   )r%   ilocr.   r   r/   s      r   !test_to_crs_transform__empty_datar:   7   s@    			Ra	 BYYDY!F
--U-
#Cb$?r   c                  j    [        5       n U R                  SS9nU R                  SSS9  [        XSS9  g )Nr'   r(   T)r)   inplacer+   r-   )r0   r1   s     r   test_to_crs_inplacer=   >   s3    	BYYDY!FII4I&bTBr   c                     [        5       n U R                  SS0S9n U R                  SSS9  U R                  SS9nUR                  SS9nUR                  R
                  S:X  d   eUR                  R
                  S:X  d   e[        XSS	9  g )
Nr   geomcolumnsT)r<   r'   r(   r*   r+   )r%   renameset_geometryr.   r   namer   r/   s      r   test_to_crs_geo_column_namerE   E   s    	B	J/	0BOOFDO)YYDY!F
--U-
#C??6)))<<&&&b$?r   c                      [        SS/SS/SS/SS9n U R                  R                  5       (       d   eU R                  SS9nUR                  R                  5       (       d   eg )	Nr       r5      r'   r     r(   )r   has_zallr.   )arrresults     r   test_to_crs_dimension_zrN   Q   s[    
!Q!Q!QT
:C99==???ZZTZ"F<<r   z5ignore:Conversion of an array with:DeprecationWarningc                     [        [        SS5      [        SS/5      /SS9n U R                  SS9nUS	   R                  (       a   eUR
                  R                  5       S
S/:X  d   eUR                  SS9n[        X 5       H>  u  p4[        R                  R                  UR                  S S  UR                  S S  SS9  M@     g )Nr    rG   )r    rG   r5   )rH         i  r   r'   r(   r   FTg{Gz?)atol)r   r   r   r.   is_emptyrJ   tolistzipr   testingassert_allclosecoords)srM   	roundtripabs        r   test_to_crs_dimension_mixedr]   [   s    5A;
Iy+A BCNAXX4X Fay!!!!<< UDM1114(I I!


""188A;$"G "r   r'   	epsg:4326initz0+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defslatlongWGS84T)projellpsdatumno_defs)epsg_numberepsg_string	epsg_dictproj4_string
proj4_dict)paramsidsc                 x    [        U R                  [        5      (       a  SU R                  0$ SU R                  0$ Nr)   r   
isinstanceparamintrequests    r   epsg4326ru   l   s3     '--%%&&7==!!r   r*   rf   )idr"   rg   )r_   re   rh   zM+proj=utm +zone=18 +ellps=GRS80 +datum=NAD83 +units=m +no_defs +nadgrids=nullri   r2      NAD83mnull)rb   zonerd   unitsre   nadgridsrj   )rk   c                 x    [        U R                  [        5      (       a  SU R                  0$ SU R                  0$ rn   ro   rs   s    r   	epsg26918r   ~   s3    6 '--%%&&7==!!r   z!ignore:'\+init:DeprecationWarningzignore:'\+init:FutureWarningc                 v    [        5       nUR                  " S0 U D6nUR                  " S0 UD6n[        X$SSS9  g )NTF)r,   	check_crsr$   r-   )ru   r   r0   r1   r2   s        r   test_transform2r      s;     
BYY""F
--
$)
$C b$%Pr   c                      [        [        SS5      /SS9n U R                  S5      n[        [        SS5      /SS9n[        XSS	9  g )
Nr   r!   r"   r   r   r^   gP	[gFNGK@Tr+   )r   r   r.   r   )r0   r1   test_lonlats      r   test_crs_axis_order__always_xyr      sK    	h 89|	LBYY{#Fj12K fdKr   c                  b    [        5       n U R                  U R                  5      n[        XSS9  g )NTr+   )r%   r.   r   r   )r0   r2   s     r   test_skip_exact_samer      s%    	B
))BFF
Cb$?r   c            	          \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	S
\" SS5      \" SS/5      /5      S 5       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 rS rS r S r!S  r"\R                  R                  S!S"/ S#Q44S$S%S&S'/5      S( 5       r#S) r$S* r%S+ r&S, r'S- r(S. r)S/ r*S0r+g
)1TestGeometryArrayCRS   c                    [         R                  S5      U l        [         R                  S5      U l        [	        SS5      [	        SS5      /U l        [        S5       VVs/ s HP  n[        [        S5       Vs/ s H-  n[        R                  " 5       [        R                  " 5       4PM/     sn5      PMR     snnU l	        [        U R                  SS9U l        g s  snf s  snnf )N4l  r'   r   r    
   r5   r   )r   CRSosgbwgsr   geomsr#   r   randompolysr   rL   )self_is      r   setup_method!TestGeometryArrayCRS.setup_method   s    JJu%	::d#Aqk5A;/
 2Y
 qJAfmmov}}7JK

  

6 K
s    C84C,CCc                 n   [        U R                  5      nSUl        UR                  U R                  :X  d   e[        U R                  SS9nUR                  U R                  :X  d   e[	        U5      nUR                  U R                  :X  d   e[	        USS9nUR                  U R
                  :X  d   eg Nr   r   r'   )r   r   r   r   r
   r   r   rL   s     r   
test_arrayTestGeometryArrayCRS.test_array   s    4::&ww$))###4::51ww$))###C ww$))###CT*ww$(("""r   c                     [        SS9nUR                  U R                  :X  d   eUR                  R                  U R                  :X  d   e[	        U R
                  5      n[        USS9nUR                  U R                  :X  d   eUR                  R                  U R                  :X  d   eUR                  SSS9nUR                  U R                  :X  d   eUR                  R                  U R                  :X  d   e[        U R
                  SS9nUR                  U R                  :X  d   eUR                  R                  U R                  :X  d   e[	        U R
                  SS9n[        U5      nUR                  U R                  :X  d   eUR                  R                  U R                  :X  d   e[        R                  " [        SS9   [        USS9nS S S 5        UR                  U R                  :X  d   eg ! , (       d  f       N+= f)Nr   r   r'   Tallow_override;CRS mismatch between CRS of the passed geometries and 'crs'match)r   r   r   valuesr   r   set_crsr   pytestraises
ValueError)r   rY   rL   s      r   test_series TestGeometryArrayCRS.test_series   s   % uu		!!!xx||tyy(((4::&cu%uu		!!!xx||tyy((( IId4I0uu   xx||txx'''djje,uu		!!!xx||tyy(((4::51cNuu		!!!xx||tyy(((]]O
 #4(A	

 uu		!!!
 
s   G??
Hc                    [        U R                  SS9n[        US9nUR                  U R                  :X  d   eUR
                  R                  U R                  :X  d   eUR
                  R                  R                  U R                  :X  d   e[        U R                  5      n[        USS9n[        US9nUR                  U R                  :X  d   eUR
                  R                  U R                  :X  d   eUR
                  R                  R                  U R                  :X  d   eSn[        R                  " [        US9   [        USS9nS S S 5        [        R                  " [        US9   [        USS9  S S S 5        [        R                  " [        US9   [        SS	/US
.SS9  S S S 5        [        R                  " [        US9   [        USS9R                    S S S 5        [        U R                  5      n[        USS9n[        US9nUR                  SSS9nUR                  U R                  :X  d   eUR
                  R                  U R                  :X  d   eUR
                  R                  R                  U R                  :X  d   e[        R                  " [        SS9   [        U R                  S/SS9  S S S 5        [        R                  " [        SS9   [        SS9  S S S 5        [        U R                  S/S9nUR                  SSS9nUR                  U R                  :X  d   eUR
                  R                  U R                  :X  d   eUR
                  R                  R                  U R                  :X  d   eUR                  R                  U R                  :X  d   eUR                  R                  R                  U R                  :X  d   e[        U R                  SS9nUR                  U R                  :X  d   eUR
                  R                  U R                  :X  d   eUR
                  R                  R                  U R                  :X  d   e[        U R                  SS9nUR                  U R                  SS9nUR                  U R                  :X  d   eUR
                  R                  U R                  :X  d   eUR
                  R                  R                  U R                  :X  d   e[        U R                  5      n[        USS9n[        5       nUR                  U5      nUR                  S:X  d   eUR                  U R                  :X  d   eUR
                  R                  U R                  :X  d   eUR
                  R                  R                  U R                  :X  d   e[        U R                  SS9n[        5       nUR                  U5      nUR                  U R                  :X  d   eUR
                  R                  U R                  :X  d   eUR
                  R                  R                  U R                  :X  d   e[        U R                  5      n[        SS	/US.SS9nUR                  U R                  :X  d   eUR
                  R                  U R                  :X  d   eUR
                  R                  R                  U R                  :X  d   e[        U R                  SS9n[        SS	/US.5      nUR                  U R                  :X  d   eUR
                  R                  U R                  :X  d   eUR
                  R                  R                  U R                  :X  d   e[        SSS/05      n[        R                  " [        SS9   SUl        S S S 5        [         R"                  " 5          [         R$                  " SS[&        5        [        S[)        SS5      /05      R+                  S/S9nS S S 5        [        R                  " [        SS9   SUl        S S S 5        [        R                  " [,        SS9   UR                  U R                  :X  d   e S S S 5        g ! , (       d  f       GNN= f! , (       d  f       GN4= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN!= f! , (       d  f       GN= f! , (       d  f       GND= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r   r   r   r'   r   r    rG   )datar   r^   Tr   r   'Assigning CRS to a GeoDataFrame withoutr?   )rA   r   r@   r   col1r   r   z2Assigning CRS to a GeoDataFrame without a geometryignorez)Geometry column does not contain geometryz:Assigning CRS to a GeoDataFrame without an active geometry5The CRS attribute of a GeoDataFrame without an active)r   r   r   r   r   r   r   r   r   r   r   r   r   rC   r?   _geometry_column_namewarningscatch_warningsfilterwarningsUserWarningr   assignAttributeError)r   rL   r0   rY   	match_strs        r   test_dataframe#TestGeometryArrayCRS.test_dataframe   s   4::513'vv"""{{$))+++{{!!%%2224::&cu%1%vv"""{{$))+++{{!!%%222 R	]]:Y7qd3B 8]]:Y7!. 8]]:Y71a&a8dC 8]]:Y7&** 8 4::&cu%1%ZZKZ=vv!!!{{$((***{{!!%%111]]:-VWfX5A X]]:-VWU# X $**vh7__V_/vv"""{{$))+++{{!!%%222ww{{dii'''ww~~!!TYY...4::59vv"""{{$))+++{{!!%%222 4::59__TZZT_2vv!!!{{$((***{{!!%%1114::&cu%^__Q'':555vv"""{{$))+++{{!!%%2224::51^__S!vv"""{{$))+++{{!!%%2224::&Aq6s;Fvv!!!{{$((***{{!!%%1114::40Aq6s;<vv!!!{{$((***{{!!%%111 :1v./]]F
 BF	
 $$&##E{ zE!QK=9:AAA3AOB	 '
 ]]N
 BF	

 ]]I
 66TYY&&&	
 
u 87777777 XWWWj
 
 '&

 


 
sy   b1b)b;c.c&
c1>d#Add&0d7
b&)
b8;
c

c
c.1
d 
d
d#&
d47
ec                 "   [        S[        S5      0U R                  S9nUR                  R                  US'   USS/   n[
        R                  " [        SS9   UR                  U R                  :X  d   e S S S 5        g ! , (       d  f       g = f)Ncolr   r   geom2r   r   )
r   r#   rL   r   centroidr   r   r   r   r   )r   r0   subsets      r   .test_dataframe_getitem_without_geometry_columnCTestGeometryArrayCRS.test_dataframe_getitem_without_geometry_columne  sw    5%),txx@kk**7UG$%]]I
 ::***	
 
 
s   B  
Bc                 
   [        U R                  5      n[        USS9n[        5       n[        R
                  " [        SS9   X#S'   S S S 5        UR                  U R                  :X  d   eUR                  R                  U R                  :X  d   eUR                  R                  R                  U R                  :X  d   e[        U R                  SS9n[        5       n[        R
                  " [        SS9   XS'   S S S 5        UR                  U R                  :X  d   eUR                  R                  U R                  :X  d   eUR                  R                  R                  U R                  :X  d   e[        U R                  5      n[        SS/US.S	S9nUS   R                  S5      US'   UR                  U R                  :X  d   eUR                  R                  U R                  :X  d   eUR                  R                  R                  U R                  :X  d   e[        U R                  5      n[        SS/XS
.S	S9n[        U R                  SS9US'   UR                  U R                  :X  d   eUR                  R                  U R                  :X  d   eUS   R                  U R                  :X  d   eUS   R                  U R                  :X  d   eg ! , (       d  f       GN= f! , (       d  f       GN= f)Nr   r   (You are adding a column named 'geometry'r   r   r    rG   r   r'   )r   r   
other_geomr   )r   r   r   r   r   warnsFutureWarningr   r   r   r   r.   r   r   rL   rY   r0   s       r   test_dataframe_setitem+TestGeometryArrayCRS.test_dataframe_setitemo  sp   4::&cu%^\\!K
 zN
 vv"""{{$))+++{{!!%%2224::51^\\!K
 !zN
 vv"""{{$))+++{{!!%%222 4::&Aq6s;FJ..u5:vv"""{{$))+++{{!!%%222 4::&V@d
 (

><vv!!!{{$((****~!!TXX---,##tyy000G
 

 
s   K!9K3!
K03
Lc                     [        U R                  5      n[        SS/US.SS9n[        R                  " [
        5         SUS'   S S S 5        U R                  US'   UR                  b   eg ! , (       d  f       N-= f)Nr    rG   r   r'   r   r   )r   r   r   r   r   r   r   )r   rL   r0   s      r   .test_dataframe_setitem_without_geometry_columnCTestGeometryArrayCRS.test_dataframe_setitem_without_geometry_column  sg    4::&Aq6s;F \\+&BzN ' :vv~~ '&s   A,,
A:scalarNr   )r   r   )r    r    c                    [        5       n[        R                  " [        SS9   XS'   S S S 5        UR	                  S5      nUR
                  U R                  :X  d   eUR                  R
                  U R                  :X  d   eUR                  R                  R
                  U R                  :X  d   eg ! , (       d  f       N= f)Nr   r   r   r'   )	r   r   r   r   r   r   r   r   r   )r   r   r0   s      r   test_scalar TestGeometryArrayCRS.test_scalar  s     ^\\!K
 $zN
 ZZvv!!!{{$((***{{!!%%111
 
s   B55
Czignore:Accessing CRSc                     [         R                  " [        SS9   [        5       nSUl        S S S 5        g ! , (       d  f       g = f)Nr   r   r'   )r   r   r   r   r   )r   r0   s     r   test_crs_with_no_geom_fails0TestGeometryArrayCRS.test_crs_with_no_geom_fails  s,    ]]:-VWBBF XWWs	   5
Ac                 4   [        U5      nUR                  [        R                  S5      :X  d   eUR                  R                  [        R                  S5      :X  d   eUR                  R
                  R                  [        R                  S5      :X  d   eg )Ni  )r	   r   r   r   r   r   )r   nybb_filenamer0   s      r   test_read_file#TestGeometryArrayCRS.test_read_file  sm    }%vvD)))){{&**T"2222{{!!%%D)9999r   c                    [        U R                  SS9n[        U R                  SS9n[        X!S/S9nUR                  U R
                  :X  d   eUR                  R                  U R
                  :X  d   eUR                  R                  R                  U R
                  :X  d   eUR                  R                  U R                  :X  d   eUR                  R                  R                  U R                  :X  d   eg Nr   r   r'   r   r   rA   )
r   r   r   r   r   r   r   r   r   r   r   s       r   test_multiple_geoms(TestGeometryArrayCRS.test_multiple_geoms  s    4::51djjd+!F8<vv"""{{$))+++{{!!%%222ww{{dhh&&&ww~~!!TXX---r   c                     [        U R                  SS9n[        U R                  SS9n[        X!S/S9nUR	                  S5      nUR
                  U R                  :X  d   eUR                  R
                  U R                  :X  d   eUR                  R                  R
                  U R                  :X  d   eUS   R
                  U R                  :X  d   eUS   R                  R
                  U R                  :X  d   eg )Nr   r   r'   r   r   r   )
r   r   r   r   rC   r   r   r   r   r   r   s       r   test_multiple_geoms_set_geom1TestGeometryArrayCRS.test_multiple_geoms_set_geom  s    4::51djjd+!F8<__V$vv!!!{{$((***{{!!%%111*~!!TYY...*~$$((DII555r   c                 t   [        U R                  SS9n[        U R                  SS9n[        X!S/S9nX#S'   UR                  US'   [        U R                  5      US'   UR
                  U R                  :X  d   eUR                  R
                  U R                  :X  d   eUR                  R                  R
                  U R                  :X  d   eUR                  R
                  U R                  :X  d   eUR                  R                  R
                  U R                  :X  d   eUR                  R
                  U R                  :X  d   eUR                  R                  R
                  U R                  :X  d   eUR                  R
                  b   eUR                  R                  R
                  b   eg )	Nr   r   r'   r   r   r   geom3geom4)r   r   r   r   r   r   r   r   r   r   r   r   r   s       r   test_assign_cols%TestGeometryArrayCRS.test_assign_cols  sJ   4::51djjd+!F8<7hh7"4::.7vv"""{{$))+++{{!!%%222xx||txx'''xx""dhh...xx||txx'''xx""dhh...xx||###xx""***r   c                    [        U R                  SS9n[        U R                  SS9n[        X!S/S9nUR	                  5       nUR
                  UR
                  :X  d   eUR	                  5       nUR
                  UR
                  :X  d   eUR                  R
                  UR                  R
                  :X  d   eUR	                  5       nUR
                  UR
                  :X  d   eUR                  R
                  UR                  R
                  :X  d   eUR                  R                  R
                  UR                  R                  R
                  :X  d   eUR                  R
                  UR                  R
                  :X  d   eUR                  R                  R
                  UR                  R                  R
                  :X  d   eg r   )	r   r   r   r   copyr   r   r   r   )r   rL   rY   r0   arr_copys_copydf_copys          r   	test_copyTestGeometryArrayCRS.test_copy  sQ   4::51djjd+!F8<88:||sww&&&zzQUU"""}}  AHHLL000''){{bff$$$##r{{666&&**bkk.@.@.D.DDDD||277;;...||""&&"''..*<*<<<<r   c                 b   [        U R                  SS9n[        U R                  SS9n[        X!S/S9nUR	                  SS0S9R                  S5      nUR                  U R                  :X  d   eUR                  R                  U R                  :X  d   eUR                  R                  R                  U R                  :X  d   eUR                  S	5      nUR                  U R                  :X  d   eUR                  R                  U R                  :X  d   eUR                  R                  R                  U R                  :X  d   eUR	                  SS
0S9nUR                  R                  U R                  :X  d   eUR                  R                  R                  U R                  :X  d   eg )Nr   r   r'   r   r   r   r?   r@   r   column1)r   r   r   r   rB   rC   r   r   r   r   rename_geometryr   r   r   s       r   test_rename TestGeometryArrayCRS.test_rename  sU   4::51djjd+!F8<YY
F3Y4AA&Ivv"""{{$))+++{{!!%%222(vv"""{{$))+++{{!!%%222YY	2Y3zz~~)))zz  $$000r   c                     [        U R                  SS9nUR                  S5      nUR                  U R                  :X  d   eUR
                  R                  U R                  :X  d   e[        US9nUR                  U R                  :X  d   eUR                  S5      nUR                  U R                  :X  d   eUR                  R                  U R                  :X  d   eUR                  R
                  R                  U R                  :X  d   e[        U R                  SS9nX2S'   UR                  S5      nUR                  R                  U R                  :X  d   eUR                  R
                  R                  U R                  :X  d   eg )Nr   r   r'   r   r   rI   )r   r   r.   r   r   r   r   r   r   r   r   )r   rY   r0   rL   s       r   test_geoseries_to_crs*TestGeometryArrayCRS.test_geoseries_to_crs
  s/   djje,HHTNuu   xx||txx'''1%vv!!!YYuvv"""{{$))+++{{!!%%222 4::406
YYt_ww{{dhh&&&ww~~!!TXX---r   c                     [        U R                  SS9nUR                  S5      nUR                  U R                  :X  d   eg r   )r   r   r.   r   r   r   s     r   test_array_to_crs&TestGeometryArrayCRS.test_array_to_crs  s6    4::51jjww$(("""r   c                 d    [        U R                  SS9nUR                  U R                  :X  d   eg Nr   r   )r   r   r   r   r   s     r   test_from_shapely&TestGeometryArrayCRS.test_from_shapely#  s(    4::51ww$))###r   c                     U R                    Vs/ s H  oR                  PM     nn[        USS9nUR                  U R                  :X  d   eg s  snf r   )r   wkbr   r   r   )r   pL_wkbrL   s       r   test_from_wkb"TestGeometryArrayCRS.test_from_wkb'  C     $

+
1
+u%(ww$))### ,   Ac                     U R                    Vs/ s H  oR                  PM     nn[        USS9nUR                  U R                  :X  d   eg s  snf r   )r   wktr   r   r   )r   r  L_wktrL   s       r   test_from_wkt"TestGeometryArrayCRS.test_from_wkt,  r  r  c           	          [         R                  " [        S5       Vs/ s H  oXS.PM	     sn5      n[        US   US   SS9nUR                  U R
                  :X  d   eg s  snf )Nr   )r   r   zr   r   r   r   )pd	DataFramer#   r   r   r   )r   r   r0   rL   s       r   test_points_from_xy(TestGeometryArrayCRS.test_points_from_xy1  sX    \\U2YGY3YGHRWbg59ww$))### Hs   A!c                     [        U R                  5      n[        USS9nUR                  b   eUR                  U R                  :X  d   eg r   )r   r   r   r   r   )r   rL   rY   s      r   test_original"TestGeometryArrayCRS.test_original7  s@    4::&cu%wwuu		!!!r   c                    U R                   nUR                  nUR                  U R                  :X  d   eUR                  nUR                  U R                  :X  d   eUR
                  nUR                  U R                  :X  d   eUR                  nUR                  U R                  :X  d   eUR                  nUR                  U R                  :X  d   eUR                  5       nUR                  U R                  :X  d   eg N)	rL   boundaryr   r   r   convex_hullenvelopeexteriorrepresentative_point)r   rL   boundcenthullr  r  r  s           r   test_opsTestGeometryArrayCRS.test_ops=  s    hhyyDII%%%||xx499$$$xx499$$$<<||tyy(((<<||tyy((("779#''499444r   c                    U R                   n/ n[        U5      S:  a  [        [        S5       Vs/ s H-  n[        R                  " 5       [        R                  " 5       4PM/     sn5      nUR
                  (       a  UR                  U5        [        U5      S:  a  M  [        USS9nUR                  U5      nUR                  U R                  :X  d   eUR                  U5      nUR                  U R                  :X  d   eUR                  U5      nUR                  U R                  :X  d   eUR                  U5      n	U	R                  U R                  :X  d   eg s  snf )Nr   rH   r   r   )rL   lenr   r#   r   is_validappendr   
differencer   r   intersectionsymmetric_differenceunion)
r   rL   quadsr   r?   arr2r%  r&  r'  r(  s
             r   test_binary_ops$TestGeometryArrayCRS.test_binary_opsQ  s   hh%j2oaQ1V]]_fmmo>QRD}}T" %j2o
 Eu-^^D)
~~***''-499,,,"77=#''499444		$yyDII%%%! Rs   4Ec                 >   U R                   nUR                  S5      nUR                  U R                  :X  d   eUR                  R                  S5      nUR                  U R                  :X  d   eUR                  S5      nUR                  U R                  :X  d   eg )NrP   g?)rL   bufferr   r   r  interpolatesimplify)r   rL   r.  r/  r0  s        r   
test_otherTestGeometryArrayCRS.test_otherg  s{    hhAzzTYY&&&ll..s3$))+++<<?||tyy(((r   z	attr, argaffine_transform)r   r    r    r   r   r   )	translater$   )rotate)r   )scaler$   )skewr$   c                 n    [        U R                  U5      " U6 nUR                  U R                  :X  d   eg r  )getattrrL   r   r   )r   attrargrM   s       r   test_affinity_methods*TestGeometryArrayCRS.test_affinity_methodss  s/     4(#.zzTYY&&&r   c                    [        U R                  SS9nUR                  SS  R                  R                  U R
                  :X  d   e[        SU R                  0US9nUR                  SS  R                  R                  R                  U R
                  :X  d   eUR                  SS  R                  R                  R                  U R
                  :X  d   eg )Nr   r   r    r   r   )	r   rL   r9   r   r   r   r   r   r   r   rY   r0   s      r   
test_sliceTestGeometryArrayCRS.test_slice  s    dhhE*vvabz  $$		1116488,q9wwqr{##**..$));;;wwqr{&&**dii777r   c                    [        U R                  SS9n[        R                  " X/5      R                  R
                  U R                  :X  d   e[        S[        U R                  SS90US9n[        R                  " X"/5      R                  R                  R
                  U R                  :X  d   e[        R                  " X"/5      R                  R                  R
                  U R                  :X  d   eg )Nr   r   r   r'   r   )r   rL   r  concatr   r   r   r   r   r   r   r   r   r?  s      r   test_concat TestGeometryArrayCRS.test_concat  s    dhhE*yy! ''++tyy8886<

#EFQRSyy""++2266$))CCCyy""''..22dhh>>>r   c                 |   [        U R                  SS9n[        U R                  SS9n[        SU0US9n[        SU0US9R	                  S5      nUR                  USSS	9nUR                  R                  R                  U R                  :X  d   eUR                  R                  R                  U R                  :X  d   eUR                  R                  R                  U R                  :X  d   eUR                  R                  R                  U R                  :X  d   eUR                  U R                  :X  d   eg )
Nr   r   r'   r   r   col2r?   T)
left_indexright_index)r   r   r   r   r   merger   r   r   r   r   r   rG  r?   )r   rL   rY   r0   df2mergeds         r   
test_mergeTestGeometryArrayCRS.test_merge  s    4::51djjd+61+4FA;5EEfM#$DA{{!!%%111%%))TYY666{{!!%%111{{!!%%222zzTYY&&&r   c                    [        U R                  SS9n[        SSS/0US9n[        UR                  5      US'   UR                  R
                  R                  U R                  :X  d   e[        SSS/0US9n[        U R                  SS9US'   UR                  R
                  R                  U R                  :X  d   eg )	Nr   r   r   r   r    r   r   r'   )	r   r   r   listr   r   r   r   r   r   rL   r0   rK  s       r   test_setitem_geometry*TestGeometryArrayCRS.test_setitem_geometry  s    4::516Aq6*S9bkk*:{{!!%%222FQF+c:&tzzt<J||""&&$((222r   c                     [        U R                  SS9n[        SSS/0US9nUR                  S[        05      nUR
                  U R                  :X  d   eg )Nr   r   r   r   r    r   )r   r   r   astypestrr   r   rQ  s       r   test_astype TestGeometryArrayCRS.test_astype  sO    4::516Aq6*S9ii&ww$))###r   c                     [        U R                  5      nUR                  S:X  d   eUR                  S 5      nUR                  S:X  d   eg )Nr   c                     U R                   $ r  )r   )r   s    r   <lambda>1TestGeometryArrayCRS.test_apply.<locals>.<lambda>  s    1::r   )r   rL   r   apply)r   rY   rM   s      r   
test_applyTestGeometryArrayCRS.test_apply  sC    dhhuu~~ -.zzU"""r   c                     [        SSS/0U R                  SS9nUR                  S:X  d   eUR                  S SS9nUR                  S:X  d   eUR                  S SS9nUR                  S:X  d   eg )	Nr   r   r    r   r   c                     U $ r  r$   )r   s    r   r[  >TestGeometryArrayCRS.test_apply_geodataframe.<locals>.<lambda>      cr   )axisc                     U $ r  r$   )rows    r   r[  rb    rc  r   )r   r   r   r]  )r   r0   rM   s      r   test_apply_geodataframe,TestGeometryArrayCRS.test_apply_geodataframe  sw    6Aq6*TZZUKvv /2zzU"""/2zzU"""r   )rL   r   r   r   r   ),__name__
__module____qualname____firstlineno__r   r   r   r   r   r   r   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r  r  r  r+  r1  r<  r@  rD  rM  rR  rW  r^  rg  __static_attributes__r$   r   r   r   r      sA   	7#">n'`+(1T
 [[4q!j&&1A&BC	2	2 [[ 67 8
:.	6+"=&1$.(#
$$
$
$"5(&,
) [["4!67	
	'	'
8?
'	3$##r   r   c                   b    \ rS rSr\R
                  R                  SS S /SS/S9S 5       rS	rg
)
TestSetCRSi  constructorc                     [        XS9$ )Nr   )r   r   r   s     r   r[  TestSetCRS.<lambda>  s	    y8r   c                     [        XS9$ )Nr   )r   rt  s     r   r[  ru    s	    |UDr   	geoseriesgeodataframe)rl   c                    U" [        SS5      [        SS5      /S S9nUR                  b   eUR                  SS9nUR                  S:X  d   eUR                  b   eUR                  SS9nUR                  S:X  d   eUR                  b   eUR                  SSS9nX2L d   eUR                  UR                  s=:X  a  S:X  d   e   eU" [        SS5      [        SS5      /SS9nUR                  S:X  d   e[        R                  " [
        S	S
9   UR                  S5        S S S 5        UR                  S5      nUR                  S:X  d   eUR                  SSS9nUR                  S:X  d   eUR                  S:X  d   eUR                  SSSS9nUR                  S:X  d   eUR                  S:X  d   eUR                  S SS9nUR                  b   eUR                  S:X  d   eg ! , (       d  f       N= f)Nr   r    r   z	EPSG:4326r'   r(   T)r   r<   zalready has a CRSr   z	EPSG:3857r   )r   r<   r   )r   r   r   r   r   r   )r   rr  naiverM   	non_naives        r   test_set_crsTestSetCRS.test_set_crs  s    U1a[%1+6DAyy    ;/zz[(((yy   D)zz[(((yy    ;=zzUYY5+55555  q!eAqk :L	}}+++]]:-@Ak* B "";/zz[((( "";t"D}}+++zz[((("";tT"R}}+++zz[((( ""tD"Azz!!!}}+++' BAs   G))
G7r$   N)	ri  rj  rk  rl  r   rm  rn  r|  ro  r$   r   r   rq  rq    s@    [[8D	
 .)  (,(,r   rq  )NN)-r   r   numpyr   pandasr  shapely.geometryr   r   r   	geopandasr   r   r   r	   geopandas.arrayr
   r   r   r   r   geopandas.testingr   importorskipr   r   r%   r3   r7   r:   r=   rE   rN   rm  r   r]   fixturerq   ru   r   r   r   r   r   rq  r$   r   r   <module>r     s       7 7 H H K K  7			X	&@@@C	@ ST	H U	H  [!	
 	;Ww4P 	R"" U}-\m4!d3	
 	&	

 	 " 
	
4"54" @A;<Q = BQ STL UL@D# D#N1, 1,r   