
    rbi                     F   d dl Z d dlmZ d dlZd dlZd dlZd dlZ	d dl
mZ d dlZ ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Zd d	lmZ d d
lmZmZ  eej                   ed          k    Z eej                   ed          k    Z eej                   ed          k    Z ej        d          d             Zej                            d           G d d                      ZdS )    N)Version)
HAS_PYPROJfoliumbranca
matplotlibmapclassifygeodatasets)StepColormap)cmcolorsz0.4.2z0.14.0z0.19.0class)scopec                 N   t          j        |           |j        _        t          j        |          |j        _        t          j        |          |j        _        t          j        t                              d                    |j        _        t          t          |j        j                            |j        j        d<   |j        j                                        |j        _        t          j                            d           t          j        |j        j        j        t          j                            |j        j        j        d          df<   t          j        |j        j        j        t          j                            |j        j        j        d          df<   d S )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       l/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/geopandas/tests/test_explore.py_setup_class_test_explorer,      s8    }]33GK&9::GK':;;GK-(<(<=T(U(UVVGK!&s7;+<'='=!>!>GKg!++0022GKINN2 	 K
	,2B77D
 	 K
	,2B77B      r,   c                   :   e Zd Zd Zd Zd Zej                            e	 d          d             Z
ej                            e	 d          d             Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                            e  d          d             Z!ej                            e	 d          d             Z"ej                            e	 d          d             Z#ej                            e	 d          d              Z$ej                            e	 d          d!             Z%ej                            e	 d          d"             Z&d# Z'd$ Z(d% Z)d& Z*d' Z+d( Z,d) Z-d* Z.d+ Z/d, Z0d- Z1d.S )/TestExplorec                     |j                                         }d                    |                                          }|S )N )_parentrenderjoinsplit)selfmoutout_strs       r+   _fetch_map_stringzTestExplore._fetch_map_string1   s3    i  ''#))++&&r-   c                     | j                                          | j                                         | j                                         | j        j                                         dS )zMake sure default passN)r   explorer   r   geometryr6   s    r+   test_simple_passzTestExplore.test_simple_pass6   s[    	

##%%%%%r-   c                 <    | j                             d           dS )z!Make sure default choropleth passr   columnN)r   r<   r>   s    r+   test_choropleth_passz TestExplore.test_choropleth_pass=   s!    
),,,,,r-   zrequires pyproj)reasonc                 B   | j                                         }|j        t          j        dd          t          j        dd          gk    sJ |j        d         dk    sJ t          s|j        d         du sJ n|j        d	         du sJ |j        d
k    sJ |j        dk    sJ |j	        dk    sJ |j
        dk    sJ |j        dk    sJ |j        j        du sJ |j        j        du sJ d|                                d                                         v sJ dS )zCheck default map settingsgpS
ck	ư>relg       =zoom
   zoomControlTzoom_controlrelative)g      Y@%)r   rN   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r6   r7   s     r+   test_map_settings_defaultz%TestExplore.test_map_settings_defaultA   sm    J  zM-4888M/T:::
 
 
 
 
 y B&&&& 	59]+t333339^,4444zZ''''x<''''w,&&&&v!!!!u     )U2222 +u4444!))++j"9">">"@"@@@@@@@r-   c                    | j                             ddd          }|j        t          j        dd          t          j        dd          gk    sJ |j        d         d	k    sJ t          s|j        d
         du sJ n|j        d         du sJ |j        dk    sJ |j        dk    sJ | j                             ddddd          }| 	                    |          }d}||v sJ d|v sJ | j                             d          }|j        ddgk    sJ |j        d         d	k    sJ | j                             d          }|j        t          j        dd          t          j        dd          gk    sJ |j        d         dk    sJ | j                             dd          }|j        ddgk    sJ |j        d         dk    sJ dS )zCheck custom map settingsF   )rL   rX   rW   gnXZD@rF   rG   gSI~RrI   rJ   rK   rL   )g      i@pxz2https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}Google)rL   rX   rW   tilesattrzC"https://mt1.google.com/vt/lyrs=m\u0026x={x}\u0026y={y}\u0026z={z}"z"attribution":"Google")r      )rQ   r   rh      )
