
    h;f                     v   d dl Z d dlZd dlZd dlZd dlmZmZm	Z	 d dl
mZmZmZmZ d dlmZmZmZmZ d dlZd dlmZ  ej.                  d      Zd7dZd Zd	 Zd
 Zd Zd Zd Zd Z ejB                  jE                  d      d        Z# ejH                  dd ejJ                  ddi      ddddddgg d      d        Z& ejH                   ejJ                  dd       ejJ                  dd        ejJ                  ddd!d"       ejJ                  d#d$       ejJ                  d%d&d'd(dd)d*d+      g,      d-        Z'ejB                  jE                  d.      ejB                  jE                  d/      d0               Z(ejB                  jE                  d      d1        Z)d2 Z* G d3 d4      Z+ G d5 d6      Z,y)8    N)
LineStringPointPolygon)GeoDataFrame	GeoSeriespoints_from_xy	read_file)GeometryArrayfrom_shapelyfrom_wkbfrom_wkt)assert_geodataframe_equalpyprojc                     |xs | }t        j                  |       } t        j                  |      }t        t        | |      | |z   | |z  d|      S )N)geometryvalue1value2crs)npasarrayr   r   xyr   s      K/var/www/html/immo/lib/python3.12/site-packages/geopandas/tests/test_crs.py
_create_dfr      sN    	QA


1A


1A#Aq)QUa!eLRU     c                  J    t        t        ddd      t        ddd      d      S )NNiN   sf i}f 
epsg:26918r   )r   range r   r   df_epsg26918r%      s,     
-
+
q
) r   c                  |    t               } | j                  d      }|j                  d      }t        | |d       y )N  epsg&i  Tcheck_less_preciser%   to_crsr   dflonlatutms      r   test_to_crs_transformr3   '   s5    	BYYDY!F
--U-
#Cb#$?r   c                      t               } d | j                  d<   | j                  d      }|j                  d      }t        | |d       y )N)   r   r'   r(   r*   Tr+   )r%   locr.   r   r/   s      r   #test_to_crs_transform__missing_datar7   .   sC    	B BFF=YYDY!F
--U-
#Cb#$?r   c                      t               j                  d d } | j                  d      }|j                  d      }t        | |d       y )Nr   r'   r(   r*   Tr+   )r%   ilocr.   r   r/   s      r   !test_to_crs_transform__empty_datar:   7   sB    			Ra	 BYYDY!F
--U-
#Cb#$?r   c                  ~    t               } | j                  d      }| j                  dd       t        | |d       y )Nr'   r(   T)r)   inplacer+   r-   )r0   r1   s     r   test_to_crs_inplacer=   >   s5    	BYYDY!FII4I&b&TBr   c                  6   t               } | j                  ddi      } | j                  dd       | j                  d      }|j                  d      }|j                  j
                  dk(  sJ |j                  j
                  dk(  sJ t        | |d	       y )
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                      t        ddgddgddgd      } | j                  j                         sJ | j                  d      }|j                  j                         sJ y )	Nr       r5      r'   r     r(   )r   has_zallr.   )arrresults     r   test_to_crs_dimension_zrN   Q   sV    
!Q!Q!QT
:C99==??ZZTZ"F<<r   z5ignore:Conversion of an array with:DeprecationWarningc                     t        t        dd      t        ddg      gd      } | j                  d      }|d	   j                  rJ |j
                  j                         d
dgk(  sJ |j                  d      }t        ||       D ]A  \  }}t        j                  j                  |j                  d d  |j                  d d  d       C y )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 Iq! H1


