a
    bbǋ                     @   s  d dl Z d dlZd dlmZmZmZmZmZm	Z
mZmZmZmZmZmZmZmZ d dlmZmZmZmZmZ d dlmZm	Z	 d dlmZmZm Z m!Z! d dl"mZm#Z#m$Z$m%Z%m&Z&mZ d dl'm(Z(m)Z) dd	 Z*d
d Z+dd Z,dd Z-dd Z.dd Z/dd Z0dd Z1dd Z2dd Z3dd Z4dd Z5d d! Z6d"d# Z7d$d% Z8d&d' Z9d(d) Z:d*d+ Z;d,d- Z<d.d/ Z=d0d1 Z>d2d3 Z?d4d5 Z@d6d7 ZAd8d9 ZBd:d; ZCd<d= ZDd>d? ZEd@dA ZFdBdC ZGdDdE ZHdFdG ZIdHdI ZJdJdK ZKdLdM ZLdNdO ZMdPdQ ZNdRdS ZOdTdU ZPdVdW ZQdXdY ZRdZd[ ZSG d\d] d]ejTZUd^d_ ZVd`da ZWdbdc ZXddde ZYdfdg ZZdhdi Z[e(djdk Z\e(dldm Z]dndo Z^dpdq Z_drds Z`dtdu Zadvdw Zbdxdy Zcdzd{ Zdd|d} Zed~d ZfdS )    N)DivSliderSelectRangeSliderMultiSelectRowCheckboxGroupToggleButton	TextInputTabsColumnr   AutocompleteInput)PanePaneBase
MatplotlibBokehHTML)r   r   )ParamParamMethodParamFunctionJSONInit)r   
DatePickerDatetimeInputLiteralInputNumberInputr   )mpl_available
mpl_figurec                  C   s(   G dd dt j} tt| ts$J d S )Nc                   @   s   e Zd Ze ZdS )z)test_instantiate_from_class.<locals>.TestN__name__
__module____qualname__paramNumbera r%   r%   5lib/python3.9/site-packages/panel/tests/test_param.pyTest   s   r'   r"   Parameterized
isinstancer   r   r'   r%   r%   r&   test_instantiate_from_class   s    r,   c                  C   s,   G dd dt j} tt| j jts(J d S )Nc                   @   s   e Zd Ze ZdS )z-test_instantiate_from_parameter.<locals>.TestNr   r%   r%   r%   r&   r'       s   r'   r"   r)   r*   r   r$   r   r+   r%   r%   r&   test_instantiate_from_parameter   s    r.   c                  C   s*   G dd dt j} tt| j ts&J d S )Nc                   @   s   e Zd Ze ZdS )z.test_instantiate_from_parameters.<locals>.TestNr   r%   r%   r%   r&   r'   )   s   r'   r(   r+   r%   r%   r&    test_instantiate_from_parameters'   s    r/   c                  C   s*   G dd dt j} tt|  ts&J d S )Nc                   @   s   e Zd Ze ZdS )z,test_instantiate_from_instance.<locals>.TestNr   r%   r%   r%   r&   r'   2   s   r'   r(   r+   r%   r%   r&   test_instantiate_from_instance0   s    r0   c                  C   s.   G dd dt j} tt|  j jts*J d S )Nc                   @   s   e Zd Ze ZdS )z9test_instantiate_from_parameter_on_instance.<locals>.TestNr   r%   r%   r%   r&   r'   ;   s   r'   r-   r+   r%   r%   r&   +test_instantiate_from_parameter_on_instance9   s    r1   c                  C   s,   G dd dt j} tt|  j ts(J d S )Nc                   @   s   e Zd Ze ZdS )z:test_instantiate_from_parameters_on_instance.<locals>.TestNr   r%   r%   r%   r&   r'   D   s   r'   r(   r+   r%   r%   r&   ,test_instantiate_from_parameters_on_instanceB   s    r2   c                 C   s,   G dd dt j}tt| dks(J d S )Nc                   @   s   e Zd ZdS )z"test_param_pane_repr.<locals>.TestNr   r    r!   r%   r%   r%   r&   r'   M   s   r'   zParam(Test)r"   r)   reprr   )documentcommr'   r%   r%   r&   test_param_pane_reprK   s    r8   c                 C   sT   G dd dt j}tt| dgddks.J t| dgdd}t|dksPJ d S )	Nc                   @   s   e Zd Ze Ze ZdS )z.test_param_pane_repr_with_params.<locals>.TestN)r   r    r!   r"   r#   r$   br%   r%   r%   r&   r'   U   s   r'   r$   
parameterszParam(Test, parameters=['a'])ZAnother)r;   namez-Param(Test, name='Another', parameters=['a'])r4   )r6   r7   r'   	test_paner%   r%   r&    test_param_pane_repr_with_paramsS   s    r>   c                 C   s   G dd dt j}| }t|}|j| |d}t|ts<J t|jdksNJ |jd }t|tsfJ |j	d|j
d d  d ksJ d S )	Nc                   @   s   e Zd ZdS )ztest_get_root.<locals>.TestNr3   r%   r%   r%   r&   r'   b   s   r'   r7      r   z<b>z</b>)r"   r)   r   get_rootr*   BkColumnlenchildrenr   textr<   )r6   r7   r'   testr=   modeldivr%   r%   r&   test_get_root`   s    
rJ   c                 C   s|   G dd dt j}| }t|j j}|j| |d}t|ts@J t|jdksRJ |jd }t|t	sjJ |j
dksxJ d S )Nc                   @   s   e Zd ZejddZdS )ztest_single_param.<locals>.Testr   defaultNr   r    r!   r"   	Parameterr$   r%   r%   r%   r&   r'   s   s   r'   r?   r@   r   0)r"   r)   r   r$   rB   r*   rC   rD   rE   r   value)r6   r7   r'   rG   r=   rH   widgetr%   r%   r&   test_single_paramq   s    
rR   c                 C   s   G dd dt j}| }t|td}|j| |d}t|ts@J t|jdksRJ |jd j	}t|t
slJ t|jdks~J d S )Nc                   @   s   e Zd ZdS )z test_get_root_tabs.<locals>.TestNr3   r%   r%   r%   r&   r'      s   r'   Zexpand_layoutr?   r@   r   )r"   r)   r   r   rB   r*   BkTabsrD   tabschildrC   rE   )r6   r7   r'   rG   r=   rH   boxr%   r%   r&   test_get_root_tabs   s    rX   c                 C   s@  G dd dt j}| }t|}|j| |d}|jd }t|tsFJ |jdksTJ |jdksbJ |j	dkspJ |j
dks~J |jd	ksJ d
|_|jd
ksJ |j d }d|_|jdksJ |j	dksJ d|_|jdksJ || d	|_d|_d|_|jd
ksJ |jdksJ |j	dks,J |jdks<J d S )Nc                   @   s   e Zd ZejdddZdS )ztest_number_param.<locals>.Test333333?r      rL   boundsNr   r%   r%   r%   r&   r'      s   r'   r?   r@   rY   r   r[   皙?Fgffffff
@r$   )r^         @r_   T)ggffffff@      ?r"   r)   r   rB   rE   r*   r   rP   startendstepdisabledr$   r]   constant_cleanupr6   r7   r'   rG   r=   rH   slidera_paramr%   r%   r&   test_number_param   s6    


