Ë
    çÿæi¯2  ã            	       ó  — d Z ddlZddlZddlmZmZmZmZm	Z	m
Z
mZmZmZmZ ddlmZmZmZmZmZmZmZmZm Z!m"Z#m$Z%m&Z'm(Z)m*Z+m,Z, ddddd	d
dd
dœZ-d„ Z.ej^                  ja                  d¬«       G d„ d«      «       Z1 G d„ de1«      Z2 G d„ de1«      Z3 G d„ de1«      Z4ej^                  jj                   G d„ de1«      «       Z6ej^                  jj                   G d„ de1«      «       Z7ej^                  ja                  d¬«       G d„ d«      «       Z8y)z2 Test functions involving 64bit or 32bit indexing é    N)
Ú	bsr_arrayÚ	coo_arrayÚ	csc_arrayÚ	csr_arrayÚ	dia_arrayÚ
bsr_matrixÚ
coo_matrixÚ
csc_matrixÚ
csr_matrixÚ
dia_matrixé   )ÚTestBSRÚTestCOOÚTestCSCÚTestCSRÚTestDIAÚTestDOKÚTestLILÚTestBSRMatrixÚTestCOOMatrixÚTestCSCMatrixÚTestCSRMatrixÚTestDIAMatrixÚTestDOKMatrixÚTestLILMatrixÚwith_64bit_maxval_limitz%expm for 64-bit indices not availablez)linsolve for 64-bit indices not availableztest implemented in base classz%test actually requires 64-bit to workztest verifies int32 indexesztest verifies int64 indexes)Ú	test_expmÚtest_invÚ
test_solveÚtest_scalar_idx_dtypeÚtest_large_dimensions_reshapeÚtest_constructor_smallcolÚtest_constructor_largecolÚtest_tocoo_tocsr_tocsc_gh19245c              #   óº  K  — | dk(  rt         t        t        t        t        g}nT| dk(  rt
        t        g}nB| dk(  rt        t        t        t        t        g}n!| dk(  rt        t        g}nt        d| ›d�«      ‚|D ]Ý  }t        t!        |«      «      D ]Ä  }t#        ||«      }|j%                  d«      sŒ!t#        |dd	«      rŒ/g }t&        j)                  |«      }|r/|j+                  t,        j.                  j1                  |¬
«      «       t#        |dg «      }|D ]"  }|j2                  dv sŒ|j+                  |«       Œ$ t-        j4                  |||¬«      –— ŒÆ Œß y­w)a„  Yield all tests for all formats

    This is more than testing get_index_dtype. It allows checking whether upcasting
    or downcasting the index dtypes affects test results. The approach used here
    does not try to figure out which tests might fail due to 32/64-bit issues.
    We just run them all.
    So, each test method in that uses cases_64bit reruns most of the test suite!
    Úsparrayúsparray-extraÚspmatrixúspmatrix-extrazparameter sp_api=z is not validÚtest_ÚslowF©ÚreasonÚ
