Ë
    âQ(hÇ  ã                   ó¢  — 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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         úY/var/www/skyplay_api_hub/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ò 0ˆØò 	0ˆBÜ  2 q¨$Õ/ñ	0ñ0r   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   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_int64ro   u   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   Úclsc                 óÄ  — 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   Úcopyr^   Úastyper_   r\   Útestingr   r   )rp   Ú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Ñ×'Ñ'Ó)õ	
ñ
r   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Ð)>Ô	?ñ GÜ’IšyÐ)Ó*×8Ñ8¸vÐ8ÔF÷Gô 
�‰”zÐ)>Ô	?ñ <Ü’I�;Ó×-Ñ-°FÐ-Ô;÷<ô 
�‰”zÐ)>Ô	?ñ 9Ü’)Ó×*Ñ*°Ð*Ô8÷9ð 9÷Gð Gú÷<ð <ú÷9ð 9ú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   ro   r~   r�   © r   r   ú<module>r—      s"  ðÛ ß PÑ Pß MÕ MÝ Û ò+ò0ò"-ò-ð ‡�×ÑÐ=Ù’,ÚÚðó ð ˆðñ ’,ÚÚðó ð ˆðñ ’,ÚÚðó ð ˆfðñ ’/ÚÚð!ó "ð ˆððóñ",ó#ð",ò(/ò&52ðn ‡�×Ñ˜ ¨Y¸
ÀIÐ NÓOñ
ó Pð
ó&9r   