
    a6d.                        d dl Zd dlmZmZ d dlmZ d dlmZ d dl	Z	d Z
d Zd Zd Zd	 Zd
 Zd Zd Ze	j                            dej        ej        ej        eej        ej        ej        ej        ej        ej        f
          e	j                            dd          d                         Zd Zd Z e	j                            dd          e	j                            dd          d                         Z!e	j                            dd          e	j                            dd          e	j                            dd          d                                     Z"d Z#d Z$d Z%d Z&dS )    N)join_segmentationsrelabel_sequential)testingassert_array_equalc                     t          j        g dg dg dg          } t          j        g dg dg dg          }t          | |          }t          j        g dg dg dg          }t          ||           t          j        g dg d	g          }t	          j        t                    5  t          | |           d d d            d S # 1 swxY w Y   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	   )nparrayr   r   r   raises
ValueError)s1s2jj_refs3s        Dlib/python3.11/site-packages/skimage/segmentation/tests/test_join.pytest_join_segmentationsr   	   sG   	<<<<<<<! 
" 
"B 
<<<<<<<! 
" 
"B 	2r""AHlll"ll"ll$ % %E q%    
<<<.	/	/B	
	#	# # #2r"""# # # # # # # # # # # # # # # # # #s   +C		CCc                 ^    t          ||          |           t          ||         |            d S Nr   )arar_relabfwinvs       r   _check_mapsr   !   s0    r"vx(((s8}b)))))    c                     t          j        g d          } t          |           \  }}}t          | |||           t          j        g d          }t	          ||           t          j        dt                    }d|d<   d|d<   d|d<   d	|d
<   d|d<   t	          ||           t          j        g d          }t	          ||           d S )Nr	   r	   r   r      c   *   )r	   r	   r
   r
   r   r   r   d   r	   r
   r   r   r#   r   r%   r$   )r   r	   r   r#   r%   r$   r   r   r   r   r   zerosintr   r   r   r   ar_relab_reffw_refinv_refs          r   test_relabel_sequential_offset1r.   &   s    	)))	*	*B*2..Hb#Hb#&&&811122Lx...Xc3FF1IF1IF1IF2JF2Jr6"""h...//GsG$$$$$r    c                     t          j        g d          } t          | d          \  }}}t          | |||           t          j        g d          }t	          ||           t          j        dt                    }d|d<   d|d<   d|d	<   d	|d
