
    ek                        d dl Zd dlmZmZmZ d dlmZmZ d dl	m
Z
mZ d dlmZmZmZmZmZmZmZmZ d dlmZ d dlm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$ d d	l%m&Z& ej'        d
         Z( G d de          Z) G d de          Z* G d de          Z+ G d de          Z, G d de          Z- G d de          Z. G d de          Z/ G d de          Z0dS )    N)	Dimension	NdOverlayOverlay)CycleStore)
DynamicMapHoloMap)AreaCurveHLineImagePathPointsScatterVectorField)ComparisonTestCase)	operation)_get_min_distance_numpybokeh_palette_to_palettecolor_intervalscompute_overlayable_zordersget_axis_paddingget_min_distance	get_rangeinitialize_dynamicmplcmap_to_paletteprocess_cmapsplit_dmap_overlay)PointerXbokehc                   h    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 Zd Zd ZdS )TestOverlayableZordersc                     t          dt          g           i          }t          |          }|                     |d         ||j        g           d S Nr   )r	   r   r   assertEquallast)selfhmapsourcess      Glib/python3.11/site-packages/holoviews/tests/plotting/test_plotutils.py(test_compute_overlayable_zorders_holomapz?TestOverlayableZorders.test_compute_overlayable_zorders_holomap'   sM    6"::''-d33dDI%677777    c                     t          g           }t          d|i          }t          g           }||z  }t          |          }|                     |d         ||j        |g           d S r$   )r   r	   r   r   r%   r&   )r'   pointsr(   curvecombinedr)   s         r*   6test_compute_overlayable_zorders_with_overlaid_holomapzMTestOverlayableZorders.test_compute_overlayable_zorders_with_overlaid_holomap,   sh    6{##b		:-h77fhmX%FGGGGGr,   c                    t          t          d                    }t          d g           }||z  }|d          t          |          }|                     |d         |g           |                     |d         |g           d S )N
   c                  :    t          t          d                    S Nr3   r   range r,   r*   <lambda>zbTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_two_mixed_layers.<locals>.<lambda>6       %b		"2"2 r,   kdimsr8   r      r
   r7   r   r   r%   r'   areadmapr0   r)   s        r*   9test_dynamic_compute_overlayable_zorders_two_mixed_layerszPTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_two_mixed_layers4       E"II22"===9-h77dV,,,dV,,,,,r,   c                    t          t          d                    }t          d g           }||z  }|d          t          |          }|                     |d         |g           |                     |d         |g           d S )Nr3   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zjTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_two_mixed_layers_reverse.<locals>.<lambda>?   r:   r,   r;   r8   r   r=   r>   r?   s        r*   Atest_dynamic_compute_overlayable_zorders_two_mixed_layers_reversezXTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_two_mixed_layers_reverse=   rC   r,   c                     t          d g           }t          d g           }||z  }|d          t          |          }|                     |d         |g           |                     |d         |g           d S )Nc                  :    t          t          d                    S r5   r
   r7   r8   r,   r*   r9   zdTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_two_dynamic_layers.<locals>.<lambda>G       $uRyy// r,   r;   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zdTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_two_dynamic_layers.<locals>.<lambda>H   r:   r,   r8   r   r=   )r   r   r%   r?   s        r*   ;test_dynamic_compute_overlayable_zorders_two_dynamic_layerszRTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_two_dynamic_layersF   s    11<<<22"===9-h77dV,,,dV,,,,,r,   c                    t          d g           }t          d g           }|                    d          }|                    d          }||z  }|d          t          |          }|                     ||d                    |                     ||d                    |                     ||d                    |                     ||d                    |                     ||d                    |                     ||d                    |                     ||d                    |                     ||d                    d S )	Nc                  :    t          t          d                    S r5   rI   r8   r,   r*   r9   ziTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_two_deep_dynamic_layers.<locals>.<lambda>P   rJ   r,   r;   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   ziTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_two_deep_dynamic_layers.<locals>.<lambda>Q       5r#3#3 r,   x2xr8   r   r=   r   redimr   assertInassertNotIn)r'   r@   r/   
area_redimcurve_redimr0   r)   s          r*   @test_dynamic_compute_overlayable_zorders_two_deep_dynamic_layerszWTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_two_deep_dynamic_layersO   sB   11<<<332>>>ZZ$Z''
kkDk))k)-h77j'!*---dGAJ'''gaj111
+++k71:...eWQZ(((WQZ000wqz*****r,   c                 (   t          d g           }t          d g           }t          d g           }|                    d          }|                    d          }|                    d          }||z  }||z  }|d          t          |          }	|                     ||	d	                    |                     ||	d	                    |                     ||	d	                    |                     ||	d	                    |                     ||	d	                    |                     ||	d	                    |                     ||	d
                    |                     ||	d
                    |                     ||	d
                    |                     ||	d
                    |                     ||	d
                    |                     ||	d
                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    d S )Nc                  :    t          t          d                    S r5   rI   r8   r,   r*   r9   zkTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers.<locals>.<lambda>a   rJ   r,   r;   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zkTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers.<locals>.<lambda>b   rP   r,   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zkTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers.<locals>.<lambda>c       E%))$4$4 r,   rQ   rR   x3r8   r   r=      rT   
