
    |LeV                    D   d dl mZ d dlZd dlmZ d dlZd dlZd dl	Z	d dl
Zd dlmZmZ eej        gZ	 d dlZd dlZe                    e           n# e$ r dZdZY nw xY wej                            d           e	j                            de          d             Ze	j                            de          d	             Zd
 Ze	j                            de          d             Ze	j                            de          d             Ze	j                            de          d             Ze	j                            de          d             Ze	j                            de          d             Z e	j                            de          d             Z!d Z"e	j                            de          d             Z#e	j                            de          d             Z$e	j                            de          d             Z%e	j                            de          d             Z&e	j                            de          d             Z'd Z(e	j                            de          d             Z)e	j                            de          d             Z*dS )    )annotationsN)nan)assert_eq_ndarrayassert_eq_xrzsingle-threaded)	schedulerarray_modulec           	        t          j        dd          }t          j        |                     g dg dg dg dg          dg d	fd
g dfgd          }t          j        ddd          }t          j        ddd          }t          j        |                     g dg dgd          d|fd
|fg          }|                    |d
dt          j        d                    }t          ||           |                    |
                    d
d          d
dt          j        d                    }t          ||           d S )N      
plot_widthplot_height)   r      r
               )	   
                     )                        )                         br   r   r   r
   aZcoordsname      ?      @      @)r"   r*   &   .   )g     U@^   f   n   f8dtyper2   xyaggdsCanvasxr	DataArrayarraynplinspacequadmeshsumr   	transposer   cday_coordsx_coordsoutress          >lib/python3.11/site-packages/datashader/tests/test_quadmesh.py)test_raster_quadmesh_autorange_downsamplerW      s   
	QA...A	------------/	
 	
 lll#.../1	
 	
 	
