Ë
    çÿæi/   ã                   óf  — d dl Zd dlmZmZmZ d dlmZmZm	Z	m
Z
mZ d dlmZ d dlZd„ Zd„ Zd„ Zd„ Zej&                  j)                  d	 eg d
¢g d¢g d¢g«      d df eg d
¢g d¢g d¢g«      ddf eg d
¢g d¢g d¢g«      ddf eg d¢g d¢g d¢g«      d dfg«      d„ «       Zd„ Zej&                  j/                  d«      ej&                  j1                  d«      ej&                  j)                  dee	ee
g«      d„ «       «       «       Zd„ Zej&                  j)                  dee	ee
g«      d„ «       Zd„ Zy)é    N)Úassert_array_almost_equalÚassert_Úassert_array_equal)Ú
csr_matrixÚ
csc_matrixÚ	csr_arrayÚ	csc_arrayÚhstack)Úsparsec                 óŽ   — || |f   }|| |f   }t        ||j                  «       d   «       t        t        |«      t        u «       y )Nr   )r   Útoarrayr   Útyper   )ÚiÚslÚXÚXcsrÚnp_sliceÚ	csr_slices         úp/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/scipy/sparse/tests/test_csr.pyÚ_check_csr_rowslicer      sE   € Ø��B�‰x€HØ�Q˜�U‘€IÜ˜h¨	×(9Ñ(9Ó(;¸AÑ(>Ô?ÜŒD�‹OœzÐ)Õ*ó    c                  ó\  — d} t         j                  j                  d«       t         j                  j                  | | f«      }d||dkD  <   t        |«      }t	        d d d «      t	        d d d«      t	        ddd«      t	        ddd«      g}t        | «      D ]  }|D ]  }t        ||||«       Œ Œ y )Né
   r   çffffffæ?éÿÿÿÿé   éþÿÿÿé   )ÚnpÚrandomÚseedr   ÚsliceÚranger   )ÚNr   r   Úslicesr   r   s         r   Útest_csr_rowslicer&      s£   € Ø
€AÜ‡I�I‡N�N�1ÔÜ
�	‰	×Ñ˜!˜Q˜Ó €AØ€A€aˆ#�g�JÜ�a‹=€Dä�D˜$ Ó%Ü�D˜$ Ó#Ü�A�r˜1‹oÜ�B˜˜2Óð €Fô
 �1ŽXˆÛˆBÜ  2 q¨$Õ/ñ ñ r   c                  ót  — d} t         j                  j                  d«       t         j                  j                  | | f«      }d||dkD  <   t        |«      }t	        | «      D ]U  }|||dz   …d d …f   }|j                  |«      }t        ||j                  «       «       t        t        |«      t        u «       ŒW y ©Nr   r   r   r   )
