
    eK                         d Z ddlZddlZddlmZmZ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 dd	lmZ  G d
 de          ZdS )z$
Test cases for rendering exporters
    N)DiscreteSliderFloatSliderPlayer)CommManager)Curve
DynamicMapHoloMapStore)ComparisonTestCase)PlotlyRenderer)Renderer)Streamc                   P    e 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S )PlotlyRendererTestc                 H   t           j        | _        dt           _        t          j                    | _        t          j        | _        t          j	        | _	        t          j        d          5  dt          _        t          t          _	        d d d            d S # 1 swxY w Y   d S )NplotlyERRORF)r
   current_backendprevious_backendr   instancerendererr   notebook_context	nbcontextcomm_managerparamlogging_levelr   selfs    Mlib/python3.11/site-packages/holoviews/tests/plotting/plotly/test_renderer.pysetUpzPlotlyRendererTest.setUp   s     % 5 (&/11!2$1 )) 	0 	0(-H%$/H!	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   ,BBBc                     t          j        d          5  | j        t          _        | j        t          _        d d d            n# 1 swxY w Y   | j        t          _        d S )Nr   )	r   r   r   r   r   r   r   r
   r   r   s    r   tearDownzPlotlyRendererTest.tearDown   s     )) 	6 	6(,H%$($5H!	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 !% 5s   #AAAc                 V   t          g           }| j                            |d           \  }}|                     |t          j        j                   |                     |j        d           | 	                    |j        | j                   |                     |j
        d           d S )NTr   )r   r   	_validateassertIsInstancepnpane	HoloViewsassertEqualcenterassertIsbackend)r   curveobj_s       r   test_render_staticz%PlotlyRendererTest.test_render_static#   s    b		((55Qc27#4555T***clDM222h/////    c           	         t          d t          d          D                       }| j                            |d           \  }}|                     |t
          j        j                   |                     |j	        d           |                     |j
        d           |                     |j        d           |j                            t                    }|                     t          |          d           |d         }|                     |j        t#          d t          d          D                                  d S )	Nc                 4    i | ]}|t          d d|g          S       r   .0is     r   
