
    |Le?              )       ^   d dl mZ d dlZd dlmZ d dlZd dlm	Z	 d dl
Z
	 d dlZn# e$ r dZY nw xY w	 d dlZn# e$ r dZY nw xY w	 d dlZn# e$ r dZY nw xY w	 d dlZn# e$ r dZY nw xY w ej        ddde	e	e	e	e	e	e	e	e	e	e	e	e	e	e	e	e	gde	ddde	e	e	e	e	e	e	e	e	e	e	e	e	e	e	gdde	e	dde	e	e	e	e	ddde	e	e	e	e	e	ge	de	e	e	ddddddddddde	e	e	e	ge	dde	e	e	ddddddddddddde	ge	dde	e	e	ddde	e	dddddddde	ge	ddddddde	e	e	e	ddddddde	ge	e	dde	ddddde	e	e	dddde	ddge	e	e	e	e	e	e	e	dde	e	ddde	e	e	ddge	e	e	e	e	e	e	dddde	ddde	e	e	e	dge	e	e	e	e	e	e	e	ddddde	e	e	e	e	ddge	e	e	e	e	e	e	e	de	dde	e	e	e	e	e	e	dge	e	e	e	e	e	e	e	dddde	e	de	e	dddge	e	e	e	e	e	e	e	e	de	dddddddde	ge	e	e	e	e	e	e	e	e	ddddddddde	e	ge	e	e	e	e	e	e	e	e	e	dde	dddde	e	e	ge	e	e	e	e	e	e	e	e	e	dde	e	dddde	e	ge	e	e	e	e	e	e	e	e	e	e	dde	e	ddde	e	ge	e	e	e	e	e	e	e	e	e	e	dde	e	ddde	e	ge	e	e	e	e	e	e	e	e	e	e	e	ddde	e	e	e	e	gg          Z e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g dg dg dgej                  Z ej        dde	e	e	e	e	e	e	e	e	e	e	e	e	e	e	e	e	e	gddde	e	e	e	e	e	e	e	e	e	e	e	e	e	e	e	e	ge	dddde	e	e	e	e	e	de	e	e	e	e	e	e	e	ge	e	dddde	de	e	e	e	e	e	e	e	e	e	e	e	ge	e	dddddde	dddddddde	e	e	ge	e	ddddde	dddddddddde	e	ge	e	ddddde	dddddddddde	e	ge	e	e	de	e	e	e	ddddddddddde	ge	e	e	e	e	e	e	e	e	dddddddddde	ge	e	e	e	e	e	e	dddddddddddde	ge	e	e	e	e	e	e	e	e	dddddddddde	ge	e	e	e	e	e	e	e	e	dddddddddddge	e	e	e	e	e	e	e	e	dddddddddddge	e	e	e	e	e	e	e	e	e	dddde	ddde	e	ge	e	e	e	e	e	e	e	e	e	dddde	e	e	e	e	e	ge	e	e	e	e	e	e	e	e	e	e	ddddde	e	e	e	ge	e	e	e	e	e	e	e	e	e	e	dddddde	e	e	ge	e	e	e	e	e	e	e	e	e	e	e	dddddde	e	ge	e	e	e	e	e	e	e	e	e	e	ddddddde	e	ge	e	e	e	e	e	e	e	e	e	e	e	ddde	e	e	e	e	gg          Ze
