a
    1$eX                     @   s   d dl Zd dlZd dlZd dlZd dlmZ e	dZ
e	dZe	dZe	dZe	dZd dlmZ d d	lmZ d d
lmZ eejedkZee
jedkZG dd dZdS )    N)Versionfoliumbranca
matplotlibmapclassifygeodatasets)cm)colors)StepColormapz0.4.2z0.14.0c                   @   sF  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zejje d1d2d3d4 Zd5d6 Z d7d8 Z!d9d: Z"d;d< Z#d=d> Z$d?d@ Z%dAdB Z&dCdD Z'dEdF Z(dGdH Z)dIdJ Z*dKdL Z+dMS )NTestExplorec                 C   s   t t jd| _t t jd| _t t jd| _t td| _t	t
| j| jd< | j | _tjd tj| jjtj| jjddf< tj| jjtj| jjdd	f< d S )
NnybbZnaturalearth_lowresZnaturalearth_citieszgeoda.chicago_commpoprange*   (   	continentpop_est)gpd	read_fileZdatasetsget_pathr   worldcitiesr   chicagor   lencopymissingnprandomseednanlocchoiceindexself r$   X/var/www/html/django/DPS/env/lib/python3.9/site-packages/geopandas/tests/test_explore.pysetup_method   s     zTestExplore.setup_methodc                 C   s   |j  }d| }|S )N )_parentrenderjoinsplit)r#   moutout_strr$   r$   r%   _fetch_map_string!   s    
zTestExplore._fetch_map_stringc                 C   s.   | j   | j  | j  | jj  dS )zMake sure default passN)r   explorer   r   geometryr"   r$   r$   r%   test_simple_pass&   s    


zTestExplore.test_simple_passc                 C   s   | j jdd dS )z!Make sure default choropleth passr   columnN)r   r0   r"   r$   r$   r%   test_choropleth_pass-   s    z TestExplore.test_choropleth_passc                 C   s   | j  }|jtjdddtjdddgks0J |jd dksBJ |jd du sTJ |jd	ksbJ |jd
kspJ |jd
ks~J |j	dksJ |j
dksJ |jjdu sJ |jjdu sJ d| d  v sJ dS )zCheck default map settingsgpS
ck	ư>relg       =zoom
   zoomControlTrelative)g      Y@%)r   r=   FopenstreetmapchildrenN)r   r0   locationpytestapproxoptionspositionheightwidthlefttopZglobal_switchesZno_touchZ
disable_3dto_dictkeysr#   r,   r$   r$   r%   test_map_settings_default1   s    

z%TestExplore.test_map_settings_defaultc                 C   sl  | j jdddd}|jtjdddtjdddgks8J |jd d	ksJJ |jd
 du s\J |jdksjJ |jdksxJ | j jdddddd}| |}d}||v sJ d|v sJ | j jdd}|jddgksJ |jd d	ksJ | j jdd}|jtjdddtjdddgksJ |jd dks0J | j jddd}|jddgksTJ |jd dkshJ dS )zCheck custom map settingsF   )zoom_controlrF   rE   gnXZD@r6   r7   gSI~Rr9   r:   r;   )g      i@Zpxz2https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}ZGoogle)rN   rF   rE   tilesattrzC"https://mt1.google.com/vt/lyrs=m\u0026x={x}\u0026y={y}\u0026z={z}"z"attribution":"Google")r      )r@   r   rQ      )
zoom_start)r@   rS   N)	r   r0   r@   rA   rB   rC   rE   rF   r/   )r#   r,   r.   sr$   r$   r%   test_map_settings_customC   sH    

z$TestExplore.test_map_settings_customc           	      C   s   | j jdd}| |}d|v s$J g d}| j j|d}| |}|D ]}d| d|v sHJ qH| j  }||d< |jdd}| |}|D ]}d| d|v sJ q| j jjdd}| |}d|v sJ dS )	zCheck color settingsred)color"fillColor":"red")z#333333z#367324z#95824fz#fcaa00z#ffcc33"fillColor":""r	   N)r   r0   r/   r   boundary)	r#   r,   r.   r	   m2cdfm3Zm4r$   r$   r%   test_simple_colorp   s"    




