
    e                         d dl Zd dlmZmZmZmZ d dlmZm	Z	 ddl
mZ ddlmZmZ 	 d dlmZ n# e$ r Y nw xY w G d	 d
ee          Z G d de          ZdS )    N)
DynamicMapHoloMap	NdOverlayOverlay)CurveScatter   )LoggingComparisonTestCase   )TestMPLPlotmpl_renderer)OverlayPlotc                   V    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 ZdS )TestOverlayPlotc           
          t          t          t          j        ddgg                    t	          ddgg          t          t          j        ddgg                    g          }t          |           dS )zf
        Test to avoid regression after fix of https://github.com/holoviz/holoviews/issues/41
        r   r   N)r   r   nparrayr   r   )selfos     Tlib/python3.11/site-packages/holoviews/tests/plotting/matplotlib/test_overlayplot.pytest_interleaved_overlayz(TestOverlayPlot.test_interleaved_overlay   si     U28aVH--..1Q%1A1AE"(UVXYTZS[J\J\D]D]^__A    c                 
   t          t          d                    t                      z  }t          j        |          }|                     t          |j                  d           | j        	                    dd           d S )N
   r   WARNINGz,is empty and will be skipped during plotting)
r   ranger   r   get_plotassertEquallensubplotslog_handlerassertContainsr   overlayplots      r   test_overlay_empty_layersz)TestOverlayPlot.test_overlay_empty_layers   sn    b		""Y[[0$W--T]++Q///''	3abbbbbr   c                    t          t          g           t          g           z                      d          t          g           t          g           z                      d          d          }t          j        |          }|                     |j        d                                         d           |                    d           |                     |j        d                                         d           d S NA)titleB)r   r   r*   )r   	r   r   optsr   r   r   handlesget_textupdater   hmapr%   s      r   test_overlay_update_plot_optsz-TestOverlayPlot.test_overlay_update_plot_opts   s    rU2YY&,,3,77rU2YY&,,3,779 9
 
 $T**g.77993???Dg.77993?????r   c                    t          t          g                               d          t          g           z  t          g                               d          t          g           z  d          }t          j        |          }|                     |j        d                                         d           |                    d           |                     |j        d                                         d           d S r(   r,   r1   s      r   'test_overlay_update_plot_opts_inheritedz7TestOverlayPlot.test_overlay_update_plot_opts_inherited(   s    rc**U2YY6rc**U2YY69 9
 
 $T**g.77993???Dg.77993?????r   c           	      J   t          t          d                    t          t          d                    z                      dd          }t          j        |          }|                     t          d |                    |i           D                                  d S )Nr   r   F)apply_rangesc              3   >   K   | ]}t          j        |          V  d S )N)r   isnan).0es     r   	<genexpr>zETestOverlayPlot.test_overlay_apply_ranges_disabled.<locals>.<genexpr>5   s*      OOABHQKKOOOOOOr   )r   r   r-   r   r   
assertTrueallget_extentsr#   s      r   "test_overlay_apply_ranges_disabledz2TestOverlayPlot.test_overlay_apply_ranges_disabled2   s    r##eE"II&6&66<<WSX<YY$W--OO1A1A'21N1NOOOOOPPPPPr   c                 (   t          g           j                            d          t          g           j                            d          z  }t	          j        |          }|                    |i           }|                     |d           d S )N)r   )x)   )y)rB   rD   r   rE   )r   redimr   r   r   r   r?   r   )r   r$   r%   extentss       r   !test_overlay_empty_element_extentz1TestOverlayPlot.test_overlay_empty_element_extent7   s    ))/'')'44wr{{7H7N7NQZ7N7[7[[$W--""7B//"455555r   c                    d }t          |dg          j                            d          }t          j        |          }|                    d           t          |j                                                  D ]a\  }}| 	                    |j
        |dz              | 	                    t          |j                                                  |dz   g           bd S )	Nc                 V    t          d t          | dz
  |           D                       S )Nc                 X    i | ]'}|t          t          j        d           |z             (S r   r   r   aranger:   is     r   