B {3Q''H{3Q''H
,|))	4	4	4	>	>	>	@ *   hh!	  C **R3#26#;;*
7
7Cc **R\\#s++scrvc{{*
K
KCc    c           	     D   t          j        dd          }t          j        |                     g dg dg          dddgfd	g dfgd
          }t          j        ddd          }t          j        ddd          }t          j        |                     g dg dg dg dgd          d|fd	|fg          }|                    |d	dt          j        d
                    }t          ||           t          |j        dd           t          |j        dd           |                    |                    d	d          d	dt          j        d
                    }t          ||           t          |j        dd           t          |j        dd           d S )Nr   r
   r   r.   r   r   r   r   r-   r   r   r/   r0   r1         ?      @      @      ?r_          @r`         @ra         @rb         @rd         @re         @rf          @rg   r<   r=   r?   r@   )      ?g      @Tcloserh         @rE   rF   rG   rH   rI   rJ   rK   rL   rM   r   r   x_rangey_rangerN   rO   s          rV   test_raster_quadmesh_autorangerp   9   s   
	QA...A	\\\\	
 	
 q!flll#%
 
 
B {4q))H{4q))H
,|))	)	)	)	)	)	)	)	)	)	)	)	)	+  *   hh!  C **R3#26#;;*
7
7Ccck:T::::ck:T:::: **R\\#s++scrvc{{*
K
KCcck:T::::ck:T::::::rX   c                    t          j        dd          } t          j        t	          j        g dg dg dg          dg dfd	g dfgd
                              ddd          }t	          j        ddd          }t	          j        ddd          }t          j        t	          j        g dg dg dg dg dg dgd          d|fd	|fg          }|                     |d	dt          j	        d
                    }t          ||           |                     |                    d	d          d	dt          j	        d
                    }t          ||           d S )Nr   r   r   r.   rZ   r   r   r   r   r-   r   r   r   r/   r0   r1   r   r/   r-   r[         
@r]   r^   rc   )      "@rv         $@rw         &@rx         (@ry   r<   r=   r?   r@   )rE   rF   rG   rH   rJ   rI   chunkrK   rL   rM   r   rN   rP   rQ   rR   rS   rT   rU   s         rV   &test_raster_quadmesh_autorange_chunkedr|   ]   s   
	QA...A	
\\\\__	
 	

 iii lll#%
 
 
 %aa(())  {4q))H{4q))H
,rx	)	)	)	)	)	)	)	)	)	)	)	)	/	/	/	/	/	/	1    hh!
 
 
C **R3#26#;;*
7
7Cc **R\\#s++scrvc{{*
K
KCcrX   c           	        t          j        dd          }t          j        |                     g dg dg          dddgfdg dfgd	
          }t          j        ddd          }t          j        ddd          }t          j        |                     ddgddgddgddggd          d|fd|fg          }|                    |ddt          j        d	                    }t          ||           |                    |
                    dd          ddt          j        d	                    }t          ||           d S )Nr   r
   r   r.   rZ   r-   r   r/   r0   r1   r[   r\   r4   r5   ra   rf   rx   g      .@r<   r=   r?   r@   rD   rO   s          rV   .test_raster_quadmesh_upsampley_and_downsamplexr~      s}   
	QA...A	\\\\	
 	
 q!flll#%
 
 
B {4q))H{3Q''H
,|))
b
b
s
s	  *   hh!  C **R3#26#;;*
7
7Cc **R\\#s++scrvc{{*
K
KCcrX   c           	        t          j        dd          }t          j        |                     ddgddgddgdd	gg          d
g dfdddgfgd          }t          j        ddd          }t          j        ddd          }t          j        |                     g dg dgd          d
|fd|fg          }|                    |dd
t          j        d                    }t          ||           |                    |
                    dd
          dd
t          j        d                    }t          ||           d S )Nr
   r   r   r   r   r   r   r   r   r-   r.   r/   r0   r1   r[   r\   r4   r5   )rb   rb   re   re   )ry   ry         ,@r   r<   r=   r?   r@   rD   )r   rP   rQ   rS   rR   rT   rU   s          rV   .test_raster_quadmesh_upsamplex_and_downsampleyr      s   
	QA...A	VVVV	
 	
 lll#q!f	
 	
 	
B {4q))H{3Q''H
,|))							 *   hh!	  C **R3#26#;;*
7
7Cc **R\\#s++scrvc{{*
K
KCcrX   c           	        t          j        dd          }t          j        |                     g dg dg          dddgfd	g d
fgd          }t          j        ddd          }t          j        ddd          }t          j        |                     g dg dg dg dgd          d|fd	|fg          }|                    |d	dt          j        d                    }t          ||           |                    |
                    d	d          d	dt          j        d                    }t          ||           d S )Nr   r
   r   r.   rZ   r-   r/   )r   r   r0   r1               g      )rg   rg   rf   rf   re   re   rd   rd   )rb   rb   ra   ra   r`   r`   r_   r_   r<   r=   r?   r@   rD   rO   s          rV   'test_raster_quadmesh_autorange_reversedr      s   
	QA...A	\\\\	
 	
 r2h&&&')
 
 
B {5%++H{5%++H
,|))	)	)	)	)	)	)	)	)	)	)	)	)	+  *   hh!  C **R3#26#;;*
7
7Cc **R\\#s++scrvc{{*
K
KCcrX   c                   t          j        ddddgddg          }t          j        |                     g dg dg          d	dd
gfdg dfgd          }t          j        ddd          }t          j        ddd          }t          j        |                     t          t          t          t          t          t          t          t          gg dg dt          t          t          t          t          t          t          t          ggd          d	|fd|fg          }|                    |dd	t          j	        d                    }t          ||           t          |j        dd           t          |j        dd           |                    |                    dd	          dd	t          j	        d                    }t          ||           t          |j        dd           t          |j        dd           d S )Nr   r
   r   r   r   r   r   rn   ro   r.   rZ   r-   r   r/   r0   r1         rl         ?      @r_   r_   r`   r`   r`   r`   ra   ra   rd   rd   re   re   re   re   rf   rf   r<   r=   r?   r@   r   r   Tri   r   r   rE   rF   rG   rH   rI   rJ   rK   r   rL   rM   r   r   rn   ro   rN   rO   s          rV   !test_raster_quadmesh_manual_ranger      s   
	QAa&q'	# 	# 	#A 
\\\\	
 	
 q!flll#%
 
 
B {4a((H{5%++H
,|))
sCc3S	1	)	)	)	)	)	)
sCc3S	1	3  *   hh!  C **R3#26#;;*
7
7Ccck66666ck7$7777 **R\\#s++scrvc{{*
K
KCcck66666ck7$777777rX   c                   t          j        ddddgddg          }t          j        |                     g dg dg          d	d
dgfdg dfgd          }t          j        ddd          }t          j        ddd          }t          j        |                     ddt          t          t          t          t          t          gt          t          t          t          t          t          t          t          gt          t          t          t          t          t          t          t          gt          t          t          t          t          t          t          t          ggd          d	|fd|fg          }|                    |dd	t          j	        d                    }t          ||           |                    |                    dd	          dd	t          j	        d                    }t          ||           d S )Nr   r
   rh   g     0@g      !@r   r.   rZ   r-   r   r   r/   r0   r1   r4   r6   g      /@r         6@f4r=   r?   r@   rE   rF   rG   rH   rI   rJ   rK   r   rL   rM   r   rN   rO   s          rV   &test_raster_subpixel_quads_representedr     s   
	QA+*	& 	& 	&A 
\\\\	
 	
 q!flll#%
 
 
B {3Q''H{3a((H
,|))
sCc3S	1
sCc3S	1
sCc3S	1
sCc3S	1	3  *   hh!  C **R3#26#;;*
7
7Cc **R\\#s++scrvc{{*
K
KCcrX   c           	     L   t          j        dd          }t          j        |                     g dg dg          dddgfd	g d
fgd          }t          j        ddd          }t          j        ddd          }t          j        |                     g dg dg dg dgd          d|fd	|fg          }|                    |d	dt          j        d                    }t          ||d           t          |j        dd           t          |j        dd           |                    |                    d	d          d	dt          j        d                    }t          ||d           t          |j        dd           t          |j        dd           d S )Nr   r
   r   r.   rZ   r-   r   r   r/   r   r   r   r   r0   r1   r[   r\   r        #@ra   ra   ra   ra   rb   rb   rb   rb   rx   rf   rf   rf   rg   rg   rg   rg   r<   r=   r?   r@   Tri   rh   g      %@rk   rm   rO   s          rV   #test_rectilinear_quadmesh_autoranger   *  s   
	QA...A	\\\\	
 	
 q!flll#%
 
 
B {4q))H{5%++H
,|))	)	)	)	)	)	)	*	*	*	*	*	*	,  *   hh!  C **R3#26#;;*
7
7Cc&&&&ck;d;;;;ck:T:::: **R\\#s++scrvc{{*
K
KCc&&&&ck;d;;;;ck:T::::::rX   c                    t          j        dd          } t          j        t	          j        g dg dg dg          dg dfd	g d
fgd                              ddd          }t	          j        ddd          }t	          j        ddd          }t          j        t	          j        g dg dg dg dg dg dgd          d|fd	|fg          }|                     |d	dt          j	        d                    }t          ||d           t          |j        dd           t          |j        dd           |                     |                    d	d          d	dt          j	        d                    }t          ||d           t          |j        dd           t          |j        dd           d S )Nr   r   r   r.   rZ   rr   r-   rs   r/   r   r0   r1   r   r   rt   r[   ru   r   r   r   r   )g      3@rx   rx   rx   ry   ry   ry   ry   r<   r=   r?   r@   Tri   r   )rh   r5   )rE   rF   rG   rH   rJ   rI   rz   rK   rL   rM   r   r   rn   ro   rN   r{   s         rV   +test_rectilinear_quadmesh_autorange_chunkedr   N  s   
	QA...A	
\\\\__	
 	

 iii lll#%
 
 
 %aa(())  {4q))H{5%++H
,rx	)	)	)	)	)	)	*	*	*	*	*	*	1	1	1	1	1	1	3    hh!
 
 
C **R3#26#;;*
7
7Cc&&&&ck;d;;;;ck:T:::: **R\\#s++scrvc{{*
K
KCc&&&&ck;d;;;;ck:T::::::rX   c           	     L   t          j        dd          }t          j        |                     g dg dg          dddgfd	g d
fgd          }t          j        ddd          }t          j        ddd          }t          j        |                     g dg dg dg dgd          d|fd	|fg          }|                    |d	dt          j        d                    }t          ||d           t          |j        dd           t          |j        dd           |                    |                    d	d          d	dt          j        d                    }t          ||d           t          |j        dd           t          |j        dd           d S )Nr   r
   r   r.   rZ   r-   r   r   r/   )r   r   r   ir0   r1   r   r   g     #g      )rg   rg   rg   rg   rf   rf   re   rd   )rb   rb   rb   rb   ra   ra   r`   r_   r<   r=   r?   r@   Tri   )g      %r   )g      r   rm   rO   s          rV   %test_rect_quadmesh_autorange_reversedr   t  s   
	QA...A	\\\\	
 	
 r2h&&&')
 
 
