o
    :ήc                     @   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dtypeN)ranger   squarenponesr   selfkactual_maskexpected_mask r   O/tmp/pip-target-vg8gfxp4/lib/python/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   	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   cuber   r   r   r   r   r   r   test_cube_footprint   s
   
zTestSElem.test_cube_footprintc                 C   sb   t t|}d}t|D ]!}|| }||}|jdkr%|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 ]O}|| }||}|jdkr%|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      |  dtj dS )zTest disk footprintsdata/disk-matlab-output.npzN)r&   r   diskr   r   r   r   test_footprint_diskB      zTestSElem.test_footprint_diskc                 C   r+   )zTest diamond footprintsdata/diamond-matlab-output.npzN)r&   r   diamondr.   r   r   r   test_footprint_diamondF   r0   z TestSElem.test_footprint_diamondc                 C   r+   )zTest ball footprintsr,   N)r*   r   ballr.   r   r   r   test_footprint_ballJ   r0   zTestSElem.test_footprint_ballc                 C   r+   )zTest octahedron footprintsr1   N)r*   r   
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   octagonr   r   expected_mask1actual_mask1expected_mask2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 footprintsr8   r9   r   r   r:   r;   r   N)r   r<   r   r   ellipser   Tr>   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      r;   r   N)r   r<   r   r   starr   r>   r   r   r   test_footprint_star|   s4   




zTestSElem.test_footprint_starN)__name__
__module____qualname__r   r   r   r&   r*   r/   r3   r5   r7   rC   rF   rI   r   r   r   r   r      s    r   )
__doc__numpyr   numpy.testingr   skimage._shared.testingr   skimage.morphologyr   r   r   r   r   r   <module>   s    