o
    4Bih                     @   s  d dl Zd dlZd dlmZmZmZmZm	Z	m
Z
m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G d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 d! Z d"d# Z!d$d% Z"d&d' Z#d(d) Z$d*d+ Z%d,d- Z&d.d/ Z'd0d1 Z(d2d3 Z)d4d5 Z*d6d7 Z+d8d9 Z,d:d; Z-d<d= Z.d>d? Z/d@dA Z0dBdC Z1dDdE Z2dFdG Z3dHdI Z4dJdK Z5dLdM Z6dNdO Z7dPdQ Z8dRdS Z9dTdU Z:dVdW Z;dXdY Z<dZd[ Z=d\d] Z>d^d_ Z?d`da Z@dbdc ZAddde ZBdfdg ZCdhdi ZDdjdk ZEdldm ZFdndo ZGdpdq ZHdrds ZIdtdu ZJdvdw ZKdxdy ZLdzd{ ZMd|d} ZNd~d ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd Zhdd Zidd Zjdd Zkdd Zldd Zmdd Zndd Zodd ZpddÄ Zqddń ZrddǄ ZsddɄ Ztdd˄ Zudd̈́ Zvddτ Zwddф Zxddӄ ZyddՄ Zzddׄ Z{ddل Z|ddۄ Z}dd݄ Z~dd߄ Zdd ZG dd dZejdejejgdd ZdS )    N)assert_assert_allcloseassert_almost_equalassert_array_almost_equalassert_array_equalassert_equalsuppress_warnings)raises   )typesc                   @   s8   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d ZdS )Test_measurements_statszDndimage._measurements._stats() is a utility used by other functions.c                 C   x   g d}g d}ddg}dD ]+}t ||}t ||}tjj|||d\}}t|ddg t|dd	g qd S )
Nr   r
         r   r   r
   r
   r   r
   )   )r   r   labelsindexr         ?       @nparrayreshapendimage_measurements_statsr   selfxr   r   shpcountssums r&   e/var/www/html/Trade-python/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_measurements.pytest_a   s   
zTest_measurements_stats.test_ac                 C   r   )
Nr   r   r   	   r*   r   r*   r   r   r   r   r   r   r    r&   r&   r'   test_b%   s   
zTest_measurements_stats.test_bc                 C      g d}g d}ddg}dD ]4}t ||}t ||}tjj|||dd\}}}t|ddg t|d	d
g t|dd
g qd S )Nr   r   r   r
   r   Tr   r   centeredr   r   r         ?r   r!   r"   r   r   r#   r$   r%   centersr&   r&   r'   test_a_centered3      z'Test_measurements_stats.test_a_centeredc                 C   r,   )Nr   r)   r   r*   r   Tr-   r   r   r   r/   r   r0   r&   r&   r'   test_b_centered@   r3   z'Test_measurements_stats.test_b_centeredc                 C   r,   )Nr   )        r5         "@r6   r5   r6   r   Tr-   r   r   r   r/   r   r0   r&   r&   r'   test_nonint_labelsM   r3   z*Test_measurements_stats.test_nonint_labelsN)	__name__
__module____qualname____doc__r(   r+   r2   r4   r7   r&   r&   r&   r'   r      s    r   c                   @   s   e Zd ZdZdd ZdS )Test_measurements_selectzEndimage._measurements._select() is a utility used by other functions.c                 C   s  g d}g dddgfg dddgfg ddd	gfg}|D ]\}}t jj|||d
}tt|dk t jj|||dd}tt|dk t|d ddg t jj|||dd}tt|dk t|d ddg t jj|||ddd}tt|dk t|d ddg t|d ddg t|d jjd t jj|||ddd}tt|dk t|d ddg t|d ddg t|d jjd qd S )N)r   r
   r   r   r   r   r
   r)   r*   )r5   r5         @r=   r5   r=   r   T)r   r   find_maxr   )r   r   find_minr   )r   r   r?   find_min_positions   i)r   r   r>   find_max_positions)	r   r   _selectr   lenr   r   dtypekind)r!   r"   casesr   r   resultr&   r&   r'   
test_basic^   sJ   z#Test_measurements_select.test_basicN)r8   r9   r:   r;   rJ   r&   r&   r&   r'   r<   [   s    r<   c                  C   0   t g } t| \}}t|d t|d d S Nr
   r   onesr   labelr   r   dataoutnr&   r&   r'   test_label01      

rT   c                  C   rK   )Nr   r   zerosr   rO   r   r   rP   r&   r&   r'   test_label02   rU   rX   c                  C   s4   t dg} t| \}}t|dg t|d d S rL   rM   rP   r&   r&   r'   test_label03      rY   c                  C   s4   t dg} t| \}}t|dg t|d d S Nr
   r   rV   rP   r&   r&   r'   test_label04   rZ   r\   c                  C   s6   t dg} t| \}}t|g d t|d d S )N   )r
   r
   r
   r
   r
   r
   rM   rP   r&   r&   r'   test_label05   s   r^   c                  C   s8   t g d} t| \}}t|g d t|d d S )N)r
   r   r
   r
   r   r
   r
   r   r   r   r   rA   rA   r   r   r   rO   r   r   rP   r&   r&   r'   test_label06   s   ra   c               	   C   sx   t g dg dg dg dg dg dg} t| \}}t|g dg dg dg dg dg dg t|d d S )Nr   r   r   r   r   r   r   r`   rP   r&   r&   r'   test_label07       

