a
    `                     @   s>   d Z ddlmZmZ ddlmZ d	ddZG dd deZdS )
z8
Tests for panel widgets and param objects as arguments
    )TestCaseSkipTest)process_xarrayNc                 C   sR   ddl }|du rg }t| |jjr:| D ]}t|||}q&nt| |rN||  |S )zJ
    Descend a panel object and find any instances of the given class
    r   N)panel
isinstanceZlayoutZ	ListPanellook_for_classappend)r   Z	classnameitemspnp r   5lib/python3.9/site-packages/hvplot/tests/testpanel.pyr      s    

r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestPanelObjectsc                 C   sV   zdd l }dd l}W n   tdY n0 ddlm} || _t| jjd d | _d S )Nr   zpanel not available)flowers)r   Zhvplot.pandasr   Zbokeh.sampledata.irisr   listcolumnscols)selfr
   hvplotr   r   r   r   setUp   s    zTestPanelObjects.setUpc                 C   s   dd l }|jjdd| jd}|jjdd| jd}|jjddd	dgd}|jjd
d}|jjdd}||jj|jjdd }| j	j
|||jj|d d S )Nr   xsepal_lengthnamevalueoptionsysepal_widthkindscatterZ	bivariatez
By species)r   z#ff0000)r   c                 S   s   | rdS |S )Nspeciesr   )
by_speciescolorr   r   r   by_species_fn/   s    zITestPanelObjects.test_using_explicit_widgets_works.<locals>.by_species_fn)r   r   c)r   widgetsSelectr   ZCheckboxZColorPickerZdependsparamr   r   r   )r   r
   r   r   r   r"   r#   r$   r   r   r   !test_using_explicit_widgets_works&   s    
z2TestPanelObjects.test_using_explicit_widgets_worksc                 C   sB   dd l }| jjjddd|jjid}tt||jjdks>J d S )Nr   r!   Z	top_right)groupbyZlegendr&      )r   r   r   r    r&   ZDiscreteSliderlenr   )r   r
   paner   r   r   )test_casting_widgets_to_different_classes5   s    
z:TestPanelObjects.test_casting_widgets_to_different_classesc                 C   sX   dd l }|jjdd| jd}|jjdd| jd}| jj||dd}t||jjsTJ d S )	Nr   r   r   r   r   r   r!   )r*   )	r   r&   r'   r   r   r   r   r(   ZParamFunction)r   r
   r   r   r-   r   r   r   =test_using_explicit_widgets_with_groupby_does_not_raise_error>   s
    zNTestPanelObjects.test_using_explicit_widgets_with_groupby_does_not_raise_errorN)__name__
__module____qualname__r   r)   r.   r/   r   r   r   r   r      s   	r   )N)__doc__Zunittestr   r   Zhvplot.utilr   r   r   r   r   r   r   <module>   s   
