U
    h                     @   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dd	dgd
d Zej	
ddddddgej	
ddddgdd Zej	
dddejgej	
dd	ddgdd Zdd Zej	
dddejgej	
ddd	dgdd ZdS )    N)pdist	minkowski)ensure_spacingp      size   2   c              	   C   s   t g | dg ksttjdd}t|t || |ds<ttjdd}t|t |d| |dsftt|t| d d	 }t ||| |d}t||std S )
N)p_normr   r   )r   min_split_sized   r   spacingr   r   Zmetricr   g      ?)	r   AssertionErrornprandomrandnarray_equalr   r   minr   r   coordr   out r   D/tmp/pip-unpacked-wheel-gtraehzf/skimage/_shared/tests/test_coord.pytest_ensure_spacing_trivial
   s    r   ndim         
   c                 C   s8   t d| f}t d| f}t t||d|s4td S )Nr    r   )r   )r   Zonesr   r   r   )r   r   r   expectedr   r   r   test_ensure_spacing_nD%   s    r#   r   c                 C   sP   t jdd}t t|t| d}t||| d}t t||| |d|sLtd S )Nr   r   r   )r   r   r   )	r   r   r   medianr   r   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 sjt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   Zmax_split_sizei N  gHzG?N)r   r   randinttimer   r   )ZcoordsZtstartZdur1Zdur2r   r   r   test_max_batch_size>   s    r*   c                 C   sP   t jdd}t t|t| d}t||| |d}t|t| d |ksLtd S )Nr   r   r   r   )	r   r   r   r$   r   r   r   r   r   r   r   r   r   test_ensure_spacing_p_normU   s    r+   )r)   Znumpyr   ZpytestZscipy.spatial.distancer   r   Zskimage._shared.coordr   markZparametrizeinfr   r#   r%   r*   r+   r   r   r   r   <module>   s"   