
    >qj                     d   d dl Zd dlmZmZmZ d dlZd dlmZm	Z	m
Z
 d Zd Zd Zd Zd Zd	 Zd
 Zd Zd Zej(                  j+                  d ej,                  g dg dg dg dg       ej,                  g dg dg dg dg       ej,                  g dg dg dg dg      g      d        Zy)    N)assert_allcloseassert_equalassert_array_almost_equal)	bsr_arraycsgraph	csr_arrayc                      t        j                  g dg dg dg      } t        j                  | d      }|| fD ]7  }t        j                  |dd      \  }}t        |d       t        |g d	       9 y )
Nr      r   r   r   r   r   
null_valueTweakdirected
connection   r   r   r   )nparrayr   csgraph_from_denseconnected_componentsr   r   )XdeXspXn_componentslabelss        s/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/scipy/sparse/csgraph/tests/test_connected_components.pytest_weak_connectionsr      sx    
((I  C 
$
$SQ
7C#X 5((T4:< 	f 	\1%!&)45    c                     t        j                  g dg dg dg      } | | j                  z   }t        j                  | d      }t        j                  |d      }|| fD ]G  }t        j
                  |dd      \  }}t        |d       |j                          t        |g d	       I ||fD ]G  }t        j
                  |dd      \  }}t        |d
       |j                          t        |g d       I y )Nr
   r   r   r   Tstrongr      )r   r   r   r   r   )	r   r   Tr   r   r   r   sortr   )X1deX2deX1spX2spr   r   r   s          r   test_strong_connectionsr*      s    88Y  !D $&&=D%%dq9D%%dq9D4Z 5((T4<> 	f 	\1%!&)45 4Z 5((T4<> 	f 	\1%!&)45r    c            	          t        j                  g dg dg dg dg dg dg      } t        j                  | dd      \  }}t	        |d	       |j                          t        |g d
       y )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   Tr"   r      )r   r   r   r   r#      r   r   r   r   r   r%   r   r   r   r   s      r   test_strong_connections2r4   3   sg    
$$$$$$& 	'A 	$$Q08	: L& q!
KKMf&89r    c            	          t        j                  g dg dg dg dg dg dg      } t        j                  | dd      \  }}t	        |d	       |j                          t        |g d
       y )Nr,   )r   r   r   r   r   r   r-   r.   r/   Tr   r   r   )r   r   r   r   r   r   r2   r3   s      r   test_weak_connections2r6   B   sg    
$$$$$$& 	'A 	$$Q06	8 L& q!
KKMf&89r    c                      t        j                  g dg dg dg dg      } t        j                  | d      \  }}t	        |d       t	        |d   |d	          t	        |d   |d
          y )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   gr   r   s      r   test_ticket1876r<   Q   si     	,  	!A #77hOL&q!F1I&F1I&r    c                  v    t        j                  d      } t        j                  |       \  }}t	        |d       y )N)r1   r1   r   )r   onesr   r   r   r:   s      r   test_fully_connected_graphr?   _   s0     	A"77:L&q!r    c                  "   t        dgt        j                  dgdggt        j                        fd      } | j                  j
                  t        j                  k(  sJ t        j                  | d      \  }}|dk(  sJ t        |ddg       y )Nr   r   dtyper   r   shapeF)r   	r   r   r   int64indicesrB   r   r   r   r;   nr   s      r   test_int64_indices_undirectedrK   g   su    A31#s288<=VLA99??bhh&&&,,Q?IAv6M6fq!f-r    c                  $   t        dgt        j                  dgdggt        j                        fd      } | j                  j
                  t        j                  k(  sJ t        j                  | dd      \  }}|d	k(  sJ t        |ddg       y )
Nr   r   rA   rC   rD   Tr"   r   r   rF   rI   s      r   test_int64_indices_directedrM   p   s{    A31#s288<=VLA99??bhh&&&,,Q8@BIAv6M6fq!f-r    c                  0   g d} g d}t        j                  t        |       t         j                        }t	        || |ffd      }t        j                  |dd      \  }}t        |d	       t        t        t        j                  |            d	       y )
N)r   r   r   r   r#   r#   r1   r0   )r   r   r0   r#   r   r1   r   r   rA   )   rO   rD   Tr"   r   r   )	r   r>   lenint32r   r   r   r   unique)rowscolsdatar;   r   r   s         r   test_single_scc_early_exitrV   z   sw    #D#D773t9BHH-D4$&f5A"77	DX/L&q!RYYv&'+r    graph)r   r   r   r   )r   r   r   r   r9   r8   )r   r   r   r   )r   r   r   r   c                 $   t        | d      j                  t              }t        | d      j                  t              }t        j                  |ddd      \  }}t        j                  |ddd      \  }}t        ||       t        ||       y )N)r   r   )	blocksizerC   FTr   )r   return_labelsr   )r   astypeboolr   r   r   r   )rW   reference_graphsparse_graph
n_expectedlbl_expectedn_actual
lbl_actuals          r   'test_bsr_blocksize_connected_componentsrc      s      8??EOUf5<<TBL&;;%t J #77uDVHj :&J-r    )numpyr   numpy.testingr   r   r   pytestscipy.sparser   r   r   r   r*   r4   r6   r<   r?   rK   rM   rV   markparametrizer   rc    r    r   <module>rk      s     R R  6 65 58::'"..	, BHHl  BHHl  BHHl # ..r    