zoom_start)rQ   rj   N)
r   r<   rQ   rR   rS   rT   rU   rW   rX   r:   )r6   r7   r9   ss       r+   test_map_settings_customz$TestExplore.test_map_settings_customW   s[    I  
 

 zM+666M+666
 
 
 
 
 y B&&&& 	69]+u444449^,5555x=((((w-'''' IF  
 
 ((++TG||||'72222Iw//zb!W$$$$y B&&&&I++zM+666M+666
 
 
 
 
 y A%%%%Iw1==zb!W$$$$y A%%%%%%r-   c                    | j                             d          }|                     |          }d|v sJ g d}| j                             |          }|                     |          }|D ]}d| d|v sJ | j                                         }||d<   |                    d          }|                     |          }|D ]}d| d|v sJ | j         j                            d          }|                     |          }d|v sJ dS )	zCheck color settingsred)color"fillColor":"red")z#333333z#367324z#95824fz#fcaa00z#ffcc33"fillColor":""r   N)r   r<   r:   r   boundary)	r6   r7   r9   r   m2cdfm3m4s	            r+   test_simple_colorzTestExplore.test_simple_color   s^    IE**((++"g---- IHHYV,,((,, 	3 	3A'1'''722222 Y^^8ZZhZ''((,, 	3 	3A'1'''722222 Y''e'44((,,"g------r-   c                 @   | j                             d          }|                     |          }d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ | j                             dd	          }|                     |          }d
|v sJ d|v sJ d|v sJ d|v sJ d|v sJ dS )zCheck choropleth colors
Shape_LengrA   color":"#440154"color":"#fde725"zcolor":"#50c46a"zcolor":"#481467"zcolor":"#3d4e8a"PuRdrB   cmapzcolor":"#f7f4f9"zcolor":"#67001f"zcolor":"#d31760"zcolor":"#f0ecf5"zcolor":"#d6bedc"Nr   r<   r:   r6   r7   r9   s      r+   test_choropleth_linearz"TestExplore.test_choropleth_linear   s    I\22((++!W,,,,!W,,,,!W,,,,!W,,,,!W,,,, I\??((++!W,,,,!W,,,,!W,,,,!W,,,,!W,,,,,,r-   c                 f   | j                             dd          }|                     |          }d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ | j                            d	d
          }|                     |          }d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ | j                            d	dd          }|                     |          }d|v sJ d|v sJ d|v sJ | j                            dddg di          }|                     |          }d|v sJ d|v sJ d|v sJ d|v sJ dS )zMapclassify binsr{   	quantiles)rB   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   )rB   r   kPOP2010UserDefinedbins)ia  iP  i$ i )rB   r   classification_kwdsz"fillColor":"#35b779"z"fillColor":"#31688e"N)r   r<   r:   r   r   r   s      r+   test_choropleth_mapclassifyz'TestExplore.test_choropleth_mapclassify   s    I\+FF((++!W,,,,!W,,,,!W,,,,!W,,,,!W,,,, Ji8HII((++&'1111&'1111&'1111&'1111&'1111 Ji1MM((++&'1111&'1111&'1111 L   !')F)F)F G ! 
 

 ((++&'1111&'1111&'1111&'111111r-   c           	         | j                             d          }|                     |          }d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ d	|v sJ d
|v sJ | j                            dd          }|                     |          }d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ | j                                         }t          j        |d                   |d<   |                    d          }|                     |          }t          j        t          j
        dt          j        t          d                              D ]}d| d|v sJ | j                            dd          }|                     |          }d|v sJ d|v sJ d|v sJ d|v sJ d |v sJ g d!}| j                            d|          }|                     |          }|D ]}d| d|v sJ d"d#g}| j                            d|          }|                     |          }|D ]}d| d|v sJ t          j        t           d$%          5  | j                            dd&           d'd'd'           d'S # 1 swxY w Y   d'S )(zCategorical mapsr   rA   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)rB   categoricalzcolor":"#9edae5"zcolor":"#c7c7c7"zcolor":"#8c564b"zcolor":"#1f77b4"zcolor":"#98df8a"namer         rq   rr   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   rR   raises