zTestExplore.test_simple_colorc                 C   s   | j jdd}| |}d|v s$J d|v s0J d|v s<J d|v sHJ d|v sTJ | j jddd	}| |}d
|v szJ d|v sJ d|v sJ d|v sJ d|v sJ dS )zCheck choropleth colors
Shape_Lengr3   color":"#440154"color":"#fde725"zcolor":"#50c46a"zcolor":"#481467"zcolor":"#3d4e8a"ZPuRdr4   cmapzcolor":"#f7f4f9"zcolor":"#67001f"zcolor":"#d31760"zcolor":"#f0ecf5"zcolor":"#d6bedc"Nr   r0   r/   r#   r,   r.   r$   r$   r%   test_choropleth_linear   s    

z"TestExplore.test_choropleth_linearc                 C   sL  | j jddd}| |}d|v s&J d|v s2J d|v s>J d|v sJJ d|v sVJ | jjd	d
d}| |}d|v s|J d|v sJ d|v sJ d|v sJ d|v sJ | jjd	ddd}| |}d|v sJ d|v sJ d|v sJ | jjdddg did}| |}d|v sJ d|v s,J d|v s:J d|v sHJ dS )zMapclassify binsra   Z	quantiles)r4   schemezcolor":"#21918c"zcolor":"#3b528b"zcolor":"#5ec962"rc   rb   r   headtailbreaksz"fillColor":"#3b528b"z"fillColor":"#21918c"z"fillColor":"#5ec962"z"fillColor":"#fde725"z"fillColor":"#440154"naturalbreaks   )r4   ri   kZPOP2010ZUserDefinedZbins)ia  iP  i$ i )r4   ri   Zclassification_kwdsz"fillColor":"#35b779"z"fillColor":"#31688e"N)r   r0   r/   r   r   rg   r$   r$   r%   test_choropleth_mapclassify   s:    




z'TestExplore.test_choropleth_mapclassifyc                 C   sd  | j jdd}| |}d|v s$J d|v s0J d|v s<J d|v sHJ d|v sTJ d|v s`J d	|v slJ d
|v sxJ | jjddd}| |}d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ | j  }t|d |d< |jdd}| |}tt	j
dttdD ]}d| d|v sJ q| jjddd}| |}d|v s`J d|v snJ d|v s|J d|v sJ d |v sJ g d!}| jjd|d}| |}|D ]}d| d|v sJ qd"d#g}| jjd|d}| |}|D ]}d| d|v sJ qtjtd$d%  | jjdd&d W d'   n1 sV0    Y  d'S )(zCategorical mapsr   r3   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)r4   categoricalzcolor":"#9edae5"zcolor":"#c7c7c7"zcolor":"#8c564b"zcolor":"#1f77b4"zcolor":"#98df8a"namerp         rY   rZ   BoroNameZSet1rd   zcolor":"#999999"zcolor":"#a65628"zcolor":"#4daf4a"zcolor":"#e41a1c"zcolor":"#ff7f00")#333432#3b6e8cz#bc5b4fz#8fa37ez#efc758ru   rv   z'cmap' is invalid.matchZnonsenseN)r   r0   r/   r   r   pdCategoricalr   Zapply_along_axisr	   Zto_hexr   Ztab20r   rA   raises
ValueError)r#   r,   r.   r^   r]   re   r$   r$   r%   test_categorical   sT    






zTestExplore.test_categoricalc                 C   s   | j ddg jdg dd}| |}d|v s2J d|v s>J d|v sJJ d|v sVJ d	|v sbJ | j  }t|d |d
< tjtdd" |jd
ddgd W d    n1 s0    Y  d S )Nrt   r1   )BrooklynStaten IslandZQueensZBronxZ	Manhattan)r4   
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"rp   zCannot specify 'categories'rw   r~   r   )r   )	r   r0   r/   r   ry   rz   rA   r{   r|   )r#   r,   r.   r^   r$   r$   r%   test_categories   s    

zTestExplore.test_categoriesc                 C   s   | j  }g d|d< tg d|d< |d}|d}| |}d|v sRJ d|v s^J | |}d|v stJ d|v sJ d S )N)TFTFTboolZbool_extensionz&"__folium_color":"#9edae5","bool":truez'"__folium_color":"#1f77b4","bool":falser   r   ry   arrayr0   r/   )r#   r^   m1r\   Zout1_strZout2_strr$   r$   r%   	test_bool  s    




zTestExplore.test_boolc                 C   sD   | j  }tjg ddd|d< |d}| |}d|v s@J d S )N)rr      rl      rQ   string)Zdtypez'"__folium_color":"#9edae5","string":"5"r   )r#   r^   r,   r.   r$   r$   r%   test_string  s
    


zTestExplore.test_stringc           	      C   s  t | jd }| jjdd}| jj|d}| jj| jd d}|j|j  krZ|jks`n J | jj|ddd}| |}d|v sJ d|v sJ | jj| jd ddd}| |}d|v sJ d|v sJ tjtdd( | jjt g d	d W d
   n1 s0    Y  d
S )z
        Check that the dataframe plot method returns same values with an
        input string (column in df), pd.Series, or np.array
        r   r3   Tr4   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 rowsrw   )rr   r   rl   N)	r   r   r   r0   r@   r/   rA   r{   r|   )	r#   Zcolumn_arrayr   r\   r_   Z	m1_fieldsZout1_fields_strZ	m2_fieldsZout2_fields_strr$   r$   r%   test_column_values&  s:     

