
    jj                     :   S SK r S SKJr  S SKrS SKrS SKrS SKr	S SK
Jr  S SKr\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      rS S	KJr  S S
KJrJr  \" \R.                  5      \" S5      :  r\" \R.                  5      \" S5      :  r\" \R.                  5      \" S5      :  r\R6                  " SS9S 5       r\R:                  R=                  S5       " S S5      5       rg)    N)Version)
HAS_PYPROJfoliumbranca
matplotlibmapclassifygeodatasets)StepColormap)cmcolorsz0.4.2z0.14.0z0.19.0class)scopec                 0   [         R                  " U 5      UR                  l        [         R                  " U5      UR                  l        [         R                  " U5      UR                  l        [         R                  " [        R                  S5      5      UR                  l        [        [        UR                  R                  5      5      UR                  R                  S'   UR                  R                  R                  5       UR                  l        [        R                  R                  S5        [        R                   UR                  R                  R"                  [        R                  R%                  UR                  R                  R&                  S5      S4'   [        R                   UR                  R                  R"                  [        R                  R%                  UR                  R                  R&                  S5      S4'   g )Nzgeoda.chicago_commpoprange*   (   	continentpop_est)gpd	read_fileclsnybbworldcitiesr	   get_pathchicagor   lencopymissingnprandomseednanlocchoiceindex)nybb_filenamenaturalearth_lowresnaturalearth_citiesrequests       _/var/www/html/Sattelite-Image/venv/lib/python3.13/site-packages/geopandas/tests/test_explore.py_setup_class_test_explorer,      sU    }}]3GKK&9:GKK':;GKK--(<(<=T(UVGKK!&s7;;+<+<'=!>GKKg!++++002GKKIINN2 	 KK
		,,22B7D
 	 KK
		,,22B7B    r,   c                   0   \ rS rSrS rS rS r\R                  R                  \
(       + SS9S 5       r\R                  R                  \
(       + SS9S 5       rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r \R                  R                  \!(       + SS9S 5       r"\R                  R                  \
(       + SS9S 5       r#\R                  R                  \
(       + SS9S  5       r$\R                  R                  \
(       + SS9S! 5       r%\R                  R                  \
(       + SS9S" 5       r&\R                  R                  \
(       + SS9S# 5       r'S$ r(S% r)S& r*S' r+S( r,S) r-S* r.S+ r/S, r0S- r1S. r2S/r3g0)1TestExplore/   c                 x    UR                   R                  5       nSR                  UR                  5       5      nU$ )N )_parentrenderjoinsplit)selfmoutout_strs       r+   _fetch_map_stringTestExplore._fetch_map_string1   s-    ii ''#))+&r-   c                     U R                   R                  5         U R                  R                  5         U R                  R                  5         U R                  R                  R                  5         g)zMake sure default passN)r   explorer   r   geometryr7   s    r+   test_simple_passTestExplore.test_simple_pass6   sH    		



##%r-   c                 6    U R                   R                  SS9  g)z!Make sure default choropleth passr   columnN)r   r>   r@   s    r+   test_choropleth_pass TestExplore.test_choropleth_pass=   s    

),r-   zrequires pyproj)reasonc                    U R                   R                  5       nUR                  [        R                  " SSS9[        R                  " SSS9/:X  d   eUR
                  S   S:X  d   e[        (       d  UR
                  S   SL d   eOUR
                  S	   SL d   eUR                  S
:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  R                  SL d   eUR                  R                  SL d   eSUR                  5       S   R!                  5       ;   d   eg)zCheck default map settingsgpS
ck	ư>relg       =zoom
   zoomControlTzoom_controlrelative)g      Y@%)r   rR   FopenstreetmapchildrenN)r   r>   locationpytestapproxoptionsFOLIUM_GE_019positionheightwidthlefttopglobal_switchesno_touch
disable_3dto_dictkeysr7   r8   s     r+   test_map_settings_default%TestExplore.test_map_settings_defaultA   sK    JJ zzMM-48MM/T:
 
 	
 
 yy B&&&}99]+t33399^,444zzZ'''xx<'''ww,&&&vv!!!uu     ))U222  ++u444!))+j"9">">"@@@@r-   c                    U R                   R                  SSSS9nUR                  [        R                  " SSS9[        R                  " SSS9/:X  d   eUR
                  S   S	:X  d   e[        (       d  UR
                  S
   SL d   eOUR
                  S   SL d   eUR                  S:X  d   eUR                  S:X  d   eU R                   R                  SSSSSS9nU R                  U5      nSnX2;   d   eSU;   d   eU R                   R                  SS9nUR                  SS/:X  d   eUR
                  S   S	:X  d   eU R                   R                  SS9nUR                  [        R                  " SSS9[        R                  " SSS9/:X  d   eUR
                  S   S:X  d   eU R                   R                  SSS9nUR                  SS/:X  d   eUR
                  S   S:X  d   eg)zCheck custom map settingsF   )rP   r\   r[   gnXZD@rJ   rK   gSI~RrM   rN   rO   rP   )g      i@pxz2https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}Google)rP   r\   r[   tilesattrzC"https://mt1.google.com/vt/lyrs=m\u0026x={x}\u0026y={y}\u0026z={z}"z"attribution":"Google")r      )rU   r   rm      )