rk   c                 C   s   G dd dt j}| }t|}|j| |d}|jd }t|tsFJ |jdgksVJ |jg ksdJ |j	dksrJ d|_
|jdgksJ |j d	 }d|_|j	dksJ || d|_d|_
|jdgksJ |j	dksJ d S )
Nc                   @   s   e Zd ZejddZdS )z test_boolean_param.<locals>.TestFrK   N)r   r    r!   r"   Booleanr$   r%   r%   r%   r&   r'      s   r'   r?   r@   AFTr   r$   )r"   r)   r   rB   rE   r*   r   labelsZactivere   r$   rf   rg   )r6   r7   r'   rG   r=   rH   Zcheckboxrj   r%   r%   r&   test_boolean_param   s&    


ro   c                 C   s   G dd dt j}| }t|}|j| |d}|jd }t|tsFJ |jdksTJ |jdksbJ |j	dkspJ d|_
|j	dksJ |j d	 }d
|_|jdksJ |jdksJ d|_|jdksJ || d|_d|_d|_
|j	dksJ |jdksJ |jdksJ |jdksJ d S )Nc                   @   s   e Zd ZejdddZdS )ztest_range_param.<locals>.Testr^   r`   )r   皙?r\   N)r   r    r!   r"   Ranger$   r%   r%   r%   r&   r'      s   r'   r?   r@   r   rq   rp   )皙?g?r$   )r^   333333?r^   rt   TF)r@   )g?rs   )r"   r)   r   rB   rE   r*   BkRangeSliderrb   rc   rP   r$   r]   rf   re   rg   )r6   r7   r'   rG   r=   rH   rQ   rj   r%   r%   r&   test_range_param   s2    


rw   c                 C   s@  G dd dt j}| }t|}|j| |d}|jd }t|tsFJ |jdksTJ |jdksbJ |j	dkspJ |j
dks~J |jdksJ d	|_|jd	ksJ |j d
 }d|_|jdksJ |j	dksJ d|_|jdksJ || d|_d|_d|_|jd	ksJ |jdksJ |j	dks,J |jdks<J d S )Nc                   @   s   e Zd ZejdddZdS )z test_integer_param.<locals>.Test   rZ   r\   Nr   r    r!   r"   Integerr$   r%   r%   r%   r&   r'      s   r'   r?   r@   rx   r   r[   F   r$   )r@      r|   T)ru      ra   rh   r%   r%   r&   test_integer_param   s6    


r~   c                 C   s  G dd dt j}| }t|}|j| |d}|jd }t|tsFJ |jg dksXJ |jdksfJ |j	dkstJ d|_
|jdksJ |j d	 }g d
|_|jg dksJ d|_|j	dksJ || d|_g d|_d|_
|jdksJ |jg dksJ |j	dksJ d S )Nc                   @   s   e Zd Zejdg ddZdS )z(test_object_selector_param.<locals>.Testr9   r@   r9   crL   objectsNr   r    r!   r"   ZObjectSelectorr$   r%   r%   r%   r&   r'   (  s   r'   r?   r@   )1r   )r9   r9   r   r   r9   Fr   r$   r   dr@   )r   )r   r   r   Tr@   r   r   r   )r"   r)   r   rB   rE   r*   r   optionsrP   re   r$   r   rf   rg   )r6   r7   r'   rG   r=   rH   Zselectrj   r%   r%   r&   test_object_selector_param'  s.    




r   c                 C   s,  G dd dt j}| }t|}|j| |d}|jd }t|tsFJ |jg dksXJ |jddgksjJ |j	dksxJ d	dg|_
|jd	dgksJ |j d
 }g d|_|jg dksJ d|_|j	dksJ || d|_g d|_dg|_
|jd	dgksJ |jg dksJ |j	dks(J d S )Nc                   @   s"   e Zd Zejddgg ddZdS )z&test_list_selector_param.<locals>.Testr9   r@   r   r   N)r   r    r!   r"   ListSelectorr$   r%   r%   r%   r&   r'   L  s   r'   r?   r@   )r   r9   r   r9   r   Fr   r$   r   )r   r   r   Tr   r   )r"   r)   r   rB   rE   r*   r   r   rP   re   r$   r   rf   rg   rh   r%   r%   r&   test_list_selector_paramK  s.    





r   c                 C   sh   G dd dt j}| }t|}|j| |d}|jd }t|tsFJ |jd }d|_|j	dksdJ d S )Nc                   @   s&   e Zd Zedd ZejddZdS )ztest_action_param.<locals>.Testc                 S   s   t | ddS )Nr9   rx   )setattrxr%   r%   r&   <lambda>q      z(test_action_param.<locals>.Test.<lambda>r@   rK   N)r   r    r!   r"   Actionr$   r#   r9   r%   r%   r%   r&   r'   p  s   r'   r?   r@   rx   )
r"   r)   r   rB   rE   r*   r
   layoutZclicksr9   )r6   r7   r'   rG   r=   rH   buttonZ	pn_buttonr%   r%   r&   test_action_paramo  s    

r   c                 C   s^   G dd dt j}| }t|dgd}|j| |d}t|jdksFJ t|jd tsZJ d S )Nc                   @   s$   e Zd ZejddZejddZdS )z"test_explicit_params.<locals>.TestFrK   r@   N)r   r    r!   r"   rl   r$   rz   r9   r%   r%   r%   r&   r'     s   r'   r$   r:   r?   rx   r@   )r"   r)   r   rB   rD   rE   r*   r   )r6   r7   r'   rG   r=   rH   r%   r%   r&   test_explicit_params  s    r   c                 C   s   G dd dt j}| }t|}|j d }d|_|jd |jjvsFJ d|_|jd |jjv sbJ d |_|jd |jjv s~J d S )Nc                   @   s   e Zd ZejdddZdS )z#test_param_precedence.<locals>.TestrY   rZ   r\   Nr   r%   r%   r%   r&   r'     s   r'   r$   ru   r@   )r"   r)   r   
precedence_widgets_widget_boxr   r6   r7   r'   rG   r=   rj   r%   r%   r&   test_param_precedence  s    
r   c                 C   sb   G dd dt j}| }t|dgdd}|j| |d}|jd }|jrJJ d|j j_|js^J d S )	Nc                   @   s   e Zd ZejddddZdS )z test_hide_constant.<locals>.TestrY   rZ   T)rL   r]   rf   Nr   r%   r%   r%   r&   r'     s   r'   r$   T)r;   Zhide_constantr?   r@   F)r"   r)   r   rB   rE   Zvisibler$   rf   )r6   r7   r'   rG   r=   rH   ri   r%   r%   r&   test_hide_constant  s    


r   c                 C   sl   G dd dt j}| }t|}|j d }d|_|jd jdksDJ |j d }d|_|jd jdkshJ d S )Nc                   @   s(   e Zd ZejddddZejddZdS )ztest_param_label.<locals>.TestrY   rZ   rm   )rL   r]   labelBr   N)r   r    r!   r"   r#   r$   r   r9   r%   r%   r%   r&   r'     s   r'   r$   r   r9   C)r"   r)   r   r   r   r<   )r6   r7   r'   rG   r=   rj   Zb_paramr%   r%   r&   test_param_label  s    

r   c                    sv   G dd dt j}| }t| |j d }d|_ jj fdddD ksNJ d|_ jj fd	dd
D ksrJ d S )Nc                   @   s*   e Zd ZejddddZejdddZdS )	z,test_param_precedence_ordering.<locals>.TestrY   rZ   ru   rL   r]   r   Tr@   rL   r   N)r   r    r!   r"   r#   r$   rl   r9   r%   r%   r%   r&   r'     s   r'   r$   rx   c                    s   g | ]} j | qS r%   r   .0wr=   r%   r&   
<listcomp>  r   z2test_param_precedence_ordering.<locals>.<listcomp>)_titler9   r$   r@   c                    s   g | ]} j | qS r%   r   r   r   r%   r&   r     r   )r   r$   r9   )r"   r)   r   r   r   r   )r6   r7   r'   rG   rj   r%   r   r&   test_param_precedence_ordering  s    
r   c                 C   s\   G dd dt j}| }t|}|jd jdks4J |j d }d|_|jd jdksXJ d S )Nc                   @   s   e Zd ZejddddZdS )ztest_param_step.<locals>.TestrY   rZ   r^   )rL   r]   rd   Nr   r%   r%   r%   r&   r'     s   r'   r$   r^   g      ?)r"   r)   r   r   rd   r   r%   r%   r&   test_param_step  s    
r   c                 C   s*  G dd dt j}t }|j| |d}|jg ks4J | |_t|jdksNJ |j\}}t|tsfJ |j	dkstJ t|t
sJ |jdksJ |jdksJ | j |_t|jdksJ |j\}}t|tsJ |j	dksJ t|t
sJ |jdksJ |jdksJ d |_t|jdks&J d S )Nc                   @   s   e Zd ZejddZdS )z'test_replace_param_object.<locals>.Testr   
   r]   Nr   r%   r%   r%   r&   r'     s   r'   r?   rx   z<b>Test</b>r   r   )r"   r)   r   rB   rE   objectrD   r*   r   rF   r   rb   rc   r6   r7   r'   panerH   titlerQ   r%   r%   r&   test_replace_param_object  s,    


r   c           	      C   s   G dd dt j}t| dd}|j| |d}t|jdks@J |j\}}}t|tsZJ |jdkshJ t|t	svJ t|t
sJ d|_t|jdksJ |j\}}}t|tsJ |jd	ksJ d S )
Nc                   @   s$   e Zd ZejddZejddZdS )ztest_set_name.<locals>.Testr   r   rm   rK   Nr   r    r!   r"   r#   r$   Stringr9   r%   r%   r%   r&   r'     s   r'   ZFirstr<   r?   r{   z<b>First</b>ZSecondz<b>Second</b>)r"   r)   r   rB   rD   rE   r*   r   rF   r   r   r<   )	r6   r7   r'   r   rH   r   ri   rF   _r%   r%   r&   test_set_name  s    r   c                 C   s   G dd dt j}t| }|j| |d}t|jdks<J |j\}}}t|tsVJ t|tsdJ t|t	srJ dg|_
t|jdksJ |j\}}t|tsJ t|t	sJ d S )Nc                   @   s$   e Zd ZejddZejddZdS )z!test_set_parameters.<locals>.Testr   r   rm   rK   Nr   r%   r%   r%   r&   r'   &  s   r'   r?   r{   r9   rx   )r"   r)   r   rB   rD   rE   r*   r   r   r   r;   r6   r7   r'   r   rH   r   ri   rF   r%   r%   r&   test_set_parameters%  s    

r   c                 C   sb   G dd dt j}| }|jd t|j j}|jd |j d |d jddgks^J d S )Nc                   @   s    e Zd Zejg de dZdS )z%test_trigger_parameters.<locals>.Test)r@   rx   r{      )r   rL   N)r   r    r!   r"   r   listr$   r%   r%   r%   r&   r'   =  s   r'   r   r@   r$   r   )r"   r)   r$   appendr   ZtriggerrP   )r6   r7   r'   tr   r%   r%   r&   test_trigger_parameters<  s    r   c                 C   s   G dd dt j}t| }|j| |d}t|jdks<J |j\}}}t|tsVJ t|tsdJ t|t	srJ d|_
t|jdksJ |j\}}t|tsJ t|t	sJ d S )Nc                   @   s(   e Zd ZejdddZejdddZdS )z(test_set_display_threshold.<locals>.Testr   r@   )r]   r   rm   rx   r   Nr   r%   r%   r%   r&   r'   L  s   r'   r?   r{   g      ?rx   )r"   r)   r   rB   rD   rE   r*   r   r   r   Zdisplay_thresholdr   r%   r%   r&   test_set_display_thresholdK  s    

r   c           	      C   s  G dd dt j}t| }|j| |d}t|jdks<J |j\}}}t|tsVJ t|tsdJ t|t	srJ dt
dttfdi|_t|jdksJ |j\}}}t|tsJ t|t	sJ t|t	sJ ddd	ii|_t|jdksJ |j\}}}t|tsJ t|tsJ |jd	ks,J t|t	s<J dt
d	d
i|_t|jdks`J |j\}}}t|ts|J t|t	sJ |jd	ksJ t|t	sJ d S )Nc                   @   s*   e Zd ZejddddZejdddZdS )ztest_set_widgets.<locals>.Testr@   r   r   rm   rx   r   Nr   r%   r%   r%   r&   r'   c  s   r'   r?   r{   r$   r@   )rP   typeheightd   )r   r   )r"   r)   r   rB   rD   rE   r*   r   r   r   r   floatintwidgetsr   )	r6   r7   r'   r   rH   r   ri   rF   numberr%   r%   r&   test_set_widgetsb  s8    
r   c                 C   sN  G dd dt j}| }t|}|j| |d}dddii|_t|jdksNJ |j\}}d|_|jdkslJ |jdkszJ |j	dksJ d|_	|jdksJ |jdksJ |j	dksJ ddd	ii|_t|jdksJ |j\}}|j
d d
di |jdksJ |j	dksJ |j
d ddi |j	dks:J |jdksJJ d S )Nc                   @   s   e Zd ZejddddZdS )z(test_set_widgets_throttled.<locals>.Testr   r   r@   r   Nr   r%   r%   r%   r&   r'     s   r'   r?   r$   Z	throttledFrx   r@   Tvalue_throttledr{   rP   r   )r"   r)   r   rB   r   rD   rE   rP   r   r$   r   Z_process_events)r6   r7   r'   rG   r   rH   r   r   r%   r%   r&   test_set_widgets_throttled  s0    

r   c                 C   s   G dd dt j}t| }|j| |d}t|jdks<J |j\}}t|tsTJ t|tsbJ d|_	t|jdkszJ t|jd tsJ d S )Nc                   @   s   e Zd ZejddZdS )z test_set_show_name.<locals>.Testr   r   Nr   r%   r%   r%   r&   r'     s   r'   r?   rx   Fr@   r   )
r"   r)   r   rB   rD   rE   r*   r   r   Z	show_namer   r%   r%   r&   test_set_show_name  s    

