
    1-PhU              
       j   d dl Z d dlZd dlZd dlmZmZmZ d dlm	Z
 d dlmZ d dlmZ ej                            d            G d d          Zej                            d	gd
  e j         ed           ed                    D                       d             Zd Zd Z G d d          ZdS )    N)assert_array_almost_equalassert_array_equalassert_equal)ndimage)expected_warnings)peak   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestPeakLocalMaxc                     t          j        d          }t          j        |d          }t	          |          t           j        u sJ |j        dk    sJ d S )N)   r      min_distancer   )npzerosr   peak_local_maxtypendarraysize)selftrivialpeak_indicess      _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/feature/tests/test_peak.pytest_trivial_casez"TestPeakLocalMax.test_trivial_case   s[    (8$$*7CCCL!!RZ//// A%%%%%%    c                    g d}dt           j                            dd          z  }|D ]\  }}d|||f<   t          j        |d          }t          |          t          |          k    sJ |D ]}t          |          |v sJ d S )N)   r   )r      )r    r   )r    r    g?   r      r   )r   randomrandr   r   lentuple)r   peak_locationsimagercpeaks_detectedlocs          r   test_noisy_peaksz!TestPeakLocalMax.test_noisy_peaks   s    === binnR,,," 	 	DAqE!Q$KK,UCCC>""c.&9&99999! 	0 	0C:://///	0 	0r   c                     t          j        dt           j                  }d|d<   d|d<   t          j        |dd	          }t          |          dk    sJ t          |dg           d S )
Nr"   r"   dtype
   r   r   r!      r5   r         ?r   threshold_relr   r   uint8r   r   r%   r   r   r(   peakss      r   test_relative_thresholdz(TestPeakLocalMax.test_relative_threshold$   sl    rx000dd#EMMM5zzQ!%&22222r   c                     t          j        dt           j                  }d|d<   d|d<   t          j        |dd          }t          |          dk    sJ t          |dg           d S )	Nr/   r0   r2   r3   r!   r4   r   r   threshold_absr9   r;   s      r   test_absolute_thresholdz(TestPeakLocalMax.test_absolute_threshold,   sl    rx000dd#ELLL5zzQ!%&22222r   c                     t          j        ddt           j                  }t          j        |d          }t          |          dk    sJ d S )N)r!   r!      r0   r   r   r   )r   fullr:   r   r   r%   r;   s      r   test_constant_imagez$TestPeakLocalMax.test_constant_image4   sF    #RX666#E:::5zzQr   c                     t          j        dt           j                  }d|ddddf<   t          j        |d          }t          |          dk    sJ d S )Nr/   r0   r2   r   r5   r      r   r   r:   r   r   r%   r;   s      r   test_flat_peakzTestPeakLocalMax.test_flat_peak9   sY    rx000ac1Q3h#E:::5zzQr   c                 p   t          j        dt           j                  }d|d<   d|d<   t          j        |d          }|                                ddgd	d	ggk    sJ t          j        d
          }d|d<   t          j        |d          }|                                ddgddgdd	gddggk    sJ d S )Nr/   r0   r!   r3   r2   r4   r   r   r5   )r5   r2   )r      r5   rG   )r   )r   r5   r"   r   r   r"   )r   r   r:   r   r   tolistr;   s      r   test_sorted_peaksz"TestPeakLocalMax.test_sorted_peaks?   s    rx000dd#E:::||~~1a&1a&!11111!!!-o#E:::||~~1a&1a&1a&1a&!AAAAAAAr   c                    t          j        dt           j                  }d|d<   d|d<   d|d<   d	|d
<   d|d<   t          t	          j        |dd                    dk    sJ t	          j        |ddd          }t          |          dk    sJ d|v sJ d|v sJ t	          j        |ddd          }t          |          dk    sJ d|v sJ d|v sJ d|v sJ d
|v sJ d S )Nr   r0   r2   r3      r   r5      r   r"      r5   r"   r   r"   r5   r   r   r?   r"   rK   )r   r@   	num_peaksrG   )r   r   r:   r%   r   r   r   r(   peaks_limiteds      r   test_num_peakszTestPeakLocalMax.test_num_peaksK   sS   rx000ddddd4&u1ANNNOOSTTTTT+a
 
 
 =!!Q&&&&&&&&&&&&+a
 
 
 =!!Q&&&&&&&&&&&&&&&&&&&&&&r   c                 t   t          j        dt           j                  }t          j        dt           j                  dz   }d|d<   d|d<   d|d	<   d
