
    eF                        d dl mZ d dlZd dlZd dlZd dlmZm	Z	 d dl
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  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dS )    )SkipTestN)CustomJSHover	HoverTool)RGBImage
ImageStackRaster)ImageStackPlot)bokeh34   )TestBokehPlotbokeh_rendererc                   \    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 )TestRasterPlotc                     t          t          j                            dd                                        d          }|                     |dd           d S )N
   T)logz   )r   nprandomrandopts_test_colormapping)selfimgs     Nlib/python3.11/site-packages/holoviews/tests/plotting/bokeh/test_rasterplot.pytest_image_colormappingz&TestRasterPlot.test_image_colormapping   sN    BINN2r**++00d0;;Q-----    c                 v   t          t          j        ddgddgg                    }t          j        |          }|j        d         }|j        d         }|j        dk    sJ |j        dk    sJ t          j        	                    |j
        d         d         t          j        ddgddgg                     d S )NTFcolor_mappersourcer   r   image)r   r   arrayr   get_plothandleslowhightestingassert_equaldatar   r   plotcmapperr!   s        r   test_image_boolean_arrayz'TestRasterPlot.test_image_boolean_array   s    BHtUmeT];<<==&s++,~.h'{a|q    

G 4Q 7Aq6Aq6BR9S9STTTTTr   c                    t          t          j        ddgddgg                                        d          }t	          j        |          }|j        d         }|j        d         }|j        dk    sJ |j        dk    sJ t          j	        
                    |j        d         d         t          j        dt          j        gt          j        dgg                     d S )Nr   r   r   nodatar    r!   r"   r   r   r#   r   r   r$   r%   r&   r'   r(   r)   r*   nanr+   s        r   test_nodata_arrayz TestRasterPlot.test_nodata_array   s    BHq!fq!f-..//44A4>>&s++,~.h'{a|q    

K #RX26{RVQK.H%I%I	
 	
 	
 	
 	
r   c                    t          t          j        ddgddggd                                        d          }t	          j        |          }|j        d         }|j        d         }|j        dk    sJ |j        dk    sJ t          j	        
                    |j        d	         d         t          j        dt          j        gt          j        dgg                     d S )
Nr   r   r   uint32)dtyper0   r    r!   r"   r2   r+   s        r   test_nodata_array_uintz%TestRasterPlot.test_nodata_array_uint(   s    BHq!fq!f-X>>>??DDADNN&s++,~.h'{a|q    

K #RX26{RVQK.H%I%I	
 	
 	
 	
 	
r   c                 \   d}t          j        dd||z  dz                                ||d          }t          |          j                            d          }t          j        |          }|j        d         j	        d         d         }|dk    
                                dk    sJ d S )Nr   r   r      )Rr!   r"   )r   linspacereshaper   redimr1   r   r$   r%   r*   sum)r   Nrgb_drgbr,   
image_datas         r   test_nodata_rgbzTestRasterPlot.test_nodata_rgb3   s    Aq!a%!),,44Q1==%jj%%%**&s++\(+09!<
a$$&&!++++++r   c                    t          j        g dg dg          }t          |                              d          }t	          j        |          }|j        d         }t           j                            |j	        d         d         |j
                   |j	        d         d         dk    sJ |j	        d	         d         dk    sJ |j	        d
         d         dk    sJ |j	        d         d         dk    sJ d S )Nr   r   r   r:         Tinvert_axesr!   r"   r   xydwr   dhr:   )r   r#   r	   r   r   r$   r%   r(   r)   r*   Tr   arrrasterr,   r!   s        r   test_raster_invert_axesz&TestRasterPlot.test_raster_invert_axes;   s    h			999-..!!d!33&v..h'