r   c                 C   s   G dd dt j}t| }|j| |d}t|jdks<J |j\}}t|tsTJ t|tsbJ |j	dkspJ d|_
t|jdksJ t|jd tsJ |jd j	dksJ d S )	Nc                   @   s   e Zd ZejddZdS )z"test_set_show_labels.<locals>.Testr   r   Nr   r%   r%   r%   r&   r'     s   r'   r?   rx   rm   Fr@    )r"   r)   r   rB   rD   rE   r*   r   r   r   Zshow_labelsr   r%   r%   r&   test_set_show_labels  s    

r   c                 C   s  G dd dt j}||ddd}t|}|j| |d}|jd jd }t|tsVJ d|jd	 d _t	|jd
ksxJ |j
j\}}}|jd }	t|	tsJ t|	tsJ t	|	jdksJ |	j\}
}|
jdksJ t|tsJ d|jd	 d _t	|jdksJ d S )Nc                   @   s   e Zd Ze ZdS )z)test_expand_param_subobject.<locals>.TestNrM   r%   r%   r%   r&   r'     s   r'   Nestedr   r$   r?   r@   Tr$   r{   rx   <b>Nested</b>F)r"   r)   r   rB   rE   r*   r	   r   rP   rD   r   r   rC   rF   BkTextInputr6   r7   r'   rG   r=   rH   toggler   subpanelcolrI   rQ   r%   r%   r&   test_expand_param_subobject  s$    