rc   c               	   C   sx   t g dg dg dg dg dg dg} t| \}}t|g dg dg dg dg dg d	g t|d
 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   rA   rA   r   r   r   r   r   r   r   r   r   r   r   r`   rP   r&   r&   r'   test_label08   rd   ro   c               	   C   s   t g dg dg dg dg dg dg} tdd}t| |\}}t|g dg dg dg d	g d	g d
g t|d d S )Nrf   rg   rh   ri   rj   r   rk   rl   )r   r   r   r   r   r   )r   r   r   rA   rA   r   rA   r   r   r   generate_binary_structurerO   r   r   rQ   structrR   rS   r&   r&   r'   test_label09   s"   

rt   c                  C   sn   t g dg dg dg dg} tdd}t| |\}}t|g dg dg dg dg t|d d S )Nrb   )r   r
   r
   r   r
   r   )r   r
   r
   r
   r
   r   r   r
   rp   rr   r&   r&   r'   test_label10   s   

ru   c               
   C   s   t D ]?} tg dg dg dg dg dg dg| }t|\}}g dg dg dg dg dg d	g}t|| t|d
 qd S re   r   r   r   r   rO   r   r   typerQ   rR   rS   expectedr&   r&   r'   test_label11   *   

rz   c               
   C   s   t D ]?} tg dg dg dg dg dg dg| }tj||d}g dg dg dg d	g d	g d
g}t|| t|d qd S )Nrf   rg   rh   ri   rj   outputrk   rl   rm   rn   r   rv   )rx   rQ   rS   ry   r&   r&   r'   test_label11_inplace   r{   r~   c               	   C   s|   t D ]9} tg dg dg dg dg dg| }t|\}}g dg dg dg dg dg}t|| t|d q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
   rj   r
   rv   rw   r&   r&   r'   test_label12  s&   

r   c                  C   sp   t D ]3} tg dg dg dg dg| }t|\}}g dg dg dg dg}t|| t|d q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
   rv   rw   r&   r&   r'   test_label13$  s"   

r   c                  C   sL   t dg} tD ]}t jdg|d}tj| |d}t|d t|d qd S )Nr]   rF   r|   r
   )r   rN   r   rW   r   rO   r   r   rQ   tr}   rS   r&   r&   r'   test_label_output_typed4  s   
r   c                  C   sD   t dg} tD ]}tj| |d\}}t|d |j|ksJ qd S )Nr]   r|   r
   )r   rN   r   r   rO   r   rF   r   r&   r&   r'   test_label_output_dtype=  s   
r   c                  C   s>   t dg} tD ]}t dg|}tttftj| |d qd S )Nr]   
   r|   )	r   rN   r   rW   assert_raisesRuntimeError
ValueErrorr   rO   )rQ   r   r}   r&   r&   r'   test_label_output_wrong_sizeE  s   r   c               	   C   s  t tjtjtdd} t tjtjtdd}t tjtjtdd}| d} |d}|d}d}t| j	d D ]:}| |d d d d f }t|j	d D ]%}||d d d d f }t
t||d ||d d d d f  |d7 }qYqEd S )	NrQ   zlabel_inputs.txtzlabel_strels.txtzlabel_results.txt)   r   )r   rA   rA   r   r
   )r   loadtxtospathjoindirname__file__r   rangeshaper   r   rO   )rQ   strelsresultsrrB   djsr&   r&   r'   test_label_structuring_elementsM  s.   




(
r   c                  C   sL   ddd} t t jt dkr$d}t jt ||}| | d S d S )Nffffff?r   c                 S   s8   | |k}t |j}t|t||\}}t|}d S )N)rE   r   r   rO   rq   find_objects)imgthreshsizemaskranklaco_r&   r&   r'   SEa  s   

ztest_ticket_742.<locals>.SErB   )rA     r   )r   r   )r   rF   intprandomrandprodr   )r   r   ar&   r&   r'   test_ticket_742`  s   
r   c                  C   sl   t d} d| ddddf< d| ddddf< d| d< d| d< d| d< t| t d	d dks4J dS )
z/Github issue #3025 - improper merging of labels)<   i@  r
   N  i  )$   r   )#   i  )r   i  )rA   rA   )r   rW   r   rO   rN   )r   r&   r&   r'   test_gh_issue_3025o  s   