zTestExplore.test_column_valuesc                 C   s4   | j  }d|_| }d| d  vs0J dS )zNaive geometry get no tilesNr>   r?   )r   r   Zcrsr0   rI   rJ   )r#   r^   r,   r$   r$   r%   test_no_crsM  s    
zTestExplore.test_no_crsc                 C   s   | j jddddd}| |}d|v s,J | j jddd	id
}d| |v sRJ | j jddd id}tdd dd |j dD D sJ tjt	dd" | j jddid W d   n1 s0    Y  dS )zStyle keywordsg?g      ?orange)fillOpacityweight	fillColor)
style_kwdsz3"fillColor":"orange","fillOpacity":0.1,"weight":0.5r   rW   black)r4   r   "color":"black"Zstyle_functionc                 S   s2   | d d dk rdnd| d d dk r*dnddS )	N
properties
gdp_md_esti@B rV   greenr   white)r   rW   r$   )xr$   r$   r%   <lambda>a  s    z-TestExplore.test_style_kwds.<locals>.<lambda>c                 s   s.   | ]&}d |v rd|v p$d|v o$d|v V  qdS )z"fillColor":"green"z"color":"white"rX   r   Nr$   ).0tr$   r$   r%   	<genexpr>m  s   z.TestExplore.test_style_kwds.<locals>.<genexpr>c                 S   s*   g | ]"}d |v rd|v rd | qS )returnrW   r'   )r*   r+   )r   liner$   r$   r%   
<listcomp>p  s   z/TestExplore.test_style_kwds.<locals>.<listcomp>
z%'style_function' has to be a callablerw   znot callableN)
r   r0   r/   allr(   r)   r+   rA   r{   r|   rg   r$   r$   r%   test_style_kwdsT  s$    

zTestExplore.test_style_kwdsc                 C   s  | j  }dt| v sJ dt| vs2J | j jddd}dt| v sVJ dt| v sjJ | |}d|v sJ d|v sJ | j jdddd}dt| v sJ dt| v sJ | |}d|v sJ d|v sJ | j jdd	d}| |}d
|v sJ d|v sJ d|v s,J d|v s:J | j jddgd	dgd}| |}d|v sjJ d|v sxJ d|v sJ d|v sJ | j jddd}| |}d|v sJ d|v sJ | j jddg dddd}| |}d|v sJ d|v sJ d|v sJ | j jdddg did}| |}d|v sLJ d|v sZJ d|v shJ | j jddddiddid}| |}d|vsJ | jd }| }| |}d |v sJ d!S )"zTest tooltipZGeoJsonTooltipZGeoJsonPopupT)r   r   r   r   r   r   Z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   rr   r   rl   r   rQ   )aliasesZ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   rt   N)r   r0   strrI   r/   r   Z	set_index)r#   r,   r.   gdfr$   r$   r%   test_tooltip{  s    










