a
    ø´þ`8  ã                   @   s`   d dl mZmZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlZG dd„ de
ƒZdS )	é    )ÚSkipTestÚexpectedFailure)Úparameterized)ÚStore)ÚOptionsÚ
OptionTree)ÚComparisonTestCaseNc                       sä  e Zd Zdd„ Z‡ fdd„Zdd„ Zdd„ Ze d	d
g¡dd„ ƒZ	e d	d
g¡dd„ ƒZ
e d	d
g¡dd„ ƒZe d	d
g¡dd„ ƒZe d	d
g¡dd„ ƒZe d	d
g¡dd„ ƒZe d	d
g¡dd„ ƒZe d	d
g¡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ed+d,„ ƒZd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Z d9d:„ Z!d;d<„ Z"d=d>„ Z#d?d@„ Z$e dAdBg¡dCdD„ ƒZ%e dAdBg¡dEdF„ ƒZ&dGdH„ Z'dIdJ„ Z(dKdL„ Z)dMdN„ Z*dOdP„ Z+dQdR„ Z,dSdT„ Z-‡  Z.S )UÚTestOptionsc                 C   s°   zdd l }W n   tdƒ‚Y n0 d| _t | j¡ | jt_ttt 	¡  
¡ ƒtjd| _dd l}|jg d¢g d¢g d¢gg d¢d	| _|jg d
¢g d¢g d¢gg d¢d	| _d S )Nr   zPandas not availableÚbokeh)Úgroups)é   é   ÚAgš™™™™™¹?)é   é   ÚBçš™™™™™É?)é   é   ÚCg333333Ó?)ÚxÚyÚcategoryÚnumber©Úcolumns©r   r   éÿÿÿÿ©r   r   r   ©r   r   r   ©r   r   r   )Úpandasr   ÚbackendÚhvÚ	extensionr   Zcurrent_backendr   ÚsortedÚoptionsÚitemsr   Z_option_groupsÚ
store_copyZhvplot.pandasÚ	DataFrameÚdfÚsymmetric_df)ÚselfÚpdÚhvplot© r/   ú7lib/python3.9/site-packages/hvplot/tests/testoptions.pyÚsetUp   s"    ÿÿÿzTestOptions.setUpc                    s6   t j| jd dd„ t j ¡ D ƒt _tt| ƒ ¡  d S )N)Úvalc                 S   s   i | ]
}|i “qS r/   r/   )Ú.0Úkr/   r/   r0   Ú
<dictcomp>   ó    z(TestOptions.tearDown.<locals>.<dictcomp>)r   r&   r(   Z_custom_optionsÚkeysÚsuperr	   ÚtearDown)r,   ©Ú	__class__r/   r0   r9      s    zTestOptions.tearDownc                 C   s:   | j jjddddd}t d|d¡}|  |jd d¡ d S )	Nr   r   r   Úleft)ÚcÚlegendr
   ÚplotÚlegend_position©r*   r.   Úscatterr   Úlookup_optionsÚassertEqualÚkwargs©r,   r?   Úoptsr/   r/   r0   Útest_scatter_legend_position"   s    z(TestOptions.test_scatter_legend_positionc                 C   s8   | j jjdddd}t d|d¡}|  |jd d¡ d S )Nr   r   r<   )Úbyr>   r
   r?   r@   )r*   r.   Zhistr   rC   rD   rE   rF   r/   r/   r0   Ú*test_histogram_by_category_legend_position'   s    z6TestOptions.test_histogram_by_category_legend_positionrB   Zpointsc                 C   s:   | j jdddd|d}t d|d¡}|  |jd d¡ d S )Nr   r   T)r=   ÚlogzÚkindr
   r?   rK   )r*   r.   r   rC   rD   rE   ©r,   rL   r?   rG   r/   r/   r0   Ú	test_logz,   s    zTestOptions.test_logzc                 C   sF   | j jddd|d}t d|d¡}|  |jd d¡ |  d|j¡ d S )Nr   r   r   )r=   rL   r
   ÚstyleÚcolor©r*   r.   r   rC   rD   rE   ÚassertInÚvdimsrM   r/   r/   r0   Útest_color_dim2   s    zTestOptions.test_color_dimc                 C   sF   | j jddd|d}t d|d¡}|  |jd d¡ |  d|j¡ d S )Nr   r   r   )ÚsrL   r
   rO   ÚsizerQ   rM   r/   r/   r0   Útest_size_dim9   s    zTestOptions.test_size_dimc                 C   sF   | j jddd|d}t d|d¡}|  |jd d¡ |  d|j¡ d S )Nr   r   r   )ÚalpharL   r
   rO   rX   rQ   rM   r/   r/   r0   Útest_alpha_dim@   s    zTestOptions.test_alpha_dimc                 C   sF   | j jddd|d}t d|d¡}|  |jd d¡ |  d|j¡ d S )Nr   r   r   )ÚmarkerrL   r
   rO   rZ   rQ   rM   r/   r/   r0   Útest_marker_dimG   s    zTestOptions.test_marker_dimc                 C   sL   | j jdddd|d}t d|jd¡}|  |jd d¡ |  d|jj¡ d S )	Nr   r   r   r   )r=   rI   rL   r
   rO   rP   ©	r*   r.   r   rC   ZlastrD   rE   rR   rS   rM   r/   r/   r0   Útest_color_dim_overlayN   s    z"TestOptions.test_color_dim_overlayc                 C   sL   | j jdddd|d}t d|jd¡}|  |jd d¡ |  d|jj¡ d S )	Nr   r   r   r   )rU   rI   rL   r
   rO   rV   r\   rM   r/   r/   r0   Útest_size_dim_overlayU   s    z!TestOptions.test_size_dim_overlayc                 C   sL   | j jdddd|d}t d|jd¡}|  |jd d¡ |  d|jj¡ d S )	Nr   r   r   r   )rX   rI   rL   r
   rO   rX   r\   rM   r/   r/   r0   Útest_alpha_dim_overlay\   s    z"TestOptions.test_alpha_dim_overlayc                 C   sÜ   | j jjdddd}t d|d¡}|  |jd d¡ |  |jd	 d