""188A;$"GH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                 n    t        | j                  t              rd| j                  iS d| j                  iS Nr)   r   
isinstanceparamintrequests    r   epsg4326ru   l   s0     '--%&&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                 n    t        | j                  t              rd| j                  iS d| j                  iS rn   ro   rs   s    r   	epsg26918r   ~   s0    6 '--%&&7==!!r   z!ignore:'\+init:DeprecationWarningzignore:'\+init:FutureWarningc                 ~    t               } |j                  di | } |j                  di |}t        ||dd       y )NTF)r,   	check_crsr$   r-   )ru   r   r0   r1   r2   s        r   test_transform2r      sA     
BRYY""F
&--
$)
$C b#$%Pr   c                      t        t        dd      gd      } | j                  d      }t        t        dd      gd      }t        ||d	       y )
Nr   r!   r"   r   r   r^   gP	[gFNGK@Tr+   )r   r   r.   r   )r0   r1   test_lonlats      r   test_crs_axis_order__always_xyr      sM    	h 89|	LBYY{#Fj12K fkdKr   c                  j    t               } | j                  | j                        }t        | |d       y )NTr+   )r%   r.   r   r   )r0   r2   s     r   test_skip_exact_samer      s'    	B
))BFF
Cb#$?r   c            	          e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dd	 ed
d
       eddg      g      d        Ze
j                  j!                  d      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!e
j                  j                  d d!g d"ffd#d$d%d&g      d'        Z"d( Z#d) Z$d* Z%d+ Z&d, Z'd- Z(d. Z)y	)/TestGeometryArrayCRSc                    t         j                  d      | _        t         j                  d      | _        t	        dd      t	        dd      g| _        t        d      D cg c]J  }t        t        d      D cg c]*  }t        j                         t        j                         f, c}      L c}}| _	        t        | j                  d      | _        y c c}w c c}}w )N4l  r'   r   r    
   r5   r   )r   CRSosgbwgsr   geomsr#   r   randompolysr   rL   )self_is      r   setup_methodz!TestGeometryArrayCRS.setup_method   s    JJu%	::d#Aqk5A;/
 2Y
 qJAfmmov}}7JK

  