j                            e d          e
j                            e d           e
j                            d!g d"          d#                                     Ze
j                            e d          e
j                            e d$          e
j                            e d           e
j                            d%g d&          e
j                            d!g d"          d'                                                             Ze
j                            e d          e
j                            e d(          e
j                            d%g d&          e
j                            d!g d"          d)                                                 Ze
j                            e d          e
j                            e d           e
j                            d*d+d,g          d-                                     Ze
j                            e d          e
j                            e d           e
j                            d%g d&          e
j                            d*d+d,g          d.                                                 Ze
j                            e d          e
j                            e d(          e
j                            d%g d/          e
j                            d*d+d,g          d0                                                 Ze
j                            e d          e
j                            e d           e
j                            d*d1d2g          d3                                     Ze
j                            e d          e
j                            e d$          e
j                            e d           e
j                            d%g d&          e
j                            d*d1d2g          d4                                                             Ze
j                            e d          e
j                            e d           e
j                            e d(          e
j                            d%g d/          e
j                            d*d1d2g          d5                                                             Z dS )6    N)assert_eq_ndarray)nang        g      ?g       @g      @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   )r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   	   r
   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r
   r
   r
   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r
   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )dtypezgeodatasets not installed)reasonzgeopandas not installedz geom_type, explode, use_boundary))multipolygonFF)polygonTF)multilinestringFT)
linestringTTc                 F   t          j        t          j        d                    }t	          j        t          |                    |d<   |rdnd}|r|                    d          }|r
|j        |d<   ||         j	        
                                }t          |          dk    r|d                                         | k    sJ t          j        d	d	
          }|                    ||t          j        d                    }t!          |j        t$                     d S )NnybbcolboundarygeometryFindex_partsr   r      plot_height
plot_widthsourcer   agg)	geopandas	read_filegeodatasetsget_pathnparangelenexploder   	geom_typeuniquelowerdsCanvaslinemaxr   datanybb_lines_sol)r*   r)   use_boundarydfr   unique_geom_typecanvasr!   s           ?lib/python3.11/site-packages/datashader/tests/test_geopandas.pytest_lines_geopandasr8   h   s    
	[1&99	:	:B	#b''""BuI)9zzzH +ZZEZ** %:(|-4466  A%%*:1*=*C*C*E*E*R*R*R*RY2"555F
++R(u+
F
FCch/////    zdask_geopandas not installednpartitions)r   r   r   c                    t          j        t          j        d                    }t	          j        t          |                    |d<   |rdnd}|r|                    d          }|r
|j        |d<   ||         j	        
                                }t          |          dk    r|d                                         | k    sJ t          j        ||	          }|j        |k    sJ |                                 t!          j        d
d
          }|                    ||t!          j        d                    }t)          |j        t,                     d S Nr   r   r   r   Fr   r   r   r:   r   r   r   )r"   r#   r$   r%   r&   r'   r(   r)   r   r*   r+   r,   ddfrom_pandasr:   calculate_spatial_partitionsr-   r.   r/   r0   r   r1   r2   	r*   r)   r3   r:   r4   r   r5   r6   r!   s	            r7   test_lines_dask_geopandasrB      sG    
	[1&99	:	:B	#b''""BuI)9zzzH +ZZEZ** %:(|-4466  A%%*:1*=*C*C*E*E*R*R*R*R		4	4	4B>[((((##%%%Y2"555F
++R(u+
F
FCch/////r9   zspatialpandas not installedc                    t          j        t          j        d                    }t	          j        t          |                    |d<   |rdnd}|r|                    d          }|r
|j        |d<   ||         j	        
                                }t          |          dk    r|d                                         | k    sJ t          j        |          }|dk    r#t          j        ||	          }|j        |k    sJ t#          j        d