<   d|d<   t	          ||           t          j        g d          }t	          ||           d S )Nr"   r   offset)r   r      r2      	   r#   r&   r	   r2   r3   r#   r%   r4   r$   
r   r   r   r   r   r	   r   r#   r%   r$   r'   r*   s          r   test_relabel_sequential_offset5r6   7   s    	)))	*	*B*2a888Hb#Hb#&&&811122Lx...Xc3FF1IF1IF1IF2JF2Jr6"""h999::GsG$$$$$r    c                     t          j        g d          } t          | d          \  }}}t          | |||           t          j        g d          }t	          ||           t          j        dt                    }d|d<   d|d<   d|d	<   d	|d
<   d|d<   t	          ||           t          j        g d          }t	          ||           d S )Nr	   r	   r   r   r#   r$   r%   r   r   r0   r   r   r2   r2   r3   r4   r#   r   r&   r	   r2   r3   r#   r%   r4   r$   r5   r'   r*   s          r   %test_relabel_sequential_offset5_with0r:   H   s    	,,,	-	-B*2a888Hb#Hb#&&&844455Lx...Xc3FF1IF1IF1IF2JF2Jr6"""h999::GsG$$$$$r    c                     t          j        g dt           j                  } t          | d          \  }}}t	          |                     t                    |||           t          j        g d          }t          ||           t          j        dt                    }d|d<   d|d<   d	|d
<   d
|d<   d|d<   t          ||           t          j        g d          }t          ||           d S )Nr8   dtyper   r0   r9   r&   r	   r2   r3   r#   r%   r4   r$   r5   )	r   r   uint8r   r   astyper)   r   r(   r*   s          r   test_relabel_sequential_dtyper@   Y   s    	,,,BH	=	=	=B*2a888Hb#		#"c222844455Lx...Xc3FF1IF1IF1IF2JF2Jr6"""h999::GsG$$$$$r    c                  Z   t          j        t           j                  j        } t          j        g dt           j                  }t          ||           \  }}}t          j        d| | dz   | dz   | dz   gt           j                  }t          ||           |j        |j        k    sJ d S )N)r   r	   r$   r%   r%   r<   r0   r   r
   r	   )	r   iinfoint32maxr   r   uint32r   r=   )imaxlabelsoutputr   r   	references         r   'test_relabel_sequential_signed_overflowrJ   j   s    8BH!DX(((999F(===OFB!T4!8TAXtax@!y* * *Ivy)))<9?******r    c                      t          j        t           j                  j        } t          j        dd| ddgt           j                  }t          ||           \  }}}t          j        |          | dz   k    sJ d S )Nr   r	   r%   r<   r0   r
   )r   rB   int64rD   r   r   )rF   rG   rH   r   r   s        r   test_very_large_labelsrM   t   sr    8BH!DXq!T2r*"(;;;F(===OFB6&>>TAX%%%%%%r    r=   data_already_sequential)FTc                     | rt          j        g d          }nt          j        g d          }t          fdt          |          D                       sJ d S )Nr	   r   r   r
   r   r   r<   r8   c              3   .   K   | ]}|j         k    V  d S r   r<   ).0ar=   s     r   	<genexpr>z>test_relabel_sequential_int_dtype_stability.<locals>.<genexpr>   s*      @@Aqw%@@@@@@r    )r   r   allr   )rN   r=   r   s    ` r   +test_relabel_sequential_int_dtype_stabilityrV   {   s}      ?X(((666X000>>>@@@@);B)?)?@@@@@@@@@@r    c                     t          j        g dt           j                  } d}t          | |          \  }}}t	          | |||           t          d ||fD                       sJ |j        | j        k    sJ t          j        | dk    |                     t                    |z   dz
  d          }t          ||           d S )NrP   r<      r0   c              3   @   K   | ]}|j         t          j        k    V  d S r   )r=   r   uint16)rR   rS   s     r   rT   z=test_relabel_sequential_int_dtype_overflow.<locals>.<genexpr>   s+      <<qw")#<<<<<<r    r   r	   )r   r   r>   r   r   rU   r=   wherer?   r)   r   )r   r1   r   r   r   r+   s         r   *test_relabel_sequential_int_dtype_overflowr\      s    	$$$BH	5	5	5BF*2f===Hb#Hb#&&&<<h^<<<<<<<<9    8BFBIIcNNV$;a$?CCLx.....r    c                      t          j        g d          } t          j        t                    5  t          |            d d d            d S # 1 swxY w Y   d S )N)r	   r	   r   r#   r$   r%   r   r   r   pytestr   r   r   )r   s    r   'test_relabel_sequential_negative_valuesra      s    	---	.	.B	z	"	"  2                 s   AAAr1   )r   c                     | rt          j        g d          }nt          j        g d          }t          j        t                    5  t          ||           d d d            d S # 1 swxY w Y   d S )NrP   r8   r0   r_   )rN   r1   r   s      r   *test_relabel_sequential_nonpositive_offsetrd      s      2X((())X00011	z	"	" . .2f----. . . . . . . . . . . . . . . . . .s   	A((A,/A,)r	   r   with0input_starts_at_offsetc                 N   |rt          j        g d          }nt          j        g d          }|r||dk    xx         | dz
  z  cc<   t          ||           \  }}}t          ||||           |r|}n t          j        |dk    || z   dz
  d          }t          ||           d S )NrP   )r	   r   r
   r   r   r   r	   r0   )r   r   r   r   r[   r   )r1   re   rf   r   r   r   r   r+   s           r   *test_relabel_sequential_already_sequentialrh      s    
  'X((())Xooo&& !
26


fqj 


*2f===Hb#Hb#&&& <xQVa;;x.....r    c                      t          j        g dt                    } t          j        t
                    5  t          |           }d d d            d S # 1 swxY w Y   d S )N)r   r
   r
   r	   r	   r#   r<   )r   r   floatr   r   	TypeErrorr   )rG   _s     r   test_incorrect_input_dtyperm      s    X(((666F			"	" ' 'v&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   AAAc                      t          j        g dt           j                  } t          |           \  }}}t	          j        | ||                      t	          j        |  ||                     d S )Nr8   r<   )r   r   intpr   r   r   r   	relabeledr   r   s       r   test_arraymap_callrr      so    	,,,BG	<	<	<B+B//Ir3y""R&&111r33y>>22222r    c                     t          j        g dt           j                  } t          |           \  }}}t	          |          dk    sJ t	          |          t	          t          j        |                    k    sJ t	          |          dk    sJ t	          |          t	          t          j        |                    k    sJ d S )Nr8   r<   r&   r2   )r   r   ro   r   lenrp   s       r   test_arraymap_lenru      s    	,,,BG	<	<	<B+B//Ir3r77c>>>>r77c"(2,,''''''s88q====s88s28C==))))))))r    c                      t          j        g dt           j                  } t          |           \  }}}d|d<   |d         dk    sJ d S )Nr8   r<   r2   H   )r   r   ro   r   rp   s       r   test_arraymap_setrx      sQ    	,,,BG	<	<	<B+B//Ir3BrFb6Q;;;;;;r    )'numpyr   skimage.segmentationr   r   skimage._sharedr   skimage._shared.testingr   r`   r   r   r.   r6   r:   r@   rJ   rM   markparametrizebyteshortintcr)   longlongubyteushortuintcuint	ulonglongrV   r\   ra   rd   rh   rm   rr   ru   rx    r    r   <module>r      sq       G G G G G G G G # # # # # # 6 6 6 6 6 6 # # #0* * *
% % %"% % %"% % %"% % %"+ + +& & & 27BHbgs#%;")#%8RWbl#D E E 2MBBA A CBE EA/ / /   7++2MBB. . CB ,+. 6**-001=AA/ / BA 10 +*/"' ' '3 3 3* * *    r    