L iК ddlZddlZddlmZmZmZddlZddlm Z ddl m Z m Z m Z ddlmZmZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZej@jCdgdde"fdZ#ej@jCde$gdgdde%e"e"ffdZ&ej@jCdgdde"fdZ'dZ(dZ)dZ*d Z+d!Z,d"Z-d#Z.d$Z/ej@jCd%gd&d'Z0ej@jCd%gd&d(Z1ej@jCd%gd&d)Z2ej@jCd%gd&d*Z3d+Z4ej@jCd,gd-d.Z5ej@jCd%gd&d/Z6ej@jCd%gd&d0Z7ej@jCd1gd2d3Z8d4Z9d5Z:ej@jCd%gd&d6Z;ej@jCd%gd&d7Zej@jCd%gd&d<Z?ej@jCd%gd&d=Z@d>ZAej@jCd9gd:d?ZBgd@ZCej@jCdAeCdBZDgdCZEej@jCdDeEdEZFdFZGdGZHdHZIdIZJdJZKgdKZLej@jCd9eLdLZMdMdNdOgdgffdPdQdRgdgffdSdTdgdgffdUdVddRgdRdgffdWdXgdYgdZffd[d\d]d]gdYgdYffgZNej@jCd^eNd_ZOd`ZPej@jCdagdbdcZQej@jCd%gdddeZRej@jCd%gdddfZSgdgZTej@jCd9eTdhZUej@jCd9eTdiZVgdjZWej@jCdkeWdlZXgdmZYej@jCdkeYdnZZdoZ[dpdqdrdsdtdudWdejdvfdwdPdOejdxfdydzd{d|d}d~ddddejdfddddejdfdddYejdSfdgZ]ej@jCde]dZ^ej@jCde]dZ_dZ`gdgZaej@jCd9eadZbdZcej@jCd9eadZddZeej@jCd9eadZfdZgej@jCd9eadZhej@jCd9eadZidZjdZky)N) assert_equalassert_allclosesuppress_warnings) block_diag) coo_array random_arraySparseEfficiencyWarning) _block_diag_extract_block_diagctd}|jdk(sJt|jt j dtd}|jdk(sJt|jt j dtd}|jdk(sJt|jt j dy)Nrr )r rrshapertoarraynpzeros)empty1dempty2dempty_nds a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/sparse/tests/test_coo.pytest_shape_constructorr soG ==D  "BHHTN3G ==F "" ""BHHV$45%H >>[ (( (!!#RXXk%:;c *tgd}|jdk(sJt|jt j gdtgdgdg}|jdk(sJt|jt j gdgdgt j ddgddggd d gd d gggd dgd dggdd gdd gggdd gd dggd dgddgggg}t|}|jdk(sJt|j|tj jdtj jd dd dd d dd d }t|}|jdk(sJt|j|tdtjggdd ggd d ggg}|jdk(sJt|jt j dtjggdd ggd d gggy)Nr rrrrr rrrr!rrr# r r)rr r r ) r rrrrr#rr r)rr!r ) rrrrrarrayrandomseedrandnnan)res1dres2darr4dres4darr9dres9dnan_3ds rtest_dense_constructorr4s i E ;;$  "((9"56 y), -E ;;&  "((Iy+A"BC HHAA'1a&1a&)9:AA'1a&1a&)9:AA'1a&1a&)9:< =E e E ;;, && &%(IINN2 IIOOAa!Aa!A .E e E ;;- -- -%(!RVV Ax1a&: ;F <<9 $$ $!288q"&&k]aVH1vh,O#PQrc tgdd}|jdk(sJt|jt j gdtgdgdgd}|jdk(sJt|jt j gdgdgtdggdgggd}|jdk(sJt|jt j dggdgggtj jd tj jd dd d d dd }t|d}|jdk(sJt|j|y)Nr rrr"r$rr)r r!r!r'r r!rr#)r rr!rr#rr ) rrrrrr(r)r*r+)r-r.res3darr7dres7ds r!test_dense_constructor_with_shaper:8s% it ,E ;;$  "((9"56 y),F ;E ;;&  "((Iy+A"BC usenI 6E ;;) ## #"((aSEQC5>":;IINN2 IIOOAa!Aa *E u_ 5E ;;/ )) )%(rc.tjtd5tgdddddtjtd5tgdddddtjtd5tgdgddddtjtd5tdggd gggd dddtjtd 5td gd gffddddtjtd5td dgdd gddgd d gffddddtjtd5td gdgffdddtjtd5td gdgd gdgffdddy#1swYxYw#1swYcxYw#1swY ?))4() z)> ?+)6*+ z)> ?+9+T*+ z)> ?3QC5A3%. 23 zH J-A3!-t,- zH JFAa5Aq6Aq6Aq6239EF z)D E"A3".!" z)D E+A3!qcB4()*++/))++++33--FF""++s_F3GG 6G-G'#G3!G?H 3F=G  GG$'G03G<?H Hctd}t|}|jdk(sJt|jt j dy)Nrr)rress rtest_1d_sparse_constructorrJhs?oG G C 99  /rctddgddgff}|jdk(sJt|jt j gdy)Nr%r&r!r r)rr%r&rrrrrr(rIs rtest_1d_tuple_constructorrNosF aUaUH% &C 99   34rctddgddgffd}|jdk(sJt|jt j gdy)Nr%r&r!r r?r6)rr%r&rrLrMs r$test_1d_tuple_constructor_with_shaperPusH aUaUH%T 2C 99   67rctd}tjtd5d|d<dddtjtd5|dddfdddy#1swY7xYw#1swYyxYw)N)r r z3'coo_array' object does not support item assignmentr=r!rrz''coo_array' object is not subscriptabler)rrCrD TypeError)coo_2ds rtest_non_subscriptabilityrUzsu v F yS Ut  yF Hq!t  sA# A/#A,/A8c d\}}tj|dz gdtj|dz gdf}tdg|f||f}|j||zdf}|jdj tj dk(sJ|jdd||zdz k(sJ|j||}|jdj tj dk(sJ|jdd|dz k(sJy) N)iir!int32)dtypegffffff @r6rint64)rr(rreshapecoordsrX)MNr[ABCs rtest_reshape_overflowras DAqhhAwg.!a%0P QFC5&/!Q0A 1q5!*A 88A;   1 11 1 88A;q>a!eq[ (( ( !QA 88A;   1 11 1 88A;q>QU "" "rc tgd}|jdk(sJ|jd}|jdk(sJt|j t j dgdgdgg|jd}|jdk(sJt|j t j gdgtjtd 5|jd dddtjtd 5|jd dddtgd gd g}|jdk(sJ|jd}|jdk(sJt|j t j gd|jd}|jdk(sJt|j t j dgdgdggdgdgdgggtjtd 5|jddddy#1swYExYw#1swYxYw#1swYyxYw)Nr!rrrr@r!rrr!rzcannot reshape arrayr=rrrrr!r rrrrr$)r)r!r rrrr)r rr!r ) rrrZrrrr(rCrDrE)arr1dcol_vecrow_vecarr2dflat to_3d_arrs r test_reshaperos i E ;;$  mmF#G ==F "" ""BHHqcA3_$=>mmF#G ==F "" ""BHHi[$9: z)? @ e z)? @ e y), -E ;;&  == D ::  * i(I ??i '' '""$bhh!qcA31#sQC/Q&RS z)? @ e) s$!H6II6II Ictgd}|jdk(sJ|jdk(sJtgdgdg}|jdk(sJ|jdk(sJy)Nrcrr rgrhr$r)rrnnzrirls rtest_nnzrss_ i E ;;$   99>> y), -E ;;&  99>>rc vtgdj}|jdk(sJt|j t j gdtgdgdgj}|jdk(sJt|j t j ddgddgdd ggy) Nrcrrgrhrr!rr r)rTrrrrr(rrs rtest_transposervs i " "E ;;$  "((9"56 y), - / /E ;;&  "((QFQFQF+C"DErctgdjd}|jdk(sJt|j t j gdtgdgdgjd}|jdk(sJt|j t j gdgdgtjtd 5tgdjddddtjtd 5tgdgdgjd dddy#1swYOxYw#1swYyxYw) Nrcraxesrrgrhrr!r$"axes don't match matrix dimensionsr=repeated axis in transposer!r!) r transposerrrrr(rCrDrErrs rtest_transpose_with_axisrs i * * * 5E ;;$  "((9"56 y), - 7 7V 7 DE ;;&  "((Iy+A"BC z)M N4)&&F&34 z)E FA9i()333@AA44AAsE "E EEctgd}t|jtjgdt|j tj |j|j j|jjk(sJ|j jjdusJgd|_t|jdk(sJt|jtjgd|j j|jjk(sJtjtd5gd|_dddy#1swYyxYw)Nr!rr!r Fr r!zcannot set row attributer=)rrcolrr(row zeros_likerXflags writeablelenr[rCrDrErMs rtest_1d_row_and_colrs K C"((9-."--01 77==CGGMM )) ) 77== " "e ++ +CG szz?a  "((9-. 77==CGGMM )) ) z)C Ds  E**E3ctgd}|j|j|j|jfD]-}t j td5|ddd/|j|j|jfD]/}t|j|j1y#1swYxYw)NrzCannot convertr=) rtobsrtocsctodiatolilrCrDrEtocootocsrtodokrr)rIfs rtest_1d_toformatsrs K CiiCIIsyy 9 ]]:-= >  C  iiCII .3QS[[]CKKM23  s CC arg)r!r rr#r&ctjgd}t|}|j|d|j||j|jk(sJt |j |y)NrFrefcheckrr(rresizerrrrdenrIs rtest_1d_resizersZ ((; C C.CJJsUJ#JJsO 99 !! !$rr!r rrctjgd}t|}|j|d|j||j|jk(sJt |j |y)NrcFrrrs rtest_1d_to_2d_resizersZ ((9 C C.CJJsUJ#JJsO 99 !! !$r)r!rrr&ctjgdgdg}t|}|j|d|j||j|jk(sJt |j |y)NrcrrrFrrrs rtest_2d_to_1d_resizer s_ ((Iy) *C C.CJJsUJ#JJsO 99 !! !$rc xtgdgdff}|jdk(sJt|jt j ddg|j |jdk(sJt|jt j ddgtgdgdgdgdgdff}|jdk(sJt j d d gd d gd d ggd d gd d gd d ggd d gd d gdd gggd d gd d gd d ggd d gd d gd d ggd d gd d gd d gggg}t|j||j |jdk(sJt|j|tgd gd ff}|jdk(sJ|j |jdk(sJy) N)r r r r!rr!rr r)r rr)rr r)r!r r!rr%rrr!r r)rrqrrrr(sum_duplicates)rir/expected arr_nodupss rtest_sum_duplicatesrs y9,/ 0E 99>>"((Aq6"23  99>>"((Aq6"23 y9iI"NO PE 99>>xx q6Aq6Aq6 "aVaVaV$<1v1vPQSTv>V W q6Aq6Aq6 "aVaVaV$<1v1vPQSTv>V W YH(+  99>>(+L>Q   >>Q  rcDtgdgdff}|jdk(sJ|jdk(sJt|j t j ddg|j|jdk(sJ|jdk(sJt|j t j ddgt|jt j dgt|jt j dgy)N)rrr!rrr!r) rrq count_nonzerorrrr(eliminate_zerosrr)ris rtest_eliminate_zerosr2s y9,/ 0E 99>>    A %% %"((Aq6"23  99>>    A %% %"((Aq6"23BHHaSM*BHHaSM*rctjgd}tjgd}||z}t||z}t|t|usJt ||yNrrrrr)rr(rtyperden_aden_bexprIs rtest_1d_add_denser?sV HH^ $E HH\ "E %-C E U "C 9S !! !crctjgd}tjgd}||z}t|t|z}t||j yr)rr(rrrrr dense_sum sparse_sums rtest_1d_add_sparserHsN HH^ $E HH\ "E I5!Ie$44JJ..01rctjgd}tjgd}||z}t||z}tj|dk(sJt ||y)Nrrr)rr(rndimrrs rtest_1d_matmul_vectorrQsV HH^ $E HH\ "E %-C E U "C 773<1  crctjgd}tjgdgdgj}||z}t||z}t |t |usJt ||y)Nrrrr r!r)rr(rurrr)rotherrrIs rtest_1d_matmul_multivectorrZs` ((> "C HHlL1 2 4 4E +C C.5 C 9S !! !crctjgdgdg}t|}||jz}||jz}t |j |tjgdgdg}t|}||jz}||jz}t ||tjgdgdg}tjgd}t|}||jz}||jz}t ||tjgd}tjdgdgd gg}||z}t||z}t ||t|t |z}t ||y) Nrr)rrrrr#)r!rrrr)rr!rrr)r!rr rrr)rr(rrurrlist)rrlrrIrrris rtest_2d_matmul_multivectorrcsD ((L,/ 0C cNE +C %''/C$ ((O_5 6C cNE +C #%%-Cc HHo7 8E HH_ %E e E %''/C %''/Cc HHY E HHqcA3_ %E %-C E U "Cc E T%[ (Ccrctjgd}tjtd5t |j dddy#1swYyxYw)Nrz diagonal requires two dimensionsr=)rr(rCrDrErdiagonal)rs rtest_1d_diagonalrsD ((> "C z)K L"#!"""s AAr)rxr)rrrrr)rrr rc)rr%rr rr#ctjjdtjjdd|}t t |j |y)Nr'rr#)lowhighsize)rr)r*randintrrtodense)rarrs rtest_nd_todensersFIINN2 ))    6C3'')3/rct|}t|}|j|k(sJt|jt j |y)Nr)r empty_arrrIs rtest_nd_sparse_constructorrsB% I I C 99  0rctjjdtjj|}t |}|j |k(sJt |j|y)Nr'rr)r*r+rrrrrrrIs rtest_nd_tuple_constructorrsQIINN2 ))//5 !C C.C 99  $rctjjdtjj|}t ||}|j |k(sJt |j|y)Nr'r6rrs r$test_nd_tuple_constructor_with_shapersTIINN2 ))//5 !C Cu %C 99  $rctjtd5tddgddgddgddgffd dddtgggggffd }t |j t jd y#1swYJxYw) Nzexceeds matrix dimensionr=r%r&r!r r)rrrr6)rrr r)rCrDrErrrrempty)rs r(test_tuple_constructor_for_dim_size_zerors z)C DEAq6QFQFQF34GDE2BB/0 BI""$bhhy&9: EEs BB )r new_shape))rr%rr#)rrr)r)$)r)i8)r)r rr r rr#rcDtjjd}t|d|t}|j |k(sJ|j }|j|}|j|}|j |k(sJt|j |yN4e333333?densityrngrX) rr) default_rngrintrrrZr)rrrr/den4dexp_arrres_arrs rtest_nd_reshapers ))   )C C @E ;;%   MMOEmmI&GmmI&G ==I %% %"G,rctjjd}t|d|t}|j tj |jk(sJyr)rr)rrrrqrr)rrrs r test_nd_nnzrsK ))   )C ucs# >C 77b&&s{{}5 55 5rctjjd}t|d|t}|j j }|j}|j|dddk(sJt||j y)NrrrrB) rr)rrrrrurrr)rrrr trans_arrs rtest_nd_transposerso ))   )C ucs# >CkkmooG I ??eDbDk )) ))++-.r)r axis_perm))rrx)r$r{))r rrrr#r)r!r rr#rrctjjd}t|d|t}|j |}t |jtj |j|y)Nrrrry)rr)rrrrrr)rrrrrs rtest_nd_transpose_with_axisrs\ ))   )C ucs# >C 9 -I""$bll3;;=y&QRrc@tjtd5tgdj ddddtjtd5tgdgdgj d dddy#1swYOxYw#1swYyxYw) Nr|r=rcr{ryr}rgrhr~)rCrDrErrrFrr%test_transpose_with_inconsistent_axisrs z)M N4)&&F&34 z)E FA9i()333@AA44AAsB"BBBc tgdgdgdgdff}|jdk(sJ|jdk(sJt|j t j gdgdggdgdggdgd gg|j|jdk(sJ|jdk(sJt|j t j gdgdggdgdggdgd gggdgdgdgd gd f}tgd |f}|jdk(sJ|jd k(sJ|j|jd k(sJ|jd k(sJt|jt j gt|jt j gt|jgggggfy)N)r!rrr)rr!r!r )rr!rr!)r!r!r rrr )rr!rrr)rrr r)r!rrr )rrrrr) rrqrrrrr(rrrr[)arr3dr[arr5ds rtest_nd_eliminate_zerosrs |lL,%OP QE 99>>    A %% %"((Y ,B%. $:Y >    A %% %"((Y ,B%. $:Y >    A %% %  99>>    A %% %BHHRL)BHHRL)BB34rc*tjjd}t|d|t}t|d|t}|j |j }}||z}||z}t |t |usJt||yrrr)rrrrrrrrsp_xsp_yden_xden_yrrIs rtest_nd_add_denser   ))   )C s3 ?D s3 ?D<<>4<<>5E %-C ,C 9S !! !crctjjd}t|d|t}t|d|t}|j |j }}||z}||z}t ||j yrrr)rrrrrrrrrrrrrs rtest_nd_add_sparsersr ))   )C #S AD #S AD<<>4<<>5E IJJ..01rctjdgtjggdgdggg}tjdgdggdgdggg}||z}t|t|z}t ||j yNrrr!r r)rr(infrrrrs rtest_add_sparse_with_infr&| HHsRVVHoqc{3 4E HHsQCjA3*- .E I5!Ie$44JJ..01r)a_shapeb_shape))r)r')rr)rr#)r#r%rr )r%r#r rctjjd}t|d|t}t|d|t}t j td5||zdddy#1swYyxYwNrrrr<r=rr)rrrrCrDrErrrarr_aarr_bs r+test_nd_add_sparse_with_inconsistent_shapesr/c ))   )C 'CS DE 'CS DE z)> ?   !A00A9c*tjjd}t|d|t}t|d|t}|j |j }}||z }||z }t |t |usJt||yrrrs rtest_nd_sub_denser";r rctjjd}t|d|t}t|d|t}|j |j }}||z }||z }t ||j yrr r s rtest_nd_sub_sparser$Hsr ))   )C s3 ?D s3 ?D<<>4<<>5E IJJ..01rctjdgtjggdgdggg}tjdgdggdgdggg}||z }t|t|z }t ||j yr)rr(r,rrrrs rtest_nd_sub_sparse_with_nanr&Vrrctjjd}t|d|t}t|d|t}t j td5||z dddy#1swYyxYwrrrs r+test_nd_sub_sparse_with_inconsistent_shapesr(_rr ) )r rrr#r#rRrx))r rrrr&)r&)rrr rrx)rr#rr rrr!)r r#r*r/)r#r!)rr@)r?r?) mat_shape vec_shapec.tjjd}t|d|t}t|d|t}|j |j }}||z}||z}t |||t|z}t ||yrrr)rrrrrr) r1r2rrrrrrrIs rtest_nd_matmul_vectorr5vs ))   )C  3Cs CD  3Cs CD<<>4<<>5E %-C ,CS e CSr) )r))r rr#rr+r,)rr&rr)r6r@)r-rr))r!rr r)rr#r!rr))rr!r!r r)r!rrr)r?)r rr)r)r#rrrr )r?r7r0) mat_shape1 mat_shape2ctjjd}t|d|t}t|d|t}|j |j }}||z}||z}t |j |||z}t |||t|z}t ||||z}t ||yNrrr random_staterXr4) r8r9rrrrrrrIs rtest_nd_matmulr>s ))   )C  Cc MD  Cc MD<<>4<<>5E %-C +C$ ,Cc e Cc $,Ccrctjjd}tdd|t}tdd|t}t j td5||zdddt j td5||jzdddtdd|t}t j td 5||zdddt j td 5||jzdddy#1swYxYw#1swYxYw#1swYYxYw#1swYyxYw) Nr)rr#rrrrr<)r!r#rr r#z)matmul: dimension mismatch with signaturer=)r!r#rr z&Batch dimensions are not broadcastable) rr)rrrrCrDrEr)rrrsp_zs r.test_nd_matmul_sparse_with_inconsistent_arraysrAs ))   )C  Ss# ND  Ss# ND z)T U t  z)T U      3S LD z)Q R t  z)Q R         s0!D D&D2=D>D#&D/2D;>Ec,tgd}tgd}tj|j|j}|j|}t |||j|j}t ||y)Nr r")rrdotrr)abrrIs rtest_dot_1d_1drFsg'A'A &&aiik *C %%(Cc %% Ccrctddgddgddgg}d}|j|}tj|j|}t |j|y)Nr!r rrr#r)rrCrrr)rDrErIrs rtest_dot_sparse_scalarrHsWAq6Aq6Aq6*+A A %%(C &&a C$rctddggddggg}tgd}tjtd5|j |dddy#1swYyxYw)Nr!r rrr"znot aligned for n-D dotr=)rrCrDrErC)rrs r!test_dot_with_inconsistent_shapesrJsW Ax1a&* +E i E z)B C %s AA ctddgddgg}tjtd5|j ddddtjtd5|j ddddtjtd5|dzdddtjtd5d|zdddy#1swYxYw#1swYhxYw#1swYKxYw#1swYyxYw) Nr!r rrzargument not supported typer=zarg not supported typezunsupported operand type)rrCrDrSrC tensordot)rs rtest_matmul_dot_not_implementedrMs 1v1v& 'E y(E F $ y(@ A  y(B C   y(B C u  s/C"CC'C3CC$'C03C<) )rere)rrrr))r!rr.)rr rrr)r*rrr#r )rP)rr!))r!r#rQ)rNrr rr)r r&r)rr#rrr )rr#rrrRctjjd}t|d|t}t|d|t}tj |j |j }|j |j }t|||j t|j }t|||j |}t|j |yr;) rr)rrrrCrrr)rrrrrrrIs r test_dot_ndrVs ))   )C #Cs KE #Cs KE &&%--/ 2C ))EMMO $Cc ))D) *Cc ))E C$rrNrOr!rPrrr*rQrTrRrSrr#rr&r r)rrr ))rr#rr r)rr rrr&r))rr#r)rrrr!)r rr)rrrzcRtjjd}t|d|t}t|d|t}tj |j |j |}|j |j |}t|||j t|j |}t|||j ||}t|turt|j |yt||y)Nrrr<ry) rr)rrrrLrrrrr)rrrzrrrrrIs rtest_tensordotrYs ))   )C #Cs KE #Cs KE ,,u}} d CC //%--// 5Cc //$u}}/d/ ;Cc //%d/ +C CyIS[[]C(S#rctjjd}tdd|t}tdd|t}dgdgf}t j td5|j|| dddtd d|t}td d|t}gd d dgf}t j td5|j|| dddy#1swYoxYw#1swYyxYw)Nr)rrr#rr<rrrr z*sizes of the corresponding axes must matchr=ry)r#rr rr)rrrr )r rr!r!rz,axes lists/tuples must be of the same length) rr)rrrrCrDrErL)rrrrzs r test_tensordot_with_invalid_argsr\s ))   )C #Cs KE #Cs KE C!:D z)U V* D)* c3 OE Cc ME aU D z*& '* D)******s'C) C5)C25C>) actual_shapebroadcast_shape) ))r!rr#r)r rr#r))r r!r#r)rr rr#r))r!r!rr&r%)rr#rrr&r%)rd)rr#r))rr&r!)rr&r#)r@rr))r!r*)rAr"))r!rr!r#r)r&r rr%r#rctjjd}t|d|t}|j |}tj |j|}t|j|yr;) rr)rrr _broadcast_to broadcast_torr)r]r^rrrIrs rtest_broadcast_torc+s^ ))   )C |Ss# NC  O ,C //#++- 9C$r))rr#rrr&rr)r%r#r rrctjjd}t|d|t}|j }t tj |jdd}|j|f|jddz}t|Dcgc]}||ddddf}}t|}t|} t| j |ycc}w)Nrrr<r) rr)rrrrprodrrZrangerr r) rrrr num_slicesreshaped_arrayimatricesrrIs rtest_block_diagrk9s ))   )C sC HD LLNERWWU[["-./J]]J=5;;rs3C#CDN16z1BCAq!Qw'CHC h C d C$ DsC ctjjd}t|d|t}t t ||}t|j|jyr;) rr)rrrr r rr)rrrrIs rtest_extract_block_diagrmLsO ))   )C sC HD k$/ 7C /r))r_r_)r[r[)rrr#rncntjjd}t|d|t}t|d|t}||z}tj |j |j }t|j |||j z}t||yr;)rr)rrraddrrrrrrDrErIrs rtest_add_no_broadcastingrrYs ))   )CWc3GAWc3GA a%C &&aiik *C$ aiik/Ccrcntjjd}t|d|t}t|d|t}||z }tj |j |j }t|j |||j z }t||yr;)rr)rrrsubtractrrrqs rtest_sub_no_broadcastingrues ))   )CWc3GAWc3GA a%C ++aiik199; /C$ aiik/Ccr)rNrrrNr!rrrrr#NrSr rSr)r rr))rrrr rrPNrPr!rPrrPr )rPrrWr)rWr)raxiscttjjd}t|d|t}|j |}tj |j |}t|||j|}tj|j |}t||yNrrr<r) rr)rrrargmaxrrargmin)rrrrDrIrs rtest_argmax_argminrzs ))   )CUCcEA ((( C ))AIIKd +Cc ((( C ))AIIKd +Ccr)rvrwrxryr{r}r~rrrrr)rr#r&r!r)rNrx)rNr{)rrr r )rrr )rfr)rrr&r#r{)rr r!)rr)rrr)rrBr )rr)rr)rrctjjd}t|d|t}|j |}tj |j |}|j|}tj|j |}|j|}tj|j |} |j|} tj|j |} ||f||f|| f| | ffD]Y\} } tjt| tjr t| | @t| j | [yr)rr)rrrminrmaxnanminnanmax issubdtypernumberr)rrrrDres_minexp_minres_maxexp_max res_nanmin exp_nanmin res_nanmax exp_nanmaxrIrs r test_min_maxrs" ))   )CUCcEAeeeGffQYY[t,GeeeGffQYY[t,Gt$J199;T2Jt$J199;T2Jw''7); *- J/GI-S ==cBII . c "  , -rctgdggtgdgfD]-}|jdk(sJ| jdk(r-Jy)Nrr!rB)rrr)rDs rtest_min_max_fullrsO,()9l^+D E uuw!||xxzR r)rNN)rrN)rNr!N)rzrN)r|NN)rSr N)r&r)rPNN)rrr)rPrN)rWrN)rrN)rNrxN)rNr{N)rr N)rrN)rfrNrr{)r&r#)rrN)rrNr)rr)rrN)rrN)rroutc@tjjd}t|d|t}|j ||}tj |j |}t|||&t||t|t|k(sJyyNrrr<)rrr) rr)rrrsumrridrrrrrDrIrs rtest_sumrs ))   )CUCcEA %%Ts% #C &&4 (Cc S##w"S'!!!rc@tjjd}t|d|t}|j ||}tj |j |}t|||&t|t|k(sJt||yyr) rr)rrrmeanrrrrs r test_meanrs ))   )CUCcEA &&d& $C ''!))+D )CC #w"S'!!!S!rcttjjd}tdd|t}t |dzj tj|j dt |dzj tj|j dt t|j tj|j t t|j tj|j y)Nr)rrr#r rrr<rr) rr)rrrrrpowerroundabs)rrDs rtest_pow_abs_roundrs ))   )C[#CsKAQTNN$bhhqyy{A&>?QTNN$bhhqyy{A&>?E!H$$&(=>CFNN$bffQYY[&9:rcPtjjd}t}|j t t |d|t}t |d|t}|5t||k(j|j|jk(t||k7j|j|jk7t||k\j|j|jk\t||kj|j|jkt||kDj|j|jkDt||kj|j|jkt||k(jtj||k7jt||k\jtj||kjt||kjtj||kDjdddy#1swYyxYwr;) rr)rrfilterr rrrr bitwise_not)rrrsuprDrEs rtest_boolean_comparisonsrs ))   )C  CJJ&'Wc3GAWc3GA Had^^%qyy{AIIK'?@ad^^%qyy{AIIK'?@ad^^%qyy{AIIK'?@ad^^%qyy{AIIK'?@ac]]_aiik!))+&=>ac]]_aiik!))+&=>ad^^%r~~q!tnn6F'GHad^^%r~~qsmmo'FGad^^%r~~qsmmo'FG H H Hs 'H,JJ%ctjjd}t}|j t t dd|t}|5t|dk(j|jdk(t|dk7j|jdk7t|dk\j|jdk\t|dkj|jdkt|dkDj|jdkDt|dkj|jdkdddy#1swYyxYw)Nr)r#rr&rrr<rr!) rr)rrrr rrrr)rrrDs r$test_boolean_comparisons_with_scalarrs  ))   )C  CJJ&'Y#SIA 5ad^^%qyy{A~6ad^^%qyy{A~6ad^^%qyy{A~6ad^^%qyy{A~6ac]]_aiik!m4ac]]_aiik!m4 555s DE22E;c0tjjd}t|d|t}t|d|t}||z}tj |j |j }t|j |yr;rr)rrrmultiplyrrrqs r test_multiplyr sk ))   )CWc3GAWc3GA a%C ++aiik199; /C$rctjjd}tdd|t}|dz}tj |j d}t|j |yNr)rr#rrr<rrrrDrIrs rtest_multiply_with_scalarrsU ))   )CWc3GA a%C ++aiik1 %C$rctjjd}t|d|t}tj ddt j|zj|}||z }|j|z }t|j|||z }t|j|y)Nrrr<r!) rr)rrrarangemathrerZrrrqs r test_dividers ))   )CWc3GA !Q7++,44W=A a%C ))+/CCKKM3' a%CCKKM3'rctjjd}tdd|t}|dz }|j dz }t |j |yr)rr)rrrrrrs rtest_divide_with_scalarr(sN ))   )CWc3GA a%C ))+/CCKKM3'rctjjd}t}|j t t |d|t}t |d|t}|5|j|}tj|j|j}t|j|dddy#1swYyxYwr;) rr)rrrr rrmaximumrrrrrrrDrErIrs r test_maximumr0 ))   )C  CJJ&'Wc3GAWc3GA )iiljjaiik2S[[]C())) 'ACCctjjd}t}|j t t |d|t}t |d|t}|5|j|}tj|j|j}t|j|dddy#1swYyxYwr;) rr)rrrr rrminimumrrrs r test_minimumr<rrct}|jttgd}tddgddgddgg}tddgdd ggd d gd d gggddgddggddgddgggg}|5t |j dj tj |j dt |j d j tj |j d t |j dj tj |j ddddy#1swYyxYwN)rr!rrrr#irr rr&r%rr'ri)rrr rrrrrrrDrEcs rtest_maximum_with_scalarrI-  CJJ&''AB7RGaX./AaUQqENaURG$45UQqENaUQrFO46 7A IQYYq\))+RZZ Q-GHQYYq\))+RZZ Q-GHQYYq\))+RZZ Q-GHIII ,C"EE ct}|jttgd}tddgddgddgg}tddgdd ggd d gd d gggddgddggddgddgggg}|5t |j dj tj |j dt |j d j tj |j d t |j dj tj |j ddddy#1swYyxYwr)rrr rrrrrrs rtest_minimum_with_scalarrUrr)lrnumpyr numpy.testingrrrrC scipy.linalgr scipy.sparserrr _coor r rr4r:rGrJrNrPrUrarorsrvrrrmark parametrizerrziptuplerrrrrrrrrrrrrrrrrrrrrr rrrr"r$r&r(mat_vec_shapesr5mat_mat_shapesr>rArFrHrJrM dot_shapesrVtensordot_shapes_and_axesrYr\rcrkrmadd_sub_shapesrrruargmax_argmin_shapes_axisrmax_min_shapes_axisrrrsum_mean_paramsrrrbitwise_op_and_compare_shapesrrrrrrrrrrrFrrrs  JJ #II3 <R@)(+805 8 # "JF A  30%%1%L, ?@%eCHo%A% -%c%.%8 +2B" #;<0<0 #;<1<1#;<%<%#;<%<%;/2QR - R -#;<6<6#;</<//2STSTSA54#;<<#;<2<22/2KLL#;<<#;< 2< 22/2KLL 3^D E  5~FG* "%  /<%=%$ EQC!:sQCj! 9sQCj! QFQF+, kIy12! g 9-. 79RST,*&<MN % N %'%>?%?%"'%>?0?0/@ A /@ A *,EF G  *,?@-A-* &(;!XRXXe_5iHBHHW,=>0-/C.0@xrxx')A 68288E?CY$@  1?C "D "1?C "D ";!/1NOHPH$ 5/1NO%P%%/1NO (P ((/1NO )P )/1NO )P ) I Ir