|d<   d|d<   t          j        |dd|          }t          |          dk    sJ t          j        |dd|d          }t          |          dk    sJ d S )Nr   r0   r!   r2   r3   rO   rP   rQ   rR   rS   rT   r   rU   r   r   )r   r@   labelsr"   rK   )r   r@   r[   rV   rH   )r   r(   r[   rX   s       r   test_num_peaks_and_labelsz*TestPeakLocalMax.test_num_peaks_and_labelsb   s    rx000&111B6ddddd+6
 
 
 =!!Q&&&&+6Q
 
 
 =!!Q&&&&&&r   c                 "   t           j                            d           t           j                            d          }t           j        ddddf         \  }}d|dk    z   |d	k    d
z  z   }t          j        ||ddt           j        d
          }t          |          dk    sJ t          j        ||ddt           j        d          }t          |          dk    sJ t          j        ||ddd
d
          }t          |          d
k    sJ d S )Nr	   r!      r   r   r!   r_   r   r2      rK   )r[   r   r8   rV   num_peaks_per_labelrS   rG   )	r   r#   seeduniformmgridr   r   infr%   )r   r(   ijr[   results         r   'test_num_peaks_tot_vs_labels_4quadrantsz8TestPeakLocalMax.test_num_peaks_tot_vs_labels_4quadrantss   s4   
	r	!!x!00x"ad
#1a2g!r'Q.$f !
 
 
 6{{a$f !
 
 
 6{{a$ !
 
 
 6{{ar   c                     t          j        d          }t          j        d          |ddd d df<   t          j        |dd          }t          |          dk    sJ d S )N)r2   r2   d   r!   r"   r   rK   )r   rV   )r   r   aranger   r   r%   rW   s      r   test_num_peaks3Dz!TestPeakLocalMax.test_num_peaks3D   sg     ''9R==aCCaCi+EQOOO=!!Q&&&&&&r   c                    t           j                            d          }t           j        ddddf         \  }}d|dk    z   |dk    d	z  z   }d
||dk    <   t           j        ddddf         \  }}||z  ||z  z   dk    }t          j        |j        t                    }dD ]8\  }}dD ]0\  }	}
t          j        ||||	|
f         |          ||||	|
f<   19||k    }t          j
        ||dd|d          }t          j        |t                    }d|t          |j                  <   ||k                                    sJ d S )N(   <   r`   r   rq   rr   r   r!   r_   rK   r"   rG   	   )r   r!   )r!   rq   )r   r_   )r_   rr   	footprintFr[   r   r8   rx   exclude_borderr0   Tr   r#   rd   re   r   shapefloatndimaximum_filterr   r   
zeros_likeboolr&   Tallr   r(   rg   rh   r[   rx   expectediminimaxjminjmaxpeak_idxri   s                r   test_reorder_labelsz$TestPeakLocalMax.test_reorder_labels   s   	!!x!00x"ad
#1a2g!r'Q.v{x1bd
#1EAEMQ&	8EK//- 	 	JD$1  
d141C$t)T$Y./92 2 2dDI-.. u$& 
 
 
 xt444$(uXZ  !("'')))))))r   c                 V   t           j                            d          }t           j        ddddf         \  }}d|dk    z   |dk    d	z  z   }t           j        d
dd
df         \  }}||z  ||z  z   dk    }t          j        |j        t                    }dD ]8\  }}dD ]0\  }	}
t          j        ||||	|
f         |          ||||	|
f<   19t          j	        t          j
        ||k              d          }|t          j        |t          |j                                     d d d                  }t          j        ||dd|d          }|t          j        |t          |j                                     d d d                  }||k                                    sJ d S )Nrp   r`   r   rq   rr   r   r!   r_   rK   rs   rG   rt   ru   rv   rw   axisFry   )r   r#   rd   re   r   r|   r}   r~   r   stacknonzeroargsortr&   r   r   r   r   )r   r(   rg   rh   r[   rx   r   r   r   r   r   ri   s               r   test_indices_with_labelsz)TestPeakLocalMax.test_indices_with_labels   s   	!!x!00x"ad