pytestmark)ÚskipifÚskipÚxfailÚxslow)ÚmarksN)Ú_TestBSRÚ_TestCOOÚ_TestCSCÚ_TestCSRÚ_TestDIAÚ_TestDOKÚ_TestLILÚ_TestBSRMatrixÚ_TestCOOMatrixÚ_TestCSCMatrixÚ_TestCSRMatrixÚ_TestDIAMatrixÚ_TestDOKMatrixÚ_TestLILMatrixÚ
ValueErrorÚsortedÚdirÚgetattrÚ
startswithÚ
SKIP_TESTSÚgetÚappendÚpytestÚmarkr0   ÚnameÚparam)	Úsp_apiÚTEST_CLASSESÚclsÚmethod_nameÚmethodr3   ÚmsgÚmarkersrK   s	            úr/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/scipy/sparse/tests/test_64bit.pyÚcases_64bitrV   *   s4  è ø€ ð �ÒÜ ¤(¬H´hÄÐI‰Ø	�?Ò	"ô
 !¤(Ð+‰Ø	�:Ò	Ü&¬¼Ü&¬ð8‰à	Ð#Ò	#ä&¬Ð7‰äÐ- f Y¨mÐ<Ó=Ð=ãˆÜ!¤# c£(Ö+ˆKÜ˜S +Ó.ˆFØ×&Ñ& wÕ/Ü ¨°Õ6Ø�ä —n‘n [Ó1�ÙØ—L‘L¤§¡×!1Ñ!1¸Ð!1Ó!=Ô>ä! &¨,¸Ó;�Û#�DØ—y‘yÐ$HÒHØŸ™ TÕ*ð $ô —l‘l 3¨¸5ÔAÓAñ ,ñ ùs   ‚B/EÂ2EÃ A(EÄ)2Ezfails in parallelr,   c                   ó   — e Zd Zd„ Zy)ÚRunAll64Bitc                 ó8   — t        di |¤Žd„ «       } |||«       y )Nc                 óì   —  | «       }t        |d«      r|j                  «        	  t        ||«      «        t        |d«      r|j                  «        y y # t        |d«      r|j                  «        w w xY w)NÚsetup_methodÚteardown_method)Úhasattrr[   rE   r\   )rP   rQ   Úinstances      rU   Úcheckz,RunAll64Bit._check_resiliency.<locals>.check]   sl   € á“uˆHÜ�x Ô0Ø×%Ñ%Ô'ð/Ø.”˜ +Ó.Ô0ä˜8Ð%6Ô7Ø×,Ñ,Õ.ð 8ø”7˜8Ð%6Ô7Ø×,Ñ,Õ.ð 8ús   ¥A ÁA3© )r   )ÚselfrP   rQ   Úkwr_   s        rU   Ú_check_resiliencyzRunAll64Bit._check_resiliencyY   s*   € ô 
!Ñ	& 2Ñ	&ñ	/ó 
'ð	/ñ 	ˆc�;Õó    N)Ú__name__Ú
__module__Ú__qualname__rc   r`   rd   rU   rX   rX   W   s   „ ó rd   rX   c                   óˆ  — e Zd Zej                  j                  d ed«      «      d„ «       Zej                  j                  d ed«      «      d„ «       Zej                  j                  d ed«      «      d„ «       Z	ej                  j                  d«      ej                  j                  d ed«      «      d„ «       «       Zy)	ÚTest64BitArrayúcls,method_namer&   c                 ó,   — | j                  ||d¬«       y ©Né
   ©Úmaxval_limit©rc   ©ra   rP   rQ   s      rU   Útest_resiliency_limit_10z'Test64BitArray.test_resiliency_limit_10n   ó   € à×Ñ˜s K¸bÐÕArd   c                 óH   — | j                  ||t        j                  ¬«       y ©N©Úfixed_dtype©rc   ÚnpÚint32rq   s      rU   Útest_resiliency_all_32z%Test64BitArray.test_resiliency_all_32r   ó   € à×Ñ˜s K¼R¿X¹XÐÕFrd   c                 óH   — | j                  ||t        j                  ¬«       y ru   ©rc   ry   Úint64rq   s      rU   Útest_resiliency_all_64z%Test64BitArray.test_resiliency_all_64v   r|   rd   é   c                 ó(   — | j                  ||«       y ©Nrp   rq   s      rU   Útest_resiliency_randomz%Test64BitArray.test_resiliency_randomz   s   € ð 	×Ñ˜s KÕ0rd   N©re   rf   rg   rJ   rK   ÚparametrizerV   rr   r{   r€   Ú	fail_slowr„   r`   rd   rU   ri   ri   k   sÏ   „ ð ‡[�[×ÑÐ.±¸IÓ0FÓGñBó HðBð ‡[�[×ÑÐ.±¸IÓ0FÓGñGó HðGð ‡[�[×ÑÐ.±¸IÓ0FÓGñGó HðGð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±¸IÓ0FÓGñ1ó Hó ñ1rd   ri   c                   ó˜   — e Zd Zej                  j                  d«      ej                  j                  d ed«      «      d„ «       «       Zy)ÚTest64BitMatrixé   rj   r(   c                 ó,   — | j                  ||d¬«       y ©NT)Úassert_32bitrp   rq   s      rU   Ú
test_no_64zTest64BitMatrix.test_no_64‚   ó   € ð 	×Ñ˜s K¸dÐÕCrd   N)	re   rf   rg   rJ   rK   r‡   r†   rV   rŽ   r`   rd   rU   r‰   r‰   €   sE   „ à‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±¸JÓ0GÓHñDó Ió ñDrd   r‰   c                   óˆ  — e Zd Zej                  j                  d ed«      «      d„ «       Zej                  j                  d ed«      «      d„ «       Zej                  j                  d ed«      «      d„ «       Z	ej                  j                  d«      ej                  j                  d ed«      «      d„ «       «       Zy)	ÚTest64BitMatrixSameAsArrayrj   r(   c                 ó,   — | j                  ||d¬«       y rl   rp   rq   s      rU   rr   z3Test64BitMatrixSameAsArray.test_resiliency_limit_10‹   rs   rd   c                 óH   — | j                  ||t        j                  ¬«       y ru   rx   rq   s      rU   r{   z1Test64BitMatrixSameAsArray.test_resiliency_all_32�   r|   rd   c                 óH   — | j                  ||t        j                  ¬«       y ru   r~   rq   s      rU   r€   z1Test64BitMatrixSameAsArray.test_resiliency_all_64“   r|   rd   r�   c                 ó(   — | j                  ||«       y rƒ   rp   rq   s      rU   r„   z1Test64BitMatrixSameAsArray.test_resiliency_random—   ó   € ð 	×Ñ˜s KÕ0rd   Nr…   r`   rd   rU   r‘   r‘   ˆ   sÏ   „ ð ‡[�[×ÑÐ.±¸JÓ0GÓHñBó IðBð ‡[�[×ÑÐ.±¸JÓ0GÓHñGó IðGð ‡[�[×ÑÐ.±¸JÓ0GÓHñGó IðGð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±¸JÓ0GÓHñ1ó Ió ñ1rd   r‘   c                   óˆ  — e Zd Zej                  j                  d ed«      «      d„ «       Zej                  j                  d ed«      «      d„ «       Zej                  j                  d ed«      «      d„ «       Z	ej                  j                  d«      ej                  j                  d ed«      «      d„ «       «       Zy)	ÚTest64BitArrayExtrarj   r'   c                 ó,   — | j                  ||d¬«       y rl   rp   rq   s      rU   rr   z,Test64BitArrayExtra.test_resiliency_limit_10¢   rs   rd   c                 óH   — | j                  ||t        j                  ¬«       y ru   rx   rq   s      rU   r{   z*Test64BitArrayExtra.test_resiliency_all_32¦   r|   rd   c                 óH   — | j                  ||t        j                  ¬«       y ru   r~   rq   s      rU   r€   z*Test64BitArrayExtra.test_resiliency_all_64ª   r|   rd   r�   c                 ó(   — | j                  ||«       y rƒ   rp   rq   s      rU   r„   z*Test64BitArrayExtra.test_resiliency_random®   r–   rd   Nr…   r`   rd   rU   r˜   r˜   ž   sÏ   „ ð ‡[�[×ÑÐ.±¸OÓ0LÓMñBó NðBð ‡[�[×ÑÐ.±¸OÓ0LÓMñGó NðGð ‡[�[×ÑÐ.±¸OÓ0LÓMñGó NðGð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±¸OÓ0LÓMñ1ó Nó ñ1rd   r˜   c                   ó  — e Zd Zej                  j                  d«      ej                  j                  d ed«      «      d„ «       «       Zej                  j                  d ed«      «      d„ «       Z	ej                  j                  d ed«      «      d„ «       Z
ej                  j                  d ed«      «      d„ «       Zej                  j                  d«      ej                  j                  d ed«      «      d	„ «       «       Zy
)ÚTest64BitMatrixExtrarŠ   rj   r)   c                 ó,   — | j                  ||d¬«       y rŒ   rp   rq   s      rU   rŽ   zTest64BitMatrixExtra.test_no_64¹   r�   rd   c                 ó,   — | j                  ||d¬«       y rl   rp   rq   s      rU   rr   z-Test64BitMatrixExtra.test_resiliency_limit_10À   rs   rd   c                 óH   — | j                  ||t        j                  ¬«       y ru   rx   rq   s      rU   r{   z+Test64BitMatrixExtra.test_resiliency_all_32Ä   r|   rd   c                 óH   — | j                  ||t        j                  ¬«       y ru   r~   rq   s      rU   r€   z+Test64BitMatrixExtra.test_resiliency_all_64È   r|   rd   r�   c                 ó(   — | j                  ||«       y rƒ   rp   rq   s      rU   r„   z+Test64BitMatrixExtra.test_resiliency_randomÌ   r–   rd   N)re   rf   rg   rJ   rK   r‡   r†   rV   rŽ   rr   r{   r€   r„   r`   rd   rU   rž   rž   ¶   s  „ ð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±Ð<LÓ0MÓNñDó Oó ðDð
 ‡[�[×ÑÐ.±Ð<LÓ0MÓNñBó OðBð ‡[�[×ÑÐ.±Ð<LÓ0MÓNñGó OðGð ‡[�[×ÑÐ.±Ð<LÓ0MÓNñGó OðGð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±Ð<LÓ0MÓNñ1ó Oó ñ1rd   rž   z%Fails in parallel for unknown reasonsc            
       ó<   — e Zd Zeeeeeee	e
eeg
Zd„ Zd„ Zd„ Zd„ Zy)ÚTest64BitToolsc                 ó¤  — t        j                  |«      }|j                  dv r4|j                  j                  |k(  xr |j                  j                  |k(  S |j                  dk(  r4|j
                  j                  |k(  xr |j                  j                  |k(  S |j                  dk(  r|j                  j                  |k(  S t        d|›d�«      ‚)N)ÚcscÚcsrÚbsrÚcooÚdiazmatrix z has no integer indices)	ry   ÚdtypeÚformatÚindicesÚindptrÚrowÚcolÚoffsetsrB   )ra   Úmr¬   s      rU   Ú_compare_index_dtypez#Test64BitTools._compare_index_dtypeÛ   s¦   € Ü—‘˜“ˆØ�8‰8Ð,Ñ,Ø—I‘I—O‘O uÑ,ÒK°1·8±8·>±>ÀUÑ3JÐKØ�X‰X˜ÒØ—E‘E—K‘K 5Ñ(ÒD¨q¯u©u¯{©{¸eÑ/CÐDØ�X‰X˜ÒØ—I‘I—O‘O uÑ,Ð-ä˜w q eÐ+BÐCÓDÐDrd   c                 ó`   ‡ — t        d¬«      ˆ fd„«       }‰ j                  D ]
  } ||«       Œ y )Nrm   rn   c                 ó&  •—  | t         j                  j                  dd«      «      }‰j                  |t         j                  «      sJ ‚ | t         j                  j                  dd«      «      }‰j                  |t         j
                  «      sJ ‚y )Nrm   r   é   )ry   ÚrandomÚrandr´   rz   r   )Úmat_clsr³   ra   s     €rU   r_   z9Test64BitTools.test_decorator_maxval_limit.<locals>.checké   si   ø€ áœŸ	™	Ÿ™ r¨1Ó-Ó.ˆAØ×,Ñ,¨Q´·±Ô9Ð9Ð9ÙœŸ	™	Ÿ™ r¨1Ó-Ó.ˆAØ×,Ñ,¨Q´·±Ô9Ð9Ñ9rd   ©r   ÚMAT_CLASSES©ra   r_   rº   s   `  rU   Útest_decorator_maxval_limitz*Test64BitTools.test_decorator_maxval_limitæ   s5   ø€ ô 
!¨bÔ	1ó	:ó 
2ð	:ð ×'Ô'ˆGÙ�'�Nñ (rd   c                 ó`   ‡ — t        d¬«      ˆ fd„«       }‰ j                  D ]
  } ||«       Œ y )NT)r¸   c                 ó,  •— d}d}t        d«      D ]w  } | t        j                  j                  dd«      «      }|xs  ‰j	                  |t        j
                  «      }|xs  ‰j	                  |t        j                  «      }|sŒt|sŒw y  t        d«      ‚)NFéd   é	   z#both 32 and 64 bit indices not seen)Úrangery   r¸   r¹   r´   rz   r   ÚAssertionError)rº   Úseen_32Úseen_64Úkr³   ra   s        €rU   r_   z:Test64BitTools.test_decorator_maxval_random.<locals>.checkö   s€   ø€ àˆGØˆGÜ˜3–Z�ÙœBŸI™IŸN™N¨1¨aÓ0Ó1�Ø!ÒK T×%>Ñ%>¸qÄ"Ç(Á(Ó%K�Ø!ÒK T×%>Ñ%>¸qÄ"Ç(Á(Ó%K�ÚšwÙð  ô %Ð%JÓKÐKrd   r»   r½   s   `  rU   Útest_decorator_maxval_randomz+Test64BitTools.test_decorator_maxval_randomó   s7   ø€ ô 