d
          }|                    ||t#          j        d                    }t+          |j        t.                     d S r<   )r"   r#   r$   r%   r&   r'   r(   r)   r   r*   r+   r,   spatialpandasGeoDataFramer>   r?   r:   r-   r.   r/   r0   r   r1   r2   rA   s	            r7   test_lines_spatialpandasrF      sN    
	[1&99	:	:B	#b''""BuI)9zzzH +ZZEZ** %:(|-4466  A%%*:1*=*C*C*E*E*R*R*R*R		#B	'	'BQ^BK888~,,,,Y2"555F
++R(u+
F
FCch/////r9   r*   
multipointpointc                     t          j        t          j        d                    }|d                             dd          |d<   | dk    r|                    d          }|d         j                                        }t          |          d	k    r|d
         	                                | k    sJ t          j        dd          }|                    |dt          j                              }t          |j        t                      d S )Nr   r   d   vn seedrH   Fr   r   r   r   r   r   )r"   r#   r$   r%   sample_pointsr)   r*   r+   r(   r,   r-   r.   pointscountr   r1   nybb_points_solr*   r4   r5   r6   r!   s        r7   test_points_geopandasrS      s     
	[1&99	:	:B
^11#E1BBBzNGZZEZ***~/6688  A%%*:1*=*C*C*E*E*R*R*R*RY2"555F
--rJBHJJ-
G
GCch00000r9   c                    t          j        t          j        d                    }|d                             dd          |d<   | dk    r|                    d          }|d         j                                        }t          |          d	k    r|d
         	                                | k    sJ t          j        ||          }|j        |k    sJ |                                 t          j        dd          }|                    |dt          j                              }t%          |j        t(                     d S Nr   r   rJ   rK   rL   rH   Fr   r   r   r=   r   r   r   )r"   r#   r$   r%   rN   r)   r*   r+   r(   r,   r>   r?   r:   r@   r-   r.   rO   rP   r   r1   rQ   r*   r:   r4   r5   r6   r!   s         r7   test_points_dask_geopandasrW      s.   
 
	[1&99	:	:B
^11#E1BBBzNGZZEZ***~/6688  A%%*:1*=*C*C*E*E*R*R*R*R		4	4	4B>[((((##%%%Y2"555F
--rJBHJJ-
G
GCch00000r9   )r   r   r   r   c                    t          j        t          j        d                    }|d                             dd          |d<   | dk    r|                    d          }|d         j                                        }t          |          d	k    r|d
         	                                | k    sJ t          j        |          }|d
k    r#t          j        ||          }|j        |k    sJ t          j        dd          }|                    |dt          j                              }t'          |j        t*                     d S rU   )r"   r#   r$   r%   rN   r)   r*   r+   r(   r,   rD   rE   r>   r?   r:   r-   r.   rO   rP   r   r1   rQ   rV   s         r7   test_points_spatialpandasrY      s5   
 
	[1&99	:	:B
^11#E1BBBzNGZZEZ***~/6688  A%%*:1*=*C*C*E*E*R*R*R*R		#B	'	'BQ^BK888~,,,,Y2"555F
--rJBHJJ-
G
GCch00000r9   r   r   c                 *   t          j        t          j        d                    }t	          j        t          |                    |d<   | dk    r|                    d          }|d         j        	                                }t          |          dk    r|d         
                                | k    sJ t          j        d	d	
          }|                    |dt          j        d                    }t          |j        t"                     d S )Nr   r   r   Fr   r   r   r   r   r   r   )r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   polygonsr0   r   r1   nybb_polygons_solrR   s        r7   test_polygons_geopandasr]     s     
	[1&99	:	:B	#b''""BuIIZZEZ***~/6688  A%%*:1*=*C*C*E*E*R*R*R*RY2"555F
//jbfUmm/
L
LCch 122222r9   c                    t          j        t          j        d                    }t	          j        t          |                    |d<   | dk    r|                    d          }|d         j        	                                }t          |          dk    r|d         
                                | k    sJ t          j        ||	          }|j        |k    sJ |                                 t          j        d
d
          }|                    |dt          j        d                    }t'          |j        t*                     d S Nr   r   r   Fr   r   r   r   r=   r   r   r   )r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r>   r?   r:   r@   r-   r.   r[   r0   r   r1   r\   rV   s         r7   test_polygons_dask_geopandasr`     s*    
	[1&99	:	:B	#b''""BuIIZZEZ***~/6688  A%%*:1*=*C*C*E*E*R*R*R*R		4	4	4B>[((((##%%%Y2"555F
//jbfUmm/
L
LCch 122222r9   c                    t          j        t          j        d                    }t	          j        t          |                    |d<   | dk    r|                    d          }|d         j        	                                }t          |          dk    r|d         
                                | k    sJ t          j        |          }|dk    r#t          j        ||	          }|j        |k    sJ t!          j        d
