L iBrddlmZddlZddlZddlZddlZddlZddlZddlm Z m Z m Z ddl m Z mZmZmZddlZddlmZddlZddlZddlmcmZddgZej6j8Zej<dejj>efd d Z Gd d Z!Gdde!Z"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*GddZ+dZ,dZ-dZ.dZ/dZ0dZ1Gd d!Z2d"Z3d#Z4d$Z5d%Z6d&Z7y)')mkdtempN)array transposepi) assert_equalassert_allcloseassert_array_equalassert_array_almost_equal)raises)integerint)unsigned-integeruintmoduleT)scopeparamsautousec|jja|jja|jjayN)parammminfommreadmmwrite)requests ^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/io/tests/test_mmio.pyimplementationsrs1 ]] ! !F ]] ! !Fmm##GceZdZdZdZdZdZejjejjde dZ ejjejjde dZ dZd Zejjde d Zejjde d Zejjde d Zd ZdZdZejjde dZdZdZdZdZdZejj9ddZdZdZy) TestMMIOArrayctttj|_t j j|jd|_yNsuffixz testfile.mtx rstr threading get_native_idtmpdirospathjoinfnselfs r setup_methodzTestMMIOArray.setup_method&6S)@)@)B%CD '',,t{{N;rcBtj|jyrshutilrmtreer(r-s rteardown_methodzTestMMIOArray.teardown_method* dkk"rct|j|tt|j|t |jd}t ||yNFspmatrix)rr,rrrr r.ainfobs rcheckzTestMMIOArray.check-s<VDGG_d+ 477U +!!Q'rct|j|tt|j|t |jd}t||yr8)rr,rrrr;s r check_exactzTestMMIOArray.check_exact3s<VDGG_d+ 477U +Qrtypeval, dtypec V|jtddgddgg|dddd|dfy)NdtypergeneralrArr.typevalrIs rtest_simple_integerz!TestMMIOArray.test_simple_integer9s9 AA/u=Q7GY? Arc Ztddgddgg|}|j|dddd|d fy) NrHrErGrrJ)rrA)r.rMrIr<s rtest_32bit_integerz TestMMIOArray.test_32bit_integer?s< GW%'9:% H Q1gw BCrcFtddgddggtj}tjdjdkrLt t jjj k(r!ttt |j|y|j|dy) NrHrrErErGrr rJ) rnpint64intpitemsizerscipyio_mmio assert_raises OverflowErrorr,rAr.r<s rtest_64bit_integerz TestMMIOArray.test_64bit_integerEsn E5>GW#56bhh G GGAJ  ! #EHHNN4J4J)J -$''1 =   Q H Ircjtddgddggtj}|j|dy)NrVrWrH)rErErGrrrJ)rr\uint64rAres rtest_64bit_unsigned_integerz)TestMMIOArray.test_64bit_unsigned_integerLs1 E5>GW#56bii H MNrc V|jtddgddgg|dddd|dfyNrrDrHrErGrrJrKrLs r"test_simple_upper_triangle_integerz0TestMMIOArray.test_simple_upper_triangle_integerP7 AA/u=Q7GY? Arc V|jtddgddgg|dddd|dfyrmrKrLs r"test_simple_lower_triangle_integerz0TestMMIOArray.test_simple_lower_triangle_integerUrorc V|jtgdgdg|dddd|dfy) NrDrErFrGrHrErFrvrrJrKrLs rtest_simple_rectangular_integerz-TestMMIOArray.test_simple_rectangular_integerZs/  95UCQ7GY? Arc:|jddgddgddggdy)NrDrE @rGrurv)rFrErvrrealrJr?r-s rtest_simple_rectangular_floatz+TestMMIOArray.test_simple_rectangular_float_s& QFS!Hq!f-8 :rc4|jddgddggdy)NrDrErF@rErErGrrzrJr{r-s rtest_simple_floatzTestMMIOArray.test_simple_floatcs  QFQH%8 :rc4|jddgddggdy)NrDrErF@)rErErGrcomplexrJr{r-s rtest_simple_complexz!TestMMIOArray.test_simple_complexgs  QFQG$; =rc V|jtddgddgg|dddd|dfy)NrDrErGrHr symmetricrKrLs rtest_simple_symmetric_integerz+TestMMIOArray.test_simple_symmetric_integerks7 AA/u=Q7G[A Crc4|jddgddggdy)NrrE)rErErGrr skew-symmetric)rAr-s r"test_simple_skew_symmetric_integerz0TestMMIOArray.test_simple_skew_symmetric_integerps# 1a&2q'*H JrcH|jtddgddggddy)NrrEgf)rErErGrrzr)r?rr-s r test_simple_skew_symmetric_floatz.TestMMIOArray.test_simple_skew_symmetric_floatts( 51a&4+.4? Arc4|jddgddggdy)NrD@@@rG)rErErGrr hermitianr{r-s rtest_simple_hermitian_complexz+TestMMIOArray.test_simple_hermitian_complexxs  QIay)= ?rcd}tjj|}|t|z}|j|dy)Nr)rrirrzr)r\randomrr?r.szr<s rtest_random_symmetric_floatz)TestMMIOArray.test_random_symmetric_float|s8  II  R  !  1ABrcjd}tjj|}|j|dy)Nr)rr,rrzrJ)r\rr?rs rtest_random_rectangular_floatz+TestMMIOArray.test_random_rectangular_floats*  II  R  1?@r cd}tj|jd}tjt d5t jjtj|dddy#1swYyxYw)Nz %%MatrixMarket matrix array real general 3 3 999 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 asciiznot of length 2match textwrapdedentencodepytestr ValueErrorr`rarBytesIOr.stexts r&test_bad_number_of_array_header_fieldsz4TestMMIOArray.test_bad_number_of_array_header_fieldssa q!((1 ]]:-> ? . HHOOBJJt, - . . . 3A>>Bcf|jtddgddggtjdy)NrDrErcrHr[)rArr\int32r-s r#test_gh13634_non_skew_symmetric_intz1TestMMIOArray.test_gh13634_non_skew_symmetric_ints. AR1BA Crcf|jtddgddggtjdy)NrDrErX@rHr)r?rr\float32r-s r%test_gh13634_non_skew_symmetric_floatz3TestMMIOArray.test_gh13634_non_skew_symmetric_floats+ 51a&2s),BJJ?8 :rN) __name__ __module__ __qualname__r/r5r?rArmark thread_unsafe parametrizeparametrize_argsrNrTrfrkrnrqrwr|rrrrrrrr fail_slowrrrrrrr%s<#(   [[ [[-/?@AAA [[ [[-/?@DADJO [[-/?@AAA [[-/?@AAA [[-/?@AAA::= [[-/?@CACJA?C A  [[2..$C:rrceZdZdZdZdZdZejjde dZ dZ dZ d Zd Zejjde d Zejjde d Zejjde d ZdZdZdZejjde dZdZdZdZdZdZdZdZdZy)TestMMIOSparseCSRctttj|_t j j|jd|_yr!r$r-s rr/zTestMMIOSparseCSR.setup_methodr0rcBtj|jyrr2r-s rr5z!TestMMIOSparseCSR.teardown_methodr6rct|j|tt|j|t |jd}t |j |j yr8)rr,rrrr toarrayr;s rr?zTestMMIOSparseCSR.checksHVDGG_d+ 477U +!!))+qyy{;rct|j|tt|j|t |jd}t|j |j yr8)rr,rrrrr;s rrAzTestMMIOSparseCSR.check_exactsHVDGG_d+ 477U +QYY[!))+.rrBc ~|jtjjddgddgg|dddd|dfy)NrDrErFrGrH coordinaterJrAr`sparse csr_arrayrLs rrNz%TestMMIOSparseCSR.test_simple_integerD //!Q!Q0@/NQ<)D Frctjjtddgddggtj }|j |dy)NrPirRrSrHrErErGrr rJ)r`rrrr\rrAres rrTz$TestMMIOSparseCSR.test_32bit_integersK LL " "57H*=+2G*<*>/1xx$9 : IJrctjjtddgddggtj }t j djdkrLttjjjk(r!ttt|j|y|j|dy)NrXrHrrZr)r`rrrr\r]r^r_rrarbrcrdr,rAres rrfz$TestMMIOSparseCSR.test_64bit_integers LL " "57G*<+3W*=*?/1xx$9 : GGAJ  ! #EHHNN4J4J)J -$''1 =   Q M Nrctjjtddgddggtj }|j |dy)NrPrQrRrSrHrErErGrrrJ)r`rrrr\uint32rAres rtest_32bit_unsigned_integerz-TestMMIOSparseCSR.test_32bit_unsigned_integerK LL " "57G*<+2G*<*>/1yy$: ; RSrctjjtddgddggtj }|j |dy)NrrhrirHr)r`rrrr\rjrAres rrkz-TestMMIOSparseCSR.test_64bit_unsigned_integerrrc ~|jtjjddgddgg|dddd|dfyNrrDrHrErrJrrLs rrnz4TestMMIOSparseCSR.test_simple_upper_triangle_integerrrc ~|jtjjddgddgg|dddd|dfyrrrLs rrqz4TestMMIOSparseCSR.test_simple_lower_triangle_integerrrc ~|jtjjgdgdg|dddd|dfy) NrsrtrHrErFrvrrJrrLs rrwz1TestMMIOSparseCSR.test_simple_rectangular_integers< //I0Fe/TQ<)D Frct|jtjjddgddgddggdy)NrDrEryrGrurv)rFrErvrrzrJr?r`rrr-s rr|z/TestMMIOSparseCSR.test_simple_rectangular_floats5 5<<))Aq6C8aV*DE= ?rcn|jtjjddgddggdy)NrDrErFr~rErErGrrzrJrr-s rrz#TestMMIOSparseCSR.test_simple_floats/ 5<<))Aq6As8*<== ?rcn|jtjjddgddggdy)NrDrErFr)rErErGrrrJrr-s rrz%TestMMIOSparseCSR.test_simple_complexs0 5<<))Aq6Ar7*;<@ Brc ~|jtjjddgddgg|dddd|dfy)NrDrErGrHrFrrrrLs rrz/TestMMIOSparseCSR.test_simple_symmetric_integersD //!Q!Q0@/NQ<+F Hrcn|jtjjddgddggdy)NrrEr)rErErDrr rrr-s rrz4TestMMIOSparseCSR.test_simple_skew_symmetric_integers2 //!Q"a0ABM Orc |jtjjt ddgddggddy)NrrErr)rErErDrrzr)r?r`rrrr-s rrz2TestMMIOSparseCSR.test_simple_skew_symmetric_floats7 5<<))%!Q$0CS*IJD Frcn|jtjjddgddggdy)NrDrrrG)rErErFrrrrr-s rrz/TestMMIOSparseCSR.test_simple_hermitian_complexs0 5<<))At9tQi*@AB Drcd}tjj|}|t|z}tjj |}|j |dy)Nr)rrrrzr)r\rrr`rrr?rs rrz-TestMMIOSparseCSR.test_random_symmetric_floatsL  II  R  !  LL " "1 % 1FGrcd}tjj|}tjj |}|j |dy)Nr)rrrrrzrJ)r\rr`rrr?rs rrz/TestMMIOSparseCSR.test_random_rectangular_float s>  II  R  LL " "1 % 1DErctjjddgddgg}tj|j }d||j dkD<d}t |j|dtt|j|t|jd }t||j tjj|rJt|jd }tjj|sJt|j}tjj|sJy) Nrg?g@g@rD)rErErFrpatternrJr)fieldFr9T) r`rrr\ zeros_likerrr,rrrr isspmatrix)r.r<pr=r>s rtest_simple_patternz%TestMMIOSparseCSR.test_simple_patterns LL " "QHsCj#9 : MM!))+ &!))+/<),VDGG_d+ 477U +!!QYY[1<<**1--- 477T *||&&q))) 477O||&&q)))rctjjddgddggtj}|j |dy)NrDrErrrHr)r`rrr\rrAres rrz5TestMMIOSparseCSR.test_gh13634_non_skew_symmetric_int s= LL " "QFRH#5RXX " F IJrctjjddgddggtj}|j |dy)NrDrErrrHr)r`rrr\rr?res rrz7TestMMIOSparseCSR.test_gh13634_non_skew_symmetric_float$s; LL " "QFRI#6bjj " I 1@ArN)rrrr/r5r?rArrrrrNrTrfrrkrnrqrwr|rrrrrrrrrrrrrrrrs?<#< /  [[-/?@FAFK OT T  [[-/?@FAF [[-/?@FAF [[-/?@FAF??B [[-/?@HAHOFDHF * KBrrz]%%MatrixMarket matrix array integer general 2 2 2147483647 2147483646 2147483647 2147483646 z]%%MatrixMarket matrix coordinate integer symmetric 2 2 2 1 1 2147483647 2 2 2147483646 z%%MatrixMarket matrix array integer general 2 2 2147483648 -9223372036854775806 -2147483648 9223372036854775807 z%%MatrixMarket matrix coordinate integer general 2 2 3 1 1 2147483648 1 2 9223372036854775807 2 2 9223372036854775807 z%%MatrixMarket matrix coordinate integer symmetric 2 2 3 1 1 2147483648 1 2 -9223372036854775807 2 2 9223372036854775807 z%%MatrixMarket matrix coordinate integer skew-symmetric 2 2 3 1 1 2147483648 1 2 -9223372036854775807 2 2 9223372036854775807 z%%MatrixMarket matrix array integer general 2 2 2147483648 9223372036854775807 2147483648 9223372036854775808 zq%%MatrixMarket matrix coordinate integer symmetric 2 2 2 1 1 2147483648 2 2 19223372036854775808 cNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) TestMMIOReadLargeIntegersctttj|_t j j|jd|_yr!r$r-s rr/z&TestMMIOReadLargeIntegers.setup_methodlr0rcBtj|jyrr2r-s rr5z)TestMMIOReadLargeIntegers.teardown_methodpr6rct|jd5}|j|dddtt |j||rMt j djdkr+ttjjjk(s|r ttt|jyt|jd}|s|j}t||y#1swYxYw)NwrrZFr9)openr,writerrr\r^r_rr`rarbrcrdrr) r.exampler<r=denseover32over64rr>s r check_readz$TestMMIOReadLargeIntegers.check_readss $''3  1 GGG  VDGG_d+ ,,q0gAWAW6W - 9tww/AIIK A   s C77Dc|tddgddggtj}|jt|ddddy)NrPrQrHr[TFrrr)rr\r]r_32bit_integer_dense_exampleres rtest_read_32bit_integer_densez7TestMMIOReadLargeIntegers.test_read_32bit_integer_densesJ GW%W%'.0hh 8 4@"$$  &rc|tddgddggtj}|jt|ddddy)NrPrrQrHrErErErr rFr)rr\r]r_32bit_integer_sparse_exampleres rtest_read_32bit_integer_sparsez8TestMMIOReadLargeIntegers.test_read_32bit_integer_sparsesH GQ<w<!(* 2 5G#$$  &rc|tddgddggtj}|jt|dddd y) NrVirrYrHr[TFr)rr\r]r_64bit_integer_dense_exampleres rtest_read_64bit_integer_densez7TestMMIOReadLargeIntegers.test_read_64bit_integer_densesI E6?g&(/1xx 9 4@"#$  &rc|tddgddggtj}|jt|ddddy) NrVrYrrH)rErErFrr rJFTr)rr\r]r%_64bit_integer_sparse_general_exampleres r&test_read_64bit_integer_sparse_generalz@TestMMIOReadLargeIntegers.test_read_64bit_integer_sparse_generalsI E7#w<!(* 2 =E##$  &rc|tddgddggtj}|jt|ddddy) NrVrYrH)rErErFrr rFTr)rr\r]r'_64bit_integer_sparse_symmetric_exampleres r(test_read_64bit_integer_sparse_symmetriczBTestMMIOReadLargeIntegers.test_read_64bit_integer_sparse_symmetricsJ E8$g&(/1xx 9 ?G##$  &rc|tddgddggtj}|jt|ddddy) NrVrrYrH)rErErFrr rFTr)rr\r]r"_64bit_integer_sparse_skew_exampleres r#test_read_64bit_integer_sparse_skewz=TestMMIOReadLargeIntegers.test_read_64bit_integer_sparse_skewsJ E8$W%'.0hh 8 :L##$  &rc:|jtdddddy)Nr[Tr)r _over64bit_integer_dense_exampler-s r!test_read_over64bit_integer_densez;TestMMIOReadLargeIntegers.test_read_over64bit_integer_denses% 8@"##  %rc:|jtdddddy)NrFTr)r!_over64bit_integer_sparse_exampler-s r"test_read_over64bit_integer_sparsezs rrzTestMMIOCoordinate.check_read:s\ #    VDGG_d+ 477U + 3 3 5!!Q'rcTgdgdgdgdgdg}|jt|dyN)rDrrrvr)r%@rrrrrQ?rr)rPo@r)\@@rrrr rururZrrzrJ)r_general_exampleres rtest_read_generalz$TestMMIOCoordinate.test_read_generalBs/    '    (!B DrcTgdgdgdgdgdg}|jt|dy)NrDrrrr)rr$ryPo@Q86rr%)ryPo@Q86@rr(y)\@)rrry)\@@r+)rururrr)r_hermitian_exampleres rtest_read_hermitianz&TestMMIOCoordinate.test_read_hermitianKs/  ,  2 "  $ *AG IrcTgdgdgdgdgdg}|jt|dy)Nr0)rr$rgPorr%)rr'rr(rr*)rurur1rrzr)r _skew_exampleres rtest_read_skewz!TestMMIOCoordinate.test_read_skewTs.  $  #     qI KrcTgdgdgdgdgdg}|jt|dy)Nr0)rr$rr'rr%)rr'rr(rZ)rrrrZr+)rurur1rrzr)r_symmetric_exampleres rtest_read_symmetricz&TestMMIOCoordinate.test_read_symmetric]s/  #  #    *AD FrcTgdgdgdgdgdg}|jt|dy)Nr0)rrDrrDr)rrrDrr)rrDrrDrD)rrrrDrD)rurur1rrr)r_symmetric_pattern_exampleres rtest_read_symmetric_patternz.TestMMIOCoordinate.test_read_symmetric_patternfs/        2AG IrcTgdgdgdgdgdg}|jt|dyr#)r_empty_lines_exampleres rtest_read_empty_linesz(TestMMIOCoordinate.test_read_empty_linesos/    '    ,aB Drc.tjjd}t|j|t t |jd|j}t|jdj}t||y)N)rr)rrrrrzrFr9) r`r coo_arrayrr,rrrrr )r.r>r<s rtest_empty_write_readz(TestMMIOCoordinate.test_empty_write_readxsj LL " "8 ,VDGG_C E IIK 477U + 3 3 5!!Q'rcP ddl}tgd}tgd}tgd}tjj |||ffd}t |j||jd}t|jd5}|j|d }|j|j|jdddt|d j} t| |jy#t$rYywxYw#1swYNxYw) NrrrrDrErFrFrFrGrrFrDrErDrFrGrGg?g@r$r&r'gqr)g(@rurushapez.bz2rbwbFr9)bz2 ImportErrorrr`rrArr,rBZ2Filerreadr!rrr ) r.rLIJVr>fn_bzip2f_inf_outr<s rtest_bzip2_py3z!TestMMIOCoordinate.test_bzip2_py3s   * + * + E F LL " "A1v;f " =ggYd# $''4  DKK$/E KK $ KKM  8e , 4 4 6!!QYY[1#     D AD DDD%cP ddl}tgd}tgd}tgd}tjj |||ffd}t |j||jd}t|jd5}|j|d }|j|j|jdddt|d j} t| |jy#t$rYywxYw#1swYNxYw) NrrDrErFrGrHz.gzrJrKFr9)gziprMrr`rrArr,rrrOr!rrr ) r.rYrPrQrRr>fn_gziprTrUr<s r test_gzip_py3z TestMMIOCoordinate.test_gzip_py3s   * + * + E F LL " "A1v;f " =WWIS/ $''4  DIIgt,E KK $ KKM  7U + 3 3 5!!QYY[1#     rWctgd}tgd}tgd}tjj|||ffd}t |j |t t|j d|j}t|j dj}t||y) NrDrErFrGrHr,Fr9 rr`rrArr,rrrrr r.rPrQrRr>r<s rtest_real_write_readz'TestMMIOCoordinate.test_real_write_reads * + * + E F LL " "A1v;f " =VDGG_? A IIK 477U + 3 3 5!!Q'rctgd}tgd}tgd}tjj|||ffd}t |j |t t|j d|j}t|j dj}t||y) NrDrEy?@y@@y%@?yQ?yPo@yq@y)\@@@y(@?rGrH)rururZrrrJFr9r]r^s rtest_complex_write_readz*TestMMIOCoordinate.test_complex_write_reads * + * + H I LL " "A1v;f " =VDGG_B D IIK 477U + 3 3 5!!Q'rc:|dz }|jg}tgd}tgd}tgd}|jtjj |||ffdtgd}|jtjj |||ffd|D]c}|j }dD]L} || d zz } t| |j| t| d j } t| |Ney) Nsparse_formatsrDrErFrGrHra)csrcsccooz.mtxFr9) mkdirrappendr`rrArrasformatrr ) r.tmp_pathr(matsrPrQrRmatexpectedfmtfnameresults rtest_sparse_formatsz&TestMMIOCoordinate.test_sparse_formatss,,  * + * + E F ELL**A1v;f*EF H I ELL**A1v;f*EF >@)&(;  < TestMMIOCoordinate.test_bad_number_of_coordinate_header_fieldssa q!((1 ]]:-> ? . HHOOBJJt, - . . .rN)rrrr/r5rr.r3r6r9r<r?rBrVr[r_rbrrrrrrrrr2s^<#(DIKFID (2020 (( <0K".rrcDttjddy)Ng%%MatrixMarket matrix coordinate complex symmetric 1 1 1 1 1 -2.1846000000000e+02 0.0000000000000e+00Fr9)rraStringIOrrr test_gh11389rs! 2;;G Hrcgd}|dz }t|d5}|j|dddt|dy#1swYxYw)N)z/ %%MatrixMarket matrix coordinate real general z5 5 3 z2 3 1.0 z3 4 2.0 z3 5 3.0 ztest.mtxrFr9)r writelinesr)rklines test_filers r test_gh18123rsL E :%I i  U 9u%s >Acttjdd}|dz }|dz }t||t|dy)NrFr9test_mtxz test_mtx.mtx)rrarr)rkr<test_writefile test_readfiles rtest_mtx_appendr sMr{{KL A *N.M NA =5)rc ddl}t|dstjdy |j d5t tjdddd|j dd 5t tjddddy#t$rtjdYywxYw#1swYdxYw#1swYyxYw) Nrregisterzthreadpoolctl too oldzno threadpoolctlrG)limitsrEr`)ruser_api) threadpoolctlhasattrrskiprMthreadpool_limitsrfmm PARALLELISM)rs rtest_threadpoolctlr+s}j1 KK/ 0 2  ( ( ( 2)S__a()  ( (G ( D)S__a())  &'))))s(%BB91CB65B69CCctttj}tj j |d}ttt|y)Nr"znot_exist_test_file.mtx) rr%r&r'r)r*r+rcFileNotFoundErrorr)r(wrong_fns rtest_gh21999_file_not_existr<s< C 7 7 9: ;Fww||F$=>H#VX6r)8tempfilerr)rar3r&rnumpyr\rrr numpy.testingrrr r rr rc scipy.sparser`scipy.io._mmioscipy.io._fast_matrix_market_fast_matrix_marketrrrr pytestmarkfixturerbrrrrrr r rrrrrr-r2r5r8r;r>rrrrrrrrrrsQ &&JJ ***'02[[ & & h'