o
    :ήc                     @   s   d dl Z d dlZd dlZd dlmZmZ d dlmZ ej	
dddejgej	
dg dd	d
 Zej	
dg dej	
dg ddd Zej	
dddejgej	
dg ddd Zdd Zej	
dddejgej	
dg ddd ZdS )    N)pdist	minkowski)ensure_spacingp      size)   2   Nc              	   C   s   t g | dg ks
J tjdd}t|t || |dsJ tjdd}t|t |d| |ds3J t|t| d d	 }t ||| |d}t||sNJ d S )
N)p_normr   r   )r   min_split_sized   r   spacingr   r   metricr   g      ?)r   nprandomrandnarray_equalr   r   minr   r   coordr   out r   G/tmp/pip-target-vg8gfxp4/lib/python/skimage/_shared/tests/test_coord.pytest_ensure_spacing_trivial
   s   r   ndim)r   r            )r   
   Nc                 C   s8   t d| f}t d| f}t t||d|sJ d S )Nr    r   )r   )r   onesr   r   )r   r   r   expectedr   r   r   test_ensure_spacing_nD%   s   r$   )r
   r   Nc                 C   sP   t jdd}t t|t| d}t||| d}t t||| |d|s&J d S )Nr   r   r   )r   r   r   )r   r   r   medianr   r   r   r   )r   r   r   r   r#   r   r   r   $test_ensure_spacing_batch_processing/   s   r&   c                  C   sn   t jjdddd} t }t| dddd t | }t }t| ddd	d t | }|d
| k s5J dS )zSmall batches are slow, large batches -> large allocations -> also slow.

    https://github.com/scikit-image/scikit-image/pull/6035#discussion_r751518691
    r   i8  )i@  r   )lowhighr   r   r
   i  )r   r   max_split_sizei N  gHzG?N)r   r   randinttimer   )coordststartdur1dur2r   r   r   test_max_batch_size>   s   r0   c                 C   sP   t jdd}t t|t| d}t||| |d}t|t| d |ks&J d S )Nr   r   r   r   )r   r   r   r%   r   r   r   r   r   r   r   r   test_ensure_spacing_p_normU   s   r1   )r+   numpyr   pytestscipy.spatial.distancer   r   skimage._shared.coordr   markparametrizeinfr   r$   r&   r0   r1   r   r   r   r   <module>   s$    