d
          }|                    |dt!          j        d                    }t)          |j        t,                     d S r_   )r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   rD   rE   r>   r?   r:   r-   r.   r[   r0   r   r1   r\   rV   s         r7   test_polygons_spatialpandasrb   +  s1    
	[1&99	:	:B	#b''""BuIIZZEZ***~/6688  A%%*:1*=*C*C*E*E*R*R*R*R		#B	'	'BQ^BK888~,,,,Y2"555F
//jbfUmm/
L
LCch 122222r9   )!dask.dataframe	dataframer>   
datashaderr-   datashader.tests.test_pandasr   numpyr&   r   pytestdask_geopandasImportErrorr$   r"   rD   arrayr2   uint32rQ   r\   markskipifparametrizer8   rB   rF   rS   rW   rY   r]   r`   rb    r9   r7   <module>rq      s             : : : : : :              NNN   KKK   III   MMM 2Cc3S#sCc3PSUXZ]_bdgh#R"c3S#sCc3PSUXZ]_bdgh2sC"r3S#sR"r3PSUXZ]_bdgh2sCrBb2R"rBQSUXZ]_bdgh2CcBb2R"rBQSVX[]`bdgh2CcBb#sR"rBQSVX[]`bdgh2R"rBS#sC"rBQSVX[]`bdgh#RrBb2sCrBQSVXZ]`begh#sCc3b2sC"rBPSUXZ]`begh#sCc3b2C"rBPSUXZ]_begh#sCc3b2R"c3PSUXZ]`begh#sCc3b#Rc3PSUXZ]_begh#sCc3b2RcBPSUX[]`begh#sCc3S2sR"rBQSVX[]`bdgh#sCc3S2R"rBQSVX[]_bdgh#sCc3S#RrBQSVXZ]_bdgh#sCc3S#RcBQSVX[]_bdgh#sCc3S#sR"c3QSVX[]_bdgh#sCc3S#sR"c3QSVX[]_bdgh#sCc3S#sC"rBPSUXZ]_bdgh)  . "(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)* 
+  0 BH2sCc3S#sCc3PSUXZ]_bdgh2Cc3S#sCc3PSUXZ]_bdgh2R"c3S#sRc3PSUXZ]_bdgh#R"r3S#sCc3PSUXZ]_bdgh#R"rBS2R"rBQSVXZ]_bdgh#R"rBb2R"rBQSVX[]_bdgh#R"rBb2R"rBQSVX[]_bdgh#sRc3b2R"rBQSVX[]`bdgh#sCc3S2R"rBQSVX[]`bdgh#sCc3b2R"rBQSVX[]`bdgh#sCc3S2R"rBQSVX[]`bdgh#sCc3S2R"rBQSVX[]`begh#sCc3S2R"rBQSVX[]`begh#sCc3S#R"r3QSVX[]_bdgh#sCc3S#R"r3PSUXZ]_bdgh#sCc3S#sR"rBQSUXZ]_bdgh#sCc3S#sR"rBQSVXZ]_bdgh#sCc3S#sC"rBQSVX[]_bdgh#sCc3S#sR"rBQSVX[]_bdgh#sCc3S#sC"rBPSUXZ]_bdgh)   0 O,GHH	M*CDD;   0 0  ED IH0" O,GHH&/MNN	M*CDD			22;   0 0  32 ED ON IH0* O,GHH%.KLL			22;   0 0  32 ML IH0, O,GHH	M*CDD|W&=>>1 1 ?> ED IH1 O,GHH	M*CDD			22|W&=>>1 1 ?> 32 ED IH1$ O,GHH%.KLL55|W&=>>1 1 ?> 65 ML IH1& O,GHH	M*CDD~y&ABB3 3 CB ED IH3 O,GHH&/MNN	M*CDD			22~y&ABB3 3 CB 32 ED ON IH
3$ O,GHH	M*CDD%.KLL55~y&ABB3 3 CB 65 ML ED IH
3 3 3s?   % //8 AAA AAA A('A(