zTestExplore.test_tooltipc                 C   s@   | j  }d|d< | }| |}d|v s0J d|v s<J d S )Nz({{{what a mess}}} they are so different.rq   z{{{z}}})r   r   r0   r/   )r#   r   r,   r.   r$   r$   r%   test_escape_special_characters  s    

z*TestExplore.test_escape_special_charactersc                 C   sr   | j  }g d}| |}|D ]}||v s J q | j jdddd}g d}| |}|D ]}||v s\J q\d S )N)z
"radius":2z"fill":trueCircleMarker(latlng,opts)rQ   F)radiusfill)marker_kwds)z
"radius":5z"fill":falser   )r   r0   r/   )r#   r,   stringsr.   rT   r$   r$   r%   test_default_markers  s    


z TestExplore.test_default_markersc                 C   s   | j jddtjddid}d| |v s.J | j jddd	id}d
| |v sTJ | j jtjddddddd}d| |v sJ | j jdddid}d| |v sJ tjtdd | j jdd W d    n1 s0    Y  d S )Nmarkericonstar)r   )marker_typer   z,"icon":"star",circle
fill_colorrV   z,"fillColor":"red",r   r   g?r   rr   )r   r   Zfill_opacityrW   r   )r   z,"color":"black",Zcircle_markerr   r:   z,"radius":10,z:Only 'marker', 'circle', and 'circle_marker' are supportedrw   dummy)	r   r0   r   Iconr/   ZCirclerA   r{   r|   rK   r$   r$   r%   test_custom_markers  s(    
zTestExplore.test_custom_markersc                 C   s8  | j  }tt||d< |jdddd}| |}d|v s@J d|v sLJ d|v sXJ | j }|d d	 |d
< ||d
 dk jd
dd}| |}trd|v sJ d|v sJ d|v sJ n$d|v sJ d|v sJ d|v sJ |d d |d< ||d dk jddd}| |}d|v s&J d|v s4J d S )Nr   ii  vminvmaxz8case"176":return{"color":"#3b528b","fillColor":"#3b528b"z8case"119":return{"color":"#414287","fillColor":"#414287"z6case"3":return{"color":"#482173","fillColor":"#482173"ro   g      $@values   r   )r   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      $Zvalues_negative)r   z6case"1":return{"color":"#414487","fillColor":"#414487"z6case"2":return{"color":"#2a788e","fillColor":"#2a788e")r   r   r   r   r0   r/   r   FOLIUM_G_014)r#   r^   r,   r.   Zdf2r$   r$   r%   test_vmin_vmax  s.    




zTestExplore.test_vmin_vmaxc                 C   s   | j d}d| |v sJ | j d}d| |v s<J | j jdddid}d| |v sbJ | j jdddid}d| |v sJ d S )Nr   z"fillColor":nullr   rW   rV   )missing_kwdsrX   )r   r0   r/   rK   r$   r$   r%   test_missing_vals5  s    zTestExplore.test_missing_valsc                 C   s   | j jddd}| |}d|v s&J d|v s2J d|v s>J d|v sJJ d|v sVJ d	|v sbJ d
|v snJ d|v szJ | jjddddid}| |}d|v sJ d S )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>SouthAmericarW   rV   r   r   red'></span>NaN)r   r0   r/   r   rg   r$   r$   r%   test_categorical_legendB  s    


