
    h&                     t    d dl Z d dlZd dlmZ d dlmZmZ d dlm	Z	m
Z
 d dlZd dlmZ d dlmZ  G d d      Zy)	    N)Point)GeoDataFrame	GeoSeries)
HAS_PYPROJPANDAS_GE_21)assert_geodataframe_equal)assert_index_equalc                   
   e Zd Zd ZddZd Zd Zej                  j                  e
 d      d        Zej                  j                  e
 d      d	        Zd
 Zd Zd Zej                  j!                  d      d        Zy)TestMergingc           	      6   t        t        d      D cg c]  }t        ||       c}      | _        t	        j
                  g d      | _        t        | j                  t        d      d      | _        t	        j                  g dg dd      | _
        y c c}w )N   )      r   )geometryvalues)g?g?g333333?)col1col2)r   ranger   gseriespdSeriesseriesr   gdf	DataFramedf)selfis     M/var/www/html/immo/lib/python3.12/site-packages/geopandas/tests/test_merge.pysetup_methodzTestMerging.setup_method   sg     uQx!@!%1+!@Aii	*T\\U1X NO,,	?KL "As   BNc                 H    |j                   |k(  sJ |j                  |k(  sJ y )N)_geometry_column_namecrs)r   r   geometry_column_namer"   s       r   _check_metadatazTestMerging._check_metadata   s'    ((,@@@@ww#~~    c                 R   | j                   j                  | j                  dd      }t        |t              sJ t        |j
                  t              sJ | j                  |       d| j                   _        | j                   j                  ddi      j                  d      | _         | j                   j                  | j                  dd      }t        |t              sJ t        |j
                  t              sJ | j                  |d| j                   j                         y )Nr   r   )left_onright_on	epsg:4326r   points)columns)r   merger   
isinstancer   r   r   r$   r"   renameset_geometryr   ress     r   
test_mergezTestMerging.test_merge   s    hhnnTWWhnH #|,,, #,,	222 	S! #88??J+A?BOO
 hhnnTWWhnH#|,,,#,,	222S(DHHLL9r%   c                    t        j                  | j                  | j                  g      }|j                  dk(  sJ t	        |t
              sJ t	        |j                  t              sJ | j                  |       t        t        j                  t        j                  | j                        t        j                  | j                        g            }t        ||       t        j                  | j                  j                  | j                  j                  g      }|j                  dk(  sJ t	        |t              sJ t	        |j                  t              sJ y )N)   r   )r4   )r   concatr   shaper-   r   r   r   r$   r   r   )r   r1   exps      r   test_concat_axis0zTestMerging.test_concat_axis00   s    ii488,-yyF"""#|,,,#,,	222S!299bll488&<bll488>T%UVW!#s+ ii**DHH,=,=>?yyD   #y)))#,,	222r%   zpyproj not available)reasonc                 Z   t        j                  | j                  | j                  g      }| j                  |       t        j                  | j                  j	                  d      | j                  j	                  d      g      }| j                  |d       t        j                  t        d      5  t        j                  | j                  | j                  j	                  d      g      }| j                  |d       d d d        t        j                  t        d      5  t        j                  | j                  j	                  d      | j                  j	                  d      g       d d d        t        j                  t        d      5  t        j                  | j                  | j                  j	                  d      | j                  j	                  d      g      }| j                  |d       d d d        t        j                  t        d      5  t        j                  | j                  | j                  j	                  d      | j                  j	                  d      g       d d d        y # 1 sw Y   {xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr)   r"   2CRS not set for some of the concatenation inputs.*matchz6Cannot determine common CRS for concatenation inputs.*	epsg:4327)
r   r5   r   r$   set_crspytestwarnsUserWarningraises
ValueError)r   r1   res1res2res3s        r   test_concat_axis0_crsz!TestMerging.test_concat_axis0_crs@   s    ii488,-S! yy$((**;79I9I+9VWXT{3 \\T
 	8 99dhh(8(8(EFGD  ; 7		8 ]]W
 	V IItxx''4dhh6F6F{6STU	V \\T
 	8 99488++K8$((:J:J;:WXD   ; 7	8 ]]W
 	 II488++K8$((:J:J;:WX	 	1	8 	8	V 	V	8 	8	 	s4   4AI;%A
JA(JAJ!;JJJ!J*c           	      ,   | j                   j                  d      j                  | j                   j                  j                  d            }|ddg   }|dg   }t	        j
                         5  t	        j                  d       t        j                  ||g       d d d        t	        j
                         5  t	        j                  d       t        j                  ||g       d d d        |dg   j                  t        t        t        |            D cg c]  }d  c}            }t	        j
                         5  t	        j                  d       t        j                  ||g       d d d        t        j                  t        d      5  | j                   dg   j                         }d |j                   d	<   t        j                  ||g       d d d        y # 1 sw Y   DxY w# 1 sw Y   xY wc c}w # 1 sw Y   xY w# 1 sw Y   y xY w)
Nr)   r?   )geomrK   r   errorr<   r=   r   )r   r@   assignr   warningscatch_warningssimplefilterr   r5   r   r   lenrA   rB   rC   copyiloc)r   r   both_geom_colssingle_geom_col_explicit_all_none_casepartial_none_cases          r    test_concat_axis0_unaligned_colsz,TestMerging.test_concat_axis0_unaligned_colsj   s    hh{+22""**;7 3 
 fj12zl+$$& 	9!!'*II~78	9 $$& 	9!!'*II78	9 "%j\!2!9!9%C/:QD:; ": "
 $$& 	@!!'*II~'=>?	@ \\T
 	< !%* 6 ; ; =(,""1%II(9:;	< 	<'	9 	9	9 	9 ;	@ 	@	< 	<s7   0-G9-G,	G9-G>AH
G),G6>H
Hc                 2   t        j                  d      }d}|j                  d      }|j                  d      }|j                  j	                  |      }|j                  j	                  |      }t        ||h      dk(  sJ ||k(  sJ t        j                  | j                  | j                  g      j                  |      }t        j                  | j                  j                  |      | j                  j                  |      g      }t        ||       y )Npyproja  GEOGCRS["WGS 84",
        ENSEMBLE["World Geodetic System 1984 ensemble",
        MEMBER["World Geodetic System 1984 (Transit)"],
        MEMBER["World Geodetic System 1984 (G730)"],
        MEMBER["World Geodetic System 1984 (G873)"],
        MEMBER["World Geodetic System 1984 (G1150)"],
        MEMBER["World Geodetic System 1984 (G1674)"],
        MEMBER["World Geodetic System 1984 (G1762)"],
        MEMBER["World Geodetic System 1984 (G2139)"],
        ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],
        ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,
        ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],
        AXIS["geodetic latitude (Lat)",north,ORDER[1],
        ANGLEUNIT["degree",0.0174532925199433]],
        AXIS["geodetic longitude (Lon)",east,ORDER[2],
        ANGLEUNIT["degree",0.0174532925199433]],
        USAGE[SCOPE["Horizontal component of 3D system."],
        AREA["World.{}"],BBOX[-90,-180,90,180]],ID["EPSG",4326]]  r   )rA   importorskipformatCRSfrom_wktrQ   r   r5   r   r@   r   )	r   r[   wkt_templatewkt_v1wkt_v2crs1crs2expectedr1   s	            r   "test_concat_axis0_crs_wkt_mismatchz.TestMerging.test_concat_axis0_crs_wkt_mismatch   s    $$X.D$ $$R($$S)zz""6*zz""6* D$< A%%%t||99dhh12::4@ii))$/1A1A$1GHI!(C0r%   c                     t        j                  | j                  | j                  gd      }|j                  dk(  sJ t        |t              sJ t        |j                  t              sJ | j                  |       y )Nr   axis)r      )
r   r5   r   r   r6   r-   r   r   r   r$   r0   s     r   test_concat_axis1zTestMerging.test_concat_axis1   sc    ii477+!4yyF"""#|,,,#,,	222S!r%   c                 :   t         rd}nd}t        j                  t        |      5  t	        j
                  | j                  | j                  gd       d d d        | j                  j                  d      }d}t        j                  t        |      5  t	        j
                  ||gd       d d d        t        rGt	        j
                  |j                  d      | j                  gd      }| j                  |dd	       y y # 1 sw Y   xY w# 1 sw Y   cxY w)
