L i.2dZddlZddlZddlmZmZddlmZm Z ddl m Z ee gZ ejejejgZdZej$dZej$dZej*j-d e Gd d Zy) z Test of 1D arithmetic operationsN) assert_equalassert_allclose) coo_array csr_array) isscalarlikecpt|tjs t|r|S|j SN) isinstancenpndarrayrtoarray)as j/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/sparse/tests/test_arithmetic1d.pyr r s'!RZZ LO 99;c2tjgddS)N)rrd)r arrayrrdat1drs 88L# &&rctDcic]}||j|}}tDcic]/}||jDcgc]\}}||||fc}}1c}}}Scc}wcc}}wcc}}}wr ) math_dtypesastype spcreatorsitems)rdtype dat_dtypesspdats rdatsp_math_dtypesr!s{:EF%e,,FJF    Z5E5E5G HzuceS"S' " HH G H sA'A2A,A2,A2 spcreatorcxeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZy)TestArithmetic1Dcvd}tjdtjdtjdtjdtjdfD]}|||}||z}d|z}t||jztjsJt||j ztjsJ|||fD]V}||z|j |j zk(sJ|j|k(sJt |j|k(rVJy) N)int32float32float64 complex64 complex128r)r rr tocsrr tocoor )selfr"shapemytyperbcms rtest_empty_arithmeticz&TestArithmetic1D.test_empty_arithmetic%s HHW  HHY  HHY  HH[ ! HH\ "   2F%v.AAAAAa!'')mRZZ8 88a!'')mRZZ8 88AY 21u aiik 9999ww&(((qz''6111 2 2rctjgdd}tt|t||j y)N) rrrrrrrrr)r rrabsr )r0r"As rtest_abszTestArithmetic1D.test_abs8s3 HH=s CSVS1.6689rctjgdd}||}ttj|dt |dj y)N)ggQ?g@1@gQrr)decimals)ndigits)r rraroundroundr r0r"r=Asps r test_roundzTestArithmetic1D.test_round<sA HH0# 6lRYYq1-uS!/D/L/L/NOrcLtjgdd}||}ttj|d|jdj t j td5||j|dddy#1swYyxYw)N) r;r8rrr-rrr-zinput is not scalarmatch)r rrpowerr pytestraisesNotImplementedErrorrDs rtest_elementwise_powerz'TestArithmetic1D.test_elementwise_powerAsz HH4c :lRXXa^SYYq\%9%9%;<]].6K L " aL  q ! " " "s 9BB#ctjddg}||}t|jj |jyNy?@y@)r rrrealr r0r"Dr=s r test_realzTestArithmetic1D.test_realJ7 HHff% & aLQVV^^%qvv.rctjddg}||}t|jj |jyrS)r rrimagr rUs r test_imagzTestArithmetic1D.test_imagOrXrc||D]F\}}}t|dz|dzjt|dz|dzjHyNr-gL1@rr r0r"r!rr datsps rtest_mul_scalarz TestArithmetic1D.test_mul_scalarTsS!29!= ? E3 q519"5"5"7 8 tedl%;%;%= > ?rc||D]F\}}}td|zd|zjtd|zd|zjHyr]r^r_s rtest_rmul_scalarz!TestArithmetic1D.test_rmul_scalarYsS!29!= ? E3 S1u9"5"5"7 8 dUl%;%;%= > ?rc||D]\}}}|tjdk(r t||z jtjdt|dz j||gdd}t||z j||jz t||z j|j|z t|j|dz ||dz y)NboolrJr)rr;rr-rr,)r rrr zeros)r0r"r!rr r`r=s rtest_subzTestArithmetic1D.test_sub^s!29!= A E3(( %%-002BHHQK @ %!),,. 4-s3A %!),,.aiik0A B !e),,. c0A B 3q613Q< @ Arc:||D]\}}}t|dzj|ttddDcgc]}||z c}}ttddDcgc]}||z c}}t |j|ycc}wcc}w)Nrrr)rr sumranger) r0r"r!rr r`ksumSsumDs r test_add0zTestArithmetic1D.test_add0ns!29!= 2 E3 %!),,. 45A;7aE 78Dq!5AC56D DLLND 1  285s B # B c tjgd}tjgd}||}||}t|j|j ||zt|j|j ||ztjgd}tjgd}||}||} t|j| j ||zt|j|j ||zt|j| j ||zt|j|j ||zy)N)rJr )rr8y?y@yy@@y@y?)r rrmultiplyr ) r0r"r=BrEBspCrVCspDsps rtest_elementwise_multiplyz*TestArithmetic1D.test_elementwise_multiplyws! HHY  HHZ ll S)113QU; Q//11q59 HH. / HH. /ll S)113QU; Q//11q59  S)113QU; Q//11q59rc tjdg}tjdgg}tjgd}tjgdg}tjdgdgdgg}tjgdgd gd g}gd }tjd } | j} tjd gg} tjddgd dggg} ||} ||}||}||}||}||}||}|| }|| d}|| }|| ddd df}|| }|||||||| | | | g }| |||||||||||g }| ||g}|D]V}|D]O} |j |j z}|j|}t|j |QX|D]D}|D]=} |j |z} |j|}tt ||?Fy#t $rEt jt d5|j|dddn #1swYnxYwYwxYw#t$rYt $rGd} t jt | 5|j|dddn #1swYnxYwYwxYw#t $rYwxYw)NrJ)rr8r)rqrpr|rr-r)r)r;rr-)r~r~r~rr-r)rrJr)rNinconsistent shapesrKz&broadcast together|inconsistent shapes) r ronesTr ValueErrorrNrOrtr TypeError)!r0r"r=rurwrVEFGHJKLrErxGsprvryEspFspHspHsppJspJsppKspmatrices spmatrices sp1dmatricesij dense_multsp_multmatchmes! r#test_elementwise_multiply_broadcastz4TestArithmetic1D.test_elementwise_multiply_broadcasts HHaSM HHrdV  HHZ  HHj\ " HHqcA3_ % HHiY7 8  GGFO CC HHqcUO HH1v1v&' (llllllll7$l1a:'lq!Q1aAq!43S#sCdCsS S#  ?A ?!"qyy{!:J **Q- 1:> ? ? >A >!"qJjjmG  0*= > >"z9NO& 1 &&&!!FGzA& 1 &&& "sl!HI/3K $I,I  I,I& "I,+I,/ K :%K J: 1 K :K ?K K  KKc||}tjdtjdtjg}||z }tjj |||gdd}dtjtj dg}tjj ||z |tjgd}tjgd}||} ||} t | | z ||z tjgd }tjgd }||} ||} tjd 5t| | z ||z dddtjddg}tjddg}||} ||} tjd d 5t| | z ||z dddy#1swYzxYw#1swYyxYw)Nr)rrrrJrr,rrrrrsr)rrr-ignore)divide)rinvalid) r rnantestingassert_array_equalinfrerrstater) r0r"rr`expectedactualdenomr=rurErvs rtest_elementwise_dividez(TestArithmetic1D.test_elementwise_divides% 88Q26623 %%fh7,c2rvvrvvq) %%eemX> HH. / HH. /llc 1q5) HHY  HHY ll [[ ) + sAE * + HHaV  HHaV ll [[( ; + sAE * + + + + + +sG$G0$G-0G9ctjgd}||}tjtd5|dzdddtjt d5|dzddddD]F}||z}||z}t |j|t |j|jHy#1swY~xYw#1swYaxYw)N)rrr-rznegative integer powersrKr8z zero powerr)rr-rg@) r rrNrOrrPrr r)r0r"r=ruexponentret_spret_nps rtest_powzTestArithmetic1D.test_pows HH\ " aL]]:-F G  rE  ]].l C  qD ' 5H[F[F )6 2 v|| 4  5     sB>$C >C Cc||}d}|j|}||z}t|j|jy)N )dotrr )r0r"rr=scalarrrs rtest_dot_scalarz TestArithmetic1D.test_dot_scalarsA e vv:((*:*:*<=rc*|gd}|tjddgddgddggd}tjgdgj}t||z|j |zt||zj ||zj t|j |z||zj t||j z||zj tjgd}t||z|j |z||}||z}t |tj sJ|jdk(sJttjd |ttjd |j |zttjd ||j zttjd |j |j ztjtd 5|dzdddtjtd 5d|zdddy#1swY3xYw#1swYyxYw) N)r-rg@rrr-rr)rrrrrzScalar operands are not allowedrK) r rrrr r r r1rNrOr)r0r"MsprucolVVspMsp_Vsps r test_matmulzTestArithmetic1D.test_matmuls $ bhhAAA7= >hh {#%% c 3;;=3#67 q))+cAg->->-@A )C!G+<+<+>?aiik)C!G+<+<+>? HHY a!23l)'2::...}}"""  W- S[[]S%89 S3;;=%89 S[[]S[[]%BC]]:-N O  !G  ]]:-N O  G      sI=.J =J Jc||D]S\}}}|tjdk(r ||z|z|z }t|||z||z|z|z }t|||zUy)Nre)r rr)r0r"r!rr r`sum1sum2s rtest_sub_densezTestArithmetic1D.test_sub_dense'st!29!= * E3((#IOu,D sSy )EME)S0D sSy ) *rctjg}|jd}|jd}tjddg}||}||}t j t d5|j|dddt|j|tj||t j t d5|j|dddt|j|jtj||t|j|jtj||t|jdjtj|dt j t d5|j|dddt|j|j|j|y#1swYxYw#1swY-      s$:HH* H7H'*H47IN)__name__ __module__ __qualname__r6r>rFrQrWr[rarcrgrnrzrrrrrrrrrrr$r$#sa2&:P "/ / ? ? A 2:*=>~ +D5 > D * ?rr$)__doc__rNnumpyr numpy.testingrr scipy.sparserrscipy.sparse._sputilsrrint64r)r+rr fixturerr!mark parametrizer$rrrrs& 7-. # xxR]]3  ''j1q?q?2q?r