
    rbi.                        d dl Z d dlZd dlZd dlmZmZ d dlZd dlm	Z	m
Z
 d dlmZmZmZmZ d dlZd dlmZmZ d dlmZ ej        d             Zej        d             Zej        d	             Zej        d
             Zd Zej                            e d          d             Zd Zd Z d Z!d Z"d Z#d Z$ej        %                    dd e eg d           eg d          g          fd eg d          fg          d             Z&d Z'd Z(d Z)d Z*d Z+d  Z,d! Z-d" Z.ej        %                    d#d$d%g          d&             Z/dS )'    N)MultiPolygonPolygon)GeoDataFrame	read_file)GEOS_GE_312
HAS_PYPROJPANDAS_GE_30SHAPELY_GE_21)assert_geodataframe_equalgeom_almost_equals)assert_frame_equalc                     t          |           }|g d         }|                    ddi          }|                    d          }d|d<   d|j        dd	df<   |d
                             d          |d
<   |S )N)geometryBoroNameBoroCoder   myshapescolumns   manhattan_bronx         r   int64)r   renameset_geometrylocastype)nybb_filenamenybb_polydfs     m/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/geopandas/tests/test_dissolve.pyr    r       s    M**KBBBCK$$j*-E$FFK**:66K%&K!"./KOAaC**+)*5<<WEEK
    c                    | j         dd         }| j         dd         }|j                                        |j                                        g}t          d|idt	          j        ddgd	          | j        
          }|S )Nr   r   r      r   r   r   r   namer   indexcrs)r   r   	union_allr   pdIndexr)   )r    r   others	collapsedmerged_shapess        r!   r/   r/      s     "oac*O_QqS!F**,,o.F.P.P.R.RSI 	Yh1v$5666O	  M r"   c                 J    |                                  }ddg|d<   ddg|d<   |S )NStaten Island	Manhattanr   r      r   copy)r/   firsts     r!   r6   r6   .   s5      E(+6E*AE*Lr"   c                 <    |                                  }ddg|d<   |S )Nr   g      ?r   r4   )r/   	test_means     r!   expected_meanr9   6   s'    ""$$IHIjr"   c                 x    |                      d          }|j        j        dk    sJ t          ||          sJ d S )Nr   r   )dissolver   r&   r   r    r6   tests      r!   test_geom_dissolver>   =   sH     122D=++++dE*******r"   zpyproj not installed)reasonc                 T    | j         J |                     d          }|j         J d S Nr   )r)   r;   r    r=   s     r!   "test_dissolve_retains_existing_crsrC   C   s8    ?&&& 122D8r"   c                 d    d | j         j        _        |                     d          }|j        J d S rA   )r   arrayr)   r;   rB   s     r!   %test_dissolve_retains_nonexisting_crsrF   J   s8    %)K" 122D8r"   c                 T    |                      d          }t          ||d           d S )Nr   Fcheck_column_type)r;   r   r<   s      r!   test_first_dissolverJ   P   s1     122Dude<<<<<<r"   c                     |                      ddd          }|                     dg                               dd          }t          ||d	           t          ||d	           d S )