r   r    r!   r   r#   Úgetrowr   r   r   r   )r$   r   r   r   Úarr_rowÚcsr_rows         r   Útest_csr_getrowr,       s—   € Ø
€AÜ‡I�I‡N�N�1ÔÜ
�	‰	×Ñ˜!˜Q˜Ó €AØ€A€aˆ#�g�JÜ�a‹=€Dä�1ŽXˆØ�A�a˜!‘e�GšQ�J‘-ˆØ—+‘+˜a“.ˆä! '¨7¯?©?Ó+<Ô=Ü”�W“¤Ð+Õ,ñ r   c                  ót  — d} t         j                  j                  d«       t         j                  j                  | | f«      }d||dkD  <   t        |«      }t	        | «      D ]U  }|d d …||dz   …f   }|j                  |«      }t        ||j                  «       «       t        t        |«      t        u «       ŒW y r(   )
r   r    r!   r   r#   Úgetcolr   r   r   r   )r$   r   r   r   Úarr_colÚcsr_cols         r   Útest_csr_getcolr1   /   s—   € Ø
€AÜ‡I�I‡N�N�1ÔÜ
�	‰	×Ñ˜!˜Q˜Ó €AØ€A€aˆ#�g�JÜ�a‹=€Dä�1ŽXˆØ’A�q˜˜Q™�w�J‘-ˆØ—+‘+˜a“.ˆä! '¨7¯?©?Ó+<Ô=Ü”�W“¤Ð+Õ,ñ r   z"matrix_input, axis, expected_shape)r   r   r   r   )r   r   r   r   )r   r   é   r   )r   é   r   )r2   r   Úboth)r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r2   r   )r   é   c                 ó4  — | j                  «       j                  d   dz
  }|}|dz
  }|dk(  rG| ||…d d …f   j                  «       j                  }| ||…d d …f   j                  «       j                  }n—|dk(  rG| d d …||…f   j                  «       j                  }| d d …||…f   j                  «       j                  }nK|dk(  rF| ||…||…f   j                  «       j                  }| ||…||…f   j                  «       j                  }|k(  sJ ‚|k(  sJ ‚y )Nr   r   r4   )r   Úshape)Úmatrix_inputÚaxisÚexpected_shapeÚslice_1Úslice_2Úslice_3Úactual_shape_1Úactual_shape_2s           r   Útest_csr_empty_slicesr@   =   s5  € ð& ×"Ñ"Ó$×*Ñ*¨1Ñ-°Ñ1€GØ€GØ˜‰k€Gàˆq‚yØ% g¨g o²qÐ&8Ñ9×AÑAÓC×IÑIˆØ% g¨g o²qÐ&8Ñ9×AÑAÓC×IÑI‰Ø	�ŠØ%¢a¨°¨Ð&8Ñ9×AÑAÓC×IÑIˆØ%¢a¨°¨Ð&8Ñ9×AÑAÓC×IÑI‰Ø	�ŠØ% g¨g o°w¸w°Ð&FÑG×OÑOÓQ×WÑWˆØ% g¨g o°w¸w°Ð&FÑG×OÑOÓQ×WÑWˆà˜^Ò+Ð+Ð+Ø˜^Ò+Ð+Ñ+r   c                  ó   — t        g d¢g d¢g d¢g«      } g d¢}t        j                  |«      }g d¢g d¢g d¢g}t        j                  |«      }g d¢g d¢f}t        j                  |d   «      t        j                  |d   «      f}| |   j                  «       }| |   j                  «       }| |   }	| |   }
| |   }| |   }||k(  j	                  «       sJ ‚|	|
k(  j	                  «       sJ ‚||k(  j	                  «       sJ ‚y )N©r   r   r   )r2   r3   r5   )é   é   é   )FTFr   r   )r   r   Úarrayr   Úall)ÚdataÚlist_indices1Úarray_indices1Úlist_indices2Úarray_indices2Úlist_indices3Úarray_indices3Úslice_list1Úslice_array1Úslice_list2Úslice_array2Úslice_list3Úslice_array3s                r   Útest_csr_bool_indexingrU   b   s  € Ü’y¢)ªYÐ7Ó8€DÚ(€MÜ—X‘X˜mÓ,€NÚ)Ò+?ÒAUÐV€MÜ—X‘X˜mÓ,€NÚ)Ò+?Ð@€MÜ—h‘h˜}¨QÑ/Ó0´"·(±(¸=ÈÑ;KÓ2LÐM€NØ�}Ñ%×-Ñ-Ó/€KØ˜Ñ'×/Ñ/Ó1€LØ�}Ñ%€KØ˜Ñ'€LØ�}Ñ%€KØ˜Ñ'€LØ˜<Ñ'×,Ñ,Ô.Ð.Ð.Ø˜<Ñ'×,Ñ,Ô.Ð.Ð.Ø˜<Ñ'×,Ñ,Ô.Ð.Ñ.r   z!Can't create large array for testr   Úclsc                 óØ   — t        j                  d«      }|j                  d«      } | d«      }|||f   j                  dk(  sJ ‚|||j                  dd«      f   j                  dk(  sJ ‚y )Né † )rX   r   )rX   rX   r   r   r   )r   ÚarangeÚreshapeÚnnz)rV   ÚJÚIÚSs       r   Ú6test_fancy_indexing_broadcasts_without_making_dense_2dr_   u   sn   € ô
 	�	‰	�'Ó€AØ	�	‰	�,Ó€AÙÐÓ€AàˆQ�ˆT‰7�;‰;˜!ÒÐÐØˆQ�—	‘	˜!˜RÓ Ð Ñ!×%Ñ%¨Ò*Ð*Ñ*r   c                  óþ  — t        j                  t         j                  «      j                  } dg}dg}| dz
  }d}|dz
  g}|dz
  g}t	        |||ff«      }t	        |||ff«      }t        |dz
  |dz
  «      | k  sJ ‚|j
                  j                  |j                  j                  cxk(  rt         j                  k(  sJ ‚ J ‚|j
                  j                  |j                  j                  cxk(  rt         j                  k(  sJ ‚ J ‚t        ||gd¬«      }	|	j
                  j                  «       ||z   dz
  k(  sJ ‚||z   dz
  | kD  sJ ‚|	j
                  j                  |	j                  j                  cxk(  rt         j                  k(  sJ ‚ J ‚t	        |j                  «      }
t	        |j                  «      }t        |
|gd¬«      }|j                  |	j                  k(  sJ ‚|j
                  j                  t         j                  k(  sJ ‚| |z
  dz
  g}t	        |||ff«      }t        ||gd¬«      }|j
                  j                  t         j                  k(  sJ ‚|j
                  j                  «       | dz
  k(  sJ ‚y)z¯
    Tests if hstack properly promotes to indices and indptr arrays to np.int64
    when using np.int32 during concatenation would result in either array
    overflowing.
    g      ð?r   r   r2   Úcsr)ÚformatN)r   ÚiinfoÚint32Úmaxr   ÚindicesÚdtypeÚindptrr
   Úint64r7   )Ú	max_int32rH   ÚrowÚmax_indices_1Úmax_indices_2Úcol_1Úcol_2ÚX_1ÚX_2ÚX_hsÚ	X_1_emptyÚ	X_2_emptyÚ
