a
    ~¤b…  ã                   @   s  d Z ddlmZ ddlZddlZddlmZ ddlm	Z	 ddlm
Z
 ddlmZmZmZmZ ddlmZ dd	lmZ dd
lmZ zddlmZ W n   dZY n0 zddlmZ W n   dZY n0 dgerÒdgng  ZddlmZ G dd„ de	ƒZG dd„ deƒZdS )z-
Unit tests of the helper functions in utils
é    )ÚSkipTestN)Únotebook_extension)ÚComparisonTestCase)ÚStore)ÚoutputÚoptsÚOutputSettingsÚOptions)ÚOrderedDict)Ú
OptionTree)ÚCommManager)Úmpl)ÚbokehÚ
matplotlibr   é   )ÚLoggingComparisonTestCasec                       sP   e Zd Z‡ fdd„Z‡ fdd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	‡  Z
S )ÚTestOutputUtilc                    sT   t tŽ  dt_tj ¡ tjd< tr2tj	 ¡ tjd< t
tj ¡ ƒt_tt| ƒ ¡  d S ©Nr   r   )r   ÚBACKENDSr   Úcurrent_backendr   ÚMPLRendererÚinstanceÚ	renderersr   ÚBokehRendererr
   r   ÚdefaultsÚitemsÚoptionsÚsuperr   ÚsetUp©Úself©Ú	__class__© ú=lib/python3.9/site-packages/holoviews/tests/util/testutils.pyr   #   s    zTestOutputUtil.setUpc                    s\   t j ¡ tjd< tr$tj ¡ tjd< ttj	 
¡ ƒt_tj ¡ D ]
}t|_q>tt| ƒ ¡  d S r   )r   r   r   r   r   r   r   r
   r   r   r   r   Úvaluesr   Zcomm_managerr   r   ÚtearDown)r    Zrendererr!   r#   r$   r&   -   s    zTestOutputUtil.tearDownc                 C   s8   |   tj dd ¡d ¡ tdƒ |   tj dd ¡d¡ d S )NÚfigú	fig='svg'Zsvg©ÚassertEqualr   r   Úgetr   r   r#   r#   r$   Útest_output_util_svg_string6   s    z*TestOutputUtil.test_output_util_svg_stringc                 C   s:   |   tj dd ¡d ¡ tdd |   tj dd ¡d¡ d S )Nr'   Zpng)r'   r)   r   r#   r#   r$   Útest_output_util_png_kwargs;   s    
z*TestOutputUtil.test_output_util_png_kwargsc                 C   sH   t d u rtdƒ‚|  tj dd ¡d ¡ tdƒ |  tj dd ¡d¡ d S )Nú#Bokeh needed to test backend switchÚbackendzbackend='bokeh'r   ©r   r   r*   r   r   r+   r   r   r#   r#   r$   Útest_output_util_backend_string@   s
    z.TestOutputUtil.test_output_util_backend_stringc                 C   sJ   t d u rtdƒ‚|  tj dd ¡d ¡ tdd |  tj dd ¡d¡ d S )Nr.   r/   r   )r/   r0   r   r#   r#   r$   Útest_output_util_backend_kwargsG   s
    
z.TestOutputUtil.test_output_util_backend_kwargsc                 C   s   |   tddƒd¡ d S )Nr(   é   )r*   r   r   r#   r#   r$   Útest_output_util_object_noopN   s    z+TestOutputUtil.test_output_util_object_noop)Ú__name__Ú
__module__Ú__qualname__r   r&   r,   r-   r1   r2   r4   Ú__classcell__r#   r#   r!   r$   r   !   s   
	r   c                       sd   e Zd ZdZ‡ fdd„Z‡ fdd„Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Z‡  ZS )ÚTestOptsUtilz2
    Mirrors the magic tests in TestOptsMagic
    c                    s<   t j| _dt _ttt  ¡  ¡ ƒtjd| _	t
