
    e                         d 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
mZ ddlmZmZ ddlmZmZmZmZ d	d
gZddlmZ 	 ddlZn# e$ r dZY nw xY w G d de          Z G d de          ZdS )z-
Unit tests of the helper functions in utils
    )SkipTest)CommManager)Storenotebook_extension)
OptionTree)ComparisonTestCase)bokehmpl)OptionsOutputSettingsoptsoutput
matplotlibr	      )LoggingComparisonTestCaseNc                   F     e Zd Z fdZ fdZd Zd Zd Zd Zd Z	 xZ
S )TestOutputUtilc                    t           t          d          t          t            dt          _        t          j                                        t          j	        d<   t          j                                        t          j	        d<   t          t          j                                                  t          _        t#                                                       d S )NzJupyter Notebook not availabler   r	   )notebookr   r   BACKENDSr   current_backendr
   MPLRendererinstance	renderersr	   BokehRendererdictr   defaultsitemsoptionssupersetUpself	__class__s    ?lib/python3.11/site-packages/holoviews/tests/util/test_utils.pyr!   zTestOutputUtil.setUp   s    ;<<<H%% ,(+(@(@(B(B%#(#6#?#?#A#A "&~'>'D'D'F'F"G"G    c                    t           j                                        t          j        d<   t
          j                                        t          j        d<   t          t          j	        
                                          t          _        t          j                                        D ]}t          |_        t                                                       d S )Nr   r	   )r
   r   r   r   r   r	   r   r   r   r   r   r   valuesr   comm_managerr    tearDown)r#   rendererr$   s     r%   r*   zTestOutputUtil.tearDown%   s    (+(@(@(B(B%#(#6#?#?#A#A "&~'>'D'D'F'F"G"G..00 	0 	0H$/H!!r&   c                     |                      t          j                            dd           d            t	          d           |                      t          j                            dd           d           d S )Nfig	fig='svg'svgassertEqualr   r   getr   r#   s    r%   test_output_util_svg_stringz*TestOutputUtil.test_output_util_svg_string-   sh    /33E4@@$GGG{/33E4@@%HHHHHr&   c                     |                      t          j                            dd           d            t	          d           |                      t          j                            dd           d           d S )Nr-   png)r-   r0   r3   s    r%   test_output_util_png_kwargsz*TestOutputUtil.test_output_util_png_kwargs2   sk    /33E4@@$GGG5/33E4@@%HHHHHr&   c                     |                      t          j                            dd           d            t	          d           |                      t          j                            dd           d           d S )Nbackendzbackend='bokeh'r	   r0   r3   s    r%   test_output_util_backend_stringz.TestOutputUtil.test_output_util_backend_string7   si    /33ItDDdKKK !!!/33ItDDgNNNNNr&   c                     |                      t          j                            dd           d            t	          d           |                      t          j                            dd           d           d S )Nr9   r	   )r9   r0   r3   s    r%   test_output_util_backend_kwargsz.TestOutputUtil.test_output_util_backend_kwargs<   sk    /33ItDDdKKKw/33ItDDgNNNNNr&   c                 N    |                      t          dd          d           d S )Nr.      )r1   r   r3   s    r%   test_output_util_object_noopz+TestOutputUtil.test_output_util_object_noopA   s(    A..22222r&   )__name__
__module____qualname__r!   r*   r4   r7   r:   r<   r?   __classcell__r$   s   @r%   r   r      s        	 	 	 	 	    I I I
I I I
O O O
O O O
3 3 3 3 3 3 3r&   r   c                   D     e Zd ZdZ fdZ fdZd Zd Zd Zd Z	 xZ
S )TestOptsUtilz2
    Mirrors the magic tests in TestOptsMagic
    c                 "   t           j        | _        dt           _        t          t	          t          j                                                              t          j                  | _	        t                                                       d S )Nr   )groups)r   r   r9   r   sortedr   r   r   _option_groups
store_copyr    r!   r"   s    r%   r!   zTestOptsUtil.setUpJ   se    , ,$VEMOO,A,A,C,C%D%D,3,BD D Dr&   c                    | j         t          _        t          j        | j                   d t          j                                        D             t          _        t                                                       d S )N)valc                     i | ]}|i S  rO   ).0ks     r%   
<dictcomp>z)TestOptsUtil.tearDown.<locals>.<dictcomp>T   s     L L L!2 L L Lr&   )	r9   r   r   r   rK   _custom_optionskeysr    r*   r"   s    r%   r*   zTestOptsUtil.tearDownQ   sc     $$/**** L Lu/D/I/I/K/K L L Lr&   c                 f    d}ddg}t          j        |          }|                     ||           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_reprsr1   r#   magicexpectedreprss       r%   test_opts_builder_reprz#TestOptsUtil.test_opts_builder_reprW   s@    S>35#E**)))))r&   c                 f    d}ddg}t          j        |          }|                     ||           d S )NzH%opts Bivariate [bandwidth=0.5] (cmap='jet') Points [logx=True] (size=2)rV   rW   rX   rZ   s       r%   !test_opts_builder_repr_line_magicz.TestOptsUtil.test_opts_builder_repr_line_magic^   s@    Y>35#E**)))))r&   c                 f    d}ddg}t          j        |          }|                     ||           d S )NzI%%opts Bivariate [bandwidth=0.5] (cmap='jet') Points [logx=True] (size=2)rV   rW   rX   rZ   s       r%   !test_opts_builder_repr_cell_magicz.TestOptsUtil.test_opts_builder_repr_cell_magice   s@    Z>35#E**)))))r&   c                     t          ddd          t          ddd          g}d	d
g}t          j        |          }|                     ||           d S )NzBivariate.Test.Exampleg      ?Blues)	bandwidthcmapPointsr   T)sizelogxz;opts.Bivariate('Test.Example', bandwidth=0.5, cmap='Blues')rW   )r   r   rY   r1   )r#   r   r\   r]   s       r%   %test_opts_builder_repr_options_dottedz2TestOptsUtil.test_opts_builder_repr_options_dottedl   sg    3sQQQ8!$7779P35#G,,)))))r&   )r@   rA   rB   __doc__r!   r*   r^   r`   rb   rj   rC   rD   s   @r%   rF   rF   E   s                 * * ** * ** * ** * * * * * *r&   rF   )rk   unittestr   pyviz_commsr   	holoviewsr   r   holoviews.core.optionsr   holoviews.element.comparisonr   holoviews.plottingr	   r
   holoviews.utilr   r   r   r   r   utilsr   r   ImportErrorr   rF   rO   r&   r%   <module>ru      s^          # # # # # # / / / / / / / / - - - - - - ; ; ; ; ; ; ) ) ) ) ) ) ) ) @ @ @ @ @ @ @ @ @ @ @ @'" - - - - - -OOOO   HHH*3 *3 *3 *3 *3' *3 *3 *3Z-* -* -* -* -*, -* -* -* -* -*s   A AA