r'   r@   r/   curve2rX   rY   curve2_redimr0   	combined1r)   s
             r*   Btest_dynamic_compute_overlayable_zorders_three_deep_dynamic_layerszYTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers`   su   11<<<332>>>44B???ZZ$Z''
kkDk))||d|++k)l*	"-i88j'!*---dGAJ'''gaj111
+++wqz222,,,k71:...eWQZ(((WQZ000wqz***wqz222,,,lGAJ///fgaj)))WQZ000wqz***gaj111
+++++r,   c                 P   t          d g           }t          d g           }t          d g           }|                    d          }|                    d          }|                    d          }||z  }||z                      d	          }|d
          t          |          }	|                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    d S )Nc                  :    t          t          d                    S r5   rI   r8   r,   r*   r9   zrTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_cloned.<locals>.<lambda>   rJ   r,   r;   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zrTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_cloned.<locals>.<lambda>   rP   r,   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zrTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_cloned.<locals>.<lambda>   r_   r,   rQ   rR   r`   y2)yr8   r   r=   ra   rT   rb   s
             r*   Itest_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_clonedz`TestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_cloned   s   11<<<332>>>44B???ZZ$Z''
kkDk))||d|++k)l*11D199	"-i88j'!*---dGAJ'''gaj111
+++wqz222,,,k71:...eWQZ(((WQZ000wqz***wqz222,,,lGAJ///fgaj)))WQZ000wqz***gaj111
+++++r,   c                 p   t          t          d                    }t          t          d                    }||z  }t          d g           }|                    d          }||z  }|d          t	          |          }|                     ||d                    |                     ||d                    |                     ||d                    |                     ||d                    |                     ||d                    |                     ||d                    |                     ||d                    |                     ||d	                    |                     ||d	                    |                     ||d	                    |                     ||d	                    d S )
Nr3   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_non_dynamic_overlays_reverse.<locals>.<lambda>   rP   r,   r;   rQ   rR   r8   r   r=   ra   )r
   r7   r   rU   r   rV   rW   )r'   area1area2overlayr/   rY   r0   r)   s           r*   Wtest_dynamic_compute_overlayable_zorders_mixed_dynamic_and_non_dynamic_overlays_reverseznTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_non_dynamic_overlays_reverse   s   U2YYU2YY%-332>>>kkDk))w&-h77k71:...eWQZ((('!*---eWQZ(((gwqz***gaj111
+++eWQZ(((gwqz***gaj111
+++++r,   c                 Z   t          d t          d          D                       }t          d g           }|                    d          }||z  }|d          t	          |          }|                     |d         |d                    |                     ||d                    |                     ||d                    |                     ||d                    |                     |d	         |d	                    |                     ||d	                    |                     ||d	                    |                     ||d	                    |                     ||d                    |                     ||d                    |                     ||d                    d S )
Nc           	      N    i | ]"}|t          t          d |z                       #S r3   rI   .0is     r*   
<dictcomp>z|TestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_non_dynamic_ndoverlays.<locals>.<dictcomp>   ,    FFFq$uRT{{"3"3FFFr,   ra   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zzTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_non_dynamic_ndoverlays.<locals>.<lambda>   rP   r,   r;   rQ   rR   r8   r   r=   r   r7   r   rU   r   rV   rW   r'   	ndoverlayr/   rY   r0   r)   s         r*   Qtest_dynamic_compute_overlayable_zorders_mixed_dynamic_and_non_dynamic_ndoverlayszhTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_non_dynamic_ndoverlays   s   FFU1XXFFFGG	332>>>kkDk))[(-h77ilGAJ///i,,,gaj111
+++ilGAJ///i,,,gaj111
+++k71:...eWQZ(((GAJ/////r,   c                    t          d g t                      g          }t          d g           }|                    d          }||z  }|d          t          |          }|                     ||d                    |                     ||d                    |                     ||d                    |                     ||d	                    |                     ||d	                    |                     ||d	                    |                     ||d
                    |                     ||d
                    |                     ||d
                    d S )Nc                 N    t          d t          d          D                       S )Nc           	      N    i | ]"}|t          t          d |z                       #S rv   rI   rw   s     r*   rz   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_dynamic_ndoverlay_with_streams.<locals>.<lambda>.<locals>.<dictcomp>   ,    3[3[3[QAtE"Q$KK7H7H3[3[3[r,   ra   r   r7   rR   s    r*   r9   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_dynamic_ndoverlay_with_streams.<locals>.<lambda>   '    3[3[RWXYRZRZ3[3[3[)\)\ r,   r<   streamsc                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_dynamic_ndoverlay_with_streams.<locals>.<lambda>   rP   r,   r;   rQ   rR   r8   r   r=   ra   )r   r   rU   r   rV   rW   r~   s         r*   Ytest_dynamic_compute_overlayable_zorders_mixed_dynamic_and_dynamic_ndoverlay_with_streamszpTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_dynamic_ndoverlay_with_streams   sX   \\%'(**? ? ?	332>>>kkDk))[(-h77i,,,gaj111
+++i,,,gaj111
+++k71:...eWQZ(((GAJ/////r,   c                    t          d g t                      g          }t          d g           }|                    d          }||z  }|d          t          |                                          }|                     ||d                    |                     ||d                    |                     ||d                    |                     ||d	                    |                     ||d	                    |                     ||d	                    |                     ||d
                    |                     ||d
                    |                     ||d
                    d S )Nc                 N    t          d t          d          D                       S )Nc           	      N    i | ]"}|t          t          d |z                       #S rv   rI   rw   s     r*   rz   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_dynamic_ndoverlay_with_streams_cloned.<locals>.<lambda>.<locals>.<dictcomp>   r   r,   ra   r   rR   s    r*   r9   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_dynamic_ndoverlay_with_streams_cloned.<locals>.<lambda>   r   r,   r   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_dynamic_ndoverlay_with_streams_cloned.<locals>.<lambda>   rP   r,   r;   rQ   rR   r8   r   r=   ra   )r   r   rU   r   clonerV   rW   r~   s         r*   `test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_dynamic_ndoverlay_with_streams_clonedzwTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_dynamic_ndoverlay_with_streams_cloned   sb   \\%'(**? ? ?	332>>>kkDk))[(-hnn.>.>??i,,,gaj111