¡ |  |jd d¡ |  |jd d¡ |  |jd d¡ |  |jd d¡ |  |jd d¡ |  |jd d¡ |  |jd d¡ |  |j d¡d ¡ d S )Nr   r   r   ©r=   r
   r?   Zshow_legendTr@   ÚrightÚ	show_gridFZ
responsiveZshared_axesÚheighté,  Úwidthi¼  ÚlogxÚlogyrK   ©r*   r.   rB   r   rC   rD   rE   ÚgetrF   r/   r/   r0   Útest_hvplot_defaultsc   s    z TestOptions.test_hvplot_defaultsc                 C   sˆ   t j t jjdddd¡ | jjjdddd}t d	|d
¡}|  	|j
d d¡ |  	|j
d d¡ |  	|j
d d¡ |  	|j
d d¡ d S )Né  é„  T©rc   re   rb   r   r   r   r`   r
   r?   r@   ra   rb   rc   re   ©r#   rG   ÚdefaultsÚScatterr*   r.   rB   r   rC   rD   rE   rF   r/   r/   r0   Ú#test_holoviews_defined_default_optsq   s    z/TestOptions.test_holoviews_defined_default_optsc                 C   sŒ   t j t jjdddd¡ | jjjddddd	d
}t d|d¡}|  	|j
d d	¡ |  	|j
d d¡ |  	|j
d d¡ |  	|j
d d¡ d S )Nrk   rl   Trm   r   r   r   rd   r<   )r=   re   r>   r
   r?   r@   rb   rc   re   rn   rF   r/   r/   r0   Ú7test_holoviews_defined_default_opts_overwritten_in_callz   s    zCTestOptions.test_holoviews_defined_default_opts_overwritten_in_callc                 C   s~   t j t jjdgd¡ | jjjdddd}t d|d¡}|  	|j
d	 dd
g¡ tjddd jd j}|  	|d	 dg¡ d S )NZtap)Útoolsr   r   r   r`   r
   r?   rs   Zhover)r"   rp   )r#   rG   ro   rp   r*   r.   rB   r   rC   rD   rE   r&   r   )r,   r?   rG   Zdefault_optsr/   r/   r0   Ú3test_holoviews_defined_default_opts_are_not_mutableƒ   s    z?TestOptions.test_holoviews_defined_default_opts_are_not_mutablec                 C   sB   | j jjdddd}t d|d¡}d|jvs0J ‚d|jvs>J ‚d S )	Nr   r   r   r`   r
   r?   ÚxaxisÚyaxis)r*   r.   rB   r   rC   rE   rF   r/   r/   r0   Ú#test_axis_set_to_visible_by_default‹   s    z/TestOptions.test_axis_set_to_visible_by_defaultc                 C   sN   | j jjdddd d d}t d|d¡}|  |jd d ¡ |  |jd d ¡ d S )	Nr   r   r   ©r=   ru   rv   r
   r?   ru   rv   rA   rF   r/   r/   r0   Útest_axis_set_to_none‘   s    z!TestOptions.test_axis_set_to_nonec                 C   sN   | j jjdddddd}t d|d¡}|  |jd d ¡ |  |jd	 d ¡ d S )
