a
    =b|                     @   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   Hlib/python3.9/site-packages/skimage/morphology/tests/test_convex_hull.py
test_basic
   s*    r   c                  C   sJ   t jdtd} tdg tt| |  W d    n1 s<0    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   )Znonzerosr   r   r   r   r   test_qhull_offset_example$   s    r2   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    r3   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   Zphr   r   r   test_possible_hullB   s@    
r:   c                  C   sB  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 s0    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
   )Z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
   r5   r6   )r   r   r   r   r   r   Zraises
ValueError)r   Zexpected_conn_1Zexpected_conn_2outr   r   r   test_objectc   sb    ,r=   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)r5   r5   F)orderr   )r5   r5   r5   r   )r   r5   r
   )r   Zonesr   r   r   Z	transposer   r   r   r   test_non_c_contiguous   s    r@   c                  C   s$   ddl m}  t| | | f}| |fS )Nr6   )SAMPLE)Zmeasure.tests.test_regionpropsrA   r   stack)r   image3dr   r   r   
images2d3d   s    rD   c                 C   s2   | \}}t |}d|d< t |}t|d | d S )NT)   r   r
   )r   r   )rD   r   rC   Zchimage	chimage3dr   r   r   test_consistent_2d_3d_hulls   s
    rG   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    n1 s0    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   r9   rB   r   Zassert_warnsUserWarningr   r   r   shaper   )r   rC   rF   r   r   r   test_few_points   s    rJ   )Znumpyr   Zskimage.morphologyr   r   Zskimage.morphology._convex_hullr   Zskimage._sharedr   Zskimage._shared.testingr   Zskimage._shared._warningsr   r   r   r2   r3   r:   r=   r@   ZfixturerD   rG   rJ   r   r   r   r   <module>   s    !/
