
    9i                        S SK rS SKrS SKrS SKJrJr  \R                  " / SQ/ SQ/ SQ/\	S9r
\R                  R                  5       R                  \
R                  5      rS rS r\R"                  R%                  S	S
S/5      S 5       r\R"                  R%                  S	S
S/5      S 5       r\R"                  R%                  S	S
S/5      S 5       r\R"                  R%                  S	S
S/5      S 5       rg)    N)pixel_graphcentral_pixel)   r   r   )r   r   r   )r   r   r   )dtypec                  j   [        [        SS9u  pU R                  S:X  d   e[        U R                  5      S:X  d   e[
        R                  R                  [
        R                  " U R                  5      S[
        R                  " S5      /5        [
        R                  R                  U/ SQ5        g )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/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/graph/tests/test_pixel_graph.pytest_small_graphr      sy    t!,DA77fqvv;!JJryy01bggaj/BJJ!!!\2    c                     [        [        SS9u  p[        U [        R                  R
                  5      (       d   e[        [        SSS9u  p[        U [        R                  R
                  5      (       d   e[        [        SSS9u  p[        U [        R                  R                  5      (       d   e[        R                  " [        SS9   [        [        SSS9  S S S 5        g ! , (       d  f       g = f)	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!,DAa--....t!BDAa--....t!ADAa,,----	z)T	UDqi@ 
V	U	Us   C&&
C4r#   r!   r$   c                    [        [        SU S9u  p[        X[        R                  S9u  p4[        R
                  R                  US5        [        R                  " S5      n[        R
                  R                  XES-  S-   US-   US-  S-   US-  S-   /5        [        X5      u  p6US:X  d   e[        U5      u  p6US:X  d   eg )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!EDA1tzz2FBJJ!!"f-	BJJrFQJQQ
BFQJ#OP !EB7N7 !EB7N7r   c                    S n[        [        [        SUU S9u  p#[        R                  " S5      n[        R
                  R                  US   [        R                  " [        S   [        S   -
  5      U-   5        [        R
                  R                  US   [        R                  " [        S   [        S   -
  5      S-   5        [        R
                  R                  U/ S	Q5        g )
Nc                 8    [         R                  " X-
  5      U-   $ )Nr   abs)
values_src
values_dst	distancess      r   	edge_func%test_edge_function.<locals>.edge_func4   s    vvj-.::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_functionrE   2   s    ; DA 
BJJqwuT{U4[/H(IB(NOJJqwuT{U4[/H(IA(MNJJ!!!\2r   c           	         [        [        [        R                  " SS/5      U S9u  p[	        UR
                  5      S-  nUS:X  d   e[        R                  R                  US   S[        R                  " [        S   [        S   -
  5      -  5        [        R                  R                  U[        R                  " [        R                  5      5        g )Ng(\?)spacingr#   r      rB   rC   )r   rD   r   r$   r   r   r   assert_almost_equalr;   r   arangesize)r#   r   r   	num_edgess       r   test_default_edge_funcrM   D   s    ubhhd|&<+VDAAFFq I??JJ""1T7D266%+d:S3T,TUJJ!!!RYYuzz%:;r   c                    [         R                  " / SQ/ SQ/ SQ/5      nS n[         R                  " / SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/	5      S-  n[        XU S9u  pE[         R                  R	                  U[         R
                  " UR                  5      5        [         R                  R	                  UR                  5       U5        g)zOEnsure function `pixel_graph` runs when passing `edge_function` but not `mask`.)r   r   r2   )r   r      )r   r   	   c                 8    [         R                  " X-
  5      S-  $ )N      ?r:   )xyzs      r   func)test_no_mask_with_edge_func.<locals>.funcR   s    vvae}s""r   )	              ?rX         @rX   rX   rX   rX   rX   )	rY   rX   rY   rX   rZ   rX   rX   rX   rX   )	rX   rY   rX   rX   rX   rZ   rX   rX   rX   )	rZ   rX   rX   rX   rY   rX   rZ   rX   rX   )	rX   rZ   rX   rY   rX   rY   rX   rZ   rX   )	rX   rX   rZ   rX   rY   rX   rX   rX   rZ   )	rX   rX   rX   rZ   rX   rX   rX   rY   rX   )	rX   rX   rX   rX   rZ   rX   rY   rX   rY   )	rX   rX   rX   rX   rX   rZ   rX   rY   rX   rR   )rA   r#   N)r   r$   r   r   r   rJ   rK   toarray)r#   rD   rV   
expected_gr   r   s         r   test_no_mask_with_edge_funcr]   M   s     HHiI67E# 	=========
	
 	 " ukJDAJJ!!!RYYuzz%:;JJ!!!))+z:r   )numpyr   scipyr(   r,   skimage.graph._graphr   r   r$   boolr   randomdefault_rngr   rD   r   r/   markparametrizer7   rE   rM   r]    r   r   <module>rg      s       ;	xxIy1>
		&&tzz23A 7(;< =  7(;<3 =3" 7(;<< =< 7(;<; =;r   