
    e!                     V    d dl Zd dlmZ d dlmZmZ ddlmZm	Z	  G d de          Z
dS )    N)ColorBar)ImageQuadMesh   )TestBokehPlotbokeh_rendererc                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestQuadMeshPlotc           	          d}t          j        dd|          }t          j        dd|          }t          ||t           j                            |dz
  |dz
            f          }|                     |d           d S )N   r      
      )nplogspacelinspacer   randomrand_test_colormapping)selfnxsysqmeshs        Plib/python3.11/site-packages/holoviews/tests/plotting/bokeh/test_quadmeshplot.pytest_quadmesh_colormappingz+TestQuadMeshPlot.test_quadmesh_colormapping   su    [Aq!![B"""b")..1ac":":;<<q)))))    c                 @   t          j        g dg dg          }t          t          |                                        ddg          }t          j        |          }|j        d         }|                     |j	        d         |
                    dd	
                                                     |                     |j	        d         |
                    d                     |                     |j	        d         |
                    d                     d S )Nr   r   r   r         Thover)invert_axestoolssourcezr   Fflatxr   yr   )r   arrayr   r   optsr   get_plothandlesassertEqualdatadimension_valuesflatten)r   arrr   plotr&   s        r   test_quadmesh_invert_axesz*TestQuadMeshPlot.test_quadmesh_invert_axes   s    h			999-..s$$))d7))LL&u--h'S)5+A+A!%+A+P+P+X+X+Z+Z[[[S)5+A+A!+D+DEEES)5+A+A!+D+DEEEEEr   c           	         d}t          j        dd|          }t          j        dd|          }t          ||t           j                            |dz
  |dz
            f                              d          }t          j        |          }| 	                    |j
        d         t                     |                     |j
        d         j        |j
        d                    d S )	Nr   r   r   r   T)colorbarr8   color_mapper)r   r   r   r   r   r   r-   r   r.   assertIsInstancer/   r   assertIsr9   )r   r   r   r   r   r5   s         r   test_quadmesh_colorbarz'TestQuadMeshPlot.test_quadmesh_colorbar   s    [Aq!![B"""b")..1ac":":;<<AA4APP&u--dl:6AAAdl:.;T\.=YZZZZZr   c                    g d}g d}t          ||t          j                            dd          f          }t	          j        |          }|j        d         }|                     |j        d         |	                    dd          j
                                                   |                     |j        d	         t          j        g d
                     |                     |j        d         t          j        g d                     |                     |j        d         t          j        g d                     |                     |j        d         t          j        g d                     d S )Nr   r   r   r   r   r&   r'   r   Fr(   left)	      r@   r@         ?rA   rA         ?rB   rB   right)	rA   rA   rA   rB   rB   rB         @rD   rD   top)	rA   rB   rD   rA   rB   rD   rA   rB   rD   bottom)	r@   rA   rB   r@   rA   rB   r@   rA   rB   )r   r   r   r   r   r.   r/   r0   r1   r2   Tr3   r,   )r   r   r   r   r5   r&   s         r   test_quadmesh_inverted_coordsz.TestQuadMeshPlot.test_quadmesh_inverted_coords$   sQ   YYYY"b")..A"6"6788&u--h'S)5+A+A!%+A+P+P+R+Z+Z+\+\]]]V,bh7g7g7g.h.hiiiW-rx8e8e8e/f/fgggU+RX6c6c6c-d-deeeX.9i9i9i0j0jkkkkkr   c                 n   g d}g d}t          j        g dg dg dg          }t          j        ddt           j        ddd	d
ddg	          }t          |||f                              d          }t          j        |          }|j        d         }|                     |j	        d         |           d S )Nr   r>   r             rK   r   rL   r!   r   rM   r"   r   r   nodatar&   r'   
r   r,   nanr   r-   r   r.   r/   r0   r1   r   r   r   r1   	flattenedr   r5   r&   s           r   test_quadmesh_nodataz%TestQuadMeshPlot.test_quadmesh_nodata0   s    YYYYx'''777344HaBFAq!Q1=>>	"b$((--Q-77&u--h'S)955555r   c                 r   g d}g d}t          j        g dg dg dgd          }t          j        ddt           j        d	d
ddddg	          }t          |||f                              d          }t          j        |          }|j        d         }|                     |j	        d         |           d S )Nr   r>   r    rJ   uint32)dtyperK   r   rL   r!   r   rM   r"   r   r   rN   r&   r'   rP   rR   s           r   test_quadmesh_nodata_uintz*TestQuadMeshPlot.test_quadmesh_nodata_uint:   s    YYYYx'''77738DDDHaBFAq!Q1=>>	"b$((--Q-77&u--h'S)955555r   c           	         ddg}g d}t          j        g dddt           j        gg          j        }t          j        g dg dg          j        }t	          ||||fd	d
g          }t          j        |                    dg                    }|j        d         }g dg ddddddt           j        gg dg dg dg dg dd}| 	                    |j
                                        |                                           |D ]6}	| 	                    t          |j
        |	                   ||	                    7d S )NrA   rB   rA   rB   rD         ?       @      @      @      @0-00-10-21-01-11-2ValueLabelvdimsr#   r%   r&   )        rn   rn   r\   r\   r\   )r\   r\   r\   r]   r]   r]   r\   r]   r^   )rn   r\   r]   rn   r\   r]   )r\   r]   r^   r\   r]   r^   )rb   rc   rd   rf   rg   rh   )rA   rA   rA   rB   rB   rB   )rA   rB   rD   rA   rB   rD   )r?   rC   ri   rF   rE   rj   r*   r+   )r   r,   rQ   rG   r   r   r.   r-   r/   r0   r1   keyslist