#1a2g!r'Q.x1bd
#1EAEMQ&	8EK//- 	 	JD$1  
d141C$t)T$Y./92 2 2dDI-.. 8BJx5'899CCCBJuU8:->->'?@@2FG$ 
 
 
 
5vx#9::44R4@A("'')))))))r   c                 F   t          j        d          }d|g dg dg df<   d|d<   d|d<   t          j        g dgt                    }t          j        g dg dg dgt                    }t	          j        |d	d	
          }t          ||           t          t	          j        |d	d	
          t	          j        |d	d
                     t          t	          j        |d	d
          t	          j        |d	d
                     t	          j        |d	d
          }t          ||           t	          j        |d          }t          j        |t                    }d|t          |j
                  <   t          ||                    t                               d S )Nr"   r"   r"   r   )r   r   r   )r   r   r   )r   r   r   )r5   r   r   )rK   rK   rK   r0   rK   r   rz   Tr   Frz   )r   r   arrayintr   r   r   r   r   r&   r   astype)r   nd_imager   expectedNoBorderri   r   s         r   test_ndarray_exclude_borderz,TestPeakLocalMax.test_ndarray_exclude_border   s   8I&&45IIIyyy018YYYKs3338YYY			999$ESQQQ$XAaPPP68,,,qKKKqNNN	
 	
 	
 	qKKKqOOO	
 	
 	
 $XAaPPP6#3444&xFFFxt444$(uXZ  !68??4#8#899999r   c                     t          j        d          }t          j        dt                    }t          j        ||t          j        dt                    ddd          }|j        d|j        fk    sJ d S )Nr2   r!   r4   r   r   Fr[   rx   r   r8   rz   )	r   r   r   r   r   onesr   r|   ndim)r   r(   r[   ri   s       r   
test_emptyzTestPeakLocalMax.test_empty   sx    ""(C(($gfd++ 
 
 
 |5:......r   c                     t          j        d          }t          j        |t          j        dt
                    ddd          }|j        d|j        fk    sJ d S )N)r2   r2   r2   )r5   r5   r5   r   r   F)rx   r   r8   rz   )r   r   r   r   r   r   r|   r   )r   r(   ri   s      r   test_empty_non2d_indicesz)TestPeakLocalMax.test_empty_non2d_indices   sd    &&$gi.. 
 
 
 |5:......r   c                 z   t          j        d          }t          j        dt                    }d|d<   d|d<   t          j        ||t          j        dt                    ddd          }t          j        |t                    }d	|t          |j	                  <   t          j
        ||dk    k              sJ d S )
Nr   r   r/   r4   r   Fr   r0   T)r   r   r   r   r   r   r   r   r&   r   r   )r   r(   r[   r   ri   s        r   test_one_pointzTestPeakLocalMax.test_one_point  s    ""(C((dt&gfd++ 
 
 
 uD111$(uXZ  !vf1-.......r   c                 b   t          j        d          }t          j        dt                    }d|dddf<   d|dddf<   t          j        t          j        |dk              d          }t          j        ||t          j        dt                    ddd	
          }t          ||           d S )Nr   r   r"      r   r   r4   r   Fr   
r   r   r   r   wherer   r   r   r   r   r   r(   r[   r   ri   s        r   test_adjacent_and_samez'TestPeakLocalMax.test_adjacent_and_same  s    ""(C((a1fq!A#v8BHVq[11;;;$gfd++ 
 
 
 	68,,,,,r   c                    t          j        d          }t          j        dt                    }d|d<   d|d<   d|dddf<   t          j        t          j        |dk              d	          }t          j        ||t          j        d
t                    ddd          }t          ||           t          j        ||ddd          }t          ||           d S )Nr   r   r/   r6   r"   r   r"   r   r   r   r4   r   Fr   )r[   r   r8   rz   r   r   s        r   test_adjacent_and_differentz,TestPeakLocalMax.test_adjacent_and_different#  s    ""(C((ddq!A#v8BHUaZ00r:::$gfd++ 
 
 
 	68,,,$&qRW
 
 
 	68,,,,,r   c                 d   t          j        d          }t          j        dt                    }d|d<   d|d<   d||dk    <   t          j        t          j        |dk              d          }t          j        ||t          j        d	t                    ddd
          }t          ||           d S )Nr   r   r/   r6   )r"   rS   r   r   r   r4   Fr   r   r   s        r   test_not_adjacent_and_differentz0TestPeakLocalMax.test_not_adjacent_and_different8  s    ""(C((dduqy8BHVq[11;;;$gfd++ 
 
 
 	68,,,,,r   c                 f   t          j        d          }t          j        dt                    }d|d<   d|d<   d|d<   d|d<   t          j        t          j        |dk              d	          }t          j        ||t          j        d