"r   c                  C   sD   t jdd} t| dk\}}t|jt jt jfv  t	| d S )Nr   r/   )
r   r   r   r   rO   r   rF   int32int64r   )
test_arrayrO   no_featuresr&   r&   r'   test_label_default_dtypez  s   r   c                  C   s*   t jg td} t| }t|dgk d S )Nr   r&   )r   rN   intr   r   r   rQ   rR   r&   r&   r'   test_find_objects01  s   
r   c                  C   s(   t jg td} t| }t|g k d S )Nr   )r   rW   r   r   r   r   r   r&   r&   r'   test_find_objects02  s   
r   c                  C   4   t jdgtd} t| }t|tddd fg d S )Nr
   r   r   r   rN   r   r   r   r   slicer   r&   r&   r'   test_find_objects03     
r   c                  C   s(   t jdgtd} t| }t|g  d S )Nr
   r   )r   rW   r   r   r   r   r   r&   r&   r'   test_find_objects04     
r   c                  C   r   )Nr]   r   r   r   r   r&   r&   r'   test_find_objects05  r   r   c                  C   sJ   t g d} t| }t|tddd ftddd ftddd fg d S )Nr_   r   r
   r   r   r]   r   r   r   r   r   r   r   r   r&   r&   r'   test_find_objects06  s   

r   c               	   C   sF   t g dg dg dg dg dg dg} t| }t|g  d S )Nrb   )r   r   r   r   r   r   r&   r&   r'   test_find_objects07  s   

r   c               
   C   s   t g dg dg dg dg dg dg} t| }t|tddd tddd ftddd td	d
d ftdd
d tdd	d ftd
dd tdd
d fg d S )Nrf   rk   rl   rm   rn   r   r
   rA   r   r]   r   r   r   r&   r&   r'   test_find_objects08  s   


r   c               
   C   s   t g dg dg dg dg dg dg} t| }t|tddd tddd ftddd td	d
d fd td
dd tdd
d fg d S )Nrf   rk   rl   rb   rn   r   r
   rA   r   r]   r   r   r   r&   r&   r'   test_find_objects09  s   


r   c               	   C   s   t g dg dg dg dg dg dg} tj| dd}g d}tt| | i }|D ]}t | |k||< q/tj| dd}t|| d	S )
z Test dictionary keys and entriesrf   rk   rl   rb   rn   r   )ignore_value)r
   r   r   N)r   r   r   value_indicesr   listkeyswhere)rQ   vi	true_keystruevikr&   r&   r'   test_value_indices01  s   
r   c                  C   sP   t jdt jd} d}tt|d t|  W d   dS 1 s!w   Y  dS )zTest input checking)r]   r   r   z(Parameter 'arr' must be an integer array)matchN)r   rW   float32r   r   r   r   )rQ   msgr&   r&   r'   test_value_indices02  s
   "r   c                  C   s   dD ]B} t jddg ddg  ddg  t jd| }t |}t|}tt|	 t| |D ]}t 