6 K
s    C7/C&	CCc                 r   t        | j                        }d|_        |j                  | j                  k(  sJ t        | j                  d      }|j                  | j                  k(  sJ t	        |      }|j                  | j                  k(  sJ t	        |d      }|j                  | j
                  k(  sJ y Nr   r   r'   )r   r   r   r   r
   r   r   rL   s     r   
test_arrayzTestGeometryArrayCRS.test_array   s    4::&ww$))###4::51ww$))###C ww$))###CT*ww$(("""r   c                 (   t        d      }|j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ t	        | j
                        }t        |d      }|j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ |j                  dd      }|j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ t        | j
                  d      }|j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ t	        | j
                  d      }t        |      }|j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ t        j                  t        d      5  t        |d      }d d d        |j                  | j                  k(  sJ y # 1 sw Y   %xY w)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_seriesz 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   HHc                    t        | j                  d      }t        |      }|j                  | j                  k(  sJ |j
                  j                  | j                  k(  sJ |j
                  j                  j                  | j                  k(  sJ t        | j                        }t        |d      }t        |      }|j                  | j                  k(  sJ |j
                  j                  | j                  k(  sJ |j
                  j                  j                  | j                  k(  sJ d}t        j                  t        |      5  t        |d      }d d d        t        j                  t        |      5  t        |d       d d d        t        j                  t        |      5  t        dd	g|d
d       d d d        t        j                  t        |      5  t        |d      j                   d d d        t        | j                        }t        |d      }t        |      }|j                  dd      }|j                  | j                  k(  sJ |j
                  j                  | j                  k(  sJ |j
                  j                  j                  | j                  k(  sJ t        j                  t        d      5  t        | j                  dgd       d d d        t        j                  t        d      5  t        d       d d d        t        | j                  dg      }|j                  dd      }|j                  | j                  k(  sJ |j
                  j                  | j                  k(  sJ |j
                  j                  j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ |j                  j                  j                  | j                  k(  sJ t        | j                  d      }|j                  | j                  k(  sJ |j
                  j                  | j                  k(  sJ |j
                  j                  j                  | j                  k(  sJ t        | j                  d      }|j                  | j                  d      }|j                  | j                  k(  sJ |j
                  j                  | j                  k(  sJ |j
                  j                  j                  | j                  k(  sJ t        | j                        }t        |d      }t               }|j                  |      }|j                  dk(  sJ |j                  | j                  k(  sJ |j
                  j                  | j                  k(  sJ |j
                  j                  j                  | j                  k(  sJ t        | j                  d      }t               }|j                  |      }|j                  | j                  k(  sJ |j
                  j                  | j                  k(  sJ |j
                  j                  j                  | j                  k(  sJ t        | j                        }t        dd	g|dd      }|j                  | j                  k(  sJ |j
                  j                  | j                  k(  sJ |j
                  j                  j                  | j                  k(  sJ t        | j                  d      }t        dd	g|d      }|j                  | j                  k(  sJ |j
                  j                  | j                  k(  sJ |j
                  j                  j                  | j                  k(  sJ t        dddgi      }t        j                  t        d      5  d|_        d d d        t!        j"                         5  t!        j$                  ddt&               t        dt)        dd      gi      j+                  dg      }d d d        t        j                  t        d      5  d|_        d d d        t        j                  t,        d      5  |j                  | j                  k(  sJ 	 d d d        y # 1 sw Y   qxY w# 1 sw Y   MxY w# 1 sw Y   $xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   %xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)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_dataframez#TestGeometryArrayCRS.test_dataframe   sN   4::513'vv"""{{$))+++{{!!%%2224::&cu%1%vv"""{{$))+++{{!!%%222 R	]]:Y7 	4qd3B	4]]:Y7 	/!.	/]]:Y7 	D1a&a8dC	D]]:Y7 	+&**	+ 4::&cu%1%ZZKZ=vv!!!{{$((***{{!!%%111]]:-VW 	BfX5A	B]]:-VW 	$U#	$ $**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		 $$& 	P##E{ zE!QK=9:AAA3AOB		P
 ]]N
 	 BF		
 ]]I
 	' 66TYY&&&		' 	'u	4 	4	/ 	/	D 	D	+ 	+	B 	B	$ 	$j	 		P 	P
	 	
	' 	'sy   c
>c/c$%c1c>d-dAd%9d1$d=
cc!$c.1c;>ddd"%d.1d:=ec                     t        dt        d      i| j                        }|j                  j                  |d<   |ddg   }t        j                  t        d      5  |j                  | j                  k(  sJ 	 d d d        y # 1 sw Y   y xY w)Ncolr   r   geom2r   r   )
r   r#   rL   r   centroidr   r   r   r   r   )r   r0   subsets      r   .test_dataframe_getitem_without_geometry_columnzCTestGeometryArrayCRS.test_dataframe_getitem_without_geometry_columne  s|    5%),txx@kk**7UG$%]]I
 	+ ::***		+ 	+ 	+s   BBc                    t        | j                        }t        |d      }t               }t	        j
                  t        d      5  ||d<   d d d        |j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ |j                  j                  j                  | j                  k(  sJ t        | j                  d      }t               }t	        j
                  t        d      5  ||d<   d d d        |j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ |j                  j                  j                  | j                  k(  sJ t        | j                        }t        ddg|dd	      }|d   j                  d      |d<   |j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ |j                  j                  j                  | j                  k(  sJ t        | j                        }t        ddg||d
d	      }t        | j                  d      |d<   |j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ |d   j                  | j                  k(  sJ |d   j                  | j                  k(  sJ y # 1 sw Y   xY w# 1 sw Y   xY w)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_setitemz+TestGeometryArrayCRS.test_dataframe_setitemo  s   4::&cu%^\\!K
 	 BzN	 vv"""{{$))+++{{!!%%2224::51^\\!K
 	! !BzN	! vv"""{{$))+++{{!!%%222 4::&Aq6s;FJ..u5:vv"""{{$))+++{{!!%%222 4::&VC@d
 (

><vv!!!{{$((****~!!TXX---,##tyy000G	 		! 	!s   K*K7*K47Lc                     t        | j                        }t        ddg|dd      }t        j                  t
              5  d|d<   d d d        | j                  |d<   |j                  J y # 1 sw Y   'xY w)Nr    rG   r   r'   r   r   )r   r   r   r   r   r   r   )r   rL   r0   s      r   .test_dataframe_setitem_without_geometry_columnzCTestGeometryArrayCRS.test_dataframe_setitem_without_geometry_column  sn    4::&Aq6s;F \\+& 	BzN	 :vv~~	 	s   A--A6scalarNr   )r   r   )r    r    c                    t               }t        j                  t        d      5  ||d<   d d d        |j	                  d      }|j
                  | j                  k(  sJ |j                  j
                  | j                  k(  sJ |j                  j                  j
                  | j                  k(  sJ y # 1 sw Y   xY w)Nr   r   r   r'   )	r   r   r   r   r   r   r   r   r   )r   r   r0   s      r   test_scalarz TestGeometryArrayCRS.test_scalar  s     ^\\!K
 	$ $BzN	$ ZZvv!!!{{$((***{{!!%%111	$ 	$s   B55B>zignore:Accessing CRSc                     t        j                  t        d      5  t               }d|_        d d d        y # 1 sw Y   y xY w)Nr   r   r'   )r   r   r   r   r   )r   r0   s     r   test_crs_with_no_geom_failsz0TestGeometryArrayCRS.test_crs_with_no_geom_fails  s4    ]]:-VW 	BBF	 	 	s	   7A c                 .   t        |      }|j                  t        j                  d      k(  sJ |j                  j                  t        j                  d      k(  sJ |j                  j
                  j                  t        j                  d      k(  sJ y )Ni  )r	   r   r   r   r   r   )r   nybb_filenamer0   s      r   test_read_filez#TestGeometryArrayCRS.test_read_file  sm    }%vvD)))){{&**T"2222{{!!%%D)9999r   c                    t        | j                  d      }t        | j                  d      }t        ||dg      }|j                  | j
                  k(  sJ |j                  j                  | j
                  k(  sJ |j                  j                  j                  | j
                  k(  sJ |j                  j                  | j                  k(  sJ |j                  j                  j                  | j                  k(  sJ y Nr   r   r'   r   r   rA   )
r   r   r   r   r   r   r   r   r   r   r   s       r   test_multiple_geomsz(TestGeometryArrayCRS.test_multiple_geoms  s    4::51djjd+!cF8<vv"""{{$))+++{{!!%%222ww{{dhh&&&ww~~!!TXX---r   c                 
   t        | j                  d      }t        | j                  d      }t        ||dg      }|j	                  d      }|j
                  | j                  k(  sJ |j                  j
                  | j                  k(  sJ |j                  j                  j
                  | j                  k(  sJ |d   j
                  | j                  k(  sJ |d   j                  j
                  | j                  k(  sJ y )Nr   r   r'   r   r   r   )
r   r   r   r   rC   r   r   r   r   r   r   s       r   test_multiple_geoms_set_geomz1TestGeometryArrayCRS.test_multiple_geoms_set_geom  s    4::51djjd+!cF8<__V$vv!!!{{$((***{{!!%%111*~!!TYY...*~$$((DII555r   c                 x   t        | j                  d      }t        | j                  d      }t        ||dg      }||d<   |j                  |d<   t        | j                        |d<   |j
                  | j                  k(  sJ |j                  j
                  | j                  k(  sJ |j                  j                  j
                  | j                  k(  sJ |j                  j
                  | j                  k(  sJ |j                  j                  j
                  | j                  k(  sJ |j                  j
                  | j                  k(  sJ |j                  j                  j
                  | j                  k(  sJ |j                  j
                  J |j                  j                  j
                  J y )	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_colsz%TestGeometryArrayCRS.test_assign_cols  sN   4::51djjd+!cF8<7hh7"4::.7vv"""{{$))+++{{!!%%222xx||txx'''xx""dhh...xx||txx'''xx""dhh...xx||###xx""***r   c                    t        | j                  d      }t        | j                  d      }t        ||dg      }|j	                         }|j
                  |j
                  k(  sJ |j	                         }|j
                  |j
                  k(  sJ |j                  j
                  |j                  j
                  k(  sJ |j	                         }|j
                  |j
                  k(  sJ |j                  j
                  |j                  j
                  k(  sJ |j                  j                  j
                  |j                  j                  j
                  k(  sJ |j                  j
                  |j                  j
                  k(  sJ |j                  j                  j
                  |j                  j                  j
                  k(  sJ y r   )	r   r   r   r   copyr   r   r   r   )r   rL   rY   r0   arr_copys_copydf_copys          r   	test_copyzTestGeometryArrayCRS.test_copy  sS   4::51djjd+!cF8<88:||sww&&&zzQUU"""}}  AHHLL000''){{bff$$$##r{{666&&**bkk.@.@.D.DDDD||277;;...||""&&"''..*<*<<<<r   c                 r   t        | j                  d      }t        | j                  d      }t        ||dg      }|j	                  ddi      j                  d      }|j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ |j                  j                  j                  | j                  k(  sJ |j                  d	      }|j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ |j                  j                  j                  | j                  k(  sJ |j	                  dd
i      }|j                  j                  | j                  k(  sJ |j                  j                  j                  | j                  k(  sJ y )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_renamez TestGeometryArrayCRS.test_rename  sW   4::51djjd+!cF8<YY
F3Y4AA&Ivv"""{{$))+++{{!!%%222(vv"""{{$))+++{{!!%%222YY	2Y3zz~~)))zz  $$000r   c                 $   t        | j                  d      }|j                  d      }|j                  | j                  k(  sJ |j
                  j                  | j                  k(  sJ t        |      }|j                  | j                  k(  sJ |j                  d      }|j                  | j                  k(  sJ |j                  j                  | j                  k(  sJ |j                  j
                  j                  | j                  k(  sJ t        | j                  d      }||d<   |j                  d      }|j                  j                  | j                  k(  sJ |j                  j
                  j                  | j                  k(  sJ y )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_crsz*TestGeometryArrayCRS.test_geoseries_to_crs
  s1   djje,HHTNuu   xx||txx'''1%vv!!!YYuvv"""{{$))+++{{!!%%222 4::406
YYt_ww{{dhh&&&ww~~!!TXX---r   c                     t        | j                  d      }|j                  d      }|j                  | j                  k(  sJ y r   )r   r   r.   r   r   r   s     r   test_array_to_crsz&TestGeometryArrayCRS.test_array_to_crs  s6    4::51jjww$(("""r   c                 h    t        | j                  d      }|j                  | j                  k(  sJ y Nr   r   )r   r   r   r   r   s     r   test_from_shapelyz&TestGeometryArrayCRS.test_from_shapely#  s(    4::51ww$))###r   c                     | j                   D cg c]  }|j                   }}t        |d      }|j                  | j                  k(  sJ y c c}w r   )r   wkbr   r   r   )r   pL_wkbrL   s       r   test_from_wkbz"TestGeometryArrayCRS.test_from_wkb'  D     $

+1++u%(ww$))### ,   Ac                     | j                   D cg c]  }|j                   }}t        |d      }|j                  | j                  k(  sJ y c c}w r   )r   wktr   r   r   )r   r   L_wktrL   s       r   test_from_wktz"TestGeometryArrayCRS.test_from_wkt,  r   r   c           	          t        j                  t        d      D cg c]  }|||d
 c}      }t        |d   |d   d      }|j                  | j
                  k(  sJ y c c}w )Nr   )r   r   zr   r   r   r   )pd	DataFramer#   r   r   r   )r   r   r0   rL   s       r   test_points_from_xyz(TestGeometryArrayCRS.test_points_from_xy1  sX    \\U2YG3GHRWbg59ww$))### Hs   A!c                     t        | j                        }t        |d      }|j                  J |j                  | j                  k(  sJ y r   )r   r   r   r   r   )r   rL   rY   s      r   test_originalz"TestGeometryArrayCRS.test_original7  s@    4::&cu%wwuu		!!!r   c                    | j                   }|j                  }|j                  | j                  k(  sJ |j                  }|j                  | j                  k(  sJ |j
                  }|j                  | j                  k(  sJ |j                  }|j                  | j                  k(  sJ |j                  }|j                  | j                  k(  sJ |j                         }|j                  | j                  k(  sJ y N)	rL   boundaryr   r   r   convex_hullenvelopeexteriorrepresentative_point)r   rL   boundcenthullr  r  r  s           r   test_opszTestGeometryArrayCRS.test_ops=  s    hhyyDII%%%||xx499$$$xx499$$$<<||tyy(((<<||tyy((("779#''499444r   c                    | j                   }g }t        |      dk  rtt        t        d      D cg c]*  }t	        j                         t	        j                         f, c}      }|j
                  r|j                  |       t        |      dk  rtt        |d      }|j                  |      }|j                  | j                  k(  sJ |j                  |      }|j                  | j                  k(  sJ |j                  |      }|j                  | j                  k(  sJ |j                  |      }	|	j                  | j                  k(  sJ y c c}w )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_opsz$TestGeometryArrayCRS.test_binary_opsQ  s   hh%j2oaQ1V]]_fmmo>QRD}}T" %j2o
 Eu-^^D)
~~***''-499,,,"77=#''499444		$yyDII%%%! Rs   /Ec                 8   | j                   }|j                  d      }|j                  | j                  k(  sJ |j                  j                  d      }|j                  | j                  k(  sJ |j                  d      }|j                  | j                  k(  sJ y )NrP   g?)rL   bufferr   r   r  interpolatesimplify)r   rL   r  r  r  s        r   
test_otherz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                 l     t        | j                  |      | }|j                  | j                  k(  sJ y r   )getattrrL   r   r   )r   attrargrM   s       r   test_affinity_methodsz*TestGeometryArrayCRS.test_affinity_methodss  s1     )4(#.zzTYY&&&r   c                    t        | j                  d      }|j                  dd  j                  j                  | j
                  k(  sJ t        d| j                  i|      }|j                  dd  j                  j                  j                  | j
                  k(  sJ |j                  dd  j                  j                  j                  | j
                  k(  sJ y )Nr   r   r    r   r   )	r   rL   r9   r   r   r   r   r   r   r   rY   r0   s      r   
test_slicezTestGeometryArrayCRS.test_slice  s    dhhE*vvabz  $$		1116488,q9wwqr{##**..$));;;wwqr{&&**dii777r   c                    t        | j                  d      }t        j                  ||g      j                  j
                  | j                  k(  sJ t        dt        | j                  d      i|      }t        j                  ||g      j                  j                  j
                  | j                  k(  sJ t        j                  ||g      j                  j                  j
                  | j                  k(  sJ y )Nr   r   r   r'   r   )r   rL   r   concatr   r   r   r   r   r   r   r   r   r$  s      r   test_concatz TestGeometryArrayCRS.test_concat  s    dhhE*yy!Q ''++tyy8886<

#EFQRSyy"b"++2266$))CCCyy"b"''..22dhh>>>r   c                    t        | j                  d      }t        | j                  d      }t        d|i|      }t        d|i|      j	                  d      }|j                  |dd	      }|j                  j                  j                  | j                  k(  sJ |j                  j                  j                  | j                  k(  sJ |j                  j                  j                  | j                  k(  sJ |j                  j                  j                  | j                  k(  sJ |j                  | j                  k(  sJ y )
Nr   r   r'   r   r   col2r?   T)
left_indexright_index)r   r   r   r   r   merger   r   r   r   r   r   r*  r?   )r   rL   rY   r0   df2mergeds         r   
test_mergez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                    t        | j                  d      }t        dddgi|      }t        |j                        |d<   |j                  j
                  j                  | j                  k(  sJ t        dddgi|      }t        | j                  d      |d<   |j                  j
                  j                  | j                  k(  sJ y )	Nr   r   r   r   r    r   r   r'   )	r   r   r   listr   r   r   r   r   r   rL   r0   r.  s       r   test_setitem_geometryz*TestGeometryArrayCRS.test_setitem_geometry  s    4::516Aq6*S9bkk*:{{!!%%222FQF+c:&tzzt<J||""&&$((222r   c                     t        | j                  d      }t        dddgi|      }|j                  dt        i      }|j
                  | j                  k(  sJ y )Nr   r   r   r   r    r   )r   r   r   astypestrr   r   r3  s       r   test_astypez TestGeometryArrayCRS.test_astype  sO    4::516Aq6*S9ii&ww$))###r   c                     t        | j                        }|j                  dk(  sJ |j                  d       }|j                  dk(  sJ y )Nr   c                     | j                   S r   )r   )r   s    r   <lambda>z1TestGeometryArrayCRS.test_apply.<locals>.<lambda>  s
    1:: r   )r   rL   r   apply)r   rY   rM   s      r   
test_applyzTestGeometryArrayCRS.test_apply  sC    dhhuu~~ -.zzU"""r   c                     t        dddgi| j                  d      }|j                  dk(  sJ |j                  d d      }|j                  dk(  sJ |j                  d d      }|j                  dk(  sJ y )	Nr   r   r    r   r   c                     | S r   r$   )r   s    r   r;  z>TestGeometryArrayCRS.test_apply_geodataframe.<locals>.<lambda>      c r   )axisc                     | S r   r$   )rows    r   r;  z>TestGeometryArrayCRS.test_apply_geodataframe.<locals>.<lambda>  r@  r   )r   r   r   r<  )r   r0   rM   s      r   test_apply_geodataframez,TestGeometryArrayCRS.test_apply_geodataframe  sw    6Aq6*TZZUKvv /2zzU"""/2zzU"""r   )*__name__
__module____qualname__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  r  r"  r%  r(  r0  r4  r8  r=  rD  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                   `    e Zd Zej                  j                  dd d gddg      d        Zy)	
TestSetCRSconstructorc                     t        | |      S )Nr   )r   r   r   s     r   r;  zTestSetCRS.<lambda>  s    yC8 r   c                     t        | |      S )Nr   )r   rN  s     r   r;  zTestSetCRS.<lambda>  s    |UD r   	geoseriesgeodataframe)rl   c                      |t        dd      t        dd      gd       }|j                  J |j                  d      }|j                  dk(  sJ |j                  J |j                  d      }|j                  dk(  sJ |j                  J |j                  dd      }||u sJ |j                  |j                  cxk(  rdk(  sJ  J  |t        dd      t        dd      gd      }|j                  dk(  sJ t        j                  t
        d	
      5  |j                  d       d d d        |j                  d      }|j                  dk(  sJ |j                  dd      }|j                  dk(  sJ |j                  dk(  sJ |j                  ddd      }|j                  dk(  sJ |j                  dk(  sJ |j                  d d      }|j                  J |j                  dk(  sJ y # 1 sw Y   xY w)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   rL  naiverM   	non_naives        r   test_set_crsz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*	+ "";/zz[((( "";t"D}}+++zz[((("";tT"R}}+++zz[((( ""tD"Azz!!!}}+++'	+ 	+s   G44G=N)rE  rF  rG  r   rH  rI  rU  r$   r   r   rK  rK    s@    [[8D	
 .)  (,(,r   rK  )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   rH  r   r]   fixturerq   ru   r   r   r   r   r   rK  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   