<dictcomp>zNTestOverlayPlot.test_dynamic_subplot_remapping.<locals>.cb.<locals>.<dictcomp>@   s.    OOOAary}}Q!7!7OOOr      r   r   Xs    r   cbz:TestOverlayPlot.test_dynamic_subplot_remapping.<locals>.cb?   s+    OOqsAOOOPPPr   rV   kdimsr   r   rU   r	   r	   r   )r   rG   r   r   r   r0   	enumerater    valuesr   cyclic_indexlistoverlay_dimsr   rW   dmapr%   rQ   subplots         r   test_dynamic_subplot_remappingz.TestOverlayPlot.test_dynamic_subplot_remapping=   s    	Q 	Q 	Q"SE***0666AA$T**D#DM$8$8$:$:;; 	I 	IJAwW11Q3777T'"6"="="?"?@@1Q3%HHHH	I 	Ir   c                    d }t          |dg          j                            d          }t          j        |          }|                     t          |j                  d           |                    d           |                     t          |j                  d           t          |j        
                                          D ] \  }}|                     |j        |           !d S )	Nc                 N    t          d t          |           D                       S )Nc                 X    i | ]'}|t          t          j        d           |z             (S rM   rN   rP   s     r   rR   zMTestOverlayPlot.test_dynamic_subplot_creation.<locals>.cb.<locals>.<dictcomp>J   s.    JJJAary}}Q!7!7JJJr   rT   rU   s    r   rW   z9TestOverlayPlot.test_dynamic_subplot_creation.<locals>.cbI   s%    JJqJJJKKKr   rV   rX   rZ   rU   r   r[   r	   )r   rG   r   r   r   r   r   r    r0   r\   r]   r^   ra   s         r   test_dynamic_subplot_creationz-TestOverlayPlot.test_dynamic_subplot_creationH   s    	L 	L 	L"SE***0666AA$T**T]++Q///DT]++Q///#DM$8$8$:$:;; 	6 	6JAwW115555	6 	6r   c                 .   t          t          d                    t          t          d                    z                      d          }t          j        |          j        d         }|                     |                                d           d S Nr   zcustom x-label)xlabelaxisr   r   r-   r   r   r.   r   
get_xlabelr   r$   axess      r   test_overlay_xlabelz#TestOverlayPlot.test_overlay_xlabelS   y    r##eE"II&6&66<<DT<UU$W--5f=**,<=====r   c                 .   t          t          d                    t          t          d                    z                      d          }t          j        |          j        d         }|                     |                                d           d S Nr   zcustom y-label)ylabelrl   r   r   r-   r   r   r.   r   
get_ylabelro   s      r   test_overlay_ylabelz#TestOverlayPlot.test_overlay_ylabelX   rr   r   c                 .   t          t          d                                        d          t          t          d                    z  }t          j        |          j        d         }|                     |                                d           d S rj   rm   ro   s      r   'test_overlay_xlabel_override_propagatedz7TestOverlayPlot.test_overlay_xlabel_override_propagated]   z    r##((0@(AAE%PR))DTDTT$W--5f=**,<=====r   c                 .   t          t          d                                        d          t          t          d                    z  }t          j        |          j        d         }|                     |                                d           d S rt   rv   ro   s      r   test_overlay_ylabel_overridez,TestOverlayPlot.test_overlay_ylabel_overrideb   r{   r   N)__name__
__module____qualname__r   r&   r3   r5   r@   rI   rd   rh   rq   rx   rz   r}    r   r   r   r      s          c c c@ @ @@ @ @Q Q Q
6 6 6	I 	I 	I	6 	6 	6> > >
> > >
> > >
> > > > >r   r   c                       e Zd Zd Zd ZdS )TestLegendsc                    t          t          d          d          t          t          d          d          z  }t          j        |          }|j        d         }d |j        D             }|                     |ddg           d S )Nr   r)   labelr+   legendc                 6    g | ]}|                                 S r   r/   r:   ls     r   
<listcomp>z3TestLegends.test_overlay_legend.<locals>.<listcomp>o        <<<!<<<r   )r   r   r   r   r.   textsr   r   r$   r%   r   legend_labelss        r   test_overlay_legendzTestLegends.test_overlay_legendk   s    b		---eBiis0K0K0KK$W--h'<<v|<<<c
33333r   c                 B   t          t          d          d          t          t          d          d          z                      ddd          }t          j        |          }|j        d	         }d
 |j        D             }|                     |ddg           d S )Nr   r)   r   r+   zA CurvezB Curve)r)   r+   )r   r   c                 6    g | ]}|                                 S r   r   r   s     r   r   z?TestLegends.test_overlay_legend_with_labels.<locals>.<listcomp>w   r   r   )r   r   r-   r   r   r.   r   r   r   s        r   test_overlay_legend_with_labelsz+TestLegends.test_overlay_legend_with_labelsr   s    r#...uRyy1L1L1LLRR )	:: S < <$W--h'<<v|<<<I(>?????r   N)r~   r   r   r   r   r   r   r   r   r   i   s7        4 4 4@ @ @ @ @r   r   )numpyr   holoviews.corer   r   r   r   holoviews.elementr   r   utilsr
   	test_plotr   r   holoviews.plotting.mplr   ImportErrorr   r   r   r   r   <module>r      s%       B B B B B B B B B B B B , , , , , , , , . . . . . . 0 0 0 0 0 0 0 0	2222222 	 	 	D	V> V> V> V> V>/ V> V> V>t@ @ @ @ @+ @ @ @ @ @s   / 77