||k}t|| | q3qdS )z2Test different input array shapes, from 1-D to 4-D))r   )   r   )rA   rA   r   )rA   rA   r   r      r
   r   rA   r   N)r   r   r   r   uniquer   r   r   r   r   r   )r   r   trueKeysr   r   trueNdxr&   r&   r'   test_value_indices03  s   0

r   c                  C   .   t D ]} tg | }t|}t|d qd S )Nr5   )r   r   r   r   sumr   rx   inputr}   r&   r&   r'   
test_sum01  
   
r   c                  C   2   t D ]} tddg| }t|}t|d qd S )Nr   r   r5   )r   r   rW   r   r   r   r   r&   r&   r'   
test_sum02  
   
r   c                  C   r   )Nr   )r   r   rN   r   r   r   r   r&   r&   r'   
test_sum03  r   r   c                  C   r   )Nr
   r         @r   r   r   r   r   r   r   r&   r&   r'   
test_sum04  r   r   c                  C   s:   t D ]} tddgddgg| }t|}t|d qd S )Nr
   r   rA   r   g      $@r   r   r&   r&   r'   
test_sum05  s
   
r   c                  C   s>   t g t} tD ]}t g |}tj|| d}t|d qd S )Nr   r5   r   r   boolr   r   r   r   r   rx   r   r}   r&   r&   r'   
test_sum06  s   r   c                  C   sF   t ddgt} tD ]}t ddg|}tj|| d}t|d q
d S )Nr   r   r   r5   )r   rN   r   r   rW   r   r   r   r   r&   r&   r'   
test_sum07"     r   c                  C   sF   t ddgt} tD ]}t ddg|}tj|| d}t|d q
d S )Nr
   r   r   r   r   r   r   r&   r&   r'   
test_sum08*  r   r   c                  C   N   t ddgt} tD ]}t ddgddgg|}tj|| d}t|d q
d S )Nr
   r   r   rA   r   r         @)r   r   r   r   r   r   r   r   r&   r&   r'   
test_sum092     r   c                  C   D   t ddgt} t ddgddggt}tj|| d}t|d d S Nr
   r   r   rA   r   r          @)r   r   r   r   r   r   r   r   r}   r&   r&   r'   
test_sum10:     r   c                  C   sR   t ddgt j} tD ]}t ddgddgg|}tj|| dd}t|d qd S )Nr
   r   rA   r   r         @)r   r   int8r   r   r   r   r   r&   r&   r'   
test_sum11A  s   r   c                  C   sb   t ddgddggt j} tD ]}t ddgddgg|}tj|| g dd}t|g d qd S Nr
   r   r   rA   r      r   r   )r   r5   g      @)r   r   r   r   r   r   r   r   r&   r&   r'   
test_sum12J  s   r  c                  C   s   t ddgddggt j} tD ]1}t ddgddgg|}tj|| g dd}tj|| g dd}||k s9J t|g d qd S r   )	r   r   r   r   r   r   
sum_labelsallr   )r   rx   r   
output_sumoutput_labelsr&   r&   r'   test_sum_labelsR  s   
r  c                  C   r   r   )r   r   r   r   r   meanr   r   r&   r&   r'   test_mean01^  r   r
  c                  C   r   Nr
   r   r   rA   r   r   r   )r   r   r   r   r	  r   r   r&   r&   r'   test_mean02f  r   r  c                  C   N   t ddg} tD ]}t ddgddgg|}tj|| dd}t|d q	d S )Nr
   r   rA   r   r   r   )r   r   r   r   r	  r   r   r&   r&   r'   test_mean03m     r  c                  C   s   t ddgddggt j} t jdd8 tD ],}t ddgddgg|}tj|| g dd}t|d	dg d
dg tt 	|d  qW d    d S 1 sNw   Y  d S )Nr
   r   r   ignorer  rA   r  r   r   r         @)