ValueError)r6   r7   r9   rv   ru   r   s         r+   test_categoricalzTestExplore.test_categorical   s    Jk22((++6'AAAA<GGGG6'AAAA4????:gEEEE<GGGG77BBBBDOOOO IZTBB((++!W,,,,!W,,,,!W,,,,!W,,,,!W,,,, Z__N2f:66=JJmJ,,((++$V]Arxb		7J7JKK 	3 	3A'1'''722222 IZf==((++!W,,,,!W,,,,!W,,,,!W,,,,!W,,,, GFFIZd;;((++ 	3 	3A'1'''722222 9%IZd;;((++ 	3 	3A'1'''722222]:-ABBB 	B 	BIZjAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   I99I= I=c                    | j         ddg                             dg d          }|                     |          }d|v sJ d|v sJ d|v sJ d|v sJ d	|v sJ | j                                         }t	          j        |d                   |d
<   t          j        t          d          5  |                    d
ddg           d d d            d S # 1 swxY w Y   d S )Nr   r=   )BrooklynStaten IslandQueensBronx	Manhattan)rB   
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   rR   r   r   )r6   r7   r9   rv   s       r+   test_categorieszTestExplore.test_categories  sp   Iz:./77TTT 8 
 
 ((++3w>>>>77BBBB6'AAAA:gEEEE4????Y^^N2j>::=]:-JKKK 	P 	PJJ}*o1NJOOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	Ps   +CCCc                 P   | j                                         }g d|d<   t          j        g d          |d<   |                    d          }|                    d          }|                     |          }d|v sJ d|v sJ |                     |          }d|v sJ d|v sJ d S )N)TFTFTboolbool_extensionz&"__folium_color":"#9edae5","bool":truez'"__folium_color":"#1f77b4","bool":falser   r   r   arrayr<   r:   )r6   rv   m1rt   out1_strout2_strs         r+   	test_boolzTestExplore.test_bool(  s    Y^^5556
!x(H(H(HIIZZZZ())))"--78CCCC8HDDDD))"--78CCCC8HDDDDDDr-   c           	         | j                                                             d          }t          j        ddddddd          }t          j        ddddddd          }||g|d<   |                    d          }|                     |          }d|v sJ d	|v sJ |                    d          }|                                }|                     |          }d
|v sJ d|v sJ d S )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)	r6   rv   date1date2r   r   df2rt   r   s	            r+   test_datetimezTestExplore.test_datetime7  s   Y^^""1%%T1aB155T1aB155:ZZ
##))"--KxWWWWKxWWWWll:&&[[]]))"--0H<<<<0H<<<<<<r-   c                    | j                                                             d          }d}t          j        |          }d}t          j        |          }||g|d<   |                    d          }|                     |          }d| d|v sJ d| d|v sJ |                    d          }|                                }	|                     |	          }
d| d|
v sJ d| d|
v sJ d S )	Nr   z$12345678-1234-5678-1234-567812345678z$12345678-1234-5678-1234-567812345679objectz%"__folium_color":"#9edae5","object":"rr   z%"__folium_color":"#1f77b4","object":"z
"object":")r   r   r   uuidUUIDr<   r:   r   )r6   rv   u1uuid1u2uuid2r   r   r   rt   r   s              r+   test_non_json_serialisablez&TestExplore.test_non_json_serialisableH  s   Y^^""1%%3	"3	"u~8ZZ!!))"--<r<<<HHHH<r<<<HHHHll8$$[[]]))"--!B!!!X----!B!!!X------r-   c                     | j                                         }t          j        g dd          |d<   |                    d          }|                     |          }d|v sJ d S )N)r   r   r      rh   string)dtypez'"__folium_color":"#9edae5","string":"5"r   )r6   rv   r7   r9   s       r+   test_stringzTestExplore.test_string[  sj    Y^^xx@@@8JJx  ((++8GCCCCCCr-   c                    t          j        | j        d                   }| j                            d          }| j                            |          }| j                            | j        d                   }|j        |j        cxk    r|j        k    sn J | j                            |dd          }|                     |          }d|v sJ d|v sJ | j                            | j        d         dd          }|                     |          }d|v sJ d|v sJ t          j        t          d          5  | j                            t          j        g d	                     d
d
d
           d
S # 1 swxY w 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   rA   TrB   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<   rQ   r:   rR   r   r   )	r6   column_arrayr   rt   rw   	m1_fieldsout1_fields_str	m2_fieldsout2_fields_strs	            r+   test_column_valueszTestExplore.test_column_valuesb  s   
 x
9 566Zy11Z|44Ztz)'<=={bk8888R[888888J&&lDPT&UU	00;;Q    S    J&&:i($d ' 
 
	 00;;Q    S   
 ]:-GHHH 	; 	;Jbhyyy&9&9:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   >0E;;E?E?c                     | j                                         }d|j        j        _        |                                }d|                                d                                         vsJ dS )zNaive geometry get no tilesNrO   rP   )r   r   r=   r   crsr<   r^   r_   r6   rv   r7   s      r+   test_no_crszTestExplore.test_no_crs  s]    Z__ $JJLLaiikk*&=&B&B&D&DDDDDDDr-   c                 d   | j                             dddd          }|                     |          }d|v sJ | j                             ddd	i
          }d|                     |          v sJ | j                             dd i          }t          d d |j                                                            d          D             D                       sJ t          j        t          d          5  | j                             ddi           ddd           dS # 1 swxY w Y   dS )zStyle keywordsg?g      ?orange)fillOpacityweight	fillColor)