B {5%++H{661--H
,|))	)	)	)	)	)	)	)	)	)	)	)	)	+  *   hh!  C **R3#26#;;*
7
7Cc&&&&ck=====ck<t<<<< **R\\#s++scrvc{{*
K
KCc&&&&ck=====ck<t<<<<<<rX   c                   t          j        ddddgddg          }t          j        |                     g dg dg          d	dd
gfdg dfgd          }t          j        ddd          }t          j        ddd          }t          j        |                     t          t          t          t          t          t          t          t          gg dg dt          t          t          t          t          t          t          t          ggd          d	|fd|fg          }|                    |dd	t          j	        d                    }t          ||d           t          |j        dd           t          |j        dd           |                    |                    dd	          dd	t          j	        d                    }t          ||d           t          |j        dd           t          |j        dd           d S )Nr   r
   r   r   r   r   r.   rZ   r-   r   r/   r   r0   r1   r   rl   r   r   r   r   r<   r=   r?   r@   Tri   r   r   r   rO   s          rV   test_rect_quadmesh_manual_ranger     s   
	QAa&q'	# 	# 	#A 
\\\\	
 	
 q!flll#%
 
 
B {4a((H{5%++H
,|))
sCc3S	1	)	)	)	)	)	)
sCc3S	1	3  *   hh!  C **R3#26#;;*
7
7Cc&&&&ck66666ck7$7777 **R\\#s++scrvc{{*
K
KCc&&&&ck66666ck7$777777rX   c                   t          j        ddddgddg          }t          j        |                     g dg dg          dd	d
gfdg dfgd          }t          j        d	dd          }t          j        d	dd          }t          j        |                     ddt          t          t          t          t          t          gt          t          t          t          t          t          t          t          gt          t          t          t          t          t          t          t          gt          t          t          t          t          t          t          t          ggd          d|fd|fg          }|                    |ddt          j	        d                    }t          ||           |                    |                    dd          ddt          j	        d                    }t          ||           d S )Nr   r
   r   r   r   r.   rZ   r-   r   r   r/   )r   rl   r   r
   r0   r1   r   r   r   r   r   r=   r?   r@   r   rO   s          rV   $test_rect_subpixel_quads_representedr     s   
	QAb'a&	" 	" 	"A 