!¨Ô	-ó
	Ló 
.ð
	Lð ×'Ô'ˆGÙ�'�Nñ (rd   c                 ó6  — t        t        j                  d¬«      d„ «       }t        t        j                  ¬«      d„ «       } |t        t        t
        «        |t        t        t
        «        |t        t        t        «        |t        t        t        «       y )Nr   )rw   Údowncast_maxvalc                 ó0  —  | ddgddgddgg«      }t        j                  t        |j                  d¬«       t        j                  t        |j                  d¬«        |g d	¢g d
¢g«      }t        j                  t        |j                  d¬«       t        j                  t        |j                  d¬«        |g d	¢g d¢g«      }t        j                  t        |j                  d¬«       d|_        t        j                  t        |j                  «       y ©Nr   r�   é   é   rŠ   é   )Úaxisr   )r   r�   rÍ   )rÍ   rÎ   rÏ   )rÍ   rÎ   rŠ   F)rJ   ÚraisesrÄ   Úcount_nonzeroÚsumÚhas_canonical_formatÚsum_duplicates©Úcsc_containerÚcsr_containerÚcoo_containerÚas       rU   Úcheck_limitedz8Test64BitTools.test_downcast_intp.<locals>.check_limited  s¿   € ñ   1˜v¨¨1 v°°1¨vÐ6Ó7ˆAÜ�M‰Mœ.¨!¯/©/ÀÕBÜ�M‰Mœ.¨!¯%©%°aÕ8ášyª)Ð4Ó5ˆAÜ�M‰Mœ.¨!¯/©/ÀÕBÜ�M‰Mœ.¨!¯%©%°aÕ8ášyª)Ð4Ó5ˆAÜ�M‰Mœ.¨!¯/©/ÀÕBØ%*ˆAÔ"Ü�M‰Mœ.¨!×*:Ñ*:Õ;rd   rv   c                 ó@  —  | ddgddgddgg«      }|j                  d¬«       |j                  d¬«        |g d	¢g d
¢g«      }|j                  d¬«       |j                  d¬«        |g d	¢g d¢g«      }|j                  d¬«       d|_        |j                  «        y rÌ   )rÒ   rÓ   rÔ   rÕ   rÖ   s       rU   Úcheck_unlimitedz:Test64BitTools.test_downcast_intp.<locals>.check_unlimited  s—   € ñ   1˜v¨¨1 v°°1¨vÐ6Ó7ˆAØ�O‰O ˆOÔ#Ø�E‰E�qˆEŒMášyª)Ð4Ó5ˆAØ�O‰O ˆOÔ#Ø�E‰E�qˆEŒMášyª)Ð4Ó5ˆAØ�O‰O ˆOÔ#Ø%*ˆAÔ"Ø×ÑÕrd   )	r   ry   r   r   r   r   r
   r   r	   )ra   rÛ   rÝ   s      rU   Útest_downcast_intpz!Test64BitTools.test_downcast_intp  sq   € ô 
