L i"dZddlZddlmZddlmZmZmZmZddl Z ddl m Z ddl m Z ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddl m!Z"gd Z#dd Z$dd Z%Gd d Z&dZ'y)z)test sparse matrix construction functionsN)array) assert_equalassert_assert_array_equalassert_array_almost_equal_nulp)raises)check_free_memory) csr_matrix coo_matrix csr_array coo_array csc_array bsr_array dia_array dok_array lil_array csc_matrix bsr_matrix dia_matrix lil_matrixsparrayspmatrix _construct)rand)csrcsccoobsrdialildokc tjj|}|j}t j|||||||SN)nprandom default_rngstandard_normal construct)mndensityformatdtyperngdata_rvss g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/sparse/tests/test_construct.py_sprandnr1s> ))   $C""H   Aq'65#x HHctjj|}|j}t j ||f|||||S)N)r+r,r-r. data_sampler)r$r%r&r'r( random_array)r)r*r+r,r-r.r4s r0_sprandn_arrayr6!sH ))   $C&&L  ! !1a&'&PU&)  FFr2c \eZdZejj deeee e e e gdZ ejj deeeeeegdZdZdZdZdZdZd Zd Zd Zd Zejj d ej>ej@gdZ!ejj dejDej@gdZ#ejj dejDej@gdZ$dZ%dZ&dZ'dZ(dZ)dZ*ejj deegdZ+dZ,dZ-dZ.ejj deegdZ/dZ0ejj dejbejdfd Z3d!Z4d"Z5ejjlejjnejjqd#d$Z9d%Z:d&Z;d'Zd*Z?d+Z@ejj d,d-d.eAjjd.gd/ZDejj d,d-d.eAjjd.gd0ZEd1ZFd2ZGd3ZHd4ZIy-)5TestConstructUtilsclscttjtd5|ddddy#1swYyxYw)NzEscipy sparse array classes do not support instantiation from a scalarmatchr)pytestr ValueErrorselfr9s r0 test_singleton_array_constructorz3TestConstructUtils.test_singleton_array_constructor+s6 ]] .   F   s .7c2|djdk(sJy)a1 This test is for backwards compatibility post scipy 1.13. The behavior observed here is what is to be expected with the older matrix classes. This test comes with the exception of dok_matrix, which was not working pre scipy1.12 (unlike the rest of these). rrDNshaper?s r0!test_singleton_matrix_constructorz4TestConstructUtils.test_singleton_matrix_constructor9s1v||v%%%r2c rtgdg}tgdgdg}tgdgdgdg}g}|j|ddddggf|j|dgdddggf|j|dgdddgdggf|j|dgddddggf|j|dgddddggf|j|dgddddggf|j|dgddddgddggf|j|dgddddgddggf|j|dgddddgddggf|j|dgdd gd gd gd gf|j|dgdd gd gd gd gf|j|dgddgdgdgdgf|j|ddgddgdgdgdgf|j|ddgdd gdgdgdgf|j|ddgddgdgdgdgdgdgdgf|j|gd ddgd!gd"gd#gd$gd%gdgf|j|gd&ddgd'gd(gd)gd*gd+gd,gf|j|gd-t|dt|dgd.gd/gd0gd1gdgf|D]\}}}}} t|d|k(r3||k(r.tt j ||j | tt j ||||j | tt j ||||fj | y)2NrD  rrDrJrKrLrDrrrrrJrrrrrKr)rrrrLrMrrrKrr)rrrrLr)rrrrrM)rDrrQrrJrrrrKrOrrrrDrPrrrrJrQrrO)rrrKrrr)rrrrLrr)rrrrrMr)rOrrrrrrrPrrrrrrrQrrrrZrrD)rOrVrrrr)rDrPrWrrr)rrJrQrXrr)rrrKrRrYr)rrrrLrSrrJrZ)rrrQrr)rUrrrRr)rrVrrrSrrrWrrrDrrrXrrrJrrrY)rZrDrJ)rrPrWrr)rDrrQrXr)rrJrrRrY)rrrKrrS)rappendlenrr(spdiagstoarray) r@diags1diags2diags3casesdor)r*results r0 test_spdiagszTestConstructUtils.test_spdiagsGs()(*+()+, faAu-. fqc1a1#/0 fqc1a1#qc34 fqc1a1Q%12 fqc1a1Q%12 fbT1a1Q%12 fqc1a1Q%178 fbT1a1Q%178 fqc1a1Q%178 fqc1a)Ii)HIJ fqc1a)Ii)HIJ fqc1a+k+)NOP fqeQGGG+DEF fr!faYy,KLM fqfa].;.;.;.;.; -=> ?  fh1/A0B0B0B0B0B /DE F  fiA1A1@1@1@1@ 0BC D  fj#fQi.#fQi.''''& () *#( L Aq!Q1Q4yA~!q&Y..q!4<<>G **1aA6>>@& I **1a!Q8@@BF K  Lr2c  tgd}tgd}tgd}g}|j|dddddggf|j|ddgdgddggf|j|ddgdgddgdggf|j|ddgdgdddggf|j|ddgdgdddggf|j|dd gdgd ddgdd ggf|j|ddgd gd ddgddggf|j|dd gdgd gdgdgdgf|j|dd gdgd gdgdgdgf|j|ddgdgdgdgdgdgf|j|dd gd gdgdgdgdgf|j|dd gdgdgdgdgdgf|j|dd gdgdgdgdgdgf|j|dd gd gdgdgdgdgf|j|dd gd gdgd gd!gdgf|j|ddgd"gdgd#gdgdgf|j|ddgd$gd%gd&gd&gd&gd&gd'gf|j|dd gd(gd%gd&gd&gd&gd'gd)gf|j|dd gdgd%gd&gd&gd'gd)gd*gf|j|dd gd gd%gd&gd'gd)gd*gd&gf|j|dd gdgd%gd'gd)gd*gd&gd&gf|j|dd gdgd%gd+gd,gd&gd&gd&gf|j|ddgd gd%gd-gd&gd&gd&gd&gf|j|dd |ddgdd gd.gd/gd)gd*gf|j|dd |dd gd dgd gd0gd1gd2gf|j|dd"|dd gd d(gd3gd4gd5gd6gd7gd8gd9gf|j|dd"||dd"ggd:d;gd<gd=gd>gd?gd@gf|j|dd |dd |ggdAdBgdCgdDgdEgdFgdGgdHgf|j|gdgddggf|j|dd |gdd gd.gd/gd)gd*gf|jtjgdIgdJgdd gd.gd'gdKgdLgf|jgdMgdNd.gdOgdMgdPgf|D]\}}}}|dQ|dQ|dQ|} tt j |||Rj || S|d|dk(sSt|ddTsct|dt|ks~tt j ||Uj || Sy)VNrIrNrTrDrrCrJrDrDrJrJrJrJrZrK)rKrLr[r\r])rrDrr)rrrJr)rrrrKrKrM)rrrrr)rDrrrr)rrJrrrr^)rrDrrr)rrrJrr)rrrrKr)rrrDrr)rrrrJr)rrrrrK)rrrrDr)rrrrrJrL)rrrrrDri)rMrKrrrrDrrrdr_r`rrDr)rrrJrrrDrKrK)rDrrOrarbrc)rOrO)rrrDrrr)rrrrJrr)rrrrrKr)rOrrrrrLrerfrgrMrM)rOrUrrr)rDrPrVrr)rrJrQrWr)rrrKrRrX)rrrrLrSrhrOrM)rrrOrr)rUrrrPr)rrVrrrQrjrkrlrDrJrK)rLrMrO)rLrJr)rrMrK)rDr}rD)rDrrZ)r}rDr)rrDr} offsetsrF)err_msg__len__r) rrmr$rr(diagsrphasattrrnmax) r@abcrtrurvrFrwrs r0 test_diagszTestConstructUtils.test_diagss/ / " " # & ' aeQ!./ q!ugsFaSE23 q!ugsFaS!I67 q!ugsFaUG45 q!ugsFaUG45 q!ugsFaUAa5M:; q!ugrdFaUAa5M:; q!ugsFYy,KLM q!ugsFYy,KLM q!ugtVk+k-RST q!ugtVk+k-RST q!ugsF[[,QRS q!ugsF[[,QRS q!ugsF[[,QRS q!ugsF[[,QRS q!ugsF[[,QRS q!ugtVggggg-VWX q!ugtVggggg-VWX q!ugtVggggg-VWX q!ugtVggggg-VWX q!ugsFWWWWW,UVW q!ugsFWWWWW,UVW q!ugsFWWWWW,UVW q!uQrUmaUFWWW4MNO q!uQrUmbVVi )5TUV q!uQrUmaVVm5B5B5B5B5B 6DE F  q!uQq!uox/4>3@A B$) . Aq%Qqe1UIQvj9G AUCKKM 2aE!H$AaD),!IU+Y__Q:BBDf%,. .r2ctgd}ttj|j t j |y)NrI)rrr(rrpr$diagr@rs r0test_diags_defaultz%TestConstructUtils.test_diags_defaults0 / "Y__Q'//12771:>r2cdtgdgdg}tttj|y)NrI)rJrKrLrMrO)r assert_raisesr>r(rrs r0test_diags_default_badz)TestConstructUtils.test_diags_default_bads! ?O4 5j)//15r2cdtgd}tgd}tgd}g}|j|ddgddf|j|dd||ddggdd f|j|dd ||ddggd d f|j|dd ||ddggd df|jggd df|jd gdgdf|j|gddf|D](\}}}tttj |||*tt tj dggdgy)NrIrNrTrrCrLrKrgrrJrhrrDrLrLrr)rrmrr>r(r TypeError)r@rrrrtrurvrFs r0test_diags_badz!TestConstructUtils.test_diags_bads4 / " " # & ' q!ugq&)* q!uQq!uox89 q!uQq!uoy&9: q!uQq!uoy$78 b)T*+ qcB4() qc1d^$  RKAq% *iooq!5 Q R iD6(QCHr2c tjjd}dD]J}d|dzz|jddz}tj| dz|dz }|j ||d|}|Dcgc]}|j |t|z !}}tj||}tt||D cgc]\}} tj|| c} }} t|j| t|dk(stj|d|d}tj|d|d} t|j| Mycc}wcc} }w)Ni)rDrJrKrLrMrSrDrJrrSr)r$r% RandomStaterandintarangeshufflerabsr(rsumziprrrprn) r@r.n_diagsr*rq diagonalsmatxj dense_mats r0test_diags_vs_diagz%TestConstructUtils.test_diags_vs_diags> ii##D)* IGGQJQ!33Aii1ac*G KK hw'G7>?!!c!f*-?I?//)W=Cs9g7NOtq!RWWQ]OPI *3;;=) D7|q ooilGAJGGGIaL'!*= .s{{}iH# I@Ps 8$E1 E6 ctjdgdgdt}t|jtt|j ddgddggy)Ng@rr|)rrFr-rJ)r(rintrr-rpr@rs r0test_diags_dtypez#TestConstructUtils.test_diags_dtypesE OOSEA3fC HQWWc"QYY[Aq6Aq6"23r2cttd}tddD]V}ttj||j tj|g|gj Xy)NrMrrOr)listrangerr(rrp)r@ruks r0test_diags_one_diagonalz*TestConstructUtils.test_diags_one_diagonals` qNr1 FA A6>>@"!qc:BBD F Fr2cZtjg}t|jdy)Nrr)r(rrrFrs r0test_diags_emptyz#TestConstructUtils.test_diags_emptys OOB QWWf%r2identityct|djdggt|djddgddgg|ddd}t|jtjdt|jdt D]E}|d|}t|j|t|jgd gd gd gGy NrDrJrrKint8r)r-r,r,rrrrrpr-r$r,sparse_formats)r@rIfmts r0 test_identityz TestConstructUtils.test_identitysXa[((*aSE2Xa[((*aUAa5M: QfU 3QWWbhhv./QXXu%! AC3'A 3 ' www&? @ Ar2eyec t|ddjdggt|ddjgdgdgt|ddjddgddgddggt|ddjgdgdgdgt|ddd jtjdd D]}d D]}t d d D]}|dkDr||kDs|dkr>t ||kDr0t jtd 5||||dddPt||||jtj|||||k(st|||jtj|||y#1swYxYw)NrDrJrKrrrrint16r-r~rrOzOffset.*out of boundsr;r) rrpr-r$rrr=rr>r)r@rr)r*rs r0test_eyezTestConstructUtils.test_eye sS1X%%'1#/S1X%%'''):;S1X%%'1Q%1qe)<=S1X%%'''')BCS17+11288G3DE A r!AA!a%QUs1vz#]]&.E+ 1N++ %1N224FF1a1-6( #A 3 3 5 "q!q 1)  ++s " F5 5F> ct|djdggt|djddgddgg|ddd}t|jtjdt|jdt D]E}|d|}t|j|t|jgd gd gd gGyrr)r@rrrs r0 test_eye_onezTestConstructUtils.test_eye_oneDsSV^^%u-SV^^%1qe}5  .QWWbhhv./QXXu%! ACAc"A 3 ' www&? @ Ar2cttjdtsJttjdtrJy)NrK) isinstancer( eye_arrayrrr@s r0test_eye_array_vs_matrixz+TestConstructUtils.test_eye_array_vs_matrixRs9)--a0':::immA.8888r2cvg}|jtdgg|jtdgg|jtdgg|jtdgg|jtdgdgg|jtddgg|jtddgddgg|jtddgddgg|jtgd gd g|jtddgddgd dgg|jtgd gd gdg|jtgdg|jtgdgdg|D]}t|}|D]}t|}tj||}t ddD]\}t j|||}t|j|t|j|t|tr\J|d}|d}t|}t|}tj||}t D]\}t j|||}t|j|t|j|t|tr\Jt jt|t|}t|j|t|j|t|tsJy)NrrZrLrSrDrJrKrMrrJirQrrXrO)rMrLrLr)rOrrQ)rrDrrJrrMrQ)?g?rg @)rg@rrrrd)rmrr r$kronrr(rr,rrprrr r) r@rtrcarcbexpectedrrws r0 test_kronzTestConstructUtils.test_kronVs UQC5\" URD6]# UQC5\" URD6]# UQC9%& UQqE7^$ UQqE1Q%=)* UQqE1Q%=)* UHX./0 UQqE1Q%1./0 UGGG456 UO,-. U.{;<= 7A1B 7q\771a=)!A.7C&^^B3?F 4&v~~'7B%fg666 7 7 7 "I "I q\ q\771a=! /C^^B37F  , v~~/ :fg. ..  / 1 z!}SIV]]C(6>>+X6&(+++r2ctjtd5tjdgdggt ddgdddtjtd5tjt ddgdgdggdddtjdgdggddgy#1swYoxYw#1swY2xYw)Nrequires 2D inputr;rrD)r=rr>r(rr rs r0test_kron_ndim_exceptionsz,TestConstructUtils.test_kron_ndim_exceptionss ]]:-@ A : NNQC!:y!Q'8 9 : ]]:-@ A : NN9aV,sQCj 9 : aSzAq6*  : : : :s&B0%&B<0B9<Ccd}tjdgd|f|dz }tjdg|dfd|z }tj||tj||y)NirD)rFr)r( diags_arrayr)r@r*rrs r0test_kron_largez"TestConstructUtils.test_kron_larges_   ! !1#aVQqS A  ! !1#aVQqS Aq!q!r2c g}|jtdgg|jtdgg|jtdgg|jtdgg|jtddgddgg|jtddgddgg|jtgd gd gd g|jtgd gd gdg|D]}|D]}tjt |t |j }t jt j|jd|t j|t j|jdz}t||tjttj }t|y)NrrZrLrSrDrJrKrMrr)rrKrr)rrMrZ)rLr}rQ) rmrr(kronsumr rpr$rrrFrr )r@rtrrrwrs r0 test_kronsumzTestConstructUtils.test_kronsums UQC5\" URD6]# UQC5\" URD6]# UQqE1Q%=)* UQqE1Q%=)* UHXg678 UGHX678 5A 5"**9Q<1FNNPGGBFF1771:$6: gga );<="684  5 5"":a=*Q-@HHJ68,r2ctjtd5tjdgdggt ddgdddtjtd5tjt ddgdgdggdddtjddgddggdgy#1swYpxYw#1swY3xYw)Nrr;rrDrJ)r=rr>r(rr rs r0test_kronsum_ndim_exceptionsz/TestConstructUtils.test_kronsum_ndim_exceptionss ]]:-@ A =   sQCj)QF*; < = ]]:-@ A =   iA/1#s < = Aq6Aq6*QC0  = = = =s&B1%&B=1B:=Ccoo_clsc |ddgddgg}|ddgg}tddgddgddgg}ttj||gj |ttj||gt j jt j ttj|j|jgj |ttj|j|jgj |tj|j|jgdt j }t|jt j t|jjt jt|jjt jttj|j|jgj |tj|j|jgd t j }t|jt j t|jjt jt|jjt jy) NrDrJrKrLrMrOrr)r,r-r)rrr(vstackrpr$float32r-todoktocsrindicesint32indptrtocsc)r@rABrrws r0 test_vstackzTestConstructUtils.test_vstacks aUAa5M " aUG 1a&a&a&"# Y%%q!f-557BY%%q!fBJJ?EEZZ ! Y%%qwwy!'')&<=EEGRY%%qwwy!'')&<=EEG !!1779aggi"8).bjjBV\\2::.V^^))2884V]](("((3Y%%qwwy!'')&<=EEG !!1779aggi"8).bjjBV\\2::.V^^))2884V]](("((3r2c"tgdgdgdg}|jjtj|_|j jtj|_t j||gjjtjk(sJt j||gjjtjk(sJtgdgdgdg}|jjtj|_|j jtj|_t j||gjjtjk(sJt j||gjjtjk(sJtgdgdgdg}td|jD|_ t j||gjdjtjk(sJt j||gjdjtjk(sJy)Nrrc3ZK|]#}|jtj%ywr#astyper$int64.0cos r0 zITestConstructUtils.test_vstack_maintain64bit_idx_dtype..@288,@)+r)r rrr$rrr(rr-hstackrr tuplecoordsr@Xs r0#test_vstack_maintain64bit_idx_dtypez6TestConstructUtils.test_vstack_maintain64bit_idx_dtypes y)Y7 888??288,II$$RXX. A'..44@@@A'..44@@@ y)Y7 888??288,II$$RXX. A'..44@@@A'..44@@@ y)Y7 8@qxx@@A'..q177288CCCA'..q177288CCCr2cddgddgg}ddgg}ttjt|t|gtsJttjt|t |gtsJttjt |t|gtsJttjt |t |gt sJyNrDrJrKrLrMrO)rr(rr rr rr@rrs r0test_vstack_matrix_or_arrayz.TestConstructUtils.test_vstack_matrix_or_arraysUAa5MUG)**IaL)A,+GH'RRR)**IaL*Q-+HI7SSS)**JqM9Q<+HI7SSS)**JqM:a=+IJHUUUr2ctgdgdg}tgd}tgd}tj|t j gdgj dk(sJtj|t j dgggj dk(sJtj||gj dk(sJtj||gj dk(sJtj||gj d k(sJtj||gj dk(sJtj||gj dk(sJtj||gj dk(sJtj||gj dk(sJtjtd 5tj|t j ddggdddtjtd 5tj|t j ddggdddy#1swYZxYw#1swYyxYw) Nrrrrr)rDrL)rDrO)rJrK)rJrOzincompatible row dimensionsr;zincompatible column dimensions) r r r(rr$rrFrr=rr>)r@arrarr1darr1dcoos r0test_vstack_1d_with_2dz)TestConstructUtils.test_vstack_1d_with_2dsI./)$Y'bhhy&9 :;AAVKKK1# 89??6III/55???/55???c +11V;;;/55??? 1288FBBBh066&@@@ 1288FBBB ]]:-J K 6   c288QF#34 5 6 ]]:-M N 6   c288QF#34 5 6 6 6 6 6 6s-I -I II"c|ddgddgg}|dgdgg}tgdgdg}ttj||gj |ttj||gt j jt j ttj|j|jgj |ttj|j|jgj |ttj|j|jgt j jt j ttj|j|jgj |ttj|j|jgt j jt j y) NrDrJrKrLrMrOrDrJrMrKrLrOr) rrr(rrpr$rr-rrr)r@rrrrs r0 test_hstackzTestConstructUtils.test_hstacks aUAa5M " aS!I )#%&Y%%q!f-557BY%%q!fBJJ?EEZZ ! Y%%qwwy!'')&<=EEGRY%%qwwy!'')&<=EEG Y%%qwwy!'')&<,.JJ88=ZZ ! Y%%qwwy!'')&<=EEG Y%%qwwy!'')&<,.JJ88=ZZ !r2cddgddgg}dgdgg}ttjt|t|gtsJttjt|t |gtsJttjt |t|gtsJttjt |t |gt sJyr)rr(rr rr rrs r0test_hstack_matrix_or_arrayz.TestConstructUtils.test_hstack_matrix_or_arraysUAa5MS!I)**IaL)A,+GH'RRR)**IaL*Q-+HI7SSS)**JqM9Q<+HI7SSS)**JqM:a=+IJHUUUr2 block_arrayc tddgddgg}tdgdgg}tdgg}td}tgd gd gd g}t|||gd|ggj|t d t j }t||j|jg||jggj|t||j|jg|j|jggj|tgdgdgd g}t||dgd|ggj|t||j|jjg||jggj|t||j|jjg|j|jggj|t dt j }tddgddgddgg}t|d|g|dggj|t||jj|jg|j|ggj|t||jj|jg|j|jggj|t jd}t|ddggj|t|d|g|dggj|tdgg}t|d|g|dggj|tt5} ||g|ggddd jdtt5} ||jg|jggddd| jdtt5} ||jg|jggddd| jdtt5} |||ggddd| jdtt5} ||j|jggddd| jdtt5} ||j|jggddd| jdy#1swYxYw#1swYNxYw#1swY xYw#1swYxYw#1swYxYw#1swYZxYw)NrDrJrKrLrMrOrPrrr)rrrPr{r)rDrJr)rKrLrrCrz.Got blocks\[1,0\]\.shape\[1\] == 1, expected 2z"incompatible dimensions for axis 1z4Mismatching dimensions along axis 1: ({1, 2}|{2, 1})z.Got blocks\[0,1\]\.shape\[0\] == 1, expected 2z4Mismatching dimensions along axis 0: ({1, 2}|{2, 1})z"incompatible dimensions for axis 0)r rrrpr r$rrrTemptyrr>r<) r@rrrCDrEZexcinfos r0test_block_creationz&TestConstructUtils.test_block_creation&s 1v1v& ' sA3i  se  f )##%& [1a&4)!45==?J fBHH -[1779aggi"8#$aggi."233:79  [1779aggi"8#$779aggi"8":;;B79 )##%& [1d)dAY!78@@BHM[1779acciik":#$aggi."233:79  [1779acciik":#$779aggi"8":;;B79  fBHH -1a&a&a&"# [4)aY!78@@BHM[13399; ":#$779a."233:79  [13399; ":#$779aggi"8":;;B79 88F#[4,088:HE[4)aY!78@@B 1#<[4)aY!78@@B : & $' !qc # $ GH : & 4' !'')qwwyk2 3 4 ;< : & 4' !'')qwwyk2 3 4 MN : & "' !Q ! " GH : & 2' !'')QWWY/0 1 2 MN : & 2' !'')QWWY/0 1 2 ;<- $ $ 4 4 4 4 " " 2 2 2 2sH/ V $)V5)V& V3:(V? (W  VV#&V03V<?W Wc&tj}ddgddggdgdgg}}t|t|}}t|d|g|dggdtsJt|d|g|dggdtsJt|||ggdtsJy) NrDrJrKrLrPrMrr)r(rr rr)r@blockFlGlFmGms r0test_block_return_typez)TestConstructUtils.test_block_return_typets%% a&!QA3*BBBB%$b$Z 8GQQQ%$b$Z 8GQQQ%"b 597CCCr2cPtj}ddgddggdgdgg}}t|t|}}t|t|}}t |||ggdt sJt |||ggdt sJt |d |g|d ggdt sJt |d |g|d ggdt sJt |d |g|d ggdt sJt |d |g|d ggdt sJt |||ggdt sJt |||ggdt sJt |||ggdt sJt |||ggdt sJt |||ggdt sJt |||ggdt sJt ||j|jggd t sJt ||j|jggd t sJt ||j|jggdt sJt ||j|jggdt sJt |||ggdt sJt ||j|ggdt sJt ||j|ggdt sJt |||ggd t sJy ) z2This can be removed after sparse matrix is removedrDrJrKrLrPrMrrNr)r(bmatr r rrrr)r@r&r r!r"r#FaGas r0test_bmat_return_typez(TestConstructUtils.test_bmat_return_types~~a&!QA3*BBBB2 " B$Rz%8'BBB$Rz%8(CCC$r RJ7FPPP$r RJ7FPPP$r RJ7FQQQ$r RJ7FQQQ$Rz%8'BBB$Rz%8'BBB$Rz%8'BBB$Rz%8(CCC$Rz%8'BBB$Rz%8(CCC$RXXZ 89%H'RRR$RXXZ 89%H(SSS$RXXZ 89%H'RRR$RXXZ 89%H(SSS$Rz%8'BBB$R 01%@'JJJ$R 01%@(KKK$Rz%8(CCCr2z!Can't create large array for testc tdd}ttj||ft}|j }t j||fdd}ttjtjtj|j|t|jjtj t|jjtj y)z6 test for indptr overflow when concatenating matrices i0uirrF)axisreturn_spmatrixN)r r r$onesboolcopyr(_compressed_sparse_stackrallequaldiffrrrr-r)r@r*rrrs r0test_concatenate_int32_overflowz2TestConstructUtils.test_concatenate_int32_overflows %  bggq!fD1 2 FFH  . .1vA?D F rxx 11567QYY__bhh/QXX^^RXX.r2cNtddgddgg}tdgdgg}tdgg}tgdgd gd gd gd g}tj|||f}t |j ||j d jtjk(sJy)z basic test for block_diag rDrJrKrLrMrOrP)rDrJrr)rKrLrr)rrrMr)rrrOr)rrrrPrN) r rr( block_diagrrprr-r$r)r@rrrrABCs r0test_block_diag_basicz(TestConstructUtils.test_block_diag_basics !uaUm $ sA3i  se ,&&&& () ""Aq!9-S[[]H-zz!}""bhh...r2ctgdgdgdg}td|jD|_tj||gjdj t jk(sJy)Nrrc3ZK|]#}|jtj%ywr#rrs r0rz?TestConstructUtils.test_block_diag_idx_dtype..rrr)r rrr(r6r-r$rrs r0test_block_diag_idx_dtypez,TestConstructUtils.test_block_diag_idx_dtypes[ y)Y7 8@qxx@@##QF+2215;;rxxGGGr2cttjddgdgjgdgdgt gd}t ddg}ttj||gjgdgd gy ) z) block_diag with scalar and 1d arguments rJrKrL)rJrKr)rrrL)rDrrKr)rDrrKrr)rrrrrLN)rr(r6rpr rs r0test_block_diag_scalar_1d_argsz1TestConstructUtils.test_block_diag_scalar_1d_argssv 9//!A ;CCE%y1 3 g  qe 9//A7??A+_= ?r2cttjddggjt ddggttjddgggjt ddggttjdgdgggjt dgdggttjdgjt dggy)z block_diag with one matrix rDrN)rr(r6rprrs r0test_block_diag_1z$TestConstructUtils.test_block_diag_1sY))Aq6(3;;=QF8_ &Y))QF8*5==?QF8_ &Y))QC!:,7??AQC!:& ( Y))1#.668QC5\ #r2c tgdgd}tddggd}ttj||gj t gdgdgtd gd gd ggd }tdgdggd }ttj||gj t d dgd dgd dgddgddggy)z block_diag with sparse arrays r)rDrKrErLrMr{)rDrJrKrr)rrrrLrMrDrJrK)rKrDrzrN)r rr(r6rprrs r0test_block_diag_sparse_arraysz0TestConstructUtils.test_block_diag_sparse_arrayss yk 0 1vhf -Y))1a&199;O_=> @ sQC!oV 4 sQCj /Y))1a&199;QFQFQFQFQFCD Fr2cttgdgtgdg}}ttj||gt sJttj||gt sJttj||gt sJttj||gt sJy)Nr)rJrKrL)r r rr(r6rrrs r0test_block_diag_return_typez.TestConstructUtils.test_block_diag_return_types)%z9+'>1)..1v6@@@)..1v6@@@)..1v6@@@)..1v6AAAr2c XttfD]tjtjtj tj tjtjtjfD]P}ddd|}t|j|t|jdt|jdRdddd}t|jtjdddtjjd}t!|j"|j"t!|j$|j$t!|j&|j&dD]L}dd| }t|jt)|tj*|jzNd D]#}dd| }t|j,|%t/t0fd t/t0fd y)NrMrS皙?)r+r-)rMrS)r+r.)grErg?r+)rrrr rcdddS)NrMrSg?fsr0z9TestConstructUtils.test_random_sampling..sa2smr2cdddS)NrMrSgrIrJsr0rLz9TestConstructUtils.test_random_sampling..sa2tnr2)sprandr1r$rfloat64 longdoublerr complex64 complex128rr-rFnnzr%r&rdatarowcolrprodr,rr>)r@trx1x2r+rrKs @r0test_random_samplingz'TestConstructUtils.test_random_samplings! >Ajj"**bmmhh",, G 'aS2QWWa(QWWg.QUUA&  '1b#40B 2:: .1b#299+@+@+FGB rww 0 rvvrvv . rvvrvv ./ EaW-QUUC"''!''2B(B$CD E4 ,aC(QXXs+ , *&; < *&< =5 >r2r.NrFc0tdddtj|}ttjtj d|j ttjtj |j dyNrSrr+r-r.rrD)rNr$rOrr1 less_equalrTr@r.rs r0 test_randzTestConstructUtils.test_randsZ 2r3bjjc Br}}Q/01r}}QVVQ/01r2c\tdddtj|}ttjtj |j dttjtj d|j tdddtj|}ttjtj |j dttjtj d|j yr])r1r$rOranylessrTr6ras r0 test_randnzTestConstructUtils.test_randns RS  Drwwqvvq)*+rwwq!&&)*+ 2r3bjjc Jrwwqvvq)*+rwwq!&&)*+r2ctjdddtjddtjddtjddy)NrSrurrSrSrSrSrSrSrSrSrSrS)r(r%r5rs r0test_random_accept_str_dtypez/TestConstructUtils.test_random_accept_str_dtype&sG Rs+xs3|3733?r2ctjddtd}|jdk(sJtjddtd}|jdk(sJtjddtd}|jdk(sJy)N)rrLg333333?r)r+r- random_staterir_rj)r(r5rrF)r@r s r0'test_random_array_maintains_array_shapez:TestConstructUtils.test_random_array_maintains_array_shape.s$$VSRSTyyF"""$$\3cqQyyL((($$%93c)*,yy0000r2ctjd}|jdjtj k(sJy)Nrhr)r(r5rr-r$r)r@rs r0test_random_array_idx_dtypez.TestConstructUtils.test_random_array_idx_dtype:s2  " "8 ,xx{  BHH,,,r2c@tjddd}t|jdtjdd}t|jdt |t sJd}tj|d}t|jdtjd d }t|jd t |t sJd }tj|d }t|jdy)NrSgx&1?rGrWrh)rrg(Rs?s"((R@ ]00226 --hG \//1"5,000 --eZH \//1$7!--.>P \//1$7,000% --eZH \//1#6r2)J__name__ __module__ __qualname__r=mark parametrizerr r rrrrrArr r rrrrGrxrrrrrrrrr(rrrrrrrrrrrrrrrr rrr&rrr$r)xslow thread_unsafexfail_on_32bitr4r8r;r=r?rArCr[r$r%r&rbrfrkrnrprwrIr2r0r8r8)s [[U9i9i%  [[UJ J %& &6LpL.\?6I&I64 F & [[Z)*<*Q>Q)RS AT A [[UY]]I4G4G$HI!J!F [[UY]]I4G4G$HI AJ A9.,`+-01 [[YY(?@4A4:D&V6. [[YY(?@!A!.V [[]Y^^Y=R=R,STK=UK=Z D"DH [[ [[ [[ CD /E // H ? # FB>< [[UT41F1Ft1L$MN2O2  [[UT41F1Ft1L$MN ,O ,@ 1-7r2r8ctjdd}ttj|j tj |ttj|dj tj |dttj|ddj tj |ddd dd ftjtd 5tjtjdddd dddy#1swYyxYw) z7Tests of diags_array that do not rely on diags wrapper.rDrMrJrrrrNrLz.*out of boundsr;rE) r$rrr(rrprr=rr>r)rs r0test_diags_arrayrWs 99Q?Dy,,T2::rsb/<< *3333333< IFk 7k 7\:r2