
    1-Ph                        d dl Zd dlZd dlZd dlmZmZ  ej        g dg dg dge	          Z
ej                                                            e
j                  Zd Zd Zej                            d	d
dg          d             Zej                            d	d
dg          d             Zej                            d	d
dg          d             Zej                            d	d
dg          d             ZdS )    N)pixel_graphcentral_pixel)   r   r   )r   r   r   )r   r   r   )dtypec                  `   t          t          d          \  } }| j        dk    sJ t          | j                  dk    sJ t
          j                            t          j        | j                  dt          j	        d          g           t
          j        
                    |g d           d S )N   connectivity)   r      r   r   r         )r   maskshapelendatanptestingassert_allcloseuniquesqrtassert_array_equalgns     d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/graph/tests/test_pixel_graph.pytest_small_graphr      s    t!,,,DAq7fqv;;!Jry001bgajj/BBBJ!!!\\\22222    c                     t          t          d          \  } }t          | t          j        j                  sJ t          t          dd          \  } }t          | t          j        j                  sJ t          t          dd          \  } }t          | t          j        j                  sJ t          j        t          d          5  t          t          dd           d d d            d S # 1 swxY w Y   d S )	Nr   r	   matrixr
   sparse_typearrayz)`sparse_type` must be 'array' or 'matrix')matchunknown)
r   r   
isinstancespsparse
csr_matrix	csr_arraypytestraises
ValueErrorr   s     r   test_pixel_graph_return_typer/      s<   t!,,,DAqa-.....t!BBBDAqa-.....t!AAADAqa,-----	z)T	U	U	U A ADqi@@@@A A A A A A A A A A A A A A A A A As   C11C58C5r#   r!   r$   c                    t          t          d|           \  }}t          ||t          j                  \  }}t          j                            |d           t	          j        d          }t          j                            ||dz  dz   |dz   |dz  dz   |dz  dz   g           t          ||          \  }}|dk    sJ t          |          \  }}|dk    sJ d S )Nr   r"   )r   r   r      r   r   )	r   r   r   r   r   r   r   r   r   )r#   r   r   pxdss2_s          r   test_central_pixelr7   !   s    t!EEEDAq1atz222FBJ!!"f---	BJrBFQJQQ
BFQJ#OPPP !QEB7777 !EB777777r   c                 
   d }t          t          t          d||           \  }}t          j        d          }t          j                            |d         t          j        t          d         t          d         z
            |z              t          j                            |d         t          j        t          d         t          d         z
            dz              t          j                            |g d	           d S )
Nc                 6    t          j        | |z
            |z   S )Nr   abs)
values_src
values_dst	distancess      r   	edge_funcz%test_edge_function.<locals>.edge_func4   s    vj:-..::r   r   )r   r
   edge_functionr#   r   r   r   r   r1   )r   r   r   r   )	r   imager   r   r   r   r   r;   r   )r#   r?   r   r   r5   s        r   test_edge_functionrD   2   s    ; ; ;   DAq 
BJqwuT{U4[/H(I(IB(NOOOJqwuT{U4[/H(I(IA(MNNNJ!!!\\\22222r   c           	         t          t          t          j        ddg          |           \  }}t	          |j                  dz  }|dk    sJ t          j                            |d         dt          j        t          d         t          d         z
            z             t          j        	                    |t          j
        t          j                             d S )Ng(\?)spacingr#   r      rA   rB   )r   rC   r   r$   r   r   r   assert_almost_equalr;   r   arangesize)r#   r   r   	num_edgess       r   test_default_edge_funcrL   D   s    ubhd|&<&<+VVVDAqAFq I????J""1T7D26%+d:S3T3T,TUUUJ!!!RYuz%:%:;;;;;r   c                    t          j        g dg dg dg          }d }t          j        g dg dg dg dg d	g d
g dg dg dg	          dz  }t          |||           \  }}t           j                            |t          j        |j                             t           j                            |                                |           dS )zOEnsure function `pixel_graph` runs when passing `edge_function` but not `mask`.)r   r   r2   )r   r      )r   r   	   c                 6    t          j        | |z
            dz  S )N      ?r:   )xyzs      r   funcz)test_no_mask_with_edge_func.<locals>.funcR   s    va!e}}s""r   )	              ?rV         @rV   rV   rV   rV   rV   )	rW   rV   rW   rV   rX   rV   rV   rV   rV   )	rV   rW   rV   rV   rV   rX   rV   rV   rV   )	rX   rV   rV   rV   rW   rV   rX   rV   rV   )	rV   rX   rV   rW   rV   rW   rV   rX   rV   )	rV   rV   rX   rV   rW   rV   rV   rV   rX   )	rV   rV   rV   rX   rV   rV   rV   rW   rV   )	rV   rV   rV   rV   rX   rV   rW   rV   rW   )	rV   rV   rV   rV   rV   rX   rV   rW   rV   rQ   )r@   r#   N)r   r$   r   r   r   rI   rJ   toarray)r#   rC   rU   
expected_gr   r   s         r   test_no_mask_with_edge_funcr[   M   s    HiiiIII677E# # # 	===========================
	
 	
 	 " uDkJJJDAqJ!!!RYuz%:%:;;;J!!!))++z:::::r   )numpyr   scipyr(   r,   skimage.graph._graphr   r   r$   boolr   randomdefault_rngr   rC   r   r/   markparametrizer7   rD   rL   r[    r   r   <module>re      s            ; ; ; ; ; ; ; ;rxIIIyyy1>>>
	&&tz223 3 3A A A 7(;<<  =<  7(;<<3 3 =<3" 7(;<<< < =<< 7(;<<; ; =<; ; ;r   