<dictcomp>zEPlotlyRendererTest.test_render_holomap_individual.<locals>.<dictcomp>,   (    >>>5!Q++>>>r1      Tright
individualr5   r   c                 0    g | ]}t          |          |fS  )strr8   s     r   
<listcomp>zEPlotlyRendererTest.test_render_holomap_individual.<locals>.<listcomp>5   s"    .M.M.MqA{.M.M.Mr1   )r	   ranger   r$   r%   r&   r'   r(   r)   r*   widget_locationwidget_typelayoutselectr   lenoptionsdict)r   hmapr.   r/   widgetssliders         r   test_render_holomap_individualz1PlotlyRendererTest.test_render_holomap_individual+   s   >>U1XX>>>??((t44Qc27#4555T***,g666,777*##N33Wq))).M.ME!HH.M.M.M)N)NOOOOOr1   c                     t          d t          d          D                       }| j                            |          \  }}|                     d|d                    d S )Nc                 4    i | ]}|t          d d|g          S r4   r7   r8   s     r   r;   zCPlotlyRendererTest.test_render_holomap_embedded.<locals>.<dictcomp>8   r<   r1   r=   zState"z	text/html)r	   rD   r   
componentsassertIn)r   rL   datar/   s       r   test_render_holomap_embeddedz/PlotlyRendererTest.test_render_holomap_embedded7   s\    >>U1XX>>>??-**400ah[ 122222r1   c                 z   t          d t          d          D                       }| j                            |d          \  }}|                     |t
          j        j                   |                     |j	        d           |                     |j
        d           |                     |j        d           |j                            t                    }|                     t          |          d           |d         }|                     |j        d           |                     |j        d           d S )	Nc                 4    i | ]}|t          d d|g          S r4   r7   r8   s     r   r;   zCPlotlyRendererTest.test_render_holomap_scrubber.<locals>.<dictcomp>B   r<   r1   r=   scrubberTbottomr5   r      )r	   rD   r   r$   r%   r&   r'   r(   r)   r*   rE   rF   rG   rH   r   rI   startendr   rL   r.   r/   rM   players         r   test_render_holomap_scrubberz/PlotlyRendererTest.test_render_holomap_scrubberA   s   >>U1XX>>>??((z::Qc27#4555T***,h777*555*##F++Wq)))q)))Q'''''r1   c                    t          d t          d          D                       }| j                            d                              |d          \  }}|                     |t          j        j                   |j	        
                    t                    }|                     t          |          d           |d         }|                     |j        d           d S )	Nc                 4    i | ]}|t          d d|g          S r4   r7   r8   s     r   r;   zGPlotlyRendererTest.test_render_holomap_scrubber_fps.<locals>.<dictcomp>O   r<   r1   r=   r6   )fpsrX   r5   r   i  )r	   rD   r   r   r$   r%   r&   r'   r(   rG   rH   r   r)   rI   intervalr]   s         r    test_render_holomap_scrubber_fpsz3PlotlyRendererTest.test_render_holomap_scrubber_fpsN   s    >>U1XX>>>??''A'..88zJJQc27#4555*##F++Wq)))#.....r1   c                    t          d t          d          D                       }| j                            d                              |d           \  }}|                     |t          j        j                   | 	                    |j
        d           | 	                    |j        d           | 	                    |j        d           d S )Nc                 4    i | ]}|t          d d|g          S r4   r7   r8   s     r   r;   zUPlotlyRendererTest.test_render_holomap_individual_widget_position.<locals>.<dictcomp>X   r<   r1   r=   top)rE   Tr?   )r	   rD   r   r   r$   r%   r&   r'   r(   r)   r*   rE   rF   )r   rL   r.   r/   s       r   .test_render_holomap_individual_widget_positionzAPlotlyRendererTest.test_render_holomap_individual_widget_positionW   s    >>U1XX>>>??'''>>HHtTTQc27#4555T***,e444,77777r1   c                 N   t          d dg          j                            d          }| j                            |d           \  }}| j                            |           |j                                        \  \  }}|j        d         d         d         d         }| 	                    |d	         d
           |j
                            t                    d         }d|_        |j        d         d         d         d         }| 	                    |d	         d           d S )Nc                 &    t          dd| g          S Nr5   r6   r7   ys    r   <lambda>zEPlotlyRendererTest.test_render_dynamicmap_with_dims.<locals>.<lambda>`       E1a)$4$4 r1   rm   )kdims)皙?r=   rl   figrT   r   r6   rq   g@)r   redimrD   r   r$   rR   _plotsvalueshandlesr)   rG   rH   r   value)r   dmapr.   r/   plotr'   rm   rN   s           r    test_render_dynamicmap_with_dimsz3PlotlyRendererTest.test_render_dynamicmap_with_dims_   s
   44SEBBBHNNQYNZZ((t44Q  %%%**,,$L'*3/1s###"";//2L'*3/1s#####r1   c                 0    t          j        dd                      }t          d dg|g          }| j                            |d           \  }}| j                            |           |j                                        \  \  }}|j        d         d         d	         d         }| 	                    |d         d           |
                    d
           |j        d         d         d	         d         }| 	                    |d         d
           d S )NCustomr6   rl   c                 &    t          dd| g          S rk   r7   rl   s    r   rn   zGPlotlyRendererTest.test_render_dynamicmap_with_stream.<locals>.<lambda>n   ro   r1   rm   rp   streamsrr   rT   r      )r   definer   r   r$   rR   rt   ru   rv   r)   event)r   streamrx   r.   r/   ry   r'   rm   s           r   "test_render_dynamicmap_with_streamz5PlotlyRendererTest.test_render_dynamicmap_with_streaml   s   -x1---//44SEF8TTT((t44Q  %%%**,,$L'*3/1q!!!qL'*3/1q!!!!!r1   c                     t          j        dd                      }t          d ddg|g          j                            g d	          }| j                            |d           \  }}| j                            |           |j                                        \  \  }}|j	        d
         d         d         d         }| 
                    |d         d           |                    d           |j	        d
         d         d         d         }| 
                    |d         d           |j	        d
         d         d         d         }| 
                    |d         d           |j                            t                    d         }d|_        |j	        d
         d         d         d         }| 
                    |d         d           d S )Nr|   r6   rl   c                 &    t          | d|g          S )Nr5   r7   )xrm   s     r   rn   zLPlotlyRendererTest.test_render_dynamicmap_with_stream_dims.<locals>.<lambda>{   s    uaAY'7'7 r1   r   rm   r~   )r5   r6   r   )r   rr   rT   r   r   r5   )r   r   r   rs   ru   r   r$   rR   rt   rv   r)   r   rG   rH   r   rw   )	r   r   rx   r.   r/   ry   r'   rm   rN   s	            r   'test_render_dynamicmap_with_stream_dimsz:PlotlyRendererTest.test_render_dynamicmap_with_stream_dimsy   s   -x1---//77Sz#)(, , ,,1&&999&2E2E 	((t44Q  %%%**,,$L'*3/1q!!!qL'*3/1q!!!L'*3/1q!!!"">2215L'*3/1q!!!!!r1   N)__name__
__module____qualname__r    r"   r0   rO   rU   r_   rd   rh   rz   r   r   rA   r1   r   r   r      s        0 0 06 6 60 0 0
P 
P 
P3 3 3( ( (/ / /8 8 8$ $ $" " "" " " " "r1   r   )__doc__panelr&   r   panel.widgetsr   r   r   pyviz_commsr   	holoviewsr   r   r	   r
   holoviews.element.comparisonr   holoviews.plotting.plotlyr   holoviews.plotting.rendererr   holoviews.streamsr   r   rA   r1   r   <module>r      s         = = = = = = = = = = # # # # # # 7 7 7 7 7 7 7 7 7 7 7 7 ; ; ; ; ; ; 4 4 4 4 4 4 0 0 0 0 0 0 $ $ $ $ $ ${" {" {" {" {"+ {" {" {" {" {"r1   