z#TestExplore.test_categorical_legendc                 C   sb  dd }| j jddd}| |}d|v s.J |d|s<J | j jdddd	id
}| |}d|v shJ |d|svJ | jjddddid}| |}d|v sJ | j jddddidd}| |}|ddksJ |ddksJ |ddksJ |ddksJ |ddks"J | j jdddd}| |}|ddksRJ |ddksfJ |ddkszJ |ddksJ |dd ksJ | j jddd!d"}| |}|d#d$ksJ |d%d&ksJ |d'd$ksJ |d(d&ksJ |d)d&ks"J |d*d$ks6J |d+d&ksJJ |d,d$ks^J d S )-Nc                 S   s   | |v p|  dd|v S )N'rZ   )replace)findrT   r$   r$   r%   	quoted_inU  s    z,TestExplore.test_colorbar.<locals>.quoted_inr   Tr   zattr("id",'legend')ztext('range')captionZ
my_caption)r   legend_kwdsztext('my_caption')r   rW   rV   r   r   scaleFZHeadtailbreaks)r   r   ri   z	#440154ffd   z	#3b528bffz	#21918cffz	#5ec962ffz	#fde725ff)r   ri      2      i"     ZPastel2)r   re   Zb3e2cdff?   Zfdcdacff>   Zcbd5e8ffZf4cae4ffZe6f5c9ffZfff2aeffZf1e2ccffZccccccff)r   r0   r/   r   count)r#   r   r,   r.   r$   r$   r%   test_colorbarT  s^    






zTestExplore.test_colorbarzrequires branca >= 0.5.0)reasonc                 C   s   dd l }| jjdddid}| |}|d|d}|ddd	ksLJ | jjdd
ddid}| |}d|v sxJ | jjdddidd}| |}|d|d}|dksJ d S )Nr   r   Z
max_labelsrl   )r   z tickValues\(\[[\',\,\.,0-9]*\]\)z,''r'   z8tickValues([140.0,471386328.07843137,942772516.1568627])rj   )ri   r   z;tickValues([140.0,'',184117213.1818182,'',1382066377.0,''])Ztab10)r   re   zGtickValues([140.0,'','','',559086084.0,'','','',1118172028.0,'','','']))rer   r0   r/   searchgroupr   )r#   r   r,   r.   Ztick_strr$   r$   r%   test_colorbar_max_labels  s(    




z$TestExplore.test_colorbar_max_labelsc                 C   sP   t d}| jj|jjjd}| |}d|v s4J d|v s@J d|v sLJ d S )NxyzservicesrO   C"https://a.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}{r}.png"Dattribution":"\u0026copy;\u003cahref=\"https://www.openstreetmap.org+"maxNativeZoom":20,"maxZoom":20,"minZoom":0rA   importorskipr   r0   	providersZCartoDBZPositronNoLabelsr/   r#   r   r,   r.   r$   r$   r%   test_xyzservices_providers  s    

z&TestExplore.test_xyzservices_providersc                 C   sJ   t d | jjdd}| |}d|v s.J d|v s:J d|v sFJ d S )Nr   zCartoDB Positron No Labelsr   r   r   r   )rA   r   r   r0   r/   rg   r$   r$   r%   test_xyzservices_query_name  s    

z'TestExplore.test_xyzservices_query_namec                 C   s:   t d}| jj|jjjdd}| |}d|v s6J d S )Nr   rl   )rO   min_zoomz+"maxNativeZoom":20,"maxZoom":20,"minZoom":3r   r   r$   r$   r%   ,test_xyzservices_providers_min_zoom_override  s    


z8TestExplore.test_xyzservices_providers_min_zoom_overridec                 C   s:   t d}| jj|jjjdd}| |}d|v s6J d S )Nr      )rO   max_zoomz+"maxNativeZoom":12,"maxZoom":12,"minZoom":0r   r   r$   r$   r%   ,test_xyzservices_providers_max_zoom_override  s    


z8TestExplore.test_xyzservices_providers_max_zoom_overridec                 C   s<   t d}| jj|jjjddd}| |}d|v s8J d S )Nr   rl   r   )rO   r   r   z+"maxNativeZoom":12,"maxZoom":12,"minZoom":3r   r   r$   r$   r%   .test_xyzservices_providers_both_zooms_override  s    

z:TestExplore.test_xyzservices_providers_both_zooms_overridec                 C   s<   | j jddj}| }| |}|dt|ks8J d S )NT)Zindex_partsZ
LineString)r   ZexplodeZexteriorr0   r/   r   r   )r#   Zringsr,   r.   r$   r$   r%   test_linearrings  s    
zTestExplore.test_linearringsc                 C   s.  | j jdddddddddd	}| |}g d
}|D ]}||v s8J q8| j jdddddddddd	}| |}g d}|D ]}||v sJ q| jjdddddg ddd}| |}g d}|D ]}||v sJ q| j jdddddddddd	}| |}g d}|D ]}||v sJ qd S )Nr   Trk   rV   r   )rW   labelF)colorbarinterval)r4   r   ri   r   r   )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   rQ   )rT   r,   lZxlZxxl)r   r   )r4   r   ri   rm   r   )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   r0   r/   r   )r#   r,   r.   r   rT   r$   r$   r%   #test_mapclassify_categorical_legend  sX    