\\\\	
 	
 q!fnnn%'
 
 
B {1a##H{1b!$$H
,|))
sCc3S	1
sCc3S	1
sCc3S	1
sCc3S	1	3  *   hh!  C **R3#26#;;*
7
7Cc **R\\#s++scrvc{{*
K
KCcrX   c           	        t          j        dd          }| t          j        u rt          j        nt          }|                    ddgddgg          }|                    ddgddgg          }t	          j        dd                              dd          }t          j        |                     |          dd	g|fdd	g|fd
dd	gd          }t	          j	        ddd          }t	          j	        ddd          }t          j        |                     g dg dg dg dgd          d|fd|fg          }	|
                    |ddt          j        d                    }
t          |
|	           |
                    |                    d	dd          ddt          j        d                    }
t          |
|	           d S )Nr   r
   r   r   r   int32r=   YXQxQyr0   r2   dimsr3   r[   r\   g      ?g      @)        r   r   r   r_   r_   r_   r_   )r`   r`   r`   r`   ra   ra   ra   ra   r<   r   r   r?   r@   Ttranspose_coords)rE   rF   daskrI   rJ   arangereshaperG   rH   rK   rL   rM   r   rN   )r   rP   coord_arrayr   r   r0   rQ   rR   rS   rT   rU   s              rV   "test_curve_quadmesh_rect_autoranger     s   
	QA...A ,
 : :$**K			