+++i,,,gaj111
+++k71:...eWQZ(((GAJ/////r,   c                 Z   t          d t          d          D                       }t          d g           }|                    d          }||z  }|d          t	          |          }|                     ||d                    |                     ||d                    |                     ||d                    |                     |d         |d	                    |                     ||d	                    |                     ||d	                    |                     ||d	                    |                     |d	         |d                    |                     ||d                    |                     ||d                    |                     ||d                    d S )
Nc           	      N    i | ]"}|t          t          d |z                       #S rv   rI   rw   s     r*   rz   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_non_dynamic_ndoverlays_reverse.<locals>.<dictcomp>   r{   r,   ra   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_non_dynamic_ndoverlays_reverse.<locals>.<lambda>   rP   r,   r;   rQ   rR   r8   r   r=   r}   r~   s         r*   Ytest_dynamic_compute_overlayable_zorders_mixed_dynamic_and_non_dynamic_ndoverlays_reversezpTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_mixed_dynamic_and_non_dynamic_ndoverlays_reverse   s   FFU1XXFFFGG	332>>>kkDk))y(-h77k71:...eWQZ(((GAJ///ilGAJ///i,,,gaj111
+++ilGAJ///i,,,gaj111
+++++r,   c                    t          d g           }t          d g           }t          d g           }|                    d          }|                    d          }|                    d          }||z                      d t                    }||z  }|d	          t	          |          }	|                     ||	d
                    |                     ||	d
                    |                     ||	d
                    |                     ||	d
                    |                     ||	d
                    |                     ||	d
                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    |                     ||	d                    d S )Nc                  :    t          t          d                    S r5   rI   r8   r,   r*   r9   zsTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reduced.<locals>.<lambda>  rJ   r,   r;   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zsTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reduced.<locals>.<lambda>  rP   r,   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zsTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reduced.<locals>.<lambda>  r_   r,   rQ   rR   r`   c                 ,    |                      d          S r$   getrR   s    r*   r9   zsTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reduced.<locals>.<lambda>  s    !%%(( r,   r8   r   r=   )r   rU   mapr   r   rV   rW   rb   s
             r*   Jtest_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reducedzaTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reduced  s   11<<<332>>>44B???ZZ$Z''
kkDk))||d|++{*//0B0BGLL\)	"-i88k71:...eWQZ(((j'!*---dGAJ'''wqz222,,,lGAJ///fgaj)))WQZ000wqz***gaj111
+++++r,   c                    t          d g           }t          d g           }t          d g           }t          d g           }|                    d          }|                    d          }|                    d          }||z  |z                      d	 t                    }||z  }	|	d
          t	          |	          }
|                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    |                     ||
d                    d S )Nc                  :    t          t          d                    S r5   rI   r8   r,   r*   r9   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reduced_layers_by_one.<locals>.<lambda>,  rJ   r,   r;   c                  :    t          t          d                    S r5   rI   r8   r,   r*   r9   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reduced_layers_by_one.<locals>.<lambda>-  s    4b		?? r,   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reduced_layers_by_one.<locals>.<lambda>.  rP   r,   c                  :    t          t          d                    S r5   r6   r8   r,   r*   r9   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reduced_layers_by_one.<locals>.<lambda>/  r_   r,   rQ   rR   r`   c                 `    |                      |                                 d d                   S )Nra   )r   itemsrR   s    r*   r9   zTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reduced_layers_by_one.<locals>.<lambda>3  s%    		RTSTRT@V@V r,   r8   r   r=   ra   )r   rU   r   r   r   rW   rV   )r'   r@   rq   r/   rc   rX   rY   rd   r0   re   r)   s              r*   Xtest_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reduced_layers_by_onezoTestOverlayableZorders.test_dynamic_compute_overlayable_zorders_three_deep_dynamic_layers_reduced_layers_by_one+  s   11<<<22"===332>>>44B???ZZ$Z''
kkDk))||d|++{*50556V6VX_``\)	"-i88gaj111
+++wqz222,,,wqz***WQZ000
+++WQZ000wqz***wqz222,,,
+++lGAJ///fgaj)))WQZ000wqz***
+++gaj111
+++++r,   N)__name__
__module____qualname__r+   r1   rB   rF   rL   rZ   rf   rm   rs   r   r   r   r   r   r   r8   r,   r*   r"   r"   %   s        8 8 8
H H H- - -- - -- - -+ + +", , ,@, , ,B, , ,00 0 0.0 0 0*0 0 0*, , ,,, , ,6!, !, !, !, !,r,   r"   c                       e Zd Zd Zd ZdS )TestInitializeDynamicc                     t          ddd          g}t          d |          }t          |           |                     |                                dg           d S )NN   )r   r3   )defaultr7   c                 &    t          d| dg          S Nr=   r   r   r   s    r*   r9   zKTestInitializeDynamic.test_dynamicmap_default_initializes.<locals>.<lambda>S      E1a)$4$4 r,   r;   r   r   r   r%   keysr'   dimsrA   s      r*   #test_dynamicmap_default_initializesz9TestInitializeDynamic.test_dynamicmap_default_initializesQ  sc    #q888944DAAA4   qc*****r,   c                     t          dg d          g}t          d |          }t          |           |                     |                                dg           d S )Nr   )r3   r   r   valuesc                 &    t          d| dg          S r   r   r   s    r*   r9   zRTestInitializeDynamic.test_dynamicmap_numeric_values_initializes.<locals>.<lambda>Y  r   r,   r;   r   r   r   s      r*   *test_dynamicmap_numeric_values_initializesz@TestInitializeDynamic.test_dynamicmap_numeric_values_initializesW  se    #jjj111244DAAA4   qc*****r,   N)r   r   r   r   r   r8   r,   r*   r   r   O  s2        + + ++ + + + +r,   r   c                   l    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 Zd Zd Zd ZdS )TestSplitDynamicMapOverlayz.
    Tests the split_dmap_overlay utility
    c                    t          d           | _        t          d           | _        t          d           | _        t	          g           | _        t          g           t          d          c| _        | _	        t          | j        | j	        g          | _        t          t          g           t          g           d          | _        d S )Nc                       t          g           S N)r   r8   r,   r*   r9   z2TestSplitDynamicMapOverlay.setUp.<locals>.<lambda>e  s    uRyy r,   c                  X    t          t          g           t          g           g          S r   )r   r   r   r8   r,   r*   r9   z2TestSplitDynamicMapOverlay.setUp.<locals>.<lambda>f  s    wb		6"::7N/O/O r,   c                  Z    t          t          g           t          g           d          S )Nr   r=   )r   r   r8   r,   r*   r9   z2TestSplitDynamicMapOverlay.setUp.<locals>.<lambda>g  s#    uRyyUSUYY;W;W1X1X r,   r   r   )r   dmap_elementdmap_overlaydmap_ndoverlayr   elementr   r   el1el2r   rr   r   r   r   r'   s    r*   setUpz TestSplitDynamicMapOverlay.setUpd  s    &'8'899&'O'OPP()X)XYYr{{!"XXuQxx$($(344"{2;r??#K#KLLr,   c                     | j         }t          |           | j         | j         g}|                     t          |          |           d S r   )r   r   r%   r   r'   testlayerss      r*   test_dmap_ndoverlayz.TestSplitDynamicMapOverlay.test_dmap_ndoverlaym  sM    "4   %t':;+D116:::::r,   c                     | j         }t          |           | j         | j         g}|                     t          |          |           d S r   )r   r   r%   r   r   s      r*   test_dmap_overlayz,TestSplitDynamicMapOverlay.test_dmap_overlays  sM     4   #T%67+D116:::::r,   c                     | j         | j        z  }t          |           | j         | j        | j        g}|                     t	          |          |           d S r   )r   r   r   r%   r   r   s      r*   "test_dmap_element_mul_dmap_overlayz=TestSplitDynamicMapOverlay.test_dmap_element_mul_dmap_overlayy  sZ     4#444   #T%68IJ+D116:::::r,   c                     | j         | j        z  }t          |           | j         | j        g}|                     t	          |          |           d S r   )r   r   r   r%   r   r   s      r*   $test_dmap_element_mul_dmap_ndoverlayz?TestSplitDynamicMapOverlay.test_dmap_element_mul_dmap_ndoverlay  sU     4#664   #T%89+D116:::::r,   c                     | j         | j        z  }t          |           | j         | j        g}|                     t	          |          |           d S r   )r   r   r   r%   r   r   s      r*   test_dmap_element_mul_elementz8TestSplitDynamicMapOverlay.test_dmap_element_mul_element  sS     4</4   #T\2+D116:::::r,   c                     | j         | j        z  }t          |           | j         | j        | j        g}|                     t          |          |           d S r   )r   rr   r   r   r   r%   r   r   s      r*   test_dmap_element_mul_overlayz8TestSplitDynamicMapOverlay.test_dmap_element_mul_overlay  sW     4</4   #TXtx8+D116:::::r,   c                     | j         | j        z  }t          |           | j         | j        g}|                     t	          |          |           d S r   )r   r   r   r%   r   r   s      r*   test_dmap_element_mul_ndoverlayz:TestSplitDynamicMapOverlay.test_dmap_element_mul_ndoverlay  sS     4>14   #T^4+D116:::::r,   c                     | j         | j        z  }t          |           | j         | j         | j        g}|                     t	          |          |           d S r   )r   r   r   r%   r   r   s      r*   $test_dmap_overlay_mul_dmap_ndoverlayz?TestSplitDynamicMapOverlay.test_dmap_overlay_mul_dmap_ndoverlay  sZ     4#664   #T%68KL+D116:::::r,   c                     | j         | j        z  }t          |           | j         | j         | j        g}|                     t	          |          |           d S r   )r   r   r   r%   r   r   s      r*   test_dmap_overlay_mul_elementz8TestSplitDynamicMapOverlay.test_dmap_overlay_mul_element  sX     4</4   #T%6E+D116:::::r,   c                     | j         | j        z  }t          |           | j         | j         | j        | j        g}|                     t          |          |           d S r   )r   rr   r   r   r   r%   r   r   s      r*   test_dmap_overlay_mul_overlayz8TestSplitDynamicMapOverlay.test_dmap_overlay_mul_overlay  s\     4</4   #T%6$(K+D116:::::r,   c                 ,   | j         | j        z  | j        z  | j        z  | j        z  | j        z  }t          |           | j         | j         | j        | j        | j        | j        | j        | j        g}| 	                    t          |          |           d S r   )r   r   r   rr   r   r   r   r   r   r%   r   r   s      r*   test_dmap_all_combinationsz5TestSplitDynamicMapOverlay.test_dmap_all_combinations  s    !DL043FF#0137>B4   #T%6%tx4;L." 	+D116:::::r,   c                     t          | j                  }|| j        z  }t          |           ||| j        g}|                     t          |          |           d S r   r   r   r   r   r%   r   r'   mappedr   r   s       r*   .test_dmap_overlay_operation_mul_dmap_ndoverlayzITestSplitDynamicMapOverlay.test_dmap_overlay_operation_mul_dmap_ndoverlay  sa    4,--++4   &$"56+D116:::::r,   c                     t          | j        d          }|| j        z  }t          |           ||| j        g}|                     t          |          |           d S )NT)link_inputsr   r   s       r*   5test_dmap_overlay_linked_operation_mul_dmap_ndoverlayzPTestSplitDynamicMapOverlay.test_dmap_overlay_linked_operation_mul_dmap_ndoverlay  sf    4,$???++4   &$"56+D116:::::r,   c                     | j                             d t                    }|| j        z  | j        z  }t          |           || j        | j        g}|                     t          |          |           d S )Nc                 ,    |                      d          S r$   r   rR   s    r*   r9   zjTestSplitDynamicMapOverlay.test_dmap_overlay_linked_operation_mul_dmap_element_ndoverlay.<locals>.<lambda>  s    q r,   )r   r   r   r   r   r   r%   r   r   s       r*   =test_dmap_overlay_linked_operation_mul_dmap_element_ndoverlayzXTestSplitDynamicMapOverlay.test_dmap_overlay_linked_operation_mul_dmap_element_ndoverlay  sv    "&&'9'97CC$t'::4   $,(;<+D116:::::r,   N)r   r   r   __doc__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   r,   r*   r   r   _  s        M M M; ; ;; ; ;; ; ;; ; ;; ; ;; ; ;; ; ;; ; ;; ; ;; ; ;; ; ;; ; ;; ; ;; ; ; ; ;r,   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestPlotColorUtilsc                 Z    t          g dd          }|                     |g d           d S )N#ffffff#959595#000000   r   r   r   r   r   r%   r'   colorss     r*   test_process_cmap_list_cyclez/TestPlotColorUtils.test_process_cmap_list_cycle  s;    ???CC!M!M!MNNNNNr,   c                 v    t          t          g d          d          }|                     |g d           d S )Nr   r   r   r   )r   r   r%   r   s     r*   test_process_cmap_cyclez*TestPlotColorUtils.test_process_cmap_cycle  sF    e+L+L+LMMMqQQ!M!M!MNNNNNr,   c                     |                      t                    5  t          dd           d d d            d S # 1 swxY w Y   d S )NNonexistentColorMap   )assertRaises
ValueErrorr   r   s    r*   test_process_cmap_invalid_strz0TestPlotColorUtils.test_process_cmap_invalid_str  s    z** 	3 	3.222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   9= =c                     |                      t                    5  t          h dd           d d d            d S # 1 swxY w Y   d S )N>   ABCr  )r  	TypeErrorr   r   s    r*   test_process_cmap_invalid_typez1TestPlotColorUtils.test_process_cmap_invalid_type  s    y)) 	- 	-!,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   ;??N)r   r   r   r   r  r  r  r8   r,   r*   r   r     sV        O O OO O O3 3 3- - - - -r,   r   c                   \    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 ZdS )TestMPLColormapUtilsc                     dd l }d S r$   )holoviews.plotting.mpl)r'   	holoviewss     r*   r   zTestMPLColormapUtils.setUp  s    %%%%%%r,   c                 Z    t          ddd          }|                     |g d           d S )Nfirer  
matplotlibprovider)r   #ed1400r   r   r   s     r*   test_mpl_colormap_firez+TestMPLColormapUtils.test_mpl_colormap_fire  s9    fa,???!B!B!BCCCCCr,   c                 Z    t          ddd          }|                     |g d           d S )Nfire_rr  r  r  )r   #eb1300r   r   r   s     r*   test_mpl_colormap_fire_rz-TestMPLColormapUtils.test_mpl_colormap_fire_r  s9    hLAAA!B!B!BCCCCCr,   c                 Z    t          ddd          }|                     |g d           d S )NGreysr  r  r  r   r   r   s     r*   test_mpl_colormap_name_palettez3TestMPLColormapUtils.test_mpl_colormap_name_palette  s9    gq<@@@!B!B!BCCCCCr,   c                     	 ddl m} |                    d          }n!# t          $ r ddlm}  |d          }Y nw xY wt          |dd          }|                     |g d           d S )	Nr   )	colormapsr  )get_cmapr  r  r  r   )r  r"  r   ImportErrormatplotlib.cmr#  r   r%   )r'   r"  cmapr#  r   s        r*   test_mpl_colormap_instancez/TestMPLColormapUtils.test_mpl_colormap_instance  s    	%,,,,,,==))DD 	% 	% 	% /.....8G$$DDD		% dA===!B!B!BCCCCCs    <<c                 V    t          dd          }|                     |g d           d S N
Category20r  )#1f77b4z#c5b0d5#9edae5r   r%   r   s     r*   test_mpl_colormap_categoricalz2TestMPLColormapUtils.test_mpl_colormap_categorical  s4    #L!44!B!B!BCCCCCr,   c                 h    t          dd          }|                     |g dd d d                    d S NCategory20_rr  )r+  z#8c564br,  r-  r   s     r*   %test_mpl_colormap_categorical_reversez:TestMPLColormapUtils.test_mpl_colormap_categorical_reverse  s?    #NA66!B!B!B44R4!HIIIIIr,   c                 V    t          dd          }|                     |g d           d S )NYlGnr  )#ffffe5z#77c578#004529r-  r   s     r*   test_mpl_colormap_sequentialz1TestMPLColormapUtils.test_mpl_colormap_sequential  4    #FA..!B!B!BCCCCCr,   c                 h    t          dd          }|                     |g dd d d                    d S NYlGn_rr  r6  z#78c679r7  r2  r-  r   s     r*   $test_mpl_colormap_sequential_reversez9TestMPLColormapUtils.test_mpl_colormap_sequential_reverse  ?    #Ha00!B!B!B44R4!HIIIIIr,   c                 V    t          dd          }|                     |g d           d S )NRdBur  )#67001fz#f6f6f6#053061r-  r   s     r*   test_mpl_colormap_divergingz0TestMPLColormapUtils.test_mpl_colormap_diverging	  r9  r,   c                 h    t          dd          }|                     |g dd d d                    d S )NRdBu_rr  )rB  z#f7f6f6rC  r2  r-  r   s     r*   #test_mpl_colormap_diverging_reversez8TestMPLColormapUtils.test_mpl_colormap_diverging_reverse  r?  r,   c                 V    t          dd          }|                     |g d           d S )Nviridisr   #440154z#30678dz#35b778z#fde724r-  r   s     r*   &test_mpl_colormap_perceptually_uniformz;TestMPLColormapUtils.test_mpl_colormap_perceptually_uniform  s4    #Iq11!M!M!MNNNNNr,   c                 h    t          dd          }|                     |g dd d d                    d S )N	viridis_rr   rJ  r2  r-  r   s     r*   .test_mpl_colormap_perceptually_uniform_reversezCTestMPLColormapUtils.test_mpl_colormap_perceptually_uniform_reverse  s@    #K33!M!M!MddPRd!STTTTTr,   N)r   r   r   r   r  r  r   r'  r.  r3  r8  r>  rD  rG  rL  rO  r8   r,   r*   r  r    s        & & &D D DD D DD D DD D DD D DJ J JD D DJ J JD D DJ J JO O OU U U U Ur,   r  c                   h    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 Zd Zd ZdS )TestBokehPaletteUtilsc                     dd l }dd l}d S r$   )bokeh.palettesholoviews.plotting.bokeh)r'   r    r  s      r*   r   zTestBokehPaletteUtils.setUp  s     ''''''r,   c           
          d}|D ]B}|                      t          t          t          |                              dk               Cd S )N)
accent
category20dark2
colorblindpastel1pastel2set1set2set3paired   )
assertTruelensetr   )r'   categoricalcats      r*   8test_bokeh_palette_categorical_palettes_not_interpolatedzNTestBokehPaletteUtils.test_bokeh_palette_categorical_palettes_not_interpolated   sZ    D 	K 	KCOOC$<S$A$A B BCCrIJJJJ	K 	Kr,   c                 Z    t          ddd          }|                     |g d           d S )Nr  r  r    r  )r   r  r   r   r   s     r*   test_bokeh_colormap_firez.TestBokehPaletteUtils.test_bokeh_colormap_fire'  s9    fa':::!B!B!BCCCCCr,   c                 Z    t          ddd          }|                     |g d           d S )Nr  r  r    r  )r   r  r   r   r   s     r*   test_bokeh_colormap_fire_rz0TestBokehPaletteUtils.test_bokeh_colormap_fire_r+  s9    hG<<<!B!B!BCCCCCr,   c                 V    t          dd          }|                     |g d           d S r)  r   r%   r   s     r*   test_bokeh_palette_categoricalz4TestBokehPaletteUtils.test_bokeh_palette_categorical/  s4    ),::!B!B!BCCCCCr,   c                 h    t          dd          }|                     |g dd d d                    d S r0  rl  r   s     r*   &test_bokeh_palette_categorical_reversez<TestBokehPaletteUtils.test_bokeh_palette_categorical_reverse3  s?    ).!<<!B!B!B44R4!HIIIIIr,   c                 V    t          dd          }|                     |g d           d S )Nr5  r  r=  rl  r   s     r*   test_bokeh_palette_sequentialz3TestBokehPaletteUtils.test_bokeh_palette_sequential7  4    )&!44!B!B!BCCCCCr,   c                 h    t          dd          }|                     |g dd d d                    d S r;  rl  r   s     r*   %test_bokeh_palette_sequential_reversez;TestBokehPaletteUtils.test_bokeh_palette_sequential_reverse;  ?    )(A66!B!B!B44R4!HIIIIIr,   c                 V    t          dd          }|                     |g d           d S )NrA  r  rB  z#f7f7f7rC  rl  r   s     r*   test_bokeh_palette_divergingz2TestBokehPaletteUtils.test_bokeh_palette_diverging?  rr  r,   c                 h    t          dd          }|                     |g dd d d                    d S )NrF  r  rw  r2  rl  r   s     r*   $test_bokeh_palette_diverging_reversez:TestBokehPaletteUtils.test_bokeh_palette_diverging_reverseC  ru  r,   c                 V    t          dd          }|                     |g d           d S )NViridisr   rK  z#30678Dz#35B778z#FDE724rl  r   s     r*   'test_bokeh_palette_uniform_interpolatedz=TestBokehPaletteUtils.test_bokeh_palette_uniform_interpolatedG  4    ))Q77!M!M!MNNNNNr,   c                 V    t          dd          }|                     |g d           d S )NrI  r   r}  rl  r   s     r*   'test_bokeh_palette_perceptually_uniformz=TestBokehPaletteUtils.test_bokeh_palette_perceptually_uniformK  r  r,   c                 h    t          dd          }|                     |g dd d d                    d S )NrN  r   r}  r2  rl  r   s     r*   /test_bokeh_palette_perceptually_uniform_reversezETestBokehPaletteUtils.test_bokeh_palette_perceptually_uniform_reverseO  s@    )+q99!M!M!MddPRd!STTTTTr,   c                 p    g d}g d}t          ||d          \  }}|                     |g d           d S )N)r   &   I   _   n         )#5ebaff#00faf4#ffffcc#ffe775#ffc140#ff8f20r3   r   )	r  r  r  r  r  r  r  r  r  r   r%   r'   levelsr   r&  limss        r*   test_color_intervalsz*TestBokehPaletteUtils.test_color_intervalsS  sk    ///SSS$VVr:::
d  A  A  A 	B 	B 	B 	B 	Br,   c                     g d}g d}t          ||dd          \  }}|                     |g d           |                     |d           d S )N)r   r  r  r  r  r  r  i  )r  r  r  r  r  r  z#ff6060)r3   Z   d   )clipr   )r  r  r  r  r  r  r  r  r  r  s        r*   test_color_intervals_clippedz2TestBokehPaletteUtils.test_color_intervals_clipped[  s}    444^^^$VV(cJJJ
d  A  A  A 	B 	B 	Bx(((((r,   N)r   r   r   r   rf  rh  rj  rm  ro  rq  rt  rx  rz  r~  r  r  r  r  r8   r,   r*   rQ  rQ    s       ( ( (K K KD D DD D DD D DJ J JD D DJ J JD D DJ J JO O OO O OU U UB B B) ) ) ) )r,   rQ  c                   &    e Zd Zd Zd Zd Zd ZdS )TestPlotUtilsc                 |   t          j        dddd          t          j        dddd          }}t          j        ||          \  }}t          t	          |                                |                                f                    }|                     t          t          |d                    d           d S )Nr          @皙?float32dtyper   )	nparangemeshgridr   r   flattenr%   floatroundr'   xsysXYdists         r*   "test_get_min_distance_float32_typez0TestPlotUtils.test_get_min_distance_float32_typef  s    )Ar2Y777)Ar2Y777 {2r""1		QYY[['A B BCCuT1~~..44444r,   c                 B   t          j        ddd          t          j        ddd          }}t          j        ||          \  }}t          t	          |                                |                                f                    }|                     |d           d S Nr   r3   int32r  g      ?)r  r  r  r   r   r  r%   r  s         r*    test_get_min_distance_int32_typez.TestPlotUtils.test_get_min_distance_int32_typem  s    )Ar111)Ar111 {2r""1		QYY[['A B BCCs#####r,   c                 j   t          j        dddd          t          j        dddd          }}t          j        ||          \  }}t          t	          |                                |                                f                    }|                     |t          j        d                     d S )Nr   r  r  r  r  )r  r  r  r   r   r  r%   r  r  s         r*   +test_get_min_distance_float32_type_no_scipyz9TestPlotUtils.test_get_min_distance_float32_type_no_scipyt  s    )Ar2Y777)Ar2Y777 {2r""1&vqyy{{AIIKK.H'I'IJJrz#/////r,   c                 B   t          j        ddd          t          j        ddd          }}t          j        ||          \  }}t          t	          |                                |                                f                    }|                     |d           d S r  )r  r  r  r   r   r  r%   r  s         r*   )test_get_min_distance_int32_type_no_scipyz7TestPlotUtils.test_get_min_distance_int32_type_no_scipy{  s    )Ar111)Ar111 {2r""1&vqyy{{AIIKK.H'I'IJJs#####r,   N)r   r   r   r  r  r  r  r8   r,   r*   r  r  d  sP        5 5 5$ $ $0 0 0$ $ $ $ $r,   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestRangeUtilitiesc                 P    t          d          }|                     |d           d S )N皙?)r  r  r  r   r%   r'   paddings     r*   test_get_axis_padding_scalarz/TestRangeUtilities.test_get_axis_padding_scalar  s+    "3''/22222r,   c                 P    t          d          }|                     |d           d S )N)r  r  )r  r  r   r  r  s     r*   test_get_axis_padding_tuplez.TestRangeUtilities.test_get_axis_padding_tuple  s+    ":..-00000r,   c                 P    t          d          }|                     |d           d S )N)r  r  g333333?r  r  s     r*   test_get_axis_padding_tuple_3dz1TestRangeUtilities.test_get_axis_padding_tuple_3d  s+    "?33/22222r,   c                     t          ddd          }t          g d|          }t          |i |          \  }}}|                     |d           |                     |d           |                     |d           d S )Nrl   r   r  r   ra   
soft_ranger7   r=   ra   r  vdims)r=   r  r   r   r   r%   )r'   dimr   drangesrangehranges         r*   test_get_range_from_elementz.TestRangeUtilities.test_get_range_from_element  s    f===)))3///!*7B!<!<(((((((((((r,   c                    t          ddd          }t          g d|          }dddd	d
i}t          |||          \  }}}|                     |d	           |                     |d           |                     |d           d S )Nrl   r  r  r  r  r  )r2  r   )r2  r  )g      g      @)softharddatar  )r'   r  r   rangesr  r  r  s          r*   test_get_range_from_rangesz-TestRangeUtilities.test_get_range_from_ranges  s    f===)))3///+NNO!*7FC!@!@---))))))))r,   N)r   r   r   r  r  r  r  r  r8   r,   r*   r  r    s_        3 3 31 1 13 3 3) ) )* * * * *r,   r  )1numpyr  r  r   r   r   holoviews.core.optionsr   r   holoviews.core.spacesr   r	   holoviews.elementr
   r   r   r   r   r   r   r   holoviews.element.comparisonr   holoviews.operationr   holoviews.plotting.utilr   r   r   r   r   r   r   r   r   r   r   holoviews.streamsr   	renderersbokeh_rendererr"   r   r   r   r  rQ  r  r  r8   r,   r*   <module>r     s       3 3 3 3 3 3 3 3 3 3 / / / / / / / / 5 5 5 5 5 5 5 5	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 < ; ; ; ; ; ) ) ) ) ) )                          ' & & & & &)g, g, g, g, g,/ g, g, g,T	+ + + + +. + + + f; f; f; f; f;!3 f; f; f;R- - - - -+ - - -&<U <U <U <U <U- <U <U <U~G) G) G) G) G). G) G) G)T$ $ $ $ $& $ $ $>* * * * *+ * * * * *r,   