
    rbi&                     |    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dS )	    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        	                    e
 d          d	             Zej        	                    e
 d          d
             Zd Zd Zd Zej                            d          d             ZdS )TestMergingc                 $   t          d t          d          D                       | _        t          j        g d          | _        t          | j        t          d          d          | _        t          j        g dg dd          | _	        d S )Nc                 .    g | ]}t          ||          S  r   .0is     j/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/geopandas/tests/test_merge.py
<listcomp>z,TestMerging.setup_method.<locals>.<listcomp>   s     !@!@!@!%1++!@!@!@       )      r   )geometryvalues)g?g?g333333?)col1col2)
r   rangegseriespdSeriesseriesr   gdf	DataFramedf)selfs    r   setup_methodzTestMerging.setup_method   s     !@!@uQxx!@!@!@AAi			**T\U1XX N NOO,			???KKLLr   r   Nc                 :    |j         |k    sJ |j        |k    sJ d S N)_geometry_column_namecrs)r%   r"   geometry_column_namer*   s       r   _check_metadatazTestMerging._check_metadata   s*    (,@@@@@w#~~~~~~r   c                 H   | j                             | j        dd          }t          |t                    sJ t          |j        t                    sJ |                     |           d| j         _        | j         	                    ddi          
                    d          | _         | j                             | j        dd          }t          |t                    sJ t          |j        t                    sJ |                     |d| j         j                   d S )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   hnnTWhnHH #|,,,,, #,	22222 	S!!! #8??J+A?BBOO
 
 hnnTWhnHH#|,,,,,#,	22222S(DHL99999r   c                    t          j        | j        | j        g          }|j        dk    sJ t	          |t
                    sJ t	          |j        t                    s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 d S )N)   r   )r;   )r   concatr"   shaper4   r   r   r   r,   r#   r	   )r%   r8   exps      r   test_concat_axis0zTestMerging.test_concat_axis00   s   i48,--yF""""#|,,,,,#,	22222S!!!29bl48&<&<bl48>T>T%UVVWW!#s+++ i*DH,=>??yD    #y)))))#,	2222222r   zpyproj not available)reasonc                 B   t          j        | j        | j        g          }|                     |           t          j        | j                            d          | j                            d          g          }|                     |d           t          j        t          d          5  t          j        | j        | j                            d          g          }|                     |d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        | j                            d          | j                            d          g           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        | j        | j                            d          | j                            d          g          }|                     |d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        | j        | j                            d          | j                            d          g           d d d            d S # 1 swxY w Y   d S )Nr0   r*   2CRS not set for some of the concatenation inputs.*matchz6Cannot determine common CRS for concatenation inputs.*	epsg:4327)
r   r<   r"   r,   set_crspytestwarnsUserWarningraises
ValueError)r%   r8   res1res2res3s        r   test_concat_axis0_crsz!TestMerging.test_concat_axis0_crs@   s    i48,--S!!! y$(**;779I9I+9V9VWXXT{333 \T
 
 
 	8 	8 9dh(8(8(E(EFGGD  ; 777		8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 ]W
 
 
 	V 	V Itx''44dh6F6F{6S6STUUU	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V \T
 
 
 	8 	8 948++K88$(:J:J;:W:WX D   ; 777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 ]W
 
 
 	 	 I48++K88$(:J:J;:W:WX  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sL   .ADD	D	+AE>>FF$A$HHH:AJJJc           
      D   | j                             d                              | j         j                            d                    }|ddg         }|dg         }t	          j                    5  t	          j        d           t          j        ||g           d d d            n# 1 swxY w Y   t	          j                    5  t	          j        d           t          j        ||g           d d d            n# 1 swxY w Y   |dg                             t          d t          t          |                    D                                 }t	          j                    5  t	          j        d           t          j        ||g           d d d            n# 1 swxY w Y   t          j        t          d	          5  | j         dg                                         }d |j        d
<   t          j        ||g           d d d            d S # 1 swxY w Y   d S )Nr0   rF   )geomrR   r   errorc                     g | ]}d S r(   r   )r   _s     r   r   z@TestMerging.test_concat_axis0_unaligned_cols.<locals>.<listcomp>}   s    :::QD:::r   rC   rD   r   )r"   rG   assignr   warningscatch_warningssimplefilterr   r<   r   r   lenrH   rI   rJ   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#    h{++22"**;77 3 
 
 fj12zl+$&& 	9 	9!'***I~7888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 $&& 	9 	9!'***I7888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 "%j\!2!9!9::%C//:::;; ": "
 "
 $&& 	@ 	@!'***I~'=>???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ \T
 
 
 	< 	< !%* 6 ; ; = =(,"1%I(9:;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<sI   2+B))B-0B-+C>>DD*+F!!F%(F%AHHHc                 >   t          j        d          }d}|                    d          }|                    d          }|j                            |          }|j                            |          }t          ||h          dk    sJ ||k    sJ t          j        | j        | j        g          	                    |          }t          j        | j        	                    |          | j        	                    |          g          }t          ||           d S )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   )rH   importorskipformatCRSfrom_wktrZ   r   r<   r"   rG   r	   )	r%   rc   wkt_templatewkt_v1wkt_v2crs1crs2expectedr8   s	            r   "test_concat_axis0_crs_wkt_mismatchz.TestMerging.test_concat_axis0_crs_wkt_mismatch   s   $X..D$ $$R(($$S))z""6**z""6** D$<  A%%%%t||||9dh122::4@@i))$//1A1A$1G1GHII!(C00000r   c                     t          j        | j        | j        gd          }|j        dk    sJ t          |t                    sJ t          |j        t                    sJ | 	                    |           d S )Nr   axis)r      )
r   r<   r"   r$   r=   r4   r   r   r   r,   r7   s     r   test_concat_axis1zTestMerging.test_concat_axis1   sz    i47+!444yF""""#|,,,,,#,	22222S!!!!!r   c                 8   t           rd}nd}t          j        t          |          5  t	          j        | j        | j        gd           d d d            n# 1 swxY w Y   | j                            d          }d}t          j        t          |          5  t	          j        ||gd           d d d            n# 1 swxY w Y   t          rJt	          j        |	                    d          | j        gd          }| 
                    |dd	           d S d S )
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'rD   r   rr   rR   zXConcat operation has resulted in multiple columns using the geometry column name 'geom'.r0   )r+   r*   )r   rH   rK   rL   r   r<   r"   rename_geometryr   rG   r,   )r%   expected_errdf2expected_err2rO   s        r   (test_concat_axis1_multiple_geodataframesz4TestMerging.test_concat_axis1_multiple_geodataframes   s     	* L*  ]:\::: 	4 	4Itx*3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 h&&v.." 	 ]:];;; 	* 	*IsCjq))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*  	U9ckk+66AJJJD  F TTTTT		U 	Us#   #AAAB>>CCzignore:Accessing CRSc                    t          d t          dd          D             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
                   d S )
