Ë
    0Ò^j  ã                   ó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        ú/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/scipy/sparse/csgraph/tests/test_connected_components.pyÚtest_weak_connectionsr      sx   € Ü
�(‰(’IÚÚðó  €Cô ×
$Ñ
$ S°QÔ
7€Cà�#ˆXò 5ˆä×(Ñ(¨°TØ4:ô<ñ 	ˆ�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ò   € Ü�8‰8’YÚÚð ó !€Dð �$—&‘&‰=€Dä×%Ñ% d°qÔ9€DÜ×%Ñ% d°qÔ9€Dà�4ˆZò 5ˆä×(Ñ(¨°TØ4<ô>ñ 	ˆ�fô 	�\ 1Ô%Ø�‰ŒÜ! &ª)Õ4ð5ð �4ˆZò 5ˆä×(Ñ(¨°TØ4<ô>ñ 	ˆ�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Ô!Ø
‡K�K„MÜ˜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Ô!Ø
‡K�K„MÜ˜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Ô!Ü�˜‘˜F 1™IÔ&Ü�˜‘˜F 1™IÕ&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   € ä�A�3œŸ™ 1 #¨ s ´2·8±8Ô<Ð=ÀVÔL€AØ�9‰9�?‰?œbŸh™hÒ&Ð&Ð&Ü×,Ñ,¨Q¸Ô?�I€A€vØ�Š6€Mˆ6Ü˜f q¨! 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{   € ä�A�3œŸ™ 1 #¨ s ´2·8±8Ô<Ð=ÀVÔL€AØ�9‰9�?‰?œbŸh™hÒ&Ð&Ð&Ü×,Ñ,¨Q¸Ø8@ôB�I€A€và�Š6€Mˆ6Ü˜f q¨! 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Ü�7‰7”3�t“9¤B§H¡HÔ-€DÜ�4˜$ ˜Ð&¨fÔ5€AÜ"×7Ñ7Ø	�D Xô/Ñ€L�&ä�˜qÔ!Ü””R—Y‘Y˜vÓ&Ó'¨Õ+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×?Ñ?ÄÓE€OÜ˜U¨fÔ5×<Ñ<¼TÓB€Lä&×;Ñ;Ø %°tÈô Ñ€J�ô #×7Ñ7Ø˜u°DÀVôÑ€Hˆjô �˜:Ô&Ü�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ò 5ò8:ò:ò'ò"ò.ò.ò	,ð ‡�×Ñ˜Ø€B‡H�HŠlÚÚÚðó ð €B‡H�HŠlÚÚÚðó ð €B‡H�HŠlÚÚÚðó ð#ó ñ.óñ.r    