o
    :ήc|                     @   s   d dl Zd dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ dd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zejdd Zdd Zdd ZdS )    N)convex_hull_imageconvex_hull_object)possible_hull)testing)assert_array_equal)expected_warningsc                  C   sv   t jg dg dg dg dg dg dgtd} t jg dg dg dg dg d	g dgtd}tt| | d S )
N	r   r   r   r   r   r   r   r   r   	r   r   r   r      r   r   r   r   	r   r   r   r
   r   r
   r   r   r   )	r   r   r
   r   r   r   r
   r   r   )	r   r
   r   r   r   r   r   r
   r   dtype)	r   r   r   r
   r
   r
   r   r   r   	r   r   r
   r
   r
   r
   r
   r   r   	r   r
   r
   r
   r
   r
   r
   r
   r   nparrayboolr   r   imageexpected r   P/tmp/pip-target-vg8gfxp4/lib/python/skimage/morphology/tests/test_convex_hull.py
test_basic
   s*   r   c                  C   sL   t jdtd} tdg tt| |  W d    d S 1 sw   Y  d S )N)   r   r   zentirely zero)r   zerosr   r   r   r   r   r   r   r   test_empty_image   s   "r   c                  C   s@   g dg df} t jdtd}d|| < | }tt|| d S )N)<iW  X  r   r   Y  r   r   r   r   Z  r    r    r    r    r    r    [  r!   r!   r!   r!   r!   r!   r!   r!   \  r"   r"   r"   r"   r"   r"   r"   r"   ]  r#   r#   r#   r#   r#   r#   r#   r#   ^  r$   r$   r$   r$   r$   r$   _  r%   r%   r%   r%   `  r&   r&   ia  r"   )<      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.   r,   r*   r(   r'   r)   r+   r-   r.   r,   r*   r(   r'   r)   r+   r,   r*   r(   r'   r)   r*   r(   r'   r(   r/   )ip  i  r   T)r   r   r   copyr   r   )nonzerosr   r   r   r   r   test_qhull_offset_example$   s   r3   c                  C   sR   t jg dg dg dgtd} t jg dg dg dgtd}tt| | d S )N)r   r   r   r   r
   r   r   )r   r   r
   r
   r
   r
   r
   )r
   r
   r
   r   r   r   r   r   )r   r   r   r
   r
   r
   r   )r   r
   r
   r
   r
   r
   r
   )r
   r
   r
   r
   r
   r   r   r   r   r   r   r   test_pathological_qhull_example6   s   r4   c                  C   s   t jg dg dg dg dg dg dgt jd} t ddgd	d
gd
d	gddgddgd
d	gd	d
gddgd	dgd
dgddgd	dgd
dgddgdd	gdd
gddgddgddgg}t| }t|| d S )Nr   r	   r   r   r   r   r
               r      )r   r   uint8r   r   )r   r   phr   r   r   test_possible_hullB   s@   
r<   c                  C   s@  t jg dg dg dg dg dg dg dg dg dg	td} t jg dg dg dg dg dg d	g d
g dg dg	td}tt| dd| t jg dg dg dg dg dg dg dg dg dg	td}tt| dd| tt t| dd W d    n1 sw   Y  t| dd}t|| d S )Nr   )	r
   r   r   r   r   r   r   r   r   )	r
   r
   r
   r
   r   r   r
   r   r
   )	r
   r   r   r   r   r   r   r
   r   )	r
   r   r   r   r   r   r
   r   r
   r   )	r
   r
   r   r   r   r   r   r   r   )	r
   r
   r
   r   r   r   r   r   r   )	r
   r
   r
   r   r   r   r   r
   r   )	r
   r
   r   r   r   r   r
   r   r
   r
   )connectivity)	r
   r
   r
   r
   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   r   r   r   r   r   raises
ValueError)r   expected_conn_1expected_conn_2outr   r   r   test_objectc   sd   rC   c                  C   sh   t jddtd} tt| |  t jddtd} tt| |  t t jdtdg d} tt| |  d S )N)r6   r6   F)orderr   )r6   r6   r6   r   )r   r6   r
   )r   onesr   r   r   	transposer   r   r   r   test_non_c_contiguous   s   rH   c                  C   s$   ddl m}  t| | | f}| |fS )Nr7   )SAMPLE)measure.tests.test_regionpropsrI   r   stack)r   image3dr   r   r   
images2d3d   s   rM   c                 C   s2   | \}}t |}d|d< t |}t|d | d S )NT)   r   r
   )r   r   )rM   r   rL   chimage	chimage3dr   r   r   test_consistent_2d_3d_hulls   s
   rQ   c                  C   s   t jg dg dg dg dg dg dgt jd} t | | | g}tt t|}t|t j	|j
td W d    d S 1 sBw   Y  d S )Nr   )	r   r   r   r   r   r   r   r
   r   )	r   r
   r   r   r   r   r   r   r   r   )r   r   r:   rK   r   assert_warnsUserWarningr   r   r   shaper   )r   rL   rP   r   r   r   test_few_points   s   "rU   )numpyr   skimage.morphologyr   r   skimage.morphology._convex_hullr   skimage._sharedr   skimage._shared.testingr   skimage._shared._warningsr   r   r   r3   r4   r<   rC   rH   fixturerM   rQ   rU   r   r   r   r   <module>   s"    !/
