
    |Leh                        d dl mZ d dlZd dlmZ d dlmZ d dl	m
Z
 d dl	mZ d dl	mZ d dl	mZ d dl	mZ d dlZd dlZd	Zd
Zdad Zd ZddZd Zd Zd Zd Zd Zd ZdS )    )annotationsN)viridis)render_tiles)gen_super_tiles)_get_super_tile_min_max)calculate_zoom_level_stats)MercatorTileDefinitiong{Gz?gףpEsAc                P   t           gt          j                            ddd          }t          j                            ddd          }t	          j        t          ||                    a t           j        t          d         j        |  t          d         j        | z           S )Nr     i )locscalesize)xyr   r   )	dfnprandomnormalpd	DataFramedictr   between)x_rangey_rangexsyss       ;lib/python3.11/site-packages/datashader/tests/test_tiles.pymock_load_data_funcr      s    	zY!6AAY!6AA\$r***++6"S'/7+bgow.GGHH    c                d    t          j        ||||          }|                    | dd          }|S )N)r   r   plot_height
plot_widthr   r   )dsCanvaspoints)r   r   r   heightwidthcvsaggs          r   mock_rasterize_funcr*      s;    
)GW &5: : :C
**Rc
"
"CJr   c                j    t          j        | t          |d          }t          j        |d          }|S )Nlog)cmapspanhowblack)tfshader   set_background)r)   r.   imgs      r   mock_shader_funcr5   &   s1    
(3W4U
;
;
;C

C
)
)CJr   c                    ddl m} d\  }}d                    |d         |d         |d         | j        | j                  }|                    |           }|                    ||f|d	           | S )
Nr   )	ImageDraw)   r8   zx={} / y={} / z={}, w={}, h={}r   r   zzrgb(255, 255, 255))fill)PILr7   formatr'   r&   Drawtext)r4   kwargsr7   r   r   infodraws          r   mock_post_render_funcrB   ,   s    FQ+226#;39#;39#;36936:	? ?D >>#DIIq!fd!5I666Jr   c            	        d} t          t          d                    }d}t          | |t          t          t
          t          |          }|sJ t          |t                    sJ |D ]%}||v sJ t          ||         t                    sJ &|d         d         sJ |d         d         sJ |d         d         sJ d S )	N)^rD   r   r      test_tiles_output)load_data_funcrasterize_funcshader_funcpost_render_funcoutput_pathr   successstatssupertile_count)	listranger   r   r*   r5   rB   
isinstancer   )full_extent_of_datalevelsrK   resultslevels        r   test_render_tilesrV   <   s    +%((^^F%K.!*=*='7,A'24 4 4G NNNgt$$$$$ 0 0'%.$//////1:i    1:g1:'((((((r   c                    t          | t          t          f          }t          |           j        }d|v pd|v }t          ||g          sJ d S )Nintfloat)rQ   rX   rY   type__name__any)valueis_int_or_float	type_nameis_numpy_int_or_floats       r   assert_is_numericra   U   sX     e55OU$I!Y.F'Y2F!678888888r   c                    dt            t           ft            t           fddd} t          | t          t                    }t	          j        |j                  t	          j        |j                  g}t          |t                    sJ t          |          dk    sJ t          |d                    t          |d                    d S )Nr      )r   i  )rU   r   r   	tile_sizer.   rE      )MERCATOR_CONSTr   r   r*   r   nanmindatananmaxrQ   rO   lenra   )	tile_infor)   results      r   test_get_super_tile_min_maxrm   ]   s    +O^<+O^< !	# #I ")-@BU
V
VCi!!29SX#6#67Ffd#####v;;!fQi   fQi     r   c                 v   t            t            t           t           f} d}d}t          t          t          | |                    t          t
          |          \  }}t          |t          t          f          sJ t          |          dk    sJ t          |d                    t          |d                    d S )Nr   fullscan)color_ranging_strategyrE   re   )
rf   r   rO   r   r   r*   rQ   tuplerj   ra   )full_extentrU   rp   super_tilesr.   s        r   >test_calculate_zoom_level_stats_with_fullscan_ranging_strategyrt   n   s    "?^O!>3KE'24UZ8[8[3\3\(;(;?UW W WK
 dT5M*****t99>>>>d1gd1gr   c                     d} | \  }}}}d}t          ||f||fd          }|                    |||          }|dk    sJ d S )N)g̻r_gRAg ׆a_gڏSA   rc   )rd   )i  i  )r	   meters_to_tile)rR   xminyminxmaxymaxzoomtile_deftiles           r   test_meters_to_tiler   }   se    \0D$dD%tTlT4LCPPPH""4t44D<r   )N)
__future__r   
datashaderr#   datashader.transfer_functionstransfer_functionsr1   datashader.colorsr   datashader.tilesr   r   r   r   r	   numpyr   pandasr   	TOLERANCErf   r   r   r*   r5   rB   rV   ra   rm   rt   r    r   r   <module>r      sa   " " " " " "     * * * * * * % % % % % % ) ) ) ) ) ) , , , , , , 4 4 4 4 4 4 7 7 7 7 7 7 3 3 3 3 3 3        		I I I        ) ) )29 9 9! ! !"           r   