!¬R¯X©XÀqÔ	Iñ	<ó 
Jð	<ô 
!¬R¯X©XÔ	6ñ	ó 
7ð	ñ 	”i¤¬IÔ6Ùœ	¤9¬iÔ8Ù”j¤*¬jÔ9Ùœ
¤J´
Õ;rd   N)re   rf   rg   r   r	   r
   r   r   r   r   r   r   r   r¼   r´   r¾   rÈ   rÞ   r`   rd   rU   r¥   r¥   Ó   s6   „ ð 	�J 
¨J¸
Ø�9˜i¨°Ið€Kò
	Eòòó&)<rd   r¥   )9Ú__doc__rJ   Únumpyry   Úscipy.sparser   r   r   r   r   r   r	   r
   r   r   Ú	test_baser   r4   r   r5   r   r6   r   r7   r   r8   r   r9   r   r:   r   r;   r   r<   r   r=   r   r>   r   r?   r   r@   r   rA   r   rG   rV   rK   Úthread_unsaferX   ri   r‰   r‘   r2   r˜   rž   r¥   r`   rd   rU   Ú<module>rä      s*  ðÙ 8Û Û ÷÷ ÷ ÷÷ ÷ ÷ ñ ð* 9Ø;Ø=Ø=Ø%LØ!>Ø!>Ø&Cñ	€
ò*BðZ ‡�×ÑÐ"5ÐÓ6÷ ð  ó 7ð ô&1�[ô 1ô*D�kô Dô1 ô 1ð, ‡�×Ñô1˜+ó 1ó ð1ð. ‡�×Ñô1˜;ó 1ó ð1ð8 ‡�×ÑÐ"IÐÓJ÷[<ð [<ó Kñ[<rd   