Nc                 .    g | ]}t          ||          S r   r   r   s     r   r   z;TestMerging.test_concat_axis1_geoseries.<locals>.<listcomp>   s     ???aeAqkk???r   r   r;   r0   rB   r   rr   r   foo)r   r   r   r<   r   typer   r)   r
   Indexr2   name)r%   gseries2resultresult2s       r   test_concat_axis1_geoseriesz'TestMerging.test_concat_axis1_geoseries   s    ??5A;;???[QQQHdl3!<<< F|||+++++33328QF++V^<<<)Xt|41===G}},,,,+33328UAJ//AAAAAr   )r   N)__name__
__module____qualname__r&   r,   r9   r?   rH   markskipifr   rP   ra   rp   ru   r{   filterwarningsr   r   r   r   r   r      s(       M M M   : : :,3 3 3  [J/EFF' ' GF'R [J/EFF< < GF<B 1  1  1D" " " U  U  UD [ 677B B 87B B Br   r   )rW   pandasr   shapely.geometryr   	geopandasr   r   geopandas._compatr   r   rH   geopandas.testingr	   pandas.testingr
   r   r   r   r   <module>r      s         " " " " " " - - - - - - - - 6 6 6 6 6 6 6 6  7 7 7 7 7 7 - - - - - -WB WB WB WB WB WB WB WB WB WBr   