a
    ø´þ`$  ã                   @   s†   d dl mZ d dlmZ d dlZd dlmZ d dlm	Z	m
Z
 d dlmZ zd dlZW n   edƒ‚Y n
0 d dlZG dd	„ d	eƒZdS )
é    )ÚSkipTest)ÚOrderedDictN)ÚStore)ÚRGBÚImage)ÚComparisonTestCasezXArray not availablec                   @   sÄ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/S )0ÚTestGridPlotsc                 C   sf  t dg d¢fdddgfdddgfgƒ}t t d¡ d¡|g d	¢¡| _t d
ddgfdg d¢fdddgfdddgfgƒ}t t d¡ d¡|g d¢¡| _t d
ddgfdddgfdddgfgƒ}t t d¡ d¡|g d¢¡jtjddgdgdd| _	tjtj
 dd¡dtdƒfdtdƒfgddgdddœd| _d| jjjd< d| jjjd< t d| ji¡| _tjt d d¡ d!¡d"d#| _t t d$d%¡ d&d'¡¡| _tjd(d)dtj
 dd¡  fd(dtj
 dd¡ fd*œd+d,gd-d.gd(œd/| _t ddd0¡}||tjd d …f j }||d d …tjf  }d1|fd1|fg d¢d2g d3¢fd4œ}tjtj
 d0d0dd5¡|d6d7| _d S )8NÚband)é   é   é   Úyr   r
   Úxé   )r   r   r   )r	   r   r   Útimeé   )r   r   r   r   )r   r	   r   r   ÚlatÚloné   )r   r   r   )r   r   r   r   r   )Údims)Zlat1é
   Ú
luminosityÚlm)Ú	long_nameZunits)Úcoordsr   ÚattrsÚDeclinationr   úRight AscensionZlightéþÿÿÿ)r   r   Zfoo©Únameg    €„.Ág    €„.Aiè  iÐ  )r   r   é   )ÚtempÚprecipg…ëQ¸õXÀg®GázÔXÀg      E@g{®GáE@)r   é   )ÚnyÚnxÚnsamples)r   r
   r   r   )r   r   r   Zsamplesé   )r&   r%   r   r'   )r   r   )r   ÚxrZ	DataArrayÚnpZarangeZreshapeÚda_rgbÚda_rgb_by_timeZassign_coordsÚda_img_by_timeZrandomZrandÚrangeÚxarr_with_attrsr   r   r   ZDatasetÚxds_with_attrsÚda_imgÚbig_imgZrandnÚdsZlinspaceZnewaxisÚTÚds_unindexed)Úselfr   Zxsr   r   © r7   ú9lib/python3.9/site-packages/hvplot/tests/testgridplots.pyÚsetUp   sP    &ÿ0ÿ&ÿþ"þþý
üÿzTestGridPlots.setUpc                 C   s6   | j  ¡ }|  |tddgddgft| j jƒ ƒ¡ d S )Nr   r
   ©r+   ÚhvplotÚassertEqualr   ÚtupleÚvalues©r6   Úrgbr7   r7   r8   Útest_rgb_dataarray_no_args;   s    
z(TestGridPlots.test_rgb_dataarray_no_argsc                 C   s:   | j  dd¡}|  |tddgddgft| j jƒ ƒ¡ d S ©Nr   r   r   r
   r:   r?   r7   r7   r8   Ú test_rgb_dataarray_explicit_args?   s    z.TestGridPlots.test_rgb_dataarray_explicit_argsc                 C   s<   | j j dd¡}|  |tddgddgft| j jƒ ƒ¡ d S rB   )r+   r;   r@   r<   r   r=   r>   r?   r7   r7   r8   Ú)test_rgb_dataarray_explicit_args_and_kindC   s    z7TestGridPlots.test_rgb_dataarray_explicit_args_and_kindc                 C   s@   | j jddj ¡ }|  |tddgddgft| j jƒ ƒ¡ d S )NÚzr   r   r
   ©r+   Z
to_datasetr;   r@   r<   r   r=   r>   r?   r7   r7   r8   Útest_rgb_datasetG   s    zTestGridPlots.test_rgb_datasetc                 C   sD   | j jddjjdd}|  |tddgddgft| j jƒ ƒ¡ d S )NrE   r   )rE   r   r
   rF   r?   r7   r7   r8   Útest_rgb_dataset_explicit_zK   s    z)TestGridPlots.test_rgb_dataset_explicit_zc                 C   sx   | j jjdddd}|  |d tddgddgft| j jd ƒ ƒ¡ |  |d tddgddgft| j jd ƒ ƒ¡ d S )Nr   r   r   ©Úgroupbyr   r
   ©r,   r;   r@   r<   r   r=   r>   r?   r7   r7   r8   Ú#test_rgb_dataarray_groupby_explicitO   s    0z1TestGridPlots.test_rgb_dataarray_groupby_explicitc                 C   sx   | j jjdddd}|  |d tddgddgft| j jd ƒ ƒ¡ |  |d tddgddgft| j jd ƒ ƒ¡ d S )Nr   r   r	   )Zbandsr   r
   rK   r?   r7   r7   r8   Ú test_rgb_dataarray_groupby_inferT   s    0z.TestGridPlots.test_rgb_dataarray_groupby_inferc                 C   s2   | j d  ¡ }|  |t| j d ddgdgƒ¡ d S )Nr   r   r   Úvalue©r-   r;   r<   r   ©r6   Zimgr7   r7   r8   Ú,test_img_dataarray_infers_correct_other_dimsY   s    z:TestGridPlots.test_img_dataarray_infers_correct_other_dimsc                 C   sZ   | j jdd}|  |d t| j d ddgdgƒ¡ |  |d t| j d ddgdgƒ¡ d S )Nr   rI   r   r   r   rN   r
   rO   rP   r7   r7   r8   Ú4test_img_dataarray_groupby_infers_correct_other_dims]   s    $zBTestGridPlots.test_img_dataarray_groupby_infers_correct_other_dimsc                 C   sl   | j jjddd}|  |jd jd¡ |  |jjd jd¡ |  |jjd jd¡ |  |jjd jd¡ d S )	Nr   F)rJ   Údynamicr   r   r   r   r   )	r/   r;   Úliner<   ÚkdimsÚlabelZlastÚvdimsÚunit)r6   Zhmapr7   r7   r8   Ú2test_line_infer_dimension_params_from_xarray_attrsb   s
    z@TestGridPlots.test_line_infer_dimension_params_from_xarray_attrsc                 C   sx   | j jjdd}|  |jd jd¡ |  |jd jd¡ |  |jd jd¡ |  |jd jd¡ |  |jd jd¡ d S )	N©r   r   )Úclimr   r   r
   r   r   r   )	r/   r;   Úimager<   rU   rV   rW   rX   r.   rP   r7   r7   r8   Ú1test_img_infer_dimension_params_from_xarray_attrsi   s    z?TestGridPlots.test_img_infer_dimension_params_from_xarray_attrsc                 C   s`   | j j ¡ }|  |jd jd¡ |  |jd jd¡ |  |jd jd¡ |  |jd jd¡ d S ©Nr   r   r
   r   r   r   )r0   r;   Údatasetr<   rU   rV   rW   rX   ©r6   Útabler7   r7   r8   Ú6test_table_infer_dimension_params_from_xarray_ds_attrsq   s
    zDTestGridPlots.test_table_infer_dimension_params_from_xarray_ds_attrsc                 C   sz   | j jjddd}|  |jd jd¡ |  |jd jd¡ |  |jd jd¡ |  |jd jd	¡ |  |jd jd¡ d S )