X_hs_emptyÚcol_3ÚX_3ÚX_hs_32s                   r   Útest_csr_hstack_int64ry   ‚   sT  € ô —‘œŸ™Ó"×&Ñ&€Ið ˆ5€DØˆ#€Cà ‘M€MØ€Mð ˜QÑÐ€EØ˜QÑÐ€Eä
�d˜S %˜LÐ)Ó
*€CÜ
�d˜S %˜LÐ)Ó
*€Cäˆ}˜qÑ  -°!Ñ"3Ó4°yÒ@Ð@Ð@Ø�;‰;×Ñ §
¡
× 0Ñ 0Ô<´B·H±HÒ<Ð<Ñ<Ð<Ð<Ø�;‰;×Ñ §
¡
× 0Ñ 0Ô<´B·H±HÒ<Ð<Ñ<Ð<Ð<ô �3˜�* UÔ+€Dà�<‰<×ÑÓ °Ñ!>ÀÑ!BÒBÐBÐBØ˜=Ñ(¨1Ñ,¨yÒ8Ð8Ð8Ø�<‰<×Ñ §¡×!2Ñ!2Ô>´b·h±hÒ>Ð>Ñ>Ð>Ð>ô ˜3Ÿ9™9Ó%€IÜ˜3Ÿ9™9Ó%€IÜ˜ IÐ.°uÔ=€Jà×Ñ˜tŸz™zÒ)Ð)Ð)Ø×Ñ×#Ñ#¤r§x¡xÒ/Ð/Ð/ð ˜Ñ&¨Ñ*Ð+€EÜ
�d˜S %˜LÐ)Ó
*€CÜ�c˜3�Z¨Ô.€GØ�?‰?× Ñ ¤B§H¡HÒ,Ð,Ð,Ø�?‰?×ÑÓ  I°¡MÒ1Ð1Ñ1r   c                 óÄ  — t         j                  j                  d«      } | t        j                  dd|d¬«      «      }|j	                  «       }|j	                  «       }|j
                  j                  t         j                  «      |_        |j                  j                  t         j                  «      |_        |||fD ]ž  }t         j                  j                  |ddgd d …f   j                  «       |ddgd d …f   j                  «       «       t         j                  j                  |d d …ddgf   j                  «       |d d …ddgf   j                  «       «       Œ  y )Nr   é2   gš™™™™™¹?)Úrandom_stateÚdensityr   r   )r   r    Údefault_rngr   Úcopyrh   Úastyperi   rf   Útestingr   r   )rV   ÚrngÚbase_mtxÚindptr_64bitÚindices_64bitÚmtxs         r   Ú#test_mixed_index_dtype_int_indexingr‡   ¹   s  € ô �)‰)×
Ñ
 Ó