zoom_start)rU   ro   N)
r   r>   rU   rV   rW   rX   rY   r[   r\   r;   )r7   r8   r:   ss       r+   test_map_settings_custom$TestExplore.test_map_settings_customW   s    II  

 zzMM+6MM+6
 
 	
 
 yy B&&&}99]+u44499^,555xx=(((ww-''' IIF  
 ((+T||'7222IIw/zzb!W$$$yy B&&&II+zzMM+6MM+6
 
 	
 
 yy A%%%IIw1=zzb!W$$$yy A%%%r-   c                    U R                   R                  SS9nU R                  U5      nSU;   d   e/ SQnU R                   R                  US9nU R                  U5      nU H  nSU S3U;   a  M   e   U R                   R                  5       nX6S'   UR                  SS9nU R                  U5      nU H  nSU S3U;   a  M   e   U R                   R                  R                  SS9nU R                  U5      nSU;   d   eg)	zCheck color settingsred)color"fillColor":"red")z#333333z#367324z#95824fz#fcaa00z#ffcc33"fillColor":""r   N)r   r>   r;   r   boundary)	r7   r8   r:   r   m2cdfm3m4s	            r+   test_simple_colorTestExplore.test_simple_color   s     IIE*((+"g--- IYYV,((,A"1#Q'7222  YY^^8ZZhZ'((,A"1#Q'7222  YY''e'4((,"g---r-   c                 N   U R                   R                  SS9nU R                  U5      nSU;   d   eSU;   d   eSU;   d   eSU;   d   eSU;   d   eU R                   R                  SSS	9nU R                  U5      nS
U;   d   eSU;   d   eSU;   d   eSU;   d   eSU;   d   eg)zCheck choropleth colors
Shape_LengrD   color":"#440154"color":"#fde725"zcolor":"#50c46a"zcolor":"#481467"zcolor":"#3d4e8a"PuRdrE   cmapzcolor":"#f7f4f9"zcolor":"#67001f"zcolor":"#d31760"zcolor":"#f0ecf5"zcolor":"#d6bedc"Nr   r>   r;   r7   r8   r:   s      r+   test_choropleth_linear"TestExplore.test_choropleth_linear   s     II\2((+!W,,,!W,,,!W,,,!W,,,!W,,, II\?((+!W,,,!W,,,!W,,,!W,,,!W,,,r-   c                 x   U R                   R                  SSS9nU R                  U5      nSU;   d   eSU;   d   eSU;   d   eSU;   d   eSU;   d   eU R                  R                  S	S
S9nU R                  U5      nSU;   d   eSU;   d   eSU;   d   eSU;   d   eSU;   d   eU R                  R                  S	SSS9nU R                  U5      nSU;   d   eSU;   d   eSU;   d   eU R                  R                  SSS/ SQ0S9nU R                  U5      nSU;   d   eSU;   d   eSU;   d   eSU;   d   eg)zMapclassify binsr   	quantiles)rE   schemezcolor":"#21918c"zcolor":"#3b528b"zcolor":"#5ec962"r   r   r   headtailbreaksz"fillColor":"#3b528b"z"fillColor":"#21918c"z"fillColor":"#5ec962"z"fillColor":"#fde725"z"fillColor":"#440154"naturalbreaks   )rE   r   kPOP2010UserDefinedbins)ia  iP  i$ i )rE   r   classification_kwdsz"fillColor":"#35b779"z"fillColor":"#31688e"N)r   r>   r;   r   r   r   s      r+   test_choropleth_mapclassify'TestExplore.test_choropleth_mapclassify   s    II\+F((+!W,,,!W,,,!W,,,!W,,,!W,,, JJi8HI((+&'111&'111&'111&'111&'111 JJi1M((+&'111&'111&'111 LL   !')F G ! 

 ((+&'111&'111&'111&'111r-   c           	      &   U R                   R                  SS9nU R                  U5      nSU;   d   eSU;   d   eSU;   d   eSU;   d   eSU;   d   eSU;   d   eS	U;   d   eS
U;   d   eU R                  R                  SSS9nU R                  U5      nSU;   d   eSU;   d   eSU;   d   eSU;   d   eSU;   d   eU R                   R	                  5       n[
        R                  " US   5      US'   UR                  SS9nU R                  U5      n[        R                  " [        R                  S[        R                  " [        S5      5      5       H  nSU S3U;   a  M   e   U R                  R                  SSS9nU R                  U5      nSU;   d   eSU;   d   eSU;   d   eSU;   d   eS U;   d   e/ S!QnU R                  R                  SUS9nU R                  U5      nU H  nSU S3U;   a  M   e   S"S#/nU R                  R                  SUS9nU R                  U5      nU H  nSU S3U;   a  M   e   [        R                  " [         S$S%9   U R                  R                  SS&S9  S'S'S'5        g'! , (       d  f       g'= f)(zCategorical mapsr   rD   z%color":"#9467bd","continent":"Europe"z+color":"#c49c94","continent":"NorthAmerica"z%color":"#1f77b4","continent":"Africa"z#color":"#98df8a","continent":"Asia"z)color":"#ff7f0e","continent":"Antarctica"z+color":"#9edae5","continent":"SouthAmerica"z&color":"#7f7f7f","continent":"Oceania"z3color":"#dbdb8d","continent":"Sevenseas(openocean)"BoroCodeT)rE   categoricalzcolor":"#9edae5"zcolor":"#c7c7c7"zcolor":"#8c564b"zcolor":"#1f77b4"zcolor":"#98df8a"namer         rw   rx   BoroNameSet1r   zcolor":"#999999"zcolor":"#a65628"zcolor":"#4daf4a"zcolor":"#e41a1c"zcolor":"#ff7f00")#333432#3b6e8cz#bc5b4fz#8fa37ez#efc758r   r   z'cmap' is invalid.matchnonsenseN)r   r>   r;   r   r   pdCategoricalr    apply_along_axisr   to_hexr   tab20r   rV   raises
ValueError)r7   r8   r:   r|   r{   r   s         r+   test_categoricalTestExplore.test_categorical   s    JJk2((+6'AAA<GGG6'AAA4???:gEEE<GGG77BBBDOOO IIZTB((+!W,,,!W,,,!W,,,!W,,,!W,,, ZZ__NN2f:6=JJmJ,((+$$V]]Arxxb	7JKA"1#Q'7222 L IIZf=((+!W,,,!W,,,!W,,,!W,,,!W,,, GIIZd;((+A"1#Q'7222  9%IIZd;((+A"1#Q'7222  ]]:-ABIIZjA CBBs   J
Jc                    U R                   SS/   R                  S/ SQS9nU R                  U5      nSU;   d   eSU;   d   eSU;   d   eSU;   d   eS	U;   d   eU R                   R                  5       n[        R
                  " US   5      US
'   [        R                  " [        SS9   UR                  S
SS/S9  S S S 5        g ! , (       d  f       g = f)Nr   r?   )BrooklynStaten IslandQueensBronx	Manhattan)rE   
categoriesz""Bronx","__folium_color":"#c7c7c7"z&"Manhattan","__folium_color":"#9edae5"z%"Brooklyn","__folium_color":"#1f77b4"z)"StatenIsland","__folium_color":"#98df8a"z#"Queens","__folium_color":"#8c564b"r   zCannot specify 'categories'r   r   r   )r   )	r   r>   r;   r   r   r   rV   r   r   )r7   r8   r:   r|   s       r+   test_categoriesTestExplore.test_categories  s    IIz:./77T 8 
 ((+3w>>>77BBB6'AAA:gEEE4???YY^^NN2j>:=]]:-JKJJ}*o1NJO LKKs   *C
Cc                 D   U R                   R                  5       n/ SQUS'   [        R                  " / SQ5      US'   UR	                  S5      nUR	                  S5      nU R                  U5      nSU;   d   eSU;   d   eU R                  U5      nSU;   d   eSU;   d   eg )N)TFTFTboolbool_extensionz&"__folium_color":"#9edae5","bool":truez'"__folium_color":"#1f77b4","bool":falser   r   r   arrayr>   r;   )r7   r|   m1rz   out1_strout2_strs         r+   	test_boolTestExplore.test_bool(  s    YY^^56
!xx(HIZZZZ()))"-78CCC8HDDD))"-78CCC8HDDDr-   c           	         U R                   R                  5       R                  S5      n[        R                  " SSSSSSS5      n[        R                  " SSSSSSS5      nX#/US'   UR                  S5      nU R                  U5      nSU;   d   eS	U;   d   eUR                  S5      nUR                  5       nU R                  U5      nS
U;   d   eSU;   d   eg )N   i  r      r   i  datetimez:"__folium_color":"#9edae5","datetime":"2025-01-0101:22:00"z:"__folium_color":"#1f77b4","datetime":"2022-01-0101:22:00"z"datetime":"2025-01-0101:22:00"z"datetime":"2022-01-0101:22:00")r   r   headr   	Timestampr>   r;   	set_index)	r7   r|   date1date2r   r   df2rz   r   s	            r+   test_datetimeTestExplore.test_datetime7  s    YY^^""1%T1aB15T1aB15:ZZ
#))"-KxWWWKxWWWll:&[[]))"-0H<<<0H<<<r-   c                    U R                   R                  5       R                  S5      nSn[        R                  " U5      nSn[        R                  " U5      nX5/US'   UR                  S5      nU R                  U5      nSU S3U;   d   eSU S3U;   d   eUR                  S5      nUR                  5       n	U R                  U	5      n
SU S3U
;   d   eSU S3U
;   d   eg )	Nr   z$12345678-1234-5678-1234-567812345678z$12345678-1234-5678-1234-567812345679objectz%"__folium_color":"#9edae5","object":"rx   z%"__folium_color":"#1f77b4","object":"z
"object":")r   r   r   uuidUUIDr>   r;   r   )r7   r|   u1uuid1u2uuid2r   r   r   rz   r   s              r+   test_non_json_serialisable&TestExplore.test_non_json_serialisableH  s    YY^^""1%3		"3		"~8ZZ!))"-6rd!<HHH6rd!<HHHll8$[[]))"-B4q!X---B4q!X---r-   c                     U R                   R                  5       n[        R                  " / SQSS9US'   UR	                  S5      nU R                  U5      nSU;   d   eg )N)r   r   r      rm   string)dtypez'"__folium_color":"#9edae5","string":"5"r   )r7   r|   r8   r:   s       r+   test_stringTestExplore.test_string[  sR    YY^^xxx@8JJx ((+8GCCCr-   c                 (   [         R                  " U R                  S   5      nU R                  R                  SS9nU R                  R                  US9nU R                  R                  U R                  S   S9nUR                  UR                  s=:X  a  UR                  :X  d   e   eU R                  R                  USSS9nU R                  U5      nSU;   d   eSU;   d   eU R                  R                  U R                  S   SSS9nU R                  U5      nSU;   d   eSU;   d   e[        R                  " [        SS9   U R                  R                  [         R                  " / S	Q5      S9  S
S
S
5        g
! , (       d  f       g
= f)zv
Check that the dataframe plot method returns same values with an
input string (column in df), pd.Series, or np.array
r   rD   TrE   tooltippopupCfields=["pop_est","continent","name","iso_a3","gdp_md_est","range"]Daliases=["pop_est","continent","name","iso_a3","gdp_md_est","range"]zdifferent number of rowsr   )r   r   r   N)	r    r   r   r>   rU   r;   rV   r   r   )	r7   column_arrayr   rz   r}   	m1_fieldsout1_fields_str	m2_fieldsout2_fields_strs	            r+   test_column_valuesTestExplore.test_column_valuesb  s   
 xx

9 56ZZy1ZZ|4ZZtzz)'<={{bkk8R[[88888JJ&&lDPT&U	00;Q	
 S	
 JJ&&::i($d ' 
	 00;Q	
 S	

 ]]:-GHJJbhhy&9: IHHs   
0F
Fc                     U R                   R                  5       nSUR                  R                  l        UR                  5       nSUR                  5       S   R                  5       ;  d   eg)zNaive geometry get no tilesNrS   rT   )r   r   r?   r   crsr>   rb   rc   r7   r|   r8   s      r+   test_no_crsTestExplore.test_no_crs  sQ    ZZ__ $JJLaiik*&=&B&B&DDDDr-   c           
         U R                   R                  SSSS.S9nU R                  U5      nSU;   d   eU R                   R                  SSS	0S
9nSU R                  U5      ;   d   eU R                   R                  SS 0S9n[        S UR                  R                  5       R                  S5       Vs/ s H2  nSU;   d  M  SU;   d  M  SR                  UR                  5       5      PM4     sn 5       5      (       d   e[        R                  " [        SS9   U R                   R                  SS0S9  SSS5        gs  snf ! , (       d  f       g= f)zStyle keywordsg?g      ?orange)fillOpacityweight	fillColor)
style_kwdsz3"fillColor":"orange","fillOpacity":0.1,"weight":0.5r   ru   black)rE   r   "color":"black"style_functionc                 H    U S   S   S:  a  SOSU S   S   S:  a  SS.$ SS.$ )	N
properties
gdp_md_esti@B rt   greenr   white)r   ru    )xs    r+   <lambda>-TestExplore.test_style_kwds.<locals>.<lambda>  s=    !"<!>!FG $%\?<#@5#H-
 OV-r-   c              3   t   #    U  H.  nS U;   =(       a    SU;   =(       d    SU;   =(       a    SU;   v   M0     g7f)z"fillColor":"green"z"color":"white"rv   r   Nr   ).0ts     r+   	<genexpr>.TestExplore.test_style_kwds.<locals>.<genexpr>  sJ      
 #a'B,=,B E#q(C->!-CEs   68
returnr2   z%'style_function' has to be a callabler   znot callableN)r   r>   r;   allr3   r4   r6   r5   rV   r   r   )r7   r8   r:   lines       r+   test_style_kwdsTestExplore.test_style_kwds  se   JJ'*cQ  
 ((+DOOOJJiWg<NO D$:$:1$==== JJ  #	  
  

 II,,.44T::Dt# &(/4 &

%:
 
 
 	
 
 ]]:-TUJJ+;^*LM VU VUs   8
E
E
#E
E
Ec                 `   U R                   R                  5       nS[        UR                  5       5      ;   d   eS[        UR                  5       5      ;  d   eU R                   R                  SSS9nS[        UR                  5       5      ;   d   eS[        UR                  5       5      ;   d   eU R	                  U5      nSU;   d   eSU;   d   eU R                   R                  SSSS9nS[        UR                  5       5      ;   d   eS[        UR                  5       5      ;   d   eU R	                  U5      nSU;   d   eSU;   d   eU R                   R                  SS	S9nU R	                  U5      nS
U;   d   eSU;   d   eSU;   d   eSU;   d   eU R                   R                  SS/S	S/S9nU R	                  U5      nSU;   d   eSU;   d   eSU;   d   eSU;   d   eU R                   R                  SSS9nU R	                  U5      nSU;   d   eSU;   d   eU R                   R                  SS/ SQSS.S9nU R	                  U5      nSU;   d   eSU;   d   eSU;   d   eU R                   R                  SSS/ SQ0S9nU R	                  U5      nSU;   d   eSU;   d   eSU;   d   eU R                   R                  SSSS0SS0S9nU R	                  U5      nSU;  d   eU R
                  R                  S 5      nUR                  5       nU R	                  U5      nS U;   d   eg!)"zTest tooltipGeoJsonTooltipGeoJsonPopupT)r   r   r   r   r   r   iso_a3zfields=["pop_est"]zaliases=["pop_est"]zfields=["iso_a3"]zaliases=["iso_a3"]r   r   zfields=["pop_est","continent"]zaliases=["pop_est","continent"]zfields=["iso_a3","gdp_md_est"zaliases=["iso_a3","gdp_md_est"]r   F)r   r   r   r   r   rm   )aliasessticky)r   r   tooltip_kwdszaliases=[0,1,2,3,4,5]z"sticky":falser  )r   r   
popup_kwdsz<th>${aliases[i]labels)r   r   r  r  r   N)r   r>   strrb   r;   r   r   )r7   r8   r:   gdfs       r+   test_tooltipTestExplore.test_tooltip  s    JJ 3qyy{#3333S%5555 JJt483qyy{#3333QYY[!1111((+Q	
 S	

 JJiTJ3qyy{#3333QYY[!1111((+Q	
 S	

 JJyA((+#w...$///"g---#w... JJ,X|4L  
 ((+/7:::0G;;;.'9990G;;; JJq2((+/7:::0G;;; JJ%75I  

 ((+Q	
 ''1117*** JJ!#56  

 ((+Q	
 ''111!W,,, JJ"E* %(	  
 ((+!000 ii!!*-KKM((+W$$$r-   c                     U R                   R                  5       nSUS'   UR                  5       nU R                  U5      nSU;   d   eSU;   d   eg )Nz({{{what a mess}}} they are so different.r   z{{{z}}})r   r   r>   r;   )r7   r  r8   r:   s       r+   test_escape_special_characters*TestExplore.test_escape_special_characters  sR    jjooDFKKM((+G###G###r-   c                    U R                   R                  5       n/ SQnU R                  U5      nU H
  nXC;   a  M
   e   U R                   R                  SSS.S9n/ SQnU R                  U5      nU H
  nXC;   a  M
   e   g )N)z
"radius":2z"fill":trueCircleMarker(latlng,opts)rm   F)radiusfill)marker_kwds)z
"radius":5z"fill":falser  )r   r>   r;   )r7   r8   stringsr:   rp   s        r+   test_default_markers TestExplore.test_default_markers'  s    KK!L((+A<<  KKq%,HIM((+A<< r-   c           
      z   U R                   R                  SS[        R                  SS90S9nSU R	                  U5      ;   d   eU R                   R                  SSS	0S9nS
U R	                  U5      ;   d   eU R                   R                  [        R                  SSSSSS9S9nSU R	                  U5      ;   d   eU R                   R                  SSS0S9nSU R	                  U5      ;   d   e[        R                  " [        SS9   U R                   R                  SS9  S S S 5        g ! , (       d  f       g = f)Nmarkericonstar)r'  )marker_typer!  z,"icon":"star",circle
fill_colorrt   z,"fillColor":"red",r   r   g?r   r   )r  r+  fill_opacityru   r   )r)  z,"color":"black",circle_markerr  rN   z,"radius":10,z:Only 'marker', 'circle', and 'circle_marker' are supportedr   dummy)	r   r>   r   Iconr;   CirclerV   r   r   rd   s     r+   test_custom_markersTestExplore.test_custom_markers5  sM   KK &!9:   
 %(>(>q(AAAA KKH<QVBWX(D,B,B1,EEEE KKXCwWX &    

 '$*@*@*CCCC KKO(TVX"d&<&<Q&???? ]]N
 KKG4	
 
 
s   	D,,
D:c                 v   U R                   R                  5       n[        [        U5      5      US'   UR	                  SSSS9nU R                  U5      nSU;   d   eSU;   d   eSU;   d   eU R                  R                  5       nUS   S	-  US
'   XDS
   S:     R	                  S
SS9nU R                  U5      n[        (       a  SU;   d   eSU;   d   eSU;   d   eOSU;   d   eSU;   d   eSU;   d   eUS   S-  US'   XDS   S:*     R	                  SSS9nU R                  U5      nSU;   d   eSU;   d   eg )Nr   ii  vminvmaxz8case"176":return{"color":"#3b528b","fillColor":"#3b528b"z8case"119":return{"color":"#414287","fillColor":"#414287"z6case"3":return{"color":"#482173","fillColor":"#482173"r   g      $@values   r   )r5  z6case"0":return{"color":"#fde725","fillColor":"#fde725"z6case"1":return{"color":"#7ad151","fillColor":"#7ad151"z6default:return{"color":"#22a884","fillColor":"#22a884"z6case"2":return{"color":"#22a884","fillColor":"#22a884"z6default:return{"color":"#fde725","fillColor":"#fde725"g      $values_negative)r6  z6case"1":return{"color":"#414487","fillColor":"#414487"z6case"2":return{"color":"#2a788e","fillColor":"#2a788e")r   r   r   r   r>   r;   r   FOLIUM_G_014)r7   r|   r8   r:   r   s        r+   test_vmin_vmaxTestExplore.test_vmin_vmaxT  s   ZZ__CGn7JJwTJ5((+IWTTTIWTTTG7RRR iinnJ$.HH#$,,XA,>((+<KwVVVKwVVVKwVVVKwVVVKwVVVKwVVV!$Z5!8%&",-556Ga5P((+G7RRRG7RRRr-   c                    U R                   R                  S5      nSU R                  U5      ;   d   eU R                   R                  S5      nSU R                  U5      ;   d   eU R                   R                  SSS0S9nSU R                  U5      ;   d   eU R                   R                  SSS0S9nSU R                  U5      ;   d   eg )Nr   z"fillColor":nullr   ru   rt   )missing_kwdsrv   )r   r>   r;   rd   s     r+   test_missing_valsTestExplore.test_missing_valsq  s    LL  -!T%;%;A%>>>>LL  +!T%;%;A%>>>>LL  '59I J"d&<&<Q&????LL  GU;K L"d&<&<Q&????r-   c                 F   U R                   R                  SSS9nU R                  U5      nSU;   d   eSU;   d   eSU;   d   eSU;   d   eSU;   d   eS	U;   d   eS
U;   d   eSU;   d   eU R                  R                  SSSS0S9nU R                  U5      nSU;   d   eg )Nr   Tlegendz#1f77b4'></span>Africaz#ff7f0e'></span>Antarcticaz#98df8a'></span>Asiaz#9467bd'></span>Europez#c49c94'></span>NorthAmericaz#7f7f7f'></span>Oceaniaz$#dbdb8d'></span>Sevenseas(openocean)z#9edae5'></span>SouthAmericaru   rt   rC  r>  red'></span>NaN)r   r>   r;   r   r   s      r+   test_categorical_legend#TestExplore.test_categorical_legend~  s    JJ{48((+'7222+w666%000'7222-888(G3335@@@-888LL  GU3C ! 
 ((+ G+++r-   c                    S nU R                   R                  SSS9nU R                  U5      nSU;   d   eU" SU5      (       d   eU R                   R                  SSSS0S	9nU R                  U5      nSU;   d   eU" S
U5      (       d   eU R                  R                  SSSS0S9nU R                  U5      nSU;   d   eU R                   R                  SSSS0SS9nU R                  U5      nUR	                  S5      S:X  d   eUR	                  S5      S:X  d   eUR	                  S5      S:X  d   eUR	                  S5      S:X  d   eUR	                  S5      S:X  d   eU R                   R                  SSSS9nU R                  U5      nUR	                  S5      S:X  d   eUR	                  S5      S:X  d   eUR	                  S5      S:X  d   eUR	                  S5      S:X  d   eUR	                  S5      S:X  d   eU R                   R                  SSS S!9nU R                  U5      nUR	                  S"5      S#:X  d   eUR	                  S$5      S%:X  d   eUR	                  S&5      S#:X  d   eUR	                  S'5      S%:X  d   eUR	                  S(5      S%:X  d   eUR	                  S)5      S#:X  d   eUR	                  S*5      S%:X  d   eUR	                  S+5      S#:X  d   eg ),Nc                 B    X;   =(       d    U R                  SS5      U;   $ )N'rx   )replace)findrp   s     r+   	quoted_in,TestExplore.test_colorbar.<locals>.quoted_in  s    9;S# 6! ;;r-   r   TrB  zattr("id",'legend')ztext('range')caption
my_caption)rC  legend_kwdsztext('my_caption')r   ru   rt   rD  rE  scaleFHeadtailbreaks)rC  rQ  r   z	#440154ffd   z	#3b528bffz	#21918cffz	#5ec962ffz	#fde725ff)rC  r      2      i"     Pastel2)rC  r   b3e2cdff?   fdcdacff>   cbd5e8fff4cae4ffe6f5c9fffff2aefff1e2ccffccccccff)r   r>   r;   r   count)r7   rM  r8   r:   s       r+   test_colorbarTestExplore.test_colorbar  s*   	< JJwt4((+&'111'2222JJDy,.G  
 ((+&'111-w7777LL  4wPUFV W((+ G+++ JJ %(#	  
 ((+}}[)S000}}[)S000}}[)S000}}[)S000}}[)S000 JJ#  

 ((+}}[)R///}}[)R///}}[)S000}}[)S000}}[)Q... JJyIF((+}}Z(B...}}Z(B...}}Z(B...}}Z(B...}}Z(B...}}Z(B...}}Z(B...}}Z(B...r-   zrequires branca >= 0.5.0c                    SS K nU R                  R                  SSS0S9nU R                  U5      nUR	                  SU5      R                  S5      nUR                  SS5      S	:X  d   eU R                  R                  SS
SS0S9nU R                  U5      nSU;   d   eU R                  R                  SSS0SS9nU R                  U5      nUR	                  SU5      R                  S5      nUS:X  d   eg )Nr   r   
max_labelsr   )rQ  z tickValues\(\[[\',\,\.,0-9]*\]\)z,''r2   z8tickValues([140.0,471386328.07843137,942772516.1568627])r   )r   rQ  z;tickValues([140.0,'',184117213.1818182,'',1382066377.0,''])tab10)rQ  r   zGtickValues([140.0,'','','',559086084.0,'','','',1118172028.0,'','','']))rer   r>   r;   searchgrouprK  )r7   rj  r8   r:   tick_strs        r+   test_colorbar_max_labels$TestExplore.test_colorbar_max_labels  s%    JJy|Q6GH((+99@'JPPQRSUB'IJ	
J
 JJ.\1<M  
 ((+LPWWWW JJy|Q6GgV((+99@'JPPQRSXY	
Yr-   c                     [         R                  " S5      nU R                  R                  UR                  R
                  R                  S9nU R                  U5      nSU;   d   eSU;   d   eSU;   d   eg )Nxyzservicesrk   C"https://a.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}{r}.png"Dattribution":"\u0026copy;\u003cahref=\"https://www.openstreetmap.org"maxZoom":20rV   importorskipr   r>   	providersCartoDBPositronNoLabelsr;   r7   rq  r8   r:   s       r+   test_xyzservices_providers&TestExplore.test_xyzservices_providers  s    ))-8IIK$9$9$A$A$R$RS((+ R	
 V	
 (((r-   c                     [         R                  " S5        U R                  R                  SS9nU R	                  U5      nSU;   d   eSU;   d   eSU;   d   eg )Nrq  zCartoDB Positron No Labelsrr  rs  rt  ru  )rV   rw  r   r>   r;   r   s      r+   test_xyzservices_query_name'TestExplore.test_xyzservices_query_name  sx    M*II$@A((+ R	
 V	
 (((r-   c                     [         R                  " S5      nU R                  R                  UR                  R
                  R                  SS9nU R                  U5      nSU;   d   eg )Nrq  r   )rk   min_zoom"minZoom":3rv  r{  s       r+   ,test_xyzservices_providers_min_zoom_override8TestExplore.test_xyzservices_providers_min_zoom_override  sb    ))-8II''//@@1  
 ((+'''r-   c                     [         R                  " S5      nU R                  R                  UR                  R
                  R                  SS9nU R                  U5      nSU;   d   eg )Nrq     )rk   max_zoom"maxZoom":12rv  r{  s       r+   ,test_xyzservices_providers_max_zoom_override8TestExplore.test_xyzservices_providers_max_zoom_override  sb    ))-8II''//@@2  
 ((+(((r-   c                     [         R                  " S5      nU R                  R                  UR                  R
                  R                  SSS9nU R                  U5      nSU;   d   eSU;   d   eg )Nrq  r   r  )rk   r  r  r  r  rv  r{  s       r+   .test_xyzservices_providers_both_zooms_override:TestExplore.test_xyzservices_providers_both_zooms_override"  st    ))-8II''//@@  

 ((+((('''r-   c                     U R                   R                  SS9R                  nUR                  5       nU R	                  U5      nUR                  S5      [        U5      :X  d   eg )NT)index_parts
LineString)r   explodeexteriorr>   r;   rd  r   )r7   ringsr8   r:   s       r+   test_linearringsTestExplore.test_linearrings0  sU    		!!d!3<<MMO((+}}\*c%j888r-   c           	      B   U R                   R                  SSSSSS.SSS.S	9nU R                  U5      n/ S
QnU H
  nXB;   a  M
   e   U R                   R                  SSSSSS.SSS.S	9nU R                  U5      n/ SQnU H
  nXB;   a  M
   e   U R                  R                  SSSSS/ SQS.S9nU R                  U5      n/ SQnU H
  nXB;   a  M
   e   U R                   R                  SSSSSS.SSS.S	9nU R                  U5      n/ SQnU H
  nXB;   a  M
   e   g )Nr   Tr   rt   r   )ru   labelF)colorbarinterval)rE   rC  r   r>  rQ  )z[140.00,21803000.00]z(21803000.00,66834405.00]z(66834405.00,163046161.00]z(163046161.00,328239523.00]z(328239523.00,1397715000.00]r   )z>140.00,21803000.00z>21803000.00,66834405.00z>66834405.00,163046161.00z>163046161.00,328239523.00z>328239523.00,1397715000.00r   rm   )rp   r8   lxlxxl)r  r  )rE   rC  r   r   rQ  )z>s<z>m<z>l<z>xl<z>xxl<z{:.0f})r  fmt)z>140,21803000z>21803000,66834405z>66834405,163046161z>163046161,328239523z>328239523,1397715000r   )r   r>   r;   r   )r7   r8   r:   r"  rp   s        r+   #test_mapclassify_categorical_legend/TestExplore.test_mapclassify_categorical_legend7  s   LL  "#(9=%*= ! 
 ((+
 A<<  LL  "#(9=%*> ! 
 ((+
 A<<  JJ"%*6RS  
 ((+8A<<  LL  "#(9=%*8< ! 
 ((+
 A<< r-   c                     [         R                  5       nU R                  R                  USSS9  U R	                  U5      nUR                  S5      S:X  d   eUR                  S   S:X  d   eg)z5Check that geometry is mapped onto a given folium.MapF)r8   r   	highlightr   rm   rM   r   N)r   Mapr   r>   r;   rd  rX   r   s      r+   test_given_mTestExplore.test_given_m  sd    JJL		Au>((+}}Z(A---yy A%%%r-   c                     U R                   R                  SS9nU R                  U5      nSU;   d   eU R                   R                  SSSS.S9nU R                  U5      nSU;   d   eg )	NT)r  z"fillOpacity":0.75r   rt   )r   ru   )r  highlight_kwdsz{"color":"red","fillOpacity":1}r   r   s      r+   test_highlightTestExplore.test_highlight  sz    II-((+#w...II1u+M  
 ((+0G;;;r-   c                 \   [        / SQSSS9nU R                  R                  SUS/SS9n/ S	QnU R                  U5      nU H
  nXT;   a  M
   e   UR	                  S
5      S:X  d   eUR	                  S5      S:X  d   eUR	                  S5      S:X  d   eS nU R                  R                  SUSS9nSS/nU H  nXPR                  U5      ;   a  M   e   [
        R                  " / SQ5      nU R                  R                  SUS9n/ SQnU R                  U5      nU H
  nXT;   a  M
   e   g )N)r   yellowrt   r    r4  r   r   T)r   r   rC  )zfillColor":"#008000ff"z"fillColor":"#ffff00ff"z"fillColor":"#ff0000ff"008000ffi0  ffff00ff   ff0000ff   c                     U S:  a  gg)z0Maps low values to green and high values to red.r  z#ff0000z#008000r   )fields    r+   my_color_function<TestExplore.test_custom_colormaps.<locals>.my_color_function  s    y   r-   F)r   rC  z'"color":"#ff0000","fillColor":"#ff0000"z'"color":"#008000","fillColor":"#008000")rt   r   bluer   r   r   )r   )z"fillColor":"#ff0000"z"fillColor":"#008000"z"fillColor":"#0000ff"z"fillColor":"#ffffff"z"fillColor":"#000000")r
   r   r>   r;   rd  r   ListedColormapr   )r7   stepr8   r"  r:   rp   r  r   s           r+   test_custom_colormaps!TestExplore.test_custom_colormaps  sR   6QYOJJytfXdS
 ((+A<<  }}Z(C///}}Z(C///}}Z(C///	! JJy/@O 65

 A..q1111  $$%OPIIjt4
 ((+A<< r-   c                 x    U R                   nUR                  US'   UR                  US'   UR                  5         g)zP
Additional GeoSeries need to be removed as they cannot be converted to GeoJSON
ry   centroidN)r   ry   r  r>   )r7   r  s     r+   test_multiple_geoseries#TestExplore.test_multiple_geoseries  s0     ii,,J,,Jr-   c                    ^ ^ UU 4S jnT R                   R                  SSSS.S9mU" 5         [        R                  " [        SS9   T R                   R                  SSSS.S9  S S S 5        g ! , (       d  f       g = f)	Nc                     > TR                  T5      n [        (       d  TR                  S   SL d   eOTR                  S   SL d   eSU ;   d  SU ;   d   eSU ;   d	  SU ;   d   eg g )NrO   FrP   zdragging:falsez"dragging":falsezscrollWheelZoom:falsez"scrollWheelZoom":false)r;   rY   rX   )r:   r8   r7   s    r+   check(TestExplore.test_map_kwds.<locals>.check  s~    ,,Q/G =yy/5888yy0E999#w.2D2OOO'72,787 3r-   F)draggingscrollWheelZoom)rP   map_kwdsz0'zoom_control' cannot be specified in 'map_kwds'r   )r  r  rP   )r  )r   r>   rV   r   r   )r7   r  r8   s   ` @r+   test_map_kwdsTestExplore.test_map_kwds  s~    
	 JJePU)V  
 	]]P
 JJ %',$)  
 
 
s   A..
A<c                     U R                   R                  5       nS UR                  SUR                  R                  4'   UR                  5       nU R                  U5        g Nr   )r   r   r$   r?   r   r>   r;   r   s      r+   test_none_geometryTestExplore.test_none_geometry  sH    YY^^&*q"++"""#JJLq!r-   c                     U R                   R                  5       n[        R                  " 5       UR                  SUR
                  R                  4'   UR                  5       nU R                  U5        g r  )	r   r   shapelyPointr$   r?   r   r>   r;   r   s      r+   test_empty_geometryTestExplore.test_empty_geometry  sN    YY^^&-mmoq"++"""#JJLq!r-   c                 |   [         R                  " [        R                  " 5       [        R                  " 5       /SS9n[        R
                  " [        SS9   UR                  5       nS S S 5        U R                  W5      n[        (       a  SU;   d   e[         R                  " [        R                  " 5       [        R                  " 5       /S9n[        R
                  " [        SS9   UR                  5       nS S S 5        U R                  U5      nSU;   d   eg ! , (       d  f       N= f! , (       d  f       N9= f)Ni  )r?   r   =The GeoSeries you are attempting to plot is composed of emptyr   z#center:[0.0,0.0],crs:L.CRS.EPSG3857r?   z!center:[0.0,0.0],crs:L.CRS.Simple)
r   GeoDataFramer  r  rV   warnsUserWarningr>   r;   r   )r7   with_crsr8   r:   no_crss        r+   test_all_emptyTestExplore.test_all_empty  s    ##mmow}}7T
 \\Q
   "A	

 ((+:8GCCC!!GMMOW]]_+MN\\Q
  A	

 ((+2g===!
 

 
s   D)D-
D*-
D;c                    [         R                  " [        R                  " SS5      [        R                  " SS5      /S9n[         R                  " [        R                  " 5       [        R                  " 5       /S9nUR	                  SS9R                  5       n[        R                  " [        SS9   UR	                  SS9R                  USS	9nS S S 5        U R                  U5      nS
U;   d   eg ! , (       d  f       N(= f)Nr   r   r  
index_name)r&   r  r   rt   )r8   ru   z!center:[0.5,0.5],crs:L.CRS.Simple)
r   r  r  r  rename_axisr>   rV   r  r  r;   )r7   gdf1gdf2r8   r:   s        r+   test_add_all_empty_named_index*TestExplore.test_add_all_empty_named_index  s    '--1*=w}}QPQ?R)ST'--/7==?)KL<088:\\Q
   | 4<<q<NA	

 ((+2g===
 
s   3C33
Dr   N)4__name__
__module____qualname____firstlineno__r;   rA   rF   rV   markskipifr   re   rq   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r#  r1  r;  r?  rF  re  	BRANCA_05rn  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  __static_attributes__r   r-   r+   r/   r/   /   s!   
&- [[J/@AA BA* [[J/@A.& B.&`.6-(%2N7BrP"E=".&D%;NE%NNe%N$ 5>S:@,$:/x [[I.HI
 J
: [[J/@A) B)  [[J/@A) B)  [[J/@A( B( [[J/@A) B) [[J/@A( B(9K Z	&<3 j:"">,
>r-   r/   ) r   packaging.versionr   numpyr    pandasr   r  	geopandasr   geopandas._compatr   rV   rw  r   r   r   r   r	   branca.colormapr
   r   r   __version__r  r:  rY   fixturer,   r  usefixturesr/   r   r-   r+   <module>r     s
    %     ( 			X	&			X	&  .
!!-0!!-0 ( !F&&'''*::	v))*WX->>**+wx/@@ g $ 45v> v> 6v>r-   