
    e                         d dl mZ d dlZd dlmZ 	 d dlmZ d dlmZ n# e	$ r  ed          w xY wd dl
mZ d dlmZ  G d	 d
e          Z G d de          Z G d de          Z G d de          ZdS )    )SkipTestN)Store)ipython)
IPTestCasez6Required dependencies not satisfied for testing magics)CommManager)
Compositorc                   (     e Zd Z fdZ fdZ xZS )ExtensionTestCasec                     t                                                       | j                            dd           t          j                                        D ]}t          |_        d S )Nload_extholoviews.ipython)	supersetUpiprun_line_magicr   	renderersvaluesr   comm_manager)selfrenderer	__class__s     Clib/python3.11/site-packages/holoviews/tests/ipython/test_magics.pyr   zExtensionTestCase.setUp   s_    z+>???..00 	0 	0H$/H!!	0 	0    c                     d t           j                                        D             t           _        | j                            dd           | `t                                                       d S )Nc                     i | ]}|i S  r   ).0ks     r   
<dictcomp>z.ExtensionTestCase.tearDown.<locals>.<dictcomp>   s     L L L!2 L L Lr   
unload_extr   )r   _custom_optionskeysr   r   r   tearDownr   r   s    r   r#   zExtensionTestCase.tearDown   sb     L Lu/D/I/I/K/K L L L|-@AAAGr   )__name__
__module____qualname__r   r#   __classcell__r   s   @r   r
   r
      sQ        0 0 0 0 0        r   r
   c                   L     e Zd Z fdZ fdZd Zd Zd Zd Zd Z	d Z
 xZS )	TestOptsMagicc                     t                                                       |                     d           |                     d           d S )Nimport numpy as npz.from holoviews import DynamicMap, Curve, Image)r   r   cellr$   s    r   r   zTestOptsMagic.setUp"   s@    		&'''		BCCCCCr   c                 r    t          j        i            t                                                       d S )N)val)r   custom_optionsr   r#   r$   s    r   r#   zTestOptsMagic.tearDown'   s3    2&&&&r   c                     |                      d           |                     |                     d          j        d            |                     ddd           |                     |                     d          j        d           dt          j                    v s
J d            |                     t          j        d|                     d          d          j        	                    d	d           d
           d S )N.mat1 = Image(np.random.rand(5,5), name='mat1')mat1optsz Image (cmap='hot')r   !Custom OptionTree creation failed
matplotlibstylecmaphot
r.   assertEqual
get_objectid
cell_magicr   r1   lookup_optionsoptionsgetr   s    r   test_cell_opts_stylez"TestOptsMagic.test_cell_opts_style+   s    		BCCC003T::: 5v>>>003Q777E(*****,O*** !%!8!8'C CCJ33vVZK[K[\a	c 	c 	c 	c 	cr   c                    |                      d           |                     |                     d          j        d            |                     ddd           |                     |                     d          j        d           dt          j                    v s
J d            t          j        d|                     d          d         d          j        }|                     |d	d
dd           d S )Nzdmap = DynamicMap(lambda X: Curve(np.random.rand(5,2), name='dmap'), kdims=['x']).redim.range(x=(0, 10)).opts({'Curve': dict(linewidth=2, color='black')})dmapr5   z Curve (linewidth=3 alpha=0.5)r   r6   r7   r8      g      ?black)	linewidthalphacolor	r.   r<   r=   r>   r?   r   r1   r@   rA   r   r5   s     r   test_cell_opts_style_dynamicz*TestOptsMagic.test_cell_opts_style_dynamic8   s    		 ^ 	_ 	_ 	_ 	003T::: @&III003Q777E(*****,O***#L$//&2I2I!2LgVV^QwOOPPPPPr   c                     |                      d           |                     |                     d          j        d            |                     ddd           |                     |                     d          j        d           dt          j                    v s
J d            |                     t          j        d|                     d          d          j        	                    d	d
          d           d S )Nr3   r4   r5   z Image [aspect=3/4]r   r6   r7   plotaspectFg      ?r;   rC   s    r   "test_cell_opts_plot_float_divisionz0TestOptsMagic.test_cell_opts_plot_float_divisionF   s    		BCCC003T::: 5v>>>003Q777E(*****,O*** !%!8!8&B BBI##hW\J]J]_d	f 	f 	f 	f 	fr   c                     |                      d           |                     |                     d          j        d            |                     ddd           |                     |                     d          j        d           dt          j                    v s
J d            |                     t          j        d|                     d          d          j        	                    d	d
          d           d S )Nr3   r4   r5   z Image [show_title=False]r   r6   r7   rP   
show_titleTFr;   rC   s    r   test_cell_opts_plotz!TestOptsMagic.test_cell_opts_plotT   s    		BCCC003T::: ;VDDD003Q777E(*****,O*** !%!8!8&B BBI##l[_J`J`af	h 	h 	h 	h 	hr   c                    |                      d           |                     |                     d          j        d            |                     ddd           |                     |                     d          j        d           dt          j                    v s
J d            t          j        d|                     d          d         d          j        }|                     |d	d d
d           d S )Nzdmap = DynamicMap(lambda X: Image(np.random.rand(5,5), name='dmap'), kdims=['x']).redim.range(x=(0, 10)).opts({'Image': dict(xaxis='top', xticks=3)})rF   r5   z! Image [xaxis=None yaxis='right']r   r6   r7   rP   rG   right)xticksxaxisyaxisrL   rM   s     r   test_cell_opts_plot_dynamicz)TestOptsMagic.test_cell_opts_plot_dynamicb   s    		 Y 	Z 	Z 	Z 	003T::: CVLLL003Q777E(*****,O***#L$//&2I2I!2LfUU]!dWMMNNNNNr   c                     |                      d           |                     |                     d          j        d            |                     ddd           |                     |                     d          j        d           dt          j                    v s
J d            |                     t          j        d|                     d          d          j        	                    d	d
          d
           d S )Nr3   r4   r5   z Image {+axiswise}r   r6   r7   normaxiswiseTr;   rC   s    r   test_cell_opts_normz!TestOptsMagic.test_cell_opts_normp   s    		BCCC003T::: 4f===003Q777E(*****,O*** !%!8!8&B BBI##jY]J^J^`d	f 	f 	f 	f 	fr   )r%   r&   r'   r   r#   rD   rN   rR   rU   r[   r_   r(   r)   s   @r   r+   r+       s        D D D D D
    c c cQ Q Qf f fh h hO O Of f f f f f fr   r+   c                   H     e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
 xZS )	TestOutputMagicc                 H    t                                                       d S N)r   r#   r$   s    r   r#   zTestOutputMagic.tearDown   s    r   c                     |                      dd           |                     t          j        j        j                            dd           d           d S )Noutputz	fig='svg'figsvg