r   c                 C   s  G dd dt j}|dd}|dd}||dg|j d _||dd	}t|}|j| |d
}|jd jd }t|tsxJ d|jd d _	t
|jdksJ |jj\}	}	}
|jd }t|tsJ t
|jdksJ |j\}}|jdksJ t|jd tsJ ||jd d _	|jj\}	}	}
|jd }t|ts6J t
|jdksJJ |j\}}|jdksdJ t|jd tszJ d|jd d _	t
|jdksJ |
ji ksJ d S )Nc                   @   s   e Zd Ze ZdS )z)test_switch_param_subobject.<locals>.TestNr   r%   r%   r%   r&   r'     s   r'   zSubobject 1r   zSubobject 2r{   r$   r   )r$   r<   r?   r@   Trx   z<b>Subobject 1</b>r   z<b>Subobject 2</b>F)r"   r)   r   r   rB   rE   r*   r	   r   rP   rD   r   rC   rF   r   _models)r6   r7   r'   Zo1Zo2rG   r=   rH   r   r   r   r   rI   rowr%   r%   r&   test_switch_param_subobject  s:    





r   c                 C   sR  G dd dt j}||ddd}t }t||d}t||}|j| |d}|jd jd	 jd	 }t|tspJ d
|jd d	 _	t
|jdksJ |jd }	|jd	 }t|tsJ t
|jd	ksJ |jd }
t|
tsJ t
|
jdksJ |
j\}}|jdks
J t|tsJ d|jd d	 _	t
|jdks>J |	ji ksNJ d S )Nc                   @   s   e Zd Ze ZdS )z2test_expand_param_subobject_into_row.<locals>.TestNrM   r%   r%   r%   r&   r'      s   r'   r   r   r   rS   r?   r   r@   Tr$   rx   r   F)r"   r)   r   r   rB   rE   r*   r	   r   rP   rD   r   BkRowrC   rF   r   r   )r6   r7   r'   rG   r   r=   r   rH   r   r   rW   rI   rQ   r%   r%   r&   $test_expand_param_subobject_into_row  s.    