t                    ddd          }t          ||           d S )Nr   r   r/   r6   )r"   ra   rK   r   r   r   r4   Fr   r   r   s        r   test_two_objectsz!TestPeakLocalMax.test_two_objectsI  s    ""(C((detu8BHVaZ00r:::$gfd++ 
 
 
 	68,,,,,r   c                 f   t          j        d          }t          j        dt                    }d|d<   d|d<   d|d<   d|d<   t          j        t          j        |dk              d	          }t          j        ||t          j        d
t                    ddd          }t          ||           d S )Nr   r   r/   r6   r   rK   r   r   r   r4   Fr   r   r   s        r   test_adjacent_different_objectsz0TestPeakLocalMax.test_adjacent_different_objects[  s    ""(C((ddtt8BHVaZ00r:::$gfd++ 
 
 
 	68,,,,,r   c                    t           j                            d          }t           j        ddddf         \  }}d|dk    z   |dk    d	z  z   }t           j        d
dd
df         \  }}||z  ||z  z   dk    }t          j        |j        t                    }dD ]8\  }}dD ]0\  }	}
t          j        ||||	|
f         |          ||||	|
f<   19||k    }t          j
        |||ddd          }t          j        |t                    }d|t          |j                  <   t          j        ||k              sJ d S )Nr^   r`   r   r!   r_   r   r2   ra   rK   rs   rG   rt   ))r   r2   r   ))r   ra   )ra   r_   rw   Fr   r0   Tr{   r   s                r   test_four_quadrantsz$TestPeakLocalMax.test_four_quadrantsm  s   	!!x!00x"ad
#1a2g!r'Q.x1bd
#1EAEMQ&	8EK//- 	 	JD$1  
d141C$t)T$Y./92 2 2dDI-.. u$& 
 
 
 uD111$(uXZ  !vf()))))))r   c           	      (   t           j                            d          }t          j        dgg          }t	          j        |t          j        dt                    |dddd          }t          j        |t                    }d	|t          |j                  <   t          j        |          sJ t	          j        ||dd
          }t          j        |t                    }d	|t          |j                  <   t          j        |          sJ dS )zzregression test of img-1194, footprint = [1]
        Test peak.peak_local_max when every point is a local maximum
        r   r`   r   r   r   F)r[   rx   r   r8   r@   rz   r0   T)rx   r@   rz   N)r   r#   rd   r   r   r   r   r   r   r   r&   r   r   )r   r(   rx   r   ri   s        r   	test_diskzTestPeakLocalMax.test_disk  s    	!!x!00HqcUOO	&78S)) 
 
 
 uD111$(uXZ  !vf~~&Yb
 
 
 uD111$(uXZ  !vf~~r   c                    t          j        d          }d|d<   d|d<   t          t          j        |dd          g dg           t          t          j        |dd          g dg           t          t          j        |ddd	
                                                    g dg dgk    sJ t          t          j        |dd                                                    g dg dgk    sJ d S )N)r_   r_   r_   r   )ra   ra   ra   r   r2   r   r7   r   Fr   r8   rz   r"   r   r   r   r   r   sortedrL   r   r(   s     r   test_3DzTestPeakLocalMax.test_3D  s>   &&jgBaHHH<<<.	
 	
 	
 	AQGGG,,,	
 	
 	
 Ba  fhh
 
 ii&	' ' ' '
 AQGGGNNPP
 
ii&' ' ' ' ' 'r   c                    t          j        d          }d|d<   d|d<   t          t          j        |dd          g dg           t          t          j        |dd          g dg           t          t          j        |ddd	
                                                    g dg dgk    sJ t          t          j        |dd                                                    g dg dgk    sJ d S )N)r_   r_   r_   r_   r   )ra   ra   ra   ra   )r"   r"   r"   r"   r2   r   r7   r   Fr   r"   r   r   s     r   test_4DzTestPeakLocalMax.test_4D  sN   )** !njBaHHH	
 	
 	
 	AQGGG	
 	
 	
 Ba  fhh
 
 ll,,,-	. . . .
 AQGGGNNPP
 