style_kwdsz3"fillColor":"orange","fillOpacity":0.1,"weight":0.5r   ro   black)rB   r   "color":"black"style_functionc                 \    | d         d         dk     rdnd| d         d         dk     rdnddS )	N
properties
gdp_md_esti@B rn   greenr   white)r   ro    )xs    r+   <lambda>z-TestExplore.test_style_kwds.<locals>.<lambda>  sD    !"<!>!F!FG $%\?<#@5#H#Hg- - r-   c              3   6   K   | ]}d |v rd|v pd|v od|v V  dS )z"fillColor":"green"z"color":"white"rp   r   Nr   ).0ts     r+   	<genexpr>z.TestExplore.test_style_kwds.<locals>.<genexpr>  sa       
 
  #a'B,=,B E#q(C->!-C
 
 
 
 
 
r-   c                 l    g | ]1}d |v d|v 
d                     |                                          2S )returnro   r1   )r4   r5   )r   lines     r+   
<listcomp>z/TestExplore.test_style_kwds.<locals>.<listcomp>  sG       t##4 

%%(7r-   
z%'style_function' has to be a callabler   znot callableN)
r   r<   r:   allr2   r3   r5   rR   r   r   r   s      r+   test_style_kwdszTestExplore.test_style_kwds  s   J'*cQQ  
 
 ((++DOOOOJiWg<NOO D$:$:1$=$===== J  # #	  
 
  
 
 I,,..44T::  
 
 
 
 
 	
 	
 	
 ]:-TUUU 	N 	NJ+;^*LMMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	Ns   :D%%D),D)c                    | j                                         }dt          |                                          v sJ dt          |                                          vsJ | j                             dd          }dt          |                                          v sJ dt          |                                          v sJ |                     |          }d|v sJ d|v sJ | j                             ddd          }dt          |                                          v sJ dt          |                                          v sJ |                     |          }d|v sJ d|v sJ | j                             dd	          }|                     |          }d