z/TestExplore.test_mapclassify_categorical_legendc                 C   sL   t  }| jj|ddd | |}|ddks6J |jd dksHJ dS )z5Check that geometry is mapped onto a given folium.MapF)r,   r   	highlightro   rQ   r9   rr   N)r   ZMapr   r0   r/   r   rC   rg   r$   r$   r%   test_given_mB  s
    
zTestExplore.test_given_mc                 C   sT   | j jdd}| |}d|v s$J | j jddddd}| |}d|v sPJ d S )	NT)r   z"fillOpacity":0.75rr   rV   )r   rW   )r   Zhighlight_kwdsz{"color":"red","fillOpacity":1}rf   rg   r$   r$   r%   test_highlightM  s    


zTestExplore.test_highlightc                 C   s  t g dddd}| jjd|dgdd}g d	}| |}|D ]}||v s>J q>|d
dksbJ |ddkstJ |ddksJ dd }| jjd|dd}ddg}|D ]}|| |v sJ qtg d}| jjd|d}g d}| |}|D ]}||v sJ qd S )N)r   yellowrV   r    r   r   rq   T)re   r   r   )zfillColor":"#008000ff"z"fillColor":"#ffff00ff"z"fillColor":"#ff0000ff"Z008000ffi0  Zffff00ff   Zff0000ff   c                 S   s   | dkrdS dS dS )z0Maps low values to green and high values to red.r   z#ff0000z#008000Nr$   )fieldr$   r$   r%   my_color_functionn  s    z<TestExplore.test_custom_colormaps.<locals>.my_color_functionF)re   r   z'"color":"#ff0000","fillColor":"#ff0000"z'"color":"#008000","fillColor":"#008000")rV   r   bluer   r   rt   )re   )z"fillColor":"#ff0000"z"fillColor":"#008000"z"fillColor":"#0000ff"z"fillColor":"#ffffff"z"fillColor":"#000000")r
   r   r0   r/   r   r	   ZListedColormapr   )r#   stepr,   r   r.   rT   r  re   r$   r$   r%   test_custom_colormapsZ  s,    

z!TestExplore.test_custom_colormapsc                 C   s&   | j }|j|d< |j|d< |  dS )z`
        Additional GeoSeries need to be removed as they cannot be converted to GeoJSON
        r[   centroidN)r   r[   r  r0   )r#   r   r$   r$   r%   test_multiple_geoseries  s    

z#TestExplore.test_multiple_geoseriesc                    sr    fdd}j jddddd |  tjtdd& j jddddd	 W d    n1 sd0    Y  d S )
Nc                     s2     } d| v sJ d| v s"J d| v s.J d S )NzzoomControl:falsezdragging:falsezscrollWheelZoom:false)r/   )r.   r,   r#   r$   r%   check  s    
z(TestExplore.test_map_kwds.<locals>.checkF)draggingscrollWheelZoom)rN   map_kwdsz0'zoom_control' cannot be specified in 'map_kwds'rw   )r
  r  rN   )r  )r   r0   rA   r{   r|   )r#   r	  r$   r  r%   test_map_kwds  s    
zTestExplore.test_map_kwdsN),__name__
__module____qualname__r&   r/   r2   r5   rL   rU   r`   rh   rn   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rA   markZskipif	BRANCA_05r   r   r   r   r   r   r   r   r   r   r  r  r  r$   r$   r$   r%   r      sL   -'9''g	<


M5
r   )Z	geopandasr   numpyr   Zpandasry   rA   Zpackaging.versionr   r   r   r   r   r   r   r   r	   Zbranca.colormapr
   __version__r  r   r   r$   r$   r$   r%   <module>   s   