r   r   r   errstater   r   r	  r   r   isnanr   r&   r&   r'   test_mean04v  s   "r  c                  C   r   r  )r   r   r   r   r   minimumr   r   r&   r&   r'   test_minimum01  r   r  c                  C   D   t ddgt} t ddgddggt}tj|| d}t|d d S Nr
   r   r   r   r   r   )r   r   r   r   r  r   r   r&   r&   r'   test_minimum02  r   r  c                  C   r  )Nr
   r   rA   r   r   r   )r   r   r   r   r  r   r   r&   r&   r'   test_minimum03  r  r  c                  C   ^   t ddgddgg} tD ]}t ddgddgg|}tj|| g dd}t|g d qd S )Nr
   r   rA   r   r   rA   r  r   )r   r   r5   )r   r   r   r   r  r   r   r&   r&   r'   test_minimum04     r  c                  C   r   )Nr
   r   r   rA   r   r   r   )r   r   r   r   r   maximumr   r   r&   r&   r'   test_maximum01  r   r!  c                  C   r  r  )r   r   r   r   r   r   r   r&   r&   r'   test_maximum02  r   r"  c                  C   r  )Nr
   r   rA   r   r   r   )r   r   r   r   r   r   r   r&   r&   r'   test_maximum03  r  r#  c                  C   r  )Nr
   r   rA   r   r  r   )r   r   r5   )r   r   r   r   r   r   r   r&   r&   r'   test_maximum04  r  r$  c                  C   s"   t g d} tt| d d S )N)r   r   )r   r   r   r   r   )r"   r&   r&   r'   test_maximum05  s   r'  c                  C   sj   t g dg dg dg dg} t g dg dg dg dg}tj| |g dd	}t|g d
 d S )Nr
   r   r   r
   r]   rA   r   r   r   r   r   r   r*   rA   r   r   r
   r
   r   r   r   r   r   r   rA   rA   r   r   )r
   r   rA   r   )r  r   r   )r   r   r   medianr   r   r   r}   r&   r&   r'   test_median01  s   

r1  c                  C   s:   t g dg dg dg dg} t| }t|d d S )Nr(  r)  r*  r+  r   r   r   r   r/  r   r   r}   r&   r&   r'   test_median02  s   