Q
Q	
 
B 
		
Q
Q	
 
B 		!7###++Aq11A	1Sz2&Sz2&( (3Z
 
 
B {4q))H{5%++H
,|))	)	)	)	)	)	)	)	)	)	)	)	)	+  * 
 
 x x "	 	 	C **R44RVC[[*
9
9Cc
**R\\#sT\BBddXZX^_bXcXc*
d
dCcrX   c                   t          j        dd          }| t          j        u rt          j        nt          }|                    ddgddgg          }|                    ddgddgg          }t	          j        dd                              dd          }t          j        |                     |          dd	g|fdd	g|fd
dd	gd          }t	          j	        ddd          }t	          j	        ddd          }t          j        |                     t          t          t          t          gddt          t          gg dg ddddt          gddt          t          gddt          t          gdt          t          t          gg          t          d|fd|fg          ddg          }	|                    |ddt          j        d                    }
t          |
|	           t          |
j        dd           t          |
j        dd           |                    |                    d	dd          ddt          j        d                    }
t          |
|	           t          |
j        dd           t          |
j        dd           d S )Nr
   r   r   r   r   r   r=   r   r   r   r0   r   r[   r\   r         @r   r   r   r_   r_   r   r   ra   ra   r`   ra   r   r   r2   r   r@   rk   Tri   r   r   r   )rE   rF   r   rI   rJ   r   r   rG   rH   rK   r   dictrL   rM   r   r   rn   ro   rN   r   rP   r   r   r   r0   rQ   rS   rR   rT   rU   s              rV   test_curve_quadmesh_autoranger     s   
	QA...A ,
 : :$**K			
Q
Q	
 
B 
		
Q
Q	
 
B 		!7###++Aq11A	1Sz2&Sz2&( (3Z
 
 
B {4q))H{4a((H
,|))
sC	
rC							
rB	
rC	
rC	
sC			
 	
 88   D\  C  **R44RVC[[*
9
9Ccck:T::::ck7$7777
**R\\#sT\BBddXZX^_bXcXc*
d
dCcck:T::::ck7$777777rX   c                     t          j        dd          } t          j        ddgddgg          }t          j        ddgddgg          }t          j        dd                              dd          }t          j        t          j        |          dd	g|fdd	g|fd
dd	gd                              ddd          }t          j	        ddd          }t          j	        ddd          }t          j        t          j        t          t          t          t          gddt          t          gg dg ddddt          gddt          t          gddt          t          gdt          t          t          gg          t          d|fd|fg          ddg          }|                     |ddt          j        d                    }t          ||           t          |j        dd           t          |j        dd           |                     |                    d	dd          ddt          j        d                    }t          ||           t          |j        dd           t          |j        dd           d S ) Nr
   r   r   r   r   r   r=   r   r   r   r0   r   )r   r   r[   r\   r   r   r   r   r   r`   ra   r   r   r   r@   rk   Tri   r   r   )rE   rF   rJ   rI   r   r   rG   rH   rz   rK   r   r   rL   rM   r   r   rn   ro   rN   )	rP   r   r   r0   rQ   rS   rR   rT   rU   s	            rV   %test_curve_quadmesh_autorange_chunkedr   @  s   
	QA...A	
Q
Q	
 
B 

Q
Q	
 