|v sJ d|v sJ d|v sJ d|v sJ | j                             ddgd	dg          }|                     |          }d|v sJ d|v sJ d|v sJ d|v sJ | j                             dd          }|                     |          }d|v sJ d|v sJ | j                             ddg ddd          }|                     |          }d|v sJ d|v sJ d|v sJ | j                             dddg di          }|                     |          }d|v sJ d|v sJ d|v sJ | j                             ddddiddi          }|                     |          }d|vsJ | j                            d           }|                                }|                     |          }d |v sJ d!S )"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   rh   )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<   strr^   r:   r   r   )r6   r7   r9   gdfs       r+   test_tooltipzTestExplore.test_tooltip  s    J  3qyy{{#3#33333S%5%55555 Jt4883qyy{{#3#33333QYY[[!1!11111((++Q    S   
 JiTJJ3qyy{{#3#33333QYY[[!1!11111((++Q    S   
 JyAA((++#w....$////"g----#w.... J,X|4L  
 
 ((++/7::::0G;;;;.'99990G;;;; Jq22((++/7::::0G;;;; J%7%7%75II  
 

 ((++Q    ''11117**** J!#5#5#56  
 

 ((++Q    ''1111!W,,,, J"E* %(	  
 
 ((++!0000 i!!*--KKMM((++W$$$$$$r-   c                     | j                                         }d|d<   |                                }|                     |          }d|v sJ d|v sJ d S )Nz({{{what a mess}}} they are so different.r   z{{{z}}})r   r   r<   r:   )r6   r  r7   r9   s       r+   test_escape_special_charactersz*TestExplore.test_escape_special_characters  sd    jooDFKKMM((++G####G######r-   c                    | j                                         }g d}|                     |          }|D ]}||v sJ 	| j                             ddd          }g d}|                     |          }|D ]}||v sJ 	d S )N)z
"radius":2z"fill":trueCircleMarker(latlng,opts)rh   F)radiusfill)marker_kwds)z
"radius":5z"fill":falser
  )r   r<   r:   )r6   r7   stringsr9   rk   s        r+   test_default_markersz TestExplore.test_default_markers'  s    K!!LLL((++ 	  	 A<<<<<Kq%,H,HIIMMM((++ 	  	 A<<<<<	  	 r-   c           	         | j                             ddt                              d          i          }d|                     |          v sJ | j                             ddd	i          }d
|                     |          v sJ | j                             t                              ddddd                    }d|                     |          v sJ | j                             dddi          }d|                     |          v sJ t          j        t          d          5  | j                             d           d d d            d S # 1 swxY w Y   d S )Nmarkericonstar)r  )marker_typer  z,"icon":"star",circle
fill_colorrn   z,"fillColor":"red",r   r   g?r   r   )r  r  fill_opacityro   r   )r  z,"color":"black",circle_markerr  rJ   z,"radius":10,z:Only 'marker', 'circle', and 'circle_marker' are supportedr   dummy)	r   r<   r   Iconr:   CirclerR   r   r   r`   s     r+   test_custom_markerszTestExplore.test_custom_markers5  s   K &!9!9:   
 
 %(>(>q(A(AAAAA KH<QVBWXX(D,B,B1,E,EEEEE KXCwWX &     
 

 '$*@*@*C*CCCCC KO(TVXX"d&<&<Q&?&????? ]N
 
 
 	5 	5 KG444		5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   +EEEc                    | j                                         }t          t          |                    |d<   |                    ddd          }|                     |          }d|v sJ d|v sJ d|v sJ | j                                        }|d         d	z  |d
<   ||d
         dk                                 d
d          }|                     |          }t          rd|v sJ d|v sJ d|v sJ nd|v sJ d|v sJ d|v sJ |d         dz  |d<   ||d         dk                                 dd          }|                     |          }d|v sJ d|v sJ 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"r   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      $values_negative)r   z6case"1":return{"color":"#414487","fillColor":"#414487"z6case"2":return{"color":"#2a788e","fillColor":"#2a788e")r   r   r   r   r<   r:   r   FOLIUM_G_014)r6   rv   r7   r9   r   s        r+   test_vmin_vmaxzTestExplore.test_vmin_vmaxT  s   Z__CGGnn7JJwTJ55((++IWTTTTIWTTTTG7RRRR innJ$.HH#$,,XA,>>((++ 	WKwVVVVKwVVVVKwVVVVVKwVVVVKwVVVVKwVVVV!$Z5!8%&",-556Ga5PP((++G7RRRRG7RRRRRRr-   c                    | j                             d          }d|                     |          v sJ | j                             d          }d|                     |          v sJ | j                             dddi          }d|                     |          v sJ | j                             dddi          }d|                     |          v sJ d S )Nr   z"fillColor":nullr   ro   rn   )missing_kwdsrp   )r   r<   r:   r`   s     r+   test_missing_valszTestExplore.test_missing_valsq  s    L  --!T%;%;A%>%>>>>>L  ++!T%;%;A%>%>>>>>L  '59I JJ"d&<&<Q&?&?????L  GU;K LL"d&<&<Q&?&???????r-   c                 <   | j                             dd          }|                     |          }d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ d	|v sJ d
|v sJ d|v sJ | j                            ddddi          }|                     |          }d|v sJ 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>SouthAmericaro   rn   r+  r'  red'></span>NaN)r   r<   r:   r   r   s      r+   test_categorical_legendz#TestExplore.test_categorical_legend~  s   J{488((++'72222+w6666%0000'72222-8888(G33335@@@@-8888L  GU3C ! 
 
 ((++ G++++++r-   c                    d }| j                             dd          }|                     |          }d|v sJ  |d|          sJ | j                             ddddi	          }|                     |          }d|v sJ  |d
|          sJ | j                            ddddi          }|                     |          }d|v sJ | j                             ddddid          }|                     |          }|                    d          dk    sJ |                    d          dk    sJ |                    d          dk    sJ |                    d          dk    sJ |                    d          dk    sJ | j                             ddd          }|                     |          }|                    d          dk    sJ |                    d          dk    sJ |                    d          dk    sJ |                    d          dk    sJ |                    d          dk    sJ | j                             ddd !          }|                     |          }|                    d"          d#k    sJ |                    d$          d%k    sJ |                    d&          d#k    sJ |                    d'          d%k    sJ |                    d(          d%k    sJ |                    d)          d#k    sJ |                    d*          d%k    sJ |                    d+          d#k    sJ d S ),Nc                 :    | |v p|                      dd          |v S )N'rr   )replace)findrk   s     r+   	quoted_inz,TestExplore.test_colorbar.<locals>.quoted_in  s$    19;S# 6 6! ;;r-   r   Tr*  zattr("id",'legend')ztext('range')caption
my_caption)r+  legend_kwdsztext('my_caption')r   ro   rn   r,  r-  scaleFHeadtailbreaks)r+  r7  r   z	#440154ffd   z	#3b528bffz	#21918cffz	#5ec962ffz	#fde725ff)r+  r      2      i"     Pastel2)r+  r   b3e2cdff?   fdcdacff>   cbd5e8fff4cae4ffe6f5c9fffff2aefff1e2ccffccccccff)r   r<   r:   r   count)r6   r4  r7   r9   s       r+   test_colorbarzTestExplore.test_colorbar  s   	< 	< 	< Jwt44((++&'1111y'22222JDy,.G  
 
 ((++&'1111y-w77777L  4wPUFV WW((++ G++++ J %(#	  
 
 ((++}}[))S0000}}[))S0000}}[))S0000}}[))S0000}}[))S0000 J#  
 

 ((++}}[))R////}}[))R////}}[))S0000}}[))S0000}}[))Q.... JyIFF((++}}Z((B....}}Z((B....}}Z((B....}}Z((B....}}Z((B....}}Z((B....}}Z((B....}}Z((B......r-   zrequires branca >= 0.5.0c                 <   dd l }| j                            dddi          }|                     |          }|                    d|                              d          }|                    dd          d	k    sJ | j                            dd
