Ë
    ÷Q(h  ã                   ó6  — d dl Zd dlZd dlmZ d dlmZmZ d„ Zej                  j                  dddg«      d„ «       Zd	„ Zej                  j                  dddg«      ej                  j                  d
ej                  ej                  g«      d„ «       «       Zy)é    N)Úmutual_reachability_graph)Ú_convert_containerÚassert_allclosec                  óB  — t         j                  j                  d«      } | j                  dd«      }|j                  |z  }t        j
                  |d«       t        |d«      }d}t        j                  t        |¬«      5  t        |«       ddd«       y# 1 sw Y   yxY w)z=Check that we raise an error if the sparse format is not CSR.r   é
   ç        Ú
sparse_cscz&Only sparse CSR matrices are supported)ÚmatchN)ÚnpÚrandomÚRandomStateÚrandnÚTÚfill_diagonalr   ÚpytestÚraisesÚ
ValueErrorr   )ÚrngÚXÚerr_msgs      ún/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/cluster/_hdbscan/tests/test_reachibility.pyÚ2test_mutual_reachability_graph_error_sparse_formatr      s   € ä
�)‰)×
Ñ
 Ó
"€CØ�	‰	�"�bÓ€AØ	�‰ˆa‰€AÜ×Ñ�Q˜ÔÜ˜1˜lÓ+€Aà6€GÜ	�‰”z¨Ô	1ñ %Ü! !Ô$÷%÷ %ñ %ús   Â BÂBÚ
array_typeÚarrayÚ
sparse_csrc                 ó  — t         j                  j                  d«      }|j                  dd«      }|j                  |z  }t        j
                  |d«       t        || «      }t        |«      }t        |«      t        |«      k(  sJ ‚y)z.Check that the operation is happening inplace.r   r   r   N)	r   r   r   r   r   r   r   r   Úid)r   r   r   Úmr_graphs       r   Ú&test_mutual_reachability_graph_inplacer      sq   € ô �)‰)×
Ñ
 Ó
"€CØ�	‰	�"�bÓ€AØ	�‰ˆa‰€AÜ×Ñ�Q˜ÔÜ˜1˜jÓ)€Aä(¨Ó+€Häˆh‹<œ2˜a›5Ò Ð Ñ ó    c                  ó  — t         j                  j                  d«      } | j                  dd«      }|j                  |z  }t        |d«      }t        |d¬«      }t        |d¬«      }t        ||j                  «       «       y)zGCheck that we get the same results for dense and sparse implementation.r   é   r   é   )Úmin_samplesN)	r   r   r   r   r   r   r   r   Útoarray)r   r   ÚX_denseÚX_sparseÚmr_graph_denseÚmr_graph_sparses         r   Ú7test_mutual_reachability_graph_equivalence_dense_sparser*   &   si   € ä
�)‰)×
Ñ
 Ó
"€CØ�	‰	�!�Q‹€AØ�c‰c�A‰g€GÜ! '¨<Ó8€Hä.¨wÀAÔF€NÜ/°ÀaÔH€Oä�N O×$;Ñ$;Ó$=Õ>r    Údtypec                 ó@  — t         j                  j                  d«      }|j                  dd«      }|j                  |z  j                  |«      }t        j                  |d«       t        || «      }|j                  |k(  sJ ‚t        |«      }|j                  |k(  sJ ‚y)z@Check that the computation preserve dtype thanks to fused types.r   r   r   N)
r   r   r   r   r   Úastyper   r   r+   r   )r   r+   r   r   r   s        r   Ú.test_mutual_reachability_graph_preserves_dtyper.   3   sŠ   € ô �)‰)×
Ñ
 Ó
"€CØ�	‰	�"�bÓ€AØ	
�‰ˆq‰×Ñ˜Ó€AÜ×Ñ�Q˜ÔÜ˜1˜jÓ)€Aà�7‰7�eÒÐÐÜ(¨Ó+€HØ�>‰>˜UÒ"Ð"Ñ"r    )Únumpyr   r   Ú&sklearn.cluster._hdbscan._reachabilityr   Úsklearn.utils._testingr   r   r   ÚmarkÚparametrizer   r*   Úfloat32Úfloat64r.   © r    r   ú<module>r7      s™   ðÛ Û å L÷ò
%ð ‡�×Ñ˜¨°Ð'>Ó?ñ
!ó @ð
!ò
?ð ‡�×Ñ˜¨°Ð'>Ó?Ø‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;ñ
#ó <ó @ñ
#r    