Nz\Concat operation has resulted in multiple columns using the geometry column name 'geometry'.zXGeoDataFrame does not support multiple columns using the geometry column name 'geometry'r=   r   rj   rK   zXConcat operation has resulted in multiple columns using the geometry column name 'geom'.r)   )r#   r"   )r   rA   rD   rE   r   r5   r   rename_geometryr   r@   r$   )r   expected_errdf2expected_err2rH   s        r   (test_concat_axis1_multiple_geodataframesz4TestMerging.test_concat_axis1_multiple_geodataframes   s     * *  ]]:\: 	4IItxx*3	4 hh&&v." 	 ]]:]; 	*IIsCjq)	* 99ckk+6AJD  F T	 	4 	4	* 	*s   .DDDDzignore:Accessing CRSc           	      6   t        t        dd      D cg c]  }t        ||       c}d      }t        j                  || j
                  gd      }t        |      t        u sJ |j                  J t        t        j                  ddg      |j                         d|_        t        j                  || j
                  gd      }t        |      t        u sJ |j                  J t        t        j                  ddg      |j                         y c c}w )	Nr   r4   r)   r;   r   rj   r   foo)r   r   r   r   r5   r   typer   r!   r	   Indexr+   name)r   r   gseries2resultresult2s        r   test_concat_axis1_geoseriesz'TestMerging.test_concat_axis1_geoseries   s    5A;?aeAqk?[QHdll3!< F||+++++333288QF+V^^<))Xt||41=G},,,++333288UAJ/A @s   D)r   N)__name__
__module____qualname__r   r$   r2   r8   rA   markskipifr   rI   rY   rh   rm   rs   filterwarningsr|    r%   r   r   r      s    M:,3  [[J/EF' G'R [[J/EF< G<B 1D" UD [[ 67B 8Br%   r   )rN   pandasr   shapely.geometryr   	geopandasr   r   geopandas._compatr   r   rA   geopandas.testingr   pandas.testingr	   r   r   r%   r   <module>r      s+      " - 6  7 -WB WBr%   