r   XYZLABELSr   r5   r&   expectedkeys
             r   test_quadmesh_regular_centersz.TestQuadMeshPlot.test_quadmesh_regular_centersD   s}   #JOOHlllRRV$456680002G2G2GHIIK!Q6*7G2DEEE&uzz	z'B'BCCh'000111R"r26:222///CCC3333335 5 	))++X]]__=== 	D 	DCT&+c"233Xc]CCCC	D 	Dr   c                    g dg dg}g dg dg}t          j        g dddt           j        gg          }t          j        g dg dg          }t          ||||fd	d
g          }t	          j        |                    dg                    }|j        d         }g dg dg dg dg dgg dg dg dg dg dgg dg dg dg dd}|                     |j	        
                                |
                                           |D ]6}	|                     t          |j	        |	                   ||	                    7d S )N)rA   rA   rA   )rB   rB   rB   rZ   r[   r_   r`   ra   re   ri   rj   rk   r#   rm   r&   rn   r\   r\   rn   r\   r]   r]   r\   rn   rn   r\   r\   r\   r\   r]   r]   r]   r]   r^   r^   r\   r]   r^   r_   r`   rb   rc   rd   rf   rg   rA   rA   rA   rB   rB   rA   rB   rD   rA   rB   r   r   ri   rj   r*   r+   r   r,   rQ   r   r   r.   r-   r/   r0   r1   ro   rp   rq   s
             r   test_quadmesh_irregular_centersz0TestQuadMeshPlot.test_quadmesh_irregular_centersY   s   __ooo.__ooo.HlllRRV$45660002G2G2GHII!Q6*7G2DEEE&uzz	z'B'BCCh'+++-=-=-=?O?O?O+++-=-=-=?+++-=-=-=?O?O?O+++-=-=-=?111@@@2222224 4 	))++X]]__=== 	D 	DCT&+c"233Xc]CCCC	D 	Dr   c                    g dg dg dg}g dg dg dg}t          j        g dddt           j        gg          }t          j        g dg d	g          }t          ||||fd
dg          }t	          j        |                    dg                    }|j        d         }g dg dg dg dg dgg dg dg dg dg dgg dg dg dg dd}|                     |j	        
                                |
                                           |D ]6}	|                     t          |j	        |	                   ||	                    7d S )N)rn   rn   rn   rn   )r\   r\   r\   r\   )r]   r]   r]   r]   )rn   r\   r]   r^   r[   r_   r`   ra   re   ri   rj   rk   r#   rm   r&   rz   r{   r|   r}   r~   r   r   r   r   r   r   rq   s
             r   test_quadmesh_irregular_edgesz.TestQuadMeshPlot.test_quadmesh_irregular_edgesm   s   ///1A1A1AB///1A1A1ABHlllRRV$45660002G2G2GHII!Q6*7G2DEEE&uzz	z'B'BCCh'+++-=-=-=?O?O?O+++-=-=-=?+++-=-=-=?O?O?O+++-=-=-=?111@@@2222224 4 	))++X]]__=== 	D 	DCT&+c"233Xc]CCCC	D 	Dr   N)__name__
__module____qualname__r   r6   r<   rH   rT   rX   rx   r   r    r   r   r
   r
   	   s        * * *F F F[ [ [
l 
l 
l6 6 66 6 6D D D*D D D(D D D D Dr   r
   )numpyr   bokeh.modelsr   holoviews.elementr   r   	test_plotr   r   r
   r   r   r   <module>r      s        ! ! ! ! ! ! - - - - - - - - 4 4 4 4 4 4 4 4vD vD vD vD vD} vD vD vD vD vDr   