line_magicr<   hvutilOutputSettingsrA   rB   rC   s    r   test_output_svgzTestOutputMagic.test_output_svg   sJ    +.../7;;E4HH%PPPPPr   c                     |                      dd           |                     t          j        j        j                            dd           d           d S )Nre   zholomap='scrubber'holomapscrubberrh   rC   s    r   test_output_holomap_scrubberz,TestOutputMagic.test_output_holomap_scrubber   sK    "6777/7;;ItLLjYYYYYr   c                     |                      dd           |                     t          j        j        j                            dd           d           d S )Nre   zholomap='widgets'ro   widgetsrh   rC   s    r   test_output_holomap_widgetsz+TestOutputMagic.test_output_holomap_widgets   sK    "5666/7;;ItLLiXXXXXr   c                     |                      dd           |                     t          j        j        j                            dd           d           d S )Nre   zwidgets='live'rs   liverh   rC   s    r   test_output_widgets_livez(TestOutputMagic.test_output_widgets_live   sK    "2333/7;;ItLLfUUUUUr   c                     |                      dd           |                     t          j        j        j                            dd           d           d S )Nre   zfps=100fpsd   rh   rC   s    r   test_output_fpszTestOutputMagic.test_output_fps   sJ    ),,,/7;;E4HH#NNNNNr   c                     |                      dd           |                     t          j        j        j                            dd           d           d S )Nre   zsize=50size2   rh   rC   s    r   test_output_sizez TestOutputMagic.test_output_size   sJ    ),,,/7;;FDII2NNNNNr   c                     |                      dd           |                     t          j        j        j                            dd           d            d S )Nre   zsize=-50r}   rh   rC   s    r   test_output_invalid_sizez(TestOutputMagic.test_output_invalid_size   sJ    *---/7;;FDII4PPPPPr   )r%   r&   r'   r#   rm   rq   rt   rw   r{   r   r   r(   r)   s   @r   ra   ra      s            Q Q QZ Z ZY Y YV V V
O O OO O OQ Q Q Q Q Q Qr   ra   c                   4     e Zd Z fdZ fdZd Zd Z xZS )TestCompositorMagicc                     t                                                       |                     d           |                     d           t          t          j                  | _        g t          j        d d <   d S )Nr-   z#from holoviews.element import Image)r   r   r.   listr   definitionsr$   s    r   r   zTestCompositorMagic.setUp   sd    		&'''		7888
 677$&
qqq!!!r   c                 t    | j         t          j         d d <   t                                                       d S rc   )r   r   r   r#   r$   s    r   r#   zTestCompositorMagic.tearDown   s3    $($4
qqq!r   c                 ,   d}|                      d|           d t          j        D             }|                     t	          |          d           |                     |d         j        d           |                     |d         j        d           d S )Nz/ display factory(Image * Image * Image) RGBTEST
compositorc                 (    g | ]}|j         d k    |S )RGBTESTgroupr   cs     r   
<listcomp>zJTestCompositorMagic.test_display_compositor_definition.<locals>.<listcomp>   $    OOOQAGY<N<Nq<N<N<Nr      r   r   displayri   r   r   r<   lenr   moder   
definitioncompositorss      r   "test_display_compositor_definitionz6TestCompositorMagic.test_display_compositor_definition   s    F
j111OO*"8OOO[))1---Q-y999Q,i88888r   c                 ,   d}|                      d|           d t          j        D             }|                     t	          |          d           |                     |d         j        d           |                     |d         j        d           d S )Nz& data transform(Image * Image) HCSTESTr   c                 (    g | ]}|j         d k    |S )HCSTESTr   r   s     r   r   zGTestCompositorMagic.test_data_compositor_definition.<locals>.<listcomp>   r   r   r   r   r   datar   r   s      r   test_data_compositor_definitionz3TestCompositorMagic.test_data_compositor_definition   s    =
j111OO*"8OOO[))1---Q-y999Q,f55555r   )r%   r&   r'   r   r#   r   r   r(   r)   s   @r   r   r      so        ' ' ' ' '    9 9 96 6 6 6 6 6 6r   r   )unittestr   	holoviewsrj   holoviews.core.optionsr   r   holoviews.ipythonr   ImportErrorpyviz_commsr   holoviews.operationr   r
   r+   ra   r   r   r   r   <module>r      s             ( ( ( ( ( (M!!!!!!,,,,,,, M M M
(K
L
LLM $ # # # # # * * * * * *    
   [f [f [f [f [f% [f [f [f~ Q  Q  Q  Q  Q'  Q  Q  QF6 6 6 6 6+ 6 6 6 6 6s    0