a
    =b                     @   sB   d Z ddlZddlmZ ddlmZ ddlmZ G dd dZ	dS )zX
Tests for Morphological footprints
(skimage.morphology.footprint)

Author: Damian Eads
    N)assert_equal)fetch)
footprintsc                   @   sl   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd ZdS )	TestSElemc                 C   s:   t ddD ]*}t|}tj||fdd}t|| q
dS )zTest square footprintsr      uint8ZdtypeN)ranger   Zsquarenponesr   selfkactual_maskexpected_mask r   Glib/python3.9/site-packages/skimage/morphology/tests/test_footprints.pytest_square_footprint   s    
zTestSElem.test_square_footprintc                 C   sL   t ddD ]<}t ddD ],}t||}tj||fdd}t|| qq
dS )zTest rectangle footprintsr   r   r   r   N)r	   r   Z	rectangler
   r   r   )r   ijr   r   r   r   r   test_rectangle_footprint   s
    z"TestSElem.test_rectangle_footprintc                 C   s<   t ddD ],}t|}tj|||fdd}t|| q
dS )zTest cube footprintsr   r   r   r   N)r	   r   Zcuber
   r   r   r   r   r   r   test_cube_footprint   s    
zTestSElem.test_cube_footprintc                 C   sb   t t|}d}t|D ]B}|| }||}|jdkrJ|d d t jf }t|| |d }qd S )Nr      r   )r
   loadr   sortedshapenewaxisr   )r   fnfuncmatlab_masksr   arrnamer   r   r   r   r   strel_worker&   s    

zTestSElem.strel_workerc           	      C   s   t t|}d}t|D ]}|| }||}|jdkrJ|d d t jf }t|jd d }t|||d d d d f  t||d d |d d f  t||d d d d |f  |d }qd S )Nr   r      r   )r
   r   r   r   r   r   intr   )	r   r   r   r    r   r!   r   r   cr   r   r   strel_worker_3d1   s    
zTestSElem.strel_worker_3dc                 C   s   |  dtj dS )zTest disk footprintsdata/disk-matlab-output.npzN)r"   r   Zdiskr   r   r   r   test_footprint_diskB   s    zTestSElem.test_footprint_diskc                 C   s   |  dtj dS )zTest diamond footprintsdata/diamond-matlab-output.npzN)r"   r   Zdiamondr(   r   r   r   test_footprint_diamondF   s    z TestSElem.test_footprint_diamondc                 C   s   |  dtj dS )zTest ball footprintsr'   N)r&   r   Zballr(   r   r   r   test_footprint_ballJ   s    zTestSElem.test_footprint_ballc                 C   s   |  dtj dS )zTest octahedron footprintsr*   N)r&   r   Z
octahedronr(   r   r   r   test_footprint_octahedronN   s    z#TestSElem.test_footprint_octahedronc                 C   s   t jg dg dg dg dg dg dg dg dg dg dg dgt jd}tdd}t jg dg d	g dgt jd}td
d
}t|| t|| dS )zTest octagon footprints)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   N)r
   arrayr   r   Zoctagonr   r   Zexpected_mask1Zactual_mask1Zexpected_mask2Zactual_mask2r   r   r   test_footprint_octagonS   s0    


z TestSElem.test_footprint_octagonc              	   C   s   t jg dg dg dg dg dg dg dgt jd}tdd}t jg dg dg dgt jd}tdd}t|| t|| t|tddj t|tddj dS )	zTest ellipse footprintsr.   r/   r   r   r0   r1   r   N)r
   r2   r   r   Zellipser   Tr3   r   r   r   test_footprint_ellipsei   s,    



z TestSElem.test_footprint_ellipsec                 C   s   t jg dg dg dg dg dg dg dg dg dg dg dg dg dgt jd}td}t jg dg dg dgt jd}td	}t|| t|| d
S )zTest star footprints)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      r1   r   N)r
   r2   r   r   Zstarr   r3   r   r   r   test_footprint_star|   s4    




zTestSElem.test_footprint_starN)__name__
__module____qualname__r   r   r   r"   r&   r)   r+   r,   r-   r4   r6   r8   r   r   r   r   r      s   r   )
__doc__Znumpyr
   Znumpy.testingr   Zskimage._shared.testingr   Zskimage.morphologyr   r   r   r   r   r   <module>   s
   