
    jj.                        S SK r S SKrS SKrS SKJrJr  S SKrS SKJ	r	J
r
  S SKJrJrJrJr  S SKrS SKJrJr  S SKJr  \R,                  S 5       r\R,                  S 5       r\R,                  S	 5       r\R,                  S
 5       rS r\R8                  R;                  \(       + SS9S 5       rS rS r S r!S r"S r#S r$\R8                  RK                  SS\" \" / SQ5      \" / SQ5      /5      4S\" / SQ5      4/5      S 5       r&S r'S r(S r)S r*S r+S  r,S! r-S" r.\R8                  RK                  S#S$S%/5      S& 5       r/g)'    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                     [        U 5      nU/ SQ   nUR                  SS0S9nUR                  S5      nSUS'   SUR                  SS	2S4'   US
   R	                  S5      US
'   U$ )N)geometryBoroNameBoroCoder   myshapescolumns   manhattan_bronx         r   int64)r   renameset_geometrylocastype)nybb_filenamenybb_polydfs     `/var/www/html/Sattelite-Image/venv/lib/python3.13/site-packages/geopandas/tests/test_dissolve.pyr    r       s    M*KBCK$$j*-E$FK**:6K%&K!"./KOOAaC**+)*5<<WEK
    c           	         U R                   SS nU R                   SS nUR                  R                  5       UR                  R                  5       /n[        SU0S[        R
                  " SS/SS	9U R                  S
9nU$ )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     "ooa*O__Qq!F**,o.F.F.P.P.RSI 	Yhh1v$56OO	M r"   c                 B    U R                  5       nSS/US'   SS/US'   U$ )NStaten Island	Manhattanr   r      r   copy)r/   firsts     r!   r6   r6   .   s2     E(+6E*AE*Lr"   c                 4    U R                  5       nSS/US'   U$ )Nr   g      ?r   r4   )r/   	test_means     r!   expected_meanr9   6   s$    ""$IHIjr"   c                     U R                  S5      nUR                  R                  S:X  d   e[        X!5      (       d   eg )Nr   r   )dissolver   r&   r   r    r6   tests      r!   test_geom_dissolver>   =   s<     12D==+++d****r"   zpyproj not installed)reasonc                 b    U R                   c   eU R                  S5      nUR                   c   eg Nr   )r)   r;   r    r=   s     r!   "test_dissolve_retains_existing_crsrC   C   s3    ??&&& 12D88r"   c                 z    S U R                   R                  l        U R                  S5      nUR                  b   eg rA   )r   arrayr)   r;   rB   s     r!   %test_dissolve_retains_nonexisting_crsrF   J   s7    %)K" 12D88r"   c                 :    U R                  S5      n[        XSS9  g )Nr   Fcheck_column_type)r;   r   r<   s      r!   test_first_dissolverJ   P   s     12Due<r"   c                     U R                  SSSS9nU R                  S/S9R                  SSS9n[        X#SS	9  [        X$SS	9  g )
Nr   meanTaggfuncnumeric_onlyr   r   rN   FrH   )r;   dropr   )r    r6   r9   r=   test2s        r!   test_mean_dissolverS   U   s[     16PTUDj\2;;6 < E }eD}uEr"   c                     S n[         R                  " [        SS9   U R                  SUS9  S S S 5        g ! , (       d  f       g = f)Nc                 L    [         R                  " S5        U R                  SS9$ )NfooF)rO   )warningswarnsum)groups    r!   sum_and_warn8test_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_warningsra   `   s7    - 
k	/.E 
0	/	/s	   7
Ac                     U R                  5       nUR                  US'   UR                  SS/SS9nUR                  5       nUR                  US'   UR	                  UR                  S/5      n[        X4SS9  g )Ndup_colr   r6   rP   FrH   )r5   r   r;   r(   	set_indexr   )r    r6   multi
multi_test
first_copys        r!   test_multicolumn_dissolverh   k   sx    E,,E)!2I >PJJ&,,Jy%%z'7'7&CDJzGr"   c                 X    U R                  SSS9nUR                  5       n[        X2SS9  g )Nr   F)as_indexrH   )r;   reset_indexr   )r    r6   r=   
comparisons       r!   test_reset_indexrm   w   s0     1EBD""$Jz5Ar"   zgrid_size, expectedr   r   
   r   rq   	   )r   g?)gffffff@r   r   r   r3   )ru   )r   r   rr   rp   ro   c                     [         R                  " [        / SQ5      [        / SQ5      /S9nUR                  U S9nUR                  S   R                  U5      (       d   eg )Nrn   rt   )r   )	grid_sizer   )	geopandasr   r   r;   r   equals)rw   expectedgdfdissolved_gdfs       r!   test_dissolve_grid_sizer}   }   s_      
 
 ./01
C LL9L5M!!!$++H5555r"   c           
          U R                  S S9n[        U R                  R                  U R                  R	                  5       /SS/SS/SS/0U R                  R                  U R
                  S9n[        X!SS	9  g )
N)byr   r1   r   r   r   r   r)   FrH   r;   r   r   r&   r*   r)   r   r    r=   rz   s      r!   test_dissolve_noner      s    4(D  %%(<(<(F(F(H'I)s		
 %%**OO	H x?r"   c                     U R                  SSS9n[        U R                  R                  U R                  R	                  5       /SS/SS/0U R                  R                  U R
                  S9n[        X!S	S
9  g )NrL   TrM   r   g      @r   g@r   FrH   r   r   s      r!   test_dissolve_none_meanr      s{    TBD  %%(<(<(F(F(H'Iu	

 %%**OOH x?r"   c            	         [         R                  " / SQ/ SQ/ SQ[         R                  R                  / SQ5      S.5      R	                  / SQ5      n [         R                  " SS/[         R                  R                  S	S
/5      S.5      R	                  S5      n[         R                  " SS/[         R                  R                  SS/5      S.5      R	                  S5      n[         R                  " / SQ/ SQ[         R                  R                  / SQ5      S.5      R	                  SS/5      n[        XR                  SS95        [        XR                  SS95        [        X R                  SS95        [        X R                  SS95        [        X0R                  SS/S95        [        X0R                  SS/S95        g )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)rx   r   rE   from_wktrd   r   r;   )r{   
expected_a
expected_bexpected_abs       r!   test_dissolve_levelr      s   

 
 !00L		
	 i   ''Q!00(*AB	
 in  ''Q!00 <=	
 in  ((!00G	
 ic
  z<<a<#89z<<c<#:;z<<a<#89z<<c<#:;{LL1vL$>?{LLSzL$BCr"   c                     [         R                  " / SQ[         R                  R                  / SQ5      S.5      n [         R                  " SS/[         R                  R                  SS/5      S.5      R	                  S5      nUR                  5       n[        X R                  S5      5        [        XR                  SS	S
95        g )N)r$   r3   r3   r   r   r   r   r$   r3   r   zMULTIPOINT (1 1, 2 2)r   F)sort)rx   r   rE   r   rd   
sort_indexr   r;   )r{   expected_unsortedexpected_sorteds      r!   test_dissolve_sortr      s    

 
 !00=	
C "..Q!00 78	
 in  (224OS(9:(,,s,*GHr"   c            
         [         R                  " [        R                  " / SQ5      / SQ/ SQ[         R                  R                  / SQ5      S.5      n [        (       a  SOS n[         R                  " [        R                  " / SQ5      / SQ[         R                  R                  SUS	S
/5      / SQS.5      R                  SS/5      n[         R                  " [        R                  " / SQ5      / SQ[         R                  R                  / SQ5      / SQS.5      R                  SS/5      n[        X R                  SS/5      5        [        X0R                  SS/SS95        g )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)
rx   r   r+   CategoricalrE   r   r	   rd   r   r;   )r{   none_valexpected_gdf_observed_falseexpected_gdf_observed_trues       r!   test_dissolve_categoricalr      s8   

 
 >>"67""!00L		
	C .:\)tH"+"8"8>>"67"!00+!!	 &	
# i!"  " "+!7!7>>/2!00G  	
	" i!"  2LL%AR4ST"LL%1BTL$Rr"   c                     [         R                  " / SQ[         R                  R                  / SQ5      S.5      n [         R                  " S[        R
                  /[         R                  R                  SS/5      S.5      R                  S5      n[         R                  " S/[         R                  R                  S/5      S.5      R                  S5      n[        XR                  SSS	95        [        X R                  S5      5        g )
N)r3   r3   Nr   r   g      ?r   r   r   F)dropna)	rx   r   rE   r   npnanrd   r   r;   )r{   expected_with_naexpected_no_nas      r!   test_dissolve_dropnar   ,  s    

 
 !00=	
C !--rvv!00(-8	
 in  ++!002I1JK	

 in  'c%)HI~||C'89r"   c                     [         R                  " SS9 nU R                  5         S S S 5        W H  nS[        UR                  5      ;  a  M   e   g ! , (       d  f       N3= f)NT)recordzdropna kwarg is not supported)rW   catch_warningsr;   strmessage)r    r   rs      r!   test_dissolve_dropna_warnr   I  sN    		 	 	- 
. .c!))nDDD  
.	-s   A
A!c                     SS/US'   SS/US'   SS/US'   [         R                  " 5          [         R                  " SS	9  U R                  S
SS/SS.S9nS S S 5        [	        WU5        g ! , (       d  f       N= f)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 
#	"s   *A**
A8methodcoveragedisjoint_subsetc           	         US:X  a,  [         (       a  [        (       d  [        R                  " S5        U R                  SS nU R                  SS nUR
                  R                  US9UR
                  R                  US9/n[        SU0S[        R                  " S	S
/SS9U R                  S9nSS/US'   S	S/US'   U R                  SUS9n[        XVSS9  g )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    ""KKMM/0!ooa*O__Qq!F 	!!!0  **&*9I !	Yhh1v$56OO	M "1+ >M*!"AM* 1&AD}eDr"   )0rW   numpyr   pandasr+   shapelyr   r   rx   r   r   geopandas._compatr   r   r	   r
   r^   geopandas.testingr   r   pandas.testingr   fixturer    r/   r6   r9   r>   markskipifrC   rF   rJ   rS   ra   rh   rm   parametrizer}   r   r   r   r   r   r   r   r   r    r"   r!   <module>r      s      )  - R R  K -         + 
N+AB  C =
FF	HB  6789	
 
G>?@	6	6@@+D\I0.b::E3$ J0A#BCE DEr"   