r   c                 C   s   G dd dt j}||ddd}t|ddd}|j| |d}|jd	 jd	 }t|ts\J t|jd
ksnJ |jj	\}}}|jd }	t|	t
sJ t|	jdksJ |	j\}
}|
jdksJ t|tsJ d|jd d	 _t|jdksJ |ji ksJ d S )Nc                   @   s   e Zd Ze ZdS )z0test_expand_param_subobject_expand.<locals>.TestNrM   r%   r%   r%   r&   r'   A  s   r'   r   r   r   TexpandZexpand_buttonr?   r@   r{   rx   r   Fr$   )r"   r)   r   rB   rE   r*   r	   rD   r   r   rC   rF   r   r   rP   r   r   r%   r%   r&   "test_expand_param_subobject_expand@  s"    

r   c           
      C   s   G dd dt j}||ddd}t|ddd}|j| |d	}t|jd
ksPJ |jj\}}}|jd j\}}	|jdks|J t	|	t
sJ d S )Nc                   @   s   e Zd Ze ZdS )z3test_param_subobject_expand_no_toggle.<locals>.TestNrM   r%   r%   r%   r&   r'   \  s   r'   r   r   r   TFr   r?   r{   rx   r   )r"   r)   r   rB   rD   rE   r   r   rF   r*   r   )
r6   r7   r'   rG   r=   rH   r   r   rI   rQ   r%   r%   r&   %test_param_subobject_expand_no_toggle[  s    r   c                 C   sX  G dd dt j}||dddd}t|td}|j| |d}|jd	 jjd	 jd
 }t|t	sdJ d|j