ll,,,-. . . . . .r   c                    t          j        d          }d|d<   t          t          j        |                    dk    sJ d|d<   t          t          j        |          ddgg           d|d<   t          dg          5  t          t          j        |d                    |j        dz
  k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr/   r   )rK   rK   r   rK   zWhen min_distance < 1r   )r   r   r%   r   r   r   r   r   r   s     r   test_threshold_rel_defaultz+TestPeakLocalMax.test_threshold_rel_default  s,   d4&u--..!3333d4.u55Ax@@@d 7899 	U 	Ut*5qAAABBejSTnTTTTT	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	Us    2C  CCc                    t          j        dd          }d|d<   d|d<   t          j        |d          }|j        dk    sJ t          j        |dd	          }t          |          d
k    sJ d
dg|v sJ ddg|v sJ d S )N)r2   r2   r   )rK   rG   )r5   r   r5   r   r   r   rK   rG   )r   rD   r   r   r   r%   r;   s      r   test_peak_at_borderz$TestPeakLocalMax.test_peak_at_border  s    "%%dd#E:::zQ#E!LLL5zzQ1v1vr   N)__name__
__module____qualname__r   r-   r=   rA   rE   rI   rM   rY   r\   rj   rn   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r      s       & & &0 0 03 3 33 3 3  
  
B 
B 
B' ' '.' ' '"     B' ' '* * *4* * *2: : :6/ / /	/ 	/ 	// / /"- - - - - -*- - -"- - -$- - -$* * *2  2' ' '&. . .*U U U    r   r   indicesc                     g | ]}|gS r   r   ).0r   s     r   
<listcomp>r     s    DDD7gYDDDr   r"   c                 B   t          j        d          }d|| <   t          t          j        |d                    dk    sJ t          t          j        |d                    dk    sJ | d         dv s
| d         dv rd}nd}t          t          j        |dd                    |k    sJ | d         dv rd}nd}t          t          j        |d	                    |k    sJ | d         dv rd}nd}t          t          j        |d
                    |k    sJ d S )Nr/   r   Fr   r   )r   rG   Tr   )r   r   )r   r   )r   r   r%   r   r   )r   r(   expected_peakss      r   test_exclude_borderr     sc   
 HVEE'N t"5???@@AEEEE t"5;;;<<AAAA qzVwqzV33DAdKKKLL	 	 	 	 qzVt"5@@@AA^SSSS qzVt"5@@@AA^SSSSSSr   c                     t          j        d          } t          j        t                    5  t          j        | d          sJ 	 d d d            n# 1 swxY w Y   t          j        t                    5  t          j        | d          sJ 	 d d d            n# 1 swxY w Y   t          j        t                    5  t          j        | d          sJ 	 d d d            n# 1 swxY w Y   t          j        t                    5  t          j        | d          sJ 	 d d d            n# 1 swxY w Y   t          j        t                    5  t          j        | d          sJ 	 d d d            d S # 1 swxY w Y   d S )Nr/   )r   r   g      ?)r   a)r   r   r   )r   r   pytestraises
ValueErrorr   r   	TypeError)r(   s    r   test_exclude_border_errorsr     s   HVE 
z	"	" ? ?"5>>>>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
y	!	! > >"5=======> > > > > > > > > > > > > > >
 
z	"	" C C"5BBBBBBBC C C C C C C C C C C C C C C
 
z	"	" B B"5AAAAAAAB B B B B B B B B B B B B B B 
z	"	" = ="5<<<<<<<= = = = = = = = = = = = = = = = = =sY   AAA8BB"%B"C((C,/C,D22D69D6E==FFc                     t           j                            dd          } t          j        dt                    }d|ddddf<   d|ddddf<   |                                 }t          j        | |	          }t          | |           d S )
NrC   )rC   rC   r   r2   r!   r   rQ      )r[   )	r   r#   r$   r   r   copyr   r   r   )imgr[   
img_before_s       r   test_input_values_with_labelsr   &  s     )..c
"
"CXj#&&FF2b5"R%<F2b5"R%<JC///AsJ'''''r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestProminentPeaksc                 d   t          j        d          }d\  }}}d\  }}}d\  }}	}
||||f<   ||||f<   |
||	|f<   t          j        |          }t	          |d                   dk    sJ t          |d         |d         |d                   D ]!\  }}}||||
fv sJ ||||fv sJ ||||	fv sJ "d S )	Nra   ra   )rQ   rS   r   )rK   rK   r   )r"   r    r   r   r5   r   rK   r   r   r   _prominent_peaksr%   zipr   r(   x0y0i0x1y1i1x2y2i2outrg   xys                  r   test_isolated_peaksz&TestProminentPeaks.test_isolated_peaks7  s   ""
B
B
Bb"fb"fb"f#E**3q6{{a3q63q63q622 	% 	%GAq!R$$$$R$$$$R$$$$$	% 	%r   c                 <   t          j        d          }d\  }}}d\  }}}d\  }}	}
||||f<   ||||f<   |
||	|f<   t          j        |d           }t	          |d                   dk    sJ t          |d         |d         |d	                   D ]\  }}}||||
fv sJ ||||fv sJ t          j        |d
          }t	          |d                   d	k    sJ t          |d         |d         |d	                   D ]\  }}}|||