Nr   r   r   Frx   r
   r?   ru   rv   rA   rF   r/   r/   r0   Útest_axis_set_to_false—   s    z"TestOptions.test_axis_set_to_falsec                 C   sb   t j t jjd d d¡ | jjjdddd}t d|d¡}|  	|j
d d ¡ |  	|j
d	 d ¡ d S )
N©ru   rv   r   r   r   r`   r
   r?   ru   rv   rn   rF   r/   r/   r0   Ú/test_axis_set_to_none_in_holoviews_opts_default   s
    z;TestOptions.test_axis_set_to_none_in_holoviews_opts_defaultc                 C   s^   t j t jjd d d¡ | jjjdddddd}t d|d¡}d	|j	vsLJ ‚d
|j	vsZJ ‚d S )Nr{   r   r   r   Trx   r
   r?   ru   rv   )
r#   rG   ro   rp   r*   r.   rB   r   rC   rE   rF   r/   r/   r0   ÚAtest_axis_set_to_none_in_holoviews_opts_default_overwrite_in_call¤   s
    zMTestOptions.test_axis_set_to_none_in_holoviews_opts_default_overwrite_in_callc                 C   s`   | j jjddddd}t d|d¡}|  |jd d¡ |  |jd	 d¡ |  |j d
¡d ¡ d S )Nr   r   r   T)r=   Zloglogr
   r?   rf   rg   rK   rh   rF   r/   r/   r0   Útest_loglog_opts¬   s
    zTestOptions.test_loglog_optsc                 C   s`   | j jjddddd}t d|d¡}|  |jd d	¡ |  |jd
 d¡ |  |j d¡d ¡ d S )Nr   r   r   T)r=   rg   r
   r?   rf   Frg   rK   rh   rF   r/   r/   r0   Útest_logy_opts³   s
    zTestOptions.test_logy_optsc                 C   st   t j t jjdd¡ | jjjdddd}t d|d¡}|  	|j
d	 d¡ |  	|j
d
 d¡ |  	|j
 d¡d ¡ d S )NT©rf   r   r   r   r`   r
   r?   rf   rg   FrK   ©r#   rG   ro   rp   r*   r.   rB   r   rC   rD   rE   ri   rF   r/   r/   r0   Ú(test_holoviews_defined_default_opts_logxº   s    z4TestOptions.test_holoviews_defined_default_opts_logxc                 C   sv   t j t jjdd¡ | jjjddddd}t d|d	¡}|  	|j
d
 d¡ |  	|j
d d¡ |  	|j
 d¡d ¡ d S )NTr€   r   r   r   F)r=   rf   r
   r?   rf   rg   rK   r   rF   r/   r/   r0   Ú<test_holoviews_defined_default_opts_logx_overwritten_in_callÂ   s    zHTestOptions.test_holoviews_defined_default_opts_logx_overwritten_in_callc                 C   sF   dd l }| jjjdddd}t d|d¡}|  |jd |jd	 ¡ d S )
Nr   r   r   r   r`   r
   rO   ÚcmapZglasbey_category10)	Zcolorcetr*   r.   rB   r   rC   rD   rE   Zpalette)r,   Zccr?   rG   r/   r/   r0   Ú!test_hvplot_default_cat_cmap_optsÊ   s    z-TestOptions.test_hvplot_default_cat_cmap_optsc                 C   s8   | j jjdddd}t d|d¡}|  |jd d¡ d S )	Nr   r   r   r`   r
   rO   r„   Úkbc_rrA   rF   r/   r/   r0   Ú!test_hvplot_default_num_cmap_optsÐ   s    z-TestOptions.test_hvplot_default_num_cmap_optsc                 C   s:   | j jjddddd}t d|d¡}|  |jd d	¡ d S )
Nr   r   r   Z	diverging©r=   r„   r
   rO   r„   ÚcoolwarmrA   rF   r/   r/   r0   Útest_cmap_opts_by_typeÕ   s    z"TestOptions.test_cmap_opts_by_typec                 C   s:   | j jjddddd}t d|d¡}|  |jd d¡ d S )	Nr   r   r   Úfirerˆ   r
   rO   r„   rA   rF   r/   r/   r0   Útest_cmap_opts_by_nameÚ   s    z"TestOptions.test_cmap_opts_by_namec                 C   s:   | j jjddddd}t d|d¡}|  |jd d¡ d S )	Nr   r   r   r‹   )r=   Zcolormapr
   rO   r„   rA   rF   r/   r/   r0   Útest_colormap_opts_by_nameß   s    z&TestOptions.test_colormap_opts_by_namec                 C   sB   | j jjdddg d¢d}t d|d¡}|  |jd g d¢¡ d S )	Nr   r   r   )ZredZblueZgreenrˆ   r
   rO   r„   rA   rF   r/   r/   r0   Útest_cmap_opts_as_a_listä   s    z$TestOptions.test_cmap_opts_as_a_list)Zaspect)Zdata_aspectc                 C   sd   | j jf dddœ|di¤Ž}t d|d¡j}|  || d¡ |  | d¡d ¡ |  | d¡d ¡ d S )	Nr   r   )r   r   r   r
   r?   re   rc   )r*   r.   r   rC   rE   rD   ri   ©r,   Úoptr?   rG   r/   r/   r0   Útest_aspecté   s
    zTestOptions.test_aspectc                 C   sh   | j jf ddddœ|di¤Ž}tj d|d¡j}|  || d¡ |  | d¡d¡ |  | d	¡d ¡ d S )