"€CÙ”6—=‘=  R°cÀ3ÔGÓH€HØ—=‘=“?€LØ—M‘M“O€MØ"Ÿ/™/×0Ñ0´·±Ó:€LÔØ$×,Ñ,×3Ñ3´B·H±HÓ=€MÔà˜,¨Ó6ˆÜ
�
‰
×%Ñ%Ø��1�’q�‰M×!Ñ!Ó#Ø�a˜�VšQ�YÑ×'Ñ'Ó)ô	
ô 	�
‰
×%Ñ%Ø’�A�q�6�	‰N×"Ñ"Ó$Ø’Q˜˜A˜�YÑ×'Ñ'Ó)õ	
ñ 7r   c                  ó0  — t        j                  g d¢«      } t        j                  dg«      }t        j                  d«      }t        | «      j	                  d«      }t        |«      j	                  d«      }t        |«      j	                  d«      }t        |«      j	                  d«      }t        |«      j	                  d«      }t        |j                  «       t        j                  | d«      «       t        |j                  «       t        j                  |d«      «       t        |j                  «       t        j                  |d«      «       t        |j                  «       t        j                  |d«      «       t        |j                  «       t        j                  |d«      «       t        j                  t        d	¬
«      5  t        g d¢g d¢g«      j	                  d¬«       d d d «       t        j                  t        d	¬
«      5  t        g d¢g«      j	                  d¬«       d d d «       t        j                  t        d	¬
«      5  t        g d¢«      j	                  d¬«       d d d «       y # 1 sw Y   Œ�xY w# 1 sw Y   ŒWxY w# 1 sw Y   y xY w)N)r   r   r   r2   )r   )r   r2   )r3   )r   r3   )r   )r3   r   zcannot be broadcast)Úmatch)r   r   r   )r2   r   r   )r   r   )r7   rB   )r2   r   )r   rF   Úzerosr   Ú_broadcast_tor   r   Úbroadcast_toÚpytestÚraisesÚ
ValueErrorr   )ÚaÚbÚeÚres_aÚres_bÚres_cÚres_dÚres_es           r   Útest_broadcast_tor˜   Í   sÄ  € Ü
�‰’Ó€AÜ
�‰�!�‹€AÜ
�‰�‹€AÜ�a‹L×&Ñ& uÓ-€EÜ�a‹L×&Ñ& tÓ,€EÜ�a‹L×&Ñ& uÓ-€EÜ�a‹L×&Ñ& tÓ,€EÜ�a‹L×&Ñ& uÓ-€EÜ�u—}‘}“¬¯©¸¸5Ó(AÔBÜ�u—}‘}“¬¯©¸¸4Ó(@ÔAÜ�u—}‘}“¬¯©¸¸5Ó(AÔBÜ�u—}‘}“¬¯©¸¸4Ó(@ÔAÜ�u—}‘}“¬¯©¸¸5Ó(AÔBä	�‰”zÐ)>Ö	?Ü’IšyÐ)Ó*×8Ñ8¸vÐ8ÔF÷ 
@ô 
�‰”zÐ)>Ö	?Ü’I�;Ó×-Ñ-°FÐ-Ô;÷ 
@ô 
�‰”zÐ)>Ö	?Ü’)Ó×*Ñ*°Ð*Ô8÷ 
@Ð	?÷ 
@Ð	?ú÷ 
@Ð	?ú÷ 
@Ð	?ús$   Ç"I4ÈJ ÉJÉ4I=Ê J	ÊJ)Únumpyr   Únumpy.testingr   r   r   Úscipy.sparser   r   r   r	   r
   Úscipyr   r�   r   r&   r,   r1   ÚmarkÚparametrizer@   rU   Úxfail_on_32bitÚtimeoutr_   ry   r‡   r˜   © r   r   Ú<module>r¢      s�  ðÛ ß PÑ Pß MÕ MÝ Û ò+ò0ò"-ò-ð ‡�×ÑÐ=Ù’,ÚÚðó ð ˆðñ ’,ÚÚðó ð ˆðñ ’,ÚÚðó ð ˆfðñ ’/ÚÚð!ó "ð ˆððóñ",ó#ð",ò(/ð& ‡�×ÑÐ?Ó@Ø‡�×Ñ�QÓØ‡�×Ñ˜ ¨Y¸
ÀIÐ NÓOñ+ó Pó ó Að+ò52ðn ‡�×Ñ˜ ¨Y¸
ÀIÐ NÓOñ
ó Pð
ó&9r   