G 4Q 7???{3"a''''{3"a''''{4 #q(((({4 #q((((((r   c                 ,   t          j        g dg dg          }t          |                              d          }t	          j        |          }|j        d         }t           j                            |j	        d         d         t          j
        |          d d dd d df                    |j	        d	         d         d
k    sJ |j	        d         d         d
k    sJ |j	        d         d         dk    sJ |j	        d         d         dk    sJ d S )NrF   rG   TrJ   r!   r"   r   rL         rM   rN   r   rO   )r   r#   r   r   r   r$   r%   r(   r)   r*   rot90rQ   s        r   test_image_invert_axesz%TestRasterPlot.test_image_invert_axesG   s   h			999-..sT22&v..h'

G 4Q 7#tttTTrTz9RSSS{3"d****{3"d****{4 #q(((({4 #q((((((r   c                    t           j                            dd          }t          |                              d          }t          j        |          }|j        d         }|j        dk    sJ |j	        dk    sJ |j        d         j
        }|d         dgk    sJ |d	         d
gk    sJ |d         d
gk    sJ |d         dgk    sJ t           j                            |d         d         |d d d                    d S )Nr   Tinvert_xaxisx_range      ?rW   r!   rM   rO         ?rN   rL   r"   r   rV   r   r   r   r   r   r   r$   r%   startendr*   r(   r)   )r   rR   r   r,   r]   cdatas         r   test_image_invert_xaxisz&TestRasterPlot.test_image_invert_xaxisR      innR$$Cjjoo4o00&s++,y)}####{d""""X&+SzdV####T{se####T{se####SzdV####

gq 13ttt9=====r   c                    t           j                            dd          }t          |                              d          }t          j        |          }|j        d         }|j        dk    sJ |j	        dk    sJ |j        d         j
        }|d         dgk    sJ |d	         d
gk    sJ |d         d
gk    sJ |d         dgk    sJ t           j                            |d         d         |d d d                    d S )Nr   Tinvert_yaxisy_ranger^   rW   r!   rL   rO   r_   rN   rM   r"   r   rV   r`   )r   rR   r   r,   ri   rc   s         r   test_image_invert_yaxisz&TestRasterPlot.test_image_invert_yaxisa   re   r   c                    t          t          j                            ddd                                        d          }t          j        |          }|j        d         }|j        dk    sJ |j	        dk    sJ |j        d         j
        }|d	         dgk    sJ |d
         dgk    sJ |d         dgk    sJ |d         dgk    sJ d S )Nr   r:   Tr[   r]   r^   rW   r!   rM   rO   r_   rN   rL   r   r   r   r   r   r   r$   r%   ra   rb   r*   )r   rB   r,   r]   rc   s        r   test_rgb_invert_xaxisz$TestRasterPlot.test_rgb_invert_xaxisp       ")..R++,,11t1DD&s++,y)}####{d""""X&+SzdV####T{se####T{se####SzdV######r   c                    t          t          j                            ddd                                        d          }t          j        |          }|j        d         }|j        dk    sJ |j	        dk    sJ |j        d         j
        }|d	         dgk    sJ |d
         dgk    sJ |d         dgk    sJ |d         dgk    sJ d S )Nr   r:   Trg   ri   r^   rW   r!   rL   rO   r_   rN   rM   rl   )r   rB   r,   ri   rc   s        r   test_rgb_invert_yaxisz$TestRasterPlot.test_rgb_invert_yaxis|   rn   r   c                    t          j        d          }t          j        d          }|                    ddgddgdddgdd	gd
dggfddg|t          j        g||ggfd          }t          |                              dg          }t          j	        |          }|j
        d         }|j        d         dk    sJ d|j        v sJ t          r|j        d         dk    sJ d S t          |j        d         t                    sJ d S )Nxarrayz
2020-01-01rW   r^   rL   rM   rM   rL   r   r   r   r:   )Count	Timestamp)coords	data_varshovertoolsrV   )ru   z@{Timestamp}{%F %T}z@{Timestamp}datetime)pytestimportorskippdru   DatasetNaTr   r   r   r$   r%   tooltips
formattersr   
isinstancer   )r   xrtsr*   r   r,   rx   s          r   test_image_datetime_hoverz(TestRasterPlot.test_image_datetime_hover   s?    **\,''zzD#;77*1v1v&67"CjB<"b*BC   
 
 DkkgY//&s++W%~b!%IIIII!11111 	O#N3zAAAAAAe.~>NNNNNNNr   c                 D   t          dgdt          d          i          }t          t          j        d                              dd                                        |g          }t          j        |          }|j	        d	         }|j
        |j
        k    sJ d S )
N)rL   z
$x{custom}rL   zreturn value + '2')code)r   r   d   r   ry   rx   )r   r   r   r   onesr=   r   r   r$   r%   r   )r   
hover_toolr   r,   rx   s        r   test_image_hover_with_custom_jsz.TestRasterPlot.test_image_hover_with_custom_js   s    )*]Pd=e=e=e7f
 
 

 BGCLL((R001166j\6JJ&s++W%:#8888888r   N)__name__
__module____qualname__r   r.   r4   r8   rD   rT   rY   rd   rj   rm   rp   r   r    r   r   r   r      s        . . .U U U	
 	
 	
	
 	
 	
, , ,
) 
) 
)	) 	) 	)> > >> > >
$ 
$ 
$
$ 
$ 
$O O O,	9 	9 	9 	9 	9r   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 ZdS )_ImageStackBaseFc                    t          j        | j                  }t          j        | j                  dz   }| j        | j        | j        }}}t          |||||fddgg d          }t          j	        |          }|j
        d         }t           j                            |j        d         d         d d d d df         |           t           j                            |j        d         d         d d d d d	f         |           t           j                            |j        d         d         d d d d d
f         |           |j        d         d         dk    sJ |j        d         d         dk    sJ |j        d         d         | j        k    sJ |j        d         d         | j        k    sJ t          |t                    sJ d S NrI   rL   rM   abckdimsvdimsr!   r"   r   r   r   rW         @rN   rO   r   arangexsizeysizer   r   r   r   r   r$   r%   r(   r)   r*   r   r
   	r   rL   rM   r   r   r   	img_stackr,   r!   s	            r   test_image_stack_tuplez&_ImageStackBase.test_image_stack_tuple   s   Idj!!Idj!!A%&$&$&a11aAsCjXXX	&y11h'

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD{3"d****{3"c)))){4 #tz1111{4 #tz1111$///////r   c                    t          j        | j                  }t          j        | j                  dz   }| j        | j        | j        }}}t          |||||fddg          }|j        g dk    sJ t          j
        |          }|j        d         }t           j                            |j        d         d         d d d d df         |           t           j                            |j        d         d         d d d d d	f         |           t           j                            |j        d         d         d d d d d
f         |           |j        d         d         dk    sJ |j        d         d         dk    sJ |j        d         d         | j        k    sJ |j        d         d         | j        k    sJ t          |t                     sJ d S )NrI   rL   rM   r   )level_0level_1level_2r!   r"   r   r   r   rW   r   rN   rO   )r   r   r   r   r   r   r   r   r   r   r$   r%   r(   r)   r*   r   r
   r   s	            r   'test_image_stack_tuple_unspecified_dimsz7_ImageStackBase.test_image_stack_tuple_unspecified_dims   s   Idj!!Idj!!A%&$&$&a11aAsCjAAA	"C"C"CCCCC&y11h'

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD{3"d****{3"c)))){4 #tz1111{4 #tz1111$///////r   c                    t          j        | j                  }t          j        | j                  dz   }| j        | j        | j        }}}|||||d}t          |ddgg d          }t          j	        |          }|j
        d         }	t           j                            |	j        d         d	         d d d d d	f         |           t           j                            |	j        d         d	         d d d d d
f         |           t           j                            |	j        d         d	         d d d d df         |           |	j        d         d	         dk    sJ |	j        d         d	         dk    sJ |	j        d         d	         | j        k    sJ |	j        d         d	         | j        k    sJ t          |t                    sJ d S )NrI   rL   rM   r   r   r   rL   rM   r   r   r!   r"   r   r   r   rW   r   rN   rO   r   
r   rL   rM   r   r   r   dsr   r,   r!   s
             r   test_image_stack_dictz%_ImageStackBase.test_image_stack_dict   s   Idj!!Idj!!A%&$&$&a1111155r#s???KKK	&y11h'

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD{3"d****{3"c)))){4 #tz1111{4 #tz1111$///////r   c                    t          j        | j                  }t          j        | j                  dz   }| j        | j        | j        }}}|||||d}t          |          }t          j	        |          }|j
        d         }	t           j                            |	j        d         d         d d d d df         |           t           j                            |	j        d         d         d d d d df         |           t           j                            |	j        d         d         d d d d df         |           |	j        d         d         d	k    sJ |	j        d
         d         dk    sJ |	j        d         d         | j        k    sJ |	j        d         d         | j        k    sJ t          |t                    sJ d S )NrI   r   r!   r"   r   r   r   rL   rW   rM   r   rN   rO   r   r   s
             r   &test_image_stack_dict_unspecified_dimsz6_ImageStackBase.test_image_stack_dict_unspecified_dims   s   Idj!!Idj!!A%&$&$&a1111155rNN	&y11h'

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD{3"d****{3"c)))){4 #tz1111{4 #tz1111$///////r   c                    | j         | j        | j        }}}|||d}t          |          }t	          j        |          }|j        d         }t          j        	                    |j
        d         d         d d d d df         |           t          j        	                    |j
        d         d         d d d d df         |           t          j        	                    |j
        d         d         d d d d df         |           |j
        d         d         dk    sJ |j
        d	         d         dk    sJ |j
        d
         d         | j        k    sJ |j
        d         d         | j        k    sJ t          |t                    sJ d S )Nr   r!   r"   r   r   r   rL   rW   rM   rN   rO   r   r   r   r   r   r$   r%   r   r(   r)   r*   r   r   r   r
   r   r   r   r   r   r   r,   r!   s           r   test_image_stack_dict_no_kdimsz._ImageStackBase.test_image_stack_dict_no_kdims   s   &$&$&a111%%rNN	&y11h'

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD{3"d****{3"d****{4 #tz1111{4 #tz1111$///////r   c                    | j         | j        | j        }}}|||g}t          |          }t	          j        |          }|j        d         }t          j        	                    |j
        d         d         d d d d df         |           t          j        	                    |j
        d         d         d d d d df         |           t          j        	                    |j
        d         d         d d d d df         |           |j
        d         d         dk    sJ |j
        d         d         dk    sJ |j
        d	         d         | j        k    sJ |j
        d
         d         | j        k    sJ t          |t                    sJ d S )Nr!   r"   r   r   r   rL   rW   rM   rN   rO   r   r   s           r   test_image_stack_listz%_ImageStackBase.test_image_stack_list  s   &$&$&a1AYrNN	&y11h'

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD{3"d****{3"d****{4 #tz1111{4 #tz1111$///////r   c                    	 dd l }n# t          $ r t          d          w xY wt          j        | j                  }t          j        | j                  dz   }| j        | j        | j	        }}}|
                    ddg|fddg|fddg|fd||d          }t          |ddg	          }t          j        |          }	|	j        d
         }
t          j                            |
j        d         d         d d d d df         |           t          j                            |
j        d         d         d d d d df         |           t          j                            |
j        d         d         d d d d df         |           |
j        d         d         dk    sJ |
j        d         d         dk    sJ |
j        d         d         | j        k    sJ |
j        d         d         | j        k    sJ t%          |	t&                    sJ d S )Nr   #xarray not available for core testsrI   rM   rL   r   rs   rv   r   r!   r"   r   r   rW   r   rN   rO   )rr   ImportErrorr   r   r   r   r   r   r   r   r   r   r   r$   r%   r(   r)   r*   r   r
   )r   r   rL   rM   r   r   r   r   r   r,   r!   s              r   test_image_stack_xarray_datasetz/_ImageStackBase.test_image_stack_xarray_dataset  s6   	B 	B 	B 	B@AAA	B Idj!!Idj!!A%&$&$&a1ZZ:q/#sQSz1oNN##  
 
 r#s444	&y11h'

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD{3"d****{3"c)))){4 #tz1111{4 #tz1111$///////    !c                 >   	 dd l }n# t          $ r t          d          w xY wt          j        | j                  }t          j        | j                  dz   }| j        | j        | j	        }}}|
                    ddg|fddg|fddg|fd||d                              d	          }t          |d	g
          }t          j        |          }	|	j        d         }
t          j                            |
j        d         d         d d d d df         |           t          j                            |
j        d         d         d d d d df         |           t          j                            |
j        d         d         d d d d df         |           |
j        d         d         dk    sJ |
j        d         d         dk    sJ |
j        d         d         | j        k    sJ |
j        d         d         | j        k    sJ t'          |	t(                    sJ d S )Nr   r   rI   rM   rL   r   rs   r   level)r   r!   r"   r   r   rW   r   rN   rO   )rr   r   r   r   r   r   r   r   r   r   r   to_arrayr   r   r$   r%   r(   r)   r*   r   r
   )r   r   rL   rM   r   r   r   dar   r,   r!   s              r   !test_image_stack_xarray_dataarrayz1_ImageStackBase.test_image_stack_xarray_dataarray,  sF   	B 	B 	B 	B@AAA	B Idj!!Idj!!A%&$&$&a1ZZ:q/#sQSz1oNN##  
 
 (7

 	 r'333	&y11h'

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD{3"d****{3"c)))){4 #tz1111{4 #tz1111$///////r   c                    t          j        | j                  }t          j        | j                  dz   }| j        | j        | j        }}}t          |||||fddgg d          }t          j	        |
                    d                    }|j        d         }t           j                            |j        d	         d
         d d d d d
f         |           t           j                            |j        d	         d
         d d d d df         |           t           j                            |j        d	         d
         d d d d df         |           |j        d         d
         dk    sJ |j        d         d
         dk    sJ |j        d         d
         | j        k    sJ |j        d         d
         | j        k    sJ d S )NrI   rL   rM   r   r   Tr[   r!   r"   r   r   r   rW   r   rN   rO   r   r   r   r   r   r   r   r   r   r$   r   r%   r(   r)   r*   r   s	            r   test_image_stack_invert_xaxisz-_ImageStackBase.test_image_stack_invert_xaxisF     Idj!!Idj!!A%&$&$&a11aAsCjXXX	&y~~4~'H'HIIh'

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD{3"d****{3"c)))){4 #tz1111{4 #tz111111r   c                    t          j        | j                  }t          j        | j                  dz   }| j        | j        | j        }}}t          |||||fddgg d          }t          j	        |
                    d                    }|j        d         }t           j                            |j        d	         d
         d d d d d
f         |           t           j                            |j        d	         d
         d d d d df         |           t           j                            |j        d	         d
         d d d d df         |           |j        d         d
         dk    sJ |j        d         d
         dk    sJ |j        d         d
         | j        k    sJ |j        d         d
         | j        k    sJ d S )NrI   rL   rM   r   r   Trg   r!   r"   r   r   r   rW   r   rN   rO   r   r   s	            r   test_image_stack_invert_yaxisz-_ImageStackBase.test_image_stack_invert_yaxisV  r   r   c                    t          j        | j                  }t          j        | j                  dz   }| j        | j        | j        }}}t          |||||fddgg d          }t          j	        |
                    d                    }|j        d         }t           j                            |j        d	         d
         d d d d d
f         j        |           t           j                            |j        d	         d
         d d d d df         j        |           t           j                            |j        d	         d
         d d d d df         j        |           |j        d         d
         dk    sJ |j        d         d
         dk    sJ |j        d         d
         | j        k    sJ |j        d         d
         | j        k    sJ d S )NrI   rL   rM   r   r   TrJ   r!   r"   r   r   r   r   rW   rN   rO   )r   r   r   r   r   r   r   r   r   r$   r   r%   r(   r)   r*   rP   r   s	            r   test_image_stack_invert_axesz,_ImageStackBase.test_image_stack_invert_axesf  s   Idj!!Idj!!A%&$&$&a11aAsCjXXX	&y~~$~'G'GHHh'

G 4Q 7111a @ BAFFF

G 4Q 7111a @ BAFFF

G 4Q 7111a @ BAFFF{3"c)))){3"d****{4 #tz1111{4 #tz111111r   c                 J   | j         | j        | j        }}}t          j        |||f          }t          |ddgg d          }t          j        |          }|j        d         }t          j	        
                    |j        d         d         d d d d df         |           t          j	        
                    |j        d         d         d d d d df         |           t          j	        
                    |j        d         d         d d d d d	f         |           |j        d         d         d
k    sJ |j        d         d         d
k    sJ |j        d         d         | j        k    sJ |j        d         d         | j        k    sJ t          |t                    sJ d S )NrL   rM   r   r   r!   r"   r   r   r   rW   rN   rO   )r   r   r   r   dstackr   r   r$   r%   r(   r)   r*   r   r   r   r
   )r   r   r   r   r*   r   r,   r!   s           r   test_image_stack_arrayz&_ImageStackBase.test_image_stack_arrayw  s   &$&$&a1y!Q##tC:___MMM	&y11h'

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD{3"d****{3"d****{4 #tz1111{4 #tz1111$///////r   c                    t          j        | j                  }t          j        | j                  dz   }| j        | j        | j        }}}||t          j        |||f          f}t          |ddgg d          }t          j
        |          }|j        d         }	t           j                            |	j        d         d         d d d d df         |           t           j                            |	j        d         d         d d d d d	f         |           t           j                            |	j        d         d         d d d d d
f         |           |	j        d         d         dk    sJ |	j        d         d         dk    sJ |	j        d         d         | j        k    sJ |	j        d         d         | j        k    sJ t          |t                     sJ d S r   )r   r   r   r   r   r   r   r   r   r   r$   r%   r(   r)   r*   r   r
   )
r   rL   rM   r   r   r   r*   r   r,   r!   s
             r   %test_image_stack_tuple_single_3darrayz5_ImageStackBase.test_image_stack_tuple_single_3darray  s   Idj!!Idj!!A%&$&$&a11biAq	**+tC:___MMM	&y11h'

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD

G 4Q 7111a @!DDD{3"d****{3"c)))){4 #tz1111{4 #tz1111$///////r   N)r   r   r   __test__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s        H0 0 0 0 0 0$0 0 0$0 0 0$0 0 0 0 0 0 0 0 040 0 042 2 2 2 2 2 2 2 2"0 0 0"0 0 0 0 0r   r   c                   "     e Zd ZdZ fdZ xZS )TestImageStackEvenTc                     t          j        t           j        t           j        dgt           j        gdz  t           j        gdz  g          | _        t          j        t           j        gdz  ddt           j        gt           j        gdz  g          | _        t          j        t           j        gdz  t           j        gdz  g dg          | _        d| _        d| _        t                      	                                 d S )Nr   r:   r   r   r   
r   r#   r3   r   r   r   r   r   supersetUpr   	__class__s    r   r   zTestImageStackEven.setUp  s    BFBFA.1rvhlKLLBF8a<!Q"&AFGGBF8a<"&AyyyABB

r   r   r   r   r   r   __classcell__r   s   @r   r   r     =        H        r   r   c                   "     e Zd ZdZ fdZ xZS )TestImageStackUneven1Tc                 Z   t          j        t           j        t           j        dgt           j        gdz  t           j        gdz  t           j        gdz  g          | _        t          j        t           j        gdz  ddt           j        gt           j        gdz  t           j        gdz  g          | _        t          j        t           j        gdz  t           j        gdz  g dt           j        gdz  g          | _        d| _        d| _        t                      	                                 d S )Nr   r:   r   rH   r   r   s    r   r   zTestImageStackUneven1.setUp  s    fbfa 26(Q,1rvhlK
 
 BF8a<!Q"&AxRS|TUUBF8a<"&Ayyy26(Q,OPP

r   r   r   s   @r   r   r     s=        H        r   r   c                   "     e Zd ZdZ fdZ xZS )TestImageStackUneven2Tc                 ,   t          j        t           j        t           j        dt           j        gt           j        gdz  t           j        gdz  g          | _        t          j        t           j        gdz  ddt           j        t           j        gt           j        gdz  g          | _        t          j        t           j        gdz  t           j        gdz  g dg          | _        d| _        d| _        t                      	                                 d S )Nr   rH   )r   r   r   r   r:   r   r   s    r   r   zTestImageStackUneven2.setUp  s    BFBFArv61rvhQRlSTTBF8a<!Q)?"&ANOOBF8a<"&A|||DEE

r   r   r   s   @r   r   r     r   r   r   )unittestr   numpyr   pandasr~   r|   bokeh.modelsr   r   holoviews.elementr   r   r   r	   holoviews.plotting.bokeh.rasterr
   holoviews.plotting.bokeh.utilr   	test_plotr   r   r   r   r   r   r   r   r   r   <module>r      s                  1 1 1 1 1 1 1 1 < < < < < < < < < < < < : : : : : : 1 1 1 1 1 1 4 4 4 4 4 4 4 4X9 X9 X9 X9 X9] X9 X9 X9tp0 p0 p0 p0 p0n p0 p0 p0f	 	 	 	 	 	 	 	    O   	 	 	 	 	O 	 	 	 	 	r   