t| ƒ ¡  d S )Nr   )Úgroups)r   r   r/   r   Úsortedr   r   r	   Z_option_groupsÚ
store_copyr   r9   r   r   r!   r#   r$   r   W   s    ÿzTestOptsUtil.setUpc                    s>   | j t_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#   r$   Ú
<dictcomp>a   ó    z)TestOptsUtil.tearDown.<locals>.<dictcomp>)
r/   r   r   r   r<   Z_custom_optionsÚkeysr   r9   r&   r   r!   r#   r$   r&   ^   s    zTestOptsUtil.tearDownc                 C   sp   t jtj dd¡dd}|  |jd ¡ td|ƒ |  |jd ¡ |  t	 
d|d¡j dd ¡d¡ | j d	d
¡ d S )Né   Úmat1©ÚnamezImage (cmap='hot')r   ZstyleÚcmapZhotÚWARNINGú:Double positional argument signature of opts is deprecated©ÚhvZImageÚnpZrandomZrandr*   Úidr   ZassertNotEqualr   Zlookup_optionsr   r+   Zlog_handlerZassertContains©r    rD   r#   r#   r$   Útest_cell_opts_util_styled   s    
ÿÿþz&TestOptsUtil.test_cell_opts_util_stylec                 C   sp   t jtj dd¡dd}|  |jd ¡ td|ƒ |  |jd ¡ |  t	 
d|d¡j dd¡d	¡ | j d
d¡ d S )NrC   rD   rE   zImage [show_title=False]r   ZplotZ
show_titleTFrH   rI   rJ   rN   r#   r#   r$   Útest_cell_opts_util_ploto   s    
ÿÿþz%TestOptsUtil.test_cell_opts_util_plotc                 C   sp   t jtj dd¡dd}|  |jd ¡ td|ƒ |  |jd ¡ |  t	 
d|d¡j dd¡d¡ | j d	d
¡ d S )NrC   rD   rE   zImage {+axiswise}r   ZnormZaxiswiseTrH   rI   rJ   rN   r#   r#   r$   Útest_cell_opts_util_norm{   s    
ÿÿþz%TestOptsUtil.test_cell_opts_util_normc                 C   s&   d}ddg}t  |¡}|  ||¡ d S )NzBBivariate [bandwidth=0.5] (cmap='jet') Points [logx=True] (size=2)ú)opts.Bivariate(bandwidth=0.5, cmap='jet')úopts.Points(logx=True, size=2)©r   Ú_builder_reprsr*   ©r    ÚmagicÚexpectedÚreprsr#   r#   r$   Útest_opts_builder_repr†   s    ÿ
z#TestOptsUtil.test_opts_builder_reprc                 C   s&   d}ddg}t  |¡}|  ||¡ d S )NzH%opts Bivariate [bandwidth=0.5] (cmap='jet') Points [logx=True] (size=2)rR   rS   rT   rV   r#   r#   r$   Ú!test_opts_builder_repr_line_magic   s    ÿ
z.TestOptsUtil.test_opts_builder_repr_line_magicc                 C   s&   d}ddg}t  |¡}|  ||¡ d S )NzI%%opts Bivariate [bandwidth=0.5] (cmap='jet') Points [logx=True] (size=2)rR   rS   rT   rV   r#   r#   r$   Ú!test_opts_builder_repr_cell_magic”   s    ÿ
z.TestOptsUtil.test_opts_builder_repr_cell_magicc                 C   s>   t ddddt ddddg}d	d
g}t |¡}|  ||¡ d S )NzBivariate.Test.Exampleg      à?ZBlues)Z	bandwidthrG   ZPointsr   T)ÚsizeZlogxz;opts.Bivariate('Test.Example', bandwidth=0.5, cmap='Blues')rS   )r	   r   rU   r*   )r    r   rX   rY   r#   r#   r$   Ú%test_opts_builder_repr_options_dotted›   s    ÿÿ
z2TestOptsUtil.test_opts_builder_repr_options_dotted)r5   r6   r7   Ú__doc__r   r&   rO   rP   rQ   rZ   r[   r\   r^   r8   r#   r#   r!   r$   r9   R   s   r9   )r_   Zunittestr   ZnumpyrL   Z	holoviewsrK   r   Zholoviews.element.comparisonr   r   Zholoviews.utilr   r   r   r	   Zholoviews.corer
   Zholoviews.core.optionsr   Zpyviz_commsr   Zholoviews.plottingr   r   r   Zutilsr   r   r9   r#   r#   r#   r$   Ú<module>   s,   

1