fv sJ |||fv sJ |||	fv sJ d S )Nr   )rQ   rS   r2   )rK   rK   rS   )r"   r    r2   )	thresholdr   r5   r   rK   rt   r   r   s                  r   test_thresholdz!TestProminentPeaks.test_thresholdF  s   "" 
B
B 
Bb"fb"fb"f#ET:::3q6{{a3q63q63q622 	% 	%GAq!R$$$$R$$$$$#EQ7773q6{{a3q63q63q622 	! 	!GAq!R====R====R=====	! 	!r   c                    t          j        d          }d\  }}}d\  }}}d\  }}	}
||||f<   ||||f<   |
||	|f<   t          j        |dd          }t	          |d         t          j        |f                     t	          |d         t          j        |f                     t	          |d	         t          j        |f                     d S )
Nr   )rS   rS   r   )r   r   r   )r   r   r   r5   )min_xdistancemin_ydistancer   r   rK   )r   r   r   r   r   r   )r   r(   r   r   r   r   r   r   r   r   r   r   s               r   test_peaks_in_contactz(TestProminentPeaks.test_peaks_in_contactZ  s    ""
B
B
Bb"fb"fb"f#
 
 

 	SVRXre__---SVRXre__---SVRXre__-----r   c                 6   t          j        d          }t          j        dt                    }d|d<   d|d<   |                                }t	          j        ||t          j        dt                    ddd           t          j        ||k              sJ d S )	Nr   r   r/   r5   r4   r   Fr   )	r   r   r   r   r   r   r   r   r   )r   r(   r[   labelsins       r   test_input_labels_unmodifiedz/TestProminentPeaks.test_input_labels_unmodifiedk  s    ""(C((dt;;==gfd++ 	
 	
 	
 	
 vf()))))))r   c                 z   t          j        ddgt                    }t          j        d          \  }}|dz  dz  dz   }|dz  dz  dz   }d|||z
  dz  ||z
  dz  z   dk     <   t	          j        |          \  }}t	          j        |          }t          j        |dd	|
          }	t          |	          dk    sJ d S )N  r0   )r  r  r!   r2   TrK   @   F)r   rz   r[   iq  )
r   r   r   r   r~   labeldistance_transform_edtr   r   r%   )
r   maskr   r   x_cy_cr[   num_objsdist	local_maxs
             r   test_many_objectsz$TestProminentPeaks.test_many_objects{  s    xc
$///z*%%12glR2glR7;a#g!^q3w1n,t349T??)$//'r%
 
 
	 9~~$$$$$$r   N)r   r   r   r   r   r   r   r  r   r   r   r   r   6  s_        % % %! ! !(. . ."* * * % % % % %r   r   )	itertoolsnumpyr   r   numpy.testingr   r   r   scipyr   r~   skimage._shared._warningsr   skimage.featurer   r#   rc   r   markparametrizeproductranger   r   r   r   r   r   r   <module>r     s            U U U U U U U U U U             7 7 7 7 7 7             	r   P P P P P P P Pf KDD/i/a%%((CCDDD #T #T	 #TL= = =4( ( ( P% P% P% P% P% P% P% P% P% P%r   