
    e                        d dl 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 dej        _        n# e$ r dZY nw xY wej                            edu d          Zd dlZd dlZd dlmZ d dlmZmZ ed             Zed             Z ed             Z!ed	             Z"ed
             Z#ed             Z$ed             Z%ed             Z&ed             Z'ed             Z(ed             Z)ed             Z*dS )    Nzrequires plotly)reason)
PlotlyPlot)PaneBasePlotlyc                      t          j        ddgddg          } t          j        | g          }t          j        |          t
          u sJ d S Nr            xy)goScatterFigurer   get_pane_typer   )tracefigs     <lib/python3.11/site-packages/panel/tests/pane/test_plotly.py%test_get_plotly_pane_type_from_figurer      sQ    J!QAq6***E
)UG

C!#&&&000000    c                  v    t          j        ddgddg          } t          j        | g          t          u sJ d S r   r   r   r   r   r   r   s    r   %test_get_plotly_pane_type_from_tracesr      sB    J!QAq6***E!5'**f444444r   c                  t    t          j        ddgddg          } t          j        |           t          u sJ d S r   r   r   s    r   $test_get_plotly_pane_type_from_tracer   $   s@    J!QAq6***E!%((F222222r   c                    t          j        ddgddgd          }t          |gddid	          }|                    | |
          }t	          |t
                    sJ |j        |j        d                  d         |u sJ t          |j	                  dk    sJ |j	        d         d         dk    sJ |j	        d         d         ddgk    sJ |j	        d         d         ddgk    sJ |j
        ddik    sJ t          |j                  dk    sJ |j        d         j	        i k    sJ t          j        ddgddg          }|ddid	|_        t          |j	                  dk    sJ |j	        d         d         dk    sJ |j	        d         d         ddgk    sJ |j	        d         d         ddgk    sJ |j
        ddik    sJ t          |j                  dk    sJ |j        d         j	        i k    sJ |j        |j        d                  d         |u sJ |                    |           |j        i k    sJ d S )Nr   r	   r
   r   Test)r   r   uidwidth^  datalayoutcommidtypescatterr   r         r   bar)r   r   r   get_root
isinstancer   _modelsreflenr$   r%   data_sourcesBarobject_cleanup)documentr'   r   panemodel	new_traces         r   test_plotly_pane_single_tracer;   *   s   J!QAq6v666EE7wn==>>D MM(M..EeZ(((((<	$(+u4444uz??a:a= I----:a=!Q'''':a=!Q''''<GS>))))u!""a''''a %++++ !QAq6***I$#??DKuz??a:a= E)))):a=!Q'''':a=!Q''''<GS>))))u!""a''''a %++++<	$(+u4444 	MM%<2r   c                 p   d t          dd          D             }t          j                            d          }t	          j        ||          g}t	          j        |          }t          |          }|                    | |          }t          d |j
        d         d         D                       sJ d S )	Nc                 :    g | ]}t          j        d d|          S i  r	   dtdatetime.0is     r   
<listcomp>z<test_plotly_pane_datetime_list_transform.<locals>.<listcomp>N   s&    ;;;R[q!$$;;;r   r	      
   r   c              3   @   K   | ]}t          |t                    V  d S Nr/   strrC   vs     r   	<genexpr>z;test_plotly_pane_datetime_list_transform.<locals>.<genexpr>U   ,      >>az!S!!>>>>>>r   r   r   rangenprandomrandnr   r   r   r   r.   allr$   r7   r'   indexr$   tracesr   r8   r9   s           r   (test_plotly_pane_datetime_list_transformrY   L   s    ;;eArll;;;E9??2Dj5D)))*F
)F

C#;;DMM(D))E>>5:a=+=>>>>>>>>>>r   c                    t          j        d t          dd          D                       }t           j                            d          }t          j        ||          g}t          j        |          }t          |          }|	                    | |          }|j
        d         j        d         d         j        j        dk    sJ d S )	Nc                 :    g | ]}t          j        d d|          S r>   r?   rB   s     r   rE   z=test_plotly_pane_datetime_array_transform.<locals>.<listcomp>Z   &    DDD!bk$1--DDDr   r	   rF   rG   r   r   r   U)rR   arrayrQ   rS   rT   r   r   r   r   r.   r3   r$   dtypekindrV   s           r   )test_plotly_pane_datetime_array_transformra   X   s    HDDuQ||DDDEEE9??2Dj5D)))*F
)F

C#;;DMM(D))Ea %c*1-38C??????r   c                 p   d t          dd          D             }t          j                            d          }t	          j        ||          g}t	          j        |          }t          |          }|                    | |          }t          d |j
        d         d         D                       sJ d S )	Nc           	      ^    g | ]*}t          j        t          j        d d|                    +S r>   )rR   
datetime64r@   rA   rB   s     r   rE   z>test_plotly_pane_datetime64_list_transform.<locals>.<listcomp>f   s0    JJJR]2;tQ2233JJJr   r	   rF   rG   r   c              3   @   K   | ]}t          |t                    V  d S rI   rJ   rL   s     r   rN   z=test_plotly_pane_datetime64_list_transform.<locals>.<genexpr>m   rO   r   r   r   rP   rV   s           r   *test_plotly_pane_datetime64_list_transformrf   d   s    JJU1b\\JJJE9??2Dj5D)))*F
)F

C#;;DMM(D))E>>5:a=+=>>>>>>>>>>r   c                    t          j        d t          dd          D                                           d          }t           j                            d          }t          j        ||          g}t          j        |          }t          |          }|
                    | |          }|j        d         j        d         d         j        j        d	v sJ d S )
