
    |Le/                        d dl Z d dl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 	 d dlZd dlmZ d dlmZ n# e$ r	 dZdZdZY nw xY wd ZeegZe j                            e d          e j                            de          d	                         Ze j                            e d          e j                            de          d
                         Ze j                            e d          e j                            de          d                         Ze j                            e d          e j                            de          d                         Ze j                            e d          e j                            de          e j                            dddg          d                                     Ze j                            e d          e j                            de          e j                            dddg          d                                     Ze j                            e d          d             ZdS )    N)assert_eq_ndarrayassert_eq_xr)GeoDataFrame)MultiPolygonArrayc                  B    t          j        t          | i |d          S )N   )npartitions)ddfrom_pandasr   )argskwargss     >lib/python3.11/site-packages/datashader/tests/test_polygons.pydask_GeoDataFramer      s$    >,777QGGGG    zspatialpandas not installed)reason	DataFramec                     | t          j        g dg dgg dgggd          dgd          }t          j        dd	          }|                    |d
t          j                              }t          j                                        }|                    |	                    dd          d          }|                    |	                    dd          d          }t          j        g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dgd          }t          j        |||gddg          }t          ||           t          |j        dd            t          |j        d!d            d S )"N
r   r      r   r   r      r   r   r   r         ?r   r   g      ?r   r   r   
      @r      r   r   r   r   r   r   r   MultiPolygon[float64]dtyper   polygonsv   
plot_widthplot_heightr    geometryagg)        g      @)r)   g      @)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   i4yxcoordsdimsr   r   Tclose)r   r   pdSeriesdsCanvasr    countcore
LinearAxiscompute_indexcompute_scale_and_translatenparrayxr	DataArrayr   r   x_rangey_range	r   dfcvsr(   axislincoords_xlincoords_ysolouts	            r   test_multipolygon_manual_rangerK      s!    
I...666 544	 
  *+ + + S
 
 

 

B )rr
2
2
2C
,,rJBHJJ,
?
?C7D$$((266< <K$$((266< <K (888888888888888888888888888888888888888888888888!" #  C& ,sK#=S#J
O
O
OCcck66666ck6666666r   c                     | t          j        g dg dgg dgggd          dgd          }t          j        ddd	d
gddg          }|                    |dt          j                              }t          j                                        }|                    |	                    dd          d          }|                    |	                    dd          d          }t          j        g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dgd          }t          j        |||gddg          }t          ||           t          |j        dd           t          |j        dd           d S )Nr   r   r   r   r   r   r   r"         @皙?r   )r$   r%   rA   rB   r    r&   )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   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   r+   r,   r-   Tr1   r3   rC   s	            r   !test_multiple_polygons_auto_rangerP   N   s4    
I...666 544	 
  *+ + + S
 
 

 

B )rrIQx9 9 9C
,,rJBHJJ,
?
?C7D$$((B77= =K$$((266< <K (888888888888888888888888888888888888888888888888!" #  C& ,sK#=S#J
O
O
OCcck9D9999ck84888888r   c                     | dt          j        g dg dgg dgg dggd          i          }t          j        dd	          }|                    |dt          j                    
          }t          j                                        }|                    |	                    dd          d          }|                    |	                    dd          d          }t          j        g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dgd          }t          j        |||gddg          }t          ||           d S )Nr    
r   r   r   r   r   r   r   r   r   r   
      ?      ?rT   r   rU   r   rU   rU   rT   rU   
rT   rU   rU   rU   rU   r   rT   r   rT   rU   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Polygon[float64]r   r"   r#   r&   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   r+   r,   r-   )r4   r5   r6   r7   r    r8   r9   r:   r;   r<   r=   r>   r?   r@   r   rC   s	            r   test_no_overlapr[      s    
BI...BBB CBB MLL	
 $	% 	% 	% 
 