B 		!7###++Aq11A	
Sz2&Sz2&( (3Z
 
 
 e!!  {4q))H{4a((H
,rx
sC	
rC							
rB	
rC	
rC	
sC			
 	
 88   D\  C  **R44RVC[[*
9
9Ccck:T::::ck7$7777
**R\\#sT\BBddXZX^_bXcXc*
d
dCcck:T::::ck7$777777rX   c                   t          j        ddddgddg          }| t          j        u rt          j        nt          }|                    ddgddgg          }|                    ddgddgg          }t	          j        dd                              dd          }t          j        |                     |          d	d
g|fd	d
g|fdd	d
gd          }t	          j	        ddd          }t	          j	        ddd          }t          j        |                     g dg dg dg dg dg dg dg dg          t          d|fd|fg          ddg          }	|                    |ddt          j        d                    }
t          |
|	           t          |
j        dd           t          |
j        dd           |                    |                    d
d	d          ddt          j        d                    }
t          |
|	           t          |
j        dd           t          |
j        dd           d S )Nr
   r   r   r   r   r   r   r=   r   r   r   r0   r   r   g      ?r   r   )r   r   r_   ra   r   )r   r`   ra   ra   )r`   r`   ra   ra   r   r   r   r@   )r   r   Tri   r   r   )rE   rF   r   rI   rJ   r   r   rG   rH   rK   r   rL   rM   r   r   rn   ro   rN   r   s              rV    test_curve_quadmesh_manual_ranger   q  s   
	QA1v1vNNNA ,
 : :$**K			
Q
Q	
 
B 
		
Q
Q	
 
B 		!7###++Aq11A	1Sz2&Sz2&( (3Z
 
 
B {5%++H{5%++H
,|))																										
 	
 88   D\  C  **R44RVC[[*
9
9Ccck66666ck66666
**R\\#sT\BBddXZX^_bXcXc*
d
dCcck66666ck6666666rX   c                R   t          j        ddddgddg          }| t          j        u rt          j        nt          }|                    dd	gdd	gg          }|                    ddgd
d	gg          }t	          j        d
d                              d	d	          }t          j        |                     |          ddg|fddg|fdddgd          }t	          j	        ddd          }t	          j	        ddd          }t          j        |                     t          t          t          gt          t          t          gt          dt          gt          t          t          gt          t          t          gg          t          d|fd|fg          ddg          }	|                    |ddt          j        d                    }
t          |
|	           |                    |                    ddd          ddt          j        d                    }
t          |
|	           d S )Nr   r   ij   i   r   r   r   r
   r   r=   r   r   r   r0   r   id   i8   re   r   r   r   r@   Tr   )rE   rF   r   rI   rJ   r   r   rG   rH   rK   r   r   rL   rM   r   rN   r   s              rV   )test_curve_quadmesh_manual_range_subpixelr     s;   
	QA+c{	< 	< 	<A ,
 : :$**K			
Q
Q	
 
B 
		
Q
Q	
 
B 		!7###++Aq11A	1Sz2&Sz2&( (3Z
 
 
B {4a((H{4a((H
,|))
sC
sC
rC
sC
sC		
 
 88   D\  C **R44RVC[[*
9
9Cc
**R\\#sT\BBddXZX^_bXcXc*
d
dCcrX   )+
__future__r   numpyrJ   r   xarrayrG   
datashaderrE   pytest
dask.arrayr   datashader.tests.test_pandasr   r   rI   array_modulescudfcupyappendImportErrorconfigsetmarkparametrizerW   rp   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r    rX   rV   <module>r      s   " " " " " "                        H H H H H H H HTZ KKKKKK   DDDD
 + , , , 77  87> 77 ;  ; 87 ;F  D 77  87> 77  87> 77  87> 77#8 #8 87#8L 77  87F 77 ;  ; 87 ;F#; #; #;L 77 =  = 87 =F 77#8 #8 87#8L 77  87F 77& & 87&R 77/8 /8 87/8d.8 .8 .8b 77/7 /7 87/7d 77) ) 87) ) )s   A 	AA