Ë
    ÏÍ:jf3  ã            
       ó   — 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
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 indexesz!test produces deprecation warning)	Ú	test_expmÚtest_invÚ
test_solveÚtest_scalar_idx_dtypeÚtest_large_dimensions_reshapeÚtest_constructor_smallcolÚtest_constructor_largecolÚtest_sparse_format_conversionsÚ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Úmarkr1   ÚnameÚparam)	Úsp_apiÚTEST_CLASSESÚclsÚmethod_nameÚmethodr4   ÚmsgÚmarkersrL   s	            úr/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/scipy/sparse/tests/test_64bit.pyÚcases_64bitrW   +   sG  è ø€ ð �ÒÜ ¤(¬H´hÄÐI‰Ø	�?Ò	"ô
 !¤(Ð+‰Ø	�:Ò	Ü&¬¼Ü&¬ð8‰à	Ð#Ò	#ä&¬Ð7‰äÐ- f Y¨mÐ<Ó=Ð=àò BˆÜ!¤# c£(Ó+ò 	Bˆ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ñ	BñBù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\   rF   r]   )rQ   rR   Úinstances      rV   Ú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   )ÚselfrQ   rR   Úkwr`   s        rV   Ú_check_resiliencyzRunAll64Bit._check_resiliencyZ   s*   € ô 
!Ñ	& 2Ñ	&ñ	/ó 
'ð	/ñ 	ˆc�;Õó    N)Ú__name__Ú
__module__Ú__qualname__rd   ra   re   rV   rY   rY   X   s   „ ó re   rY   c            	       ó¸  — e Zd Zej                  j                  d e ed«      «      «      d„ «       Zej                  j                  d e ed«      «      «      d„ «       Z	ej                  j                  d e ed«      «      «      d„ «       Z
ej                  j                  d«      ej                  j                  d e ed«      «      «      d„ «       «       Zy)	ÚTest64BitArrayúcls,method_namer'   c                 ó,   — | j                  ||d¬«       y ©Né
   ©Úmaxval_limit©rd   ©rb   rQ   rR   s      rV   Útest_resiliency_limit_10z'Test64BitArray.test_resiliency_limit_10o   ó   € à×Ñ˜s K¸bÐÕAre   c                 óH   — | j                  ||t        j                  ¬«       y ©N©Úfixed_dtype©rd   ÚnpÚint32rr   s      rV   Útest_resiliency_all_32z%Test64BitArray.test_resiliency_all_32s   ó   € à×Ñ˜s K¼R¿X¹XÐÕFre   c                 óH   — | j                  ||t        j                  ¬«       y rv   ©rd   rz   Úint64rr   s      rV   Útest_resiliency_all_64z%Test64BitArray.test_resiliency_all_64w   r}   re   é   c                 ó(   — | j                  ||«       y ©Nrq   rr   s      rV   Útest_resiliency_randomz%Test64BitArray.test_resiliency_random{   s   € ð 	×Ñ˜s KÕ0re   N©rf   rg   rh   rK   rL   ÚparametrizeÚlistrW   rs   r|   r�   Ú	fail_slowr…   ra   re   rV   rj   rj   l   sã   „ ð ‡[�[×ÑÐ.±±[ÀÓ5KÓ0LÓMñBó NðBð ‡[�[×ÑÐ.±±[ÀÓ5KÓ0LÓMñGó NðGð ‡[�[×ÑÐ.±±[ÀÓ5KÓ0LÓMñGó NðGð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±±[ÀÓ5KÓ0LÓMñ1ó Nó ñ1re   rj   c            	       ó¤   — e Zd Zej                  j                  d«      ej                  j                  d e ed«      «      «      d„ «       «       Z	y)ÚTest64BitMatrixé   rk   r)   c                 ó,   — | j                  ||d¬«       y ©NT)Úassert_32bitrq   rr   s      rV   Ú
test_no_64zTest64BitMatrix.test_no_64ƒ   ó   € ð 	×Ñ˜s K¸dÐÕCre   N)
rf   rg   rh   rK   rL   r‰   r‡   rˆ   rW   r�   ra   re   rV   r‹   r‹   �   sJ   „ à‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±±[ÀÓ5LÓ0MÓNñDó Oó ñDre   r‹   c            	       ó¸  — e Zd Zej                  j                  d e ed«      «      «      d„ «       Zej                  j                  d e ed«      «      «      d„ «       Z	ej                  j                  d e ed«      «      «      d„ «       Z
ej                  j                  d«      ej                  j                  d e ed«      «      «      d„ «       «       Zy)	ÚTest64BitMatrixSameAsArrayrk   r)   c                 ó,   — | j                  ||d¬«       y rm   rq   rr   s      rV   rs   z3Test64BitMatrixSameAsArray.test_resiliency_limit_10Œ   rt   re   c                 óH   — | j                  ||t        j                  ¬«       y rv   ry   rr   s      rV   r|   z1Test64BitMatrixSameAsArray.test_resiliency_all_32�   r}   re   c                 óH   — | j                  ||t        j                  ¬«       y rv   r   rr   s      rV   r�   z1Test64BitMatrixSameAsArray.test_resiliency_all_64”   r}   re   r‚   c                 ó(   — | j                  ||«       y r„   rq   rr   s      rV   r…   z1Test64BitMatrixSameAsArray.test_resiliency_random˜   ó   € ð 	×Ñ˜s KÕ0re   Nr†   ra   re   rV   r“   r“   ‰   sã   „ ð ‡[�[×ÑÐ.±±[ÀÓ5LÓ0MÓNñBó OðBð ‡[�[×ÑÐ.±±[ÀÓ5LÓ0MÓNñGó OðGð ‡[�[×ÑÐ.±±[ÀÓ5LÓ0MÓNñGó OðGð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±±[ÀÓ5LÓ0MÓNñ1ó Oó ñ1re   r“   c            	       ó¸  — e Zd Zej                  j                  d e ed«      «      «      d„ «       Zej                  j                  d e ed«      «      «      d„ «       Z	ej                  j                  d e ed«      «      «      d„ «       Z
ej                  j                  d«      ej                  j                  d e ed«      «      «      d„ «       «       Zy)	ÚTest64BitArrayExtrark   r(   c                 ó,   — | j                  ||d¬«       y rm   rq   rr   s      rV   rs   z,Test64BitArrayExtra.test_resiliency_limit_10£   rt   re   c                 óH   — | j                  ||t        j                  ¬«       y rv   ry   rr   s      rV   r|   z*Test64BitArrayExtra.test_resiliency_all_32§   r}   re   c                 óH   — | j                  ||t        j                  ¬«       y rv   r   rr   s      rV   r�   z*Test64BitArrayExtra.test_resiliency_all_64«   r}   re   r‚   c                 ó(   — | j                  ||«       y r„   rq   rr   s      rV   r…   z*Test64BitArrayExtra.test_resiliency_random¯   r˜   re   Nr†   ra   re   rV   rš   rš   Ÿ   sã   „ ð ‡[�[×ÑÐ.±±[ÀÓ5QÓ0RÓSñBó TðBð ‡[�[×ÑÐ.±±[ÀÓ5QÓ0RÓSñGó TðGð ‡[�[×ÑÐ.±±[ÀÓ5QÓ0RÓSñGó TðGð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±±[ÀÓ5QÓ0RÓSñ1ó Tó ñ1re   rš   c            	       óP  — e Zd Zej                  j                  d«      ej                  j                  d e ed«      «      «      d„ «       «       Z	ej                  j                  d e ed«      «      «      d„ «       Z
ej                  j                  d e ed«      «      «      d„ «       Zej                  j                  d e ed«      «      «      d„ «       Zej                  j                  d«      ej                  j                  d e ed«      «      «      d	„ «       «       Zy
)ÚTest64BitMatrixExtrarŒ   rk   r*   c                 ó,   — | j                  ||d¬«       y rŽ   rq   rr   s      rV   r�   zTest64BitMatrixExtra.test_no_64º   r‘   re   c                 ó,   — | j                  ||d¬«       y rm   rq   rr   s      rV   rs   z-Test64BitMatrixExtra.test_resiliency_limit_10Á   rt   re   c                 óH   — | j                  ||t        j                  ¬«       y rv   ry   rr   s      rV   r|   z+Test64BitMatrixExtra.test_resiliency_all_32Å   r}   re   c                 óH   — | j                  ||t        j                  ¬«       y rv   r   rr   s      rV   r�   z+Test64BitMatrixExtra.test_resiliency_all_64É   r}   re   r‚   c                 ó(   — | j                  ||«       y r„   rq   rr   s      rV   r…   z+Test64BitMatrixExtra.test_resiliency_randomÍ   r˜   re   N)rf   rg   rh   rK   rL   r‰   r‡   rˆ   rW   r�   rs   r|   r�   r…   ra   re   rV   r    r    ·   s2  „ ð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±±[ÐAQÓ5RÓ0SÓTñDó Uó ðDð
 ‡[�[×ÑÐ.±±[ÐAQÓ5RÓ0SÓTñBó UðBð ‡[�[×ÑÐ.±±[ÐAQÓ5RÓ0SÓTñGó UðGð ‡[�[×ÑÐ.±±[ÐAQÓ5RÓ0SÓTñGó UðGð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±±[ÐAQÓ5RÓ0SÓTñ1ó Uó ñ1re   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)	rz   ÚdtypeÚformatÚindicesÚindptrÚrowÚcolÚoffsetsrC   )rb   Úmr®   s      rV   Ú_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ÐDre   c                 ó`   ‡ — t        d¬«      ˆ fd„«       }‰ j                  D ]
  } ||«       Œ y )Nrn   ro   c                 ó&  •—  | t         j                  j                  dd«      «      }‰j                  |t         j                  «      sJ ‚ | t         j                  j                  dd«      «      }‰j                  |t         j
                  «      sJ ‚y )Nrn   r   é   )rz   ÚrandomÚrandr¶   r{   r€   )Úmat_clsrµ   rb   s     €rV   r`   z9Test64BitTools.test_decorator_maxval_limit.<locals>.checkê   si   ø€ áœŸ	™	Ÿ™ r¨1Ó-Ó.ˆAØ×,Ñ,¨Q´·±Ô9Ð9Ð9ÙœŸ	™	Ÿ™ r¨1Ó-Ó.ˆAØ×,Ñ,¨Q´·±Ô9Ð9Ñ9re   ©r   ÚMAT_CLASSES©rb   r`   r¼   s   `  rV   Útest_decorator_maxval_limitz*Test64BitTools.test_decorator_maxval_limitç   s:   ø€ ô 
!¨bÔ	1ó	:ó 
2ð	:ð ×'Ñ'ò 	ˆGÙ�'�Nñ	re   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)Úrangerz   rº   r»   r¶   r{   r€   ÚAssertionError)r¼   Úseen_32Úseen_64Úkrµ   rb   s        €rV   r`   z:Test64BitTools.test_decorator_maxval_random.<locals>.check÷   s‡   ø€ àˆGØˆGÜ˜3“Zò L�ÙœBŸI™IŸN™N¨1¨aÓ0Ó1�Ø!ÒK T×%>Ñ%>¸qÄ"Ç(Á(Ó%K�Ø!ÒK T×%>Ñ%>¸qÄ"Ç(Á(Ó%K�ÚšwÙðLô %Ð%JÓKÐKre   r½   r¿   s   `  rV   Útest_decorator_maxval_randomz+Test64BitTools.test_decorator_maxval_randomô   s<   ø€ ô 
!¨Ô	-ó
	Ló 
.ð
	Lð ×'Ñ'ò 	ˆGÙ�'�Nñ	re   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   )rx   Ú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)rK   ÚraisesrÆ   Úcount_nonzeroÚsumÚhas_canonical_formatÚsum_duplicates©Úcsc_containerÚcsr_containerÚcoo_containerÚas       rV   Ú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œ.¨!×*:Ñ*:Õ;re   rw   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       rV   Ú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Ô"Ø×ÑÕre   )	r   rz   r€   r   r   r   r
   r   r	   )rb   rÝ   rß   s      rV   Ú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´
Õ;re   N)rf   rg   rh   r   r	   r
   r   r   r   r   r   r   r   r¾   r¶   rÀ   rÊ   rà   ra   re   rV   r§   r§   Ô   s6   „ ð 	�J 
¨J¸
Ø�9˜i¨°Ið€Kò
	Eòòó&)<re   r§   )9Ú__doc__rK   Únumpyrz   Úscipy.sparser   r   r   r   r   r   r	   r
   r   r   Ú	test_baser   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   rB   r   rH   rW   rL   Úthread_unsaferY   rj   r‹   r“   r3   rš   r    r§   ra   re   rV   ú<module>ræ      s-  ðÙ 8Û Û ÷÷ ÷ ÷÷ ÷ ÷ ñ ð* 9Ø;Ø=Ø=Ø%LØ!>Ø!>Ø&IØ&Cñ
€
ò*BðZ ‡�×ÑÐ"5ÐÓ6÷ ð  ó 7ð ô&1�[ô 1ô*D�kô Dô1 ô 1ð, ‡�×Ñô1˜+ó 1ó ð1ð. ‡�×Ñô1˜;ó 1ó ð1ð8 ‡�×ÑÐ"IÐÓJ÷[<ð [<ó Kñ[<re   