d d
 _t|jdksJ |jj\}}|jd
 j}	|jd
 jdksJ t|	tsJ t|	jd
ksJ |	jd	 jdksJ |	jd	 j}
t|
tsJ t|
jd
ksJ |
jd	 }t|ts0J d|j
d d
 _t|jd
ksTJ d S )Nc                   @   s   e Zd Ze ZdS )z.test_expand_param_subobject_tabs.<locals>.TestN)r   r    r!   r"   rN   abcr%   r%   r%   r&   r'   o  s   r'   r   r   rm   )r   r<   rS   r?   r   r@   Tr   rx   ZAbcF)r"   r)   r   r   rB   rU   rV   rE   r*   r	   r   rP   rD   r   r   r   rT   rC   r   )r6   r7   r'   rG   r=   rH   r   r   r   ZsubtabsrW   rQ   r%   r%   r&    test_expand_param_subobject_tabsn  s*    
r   c                 C   s   G dd dt j}t| }d}|d j|d |j| |d}|jd }t|jdksZJ |j}d|v slJ t|d dksJ ||d d jv sJ d S )	Nc                   @   s   e Zd Zejdd ddZdS )z)test_param_js_callbacks.<locals>.JsButtonc                 S   s   t dS )NzAction Python Response)printselfr%   r%   r&   r     r   z2test_param_js_callbacks.<locals>.JsButton.<lambda>r   r   N)r   r    r!   r"   r   Z	param_btnr%   r%   r%   r&   JsButton  s   r   z$console.log('Action button clicked')r@   )coder?   Zbutton_clickr   )	r"   r)   r   Zjs_on_clickrB   rE   rD   Zjs_event_callbacksr   )r6   r7   r   Zparam_buttonr   rH   r   Z	callbacksr%   r%   r&   test_param_js_callbacks  s    

r   c                  C   s2   G dd dt j} tt|  j jd ts.J d S )Nc                   @   s   e Zd Ze ZdS )z.test_param_calendar_date_mapping.<locals>.TestN)r   r    r!   r"   ZCalendarDater$   r%   r%   r%   r&   r'     s   r'   r@   )r"   r)   r*   r   r   r   r+   r%   r%   r&    test_param_calendar_date_mapping  s    r   c                  C   s2   G dd dt j} tt|  j jd ts.J d S )Nc                   @   s   e Zd Ze ZdS )z%test_param_date_mapping.<locals>.TestN)r   r    r!   r"   ZDater$   r%   r%   r%   r&   r'     s   r'   r@   )r"   r)   r*   r   r   r   r+   r%   r%   r&   test_param_date_mapping  s    r   c                   @   sh   e Zd ZejddZe Zeddd Z	eddd Z
edd	d
 Zeddd ZdS )Viewr   rK   r$   c                 C   s   t d| j dS Nz%drF   )r   r$   r   r%   r%   r&   view  s    z	View.viewzb.paramc                 C   s   t d| jj dS r   )r   r9   r$   r   r%   r%   r&   subobject_view  s    zView.subobject_viewc                 C   s   t  S N)r   r   r%   r%   r&   mpl_view  s    zView.mpl_viewc                 C   s   | j d r|  S |  S )Nrx   )r$   r   r   r   r%   r%   r&   
mixed_view  s    zView.mixed_viewN)r   r    r!   r"   rz   r$   rN   r9   dependsr   r   r   r   r%   r%   r%   r&   r     s   


r   c                  C   sD   t  } dd }t|tus J tt| jj|tu s@J d S )Nc                 S   s   t d|  dS r   r   r   r%   r%   r&   r     s    z/test_get_param_function_pane_type.<locals>.view)r   r   get_pane_typer   r"   r   r$   )rG   r   r%   r%   r&   !test_get_param_function_pane_type  s    r   c           	      C   s  t  }t|jjdd }t|}|j}t|ts8J |j| |d}t|t	sTJ t
|jdksfJ |jd }|j|jd  d |u sJ t|tsJ |jdksJ d|_|jd }||ju sJ |jd	ksJ |j|jd  d |u sJ || |ji ks
J |ji ksJ d S )
Nc                 S   s   t d|  dS r   r   r   r%   r%   r&   r     s    z&test_param_function_pane.<locals>.viewr?   r@   r   idrO   r[   5)r   r"   r   r$   r   _paner*   r   rB   r   rD   rE   r   refr   rF   rg   )	r6   r7   rG   r   r   
inner_paner   rH   	new_modelr%   r%   r&   test_param_function_pane  s*    