NrN   rZ   )Úcr[   r   r   r
   r   r   r   )	r/   r;   Úpointsr<   rU   rV   rW   rX   r.   )r6   rd   r7   r7   r8   Ú4test_points_infer_dimension_params_from_xarray_attrsx   s    zBTestGridPlots.test_points_infer_dimension_params_from_xarray_attrsc                 C   s`   | j j ¡ }|  |jd jd¡ |  |jd jd¡ |  |jd jd¡ |  |jd jd¡ d S r^   ©r/   r;   r_   r<   rU   rV   rW   rX   )r6   r3   r7   r7   r8   Ú5test_dataset_infer_dimension_params_from_xarray_attrs€   s
    zCTestGridPlots.test_dataset_infer_dimension_params_from_xarray_attrsc                 C   s`   | j j ¡ }|  |jd jd¡ |  |jd jd¡ |  |jd jd¡ |  |jd jd¡ d S r^   rf   r`   r7   r7   r8   Ú3test_table_infer_dimension_params_from_xarray_attrs‡   s
    zATestGridPlots.test_table_infer_dimension_params_from_xarray_attrsc                 C   sR   | j j ¡ }t d|d¡}|  |j d¡d¡ t d|d¡}|  |jd d¡ d S )NÚbokehÚplotÚ	symmetricTÚstyleÚcmapÚcoolwarm©r1   r;   r\   r   Úlookup_optionsr<   ÚkwargsÚget©r6   rj   Z	plot_optsZ
style_optsr7   r7   r8   Ú$test_symmetric_img_deduces_symmetricŽ   s
    z2TestGridPlots.test_symmetric_img_deduces_symmetricc                 C   sV   | j jjdd}t d|d¡}|  |j d¡d¡ t d|d¡}|  |jd d¡ d S )	NF)rk   ri   rj   rk   rl   rm   Úkbc_rro   rs   r7   r7   r8   Ú.test_symmetric_img_with_symmetric_set_to_false•   s
    z<TestGridPlots.test_symmetric_img_with_symmetric_set_to_falsec                 C   sV   | j jjdd}t d|d¡}|  |j d¡d¡ t d|d¡}|  |jd d¡ d S )	NZfire)rm   ri   rj   rk   Trl   rm   ro   rs   r7   r7   r8   Ú test_symmetric_img_with_cmap_setœ   s
    z.TestGridPlots.test_symmetric_img_with_cmap_setc                 C   sR   | j j ¡ }t d|d¡}|  |j d¡d¡ t d|d¡}|  |jd d¡ d S )Nri   rj   rk   Frl   rm   ru   )r2   r;   r\   r   rp   r<   rq   rr   rs   r7   r7   r8   ÚGtest_symmetric_with_big_img_sets_symmetric_to_false_without_calculating£   s
    zUTestGridPlots.test_symmetric_with_big_img_sets_symmetric_to_false_without_calculatingc                 C   sZ   | j jjtdƒd}t d|d¡}|  |j d¡d¡ t d|d¡}|  |jd d	¡ d S )
Ng    ÐcA)Zcheck_symmetric_maxri   rj   rk   Trl   rm   rn   )	r2   r;   r\   Úintr   rp   r<   rq   rr   rs   r7   r7   r8   ÚHtest_symmetric_with_big_img_and_check_symmetric_max_calculates_symmetricª   s
    zVTestGridPlots.test_symmetric_with_big_img_and_check_symmetric_max_calculates_symmetricc                 C   sh   | j jddddgdd}d| ¡ v s(J ‚d| ¡ v s8J ‚|d jddgksNJ ‚|d jddgksdJ ‚d S )Nr   r   r"   r#   F)r   r   rE   rS   )r3   r;   ÚkeysrU   )r6   rj   r7   r7   r8   Útest_multiple_zs±   s
    zTestGridPlots.test_multiple_zsc                 C   s’   | j jjddd}t|jƒdks$J ‚|jd jdks8J ‚|jd jdksLJ ‚|d	 }t|jƒdksfJ ‚|jd jdkszJ ‚|jd jdksŽJ ‚d S )
Nr   r   )r   r   r   r   r   r
   r'   )r
   r   )r5   r;   ZquadmeshÚlenrU   r    )r6   rj   Úpr7   r7   r8   Útest_unindexed_quadmesh¸   s    z%TestGridPlots.test_unindexed_quadmeshN)Ú__name__Ú
__module__Ú__qualname__r9   rA   rC   rD   rG   rH   rL   rM   rQ   rR   rY   r]   rb   re   rg   rh   rt   rv   rw   rx   rz   r|   r   r7   r7   r7   r8   r      s.   )r   )Zunittestr   Úcollectionsr   Znumpyr*   Z	holoviewsr   Zholoviews.elementr   r   Zholoviews.element.comparisonr   Zxarrayr)   Zhvplot.xarrayr;   r   r7   r7   r7   r8   Ú<module>   s   