Nr   meanTaggfuncnumeric_onlyr   r   rN   FrH   )r;   dropr   )r    r6   r9   r=   test2s        r!   test_mean_dissolverS   U   s     16PTUUDj\22;;6 <  E }deDDDD}euEEEEEEr"   c                     d }t          j        t          d          5  |                     d|           d d d            d S # 1 swxY w Y   d S )Nc                 V    t          j        d           |                     d          S )NfooF)rO   )warningswarnsum)groups    r!   sum_and_warnz8test_dissolve_emits_other_warnings.<locals>.sum_and_warnc   s&    eyyey,,,r"   rV   )matchr   rP   )pytestwarnsUserWarningr;   )r    r[   s     r!   "test_dissolve_emits_other_warningsr`   `   s    - - - 
k	/	/	/ F F.EEEF F F F F F F F F F F F F F F F F Fs   AAAc                    |                                  }|j        |d<   |                    ddgd          }|                                 }|j        |d<   |                    |j        dg          }t          ||d           d S )Ndup_colr   r6   rP   FrH   )r5   r   r;   r(   	set_indexr   )r    r6   multi
multi_test
first_copys        r!   test_multicolumn_dissolverg   k   s    E,E)!2I >PPJJ&,Jy%%z'7&CDDJz:GGGGGGr"   c                     |                      dd          }|                                }t          ||d           d S )Nr   F)as_indexrH   )r;   reset_indexr   )r    r6   r=   
comparisons       r!   test_reset_indexrl   w   sG     1EBBD""$$Jz45AAAAAAr"   zgrid_size, expectedr   r   
   r   rp   	   )r   g?)gffffff@r   r   r   r3   )rt   )r   r   rq   ro   rn   c                     t          j        t          g d          t          g d          g          }|                    |           }|j        d                             |          sJ d S )Nrm   rs   )r   )	grid_sizer   )	geopandasr   r   r;   r   equals)rv   expectedgdfdissolved_gdfs       r!   test_dissolve_grid_sizer|   }   s      
 ...//00011
  C LL9L55M!!$++H5555555r"   c           
          |                      d           }t          | j        j        | j                                        gddgddgddgi| j        j        | j                  }t          ||d	           d S )
N)byr   r1   r   r   r   r   r)   FrH   r;   r   r   r&   r*   r)   r   r    r=   ry   s      r!   test_dissolve_noner      s    4((D %(<(F(F(H(H'I)s		
 %*O	 	 	H x??????r"   c                     |                      dd          }t          | j        j        | j                                        gddgddgi| j        j        | j                  }t          ||d	
           d S )NrL   TrM   r   g      @r   g@r   FrH   r   r   s      r!   test_dissolve_none_meanr      s    TBBD %(<(F(F(H(H'Iu	

 %*O  H x??????r"   c            	      0   t          j        g dg dg dt           j                            g d          d                              g d          } t          j        ddgt           j                            d	d
g          d                              d          }t          j        ddgt           j                            ddg          d                              d          }t          j        g dg dt           j                            g d          d                              ddg          }t          ||                     d                     t          ||                     d                     t          ||                     d                     t          ||                     d                     t          ||                     ddg                     t          ||                     ddg                     d S )N)r3   r3   r$   r$   )r   r   r   r   )r   r   r   r   POINT (0 0)POINT (1 1)POINT (2 2)POINT (3 3))abcr   )r   r   r   r3   r$   MULTIPOINT (0 0, 1 1)MULTIPOINT (2 2, 3 3)r   r   r   r   r   r   zMULTIPOINT (1 1, 2 2, 3 3))r   r   r   r3   r3   r$   )r   r   r   )r   r   r   )r   r   r   r   )level)rw   r   rE   from_wktrc   r   r;   )rz   
expected_a
expected_bexpected_abs       r!   test_dissolve_levelr      s1   

 !00LLL 		
 	
	 	 i    'Q!00(*AB 	
 	
  inn  'Q!00 <= 	
 	
  inn  (!00GGG 	
 	
  ic
  z3<<a<#8#8999z3<<c<#:#:;;;z3<<a<#8#8999z3<<c<#:#:;;;{CLL1vL$>$>???{CLLSzL$B$BCCCCCr"   c                     t          j        g dt           j                            g d          d          } t          j        ddgt           j                            ddg          d                              d          }|                                }t          ||                     d                     t          ||                     dd	
                     d S )N)r$   r3   r3   r   r   r   r   r$   r3   r   zMULTIPOINT (1 1, 2 2)r   F)sort)rw   r   rE   r   rc   