r   c                    s   t  }tdtdd t|jj fdd}t|}|j}| d usPJ |j d ju sdJ |jsnJ d|_|j|u sJ |jsJ  d j	t
dg d|_|j|usJ |jrJ d S )	NZ012Z123)r   r@   c                    s    |  S r   r%   r   Zobjsr%   r&   r     s    z-test_param_function_pane_update.<locals>.viewr   r@   r   )r   r   r"   r   r$   r   r   r   Z	_internalwatchr   )r6   r7   rG   r   r   r   r%   r   r&   test_param_function_pane_update  s$    

r  c                   C   s   t t jtu sJ d S r   )r   r   r   r   r   r%   r%   r%   r&   test_get_param_method_pane_type  s    r  c                 C   s  t  }t|j}|j}t|ts$J |j| |d}t|ts@J t|j	dksRJ |j	d }|j
|jd  d |u sxJ t|tsJ |jdksJ d|_|j	d }||ju sJ |jdksJ |j
|jd  d |u sJ || |j
i ksJ |j
i ksJ d S )Nr?   r@   r   r   rO   r[   r   )r   r   r   r   r*   r   rB   r   rD   rE   r   r   r   rF   r$   rg   )r6   r7   rG   r   r   r   rH   r   r%   r%   r&   test_param_method_pane  s&    



r  c                    s^  t dddt d}t|j}|j}t|ts4J |j| |d}t|tsPJ t|j	dksbJ |j	d }t|t
szJ |jdksJ |j}tfd	d
|D sJ |j|jd  d |u sJ t ddd  |_|j|jd  d |u sJ |j}tfdd
|D rJ t fdd
|D s0J || |ji ksJJ |ji ksZJ d S )Nr   *   )r<   r$   )r9   r?   r@   r   Z42c                 3   s   | ]}|j  u V  qd S r   instr   	subobjectr%   r&   	<genexpr>D  r   z3test_param_method_pane_subobject.<locals>.<genexpr>r   c                 3   s   | ]}|j  u V  qd S r   r  r   r  r%   r&   r	  L  r   c                 3   s   | ]}|j  u V  qd S r   r  r   )new_subobjectr%   r&   r	  M  r   )r   r   r   r   r*   r   rB   r   rD   rE   r   rF   Z
_callbacksanyr   r   r9   rg   )r6   r7   rG   r   r   r   rH   Zwatchersr%   )r
  r  r&    test_param_method_pane_subobject3  s.    



r  c           	      C   s   t  }t|j}|j}t|ts$J |j| |d}t|ts@J t|j	dksRJ |j	d }|j
|jd  d |u sxJ |j}d|_|j	d }||ju sJ ||u sJ |j|ksJ |j
|jd  d |u sJ || |j
i ksJ |j
i ksJ d S )Nr?   r@   r   r   r[   )r   r   r   r   r*   r   rB   r   rD   rE   r   r   rF   r$   rg   )	r6   r7   rG   r   r   r   rH   rF   r   r%   r%   r&   test_param_method_pane_mplU  s&    



r  c           
      C   s   t  }t|j}|j}t|ts$J |j| |d}t|ts@J t|j	dksRJ |j	d }|j
}|dspJ d|_|j	d }|j}	t|	tsJ t|tsJ |j
|ksJ |	| |	ji ksJ d S )Nr?   r@   r   z&lt;img src=r[   )r   r   r   r   r*   r   rB   r   rD   rE   rF   
startswithr$   r   r   rg   r   )
r6   r7   rG   r   r   r   rH   rF   r   Znew_paner%   r%   r&   $test_param_method_pane_changing_typer  s$    



r  c                  C   sD   dt jd< t } G dd dtj}| | |jdks8J t jd= d S )Nz{"a": 1}PARAM_JSON_INITc                   @   s   e Zd Ze ZdS )z.test_jsoninit_class_from_env_var.<locals>.TestNry   r%   r%   r%   r&   r'     s   r'   r@   osenvironr   r"   r)   r$   )	json_initr'   r%   r%   r&    test_jsoninit_class_from_env_var  s    
r  c                  C   sJ   dt jd< t } G dd dtj}| }| | |jdks>J t jd= d S )Nz{"a": 2}r  c                   @   s   e Zd Ze ZdS )z1test_jsoninit_instance_from_env_var.<locals>.TestNry   r%   r%   r%   r&   r'     s   r'   rx   r  )r  r'   rG   r%   r%   r&   #test_jsoninit_instance_from_env_var  s    
r  c                     sb   G dd dt j G  fdddt j} |  }|jjdgks@J  dd|_|jjdgks^J dS )	z@Test that https://github.com/holoviz/panel/issues/1581 is solvedc                   @   s   e Zd Ze Ze ZdS )z9test_change_object_and_keep_parameters.<locals>.TextModelN)r   r    r!   r"   r   rF   Zparam2r%   r%   r%   r&   	TextModel  s   r  c                       sH   e Zd ZejdZe Z fddZej	ddddd Z
  ZS )	z8test_change_object_and_keep_parameters.<locals>.TextView)Zclass_c                    s6    dd|d< t  jf i | t| jdgd| _d S )NzOriginal Textr   rF   r:   )super__init__r   rF   	text_pane)r   params)r  	__class__r%   r&   r    s
    zAtest_change_object_and_keep_parameters.<locals>.TextView.__init__rF   T)r   c                 W   s   | j | j_d S r   )rF   r  r   )r   r   r%   r%   r&   _update_text_pane  s    zJtest_change_object_and_keep_parameters.<locals>.TextView._update_text_pane)r   r    r!   r"   ZClassSelectorrF   rN   r  r  r   r  __classcell__r%   r  )r  r&   TextView  s
   r   rF   zNew TextModelr   N)r"   r)   r  r;   rF   )r   r   r%   r  r&   &test_change_object_and_keep_parameters  s    r!  c                  C   s   G dd dt j} |  }t|}t|jd ts4J |jd |jv sHJ d|j j_t|jd t	sfJ |jd |jv szJ d|j j_t|jd tsJ |jd |jv sJ d S )Nc                   @   s   e Zd Ze ZdS )zDtest_rerender_bounded_widget_when_bounds_set_and_unset.<locals>.TestN)r   r    r!   r"   rr   numr%   r%   r%   r&   r'     s   r'   r"  rZ   )Nr[   )