ddi          }|                     |          }d|v sJ | j                            dddid          }|                     |          }|                    d|                              d          }|dk    sJ d S )Nr   r   
max_labelsr   )r7  z tickValues\(\[[\',\,\.,0-9]*\]\)z,''r1   z8tickValues([140.0,471386328.07843137,942772516.1568627])r   )r   r7  z;tickValues([140.0,'',184117213.1818182,'',1382066377.0,''])tab10)r7  r   zGtickValues([140.0,'','','',559086084.0,'','','',1118172028.0,'','','']))rer   r<   r:   searchgroupr2  )r6   rO  r7   r9   tick_strs        r+   test_colorbar_max_labelsz$TestExplore.test_colorbar_max_labels  se   			 Jy|Q6GHH((++99@'JJPPQRSSUB''IJ J J J
 J.\1<M  
 
 ((++LPWWWWW Jy|Q6GgVV((++99@'JJPPQRSSXY Y Y Y Y Yr-   c                     t          j        d          }| j                            |j        j        j                  }|                     |          }d|v sJ d|v sJ d|v sJ d S )Nxyzservicesrf   C"https://a.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}{r}.png"Dattribution":"\u0026copy;\u003cahref=\"https://www.openstreetmap.org"maxZoom":20rR   importorskipr   r<   	providersCartoDBPositronNoLabelsr:   r6   rU  r7   r9   s       r+   test_xyzservices_providersz&TestExplore.test_xyzservices_providers  s    )-88IK$9$A$RSS((++ R    V    ((((((r-   c                     t          j        d           | j                            d          }|                     |          }d|v sJ d|v sJ d|v sJ d S )NrU  zCartoDB Positron No LabelsrV  rW  rX  rY  )rR   r[  r   r<   r:   r   s      r+   test_xyzservices_query_namez'TestExplore.test_xyzservices_query_name  s    M***I$@AA((++ R    V    ((((((r-   c                     t          j        d          }| j                            |j        j        j        d          }|                     |          }d|v sJ d S )NrU  r   )rf   min_zoom"minZoom":3rZ  r_  s       r+   ,test_xyzservices_providers_min_zoom_overridez8TestExplore.test_xyzservices_providers_min_zoom_override  sh    )-88I'/@1  
 
 ((++''''''r-   c                     t          j        d          }| j                            |j        j        j        d          }|                     |          }d|v sJ d S )NrU     )rf   max_zoom"maxZoom":12rZ  r_  s       r+   ,test_xyzservices_providers_max_zoom_overridez8TestExplore.test_xyzservices_providers_max_zoom_override  sh    )-88I'/@2  
 
 ((++((((((r-   c                     t          j        d          }| j                            |j        j        j        dd          }|                     |          }d|v sJ d|v sJ d S )NrU  r   rh  )rf   rd  ri  rj  re  rZ  r_  s       r+   .test_xyzservices_providers_both_zooms_overridez:TestExplore.test_xyzservices_providers_both_zooms_override"  s}    )-88I'/@  
 

 ((++((((''''''r-   c                     | j                             d          j        }|                                }|                     |          }|                    d          t          |          k    sJ d S )NT)index_parts
LineString)r   explodeexteriorr<   r:   rJ  r   )r6   ringsr7   r9   s       r+   test_linearringszTestExplore.test_linearrings0  sf    	!!d!33<MMOO((++}}\**c%jj888888r-   c           	      L   | j                             ddddddddd	          }|                     |          }g d
}|D ]}||v sJ 	| j                             ddddddddd	          }|                     |          }g d}|D ]}||v sJ 	| j                            dddddg dd          }|                     |          }g d}|D ]}||v sJ 	| j                             ddddddddd	          }|                     |          }g d}|D ]}||v sJ 	d S )Nr   Tr   rn   r   )ro   labelF)colorbarinterval)rB   r+  r   r'  r7  )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   rh   )rk   r7   lxlxxl)rw  r  )rB   r+  r   r   r7  )z>s<z>m<z>l<z>xl<z>xxl<z{:.0f})rw  fmt)z>140,21803000z>21803000,66834405z>66834405,163046161z>163046161,328239523z>328239523,1397715000r   )r   r<   r:   r   )r6   r7   r9   r  rk   s        r+   #test_mapclassify_categorical_legendz/TestExplore.test_mapclassify_categorical_legend7  s   L  "#(9==%*== ! 
 
 ((++
 
 
  	  	 A<<<<< L  "#(9==%*>> ! 
 
 ((++
 
 
  	  	 A<<<<< J"%*6R6R6RSS  
 
 ((++888 	  	 A<<<<< L  "#(9==%*8<< ! 
 
 ((++
 
 
  	  	 A<<<<<	  	 r-   c                     t                                           }| j                            |dd           |                     |          }|                    d          dk    sJ |j        d         dk    sJ dS )z5Check that geometry is mapped onto a given folium.MapF)r7   r   	highlightr   rh   rI   r   N)r   Mapr   r<   r:   rJ  rT   r   s      r+   test_given_mzTestExplore.test_given_m  sz    JJLL	Au>>>((++}}Z((A----y A%%%%%%r-   c                     | j                             d          }|                     |          }d|v sJ | j                             dddd          }|                     |          }d|v sJ d S )	NT)r  z"fillOpacity":0.75r   rn   )r   ro   )r  highlight_kwdsz{"color":"red","fillOpacity":1}r   r   s      r+   test_highlightzTestExplore.test_highlight  s    I--((++#w....I1u+M+M  
 
 ((++0G;;;;;;r-   c                    t          g ddd          }| j                            d|dgd          }g d	}|                     |          }|D ]}||v sJ 	|                    d
          dk    sJ |                    d          dk    sJ |                    d          dk    sJ d }| j                            d|d          }ddg}|D ]}||                     |          v sJ t          j        g d          }| j                            d|          }g d}|                     |          }|D ]}||v sJ 	d S )N)r   yellowrn   r    r  r   r   T)r   r   r+  )zfillColor":"#008000ff"z"fillColor":"#ffff00ff"z"fillColor":"#ff0000ff"008000ffi0  ffff00ff   ff0000ff   c                     | dk    rdS dS )z0Maps low values to green and high values to red.r  z#ff0000z#008000r   )fields    r+   my_color_functionz<TestExplore.test_custom_colormaps.<locals>.my_color_function  s    y   y yr-   F)r   r+  z'"color":"#ff0000","fillColor":"#ff0000"z'"color":"#008000","fillColor":"#008000")rn   r   bluer   r   r   )r   )z"fillColor":"#ff0000"z"fillColor":"#008000"z"fillColor":"#0000ff"z"fillColor":"#ffffff"z"fillColor":"#000000")r
   r   r<   r:   rJ  r   ListedColormapr   )r6   stepr7   r  r9   rk   r  r   s           r+   test_custom_colormapsz!TestExplore.test_custom_colormaps  s   666QYOOOJytfXdSS
 
 
 ((++ 	  	 A<<<<<}}Z((C////}}Z((C////}}Z((C////	! 	! 	! Jy/@OO 65

  	2 	2A..q1111111 $%O%O%OPPIjt44
 
 
 ((++ 	  	 A<<<<<	  	 r-   c                 d    | j         }|j        |d<   |j        |d<   |                                 dS )z`
        Additional GeoSeries need to be removed as they cannot be converted to GeoJSON
        rs   centroidN)r   rs   r  r<   )r6   r  s     r+   test_multiple_geoseriesz#TestExplore.test_multiple_geoseries  s2     i,J,Jr-   c                      fd} j                             dddd           |             t          j        t          d          5   j                             dddd           d d d            d S # 1 swxY w Y   d S )	Nc                                                     } t          sj        d         du sJ nj        d         du sJ d| v sd| v sJ d| v sd| v sJ d S d S )NrK   FrL   zdragging:falsez"dragging":falsezscrollWheelZoom:falsez"scrollWheelZoom":false)r:   rU   rT   )r9   r7   r6   s    r+   checkz(TestExplore.test_map_kwds.<locals>.check  s    ,,Q//G  :y/588888y0E9999#w..2D2O2O2O2O'722,7777 3277r-   F)draggingscrollWheelZoom)rL   map_kwdsz0'zoom_control' cannot be specified in 'map_kwds'r   )r  r  rL   )r  )r   r<   rR   r   r   )r6   r  r7   s   ` @r+   test_map_kwdszTestExplore.test_map_kwds  s   
	 
	 
	 
	 
	 
	 JePU)V)V  
 
 	]P
 
 
 		 		 J %',$)     		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s    A::A>A>c                     | j                                         }d |j        d|j        j        f<   |                                }|                     |           d S Nr   )r   r   r$   r=   r   r<   r:   r   s      r+   test_none_geometryzTestExplore.test_none_geometry  sP    Y^^&*q"+""#JJLLq!!!!!r-   c                     | j                                         }t          j                    |j        d|j        j        f<   |                                }|                     |           d S r  )	r   r   shapelyPointr$   r=   r   r<   r:   r   s      r+   test_empty_geometryzTestExplore.test_empty_geometry  sV    Y^^&-mooq"+""#JJLLq!!!!!r-   c                    t          j        t          j                    t          j                    gd          }t	          j        t          d          5  |                                }d d d            n# 1 swxY w Y   |                     |          }t          rd|v sJ t          j        t          j                    t          j                    g          }t	          j        t          d          5  |                                }d d d            n# 1 swxY w Y   |                     |          }d|v sJ d S )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  rR   warnsUserWarningr<   r:   r   )r6   with_crsr7   r9   no_crss        r+   test_all_emptyzTestExplore.test_all_empty  s   #moow}7T
 
 
 \Q
 
 
 	# 	#   ""A		# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#
 ((++ 	D8GCCCC!GMOOW]__+MNNN\Q
 
 
 	! 	!   A		! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!
 ((++2g======s$   A77A;>A;8DD Dc                 4   t          j        t          j        dd          t          j        dd          g          }t          j        t          j                    t          j                    g          }|                    d                                          }t          j        t          d          5  |                    d                              |d	          }d d d            n# 1 swxY w Y   | 	                    |          }d