Nc                 :    g | ]}t          j        d d|          S r>   r?   rB   s     r   rE   z?test_plotly_pane_datetime64_array_transform.<locals>.<listcomp>r   r\   r   r	   rF   zM8[us]rG   r   r   r   SU)rR   r^   rQ   astyperS   rT   r   r   r   r   r.   r3   r$   r_   r`   rV   s           r   +test_plotly_pane_datetime64_array_transformrk   p   s    HDDuQ||DDDEELLXVVE9??2Dj5D)))*F
)F

C#;;DMM(D))Ea %c*1-38D@@@@@@r   c                    t          j        t          j        ddg          t          j        ddg                    }t	          |gddid          }|                    | |          }t          |t                    sJ t          |j	                  dk    sJ |j	        d	         d
         dk    sJ d|j	        d	         vsJ d|j	        d	         vsJ |j
        ddik    sJ t          |j                  dk    sJ |j        d	         }t          j        |j	        d         d	         t          j        ddg                    sJ t          j        |j	        d         d	         t          j        ddg                    sJ t          j        t          j        ddg          t          j        ddg                    t          j        t          j        ddg          t          j        ddg                    g}|ddid|_        t          |j	                  dk    sJ |j	        d	         d
         dk    sJ d|j	        d	         vsJ d|j	        d	         vsJ |j	        d         d
         dk    sJ d|j	        d         vsJ d|j	        d         vsJ |j
        ddik    sJ t          |j                  dk    sJ |j        d	         }t          j        |j	        d         d	         t          j        ddg                    sJ t          j        |j	        d         d	         t          j        ddg                    sJ |j        d         }t          j        |j	        d         d	         t          j        ddg                    sJ t          j        |j	        d         d	         t          j        ddg                    sJ |                    |           |j        i k    sJ d S )Nr	   r
   r   r   r!   r"   r#   r&   r   r)   r*   r   r   r,         r+   r-   )r   r   rR   r^   r   r.   r/   r   r2   r$   r%   r3   array_equalr4   r5   r6   r0   )r7   r'   r   r8   r9   cdsr:   cds2s           r   $test_plotly_pane_numpy_to_cds_tracesrr   |   s   J1a&))RXq!f-=-=>>>EE7wn==>>D MM(M..EeZ(((((uz??a:a= I----ejm####ejm####<GS>))))u!""a''''

Q
C>#(3-*BHaV,<,<=====>#(3-*BHaV,<,<===== bh1v.."(Aq62B2BCCC"(Aq6**bh1v.>.>???AI$#??DKuz??a:a= I----ejm####ejm####:a= E))))ejm####ejm####<GS>))))u!""a''''

Q
C>#(3-*BHaV,<,<=====>#(3-*BHaV,<,<=====a D>$)C.+RXq!f-=-=>>>>>>$)C.+RXq!f-=-=>>>>> 	MM%<2r   c                    t          j        ddgddg          }t          t          |gddi                    }|                    | |	          }|j        d
k    sJ d|j        d         d<   |j                            d           |j        dk    sJ |	                    |           t          t          |gddi          d          }|                    | |	          }|j        dk    sJ |	                    |           d S )Nr   r	   r
   r   r   autosizeTr#   r&   stretch_bothFr%   r5   fixed)sizing_mode)
r   r   r   dictr.   rw   r5   paramtriggerr6   )r7   r'   r   r8   r9   s        r   test_plotly_autosizer{      s   J!QAq6***E$UGZ,>???@@DMM(M..E....(-DK*%Jx   ''''MM%$UGZ,>???WUUUDMM(M..E''''MM%r   c            
          dddddddddgd	dgd	d
gdd
ggid} t          j        |           }|dddddddk    sJ d S )Ng'&eRg`QF@)lonlatrG   r   coordinatesg<&{RgTF@g>&PRgYKrF@)mapbox.centermapbox.zoommapbox.bearingmapbox.pitchzmapbox._derived)r   r   r   r   )r   _clean_relayout_data)relayout_dataresults     r   test_clean_relayout_datar      s     "4<MNN#%78#%78#%67#%67	
 M (77F!3<MNN	       r   c                    t          j        g dg dd          }t          j                            d          }t          j        |d         |d                   }t          j        |gdgd	d
d
d          }t          |          } |j
        | |          }t          |j                  dk    sJ |j        d         }|j        d         |j        j        k                                    sJ |j        d         |j        j        k                                    sJ ||_        d|j        vsJ t          |j        d         d                   dk    sJ d S )N)r	   r
   r   r+   )ABCD)CountCategoryi  r   r   r   distplotg      ?Fprobability)bin_size	show_histshow_rughistnormr	   r   r   r   i  )pd	DataFramerR   rS   rT   pxr-   ffcreate_distplotr   r.   r2   r3   r$   r   valuesrU   r   r5   )	r7   r'   data_bardata_ctsbar_plot	dist_plotplotlyr9   rp   s	            r   test_plotly_swap_tracesr      sb   |lll@T@T@TUUVVHyt$$Hv,0ABBBH"	
	  I HFFOHd++Eu!""a''''

Q
CHSMX.55::<<<<<HSMX^227799999FMchsx}Q  C''''''r   )+rA   r@   pytestr   plotly.expressexpressr   plotly.figure_factoryfigure_factoryr   plotly.graph_objs
graph_objsr   	plotly.ioiopio	templatesdefault	Exceptionmarkskipifplotly_availablenumpyrR   pandasr   panel.models.plotlyr   
panel.paner   r   r   r   r   r;   rY   ra   rf   rk   rr   r{   r   r    r   r   <module>r      se       MMM&&&&&&"""""" CM   FFF;%%fn=N%OO          * * * * * * ' ' ' ' ' ' ' ' 1 1 1 5 5 5
 3 3 3
   B ? ? ? @ @ @ ? ? ? A A A ' ' 'T   *   0 ( ( ( ( (s   (3 ==