r"   r)   r   r*   r   r   r   r"  r]   r   )r'   rG   pr%   r%   r&   6test_rerender_bounded_widget_when_bounds_set_and_unset  s    

r$  c                  C   sR   G dd dt j} |  }t|dtid}|jd }|jdks@J |jdksNJ d S )Nc                   @   s   e Zd ZejdddZdS )z%test_numberinput_bounds.<locals>.Testr[   rZ   r\   N)r   r    r!   r"   r#   r"  r%   r%   r%   r&   r'     s   r'   r"  r   r@   r   r[   )r"   r)   r   r   r   rb   rc   )r'   rG   r#  Znuminputr%   r%   r&   test_numberinput_bounds  s    
r&  c                 C   s   G dd dt j}| }t|dtid}|j| |d}|jd }t|tsNJ |jddgks`J |j	d	ksnJ |j
d
ks|J d|_|j	dksJ ddg|j d _|jddgksJ |j	d	ksJ d S )Nc                   @   s    e Zd ZejdddgddZdS )z/test_set_widget_autocompleteinput.<locals>.Testr   r$   r9   FrL   r   Zcheck_on_setNr   r    r!   r"   ZSelectorchoicer%   r%   r%   r&   r'     s   r'   r)  r%  r?   r@   r$   r9   r   Fr   r   )r"   r)   r   r   rB   rE   r*   BkAutocompleteInputcompletionsrP   re   r)  r   r6   r7   r'   rG   r=   rH   Zautocompleteinputr%   r%   r&   !test_set_widget_autocompleteinput  s    
r-  c                 C   s~   G dd dt j}| }t|dtid}|j| |d}|jd }t|tsNJ |jdgks^J |j	dkslJ |j
dkszJ d S )	Nc                   @   s   e Zd Zejdg ddZdS )z=test_set_widget_autocompleteinput_empty_objects.<locals>.Testr   Fr'  Nr(  r%   r%   r%   r&   r'     s   r'   r)  r%  r?   r@   r   F)r"   r)   r   r   rB   rE   r*   r*  r+  rP   re   r,  r%   r%   r&   /test_set_widget_autocompleteinput_empty_objects	  s    
r.  c                  C   sZ   G dd dt j} |  }t|dd\}}}}|jdks:J |jdksHJ |jdksVJ d S )Nc                   @   s0   e Zd ZejddZejddZejddZdS )ztest_sorted.<locals>.MyClasszzzr   aaabbbN	r   r    r!   r"   rz   Zvaluebr   ZvaluezZvaluear%   r%   r%   r&   MyClass  s   r3  Tsortr0  r1  r/  r"   r)   r   r<   )r3  my_classr   input1input2input3r%   r%   r&   test_sorted  s    r;  c                  C   sb   G dd dt j} |  }dd }t||d\}}}}|jdksBJ |jdksPJ |jdks^J d S )	Nc                   @   s0   e Zd ZejddZejddZejddZdS )z!test_sorted_func.<locals>.MyClassbacr   acbcbaNr2  r%   r%   r%   r&   r3  )  s   r3  c                 S   s   | d j d d d S )Nr@   ru   r   r   r%   r%   r&   	sort_func/  s    z#test_sorted_func.<locals>.sort_funcr4  r>  r=  r<  r6  )r3  r7  r?  r   r8  r9  r:  r%   r%   r&   test_sorted_func(  s    r@  )gr  r"   Zbokeh.modelsr   r   r   r   rv   r   r   r   r   r	   r
   r   r   r   rT   r   rC   r   r*  Z
panel.paner   r   r   r   r   Zpanel.layoutZpanel.paramr   r   r   r   Zpanel.widgetsr   r   r   r   Zpanel.tests.utilr   r   r,   r.   r/   r0   r1   r2   r8   r>   rJ   rR   rX   rk   ro   rw   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   r   r   r   r  r  r  r  r  r  r  r  r!  r$  r&  r-  r.  r;  r@  r%   r%   r%   r&   <module>   s   @ 						(%($$)*&)! 		
!"

 