r4  c                  C   s`   t g dg dg dg dg} t g dg dg dg dg}tj| |d}t|d	 d S )
Nr(  r)  r*  r+  r,  r-  r.  r   r   r2  r0  r&   r&   r'   test_median03  s   

r5  c                  C   s:   t jddgtd} tj| t ddgd}t|dg d S )Nr
   r   r   r   r   )r   asarrayr   r   r/  rN   r   r3  r&   r&   r'   test_median_gh12836_bool  s   r8  c                  C   s<   t jddgt jd} tj| t ddgd}t|dg d S )NA   F   r   r6  r
   r   g     P@)r   r7  r   r   r/  rN   r   r3  r&   r&   r'   test_median_no_int_overflow  s   r;  c               
   C      t jdd9 tD ]-} t g | }t }|td t|}W d    n1 s*w   Y  t	t 
| q	W d    d S 1 sBw   Y  d S Nr  r  zMean of empty slice)r   r  r   r   r   filterRuntimeWarningr   variancer   r  rx   r   supr}   r&   r&   r'   test_variance01     "rC  c                  C   0   t D ]} tdg| }t|}t|d qd S Nr
   r5   r   r   r   r   r@  r   r   r&   r&   r'   test_variance02  
   
rH  c                  C   r   Nr
   rA   r   rG  r   r&   r&   r'   test_variance03  r   rK  c                  C   (   t ddgt} t| }t|d d S )Nr
   r   g      ?)r   r   r   r   r@  r   r   r}   r&   r&   r'   test_variance04  r   rN  c                  C   >   g d} t D ]}tg d|}t|| d}t|d qd S N)r   r   rA   )r
   rA   r  r   r   rG  r   r&   r&   r'   test_variance05     rQ  c                  C   t   g d} t jdd& tD ]}t g d|}t|| g d}t|g d qW d    d S 1 s3w   Y  d S N)r   r   rA   rA   r   r  r  )r
   rA   r  r   r  )r   rA   r   )r   r   r5   )r   r  r   r   r   r@  r   r   r&   r&   r'   test_variance06      "rU  c               
   C   r<  r=  )r   r  r   r   r   r>  r?  r   standard_deviationr   r  rA  r&   r&   r'   test_standard_deviation01)  rD  rX  c                  C   rE  rF  r   r   r   r   rW  r   r   r&   r&   r'   test_standard_deviation023  rI  rZ  c                  C   s8   t D ]} tddg| }t|}t|td qd S rJ  )r   r   r   r   rW  r   sqrtr   r&   r&   r'   test_standard_deviation03:  s
   
r\  c                  C   rL  )Nr
   r   r/   )r   r   r   r   rW  r   rM  r&   r&   r'   test_standard_deviation04A  r   r]  c                  C   rO  rP  rY  r   r&   r&   r'   test_standard_deviation05G  rR  r^  c                  C   rS  rT  r   r  r   r   r   rW  r   r   r&   r&   r'   test_standard_deviation06O  rV  r`  c                  C   sl   dg} t jdd# tD ]}t dg|}t|| dg}t|dg qW d    d S 1 s/w   Y  d S )Nr
   r  r  gl `yr   r_  r   r&   r&   r'   test_standard_deviation07X  s   "ra  c                  C   r   )Nr
   r   r   rA   r   r   r   r   )r   r   r   r   r   minimum_positionr   r   r&   r&   r'   test_minimum_position01a  r   rd  c                  C   @   t D ]} tg dg dg dg| }t|}t|d qd S Nr]   r   r   r]   rA   r   r   r   r
   r]   r
   r
   r
   r   r   r   r   r   rc  r   r   r&   r&   r'   test_minimum_position02i     

rl  c                  C   6   t g dg dg dgt} t| }t|d d S rf  r   r   r   r   rc  r   rM  r&   r&   r'   test_minimum_position03r     

rp  c                  C   rn  )Nrg  )rA   r   r
   r   ri  rb  ro  rM  r&   r&   r'   test_minimum_position04z  rq  rr  c                  C   J   g d} t D ]}tg dg dg dg|}t|| }t|d qd S )Nr
   r   r   r   rg  rh  )r
   r]   r   rA   )r   r   rk  r   r&   r&   r'   test_minimum_position05     
ru  c                  C   L   g d} t D ]}tg dg dg dg|}t|| d}t|d qd S )Nr
   r   rA   r   rg  rh  ri  r   r   r
   rk  r   r&   r&   r'   test_minimum_position06     
rz  c                  C   sb   g d} t D ](}tg dg dg dg|}t|| ddg}t|d d t|d	 d
 qd S )Nrx  rg  rh  ri  r   rA   r   ry  r
   rj  rk  r   r&   r&   r'   test_minimum_position07     
r|  c                  C   r   )Nr
   r   r   rA   r   r   )r
   r   )r   r   r   r   r   maximum_positionr   r   r&   r&   r'   test_maximum_position01  s   r  c                  C   re  )Nrg  rA   r   r  r   ri  rj  r   r   r   r   r~  r   r   r&   r&   r'   test_maximum_position02  rm  r  c                  C   rn  )Nrg  r  ri  rb  )r   r   r   r   r~  r   rM  r&   r&   r'   test_maximum_position03  rq  r  c                  C   rs  )Nrt  rg  r  ri  r
   r
   r  r   r&   r&   r'   test_maximum_position04  rv  r  c                  C   rw  )Nrt  rg  r  ri  r
   rb  r  r   r&   r&   r'   test_maximum_position05  r{  r  c                  C   sb   g d} t D ](}tg dg dg dg|}t|| ddg}t|d d t|d d	 qd S )
Nrt  rg  r  ri  r
   r   r   rb  r  r  r   r&   r&   r'   test_maximum_position06  r}  r  c                  C   sh   t g d} tD ](}t g dg dg dg|}t|| ddg}t|d d t|d	 d
 q	d S )N)r   r  r5         @rg  r  ri  r   r  r   rb  r
   )r   rA   )r   r   r   r   r~  r   r   r&   r&   r'   test_maximum_position07  s   
r  c                  C   s   t ddgt} tD ]:}t ddgddgg|}tj|| d}tj|| d}tj|| d}tj|| d}tj	|| d}t
|||||f q
d S )Nr
   r   r   rA   r   r   )r   r   r   r   r   extremar  r   rc  r~  r   r   rx   r   output1output2output3output4output5r&   r&   r'   test_extrema01  s   r  c                  C   s   t ddg} tD ]?}t ddgddgg|}tj|| dd}tj|| dd}tj|| dd}tj|| dd}tj|| dd}t	|||||f q	d S )Nr
   r   rA   r   r   )
r   r   r   r   r  r  r   rc  r~  r   r  r&   r&   r'   test_extrema02  s(   r  c                  C   s   t ddgddgg} tD ]\}t ddgddgg|}tj|| g dd}tj|| g dd}tj|| g dd}tj|| g dd}tj|| g dd}t	|d | t	|d | t	|d | t	|d | qd S )Nr
   r   rA   r   r  r   r   )
r   r   r   r   r  r  r   rc  r~  r   r  r&   r&   r'   test_extrema03  s.   r  c                  C   s   g d} t D ]Z}tg dg dg dg|}t|| ddg}t|| ddg}t|| ddg}t|| ddg}t|| ddg}t	|d | t	|d | t	|d | t	|d | qd S )	Nrt  rg  r  ri  r
   r   r   rA   )
r   r   r   r   r  r  r   rc  r~  r   r  r&   r&   r'   test_extrema04  s,   
r  c                  C   sB   ddg} t D ]}tddgddgg|}t|}t||  qd S )Nr5   r
   r   r   r   r   r   center_of_massr   ry   rx   r   r}   r&   r&   r'   test_center_of_mass01/     
r  c                  C   sB   ddg} t D ]}tddgddgg|}t|}t||  qd S r[   r  r  r&   r&   r'   test_center_of_mass027  r  r  c                  C   sB   ddg} t D ]}tddgddgg|}t|}t||  qd S Nr   r
   r  r  r&   r&   r'   test_center_of_mass03?  r  r  c                  C   sB   ddg} t D ]}tddgddgg|}t|}t||  qd S r[   r  r  r&   r&   r'   test_center_of_mass04G  r  r  c                  C   sB   ddg} t D ]}tddgddgg|}t|}t||  qd S )Nr/   r
   r  r  r&   r&   r'   test_center_of_mass05O  r  r  c                  C   s8   ddg} t ddgddggt}t|}t||  d S )Nr/   r
   r   rA   r   r   r   r   r  r   ry   r   r}   r&   r&   r'   test_center_of_mass06W  s   
r  c                  C   sB   ddg} ddg}t ddgddggt}t|| }t|| d S )Nr
   r   r/   r5   r   rA   r  r   ry   r   r}   r&   r&   r'   test_center_of_mass07^  s
   r  c                  C   sD   ddg} ddg}t ddgddggt}t|| d}t|| d S )Nr
   r   r/   r   r]   rA   r  r  r&   r&   r'   test_center_of_mass08f  s
   r  c                  C   sH   ddg} ddg}t ddgddggt}t|| ddg}t|| d S )Nr
   r   )r/   r5   )r/   r   r  r  r&   r&   r'   test_center_of_mass09n  s
   r  c                  C   s2   t d} t d}t|ddd}t||  d S )Nr   r   )r   rN   aranger   	histogramr   r  r&   r&   r'   test_histogram01v  s   

r  c                  C   s@   g d} g d}t g d}t|ddd| d}t|| d S )N)r
   r
   r
   r
   r   r   r   r   )r   r   r   r
   r
   )r
   r
   rA   r   rA   rA   rA   rA   r   r   r]   r
   r   r   r   r  r   r  r&   r&   r'   test_histogram02}  s
   r  c                  C   sZ   g d} g d}g d}t g d}t|ddd| d}t|d | t|d	 | d S )
N)r
   r   r
   r
   r   r   r   r   )r   r
   r   r
   r
   )r   r   r   rA   r   )r
   r
   rA   r   rA   r]   rA   rA   r   r   r]   rj  r
   r  )r   	expected1	expected2r   r}   r&   r&   r'   test_histogram03  s   r  c                  C   s  t g dg dg dg} t g dg dg dg}tj| |ddgd}t|d	d
g tj| |ddgd}t|ddg tj| |ddgd}t|t ddg tj	| |ddgd}t|d	d
g tj
| |ddgd}t|ddg tj| |ddgd}t|ddg d S )N)r]   r   r   r   r   )r  r*   r   r   r   )r   r   r   rA   r]   )r
   r
   r   r   r   )r   r   r   r   r   r
   r   r   r=   r   r  r   r]   rA   r*   )r   r   r   r	  r   r@  rW  r   r[  r/  r  r   )r   lblr	  varstdmedminmaxr&   r&   r'   test_stat_funcs_2d  s   r  c                   @   sT   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S )TestWatershedIftc                 C   s   t g dg dg dg dg dg dg dg dgt j}t g dg dg dg dg dg dg dg dgt j}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}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
   	structurer   r   r   r   r   r   r   r   r
   r
   r
   r
   r
   r   r   r   uint8r   r   watershed_iftr   r!   rQ   markersrR   ry   r&   r&   r'   test_watershed_ift01  sH   

z%TestWatershedIft.test_watershed_ift01c                 C   s   t g dg dg dg dg dg dg dg dgt j}t g dg dg dg dg dg dg dg dgt j}t||}g dg dg dg dg dg dg dg dg}t|| d S )	Nr  r  r  r  r  r  )r   r   r
   r
   r
   r   r   r  r  r  r&   r&   r'   test_watershed_ift02  sB   

z%TestWatershedIft.test_watershed_ift02c              
   C   s   t g dg dg dg dg dg dg dgt j}t g dg dg dg dg dg dg dgt j}t||}g dg dg dg dg dg dg dg}t|| d S )	Nr  r  r   r
   r   r
   r   r
   r   r   r   r   r   rA   r   r   r   r   r   r   r   r   r   r  )r   r   r   r   rA   r   r   r   r   r   rA   rA   rA   r   r  r  r&   r&   r'   test_watershed_ift03  s<   

z%TestWatershedIft.test_watershed_ift03c              
   C      t g dg dg dg dg dg dg dgt j}t g dg dg dg dg dg dg dgt j}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|| d S )
Nr  r  r  r  r  r  r  r  r  r  r  r&   r&   r'   test_watershed_ift04  F   

z%TestWatershedIft.test_watershed_ift04c              
   C   r  )
Nr  r  r  )r   r   rA   r   r   r   r   r  r  r  r  )r   rA   rA   r   r   r   r   r  r  r&   r&   r'   test_watershed_ift05  r  z%TestWatershedIft.test_watershed_ift05c              	   C   s   t g dg dg dg dg dg dgt j}t g dg dg dg dg dg dgt j}tj||g dg dg dgd}g dg dg dg dg d	g d	g}t|| d S )
Nr  r  r  r  r  r  r  r  r  r  r  r&   r&   r'   test_watershed_ift066  s@   

z%TestWatershedIft.test_watershed_ift06c              	   C   s   d}t j|t jd}| }t g dg dg dg dg dg dgt j|d< t g dg dg dg dg dg dgt j}t j|t jd}| }tj||g d	g d	g d	g|d
 g dg dg dg dg dg dg}t	|| d S )N)r   r   r   r  r  r  .r  r  r  )r  r}   r  r  )
r   rW   r  	transposer   r   int16r   r  r   )r!   r   rQ   r  rR   ry   r&   r&   r'   test_watershed_ift07O  sL   

z%TestWatershedIft.test_watershed_ift07c                 C   s^   t ddgddggt j}t ddgddggt j}t||}ddgddgg}t|| d S )N   r   r
   )r   r   uint16r   r   r  r   r  r&   r&   r'   test_watershed_ift08n  s   

z%TestWatershedIft.test_watershed_ift08c                 C   sh   t t t jjdgddggt j}t ddgddggt j}t||}ddgddgg}t|| d S r  )	r   r   iinfor  r  r   r   r  r   r  r&   r&   r'   test_watershed_ift09y  s   
z%TestWatershedIft.test_watershed_ift09N)r8   r9   r:   r  r  r  r  r  r  r  r  r  r&   r&   r&   r'   r    s    r  dtc                 C   sJ   t jd}d}|jd|ddj| d}t|}t| |ks#J d S )N{   r  r   )r   r   )lowhighr   r   )	r   r   default_rngintegersastyper   r   rE   r   )r  rngmax_valimageval_idxr&   r&   r'   test_gh_19423  s
   
r  )os.pathr   numpyr   numpy.testingr   r   r   r   r   r   r   pytestr	   r   scipy.ndimager    r   r   r<   rT   rX   rY   r\   r^   ra   rc   ro   rt   ru   rz   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   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  r4  r5  r8  r;  rC  rH  rK  rN  rQ  rU  rX  rZ  r\  r]  r^  r`  ra  rd  rl  rp  rr  ru  rz  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  markparametrizeintcuintcr  r&   r&   r&   r'   <module>   s    $	E&								
	
			

		

 _