B )rr
2
2
2C
,,rJBHJJ,
?
?C7D$$((44b: :K$$((44b: :K (888888888888888888888888888888888888888888888888!" #  C& ,sK#=S#J
O
O
OCcr   c                     | t          j        g dg dgg dgg dggd          t          d          d          }t          j        d	d	
          }|                    |dt          j        d                    }t          j                                        }|	                    |
                    dd	          d	          }|	                    |
                    dd	          d	          }t          j        g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg          }t          j        |||gddg          }t          ||           d S )NrR   rS   rV   rW   rX   r   r   r   r"   r#   r    r!   r&   rY   rZ   )       @r]   r]   r]   r]   r]   r]   r]   r)   r]   r]   r]   r]   r]   r]   r]   )r]   r]   r]   r]   r]   r]   r]   r)   r)   r)   r]   r]   r]   r]   r]   r]   )r]   r]   r]   r]   r]   r]   r)   r)   r)   r)   r)   r]   r]   r]   r]   r]   )r]   r]   r]   r]   r]   r)   r)   r)   r)   r)   r)   r)   r]   r]   r]   r]   )r]   r]   r]   r]         ?r^   r^   r^   r^   r^   r^   r^   r)   r]   r]   r]   )r]   r]   r]   r)   r^   r^   r^   r^   r^   r^   r^   r^   r)   r)   r]   r]   )r]   r]   r)   r)   r^   r^   r^   r^   r^   r^   r^   r^   r)   r)   r)   r]   )r]   r)   r)   r)   r^   r^   r^   r^   r^   r^   r^   r^   r)   r)   r)   r)   r+   r,   r-   )r4   r5   ranger6   r7   r    sumr9   r:   r;   r<   r=   r>   r?   r@   r   rC   s	            r   test_no_overlap_aggra      s    
I+++???A???@IIIJ	

 $% % % 1XX  
 
B )rr
2
2
2C
,,rJBF3KK,
@
@C7D$$((44b: :K$$((44b: :K (HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH!  C& ,sK#=S#J
O
O
OCcr   scaler   d   c                    t          dt          g dgg dggg          i          }t          j        dddd|z  d|z  f          }|                    |dt          j                    	          }t          j        g d
g d
g d
g d
g dg d
g d
g d
gt          j                  }t          j	        
                                }|                    |                    dd          d          }|                    |                    d|z  d|z  fd          d          }t          j        |||gddg          }	t          ||	           d S )Nr'   
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r      r0   r   r%   r$   rA   rB   r(   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r+   r,   r-   r   r   r6   r7   r    r8   r=   r>   int32r9   r:   r;   r<   r?   r@   r   
r   rb   rD   rE   r(   rI   rF   rG   rH   rJ   s
             r   #test_multipolygon_subpixel_verticalrn      s    
%+++,+++,(
 '   
 
B )!eQY'  C
 ,,r:28::,
6
6C
(                        	 X	 	 	C 7D$$((33Q8 8K$$(("u*a%i)@!DDaI IK
,sK#=S#J
O
O
OCcr   c                    t          dt          g dgg dggg          i          }t          j        ddd|z  d|z  fd          }|                    |dt          j                    	          }t          j        g d
g dg dg d
g d
g dg dg d
gt          j                  }t          j	        
                                }|                    |                    d|z  d|z  fd          d          }|                    |                    dd          d          }t          j        |||gddg          }	t          ||	           d S )Nr'   re   
r   r   r   r   r   r   r   r   r   r   rf   rg   r   r0   rh   ri   rj   )r   r   r   r   r   r   r   r   r   r+   r,   r-   rk   rm   s
             r   %test_multipolygon_subpixel_horizontalrq     s    
%+++,+++,(
 '   
 
B )!eQY'  C
 ,,r:28::,
6
6C
(                        	 X	 	 	C 7D$$(("u*a%i)@!DDaI IK$$((33Q8 8K
,sK#=S#J
O
O
OCcr   c                     t          t          g dggg dggg          ddgd          } | j        j        j        J | j        j        j        }|J t          j        j        	                    d          }t          j
                    }t          j                            | ||          \  }}|j        dgk    sJ |j        j        j        | j        j        j        k    sJ d S )Nre   rp      -   )	some_geomotherru   )r   r   ru   r>   _sindexsindexr6   glyphspolygonPolygonGeomr8   r9   _bypixel_sanitisecolumns)rD   rx   glyphr(   df2_s         r   test_spatial_index_not_droppedr   ,  s    
&,,,-.,,,-.(
   b  
 
B <%---\&FI))+66E
(**CW&&r5#66FC;;-''''=&",*<*DDDDDDDr   ) pytestpandasr4   numpyr=   xarrayr?   
datashaderr6   datashader.tests.test_pandasr   r   dask.dataframe	dataframer
   spatialpandasr   spatialpandas.geometryr   ImportErrorr   
DataFramesmarkskipifparametrizerK   rP   r[   ra   rn   rq   r    r   r   <module>r      so                    H H H H H H H H      ******8888888   MLH H H -.
 %.KLLj11.7 .7 21 ML.7b %.KLLj11/9 /9 21 ML/9d %.KLLj11, , 21 ML,^ %.KLLj11( ( 21 ML(V %.KLLj111c(++    ,+ 21 ML F %.KLLj111c(++    ,+ 21 ML F %.KLLE E MLE E Es   5 AA