
    1-Ph                     <   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	e	j
                            deej        ej        g          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_equaldtypec                 8   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          ||d
          \  }}}t          ||         |           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   T)return_mapping)r   r   r   r
   )nparrayr   r   r   raises
ValueError)r   s1s2jj_refm1m2s3s           d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/segmentation/tests/test_join.pytest_join_segmentationsr   	   sy   	<<<|||<E	J	J	JB	<<<|||<E	J	J	JB 	2r""AHlllLLL,,,?@@Eq%    #2r$???IAr2r!ub!!!r!ub!!! 
<<<.	/	/B	
	#	# # #2r"""# # # # # # # # # # # # # # # # # #s   1DDD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_offset1r3   &   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      r7      	   r(   r+   r
   r7   r8   r(   r*   r9   r)   
r   r   r   r   r   r
   r   r(   r*   r)   r,   r/   s          r   test_relabel_sequential_offset5r;   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77788G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   r5   r   r   r7   r7   r8   r9   r(   r   r+   r
   r7   r8   r(   r*   r9   r)   r:   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77788G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 )Nr=   r   r   r5   r>   r+   r
   r7   r8   r(   r*   r9   r)   r:   )	r   r   uint8r   r$   astyper.   r   r-   r/   s          r   test_relabel_sequential_dtyperC   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77788G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   r5   r   r   r
   )	r   iinfoint32maxr   r   uint32r   r   )imaxlabelsoutputr"   r#   	references         r   'test_relabel_sequential_signed_overflowrM   j   s    8BH!DX(((999F(===OFB!T4!8TAXtax@	RRRI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   r5   r   )r   rE   int64rG   r   r   )rI   rJ   rK   r"   r#   s        r   test_very_large_labelsrP   s   sr    8BH!DXq!T2r*"(;;;F(===OFB6&>>TAX%%%%%%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   r=   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   )rQ   r   r    s    ` r   +test_relabel_sequential_int_dtype_stabilityrY   z   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 )NrS   r      r5   c              3   @   K   | ]}|j         t          j        k    V  d S r   )r   r   uint16)rU   rV   s     r   rW   z=test_relabel_sequential_int_dtype_overflow.<locals>.<genexpr>   s+      <<qw")#<<<<<<r%   r   r
   )r   r   rA   r   r$   rX   r   whererB   r.   r   )r    r6   r!   r"   r#   r0   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_valuesrd      s    	---	.	.B	z	"	"  2                 s   AAAr6   )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 )NrS   r=   r5   rb   )rQ   r6   r    s      r   *test_relabel_sequential_nonpositive_offsetrg      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 )NrS   )r
   r   r   r   r   r   r
   r5   )r   r   r   r$   r^   r   )r6   rh   ri   r    r!   r"   r#   r0   s           r   *test_relabel_sequential_already_sequentialrk      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   )rJ   _s     r   test_incorrect_input_dtyperp      s    X(((666F			"	" ' 'v&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   AAAc                      t          j        g dt           j                  } t          |           \  }}}t	          j        | ||                      t	          j        |  ||                     d S )Nr=   r   )r   r   intpr   r   r   r    	relabeledr"   r#   s       r   test_arraymap_callru      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 )Nr=   r   r+   r7   )r   r   rr   r   lenrs   s       r   test_arraymap_lenrx      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 )Nr=   r   r7   H   )r   r   rr   r   rs   s       r   test_arraymap_setr{      sQ    	,,,BG	<	<	<B+B//Ir3BrFb6Q;;;;;;r%   )(numpyr   skimage.segmentationr   r   skimage._sharedr   skimage._shared.testingr   rc   markparametrizer.   r]   uintr   r$   r3   r;   r?   rC   rM   rP   byteshortintclonglongubyteushortuintc	ulonglongrY   r_   rd   rg   rk   rp   ru   rx   r{    r%   r   <module>r      s       G G G G G G G G # # # # # # 6 6 6 6 6 6  3	27";<<# # =<#.* * *
% % %"% % %"% % %"% % %"+ + +& & & 





	


  2MBBA A CB  A/ / /   7++2MBB. . CB ,+. 6**-001=AA/ / BA 10 +*/ ' ' '3 3 3* * *    r%   