|v sJ d S )Nr   r   r  
index_name)r&   r  r   rn   )r7   ro   z!center:[0.5,0.5],crs:L.CRS.Simple)
r   r  r  r  rename_axisr<   rR   r  r  r:   )r6   gdf1gdf2r7   r9   s        r+   test_add_all_empty_named_indexz*TestExplore.test_add_all_empty_named_index  sS   '-1*=*=w}QPQ?R?R)STTT'-//7=??)KLLL<0088::\Q
 
 
 	O 	O   | 44<<q<NNA		O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O
 ((++2g======s   :,C22C69C6N)2__name__
__module____qualname__r:   r?   rC   rR   markskipifr   ra   rl   ry   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r%  r(  r.  rK  	BRANCA_05rS  r`  rb  rf  rk  rm  rt  r}  r  r  r  r  r  r  r  r  r  r   r-   r+   r/   r/   /   s         
& & &- - - [J/@AAA A BAA* [J/@AA.& .& BA.&`. . .6- - -(%2 %2 %2N7B 7B 7BrP P P"E E E= = =". . .&D D D%; %; %;NE E E%N %N %NNe% e% e%N$ $ $     5 5 5>S S S:@ @ @, , ,$:/ :/ :/x [I.HII
 
 JI
: [J/@AA) ) BA)  [J/@AA) ) BA)  [J/@AA( ( BA( [J/@AA) ) BA) [J/@AA( ( BA(9 9 9K  K  K Z	& 	& 	&< < <3  3  3 j    :" " "" " "> > >,
> 
> 
> 
> 
>r-   r/   ) r   packaging.versionr   numpyr    pandasr   r  	geopandasr   geopandas._compatr   rR   r[  r   r   r   r   r	   branca.colormapr
   r   r   __version__r  r$  rU   fixturer,   r  usefixturesr/   r   r-   r+   <module>r     s    % % % % % %              ( ( ( ( ( ( 		X	&	&		X	&	& V ..
!f!-00!f!-00 ( ( ( ( ( ( ! ! ! ! ! ! ! !GF&'''''*:*::	wv)**WWX->->>*++wwx/@/@@ g  $ 455v> v> v> v> v> v> v> 65v> v> v>r-   