Nr   r   é–   )r   r   re   r   r
   r?   re   rc   )r*   r.   r#   r   rC   rE   rD   ri   r   r/   r/   r0   Útest_aspect_and_widthñ   s
    z!TestOptions.test_aspect_and_widthc                 C   s‚   dd l }|jg d¢g d¢g d¢gg d¢d}|jjddd	d
}t d|d¡}|  |jd d¡ t d|d¡}|  |jd d¡ d S )Nr   r   r   r   r    r   r   r   r   r`   r
   r?   Ú	symmetricTrO   r„   r‰   )r!   r)   r.   rB   r   rC   rD   rE   )r,   r-   r*   r?   Ú	plot_optsÚ
style_optsr/   r/   r0   Útest_symmetric_dataframeù   s    ÿz$TestOptions.test_symmetric_dataframec                 C   sX   | j jjdddd}t d|d¡}|  |jd d¡ t d|d	¡}|  |jd
 d¡ d S )Nr   r   r   r`   r
   r?   r”   TrO   r„   r‰   ©r+   r.   rB   r   rC   rD   rE   ©r,   r?   r•   r–   r/   r/   r0   Ú#test_symmetric_is_deduced_dataframe  s
    z/TestOptions.test_symmetric_is_deduced_dataframec                 C   sZ   | j jjddddd}t d|d¡}|  |jd d¡ t d|d	¡}|  |jd
 d¡ d S )Nr   r   r   T©r=   r”   r
   r?   r”   rO   r„   r‰   rA   r™   r/   r/   r0   Útest_symmetric_from_opts
  s
    z$TestOptions.test_symmetric_from_optsc                 C   sZ   | j jjddddd}t d|d¡}|  |jd d¡ t d|d	¡}|  |jd
 d¡ d S )Nr   r   r   Fr›   r
   r?   r”   rO   r„   r†   r˜   r™   r/   r/   r0   Ú(test_symmetric_from_opts_does_not_deduce  s
    z4TestOptions.test_symmetric_from_opts_does_not_deducec                 C   s\   | j jjddddd}t d|d¡}|  |j d¡d ¡ t d|d	¡}|  |jd
 d¡ d S )Nr   r   r   )r   r   )r=   Zclimr
   r?   r”   rO   r„   r†   )r+   r.   rB   r   rC   rD   rE   ri   r™   r/   r/   r0   Ú,test_if_clim_is_set_symmetric_is_not_deduced  s
    z8TestOptions.test_if_clim_is_set_symmetric_is_not_deducedc                 C   st   | j jjddddddd}t d|d	¡}|  |jd
 d¡ |  |jd d¡ |  |jd d¡ |  |jd d¡ d S )Nr   r   r   r   r   T)Ú	bandwidthÚcutÚlevelsÚfilledr
   r?   rŸ   r    r¡   r¢   )r*   r.   Z	bivariater   rC   rD   rE   rF   r/   r/   r0   Útest_bivariate_opts  s    zTestOptions.test_bivariate_optsc                 C   s^   | j jjddddd}t d|d¡}|  |jd d¡ |  |jd	 d¡ |  |jd
 d¡ d S )Nr   r   r   T)rŸ   r    r¢   r
   r?   rŸ   r    r¢   )r*   r.   Zkder   rC   rD   rE   rF   r/   r/   r0   Útest_kde_opts'  s
    zTestOptions.test_kde_opts)/Ú__name__Ú
__module__Ú__qualname__r1   r9   rH   rJ   r   ÚexpandrN   rT   rW   rY   r[   r]   r^   r_   rj   rq   rr   rt   rw   ry   rz   r|   r   r}   r~   r   r‚   rƒ   r…   r‡   rŠ   rŒ   r   rŽ   r‘   r“   r—   rš   rœ   r   rž   r£   r¤   Ú__classcell__r/   r/   r:   r0   r	      sf   







		



r	   )Zunittestr   r   r   Z	holoviewsr   Zholoviews.core.optionsr   r   Zholoviews.element.comparisonr   r#   r	   r/   r/   r/   r0   Ú<module>   s   