sort_indexr   r;   )rz   expected_unsortedexpected_sorteds      r!   test_dissolve_sortr      s    

 !00=== 	
 	
 C ".Q!00 78 	
 	
  inn  (2244OS(9(9:::(#,,s,*G*GHHHHHr"   c            
         t          j        t          j        g d          g dg dt           j                            g d          d          } t          rdnd }t          j        t          j        g d          g dt           j                            d|d	d
g          g dd                              ddg          }t          j        t          j        g d          g dt           j                            g d          g dd                              ddg          }t          || 	                    ddg                     t          || 	                    ddgd                     d S )N)r   r   r   r   )r3   r3   r3   r$   )r3   r$   r   r   r   )catnoncatto_aggr   zGEOMETRYCOLLECTION EMPTY)r3   r$   r3   r$   r   r   r   )r3   Nr   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r   )r3   r   r   T)observed)
rw   r   r+   CategoricalrE   r   r	   rc   r   r;   )rz   none_valexpected_gdf_observed_falseexpected_gdf_observed_trues       r!   test_dissolve_categoricalr      s   

 >"6"6"677"ll"ll!00LLL 		
 	
	 	C .:C))tH"+"8>"6"6"677"ll!00+!!	  &oo	
 	
# # i!""  " "+!7>///22ii!00GGG   ii	
 	
	" 	" i!""  2CLL%AR4S4STTT"CLL%1BTL$R$R    r"   c                  B   t          j        g dt           j                            g d          d          } t          j        dt          j        gt           j                            ddg          d                              d          }t          j        dgt           j                            dg          d                              d          }t          ||                     dd	                     t          ||                     d                     d S )
N)r3   r3   Nr   r   g      ?r   r   r   F)dropna)	rw   r   rE   r   npnanrc   r   r;   )rz   expected_with_naexpected_no_nas      r!   test_dissolve_dropnar   ,  s&   

 !00=== 	
 	
 C !-rv!00(-8 	
 	
  inn  +!002I1JKK	
 	
 
 inn  'c%)H)HIII~s||C'8'899999r"   c                     t          j        d          5 }|                                  d d d            n# 1 swxY w Y   |D ]}dt          |j                  vsJ d S )NT)recordzdropna kwarg is not supported)rW   catch_warningsr;   strmessage)r    r   rs      r!   test_dissolve_dropna_warnr   I  s    		 	-	-	-                 E E.c!)nnDDDDDE Es   7;;c                    ddg|d<   ddg|d<   ddg|d<   t          j                    5  t          j        d	           |                     d
ddgdd          }d d d            n# 1 swxY w Y   t	          ||           d S )Nr   r3   )r   minr   r$   )r   max)r   counterror)actionr   r   r   r   )r   r   )r~   rN   )rW   r   simplefilterr;   r   )r    r/   r=   s      r!   test_dissolve_multi_aggr   R  s    *+QM%&*+QM%&,-q6M'(		 	"	" 
 
W----## "EN#  $ 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 dM22222s   2A''A+.A+methodcoveragedisjoint_subsetc                    |dk    r"t           rt          st          j        d           | j        dd         }| j        dd         }|j                            |          |j                            |          g}t          d|idt          j	        d	d
gd          | j
                  }ddg|d<   d	dg|d<   |                     d|          }t          ||d           d S )Nr   zUnsupported shapely/GEOS.r   r   r   r$   )r   r   r   r   r   r%   r'   r1   r2   r   r3   r   FrH   )r   r
   r]   skipr   r   r*   r   r+   r,   r)   r;   r   )r    r   r   r-   r.   r/   r=   s          r!   test_dissolve_methodr   d  s   """K"M"/000!oac*O_QqS!F 	!!!00 **&*99I !	Yh1v$5666O	  M "1+ >M*!"AM* 1&AAD}deDDDDDDr"   )0rW   numpyr   pandasr+   shapelyr   r   rw   r   r   geopandas._compatr   r   r	   r
   r]   geopandas.testingr   r   pandas.testingr   fixturer    r/   r6   r9   r>   markskipifrC   rF   rJ   rS   r`   rg   rl   parametrizer|   r   r   r   r   r   r   r   r   r    r"   r!   <module>r      s=            ) ) ) ) ) ) ) )     - - - - - - - - R R R R R R R R R R R R  K K K K K K K K - - - - - -             + + + 
N+ABB    CB   = = =
F F FF F F	H 	H 	HB B B  LG66677G88899 	
 
GG>>>??@ 	6 	6 	6@ @ @@ @ @+D +D +D\I I I0. . .b: : ::E E E3 3 3$ J0A#BCCE E DCE E Er"   