L i=] D dZddlZddlZddlZddlZddlZddlZddlZddlmZ ddl Z ddl m Z m Z mZmZmZmZmZmZmZmZmZmZmZddlZddlmZmZmZmZmZm Z m!Z!ddl"m#Z#ddl$m%Z%ddl&Z'ddl(m)Z)ddl(m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>dd l?m@Z@mAZAmBZBmCZCmDZDdd lEmFZFmGZGmHZHdd lImJZJd ejvZLd|dZMdZNeOdgZPdZQe!ZReRje# d}dZTdZUGddZVGddZWGddZXGddZYGddZZGdd Z[Gd!d"Z\ejjGd#d$Z_Gd%d&Z`Gd'd(ZaGd)d*Zbejd+ZdGd,d-ZeGd.d/ZfGd0d1ZgGd2d3ZhGd4d5ZiGd6d7Zjd~d8Zk dd9ZlGd:d;elZmemjGd<d=eYemZoeojGd>d?elZpepjGd@dAeYepZqeqjGdBdCelddDZrGdEdFeYerZserjesjGdGdHeldIZtGdJdKeYetZuetjeujGdLdMeldddddNZvGdOdPeYevZwevjewjGdQdReldddddddSZxGdTdUeYexZyexjeyjGdVdWelddddddXZzGdYdZeYezZ{ezje{jd[Z|Gd\d]Z}Gd^d_e}Z~Gd`dae~ZGdbdceemZGdddeeeoZGdfdgeepZGdhdieeqZGdjdke~ezZGdldmee{ZGdndoe}evZGdpdqeewZdrZGdsdtZGdudvZejjejjGdwdxeZejjGdydzeZd{Zy)z Test functions for sparse matrices. Each class in the "Matrix class based tests" section become subclasses of the classes in the "Generic tests" section. This is done by the functions in the "Tailored base class for generic tests" section. N)raises) arangezerosarraydotasarrayvstackndarray transposediagkroninf conjugateint8) assert_equalassert_array_equalassert_array_almost_equalassert_almost_equalassert_assert_allclosesuppress_warnings)ComplexWarning) GenericAlias) csc_matrix csr_matrix dok_matrix coo_matrix lil_matrix dia_matrix bsr_matrix csc_array csr_array dok_array coo_array lil_array dia_array bsr_arrayeyeissparseSparseEfficiencyWarningsparrayspmatrix)_formats)supported_dtypes isscalarlikeget_index_dtypeasmatrixmatrix)spluexpminv) decoratorz google.colabc8||n|d|}t||v|y)Nz not found in )msg)r)member collectionr8messages b/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/sparse/tests/test_base.py assert_inr=5s'_cVJnZN*SG Fj g.c bt|j|jk(t||fi|yN)rdtyper)xykwargss r<assert_array_equal_dtyperE:s& AGGqww q!&v&r>dokcpd}||D](}||D]}tj||sy*y)Ncg}|jjD]?}t|tjtj zs/|j |A|Sr@)__dict__values isinstancenpr genericappend)rBarraysas r<_underlying_arraysz3sparse_may_share_memory.._underlying_arraysDsO""$ !A!RZZ"**45 a  ! r>TF)rLmay_share_memory)ABrQrPbs r<sparse_may_share_memoryrVAsI  "#A& A""1a(  r>Fctjdntj|rd dn8d fd n/|r'tjjdd fd nd fd fdtfd }|S) z Monkeypatch the maxval threshold at which scipy.sparse switches to 64-bit index arrays, or make it (pseudo-)random. c*t|||}ttj|jtjtj jt |tj k(xs|tjk(|Sr@)r0rrLiinfomaxint32rintc)rOmaxvalcheck_contentstps r<new_get_index_dtypez4with_64bit_maxval_limit..new_get_index_dtypehs] @B "))288BHH+=+A+A B B"((N3bBGGm 4Ir>cSr@)rOr^r_ fixed_dtypes r<raz4with_64bit_maxval_limit..new_get_index_dtypens  r>)seedchtjtjfjdS)N)rLr\int64randint)rOr^r_counters r<raz4with_64bit_maxval_limit..new_get_index_dtypess$HHbhh'(:; ;r>ctj}||kDrtj}|D]}tj|}|jtjkDs6|rj|j dk(rHtj |jtjr,|j}|j}| k\r|krtj}|SNr) rLr\rirrAsize issubdtypeintegerr[min)rOr^r_rAarrminval maxval_limits r<raz4with_64bit_maxval_limit..new_get_index_dtypevsHHE!L(HHE %jjo99rxx'%88q=$]]399bjjA%(WWYF%(WWYF%,66\;Q (HHE %Lr>c~|jkDr td|jtjS)Nzdowncast limited)r[AssertionErrorastyperLintp)rrdowncast_maxvals r<new_downcast_intp_indexz8with_64bit_maxval_limit..new_downcast_intp_indexs0wwy?*$%788::bgg& &r>c Lg}tjjtjjtjjtjj tjj tjjtjjtjjtjjtjjg } |D]]}|j|dt|ddft|d 2|j|dt|ddft|d _||i||D]\}}}| t|||S#|D]\}}}| t|||wxYw)Nr0downcast_intp_index)scipysparse_bsr_coo_csc_csr_dia_dok_lil_sputils _compressed _constructrNgetattrsetattr) funcrPkwbackupmodulesmodnameoldfuncryrzras r<decoz%with_64bit_maxval_limit..decosl<<$$ell&7&79J9J<<$$ell&7&79J9J<<$$ell&;&;<<++U\\-D-DF 0 Q s$5&s,=tDFG.0CD".MM3(=#*30Et#L#NOC!68OP Q>b>&, 0"T7&Cw/ 0f 0"T7&Cw/ 0s3F55F F#F#)rcNF)rLrirandom RandomStater6) rtrrdry assert_32bitrrkrzras ` `` @@@r<with_64bit_maxval_limitrYsxx| xx -      ))''T'2 < *" ' 00* Kr>cpt|tjs t|r|S|j Sr@)rKrLr r/toarray)rPs r<rrs'!RZZ LO 99;r>c<eZdZdZdZdZdZdZdZdZ dZ y ) BinopTestercyNmatrix on the rightrcselfmats r<__add__zBinopTester.__add__$r>cyrrcrs r<__mul__zBinopTester.__mul__rr>cyrrcrs r<__sub__zBinopTester.__sub__rr>cyNmatrix on the leftrcrs r<__radd__zBinopTester.__radd__#r>cyrrcrs r<__rmul__zBinopTester.__rmul__rr>cyrrcrs r<__rsub__zBinopTester.__rsub__rr>cyrrcrs r< __matmul__zBinopTester.__matmul__rr>cyrrcrs r< __rmatmul__zBinopTester.__rmatmul__rr>N) __name__ __module__ __qualname__rrrrrrrrrcr>r<rrs*%%%$$$%$r>rcNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) BinopTester_with_shapec||_yr@_shape)rshapes r<__init__zBinopTester_with_shape.__init__s  r>c|jSr@rrs r<rzBinopTester_with_shape.shapes {{r>c,t|jSr@)lenrrs r<ndimzBinopTester_with_shape.ndims4;;r>cyrrcrs r<rzBinopTester_with_shape.__add__rr>cyrrcrs r<rzBinopTester_with_shape.__mul__rr>cyrrcrs r<rzBinopTester_with_shape.__sub__rr>cyrrcrs r<rzBinopTester_with_shape.__radd__rr>cyrrcrs r<rzBinopTester_with_shape.__rmul__rr>cyrrcrs r<rzBinopTester_with_shape.__rsub__rr>cyrrcrs r<rz!BinopTester_with_shape.__matmul__rr>cyrrcrs r<rz"BinopTester_with_shape.__rmatmul__rr>N)rrrrrrrrrrrrrrrcr>r<rrs9 %%%$$$%$r>rc0eZdZdZdZdZdZdZdZy)ComparisonTestercy)Neqrcrothers r<__eq__zComparisonTester.__eq__r>cy)Nnercrs r<__ne__zComparisonTester.__ne__rr>cy)Nltrcrs r<__lt__zComparisonTester.__lt__rr>cy)Nlercrs r<__le__zComparisonTester.__le__rr>cy)Ngtrcrs r<__gt__zComparisonTester.__gt__rr>cy)Ngercrs r<__ge__zComparisonTester.__ge__rr>N) rrrrrrrrrrcr>r<rrs r>rcNeZdZdZeZeZeZ e Z e Z eZeZeeZdZdZdZy) _MatrixMixinz8mixin to easily allow tests of both sparray and spmatrixct|jjdj|jdgddft|jjdj|jdgddfyN)rdatspgetrowrdatrs r< test_getrowz_MatrixMixin.test_getrowsd4::,,Q/779488QCF;KL4::,,R088:DHHbT1Wct|jjdj|jdddgft|jjdj|jdddgfyr)rrgetcolrrrs r< test_getcolz_MatrixMixin.test_getcolsd4::,,Q/779488AsF;KL4::,,R088:DHHQWc|jtddjdd}t|j j t j dt|j j|jt|jdj j t j dt|jd j j t j d |j }|j }t||uy) Nr\rArhfloat64int16float32 complex128) spcreatorrreshaperasfptyperArLformatrwr)rrSrTCs r< test_asfptypez_MatrixMixin.test_asfptypes NN6!'2::1Q? @QZZ\''))<=QZZ\((!((3QXXg&//177)9LMQXXl+446<TU JJL JJLQr>N)rrr__doc__r bsr_containerr coo_containerr csc_containerr csr_containerr dia_containerr dok_containerr lil_container staticmethodr1asdenserrrrcr>r<rr sCBMMMMMMM8$GOO r>rceZdZdZeZeZeZ e Z e Z eZeZeZeZedZdZdZdZdZdZdZd Zd Zd Z d Z!d Z"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0e1jdjfdZ4dZ5dZ6dZ7d Z8d!Z9d"Z:d#Z;d$Zd'Z?d(Z@d)ZAd*ZBd+ZCd,ZDeEd-ZFeEd.ZGeEd/ZHeEd0ZId1ZJd2ZKeEd3ZLeEd4ZMd5ZNd6ZOd7ZPd8ZQd9ZRd:ZSd;ZTd<ZUd=ZVd>ZWd?ZXd@ZYdAZZdBZ[dCZ\dDZ]dEZ^dFZ_dGZ`dHZadIZbdJZcdKZddLZedMZfdNZgdOZhdPZidQZjdRZkdSZldTZmdUZndVZodWZpdXZqdYZrdZZsd[Zty\)] _TestCommonz6test common functionality shared by all sparse formatsctgdgdgdgd|_|j|j|_t t j |j|_i|_ i|_ |jD]a}|jj||j|<|j|jj||j|<ct|j|jtjt|jj|jtjjt!|jt"|_y)N)rrrrh)rrrr)rrhrrd)rrrrsetr.union math_dtypeschecked_dtypes dat_dtypes datsp_dtypesrwrrLrrrKr+ is_array_test)clsrAs r< init_classz_TestCommon.init_class8s|\BCHMM#''* !!1288I'' KE$'GGNN5$9CNN5 !&)mmCGGNN54I&JC  U # K SWWcnnRZZ89SYY&&(%%bjj199; ='syy':r>cfd}ttrtjdjD] }|| y)Ncj|}ttt|t j dggt j dgg y)Nrr)r assert_raises ValueErrorboolrr)rArrs r<checkz$_TestCommon.test_bool..checkQsL%%e,E *dE 2 DNNQC5) * u-- .r>z%Cannot create a rank <= 2 DOK matrix.)rKTestDOKpytestskiprrrrAs` r< test_boolz_TestCommon.test_boolPs= / dG $ KK? @(( E %L r>ctddgg}|j|}tdD] }||z}||z}t||j y)NTFrX)rrrangerr)rrr_s r<test_bool_rolloverz_TestCommon.test_bool_rollover]sYdE]O$s#r AEME)C  3 0r>ct}|jt|tfd}jj dvrt jdjD] }|| y)Ncz j|} j|}|j}d|dddf< j|} j |} j |} j |} j|}t||k(||k(jt||k(||k(jt||k(||k(jt||k(||k(jt||k(||k(jt||k(||k(t|dk(|dk(jt|dk(|dk(jt|tjk(|tjk(jyNrr) rrcopyrrrrrrErrLnan) rArrdat2datsp2datbsrdatcsrdatcscdatlilrs r<rz"_TestCommon.test_eq..checkls//%(C%%e,E88:DD1I^^D)F'',F'',F'',F'',F %SD[5F?2K2K2M N $SD[6V3C2L2L2N O $SD[6V3C2L2L2N O $SD[6V3C2L2L2N O $SD[6V3C2L2L2N O $SF]FcM B $SAX /C/C/E F $SAX /C/C/E F $SBFF]&+rvvo%>%>%@ Br>bsrcsccsr8Bool comparisons only implemented for BSR, CSC, and CSR. rfilterr* sup_complexrrrrrrsuprrAs` r<test_eqz_TestCommon.test_eqhsr! *+  B   B4 ::  $9 9 KKR S(( E %L r>ct}|jt|tfd}jj dvrt jdjD] }|| y)Nc j|} j|}|j}d|dddf< j|} j |} j |} j |} j|}t||k7||k7jt||k7||k7jt||k7||k7jt||k7||k7jt||k7||k7jt||k7||k7t|dk7|dk7jt|dk7|dk7jtd|k7d|k7jtd|k7d|k7jt|tjk7|tjk7jyr%) rrr&rrrrrrErrLr') rArrr(r)r*r,r+r-rs r<rz"_TestCommon.test_ne..checks//%(C%%e,E88:DD1I^^D)F'',F'',F'',F'',F %SD[5F?2K2K2M N $SD[6V3C2L2L2N O $SD[6V3C2L2L2N O $SD[6V3C2L2L2N O $SD[6V3C2L2L2N O $SF]FcM B $SAX /C/C/E F $SAX /C/C/E F $Q#XU /C/C/E F $Q#XU /C/C/E F $SBFF]&+rvvo%>%>%@ Br>r.r2r3r6s` r<test_nez_TestCommon.test_nesr! *+  B   B8 ::  $9 9 KKR S(( E %L r>c|jjdvrtjd|j|jjk(dusJ|j|jjk7dusJy)Nr.r2FT)rrrrTrs r<test_eq_ne_different_shapesz'_TestCommon.test_eq_ne_different_shapess` ::  $9 9 KKR S djjll*u444 djjll*t333r>ct}|jt|tfd}jj dvrt jdjD] }|| y)Nc~ j|} j|}|j}d|dddf< j|}|j t }d|dddf< j|} j |} j|} j|} j|} t||k||kjt||k||kjt||k||kjt||k||kjt||k| |kjt||k| |kjt||k||kjt||k||kjt||k|| kjt||k|| kjt||k||kt||k||kdD]W} tj| } t|| kj|| kt| |kj| |kYtjd5t|tjkj|tjkddd j|} j|}|j}d|dddf< j|}t||k||ky#1swYdxYwNr??)rhrrrignoreinvalidrrr&rrwcomplexrrrrrErrLrierrstater' rArrr(r) datcomplex datspcomplexr*r,r+r-valrs r<rz"_TestCommon.test_lt..checks//%(C%%e,E88:DD1I^^D)FG,J$JqsO>>*5L'',F'',F'',F'',F %S4Z%&.1I1I1K L $Z$%6&2V&;%D%D%F H %S4Z&6/1J1J1L M $S4Z&6/1J1J1L M $S4Z&6/1J1J1L M $S4Z&6/1J1J1L M $TCZ&6/1J1J1L M $TCZ&6/1J1J1L M $TCZ&6/1J1J1L M $TCZ&6/1J1J1L M $S4Z > $Z$%6 t8K L( Mhhsm(%#+)>)>)@#)L(#+)>)>)@#)L M X. 7(%"&&.)A)A)C),rvv7 7 //%(C%%e,E88:DD1I^^D)F %S6\54< @ 7 7 =L33L<r.r2r3r6s` r<test_ltz_TestCommon.test_ltss! *+ 2 A  2 Ah ::  $9 9 KKR S(( E %L r>ct}|jt|tfd}jj dvrt jdjD] }|| y)Nc~ j|} j|}|j}d|dddf< j|}|j t }d|dddf< j|} j |} j|} j|} j|} t||kD||kDjt||kD||kDjt||kD||kDjt||kD||kDjt||kD| |kDjt||kD| |kDjt||kD||kDjt||kD||kDjt||kD|| kDjt||kD|| kDjt||kD||kDt||kD||kDdD]W} tj| } t|| kDj|| kDt| |kDj| |kDYtjd5t|tjkDj|tjkDddd j|} j|}|j}d|dddf< j|}t||kD||kDy#1swYdxYwrArGrJs r<rz"_TestCommon.test_gt..checks//%(C%%e,E88:DD1I^^D)FG,J$JqsO>>*5L'',F'',F'',F'',F %S4Z%&.1I1I1K L $Z$%6&2V&;%D%D%F H %S4Z&6/1J1J1L M $S4Z&6/1J1J1L M $S4Z&6/1J1J1L M $S4Z&6/1J1J1L M $TCZ&6/1J1J1L M $TCZ&6/1J1J1L M $TCZ&6/1J1J1L M $TCZ&6/1J1J1L M $S4Z > $Z$%6 t8K L( Mhhsm(%#+)>)>)@#)L(#+)>)>)@#)L M X. 7(%"&&.)A)A)C),rvv7 7 //%(C%%e,E88:DD1I^^D)F %S6\54< @ 7 7rNr.r2r3r6s` r<test_gtz_TestCommon.test_gtss! *+ 1 A  1 Af ::  $9 9 KKR S(( E %L r>ct}|jt|tfd}jj dvrt jdjD] }|| y)Nc j|} j|}|j}d|dddf< j|}|j t }d|dddf< j|} j |} j|} j|} j|} t||k||kjt||k||kjt||kj||kt||kj||kt| |kj||kt| |kj||kt||kj||kt||kj||kt|| kj||kt|| kj||kt||k||kt||k||kdD]W} tj| } t|| kj|| kt| |kj| |kY j|} j|}|j}d|dddf< j|}t||k||kyNrrB)rhrrrCrrr&rrwrHrrrrrErrLrirJs r<rz"_TestCommon.test_le..check<//%(C%%e,E88:DD1I^^D)FG,J$JqsO>>*5L'',F'',F'',F'',F %SD[5F?2K2K2M N $Z4%7&2f&<%E%E%G I %f&6%?%?%A3$; O $f&6%?%?%A3$; O $f&6%?%?%A3$; O $f&6%?%?%A3$; O $f&6%?%?%A43; O $f&6%?%?%A43; O $f&6%?%?%A43; O $f&6%?%?%A43; O $Ud]C4K @ $\T%9:;M N% Ohhsm(%3,)?)?)A3#:N(#,)?)?)A3#:N O //%(C%%e,E88:DD1I^^D)F %SF]ETM Br>r.r2r3r6s` r<test_lez_TestCommon.test_le8s! *+ - C  - C^ ::  $9 9 KKR S(( E %L r>ct}|jt|tfd}jj dvrt jdjD] }|| y)Nc j|} j|}|j}d|dddf< j|}|j t }d|dddf< j|} j |} j|} j|} j|} t||k\||k\jt||k\||k\jt||k\j||k\t||k\j||k\t| |k\j||k\t| |k\j||k\t||k\j||k\t||k\j||k\t|| k\j||k\t|| k\j||k\t||k\||k\t||k\||k\dD]W} tj| } t|| k\j|| k\t| |k\j| |k\Y j|} j|}|j}d|dddf< j|}t||k\||k\yrUrVrJs r<rz"_TestCommon.test_ge..checkvrWr>r.r2r3r6s` r<test_gez_TestCommon.test_gerrYr>ct|jdjtdt|jdjdt|jdj d|j jdvr7t|jdj dtgdyy)Nrrrcoor1r0lilaxisrrr) rrrrnnz count_nonzerorrrrs r< test_emptyz_TestCommon.test_emptysT^^F+335uV}ET^^F+//3T^^F+99;Q? ::   < < /==1=EuYGW X =r>c|jjdv}|rgdndg}|j|jjfD]J}|D]C}tj|j |}t |j ||EL|s7ttd5|jj ddddyy#1swYyxYw)Nr_)NrrrrCrbznot implemented .* formatmatchr) rrr=rLrfrrrNotImplementedError)r axis_supportaxesrSaxexpecteds r<test_count_nonzeroz_TestCommon.test_count_nonzeroszz((,HH '3#$**djjll+ AA A++AIIKbAQ__"_5x@ A A 2:UV 1 ((a(0 1 1 1 1s $C  Cctt|jdtt|jdtt|jdy)Nrrrrrr)rrrrs r<test_invalid_shapesz_TestCommon.test_invalid_shapess2j$..&9j$..&9j$..':r>c R|jgdgdgdg}|jdk(rdn|jdk(rdnd}t|j\}}|jrd nd }d |d |d |jd|j d|d|j d }t||k(sJy)NrrrrdrrrCdia(1 diagonals) r/(blocksize=1x1) rr2< sparse of dtype '' with  stored elements and shape >)rrr-rrArerreprrrextrar!fmt sparse_clsros r< test_reprz_TestCommon.test_reprs 9jAB %  5 ',||u'<#  %,,'3 $ 2 2W uHZL EKK=Aii[ 1% 5;;-q R E{h&&&r>c2|jtjdjdd}|jdk(sJt t |jddk(sJtjdjdd}|j|}|jdk(rd n |j}|j|d }t t |jd|dzk(sJt t |jdd k(sJ|j|d ddd}|j|d ddd }tjtd5|j|d ddddddy#1swYyxYw)NK2 6rryr)maxprintrX)rriF)rrAr&rz'positional argument|unpack non-iterableri) rrLrrrrstrsplitrrerr TypeError)rrr nnz_small datsp_mp6s r<test_str_maxprintz_TestCommon.test_str_maxprints\ryy}44Q;<~~###3u:##D)*f444iim##Aa(s#,,%/BUYY NN3N3 3u:##D)*i!m;;;3y>''-.%777s&%RSTsFCC ]]9,U V 7 NN3UA 6 7 7 7s .F  Fc r|jgdgdgdg}|jdk7ry|jdk(rdn|jdk(rdnd }t|j\}}|jrd nd }d |d |d|j d|jd|d|j d }t||k(sJy)Nrwrdrxrhryrzr/r{r|rr2r}r~rrrrz(> Coords Values (0, 0) 1 (2, 2) -2)rrerr-rrArrrs r<test_strz_TestCommon.test_strs 9jAB 99>  %  5 ',||u'<#  %,,'3 $ 2 2W uHZL EKK=Aii[ 1% 5;;-P  5zX%%%r>cd}tjdtjdtjdtjdtjdfD]}|j||}||z}d|z}||jz}||j z}||j z}||||||fD]u} t | j|j|jzt | j|t | jj|wy) Nrrr\rr complex64rrrh)rLrArtocsctocsrtocoorr) rrmytyperPrUcr efms r<test_empty_arithmeticz!_TestCommon.test_empty_arithmeticsxx("((9*=#RXXk%:&( 7FuF3AAAAAAGGI AAGGI AAGGI A!Aa] 7QYY[!))+aiik*ABQWWV,QYY[..v6  7 7r>ctgdgdgdgdgd}tt|t|j|j y)Nrrrrrrrdr )rrabsrrrrSs r<test_absz_TestCommon.test_abss< ; J BC HSVS!23;;=>r>cd}tddgddggd}ttj||t |j ||j y) NrggQ?g@1@gQr )decimals)ndigits)rrrLaroundroundrr)rdecimalrSs r< test_roundz_TestCommon.test_roundsR E4=5%.13 7RYYq734>>!,g>FFH Jr>ctgdgdgdgd}ttj|d|j |jdj t t|j |j|y)N)rrCrrrrhrrr rh)rrrLpowerrrrrkrs r<test_elementwise_powerz"_TestCommon.test_elementwise_powersd <Y7 =RXXa^T^^A%6%<%>!+<+B+BAFr>ctgdgdgdgdgd}t| |j| jtgdgdg}t t |j|j y)Nrrrrdr )TFF)FFT)rrrrrrk__neg__rs r<test_negz_TestCommon.test_neg se ; J BC HaR4>>!,,5578 ')=> ?)4>>!+<+D+DEr>ctddgg}|j|}t|jj |jyN?@y@)rrrrealrrDrSs r< test_realz_TestCommon.test_real(; FF#$ % NN1 QVV^^%qvv.r>ctddgg}|j|}t|jj |jyr)rrrimagrrs r< test_imagz_TestCommon.test_imag-rr>c g}|jgdg|jdgdgdgg|jddgddgddgg|jgdgdgdg|jddgddgg|jt|dddgg|jt|ddgdgg|jt|dddgdd gg|jt|dddgdd gg|jt|dddgdd gg|jt|dgd g|D]}t|j\}}|j |}t | dz |dzD])}t |j| t|| +t |jd t|d t |jd t|d t |j djtjdt |j djtjdt |j djtjdt |j djd tjdy)Nrrrhrrrhrrrr)rrrhrrrrrrhrrkrXi)(i?rrr)rrrr) rNr rrrr rdiagonalr rLrempty)rmatsrrowscols sparse_matrs r< test_diagonalz_TestCommon.test_diagonal2sy WI aS!aSM" aUAa5!A'( WWW-. aUAa5M" Da1Q%)* Da1#qc+, Da1Q%1/0 Da1Q%1/0 Da1Q%1/0 Da)-. EAqJD$*JD57DF+ EZ00105tA|D E ,,r,2DbM B ,,s,3T!s^ D E T^^K099;RXXb\J T^^F+446 DT^^G,557!ET^^F+44R8"((1+Fr>ctjgdgdgdg}|j|}tddD].}t |j ||j |0tjgdgdg}|j|}tddD].}t |j ||j |0y)Nrrhrrrr) rCr)offsetr)rLrrr rtrace)rrSrTrs r< test_tracez_TestCommon.test_traceSs HHiI6 7 NN1 r1 ?A *AGG1G,= > ? HHi+ , NN1 r1 ?A *AGG1G,= > ?r>c |jgdgdgdgdg}dD]S}dD]L}t|j||j|jj||NU|jgdgd gd g}|jd }gd gd g}t|j||jd}t|j||jd}t|j|t t |jd|jdd}t|j|t t |jddd|jd}t||u|jdd}t||ut|jd|jr"t td5d |_dddn!d |_t|j|t t |j|jft t |jd|jdfy#1swYXxYw)N)rrrrdr)rrr)rF)) r)rrorderrrXrrrrrrrrrhr)rrXrrrr)rrrrrrrhr)rrrtrhrr) not_an_argrrTr&zhas no setter|n't set attributeri) rrrrrrrrrrAttributeErrorrn)rrBrsrCdesireds r< test_reshapez_TestCommon.test_reshape`s NNIy)YG H HE' H"199Qe9#<#D#D#F#$99;#6#6q#6#FH H H NNM<I J IIf &(=>199;0 IIg 199;0 IIg 199;0j!))X6 IIaO199;0iAqQ? IIf Q IIf4I (  177F+   ~5VW !  ! !AG qyy{G 4 j!))affY7j!))a^< ! !s /I00I9c  fd fd}tjjdgd}tjtjfD]}|D]\}}tj | dz|dz }|D]}}tj ||f|}|j||f|} ||| |tjj|tt|dD] } ||| | y) Nctj|}|dk\rt|jd|jd|z }|jdk7rt|t |}|d|}tj d|}tj |||z}||||f<y|dkr|j|| yyr%)rLrrqrrrrr=)rPvrnrj dense_setdiags r<rz=_TestCommon.test_setdiag_comprehensive..dense_setdiags 1 AAv AGGAJN366Q;As1vA"1AIIaOIIaQ'!A#Qacc1qb)r>cdttj||ddfD].}|dkr*tjj t dd}n"tjj dd|}|||t5}|jtd|j||dddtj||}tj|jdk(rt||d n2tt|t|}t|d||d|d t|j|d 1y#1swYxYw) NrrhrrrrrnzChanging the sparsity structuz {msg} {r}err_msg)rrLr rchoicer rjrr4r*setdiagrrrrqr) rPrUrrrr7r rrs r< check_setdiagz=_TestCommon.test_setdiag_comprehensive..check_setdiags!#bggam,a4 Hq5 ((q"6A ))!Ra)8AaA&&($CJJ68WXIIaO$ GGAqM::a=%%*&q![ACFCF+A&q!uae[I"199;;G' H$$s )EE! re)rrrrrrrrrrrr) rLrrfrrrrrrrqr) rrshapesrArrksrrPrUk2rs @r<test_setdiag_comprehensivez&_TestCommon.test_setdiag_comprehensives * H2 t4ggrzz* 0E 0!YYr!tQqS)0A!Qu5A1vU;A!!Q*!ii..rCGQ.H0%aB/00 0 0r>c *|jtjd}|jd}gd}t5}|j t dt t|j|d|j|t|j||j|dt|jtjgdgd gd g|j|d t|jtjgdgd gd g|jd dt|jdd|jd d t|jdd|jdgdt|jdgd|jddgdt|jddgdgdgdddy#1swYyxYw)Nrrr)rrhrChanging the sparsity structurerrr)rrr)rrhrhrrCrrr)rrhrrhrrhrrrrrr)rrrr) rrLr(rr4r*rrrrrrr)rrm2rJr7s r< test_setdiagz_TestCommon.test_setdiags NN266!9 % ^^F #   AC JJ.0Q R *aii1 = IIf  qzz|V 4 IIfI " qyy{BHHi6?6?6A-B C IIfI # qyy{BHHi6?6?6A-B C IIdaI qyy{3/ 3 IIdbI ! qyy{3/ 3 JJsaJ rzz|A = JJ1vJ # rzz|BQ/,2>2@ A- A A As F?%)??T6"<?s B0BcJtgdgdgdg}|j|}ttj|Dchc] }t |}}ttj|Dchc] }t |}}t ||ycc}wcc}wr)rrr rLrrrrs r<test_numpy_nonzeroz_TestCommon.test_numpy_nonzeros{ 9i3 4nnQ$-bjjm$<=bb ==&/ 3&@A%)AAT6">As B:B c tjjdtjgdgdgdg}tjj dd}tjgg}tj d}t jdddj}|||||g fd }jD]$}tt D] }||| &y) Nrerrrhrrrrrr)rrg{Gz?)densitycj||}j||}tjd5t |j |j t |j j|j jttj|j dt |j d|j dt |j dj|j djt |j d|j dt |j dj|j djt |j d|j dt |j dj|j djt |j d|j dt |j dj|j djt |j d|j dt |j dj|j djt |j d |j d t |j d j|j d jdddy#1swYyxYw) NrrD)overrbrrrCrrr) rrrLrIrsumrrArisscalar)rArrrmatricesrs r<rz#_TestCommon.test_sum..checksf,,x{%,8CNN3eN4E(+ W)#'')UYY[ASWWY__eiik.?.?@ EII4I$89:)#''t'*RSSWW$W/55uyydy7K7Q7QR)#''q'/599!9;LMSWW!W_22EII1I4E4K4KL)#''q'/599!9;LMSWW!W_22EII1I4E4K4KL)#''r'*:EII2I v @VWSWW&W1779O9U9UV W W Ws LM%%M.) rLrrfrrandrr~rrr r) rdat_1dat_2dat_3dat_4dat_5rrArr2s ` @r<test_sumz_TestCommon.test_sums t)""$% q!$"" Aq$/7795%6 W((( E3x=) eQ  r>c:tjd}tgdgdgdg}|j|}t t d5|j ddddt t d5|j d dddt td 5|j d dddt t d 5|jd |dddy#1swYxYw#1swYoxYw#1swYOxYw#1swYyxYwNrrr(r)r*zaxis out of rangerirrbrrzaxis must be an integer?z&do.*n.t match.*shape|wrong.*dimensionsrrcout) rLrrrrrr0rmeanrr@rrs r<test_sum_invalid_paramsz#_TestCommon.test_sum_invalid_paramsshhvY!"s# :-@ A  II1I   :-@ A # II6I " # 9,E F II3I  :-U V ( JJA3J ' ( (   # #   ( (s0 C-8C9$DD-C69DDDctgdgdgdg|jfd}|jD] }|| y)Nr(r)r*cj|}j|}t||t|j|jyNr)r0rrrA)rAdat_sum datsp_sumrrs r<rz)_TestCommon.test_sum_dtype..check1s?ggEg*G  .I %gy 9   8r>rrrrrrArrs @@r<test_sum_dtypez_TestCommon.test_sum_dtype+sMY!"s# 9(( E %L r>c|j }tgdgdgdg}|j|}|jr tdn tdgg}|jr tdn tdgg}|j |||j |t |||jrt jdnt jd}|jrt jdntt jd}|j d || |j d | t ||ttd 5|j tdgdddttd 5|j t|jrdggnddddy#1swYOxYw#1swYyxYw)Nr(r)r*rr@keepdimsr@rrrrrcr@rNr?zoutput parameterri) rrrr2r0rrLrrrrkeeprrdat_out datsp_outs r< test_sum_outz_TestCommon.test_sum_out;s%%%Y!"s#"00%(eaSEl $ 2 2E!Hu  Gd+ i  !'95$($6$6"((4.BHHVV  QGd3 qi (!'95:-? @ & II%*I % & :-? @ E II%););!CI D E E & & E E%G,GGG%ctgdgdgdg}|j|}tj|}tj|}t ||t |j |j yNr(r)r*)rrrLr0rrrA)rrrrGrHs r<test_numpy_sumz_TestCommon.test_numpy_sumVs_Y!"s#&&+FF5M !'95W]]IOO4r>ctgdgdgdg}|j|}t|jsJ|jrt nt j}t|jd|sJt|jd|sJt|jsJt|jd|sJt|jd|sJyNr(r)r*rrbr) rrr/r0rr rLr2rKrA)rrrmatrix_or_arrays r<test_sum_mean_container_typez(_TestCommon.test_sum_mean_container_typecsY!"s#EIIK(((%)%7%7'RYY%)))+_===%)))+_===EJJL)))%**!*,o>>>%**!*,o>>>r>c`j fd}jD] }|| y)Nctgdgdgdg|}j||}t|j|jt |jj |jj t tj|jdt|jd|jdt |jdj |jdj t|jd|jdt |jdj |jdj t|jd|jdt |jdj |jdj t|jd |jd t |jd j |jd j t|jd |jd t |jd j |jd j t|jd |jd t |jd j |jd j y) Nr(rrr)rrrrrbrcrNrrrCrr/) rrrrArrArrLr1)rArrrTrs r<rz$_TestCommon.test_mean..checktsw""$+02CNN3eN4E %chhj%**, ? ))5::<+=+= > BKK  56 7 %dT2EJJDJ4I  t,22EJJDJ4I4O4O P %a$/1C  q)//1C1I1I J %a$/1C  q)//1C1I1I J %b40%**"*2E  r*00%**"*2E2K2K L %b40%**"*2E  r*00%**"*2E2K2K L %ft4ejjfj6M  v.44ejjfj6M6S6S Tr>)rr)rrrArTs` @r< test_meanz_TestCommon.test_meanrs6%%% UF(( E %L r>cX|jtjd}tgdgdgdg}|j |}t t d5|jddddt t d5|jd dddt td 5|jd dddt t d 5|jd |dddy#1swYxYw#1swYoxYw#1swYOxYw#1swYyxYwr;) rrLrrrrrrArrBs r<test_mean_invalid_paramz#_TestCommon.test_mean_invalid_paramsll288F+,Y!"s# :-@ A  JJAJ   :-@ A $ JJFJ # $ 9,E F ! JJCJ  !:-U V ( JJA3J ' ( (   $ $ ! ! ( (s0C<D3DD <DDD D)ctgdgdgdg|jfd}|jD] }|| y)Nr(r)r*cj|}j|}t||t|j|jyrF)rArrrA)rAdat_mean datsp_meanrrs r<rz*_TestCommon.test_mean_dtype..checksAxxex,H%0J %h ; )9)9 :r>rIrJs @@r<test_mean_dtypez_TestCommon.test_mean_dtypesMY!"s# ;(( E %L r>c|j }tgdgdgdg}|j|}|jr tdn tdgg}|jr tdn tdgg}|j |||j |t |||jrt jdnt jd}|jrt jdntt jd}|j d || |j d | t ||ttd 5|j tdgdddttd 5|j t|jrdggnddddy#1swYOxYw#1swYyxYw)Nr(r)r*rrMrOrPrQrrRr?z"output parameter.*wrong.*dimensionri) rrrr2rArrLrrrrSs r< test_mean_outz_TestCommon.test_mean_outs%%%Y!"s#"00%(eaSEl $ 2 2E!Hu  Wt, y !!'95$($6$6"((4.BHHVV  aWt4 y )!'95:-Q R ' JJ5!:J & ' :-Q R F JJ5$*<*<1#!DJ E F F ' ' F FrXctgdgdgdg}|j|}tj|}tj|}t ||t |j |j yrZ)rrrLrArrrA)rrrrirjs r<test_numpy_meanz_TestCommon.test_numpy_meansaY!"s#773<WWU^ !(J7X^^Z%5%56r>ctgdgdgdgt}|j|dt}tjj |}tgdgdgdg}|j|dt}tjj |}t 5}|jtd |jtd |jtd t |j}t |j} dddt|z tdt |z tdy#1swY:xYw) Nrrrrrrrr^rrA)@?)ru@ru)rururu&splu converted its input to CSC formatCspsolve is more efficient when sparse b is in the CSC matrix format.spsolve requires A be CSC or CSR matrix format) rfloatrr}linalgr4rr4r*rrr) rMsMMexpNsNNexpr7sMexpsNexps r< test_expmz_TestCommon.test_expms 9i4e < ^^AU%^ 8||  # <|< = ^^AU%^ 8||  #   'C JJ'8  JJ'U  JJ'@ H$$&EH$$&E ' "54<%-@!54<%-@# ' 's &A5EEc8fd}tfD] }|| y)Nctgdgdgdg|}t5}|jtd|jtd|jtdj |d|}t |}dddt jjtjd ttt |y#1swY[xYw) Nrrqrrrzryrxr^rsr) rrr4r*rr5rrrrLr(rr)rAr}r7r~sMinvrs r<rz#_TestCommon.test_inv..checksy)Z8%@A"$  2KN 29; 2CF^^AU%^@B  &eiim&;&;&=rvvay I )S! , s A"CC&)r{rs` r<test_invz_TestCommon.test_invs" -W E %L r>crtgdgdgdgdg}t|j|j|tgdgdgdg}t|j|j|t|j|dj|j dy Nrwr)rrrrd)rrr)r@rrr)rrrrrwrs r<test_from_arrayz_TestCommon.test_from_arrays 77773 44>>!,446: #"  4>>!,446:4>>!7>;CCEahhwFWXr>c|jgdgdgdgdg}t|j|j||jgdgdgdg}t|j|j|t|j|dj|j dyr)rrrtodenserwrs r<test_from_matrixz_TestCommon.test_from_matrixs LL)Y 9E F4>>!,446: LL*)#% & 4>>!,446: NN1GN , 4 4 68I r>crgdgdgdgdg}t|j|j|gdgdgdg}t|j|jt|t|j|djt|j dyr)rrrrrwrs r<test_from_listz_TestCommon.test_from_list)s WWW -4>>!,446:     4>>!,446aA NN1GN , 4 4 6a8P r>ctgdgdgdgdg}|j|}t|j|j ||j|}t|j|j |tgdgdgdg}|j|}t|j|j |t|j|dj |j d|j|}t|j|j |t|j|dj |j dyr)rrrrrrwrrSs r<test_from_sparsez_TestCommon.test_from_sparse6s3 77773 4   q !4>>!,446: NN1 4>>!,446: #"    q !4>>!,446:4>>!7>;CCE88G, . NN1 4>>!,446:4>>!7>;CCE88G, .r>c~|jj}t||jrtj ntj sJt||jt|jj|jjk7|jjd}t||jt|jjt|jj |jjd}t||jt|jj t|jjt j|jj|jj}|jj|}t|j|t|j|t j ||sJ|j#t j|jj|jj}|jj|}t|j|t|j|t j ||sJt%gdg}||jz}||jjz}t||t%gdgj&}|j|z}|jj|z}t|||j)|jt*}|jj-t*} t|j| y)NrrrrrOrvrwrtrvrwrt@)rrrKrrLr r2rrrflags c_contiguous f_contiguousrrrArRrrr=rrrw) rchkr@rPdense_dot_denserrUcheck2spboolmatbools r< test_todensez_TestCommon.test_todenseNsjj  "#T-?-?rzzRYYOOO3) &&#))*@*@@Ajj  s +3) &&'CII***+jj  s +3)CII***+ &&'hhtzz''tzz/?/?@jj  S )488S)488S)""3,,,ll288DJJ$4$4DJJ>+W5r>cnt|j}|jj}t ||t |j j|j jk7|jjd}t ||t |j jt |j j |jjd}t ||t |j j t |j jtj|jj|jj}|jj|t ||d|d<|jj|t ||tgd}t||}t||jj}t ||tgd }t||}t|jj|}t |||j|jt } |j#t } t | j| y) NrrrrrOrv.rr)rrrrrrrrrrLrrrArrrrrw) rrrr@rPrrrUrrarrbools r< test_toarrayz_TestCommon.test_toarraywsdhhjj  "3$ &&#))*@*@@Ajj  s +3$ &&'CII***+jj  s +3$CII***+ &&'hhtzz''tzz/?/?@ s#3$C s#3$ * a+Atzz))+,?E2 - c1+TZZ'')1-?F35**T"6>>+W5r>c tgdgdgdg}|j|}tD]*}|j|}dD]o}|j||t j |j t j |t j|jqtj|duj|d t u fd}jd vrd D] }|| jd k(rd D] }||  jd k(sdD] }|| -y)Ny@@rrry@@rrd)TFrFTct|}t|}t||t||ud|jz}||}|| ||<t||||k7|||<y)N)r)rrrr) attributerPrUrb_iS_castedS_copieds r<(check_equal_but_not_same_array_attributezI_TestCommon.test_astype..check_equal_but_not_same_array_attributessHi0Hi0"1a( #166MdQ4x!!! %!r>r1r0r/)indicesindptrdatar`)rowcolrry)offsetsr) rrr.rwrrArrr) rrrrBD_castedr&rrrrs @@r< test_astypez_TestCommon.test_astypesS ##  NN1 ! HAxx{H% 888AD81X^^X^^<X--/:X__ahh7  8 HOOAEO2h> ?qt4H HH, - "77!>HIctgdgdgdg}|j|}t|drd|jj_|j dvr6d|jj_d|jj_tD]D}|j|}|j|}t|j|jFy)NrrrdrFr) rrhasattrrr writeablerrrr.rwrrA)rrrrBrrs r<test_astype_immutablez!_TestCommon.test_astype_immutables ##  NN1  1f %*AFFLL " 88, ,',AHHNN $(-AIIOO %! 9Axx{Hxx{H  8 9r>cBfd}jD] }|| y)Ncj|}j|}t|dz|dzjt|dz|dzjyNrhL1@rrrrrArrrs r<rz*_TestCommon.test_mul_scalar..checksW//%(C%%e,E s1uuQw&7&7&9 : s4x%*)=)=)? @r>r rs` r<test_mul_scalarz_TestCommon.test_mul_scalar' A%% E %L r>cBfd}jD] }|| y)Ncj|}j|}td|zd|zjtd|zd|zjyrrrs r<rz+_TestCommon.test_rmul_scalar..checksW//%(C%%e,E quqw&7&7&9 : tCx$u*)=)=)? @r>rrs` r<test_rmul_scalarz_TestCommon.test_rmul_scalarrr>c|jtj}tt5d|zdddy#1swYyxYwr@)rrLrrr)rrs r<test_rmul_scalar_type_errorz'_TestCommon.test_rmul_scalar_type_errors:!!"**- 9 %  5L   s <AcBfd}jD] }|| y)Ncj|}j|}|j}d|d<|}||z}t||j |z||j z}t|j |j |j z||dz}t||j |dzy)Nrwrr)rrr&rrrrArrrPrUrrs r<rz#_TestCommon.test_add..checks//%(C%%e,E AAcFAAA q!))+/ 2AGGI A qyy{ yy{QYY[8 :AaDA q!))+!"4 5r>rrs` r<test_addz_TestCommon.test_adds& 6$%% E %L r>cBfd}jD] }|| y)Ncj|}j|}|j}d|d<|}||z}t|||j zy)Nrwr)rrr&rrrs r<rz$_TestCommon.test_radd..checksW//%(C%%e,E AAcFAAA q!aiik/ 2r>rrs` r< test_raddz_TestCommon.test_radds& 3%% E %L r>ctfd}jD]#}|tjdk(r||%y)Nc j|}j|}t||z jt j dt|dz j|j t jgdgdgdgd}t||z j||jz t||z j|j|z t||dz ||dz y)Nrrrrrrrrrrrrrrr )rrrrrLrrrrArrrSrs r<rz#_TestCommon.test_sub..checks//%(C%%e,E  668"((6:J K  224c :, }EsKA  224cAIIK6G H E 224aiikC6G H us1v~sSV| rr rLrArs` r<test_subz_TestCommon.test_subs: = %% E(( %L  r>ctfd}jD]#}|tjdk(r||%y)Nc~j|}j|}t||z gdgdgdgt||z gdgdgdgtd|z j| j gdgdgdgd}t||z ||jz t||z |j|z t|j|z |j|z t||jz ||jz t|d|z |d|z y)Nrrrrrr r)rrrrrrs r<rz$_TestCommon.test_rsub..check.s //%(C%%e,E e i )-L M  i )-L M E 224sd ; *Z@sKA a# *; < C!))+*; < qyy{U2AIIK#4E F uqyy{2C!))+4E F s1v~s1v| rrrs` r< test_rsubz_TestCommon.test_rsub-s: ="%% E(( %L  r>cBfd}jD] }|| y)Nc\j|}j|}t|dzj|t t ddDcgc]}||z c}}t t ddDcgc]}||z c}}t |j|ycc}wcc}w)Nrrr)rrrrr0r r)rArrrsumSsumDrs r<rz$_TestCommon.test_add0..checkGs//%(C%%e,E  224c :5A;7aE 78Dq!5AC56D   585s  B$6 B)rrs` r< test_add0z_TestCommon.test_add0Fs& 6%% E %L r>ctgdgdg}tgdgdg}|j|}|j|}|jdvr |jnd}|j|j|k(sJt |j|j ||zt |j|j ||ztgdgdg}tgd gd g}|j|}|j|} t |j| j ||zt |j|j ||zt |j| j ||zt |j|j ||zy) N)rrr)rhrr)rrr)rrr)r0ryr/r1y?y@yy@y@ry@@y@y?yy@r)rrrmultiplyrr) rrSrTr Bspout_fmtrrCspDsps r<test_elementwise_multiplyz%_TestCommon.test_elementwise_multiplyUsm 78$ % 78$ %nnQnnQ # .C C#** S!))W444CLL-5571=CLLO335qs; $^4 5 $^4 5nnQnnQCLL-5571=CLLO335qs; CLL-5571=CLLO335qs;r>c tdg}tdgg}tgd}tgdg}tdgdgdgg}tgdgd gd g}gd }tjd }|j} td gg} tddgd dggg} |j |} |j |} |j |}|j |}|j |}|j |d}|j | }|j | ddd df}|j | }||||||||| | | g }| | |||||||g }|D]V}|D]O} |j |j z}|j|}t|j |QX|D]a}|D]Z} |j |z} |j|}t|rt|j |Ot||\cy#t $rtt |j|YwxYw#t$rYt $rtt |j|YwxYw#t $rYwxYw)Nrrrr)rrrrrhr)rrr)rrrh)rrrrrrrN) rrLonesr=rrrrrrrr))rrSrTrrErGHJKLrrEspFspHspHsppJspJsppKspr2 spmatricesrr dense_multsp_mults r<#test_elementwise_multiply_broadcastz/_TestCommon.test_elementwise_multiply_broadcastms 1#J B4&M (O 8*  A3sA3-  78G, -  GGFO CC A3%L QqE1Q%=/ "nnQnnQnnQnnQnnQ~~ai(nnQ~~a!Dk*nnQq!Q1aAq!43S#tS$D  CA C!"qyy{!:J**Q-#GOO$5zB C C =A =!"qJ jjmGG$'(9:F'< = ="!*ajj!<!!!*ajj!< "s<%!HII:$II I7#I76I7: JJc dtjtjdgdtjdtjgtjdtjtjgg}tt|j|jz ||j gdgdgdgd}dtjtjdgdtjt tjgtjd tjd gg}tt|j|z |tgd gd g}tgd gdg}|j |}|j |}tt||z ||z tgdgdg}tgdgdg}|j |}|j |}tjd5tt||z ||z dddtd dgdd gg}tdd gdd gg}|j |}|j |}tjdd5ttjt||z ||z dddy#1swYxYw#1swYyxYw)Nrrrrr r?rg?rrrrrr)rrhrr()rrCrrD)divide)rrF) rLr'rrrrrrrrI)rrodenomrSrTr rs r<test_elementwise_dividez#_TestCommon.test_elementwise_divides=rvvbffQ'rvva'VVAbffRVV,. 74:: #:;XF *Z@sKrvvbffS)s266*VVD*, 74::#56A $^4 5 $^4 5nnQnnQGC#I.!4 78$ % 78$ %nnQnnQ [[ ) : wsSy11q5 9 : Aa5!A-  Aa5!A- nnQnnQ [[( ; D rxxc (:;QU C D D : : D DsJ7?/K7KK cttgdgdgdgdg}|j|}|jrdD]F}||z}||z}t|j |t |j |j Htt|jdtt|jd|j|ddddf}t |d zj |j yd D]a}||z}tjj||}t|j |t |j |j cd D]}tt|j||j|ddddf}tt|jd y) Nrrrhr)rrrr)rrrr)rrrr)rrh皙@rrrrrrrrrhr)rr r)rrrrrrrArrk__pow__rrLr| matrix_powerr)rrSrTexponentret_spret_nps r<test_powz_TestCommon.test_powsh <|\J K NN1    0 9HH"6>>#3V<V\\6<<8  9 -qyy! < *aii 4q!Aw'A !Q$)199; 7% 9H//8<"6>>#3V<V\\6<<8  9. ?j!))X> ?q!Aw'A )QYY 2r>c|jgdgdgdgdg}tgd|ztgd|jt gdg}t||z||jzy)Nrrrrrrrhrrtrhrrr)rrrrr)rr}rs r< test_rmatvecz_TestCommon.test_rmatvecsY NNGGIg> ?!)a-Y 1LMYK !#'3+<=r>c0|jdgdgdgg}tt|tdzt |tdzj dgdgdggt |tdgztgdt |tdggztdgdgdggt |t jdztdgdgdggt |t jdzt jdy)Nrrhrrrrrrrr)rrr)rrrrLrrs r<test_small_multiplicationz%_TestCommon.test_small_multiplications NNQCQC= )U1X&'a%(l++-aS1#?Qs^U9%56Qu%uqcA3_'=>Q(%!qcA3*@AQ("''&/:r>c*tjdgdgdgg}|j|}|jrYt |tj dzj |t |tdggzj |yt|tdgztgdt|tdggztdgdgdggt|tj dztj dy)NrrhrrQrrr)rLrrrrrrr)rrSr s r<-test_star_vs_at_sign_for_sparray_and_spmatrixz9_TestCommon.test_star_vs_at_sign_for_sparray_and_spmatrixs HHqcA3_ %nnQ    %sRWWV_'<&E&E&G K %sUQC5\'9&B&B&Da H uaSz)5+; < uqcU|+UQC!qc?-C D rwwv. @r>c6|jdgdgdgg}t}t||zdt||z dt||zdt||zdt||z dt||zdt||zdt||zdy)Nrrhrrr)rrrrrSrTs r<test_binop_custom_typez"_TestCommon.test_binop_custom_type s NNQC!qc? + MQU01QU01QU01QU12QU12QU12QU01QU12r>c8|jdgdgdgg}td}t||zdt||z dt||zdt||zdt||z dt||zdt||zdt||zdy)NrrhrrQrr)rrrr s r<!test_binop_custom_type_with_shapez-_TestCommon.test_binop_custom_type_with_shapes NNQC!qc? + "5 )QU01QU01QU01QU12QU12QU12QU01QU12r>cGdd}d}|jdgdgdgg}||}||z}||z}t|j|jt|j|jy)NceZdZdZdZy)0_TestCommon.test_mul_custom_type..Customc||_yr@scalar)rr)s r<rz9_TestCommon.test_mul_custom_type..Custom.__init__*s $ r>c ||jzSr@r(rs r<rz9_TestCommon.test_mul_custom_type..Custom.__rmul__-st{{**r>N)rrrrrrcr>r<Customr&)s  % +r>r+rhrr)rrErrr)rr+r)rSrA_scalarA_cs r<test_mul_custom_typez _TestCommon.test_mul_custom_type(ss + + NNQCQC= ) 6Nv:!e !1!1!3S[[]CX__cjj1r>c|jdgdgdgg}t}t||k(dt||k7dt||kDdt||k\dt||kdt||kd y) Nrrhrrrrrrr)rrrr s r<test_comparisons_custom_typez(_TestCommon.test_comparisons_custom_type8sx NNQC!qc? +  Q!VT"Q!VT"QUD!Q!VT"QUD!Q!VT"r>c |jtgdgdgdgdg}d}|j|}||z}t|j |j y)NrrrrrX)rrrrr)rr}r)actualros r<test_dot_scalarz_TestCommon.test_dot_scalarBsS NN5'')G!DE Fvv:((*:*:*<=r>c |jtgdgdgdgdg}|jtddgddgddggd}tgd gj}tj}t ||||j |zt |||j ||zj t ||j |||zj t |||j ||zj tt||dtt|d|y) Nrrrrrrrhr r) rrr=operatormatmulrrrr)rr}rTrr6s r< test_matmulz_TestCommon.test_matmulJs NN5'')G!DE F NN51Q%1qe!4S9 :WI  !&C.!))+2CD "&A,"6"6"81q5//:KL!&a"81q5//:KL!&AIIK"81q5//:KL j&!Q/j&!Q/r>c J|jgdgdgdgdg}tgdgj}t||z|j |zt |tgdzj dt |tdgdgd ggzj d t |tdgdgd ggzj d tt|tgdzt|jrtntj}tt|tgdjz|tddgtgd tdgdggtgdtdgdggg}|D]}tt|j|t!|tgdzt#|j gdt!|dgdgd ggztj$t#|j gdjy) Nrrrrr)rrrhr)rrr)rrr=rrrrr2rrKr rrLrrrrr atleast_2d)rr}rr^bad_vecsrBs r< test_matvecz_TestCommon.test_matvec\s NNGGIg> ?WI  !!c'199;+<= a%.(//5a%!aS! ..55e<a&1#qc1#//66u=  1uW~-w78%)%7%7'RYY 1vg000/BC1Q%L% "2EA3s)4D7OVaS!I%68 7A *allA 6 7 AeGn,c!))+g.FGAsA3smOR]]3qyy{7;S-T-V-VWr>ctgdgdgdgdg}tgdgdgdgdg}tddgddgddggd}|j|}|j|}t||zj ||zt||z||zt||z||zt||z||z|j }|}||z}t||zj |t||z|t||z|t||z||j }t||zj |t||z|t||z|t||z||j}t||zj |t||z|t||z|t||z|d } d } tjdt| df} t| D]6} tdD]&} tj}|| ks|| z | | | f<(8|j| } | | jz}t|j | j | jj zt|j | j | j jz|jddgd d gg} |jddgd d gd dgg}tt| j||j rtt| j"|yy)Nrrrrrrrhr rg333333?rrrr)r2rrrrrrrrrfrr r=rrrrr)rrPa2rUaspbspcsprwantrfracrSrrrrTs r<test_matmat_sparsez_TestCommon.test_matmat_sparse{s GGIg6 7 GGIg6 7 QqE1Q%1&s +nnQnnQ!39"5"5"7Q?!#'1q51!!c'1q51!"s(AE2iik 1u!39"5"5"7>!#'40!!c'40!"s(D1iik!39"5"5"7>!#'40!!c'40!"s(D1iik!39"5"5"7>!#'40!!c'40!"s(D1  A 1Q%Lq $A1X $MMOt8tVAacF $ $ NN1  G!!))+qyy{QSS[[]/JK!!))+qyy{QYY[]]/JK NNQqE1Q%= ) NNQqE1Q%1. /j!,,2    *aii 3 r>c bgdgdgdgdg}|j|}tddgddgd d ggtddgddgd d ggg}|D]c}||z}tt ||j rt n t|t|jd t|t||ey) Nrrrrrrhrrrrrrh) rrr2rrKrr typerrr)rrPr>bsrUresults r<test_matmat_densez_TestCommon.test_matmat_denses WYw /nnQaUAa5!A'(&1Q%1qe1D*E F +A1WF Jv$2D2Dw$q'R S u - Qq *  +r>ctjgdgdgdgddgddgg}|j}|j|}dD]}|j |}t |j |t|j||j|d zj |}t |j |t|j|d z|j|j |}t |j |t|j|d D]Q}|j |}t|||j|d zj |}t||d zSy) Nrrrr)rrrrrhrr)r/r`r0r1ryrFra@)rdense)r~r rrasformatrrr)rrSrrrPrUrs r<test_sparse_format_conversionsz*_TestCommon.test_sparse_format_conversionssC KK1QqE1Q%= A IIK NN1 A /F 6"A & ) qyy{A .qt$--f5A & ) qyy{AbD 1q!**62A & ) qyy{A . /) (F 6"A q! $qt$--f5A q!B$ '  (r>c tgdgdgdg}tgdgdg}t||}|j|}dD]B}t|d|z}dD],}d D]%}t |||f j |'.Dy) Nr rrrrrr(rrr)r/to)rrhrr)rrhrrrr blocksize)rr rrrr) rrBrCrSr rfnXYs r< test_tobsrz_TestCommon.test_tobsrs 9Yy1 2 77# $ 1InnQ DFdVm,B! D,DA q!f!5!=!=!?CD D Dr>c j}tjgg}||gfd}jd}t tj |j tj tdt |jj tdtt|j djD]$}ttD] }||| &y)Nct||}j|}|j}|j}t|j |t|jj |t|jdj |t |j |j y)Nrrrm)rrr rrrrA)rArrrrPrUr2rs r<rz)_TestCommon.test_transpose..checks 51CNN3'E!A A qyy{A . q{{}446 < uF;CCEq I !'' *r>rrrrr\)rrLrrrr rrr=rrrr r)rr4r5rrrArr2s` @r<test_transposez_TestCommon.test_transposes"5> +v&2<<.668<<f 6 8577??,eFm<j%//:(( E3x=) eQ  r>cBfd}jD] }|| y)Ncj|}j|}||z}t|||z||z}t|||zyr@)rrrrArrsum1sum2rs r<rz)_TestCommon.test_add_dense..checksQ//%(C%%e,E;D tS3Y /3;D tS3Y /r>rrs` r<test_add_densez_TestCommon.test_add_denses& 0%% E %L r>ctfd}jD]#}|tjdk(r||%y)Nc"j|}j|}|jtk(r)||z }t |||z ||z }t |||z y||z|z|z }t |||z||z|z|z }t |||zyr@)rrrArrras r<rz)_TestCommon.test_sub_dense..checks//%(C%%e,EyyD U{"4s3s{"4s3c C50"4s3 -4"4s3r>rrrs` r<test_sub_densez_TestCommon.test_sub_denses: 4$%% E(( %L  r>c tjgdgdgdgtjgdgdgdgtjgdgdgdgfd }jD]m}tjtjtj fD]9}d D]2}|tj |tj ||4;oy) N)rrr)rrrrd)rrrh)rrrr)ry@@r)r?yctj|tjr! j j |}n j j |}|dk(r|j d}n^|dk(r|j d}nG|dk(r j |}n0|dk(r! j j |}n t t5}|jtd|j|}|j|}dddtjt|t|}tt|t|j|jtjt|t|} tt| t|j| jy#1swYxYw)Nr)rscalar2rrMr~zTTaking (maximum|minimum) with a (positive|negative) number results in a dense matrix)rLrocomplexfloatingrrwrFrrr4r*maximumminimumrrrrA)rAdtype2btyperSrTr7max_smin_smax_dmin_dA_dense A_dense_cpxB_densers r<rz/_TestCommon.test_maximum_minimum..check0sm}}UB$6$67NN;#5#5e#<=NN7>>%#89 KKN)#KKO'!NN6*("NN7>> : l""$ % 278 !  !   %JJwqz71:6E wu~u 5 ekk 2JJwqz71:6E wu~u 5 ekk 2 % %s &9G""G+)r)rkrMr~)rLrr rrrrA)rrrArorprurvrws` @@@r<test_maximum_minimumz _TestCommon.test_maximum_minimum*s((Iy)<=((Iy*=>hh <FG  3@%% DE77BJJ > DEDE"((5/288F+;UCD D Dr>c|j}t|jj|jt|j |dj|jt|j |dj|jt|jj |j t|j |dj |j t|j |dj |j t |d|jz}t||ut|d|ut|dj|jt|dj |j tt|j| y)NTrFrS) rrr&r __class__rrrrV)rrStoselfs r< test_copyz_TestCommon.test_copyUsZ JJ QVVX__ahh/Q[[[-44ahh?Q[[[.55qxx@QVVX%%'5Q[[[.668!))+FQ[[[/779199;G4!((?+A E"a'(V&--qxx8V&..0!))+> +AFFHa889r>c|jtjdjdd}|j |}t ||D]\}}t |j|!y)NrrrX)rrLrrrziprr)rrTrSrBrCs r< test_iteratorz_TestCommon.test_iteratorms\ LL2..q"5 6 NN1 1I )DAq a ( )r>cl tg}|jd}|jd}|jd}|jd}|jd}tjddg}|j |}|j |} |j |} |j |} |j |} |j |} t |j |jtj ||t | j | jtj ||t | j | jtj ||t | j | jtj ||t | j | jtj ||t | j | jtj ||t | j | jtj ||t | j | jtj ||tt| j |tt|j |t |j|jtj||t | j| jtj||t | j| jtj||t |j|jtj||t | j|jtj||t | j|jtj||t |jdjtj|dt | jdjtj|dt | jdjtj|dtt|j|tt| j|t |j|j|j|t | j| j|j|t | j| j|j|tt|j| tt| j|y)Nrr/rrr rr) rrrLrrrrrrrrr)rrrPrUrr rrr>r?r@dspespfsps r< test_size_zero_matrix_arithmeticz,_TestCommon.test_size_zero_matrix_arithmetictsBi KK  KK  KK  KK  KK  GGQFOnnQnnQnnQnnQnnQnnQ 3773<//1266!Q<@3773<//1266!Q<@3773<//1266!Q<@3773<//1266!Q<@3773<//1266!Q<@3773<//1266!Q<@3773<//1266!Q<@3773<//1266!Q<@ j#''1-j#''1- 3<<,446 Aq8IJ3<<,446 Aq8IJ3<<,446 Aq8IJ3<<?224bkk!Q6GH3<<?224bkk!Q6GH3<<?224bkk!Q6GH3<<?224bkk!Q6GH3<<?224bkk!Q6GH3<<?224bkk!Q6GH j#,,2j#,,2 3;;s+335qyy|D3;;s+335qyy|D3;;s+335qyy|D j#++s3j#++s3r>ctg}|jd}|jd}|jd}|||fD]}|j|}t|j j |t|j j |t|jj |t|jj |t|jj |t|jj |y)Nrrr ) rrrrrrrrtoliltodoktobsr)rrrPrUrrspms r<test_size_zero_conversionsz&_TestCommon.test_size_zero_conversionssBi KK  KK  KK Q 9A..#C syy{224a 8 syy{224a 8 syy{224a 8 syy{224a 8 syy{224a 8 syy{224a 8 9r>ctjgdgdgtj}ttd5|j |ddd|j |j tj}ttd5|j |tjdddy#1swYsxYw#1swYyxYw)N)g @rg?rdrzdoes not support dtyperi)rLrfloat16rrrrwr)rrPA32s r<test_dtype_checkz_TestCommon.test_dtype_checks HHmY/rzz B :-E F  NN1  nnQXXbjj12 :-E F 2 NN3bjjN 1 2 2    2 2sC"C C  Ccrddlt}|jt|fd}|y)Nrcjj}tjD]G}j j ||}t |j|jt|j|jt |j|j|jjD]\}}t|tjrt||j|:t|t r9|r7t|dtjrt||j|t#||j|k(Jy)N)protocolr)rr&r HIGHEST_PROTOCOLloadsdumpsrrrrrrIitemsrKrLr rr)rrsploadedkeyrMpicklers r<rz&_TestCommon.test_pickle..checksJJOO%E!&"9"9: ?!<< UX (NOU[[(..9"5==?H4D4D4FGU\\8??; !& 4 4 6?HC!#rzz2*30A0A#0FG$S%0S(Q<*30A0A#0FGx'8'8'= =>? ?r>)rrr4r*)rr7rrs` @r< test_picklez_TestCommon.test_pickles4! *+  ?  ?( r>c.fd}dD] }|| y)Nc|dk(rtjdjjdvrtjdt t |}j t jdjdddz }||j}||}t|j|y) Nsignz2sign conflicts with comparison op support on Numpy)rFraz%Unary ops not implemented for dok/lilrrr4@) rrrrrrLrrrrr)rufuncrWX0X2rs r<rz5_TestCommon.test_unary_ufunc_overrides..checksv~ /0zz  N2 CDB%Eryy}44Q:S@AAqyy{#BqB rzz|R 0r>)sintanarcsinarctansinhtanharcsinharctanhrintrexpm1log1pdeg2radrad2degfloorceiltruncsqrtrrc)rrrs` r<test_unary_ufunc_overridesz&_TestCommon.test_unary_ufunc_overridess" 1 D $K  r>ctjgdgdgdg}|j|}t|j ddut |j ddgddgddgg|j d t |j ddgddgg|j dt |j ddgddgddgg|j d t |j gd gd gd g|j d t |j gd gd gd g|j ddt |j ddgddgddgg|jr |jdvr|j dn&ttttf|jddD]}tt|j|y)Nrrrrrhrrrrrrrrrhrrrhrrhrhr^rw)rhrrrd)r`r1))rrhrr) rLrrrresizerrrrrrrk IndexError)rrr bad_shapes r< test_resizez_TestCommon.test_resizes HHl""$ % NN1  D()199;!Q*+Q*+Q)1 2 199;!Q*+Q)1 2 199;!Q*+Q*+Q)1 2 199;)2)2)4 5 199;)2)2)4 5 A199;!Q*+Q*+Q)1 2   !((n"< HHQK :':JGST U6 ;I *ahh : ;r>c4|j}|j}|j|d}t|j |j |t vrt t|||j||jd}t|j |j |t vrt t|||j|tjd}t|j |j |j|d}t|j |j t t|| dD]}||k(r |j|}|j|d}t|j |j |j|d}t|j |j t t|| y)NFr)rAr&T)r1r0r`ryrFra) rrrzrErNON_ARRAY_BACKED_FORMATSrrVrArLrrrN)rrS self_formatr other_formatrTs r<test_constructor1_basez"_TestCommon.test_constructor1_base s JJhh KKK & aiik: 6 6 +Aq1 2 KKuK 5 aiik: 6 6 +Aq1 2 KK%K 8199; 4 KKK % aiik:+Aq112F 7L{* <(A AE *A $QYY[!))+ > AD )A $QYY[!))+ > /155 6 7r>N)urrrrr.r r'rr$rr!rr"rr&rr#rr%rrr classmethodrrr"r8r;r>rOrRrXr\rgrprurrrrrrrrrrrrrrmarkslowrrr$r&r9rCrKrWr[r_rdrfrkrmrorrr5rrrrrrrrrrrrrrrrrrrrrrrr!r#r.r0r3r7r;rCrIrOrYr^rdrgrxr|rrrrrrrrrcr>r<rr+s@"KMMMMMMMG;;.  1#J%N4=~<|8t8tY 1; '7(&(7$?J GF/ / GB ?-=^ [[4040lA<##! F(" E6 5 ?&P(" F6 7A8$YY        ...'6R#6J&H&HP 9 9   , 02 <08=t!DF3B> ; A3" 32 #>0$X>64p +(2 D 8 6)DV:0)84t 928*';R7r>rc$eZdZdZdZdZdZy)_TestInplaceArithmeticctjd}|j|}|j}|j}||z }||z }t |||j}|j}||z}||z}t |||j rn|j}|j}t td5||jz}ddd||z}||z}t ||jnu|j}|j}t td5||z}ddd|j|j}||jz}t |||j}||jz}|j}|j}t td5||z}ddd|j|j}||jz}t ||t td5||z}dddy#1swYXxYw#1swYxYw#1swYyxYw#1swYyxYw)Nrinconsistent shapesrizdimension mismatchunsupported operand) rLrrr&rrrrr=rrr)rrPrUrBrCs r<test_inplace_densez)_TestInplaceArithmetic.test_inplace_denseC s  GGFO NN1  FFH FFH Q Q1a FFH FFH Q Q1a   AAz1FG QSS AA FA q!))+ .AAz1EF Q acc A HA q! $ FFH QSS FFH FFH :-A B  FA  EE!##J QSS1a 9,A B  !GA  7        s0H6>II'I6II II%cBfd}jD] }|| y)Ncj|}j|}tjt|drD|j }|dz}|j }|dz}t ||jtjt|drE|j }|dz}|j }|dz}t ||jyyN same_kind)castingrhr rrrLcan_castintr&rrr{rArrrPrUrs r<rz6_TestInplaceArithmetic.test_imul_scalar..checkv s//%(C%%e,E{{3{;JJLQHHJQ"1aiik2{{5%=JJLT HHJT "1aiik2 >r>rrs` r<test_imul_scalarz'_TestInplaceArithmetic.test_imul_scalaru s& 3&%% E %L r>cfd}jD]8}tj|tjtr1||:y)Ncj|}j|}tjt|drD|j }|dz}|j }|dz}t ||jtjt|drE|j }|dz}|j }|dz}t ||jyyrrrs r<rz6_TestInplaceArithmetic.test_idiv_scalar..check s//%(C%%e,E{{3{;JJLQHHJQ"1aiik2{{5%=JJLT HHJT "1aiik2 >r>)r rLrrArrs` r<test_idiv_scalarz'_TestInplaceArithmetic.test_idiv_scalar s> 3$%% E;;ubhhsm4e  r>c|jtjd}|jtjd}|jtjd}||z }||z}t|j |j |j r2||z}||z}t|j |j ||z}||z}t|j |j ||z}||z }t|j |j t td5||z}dddy#1swYyxYw)Nrrri)rrLr(rrrrr)rrPrUbps r<test_inplace_successz+_TestInplaceArithmetic.test_inplace_success s NN266!9 % NN266!9 % ^^BFF1I & Q !V RZZ\2    FAaB AIIK 6 Q !V RZZ\2 Q !V RZZ\2 9,A B  !GA   s E!!E*N)rrrrrrrrcr>r<rrB s0d.2r>rc*eZdZdZdZdZdZdZy) _TestGetSetc\fd}tD]}|tj|y)Ncltgdgdgdgdg|}j|}|j\}}t| |D]*}t| |D]}t |||f|||f,t t |d|dD]#}t ttf|j|%y)Nrwrrrrrhrrdrrr=rr)rrr])rrr) rrrr rrFrrr __getitem__) rArrSr}rrrr!rs r<rz*_TestGetSet.test_getelement..check sw (-.Aq!A''CAaA2q\ 1r11A 1Q31Q301 1 afu -B Jz95q}}bI Jr>r.rLrArs` r<test_getelementz_TestGetSet.test_getelement s* J$& #E "((5/ " #r>c\fd}tD]}|tj|y)Nc|jd|}t5}|jtd|j d|d<|j d|d<|j d|d <|j d |d <|j d |d <|j d|d<|j d|d <ddd|t j k7r#t|jgdgdgdgdD]}tt|j|d gdtgdfD]}tt|jd| t j|t js8|t j k7r$dD]}tt |jd| yyy#1swYxYw)Nrrrrrrrrhrr/rwrrrrrrrCr)rrrr)rrrr)rhrrr))rr)rrrrrsg^@r)rL)rrr4r*rFrLbool_rrrr __setitem__rrrorlr)rArSr7r!rrs r<rz*_TestGetSet.test_setelement..check suE2A"$ ( 24UV**Q-$**S/$**Q-$**S/$**Q-$ ::a=%**Q-$ ( "IIK$$$8 Dj!--UC DuW~. Cj!--B CMM%););<RXX%FA!)Q]]E1EF&=5 ( (s B#F22F;rrs` r<test_setelementz_TestGetSet.test_setelement s+ FB& #E "((5/ " #r>chfd}jD]}|tj|y)Ncjd|}t5}|jtdd|d<dddt |ddy#1swYxYw)N)rrXrrr)rr)rrr4r*rrArSr7rs r<rz9_TestGetSet.test_negative_index_assignment..check s[we4A"$  24UV%  51 %  s AArrs` r<test_negative_index_assignmentz*_TestGetSet.test_negative_index_assignment s/ &%% #E "((5/ " #r>c d\fd}dddtddfdtdftdtdffD]\}}|||dy) NrrXc|d|d|}jf}t5}|jtdd|||f<dddt |j ||t |||fd|y#1swY9xYw)Nz ; rrr)rrr4r*rr0) rrnitemsr8rSr7rrrs r< _test_setz3_TestGetSet.test_scalar_assign_2.._test_set sEQEVJ/C1v&A"$  24UV!Q$   = !Q$C 8   s A??BrhrrrrrrCr)rrrrrrrs` @@r<test_scalar_assign_2z _TestGetSet.test_scalar_assign_2 s_1 9WhrB"eBiBir+- DAq aA  r>c |jd}tjd}t5}|j t d||fD]}d|d<d|d<d|d< dddt |j|y#1swY$xYw)Nrrrr/rrrrrLrrr4r*rrrrSrTr7rs r<test_index_scalar_assignz$_TestGetSet.test_index_scalar_assign s NN6 " HHV    C JJ.0Q RV ###   199;*   s /BB N)rrrrrrrrrcr>r<rr s#,##J #" +r>rceZdZdZy) _TestSolvecd}tjjdt||ft}tjj |}tjj |dz dtjj |dz zz}tjj |}t t|D] }|||||f<t t|D]%}|||||dzf<t||||dz|f<'|j|}t5}|jtdt|j|}dddt||z|y#1swYxYw)Nrrrrrirx)rLrrfrrHr3r rrrrr4r*r3solver)rrrSrBrCrrr7s r< test_solvez_TestSolve.test_solve) sM  q 1Q%w ' IINN1  IINN1Q3 299>>!A##6 6 6 IINN1 s1v AqTAacF s1v 'AtAa!eH 1Aac!eH ' NN1    !C JJ.? AQ a A ! AE!$  ! !s 51E>>FN)rrrrrcr>r<rr' s%r>rceZdZdZdZdZdZdZdZdZ e jjdd Z d Zd Zd Zd ZdZy) _TestSlicingcTt|jdtjdddfjtjt|jdtj dddfjtj t|jdtj dddfjtj t|jdtjdddfjtjy)NrrXrrrr)rrrLrrAr\rrrs r<test_dtype_preservationz$_TestSlicing.test_dtype_preservation@ sT^^F"((^;AacEBHH"((ST^^F"((^;AacEBHH"((ST^^F"**^=a!eDJJBJJWT^^F"**^=a!eDJJBJJWr>ctjtjtjtjfD]}|j d|}t |dddddfj|t |dddddfj|t |ddddfj|t |ddddfj|y)NrrrrhrLrr\rrrrrArdtrSs r<#test_dtype_preservation_empty_slicez0_TestSlicing.test_dtype_preservation_empty_sliceF s88RXXrzz2::> 0BvR0A 1a!e8**B / 1Qq5!8**B / 1a!e8**B / 1Qq5!8**B /  0r>c |jtdjdd}|j|}|jrdndgdgdgf\}}}t ||ddf|dddfj t ||ddf|dddfj |jgdgd gd gd g}|j|}t ||dd f|ddd fj |jgdgd gd gd g}|j|} t ||dd f| ddd fj t ||ddf| dddfj tt|jtddftt|jdtd dfy)NI@rrXr(rrrhrrhrrrrrdrrrrrrC rr) rrrrrrrrrrslice) rrTrSr0r1r2rrrrs r<test_get_horiz_slicez!_TestSlicing.test_get_horiz_sliceP s LL,,Qr2 3 NN1 "&"4"4YA3aS/ B1RU8Qq!tW__%671R1W:qAaCy'8'8':; LL)Y 9E F NN1 1R1W:qAaCy'8'8':; LL)Y 9E F NN1 1R1W:qAaCy'8'8':;1RW:qBCy'8'8':; j!--%+r1BCj!--!U1a[1ABr>c tdjdd}|j|}|jrdndgdgdgf\}}}t |dd|f|dddfj t |dd|f|dddfj t gdgd gd gd g}|j|}t |dd |f|dd dfj t |dd|f|dddfj t gd gdgd gd g}|j|} t |dd|f| dddfj t |dd|f| dddfj tt|jtddftt|jdtd dfy)NrrrXr(rrrhrrrdrrrrrCrrr) rrrrrrrrrrr) rrTrSc0c1c2rrrrs r<test_get_vert_slicez _TestSlicing.test_get_vert_slicee s 3K  2 & NN1 "&"4"4YA3aS/ B1QqS"W:q1ay'8'8':;1QU8Qq!tW__%67 9iI> ? NN1 1QqS"W:q1ay'8'8':;1QU8Qq!tW__%67 9iI> ? NN1 1QU8Qq!tW__%671RS"W:qay'8'8':; j!--%+r1BCj!--!U1a[1ABr>cdtdjdd}|j|}t|ddddfj |ddddft|ddddfj |ddddft|ddddfj |ddddft gd gd gd gd g}|j|}t|ddddf|ddddfj t|ddddf|ddddfj y) NrrrXrhrrrrrrrdr)rrrrrr)rrTrSrrs r<test_get_slicesz_TestSlicing.test_get_slices{ s4 3K  2 & NN1 1QqS!A#X;..0!AaC1H+>1QR"W:--/12ss7<1SbS!"W:--/3B37< 9iI> ? NN1 1QqS!A#X;!A#qs( (;(;(=>1QU8Qq!"uX%5%5%78r>c tjjdd} |j|ddddddf}t|j|ddddddfy#t$rt j dwxYw)Nrrrhrrfeature not implemented) rLrr3rrrrrr)rv0rs r< test_non_unit_stride_2d_indexingz-_TestSlicing.test_non_unit_stride_2d_indexing s YY^^B # 9r"1R61R6>2A 199;1R61R6>(:;  9++78 8 9s A$$Bc|jtdjdd}|j|}t |d|dt |d|dt |d|dt |t ddf|dt |dt df|dt |t dt df|dt |d ddfj |d ddft |d ddfj |d ddft |t d ddfj |d ddft |ddd fj |ddd ft |d d d fj |d d d ft |d d dfj |d d dft |d dd fj |d dd ft |d dt d fj |d dd ft |d d d d fj |d d d d ft |d dd dfj |d dd dft |dd ddfj |dd ddft |d dddfj |d dddft |d ddfj |d ddft |dddfj |dddft |t dddfj |dddft |d d j |d d t |d dj |d dttd td d}t ||ddfj |d d ddft |dd|fj |ddd d fy)NrrrXrrrrrCrhrrrrr) rrrrrrrrr)rrTrSrs r<test_slicing_2z_TestSlicing.test_slicing_2 s LL++Ab1 2 NN1  QsVQsV$QtWag&QuXah'QuRy|_QuX.Qr%)|_QuX.QuRyr*+AeH5 Qq!tW__&!Q$0Qq!B$wZ'')1Q"W:6QuQx2~&..0!AqtG*= Qq!tW__&!Q$0QqsAvY&&(!AaCF)4QqsBwZ'')1QqS"W:6QqtQwZ'')1QrT1W:6QqtU1X~&..0!AbD!G*= QqsAaCx[((*Aac1Q3hK8Qqr12vY&&(!ABF)4Qrr2A2vY&&(!BQBF)4QqtRaRx[((*AadBQBhK8 Qq!tW__&!Q$0Qr1uX%%'2q52QuRy!|_,,."a%9 QqV^^%q1v.QqW__&!B0 $q'$q'$ 'Qq!tW__&!A#q& 2Qq!tW__&!QqS& 2r>rhc |jtdjdd |j  tj }|dd|dd|dd|ddd|dd|dd|d dd |d dd |ddd d d|dd|ddd d dt d t jdg} fd}t|D] \}}|| fd}t|D]!\}}t|D]\}}|||#g} tjdgdzD](\}}} | d k(r | jt||| *| D]}|||||d |d |y)NrrrXrhrrrrrrrrCrrrc|}|}|jdk(rt||t|y|jdk(r|jdk(ryt |j |t|yNrcr)rrrrnrr)rPrBrCrSrTs r<check_1z,_TestSlicing.test_slicing_3..check_1 s^!A!Aww"}Q47+66Q;166Q;&qyy{AtAw?r>ct|tjr t|}n|}t|tjr t|}n|}||f}||f}|jdk(rt ||t ||fy|jdk(r|jdk(ryt|j|t ||fyr() rKrLr rrrrrnrr)rPrUaibirBrCrSrTs r<check_2z,_TestSlicing.test_slicing_3..check_2 s!RZZ(V!RZZ(V!Q$A"b& Aww"}Q4A<066Q;166Q;&qyy{AtQF|Dr>) NrrrhrrrrCri) rrrrrLs_rr enumerate itertoolsproductrNr) rr.slicesr)rrPr-rrU extra_slicesrrSrTs @@r<test_slicing_3z_TestSlicing.test_slicing_3 s LL++Ab1 2 NN1  UURa&"Qq'2ab62add8R)R!WQqV*bBiEQrEQ1r!AwB)RWWR[ * @f% DAq AJ  E0f% DAq!&) 11      ((-=,>>?,@B 0GAq!Av   aA /  0  A AqM ArN BN r>c|jtdjdd}|j|}|djdk(sJ|ddddfj dk(sJ|d j d k(sJ|d j d k(sJ|d j d k(sJ|ddddfj d k(sJ|ddddfj d k(sJ|ddddfj dk(sJ|ddddfj |ddddfj cxk(rdk(sJJ|ddddfj |ddddfj cxk(rdk(sJJ|ddddfj |ddddfj cxk(rdk(sJJ|ddddfj |ddddfj cxk(rdk(sJJ|ddddfj |ddddfj cxk(rdk(sJJ|ddddfj |ddddfj cxk(rdk(sJJ|j r|dddfj |dddfj cxk(rdk(sJJ|dddfj |dddfj cxk(rdk(sJJ|dj |dj cxk(rdk(sJJ|dj |dj cxk(rdk(sJJ|dj |dj cxk(rdk(sJJy|dddfj |dddfj cxk(rdk(sJJ|dddfj |dddfj cxk(rdk(sJJ|dj |dj cxk(rd k(sJJ|dj |dj cxk(rd k(sJJ|dj |dj cxk(rd k(sJJy)NrrrXrrrrhr)NrrhNr)Nrr)rN)rXrrrhr)rh)Nrrh)r)rNrh)rrhN)rrrrrrr)rrTrSs r<test_None_slicingz_TestSlicing.test_None_slicing s LL++Ab1 2 NN1 w||q   q!A#$$...!"((F222z7***z7***q!}""g---D!}""g---At}""g---qsA$$$!Q,(=(=GGGGGG1dA$$!A#tQ,(=(=GGGGGG1a$$!A#q$,(=(=GGGGGGq!A#$$$1Q3,(=(=GGGGGGD!A#$$!T1Q3,(=(=GGGGGGAaC$$!QqS$,(=(=GGGGGG   QqS!V9??a!Qioo== == ==Q!V9??a1Q3ioo== == ==Z=&&!J-*=*=EE EE EEZ=&&!J-*=*=EE EE EEZ=&&!J-*=*=EE EE EEQ!V9??a1Q3ioo?? ?? ??QqS!V9??a!Qioo?? ?? ??Z=&&!J-*=*=GG GG GGZ=&&!J-*=*=GG GG GGZ=&&!J-*=*=GG GG GGr>cr|jtdjdd}|j|}t |dj |dt |dj |dt |dj |dt |dj |dt |dj |dt jtd 5|d dddt jtd 5|d dddt jtd 5|jddddt |dddfj |dddft |dddfj |dddft |dddfj |dddft |dddfj |dddft |dddfj |dddft |dddfj |dddft |dddfj |dddft |dddfj |dddft |dddfj |dddft |dddfj |dddft |ddddfj |ddddft |ddddfj |ddddft |ddddfj |ddddft |ddddfj |ddddft |ddddfj |ddddft |ddddfj |ddddft|d|dt|d|dy#1swYxYw#1swYxYw#1swYxYw)NrrrX.).)r.).r).rzindex .5. out of rangeri)r.zindex .10. out of range).rXrrh)rr.)r.r) rrrrrrrrrr=rrrUrPs r<test_ellipsis_slicingz"_TestSlicing.test_ellipsis_slicing' s LL++Ab1 2 NN1 1S6>>+QsV41T7??,ag61V9,,.& :1V9,,.& :1V9,,.& : ]]:-E F  fI  ]]:-F G  gJ  ]]:-E F  CCK  1QRW:--/12s7<1S!"W:--/37<1RaRW:--/2A2s7<1S"1"W:--/37< 1RaRW:--/2A2s7<1S"1"W:--/37<1QRW:--/12s7<1S!"W:--/37<1RS#X;..0!BCH+>1S"#X;..0!CH+> 1QRCZ=002Aab!SjMB1QQRZ=002AaabjMB1S!QRZ=002AaabjMB1RaRCZ=002Abqb!SjMB1QRaRZ=002AabqbjMB1S!RaRZ=002AabqbjMBQy\1Y<0Qy\1Y<0;      s$7P P P,PP),P6c|jtdjdd}|j|}gd}dgdz|z}||z}|gdz}t t ||df||dft t |d|f|d|ft t ||df||dft t |d|f|d|ft t ||d|f||d|ft t |d||f|d||ft t |||df|||dft td5|||fdddy#1swYyxYw) NrrrX)TFTFTF.zshape mismatchri)rrrrrrrr)rnumpy_arPix5ix10 ix10_6Truefull_ixs r<test_ellipsis_fancy_boolz%_TestSlicing.test_ellipsis_fancy_boolP ss,,vbz11!R89 NN7 #.w{S 3Y &1*71Wc\?3WWc\5JK71S'\?3WS'\5JK71S#X;/c1BC71S$Y<0'#t)2DE71S#t^#45wsC~7NO71S#t^#45wsC~7NO71S$^#45wsD#~7NO :-= >  c:o    s EEc |jtdjdd}|j|}t |dgdfj |dgdft |ddgdfj |ddgdft |ddgfj |ddgft |dddgfj |dddgft |dgddfj |dgddft |ddgddfj |ddgddft |dgddfj |dgddft |ddgdfj |ddgdft t |ddgdddgf|ddgdddgft t |dddgddgf|dddgddgfy)NrrrXr.rhr)rrrrrrr9s r<test_ellipsis_fancy_slicingz(_TestSlicing.test_ellipsis_fancy_slicingf s LL++Ar2 3 NN1 1aS#X;..0!QCH+>1aVS[>113Q1vs{^D1S1#X;..0!C!H+>1S1a&[>113QsQF{^D1aS!S[>113QsAs{^D1aVQ^,4461a&!S.8IJ1aS#q[>113QsC{^D1S1#q[>113QsQC{^D71aVS1a&%8#9:Aq!fcAq6>QQc,|jtdjdd}tjt d5|ddddtjt d5|ddddy#1swY3xYw#1swYyxYw)Nrrrhz(an index can only have a single ellipsisri)..).r.)rrrrrrrrPs r<test_multiple_ellipsis_slicingz+_TestSlicing.test_multiple_ellipsis_slicingw s NN6!9,,Q2 3 ]]:!KM  hK ]]:!KM  kN      sA>/B >B BN)rrrrr rrrr#r%rr fail_slowr4r7r:rArCrFrcr>r<rr? slX 0C*C, 9 <+3Z [[1@@D"HH'1R,T"r>rc<eZdZdZdZdZdZdZdZdZ dZ y ) _TestSlicingAssigncb|jd}tjd}t5}|j t d||fD]2}d|dddf<d|dddf<d|dddf<d|dddf<d|dddddf<4 dddt |j|y#1swY$xYw) Nrrrrrrrrrrs r<test_slice_scalar_assignz+_TestSlicingAssign.test_slice_scalar_assign s NN6 " HHV    C JJ.0Q RV !A#a%!A#a%!A#a%!AB$!%R%(    199;*  s AB%%B.cd\fd}dtdfdtdddfdtddftdtddffD]\}}|||y) Nrc(d|d|}jf}t5}|jtdd|||f<dddt j f}d|||f<t |j||y#1swYDxYw)Nzi=z; j=rrr)rrr4r*rLrrr) rrr8rSr7rTrrrs r<rz9_TestSlicingAssign.test_slice_assign_2.._test_set sqe4u%C1v&A"$  24UV!Q$ !Q AAadG %aiik1c B   s BBrhrrXrrrC)rrrs` @@r<test_slice_assign_2z&_TestSlicingAssign.test_slice_assign_2 sl1 Cq]QdB(:$;aq"=NAha -/ DAq aO r>c|jd}t5}|jtdd|d<d|d<d|d<d |d <|d z }|d ddf|d ddf<t |d ddfj |d ddfj |d z }|dd dd f|ddddf<t t jd|dz|j |d z }|dd ddfj|dd d f<t |d ddfj j|dd d fj dddy#1swYyxYw)Nr]rrhrrrrr6rXrrrr) rrr4r*rrrLrr=)rrTr7rSs r<test_self_self_assignmentz,_TestSlicingAssign.test_self_self_assignment sN NN5 !   GC JJ.0Q RAcFAcFAcFAcFBAqsVAacF q1v~~/1Q31A BBArr"1"uXAacF rxx37 EBAa{}}Acrc!eH q1v~~/111SbSU83C3C3E F# G G Gs D"EEc|jd}tgdgdgdgdg}ddgddgg}t5}|jtd d |d <d |d <d|d<||z|ddddf<t |j ||jt||ddddf<t |j ddddf|dddy#1swYyxYw)Nr]rXrr)rrr)rrrrdrrrrrrrrrr6rh)rrrr4r*rrr)rrTroblockr7s r<test_slice_assignmentz(_TestSlicingAssign.test_slice_assignment s NN5 !(!"!#$A!u   ;C JJ.0Q RAcFAcFAcFqSAacF qyy{H 5))%,7Abqb!eH qyy{2A2rr62E : ; ; ;s BCC!ch|jd}t5}|jtdd|d<d|d<d|d<d |d <|j t j d|dddddtgd gd gd gdg}t|j|y#1swY;xYw)Nr]rrrrrrr6rXrrwrrrR) rrr4r*rrLr(rrr)rrTr7ros r<"test_sparsity_modifying_assignmentz5_TestSlicingAssign.test_sparsity_modifying_assignment s NN5 !   2C JJ.0Q RAcFAcFAcFAcF&&rvvay1AbqE  2'''(;<199;1 2 2s AB((B1c<|jd}ttdt}tj }|dd|dd|dd|ddd|ddd|ddd|dd dd d|dd|dd ddd tdt j d g}t5}|jtd t|D]3\}}|||<|||<t|j|t|5t|D]d\}}t|D]Q\}} d|zd|dzzz||| f<d|zd|dzzz||| f<t|j|t|| fSftddd|d dddf<tddd|d dddf<t|j|t jdd ddddf|dd dd f<t jdd ddd|dd dd f<t|j|dddt!t"|j$dt'tdt!t"|j$dtdt!t"|j$d t)dft'tdt!t"|j$t)ddft'tdt!t"|j$t)ddf|j+t!t"|j$gdgdggdfgdt!t"|j$gdgdgdggdgdgfgdt!t"|j$t)dd fddgddggy#1swYxYw)NrrhrrrrrrCrrrrrrXrdrrKr)rrrrrhr)rrrr)rrrr{rLr.rrr4r*r/rrrr rrrrlistrr&) rrSrTr.r2r7rrPrrUs r<test_set_slicez!_TestSlicingAssign.test_set_slice s_ NN6 " %' ( UURa&"Qq'2ab62add8QqV*bBiEQrEQ1r!AwB)RWWR[*   /C JJ.0Q R!&) <1!!"199;47; < "&) E1%f-EDAqTD!A#J.AacFTD!A#J.AacF&qyy{AtQF|DE E !B?Aa2aiL B?Aa2aiL qyy{A .))Aq!,QW5Aa!eQhK))Aq!,Q/Aa!eQhK qyy{A .% /* j!--eCj9IJj!--Ej!--!U4[1A5:& (j!--%+q1A5:& (j!--%+q1A1668Lj!--!9-y9< Ij!--!9i8!9-/09 ; j!--%(A1v1v& (C / /s E0NNc|jtjd}|jd}||dddf<t|j gdgdgy)Nrrrrhrrrr)rrLrrrr s r<test_assign_emptyz$_TestSlicingAssign.test_assign_empty sL NN2776? + NN6 "!RaR%199;I(>?r>c|jtjd}tjd}||dddf<||dddf<t |j gdgdgdgy)Nr^rrrrrd)rrLrrrrrrSrBs r<test_assign_1d_slicez'_TestSlicingAssign.test_assign_1d_slice sV NN2776? + HHQK!Q$!Q$199;Iy(IJr>N) rrrrKrNrPrTrVr\r_rbrcr>r<rIrI s. +"G,;& 2+(Z@ Kr>rIcReZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zy )_TestFancyIndexingzTests fancy indexing features. The tests for any matrix formats that implement these features should derive from this class. ctjtjtjtjfD]}|j d|}t |ddddgfj|t |gdddfj|t |ddgfj|t |gddfj|y)NrrF)FFFr r s r<#test_dtype_preservation_empty_indexz6_TestFancyIndexing.test_dtype_preservation_empty_index s88RXXrzz2::> -BvR0A 1uen,-33R 8 0!34::B ? 1b5 , 2q5 ,  -r>c6|jtjddg}ttt t f|jdttt t f|jdttt f|jgdgdfy)Nrfoorhrhrr)rrLrrrrrrrs r<test_bad_indexz!_TestFancyIndexing.test_bad_index! sh NN288QF+ ,z:y91==%Pz:y91==*Uz:.  ,/ 1r>c |jtdjdd}|j|}t |dgj |dgt |ddgj |ddgt |ddgfj |ddgft |dddgfj |dddgft |dddgfj |dddgft |t dddgfj |dddgft |dt ddgfj |dddgft |t dt ddgfj |dddgft |ddgd fj |ddgd ft |dd d gfj |dd d gft |dd ddgfj |dd ddgft |dd t ddgfj |dd ddgft |dgdfj |dgdft |ddgdfj |ddgdft |ddgd fj |ddgd ft |t ddgd fj |ddgd ft |ddgt d fj |ddgd ft |t ddgt d fj |ddgd ft |dgddfj |dgddft |ddgddfj |ddgddft |ddgd dfj |ddgd dft |t ddgd dfj |ddgd dft t |dgd gf|dgd gft t |ddgdd gf|ddgdd gft t |ddgdd gf|ddgdd gft t |t ddgdd gf|ddgdd gft t |ddgt dd gf|ddgdd gft t |t ddgt dd gf|ddgdd gft |dgdggdd gfj |dgdggdd gft |dgdgdggdd gfj |dgdgdggdd gft |t dgdgdggdd gfj |dgdgdggdd gft |dgdgdggt dd gfj |dgdgdggdd gft |t dgdgdggt dd gfj |dgdgdggdd gft |ddgj |ddgt |ddgj |ddgt |t ddgj |ddgt |dgddfddd gfj |dgddfddd gft |ddgddfdddd gfj |ddgddfdddd gft |ddgddfdddd gfj |ddgddfdddd gft |t ddgddfddt dd gfj |ddgddfdddd gft |dddggfddggdfj |dddggfddggdft |dddggfddggdfj |dddggfddggdftjtd5|ddddggfdddtjtd5|ddggddfdddt |ddddgfdd gddfj |ddddgfdd gddft |ddddgfdd gddfj |ddddgfdd gddft |ddt ddgft dd gddfj |ddddgfdd gddfttdtd d}t ||ddfj |dd ddft |dd|fj |dddd ftj dggt}t |||fj |||ft |ggggfj |ggggfy#1swYxYw#1swYxYw)NrrrXrrrrhr)rhrrrrrrrrrCrzOnly 1D or 2D arrays allowedrir)rrrrrrrrrrrrrLr)rrTrSrrs r<test_fancy_indexingz&_TestFancyIndexing.test_fancy_indexing( sY LL++Ab1 2 NN1  QsV^^%q!v.Q1vY&&(!QF)4 Qq1#vY&&(!AsF)4Qq1a&y\))+Qq1a&y\:QrAr7{^++-qaW~>QuRy1b')*224aQG nEQr5!R>)*224aQG nEQuRy%B.0199;QrAr7{^L Qq-'(002Aa6F4GHQqsQCx[((*AacA3hK8QqsRH}%--/1Q3R=1ABQqsE2r(O+,446!A#Bx-8HI QsAvY&&(!QCF)4Q1vqy\))+Q1vqy\:Q2w{^++-q!R"~>QuaW~r)*224aB nEQ2wb )*224aB nEQuaW~uRy0199;Q2w{^L QsAvY&&(!QCF)4Q1vqy\))+Q1vqy\:Q2w"}%--/Ar7AbD=1ABQuaW~qt+,4461b'1R4-8HI WQsQCx[)1aS1#X;7WQ1v1v~./Aq6Aq6>1BCWQBx!R012Ar2hB6G4HI AeRHo2w./ 0!RHq"g4E2F   Ar2hq"g./ 0!RHq"g4E2F   AeRHouaW~56 7B8aW;L9M QaSzAq6)*224a!qc QF8J6KL tbTB4 1b') * 2 2 4 tbTB4 1b') *   ebTB4"&'!R0 1 9 9 ; tbTB4 1b') *   tbTB4 %B.0 1 9 9 ; tbTB4 1b') *   ebTB4"&'2w7 8 @ @ B tbTB4 1b') * Q1vY&&(!QF)4QBx[((*Ar2hK8Qub"X'//11b"X;? QsAvYq1#v&..0!QCF)AsF2CD q!faiLQF # + + -q!Q|A1vI/F   r2hkN1q"g: & . . 0!RHaK.QG2L   eRHoq !!UAr7^"3 4 < < > r2hkN1q"g: &  a1a&kNQF8Q; ' / / 11Q!Q[>Aq6(A+3N   a2r(m q"gY\ * 2 2 4aRH: 6FByRS|6T ]]:-K L  bqbAq6(lO  ]]:-K L  1vhlO   a!QiL!Q # + + -qQF|QFAI/F   a"bkNAr7A: & . . 0!ABxK.!R!2L   aBx !%B.!"3 4 < < > a"bkNAr7A: &  $q'$q'$ 'Qq!tW__&!A#q& 2Qq!tW__&!QqS& 2 HHqcU# &Qq!tW__&!Q$0 QtbTz]**,ard m<9    s h:< i:iictjjdd}d}d}|jtjj ||}tj ||dkD}tjj | dz||}tjj | dz||}|j|}|||f}t|r|j}t||||f||z} ||z } tt|j| |ftt|j|| fy)Nrerrrrrr)rLrrfrr3rrjrr)rrrrr) r NUM_SAMPLESr}rrIrrSIJI_badJ_bads r<test_fancy_indexing_randomizedz1_TestFancyIndexing.test_fancy_indexing_randomized s  t   LL!, - KK1s7 # II  qb1fak  : II  qb1fak  : NN1 !f C=++-CS!AaC&!AAj!--%;j!--!E;r>cd\}}|jt||zj||}|j|}t j |dzt }t j |dz t }t j |dzt }t j |dz t }d} tj||tdf||tdfD]Q\} } t| trt| tr'tjt| 5|| | f} dddSy#1swY^xYw)Nrrrrhz(bool index .* has shape .* instead of .*ri)rrrrrLrrr0r1rrKrrr) rr}rrTrSrow_long row_shortcol_long col_shortrjrrr!s r<test_missized_maskingz(_TestFancyIndexing.test_missized_masking s1 LLA..q!4 5 NN1 771q5-GGAE. 771q5-GGAE. 8%% y%+ . y%+ .  DAq!U# 1e(<z7 adG       s .EE cFtjjd|jt dj dd}|j |}tjtjjdddt}tjtjjdddt}tjtjjddd t}tt||||tt|dd|f|dd|ftt||||tt||d kD||d kDtjgd }tjgd }tt|||f|||ftjd t}tjd t}d|d<tjd t}d|d<tt|j|tt|j|tt|j|ttt f|j|dfy)NrerrrXrrhrrrr)TFTTF) FTTFTFFFFF)rrTr)rrr)rLrrfrrrrrrjrrrrrrrr) rrTrSrorrWZ1Z2Z3s r<test_fancy_indexing_booleanz._TestFancyIndexing.test_fancy_indexing_boolean s t LL++Ab1 2 NN1  HHRYY&&q!!&4D A HHRYY&&q!"&5T B HHRYY&&q!'&:$ GWQqT]AaD)WQq!tW%qAw/WQqT]AaD)WQq1uX&!a%1 HH5 6 HH9 : WQq!tW%qAw/ XXgT * XXgT *4 XXgT *4j!--4j!--4j!--4z:. 1vFr>ctjjd|jt dj dd}|j |}tjtjjdddt }|j|}tt||||tt||d kD||d kDtjtjjddd t }tjtjjddd t }|j|}|j|}tt|j|tt|j|ttt f|j|d fy)NrerrrXrrhrrrr)rr)rrXr)rLrrfrrrrrrjrrrrrrrr) rrTrSrWXspZrXZspYsps r<"test_fancy_indexing_sparse_booleanz5_TestFancyIndexing.test_fancy_indexing_sparse_boolean sO t LL++Ab1 2 NN1  HHRYY&&q!'&:$ G  #WQsV_ad+WQq1uX&!a%1 HHRYY&&q!'&:$ G HHRYY&&q!'&:$ G  #  #j!--5j!--5z:. QxHr>c|jtgdgdgdg}tj|j ddkD}t |dd|fj ddgddgddggy)Nrwrrr)rrrLravelr0rr)rr desired_colss r<#test_fancy_indexing_regression_3087z6_TestFancyIndexing.test_fancy_indexing_regression_3087 sfnnUIw#@ABxx +a/ SL)113q!fq!fq!f5MNr>c |jtddgddgg}tt|jdt jddgy)Nrrrrh)rrrrrrLrs r<test_fancy_indexing_seq_assignz1_TestFancyIndexing.test_fancy_indexing_seq_assign s@nnUQFQF#345j#//6288QqE?Kr>c|jtddgddgg}t5}|jtd|ddgddgf|ddgddgf<dddt t |tddgddggy#1swY.xYw)Nrrrhrr)rrrr4r*rr)rrr7s r<test_fancy_indexing_2d_assignz0_TestFancyIndexing.test_fancy_indexing_2d_assign snnUQFQF#345   6C JJ.0Q R"%q!fq!fn"5CAA  6 WS\51a&1a&)9#:; 6 6s +BB cz|jtdjdd}d|dddf<d|dddf<d|d<|j|}t j gd}t t||||t j gt }t t||||t t|||f|||ft j gd t dddf}t t|||f|||ft t|||f|||fy) NrrrXrrrhrrFFFFFrrrrhrr rrrrrLrrrrrrTrSrrs r<test_fancy_indexing_emptyz,_TestFancyIndexing.test_fancy_indexing_empty s LL++Ab1 2!A#!A## NN1  HH8 9WQqT]AaD) HHRs #WQqT]AaD)WQq!tW%qAw/ HH_C 04 8WQq!tW%qAw/WQq!tW%qAw/r>N)rrrrrfrjrlrsryr~rrrrrrcr>r<rdrd sE-1{=z<4,G@I.O L<0r>rdc#Kt|dr |jsdyd|jj}d|_|j t ||jdyw)zIChecks that sorted indices property is retained through an operation has_sorted_indicesNFz'Expected sorted indices, found unsorted)rrrr& sort_indicesr)rWrs r<check_remains_sortedr. sZ 1* +13G3G  iinnG ANNw @BsA+A-c*eZdZdZdZdZdZdZy)_TestFancyIndexingAssignc|jtjddg}ttt t f|jddttt t f|jddy)Nrrhrhri)rrLrrrrrrrs r<test_bad_index_assignz._TestFancyIndexingAssign.test_bad_index_assign> sQ NN288QF+ ,z:y91==%QRSz:y91==*VWXr>cLd\fd}dtdddftjdtddftd dtddffD]\}}|||tjdtjdfd fD]\}}|||y) Nrcrjf}jtjf}t 5}|j t dd|||f<t|5d|||f<ddddddt|j|y#1swY,xYw#1swY0xYwNrr) rrrLrrr4r*rrr)rrrSrTr7rrrs r<_test_set_slicezI_TestFancyIndexingAssign.test_fancy_indexing_set.._test_set_sliceF s1v&A RXXq!f-.A"$  24UV!Q$)!, AadG  &aiik1 5    s$)B-.B!6B-!B* &B--B6rrXrrrrCrh)rKrZ)rrLrrrrrrrs` @@r<test_fancy_indexing_setz0_TestFancyIndexingAssign.test_fancy_indexing_setC s1 6 tR!34iilE!RL1Aqk5B<02 "DAq Aq ! "iilBIIaL13IJ "DAq Aq ! "r>c\fd}tD]}|tj|y)NcRjd|}t5}|jtd|j d|ddgddgf<t |j |j ddz|j d|ddddf<t |j |j ddz|j d|d <t |j |j ddz|j dzdddy#1swYyxYw) Nrrrrrrhrvrr)rrr4r*rFrr0rs r<rzD_TestFancyIndexingAssign.test_fancy_assignment_dtypes..checkX svU3A"$ G 24UV!&A1Q%1+QUUWejjmAo6"ZZ_!A#ac' QUUWejjmAo6C#QUUWejjmAo 1 &EF G G Gs C5DD&rrs` r<test_fancy_assignment_dtypesz5_TestFancyIndexingAssign.test_fancy_assignment_dtypesW s* G& #E "((5/ " #r>c|jd}|jtdd}gd}d}t|}t5}|j t dt |5||dfj|d|f<||dfj|d|f<||dfj|d|f<dddt|j|jj|jd }t |5d d g|dddf<dddt|jgd gd g|jd}t |5d gd gg|dddf<dddt|jddgdd gdd gg|jd}|jtjd}t |5||fD]}gd|gdgdf< dddt|j||jd}t |5gd|d<dddt|jd|jtjd}gd|d<t|j|dddy#1swYxYw#1swYxYw#1swYUxYw#1swYxYw#1swYxYw#1swYyxYw)Nr]rrr(rrrrhrrXrrd)rrXrrr^rr)rr(r)rr(rrr4r*rr=rrrrLrrr0)rrSrTi0i1i2r7rs r<test_sequence_assignmentz1_TestFancyIndexingAssign.test_sequence_assignmentf s NN5 ! NN3q8 $   2Y  # /C JJ.0Q R%a( $BqD'))!B$BqD'))!B$BqD'))!B$ $ qyy{ACCKKM :u%A%a( #r7!AaC% # qyy{Y ,D Eu%A%a( 'D";!A#a% ' qyy{aVaWq"g,F Gu%A RXXe_-A%a( 2Q2A*1Agw&'2 2 qyy{A .v&A%a( 4*3&' 4  + RXXf-.A&/A" # qyy{A .G# /# / $ $ # #  ' ' 2 2 4 4=# /# /s"K*AJ-AK J'AKJ4!A+K K$>K"K *A'KJ$ K'J1 ,K4J> 9KK K K KK"cd|jtdjdd}d|dddf<d|dddf<d|d<|j|}t j gd}d ||<t t||t j gt }d ||<t t||d |||f<t t||t j gd t dddf}d |||f<t t||d |||f<t t||y) NrrrXrrrhrr*rrrrs r<test_fancy_assign_emptyz0_TestFancyIndexingAssign.test_fancy_assign_empty s  LL++Ab1 2!A#!A## NN1  HH8 9!WQZ# HHRs #!WQZ#!A#WQZ# HH_C 04 8!A#WQZ#!A#WQZ#r>N)rrrrrrrrrcr>r<rr= sY "( #+/Z$r>rceZdZdZy)_TestFancyMultidimc btjdgdgdggtjgdftjdgdgdggtjgdgftjgdgtjdgdgdggftjgdtjdgdgdggftjgdgdgtjgdgdgfg}|D],\}}tjjd |j tjj d d }|j |}|||f}t|r|j}t||||f|d z}|d z}tt|j||ftt|j||ftt|j||gtdftt|jtd||gf/y) Nrrhrrrrhrrrrrrhrrrerr)rLrrrfrr3rr)rrrrrr) rsetsrorrrrprqrrs r<test_fancy_indexing_ndarrayz._TestFancyMultidim.test_fancy_indexing_ndarray s XXsQC!o &(; < XXsQC!o &)(= > XXyk "BHHqcA3_$= > XXi "((QC!qc?"; < XXy), - XXy), - /  LDAq IINN4  RYY^^Aq12Aq!AAaC&C}kkm a!f %EEEE *ammeAY ? *ammaY ? *ammq!feDk5J K *ammeDkAq65J K% Lr>N)rrrrrcr>r<rr sLr>rc$eZdZdZdZdZdZy)_TestFancyMultidimAssignctjjd|jtjj dd}|j |}tjj dd}tj gdgdg}tj gdgd g}t|5||||f<ddd||||f<t|j||dz}|dz}gd}t|5||||f<ddd||||f<t|j|t|5d|||f<dddd|||f<t|j|tt|j||f|tt|j||f|y#1swYxYw#1swYxYw#1swYxYw Nrerrrhrrrrr) rLrrfrr3rrrrrrrr) rrrrWrorrqrrrs r<test_fancy_assign_ndarrayz2_TestFancyMultidimAssign.test_fancy_assign_ndarray s t LL1- . NN1  IINN1a  HHi+ , HHi+ , !! $ AacF !A#QYY[!$AA  !! $ AacF !A#QYY[!$ !! $ AacF !A#QYY[!$j!--%A>j!--!EA>+       s$F5 GG 5F>G  Gcd\fd}tjddgddggddgftjddgddgddggfgdgd ggd gd gffD]\}}|||y) Nrcrjf}t|5t5}|jtdd|||f<ddddddj t jf}d|||f<t|j|y#1swYYxYw#1swY]xYwr) rrrr4r*rrLrrr)rrrSr7rTrrrs r<rzR_TestFancyMultidimAssign.test_fancy_indexing_multidim_set.._test_set_slice s1v&A%a( *;*=  24UV!Q$   RXXq!f-.AAadG %aiik1 5     s" B-B! B-!B* &B--B6rrhrrrrrrhr)rrr)rrrh)rLrrs` @@r< test_fancy_indexing_multidim_setz9_TestFancyMultidimAssign.test_fancy_indexing_multidim_set s1 6hhAA/01a&91a&)QFQF+;<#Y/)Y1GHJ "DAq Aq ! "r>c Ftjjd|jtjj dd}|j |}tjj dd}gdgdg}gdgd g}||||f<||||f<t |j||Dcgc]}|Dcgc]}|dz c}}}}|D cgc]} | D cgc]} | dz c} } } } gd} | |||f<| |||f<t |j|d|||f<d|||f<t |j|tt|j||f| tt|j|| f| ycc}wcc}}wcc} wcc} } wr) rLrrfrr3rrrrrr) rrrrWrorriirqrjjrrrs r<test_fancy_assign_listz/_TestFancyMultidimAssign.test_fancy_assign_listsf t LL1- . NN1  IINN1a   "  "!A#!A#QYY[!$/01!1%R"q&%11/01!1%R"q&%11 !A#!A#QYY[!$!A#!A#QYY[!$j!--%A>j!--!EA>&1%1s0= F F F F( F 4F FFc tjjd|jtjj dd}|j |}gd}gd}|Dcgc]}|dz }}|Dcgc]}|dz }}gd} tj ddddf} tt|j|tdf| tt|jtd|f| ycc}wcc}w)Nrerr)rrhrrrrh)rrrrhrr)rrhrrrrr) rLrrfrr3rrrrrr) rrrrorrrqrrrC1C2s r<test_fancy_assign_slicez0_TestFancyMultidimAssign.test_fancy_assign_slices t LL1- . NN1   "#$Ba$$"#$Ba$$ " YYq\!T' "j!--%t1ErJj!--%+u1ErJ %$s , C;> DN)rrrrrrrrcr>r<rr s?B""?:Kr>rc^eZdZdZdZej jddZdZ y)_TestArithmeticz& Test real/complex arithmetic ctgdgdgdgdgd}tgdgdgdgd gd }tgd gd gd gdgd|_t|dzjdd|zt|jdzjdd|jzt|jdzjdd|jz|j |}|j |}||||fS)N)gg@r@rr)g @gg?rrr)rrrvrr)rrg @rrrr)g?rrrrg@)g,@grrrr)rg@rrrr)g2@rrrrr)g?rrrrg)r@rrrg@)rrrrrr)rrrrrrr\)rrrrwrr)r_TestArithmetic__A_TestArithmetic__B_TestArithmetic__Asp_TestArithmetic__Bsps r< __arith_initz_TestArithmetic.__arith_init4s/93024=>.9/579EF4;579;DE CF??73BsF;CHHRK//8CHHECHHRK//8CHHEs#s#C%%r>rc|j\}}}}t||zj||ztD]}t j d5|j |}ddd|j}tD]c}t j|tjs;t j d5|jj |} dddn|j |} |j } || z} || z} t| j| jt| j| t|| z| t|| z| t jd||fvr|| z } || z } t| j| jt| j| t|| z | t|| z | fy#1swYxYw#1swYxYw)NrDrEr) _TestArithmetic__arith_initrrr.rLrIrwrrorlrrrA rrrrrrBrSr rCrTrD1S1s r< test_add_subz_TestArithmetic.test_add_subLs!%!2!2!4S%  U] # # %sSy " /AX. "JJqM "..#C% /}}Q(:(:;X6/HHOOA.// 1 AnnQ'U3YRXXbhh/"2::<4"372."1s72.88F#1v-U3YRXXbhh/"2::<4"372."1s72.9 / / " " //sG2G?2G< ?H c d|j\}}}}t||jzj||jztD]D}t j d5|j|}ddd|j}tD]}t j|t jr|j|} n:t j d5|jj|} ddd|j } || jz} || jz} t| j| dt| jzt| j | j Gy#1swYxYw#1swYxYw)NrDrEg+=)atol)rrr=rr.rLrIrwrrorlrrrr[rrArs r<test_muz_TestArithmetic.test_muxsO!%!2!2!4S% EEGGO446#%%K )" 0AX. "JJqM "..#C% 0==B$6$67 1 AX6/HHOOA./nnQ'W355[ b%*3r7;;=%8:RXXbhh/ 0  0 " "//s*F*F&F# &F/ N) rrrrrrrrGrrrcr>r<rr0s5&0 [[2)/)/V0r>rc6eZdZdZdZdZdZdZdZdZ y) _TestMinMaxctjtjtjtjtj fD]K}tj d|jdd}|j|}t|jdt|jdt|jj|t|jj||dz}|j|}t|jdt|jd|dz }|j|}t|jd t|jdN|jtj d d jd d }t|jd t|jj|jt|jd d | }t|jdt|jd d|jtjd}t|jdt|jdt|jj|jtj dtjdd}d|ddddf<|j|}t|jdt|jdtjdtjdtjdfD]G}|j|}tt |jtt |jIy)NrrrrrriirrXrTexplicitrrhrrrXrXr)rLrrr\rirrrrrrqr[rArr{rr)rrArrWrs r< test_minmaxz_TestMinMax.test_minmaxsjj"**bhh"--P %E "E*221Q7Aq!A ! $ " %  .  . GAq!A # & ! $ FAq!A # & ! $# %( NN299Q+33Aq9 :QUUWa QUUW]]AGG,QUUDU)1- BQUUWb!QUUDU)2. NN288F+ ,QUUWa QUUWa QUUW]]AGG, IIb & . .q 3!A#q& NN1 QUUWa QUUWb!((6"BHHW$5rxx7HI -Aq!A *aee , *aee , -r>c|j }tjdjdd}d|dddf<d|dddf<d|d<d|d <|j |}dd g}ddg}||zD]x}t |j | j|j || t |j| j|j|| z|D]}t|j |d j|jgdtj|jdk(r|jgd}n|jgd}t|j|d j||D]}tjgd}tjgd} |js"|jd}| jd} t|j |d j|t|j|d j| tjddjdd}|j |}||zD]x}t |j | j|j || t |j| j|j|| zt|j d |j d| |D]}|dddf}|dddf} |js|ddddf}|ddddf} t|j |d j|t|j|d j| |D]}|dddf}|dddf} |js|ddddf}|ddddf} t|j |d j|t|j|d j| |jtjd}|j |}||zD]x}t|j |d j|j | t|j|d j|j| z|jtjd}|j |}d dg} tt!j"|| } tt!j"|| } | D]?\}} t%t&|j|| t%t&|j || A| D]{\}} t|j || j|j | t|j|| j|j| }|jtjd}|j |}| D]?\}} t%t&|j|| t%t&|j || A| D]{\}} t|j || j|j | t|j|| j|j| }y)NrrrXrrrr^rrrCrbrcTrcr) r)r+,-./0r) rrrrrrrrrr) rrrrrrrrrr)rr&r)rrrrrr 3r/)rXrrFr)rrLrrrrr[rrqrranyrrrr[r0r1rr)rrTrrW axes_evenaxes_oddrcro expected_max expected_minexplicit_valueseven_explicit_pairsodd_explicit_pairsexs r<test_minmax_axisz_TestMinMax.test_minmax_axissf%%% IIbM ! !!R (!Q$!Q$$$ NN1 G r7y( D 4 ((*AEEtdE,K  4 ((*AEEtdE,K    ND 4$/779 DE vvaffk"<<(HI<<(HI D48@@BH M N RD88$67L88$67L%%+33F; +33F; D48@@BL Q D48@@BL Q R IIa  $ $R + NN1 y( D 4 ((*AEEtdE,K  4 ((*AEEtdE,K    QUUU'FT)JK RDRU8LQT7L%% r1~  q!} D48@@BL Q D48@@BL Q R RDQU8LQT7L%% B~  At} D48@@BL Q D48@@BL Q R LL'* + NN1 ( VD D48@@BAEEtEDT U D48@@BAEEtEDT U V LL'* + NN1 -"9#4#4Y#PQ!)"3"3Ho"NO+ EHD" *aee$ D *aee$ D E+ THD" D26>>@!%%T%BR S D26>>@!%%T%BR S T LL'* + NN1 * EHD" *aee$ D *aee$ D E, THD" D26>>@!%%T%BR S D26>>@!%%T%BR S Tr>ctgdgdgdg}|j|}|jrtntj }|jrt nt}t|jsJt|jd|sJt|jd|sJt|jsJt|jd|sJt|jd|sJt|jsJt|jd|sJt|jd|sJt|jsJt|jd|sJt|jd|sJt|jsJt|jd|sJt|jd|sJt|jsJt|jd|sJt|jd|sJyr])rrrr rLr2r+r,r/rqrKr[nanminnanmaxargminargmax)rrrr^spmatrix_or_sparrays r<test_minmax_container_typez&_TestMinMax.test_minmax_container_type+sY!"s#%)%7%7'RYY)-););gEIIK(((%)))+-@AAA%)))+-@AAAEIIK(((%)))+-@AAA%)))+-@AAAELLN+++%,,A,.0CDDD%,,A,.0CDDDELLN+++%,,A,.0CDDD%,,A,.0CDDDELLN+++%,,A,.@@@%,,A,.@@@ELLN+++%,,A,.@@@%,,A,.@@@r>c&|jtjdjddt}d|dddf<d|dddf<d|d<d |d <tj |d <tj |d <|j |}|j}tj|sJ|tj|k(sJ|j}tj|sJ|tj|k(sJ|jd }tj|sJ|tj|d k(sJgd}|D]}|j|}t|jtj||t||jsJ|j|}t|jtj||t||jrJy)NrrrXrrrrr^rrrE)rrr/rb)rCrrr)rrLrrr{r'rrr1rrrrKr) rrrW X_nan_maximum X_nan_minimumrmrc X_nan_maxima X_nan_minimas r<test_nanminmaxz_TestMinMax.test_nanminmaxKs LL2..q4EL B!Q$!Q$$$&&$&&$ NN1  {{=))) ! ,,, {{=))) ! ,,,f- {{=))) !& 9999 @D888.L L002BIIad4K LlD,>,>? ??888.L L002BIIad4K LlD,>,>? ?? @r>c.tgdgdgdg}|j|}dD]k}t||}t||}tt|dtt |dtt|dd t |d |d my) Nr(r)r*)rqr[rrbr>rr?r/)rrrrrrr)rrrfnamedatfuncrs r<test_minmax_invalid_paramsz&_TestMinMax.test_minmax_invalid_paramsksY!"s## BEc5)G5%(D *d 3 )T 4 *d : 6*G,@ A  Br>cPddlm}tgdgdgdg}|j|}t ||j ret tj|tj|t tj|tj|yy)Nr_datar(r)r*) scipy.sparserrrrK _minmax_mixinrrLrqr[)rrrrs r<test_numpy_minmaxz_TestMinMax.test_numpy_minmaxysy 'Y!"s# eU00 1 rvve}bffSk : rvve}bffSk : 2r>cH ddlm}tjgdgdgdgdgdg}|j }tjdd gd d gg}tjdd gd dgg}tjgd gd gdg}|||||fD]Z}|j |}|j |}t||js=t|jtj|t|jtj|t|jdtj|dt|jdtj|dt|jdtj|dt|jdtj|d]|j |j |}t|jdd t| jddt|jddt| jdd |j tjd} |j tjd} ddg} tj| | ggd| D]\}} } | |j| dk(rot!j"t$d5|j| | dddt!j"t$d5|j| | ddd|j&rtj(d}ntj(| dk(rdnd}t|j| | |t|j| | ||j |}t|jdd|j gdt|jdd|j gdtjgd}tjgd }|j*d!k7rd|d"<|j&s"|j-d#}|j-d#}t|jdd|tt/|jdd|tj(d$}|j |}|j*dk7r;t|jdddt|jdddyt!j"t$d5|jdddddt!j"t$d5|jdddddy#1swYxYw#1swYxYw#1swY[xYw#1swYyxYw)%Nrr )rrrhr)rrrrC)rrCrrr)rrhrrrrrr)rrr)rrrX)rrrrbrTrrhrr Fr%z Cannot applyrirr/r)rrrr)rrhrhrh)rrhrrr)rrrrrrrr r)rrrLrr rrrKrrrrrr0r1rrrrrrrerr)rrrD2D3D4D5rrD6D7 explicitsrcrrorrs r< test_argmaxz_TestMinMax.test_argmaxs& XX        \\^ XX1v1v& ' XX1v1v& ' XXy*i8 9b"b"% CA QA..#Cc5#6#67 ryy| 4 ryy| 4 +RYYqq-A B +RYYqq-A B +RYYqq-A B +RYYqq-A B C nnT\\"-.SZZZ.2sd]]D]115SZZZ.2sd]]D]115^^BHHV, - ^^BHHV, -5M &..BxyQ KMCr|syy!3]]:^D7JJD2J67]]:^D7JJD2J677%%!xx{H!xx$!)HHSZZTBZ?JSZZTBZ?J KnnR SZZQZ6 \8RSSZZQZ6 \8RSxx0 xx0 77b= L !!'//7L'//7LSZZQZ6 EWSZZQZ>?N HHV nnQ 77a< =q A =q Az@ 5 t 4 5z@ 5 t 4 5 5O7777F 5 5 5 5s0$W2W?X X2W< ?X XX!N) rrrrrrrr rrrcr>r<rrs//-bdTLA@@@ B;$T5r>rceZdZdZy)_TestGetNnzAxisctddgddgddgg}|jt}|j|}tj tj f}|jr |jn |j}t|jd|dt|j|t|jd|dt|dj|t|jd|dt|dj|t|jd |d t|d j|t|jd |d t|d j|tt|dy) Nrrhrrr+rrbrrCr)rrwrrrLr\rirrfgetnnzrr0r=rArr)rrbool_datraccepted_return_dtypesrs r<test_getnnz_axisz _TestGetNnzAxis.test_getnnz_axiss_aVV!W::d#s#"$((BHH!5(,(:(:$$ 8<6848<?8<?8<N)rrrr!rcr>r<rrs2r>rc|r|Sd}t|j}|jjD]"\}}|jds||||<$t |j dz|j |S)z Construct a class that either runs tests as usual (require=True), or each method skips if it encounters a common error. cBtjfd}|S)Nc |i|S#tttttf$rt j dwxYw)Nr!)rkrrrrrr)rPrfcs r<wrapperz6_possibly_unimplemented..wrap..wrappersFAq.wraps' __R  A! ANr>test_NotImplemented)dictrIr startswithrFr __bases__)rrequirer)new_dictrrs r<_possibly_unimplementedr1s    %,,,,. ,JD$w'!%d ,CLL#33MM r>c >ttt|ttt tt |tt|tt|tt|tt|xr|tt|xr|tt|tt|f } i} | D]e} | jD]T} | jds| j!| } | (t#d| j$d| d| j$| | | <Vgt'd| iS)z Construct a base class, optionally converting some of the tests in the suite to check that the feature is not implemented. r*z Test class z overloads test z defined in TestBase)rr1rrrrrrIrdrrrrrrIr-getrrrF)getsetslicingslicing_assignfancy_indexing fancy_assignfancy_multidim_indexingfancy_multidim_assignminmaxnnz_axisbasesnamesrrold_clss r<sparse_test_classrAs& $[& 9  #  $\7 ; $%7 H $%7 H $%=%13 $%7%3%O8OQ $%=%:%K|M $[& 9 $_h ? AE$ ELL D??7+iioG" ;s||nceZdZedZej ejejejgZ dZ dZ dZ dZdZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZy)TestCSRct5}|jtdt|i|cdddS#1swYyxYwNr)rr4r*r"rargsrDr7s r<rzTestCSR.spcreatorH<   .C JJ.0Q Rd-f- . . .!6?cltgdgdgdgd}|j|}t|jgdt |j gdt |j gdt|jdt|jd t |j|y) N)rrrrrr )rrrhrr rr1) rrrrrrrrrerrrrUr?s r<test_constructor1zTestCSR.test_constructor1Os 9" $  #!#((733;;w/3::i0SWWQSZZ&3;;=!,r>ctdd}d|d<|j|}t|jdgt |j dgt |j gdt|j|y)Nrrr rrr)rrrrrrr)rrrrrrrrrKs r<test_constructor2zTestCSR.test_constructor2[se % #  #!#((A3/3;;s+3::o6!#++-3r>ctddgddgddggd}|j|}t|jgdt |j gdt |j gdt|j|y) Nrrrhrr rrr )rrrrrrrrrKs r<test_constructor3zTestCSR.test_constructor3dst Aq6q6q6 !  #!#((733;;w/3::i0!#++-3r>ctgd}tgd}tgd}t||f}|j||fd}tt dj dd|j |jdd gd d gd d gfftj }tdd gd d ggtj }t||j |jgd gd gdff}|jdk(sJy)N rhrrrrrrrrhrrh rrrrrrrhrhrhrhr @g$@rt"@rvrg&@rw @@rr]rrrrrrrrrrrrhrhrrrrrrh) rr rrrrrrLuint64re)rrrrr!r1rMs r<test_constructor4zTestCSR.test_constructor4ns565634SI   $r516":--a3S[[]C  9a.Aq6Aq62B!C299 U 1~1v.bii@5#++-0  )i-C!DEww!||r>ctgd}tgd}tgd}|j|||f}t|jdyNrrrrrrrrhrr)rrrrrrrrr1s r<test_constructor5zTestCSR.test_constructor5Ey! "Y  $!89399U+r>cgd}gd}gd}|j|||f}t|jdtt j |j tjyra)rrrrrLrorA signedintegerrds r<test_constructor6zTestCSR.test_constructor6sS  $!89399e, cii)9)9:;r>ctddz}tgdtj}tgdtj}|j |||fd}tgdgd gd gd }tj |j rtjntj}t|jj |t|jj |t|j|y) Nrr)rrhrrrrhrrrhrrr^rr(r)rrrr ) rrrLrirrArr\rrrrr)rrrptrrPrUexpected_dtypes r<test_constructor_smallcolz!TestCSR.test_constructor_smallcolsay1}&bhh7L1   c3/v  > 9" $ d.@.@"((bhhOQXX^^^4QYY__n5199;*r>c |tddz}tjtjjdz}t ddd||dz|dzgtj }t gdtj }|j|||f}t|jjtjtj t|jjtjtj t|jdt |dzfy) NrrrYrrhrrkr)rrLrZr\r[rrirrrrArrr)rrlargerrmrPs r<test_constructor_largecolz!TestCSR.test_constructor_largecolsay1}"&&,Q1eU1WeAg6bhhGL1   c3/ 0QXX^^RXXbhh%78QYY__bhhrxx&89177QC O4r>c:td}tgd}tgd}|j|||fd}|j}|j t |j gdt |j|jy)NrrrhrrrrrrrhrXrlrrhrrr)rrrr&rrrrrrrrr>r?s r<test_sort_indiceszTestCSR.test_sort_indicessvay(y!  $!8 Ghhj 3;;73;;=#++-8r>cjtgd}tgd}tgd}|j|||fd}|j}|jt |j dt |j gdt |j|jy)Nrrrrrhrrrrrhrrrrrrrrrrvrlrr)rrr&eliminate_zerosrrerrrxs r<test_eliminate_zeroszTestCSR.test_eliminate_zeros-.01y!  $!8 Ghhj 377A&388I.3;;=#++-8r>c |jtjdjdddz }dD]}t t |j |dt||}t |j|jt|j|jt|j|jt|jtt||jy)NrrrrrrrrrrrrrrrrrrrrrrT) rrLrrrrrrrrrrrrrWrrs r< test_ufuncszTestCSR.test_ufuncs   ryy}44Q:S@ AJ JA Q/ 6AB "(( + qyy"** 5 qxx 3 rzz|^WR^AIIK-H I Jr>chtd}tgd}tgd}|j|||fd}td}tgd}tgd}|j|||fd}t||zj |j |j zy) Nrrtrurvrlrrrrrrhrrrhr)rrrrrrxs r<test_unsorted_arithmeticz TestCSR.test_unsorted_arithmeticay(y!  $!8 Gay*+y!  $!8 GcCi((*CKKMCKKM,IJr>ctjdgdgdgg}tjgd}tjjd|j tjj dd}|j |}|||f}t|r|j}t||||fyNrrhrrrerr rLrrrfrr3rr)rrrrorrrrps r<test_fancy_indexing_broadcastz%TestCSR.test_fancy_indexing_broadcast HHqcA3_ % HHY  t LL1- . NN1 !f C=++-CS!AaC&!r>cBtjddg}tjddg}tjddg}tjddg}|j|||fj}t d|j t |j tsJ|j|||fj}t d|j |jt d|j t|j||j|||fj}d|_t d|j t|j||jt|j|y)z@Ensure has_sorted_indices memoizes sorted state for sort_indicesrrrhTFN) rLrrr&rrrKrrrr)r sorted_inds unsorted_indsrrr}s r<test_has_sorted_indiceszTestCSR.test_has_sorted_indicessJhh1v& !Q( xxA1a&!   k6: ; @ @ BT1//0!..555   mV< = B B DUA001 T1//0199k2   mV< = B B D#T1//0199m4 199m4r>c|jtjdgtjdgtjddgf}td|jtjddg}tjddg}tjddg}|j|||fj }td|jt |jtsJ|jtd|jtdt|j|j|||fj }d|_td|jtdt|j|jtdt|jy)z=Ensure has_canonical_format memoizes state for sum_duplicatesrhrrTFN) rrLrrhas_canonical_formatr&rKrsum_duplicatesrr)rr}rrrs r<test_has_canonical_formatz!TestCSR.test_has_canonical_formatsb   ! rxx}bhh1v>NO PT1112((Aq6"xxA1a&!   gv6 7 < < >UA223!00$777 T1112QAII'   gv6 7 < < >!%T1112QAII' QAII'r>cHtjdtj}tjdtj}tjd}|j|||fd}|j|||fd}tjdtj}|j||fd}|j||fd}|jd} |jd} t |j j tjt |j j tjt |j j tjt |j j tjt | j j tjt | j j tj||||| | fD]} | | z y)Nrhrrrrlrr)rLrr\rrrrAri rrrvalsrPrUr!rr rrrBs r<test_scalar_idx_dtypezTestCSR.test_scalar_idx_dtype%!288,((1BHH-xx{   gv6l  K   gv6j  I XXfBHH -   bz  >   bz  <   | ,   z *QXX^^RXX.QXX^^RXX.QXX^^RXX.QXX^^RXX.QXX^^RXX.QXX^^RXX.Q1a# A E r>c|jtjdgdgfd}|j|}|j dtj |j dz|ddk(sJyNr)rrrlrrtrrLrrrrrrs r<test_setdiag_csrzTestCSR.test_setdiag_csr=i   4 1A37|  L NN1  !bggaggaj))*yA~~r>c|jgdg}|jgdg}||zjdk(sJ|j|jdk(sJy)Nrrrrrhr)rrerrrPrUs r<test_binop_explicit_zerosz!TestCSR.test_binop_explicit_zerosDsZ    { +    { +A{{azz!}  A%%%r>N)rrrrrrLrint_rrr rLrOrQr_rerirorrryrrrrrrrrrrcr>r<rCrCGs..88RWWbjj"--@K -44(,<+$ 59 9 J K "58(:0&r>rCc"eZdZedZdZy) TestCSRMatrixct5}|jtdt|i|cdddS#1swYyxYwrE)rr4r*rrFs r<rzTestCSRMatrix.spcreatorQ<   /C JJ.0Q Rt.v. / / /rIcttj}t|tsJ|j tusJ|j tjfk(sJyr@)rrLrrKr __origin____args__rrHs r<test_spmatrix_subscriptablez)TestCSRMatrix.test_spmatrix_subscriptableWsLBGG$&,///  J...277*,,,r>N)rrrrrrrcr>r<rrPs// -r>rceZdZedZej ejejejgZ dZ dZ dZ dZdZdZdZd Zd Zd Zd Zd ZdZy)TestCSCct5}|jtdt|i|cdddS#1swYyxYwrE)rr4r*r!rFs r<rzTestCSC.spcreatorbrHrIcxtgdgdgdgd}|j|}t|jgdt |j gdt |j gdt|jdt|j|jt|jd y) Nrrrrrrrhrrr )rrhrr)rrhrrhrrr0) rrrrrrrrrerrrKs r<rLzTestCSC.test_constructor1is} <|ctdd}d|d<|j|}t|jdgt |j dgt |j gdy)NrNr rrhrrh)rrrrrrr)rrrrrrrrKs r<rOzTestCSC.test_constructor2ssU % #  #!#((A3/3;;s+3::o6r>ctddgddgddggd}|j|}t|jddgt |j ddgt |j gdy)Nrrrhr r()rrrrrrrrKs r<rQzTestCSC.test_constructor3{sc Aq6Aq6Aq6*C 0  #!#((Aa513;;!u-3::g.r>cRtgd}tgd}tgd}t||f}|j||fd}tt dj dd|j |jgdgd gd ff}|jd k(sJy) NrSrTrUr]rrrr[r\r]rh)rr rrrrrre)rrrrr!r0s r<r_zTestCSC.test_constructor4s5656CD SI   $r516":--a3S[[]C  )i-C!DEww!||r>ctgd}tgd}tgd}|j|||f}t|jdyNrbrcr)rr)rrrrrrrrr0s r<rezTestCSC.test_constructor5rfr>cgd}gd}gd}|j|||f}t|jdtt j |j tjyr)rrrrrLrorArhrs r<rizTestCSC.test_constructor6sS  $!89399U+ cii)9)9:;r>cjtgd}tgd}tgd}|j|||fd}|j}|jt |j dt |j gdt |j|jy)Nr{r|r}rXrhrlrr)rrr&r~rrerrrxs r<rzTestCSC.test_eliminate_zerosrr>c(td}tgd}gd}|j|||fd}|j}|j t |j gdt |j|jy)Nrrtrurrlrw)rrrr&rrrr)rrrrmr>r?s r<ryzTestCSC.test_sort_indicessqayO$  $S!1 @hhj 3;;73;;=#++-8r>c |jtjdjdddz }dD]}t t |j |dt||}t |j|jt|j|jt|j|jt|jtt||jy)Nrrg5@rT) rrLrrrrrrrrrrrrs r<rzTestCSC.test_ufuncsrr>chtd}tgd}tgd}|j|||fd}td}tgd}tgd}|j|||fd}t||zj |j |j zy) Nrrtrurrlrrr)rrrrrrxs r<rz TestCSC.test_unsorted_arithmeticrr>ctjdgdgdgg}tjgd}tjjd|j tjj dd}|j |}|||f}t|r|j}t||||fyrrrs r<rz%TestCSC.test_fancy_indexing_broadcastrr>cHtjdtj}tjdtj}tjd}|j|||fd}|j|||fd}tjdtj}|j||fd}|j||fd}|j d} |j d } t |j jtjt |j jtjt |j jtjt |j jtjt | j jtjt | j jtj||||| | fD]} | | z y) Nrhrr)rrrl)rrrrr) rLrr\rrrrrArirs r<rzTestCSC.test_scalar_idx_dtyperr>c|jtjdgdgfd}|j|}|j dtj |j dz|ddk(sJyrrrs r<test_setdiag_csczTestCSC.test_setdiag_cscrr>N)rrrrrrLrrrrr rLrOrQr_rerirryrrrrrrcr>r<rrasw..88RWWbjj"--@K'7/ ,< 99 J K "0r>rceZdZedZy) TestCSCMatrixct5}|jtdt|i|cdddS#1swYyxYwrE)rr4r*rrFs r<rzTestCSCMatrix.spcreatorrrIN)rrrrrrcr>r<rrs//r>rczeZdZeZej ejejgZ dZ dZ dZ dZ dZdZy)rc|jd}d|d<d|d<||jz}||jjz}t|j |j y)N)rXrrXr=rrr)rr=rrr)rrSrrs r< test_multzTestDOK.test_mult s[   x ($$ G   199; 4r>c|jd}d|d<d|d<|dz}tddgddgddgg}t|j||d z}|d z}t|j|y) Nrr/rrrXrrri)rrrrr s r<test_add_nonzerozTestDOK.test_add_nonzerosz NN5 !## F B7RHr2h/ 0199;* F F199;*r>c|jd}d|d<d|d<t|dz j|jdz t|dz j|jdz yNrrr/rrrirrrrrs r<test_dok_divide_scalarzTestDOK.test_dok_divide_scalar!s_ NN5 !##AbD>>+QYY[^<AaC==?AIIKM:r>cpd\}}|j||f}d|d<d|d<d|d<d|d <d |d <d |d <t|jdd|dz ft||j }t|jdd|dz ft|||}}|j }t |j||ft|j|dz ddft||j}t|j|dz ddft|y)N)rrrr6rhrrrQrr rr]rrE) rrrrrr rrr)rrrrPr0rUr1s r< test_convertzTestDOK.test_convert)sA   1v &###### 199;q1u-uQy9ggi3;;=1Q3/q;QA KKMQWWq!f%199;qs1u-uQy9ggi3;;=1Q/q;r>ctt|jtgdgdgdgd}|j|}t |j |j t |j ||j|}t |j |j gdgdg}|j|tj}t |j tj|j }t |j tjt||y)Nrrrr r(rr) rrrrrrArrrLrr)rrUrSrrr das r< test_ctorzTestDOK.test_ctorHsi!3!34 <|c|jd}d|d<td|jvd|jd}d|dddf<tt|jdk(dy)Nr^rrzUnexpected entry (0,0) in keyszUnexpected entries in keys)rrkeysrrs r<test_ticket1160zTestDOK.test_ticket1160]sl   u %# QVVX%'GH   u %!A#AFFH "$@Ar>N)rrrr#rrLrrrr rrrrrrrcr>r<rr s>I77BJJ 6K5 +;<>%* Br>r)r<r=ceZdZeZy) TestDOKMatrixN)rrrrrrcr>r<rrkIr>rceZdZeZej ejejgZ dZ dZ dZ dZ dZdZdZdZd Zy ) TestLILctdtj}d|d<d|d<|jdtj}d|d<d|d<t j dk7r4t ||jz||jzjt ||jjz||jjzjy)NrXrXrXr=y4@rrppc64le) rrLrrplatformmachinerr=rrr s r<test_dotzTestLIL.test_dotws (BMM *$$   xr}}  =$$     * q133wQSS(9(9(; <1q{{}.Q[[]__1D0M0M0OPr>c|jd}d|d<|dz}t|dd|dz}t|ddy)Nr^rhrrr)rr)rrBs r<test_scalar_mulzTestLIL.test_scalar_mulsI   v &$ aCQtWa aCQtWa r>c|jd}d|d<d|d<t|dz j|jdz t|dz j|jdz yrrrs r<test_truediv_scalarzTestLIL.test_truediv_scalarsc NN6 "$$AF++-qyy{R/?@AE??,aiikAo>r>c2|jgdgdg}|jgdgdg}|||zf|||z fd|dzfd}|jD]V\}\}}|j}t|d|d|t |j |j X|jdt jd  }|jgd }|d ddfxx|z cc<t |d ddfj |y) Nrrhrrrr)addsubmul__i__r<rr)皙?rrr) rrr&rrrrLrAr)rrSrTroprrorHs r<test_inplace_opszTestLIL.test_inplace_opss     95 6    95 61q5z1q5z1q5z#&*ZZ\ E !B!VVXF )GFc"RL )% 0 v~~/1A1A1C D  E   vRXXi-@  A LL ) !Q$1 1QT7??,a0r>cgdgdg}|jt|}t|D]7\}}t|j t|||j 9y)Nrr)ndmin)rrr/rrr)rrow_datarTrrs r<test_lil_iterationzTestLIL.test_lil_iterationsXy)   uX /l RFAs s{{}eHQKsxx.P Q Rr>c|jd}d|d<d|d<d|d<d|d <d |d <|j}|j|}t|j|jy) NrrXr=rrr)rrr)rrr)rr)rrrr)rrTrrs r<test_lil_from_csrzTestLIL.test_lil_from_csrsp   x ($$$$$ GGI   q !199; 4r>c|jtdjdd}|j|}t |t gdddfj |t gdddfy)Nr rrrhr)rrrrrrr)rr}rSs r<test_fancy_indexing_lilzTestLIL.test_fancy_indexing_lilsm LL++Aq1 2   q !QuY'1,-557uY'1,- /r>c|jd}d|d<d|d<d|d<d|d <|jd}d|d<d|d <d|d<d|d <d|d <t|j|j|j|jt|j|jgd gd gdgdgy)Nr]rrrhrrrrrQr/rrwrdrrr)rrr)rrrr)rlrs r<test_point_wise_multiplyz TestLIL.test_point_wise_multiplys   v &$$$$   v &$$$$$1::a=002::a=002 4 1::a=002%%%&( )r>ch|jtjd}|dz}d|dddf<y)Nr^rwr)rrLrrEs r<test_lil_multiply_removalz!TestLIL.test_lil_multiply_removals0   rwwv / R!Q$r>N)rrrr%rrLrrrr rrrrrrrrr rcr>r<rrssNI77BJJ 6K Q!?1(R 5/).r>r)r<ceZdZeZy) TestLILMatrixN)rrrrrrcr>r<r r rr>r ceZdZeZej ejejgZ dZ dZ dZ dZ dZej j#ddd Zd Zd Zd Zd ZdZdZdZdZy)TestCOOctgd}tgd}tgd}|j|||ffd}ttdj dd|j |jdd gd d gd d gfft j }tdd gd d ggt j }t||j y) NrSrTrUr]rrrrZrrr)rrrrrrrLr^)rrrrr`rMs r<rLzTestCOO.test_constructor1s5656CD  $Cy!1%86":--a3S[[]C  9a.Aq6Aq62B!C299 U 1~1v.bii@5#++-0r>ctgd}tgd}tgd}|j|||ffd}tgdgdgdg}t||jy)N) rrrhrhrhrhrrrhrh) rrhrrhrrrrrrh) rhrrrrrrrhrrr^)rrrr)rrr)rrrr)rrrrr`rs r<rOzTestCOO.test_constructor2s_)*)*-.  $Cy!1%8ZJ783 .r>c|jd}t|jdt|jgt|jgt|j gt|j tdy)Nr])rrrrrrrrrr`s r<rQzTestCOO.test_constructor3 s^  '399U+3772&3772&388B'3;;=%-8r>cPtgdgdgdg}|j|}t|j|tgd}|j|}|jr|n|j dd}t|j|t jtd5|jgdgd gd fdddt jtd 5|jgdd dddy#1swYCxYw#1swYyxYw)Nrrrr)rrrr)rrrrrrzobject cannot be interpretedri)rr!r rrrrl) rrrrrrrrrr)rrr`ros r<r_zTestCOO.test_constructor4sY !  %3;;=#.I  %,,3#++a2D3;;=(3]]9,K L N   |0L M N]]:-C D >   f  = > >  N N > >s3D1DDD%cdg}|j|dgdgffd}|jtj|jk(sJy)Nrrr)rrArLr)rrr`s r<"test_constructor_data_ij_dtypeNonez*TestCOO.test_constructor_data_ij_dtypeNone*sKs  $!qc !34 @yyBHHTN00000r>FzCOO does not have a __getitem__runreasoncyr@rcrs r<rzTestCOO.test_iterator/ r>cddgg}|j|j}t|j|yrm)rtodiarr)rrrys r<test_todia_all_zeroszTestCOO.test_todia_all_zeros3s6Q  '--/3;;=%0r>c|jd}|j|jddgddgddgff}|jt|jddgddgg|jddgddgddgff}|jt|jddgddggt|jdgt|j dgt|j dgy)Nr]rrhrr)rrrrrrrrs r<test_sum_duplicateszTestCOO.test_sum_duplicates8s  '   1Q%1Q%!A!89 3;;=Aa5!A-8  1Q%1Q%!A!89 3;;=Aa5!A-8377QC(377QC(388aS)r>c|jgdgdgdff}|j}t|j|jy)Nr[r\r])rrrr)rr`rFs r<test_todok_duplicateszTestCOO.test_todok_duplicatesEs=  )i-C!DEiik3;;=#++-8r>c|jgdgdgdff}|j}t|jdz|j|j }t|jdz|jy)Nr[r\r]rh)rrrrer)rr`r1r0s r<test_tocompressed_duplicatesz$TestCOO.test_tocompressed_duplicatesJs^  )i-C!DEiikSWWq[#''*iikSWWq[#''*r>c\tgd}tgd}tgd}|j|||ffd}|j}|jt |j dk7j t|j|jy)Nr{)rrrrrrrrr|rvrlr) rrr&r~rrallrr)rrrrr>r?s r<rzTestCOO.test_eliminate_zerosQs-.,-,-  $c !36 Bhhj Q##%&3;;=#++-8r>cgdgdgdg}d}|j|}|j|}t|j|ju|j|d}t|j|ju|j|d}tt j |j|j y)NrrrrFrT)rrrrrLrR)rrr new_shaperBrCs r<test_reshape_copyzTestCOO.test_reshape_copy[slO<   s # IIi !&& ! IIieI ,!&& ! IIidI +B''778r>c|jdgdgdgffd}|jdgdgdgffd}t|jdd|k7jdk(t|jdd |k7jdk(y) Nri-rX)-)r.r-rrrr)rrrre)rmat1mat2s r<test_large_dimensions_reshapez%TestCOO.test_large_dimensions_reshapeis!!A3'TF(;"cttjttf}t |t sJ|jtusJ|jtjttfk(sJttj}t |t sJ|jtusJ|jtjfk(sJyr@) r$rLrrrrKrrrrs r<test_sparray_subscriptablez"TestCOO.test_sparray_subscriptablets277E#J./&,///  I---277E#J"7777277#&,///  I---277*,,,r>N)rrrr$rrLrrrr rLrOrQr_rrrxfailrr r"r$r&rr+r1r3rcr>r<rrsI77BJJ 6K 1 /9>,1  [[5)JK L 1 *9 +9 9 M -r>r)r5r6r7r8r9ceZdZeZy) TestCOOMatrixN)rrrrrrcr>r<r6r6rr>r6c,eZdZeZej ejejgZ dZ e jjdddZeddZe jj#d d Zd Zd Zd ZdZdZdZdZy)TestDIAc tgdgdgdgdg}tjgdgjdd}tjgd }t|j ||fd j |y) N)rrrr)rrhrr)rrhrr)rrrrrrrrbrrrhrrl)rrLrepeatrrr)rrrrs r<rLzTestDIA.test_constructor1st <! "xx $++A1+5((8$T''wv'FNNPRSTr>FzDIA does not have a __getitem__rcyr@rcrs r<rzTestDIA.test_iteratorrr>rcP|jtjd}t|jj tj |jddt|jj tj |jtjd}t|jj tj|jddt|jj tjy)NrrPrhrr) rrLr(rrrAr\rrirrs r<test_setdiag_dtypezTestDIA.test_setdiag_dtypes   rvvay )QYY__bhh/ $! QYY__bhh/   rvvay )QYY__bhh/ $! QYY__bhh/r>zDIA stores extra zerosrcyr@rcrs r<r!zTestDIA.test_getnnz_axisrr>c|jgdgdgfd}|j}t|jj|t|j j|y)NrrrErl)rrrrr)rrros r<test_convert_gh14555zTestDIA.test_convert_gh14555s]    bT2&  A99;1779,,.91779,,.9r>c2|jddgddggj}tj|j|j f|j }tjtj|dkD}|j|k(sJy)Nrrhrrr) rrrLravel_multi_indexrrrr(diffr)rr flat_indsinds_are_sorteds r<test_tocoo_gh10050zTestDIA.test_tocoo_gh10050sz   AA/ 0 6 6 8((!%%A &&!3a!78%%888r>c,tjgdgjdd}tjgdtj}t j ||fd}|j }|jjtjk(sJ|j}|jjtjk(sJ|j}|jjtjk(sJy) Nrrrrbr:rrrl) rLrr;r\r~r&rrrArrr)rrrryr`r1r0s r<test_tocoo_tocsr_tocsc_gh19245z&TestDIA.test_tocoo_tocsr_tocsc_gh19245sxx'..qq.9((:RXX6gf=iikww}}(((iik{{  BHH,,,iik{{  BHH,,,r>c:tddg}|tdgdz}t|}t|}||z}t|tsJt|j ||z||z}t|tsJt|j ||zy)Nrrhr)r rrKrrrrSrTr rrs r<test_add_sparsezTestDIA.test_add_sparses !QL aS! mmCi#z***3;;=!a%0Ci#z***3;;=!a%0r>ctddg}|tdgdz}t|}t|}||z }t|tsJt|j ||z ||z }t|tsJt|j ||z |j d}t||z j ||z t||z j ||z y)Nrrhrr1)r rrKrrrNrMs r<test_sub_sparsezTestDIA.test_sub_sparses !QL aS! mmCi#z***3;;=!a%0Ci#z***3;;=!a%0ll5!C#I..0!a%8C#I..0!a%8r>c>|jddgddgg}|dz}t||jsJt|j ddgddgg|j d}t||jsJt|j ddgddggy)Nrrhrrrrr)rrKrzrrr)rrresres2s r<rzTestDIA.test_mul_scalars   AA/ 0!e#q{{+++3;;=Aq6Ar7*;<zz!}$ ,,,4<<>QFQG+<=r>ctgdgdg}tddgddgddgg}t|}t|}d |j|jd k(<d |j|jd k(<t|j |t|j |||z}||z}t |tsJt|j |t|j gd t|jt|j||z}||z}t |tsJt|j |t|j gd t|jt|jtgd gdgddgfd}tgdgdgd dgfd}||z}t|j tdd gt|jgdgdg||z}t|j tdd gt|jgdgdgy)Nrrrr rrrrrr)rCrrrrh)rurvrw)rtrrYrrCr)rVrrX)rururWrhr)8@gA@ru)rV,@;@)rVruru)rXrVrW)rrrrrrKr)rrSrTr rrrs r<test_matmul_diazTestDIA.test_matmul_dias 9  B888 mm"$Q"$Q3;;=!,3;;=!, ECi#z***3;;=!,3;; 3388Z]%7%78 ECi#z***3;;=!,3;;(9:388Z]%7%78<6B@&I<6Q@&ICi3;;r1g7388n&4&6 7Ci3;;r1g7388m&4&6 7r>N)rrrr&rrLrrrr rLrrr4rrr?rr!rCrIrKrNrPrrYrcr>r<r8r8sI77BJJ 6KU [[5)JK L Q 0  0 [[56 7 :9 - 19& >*7r>r8)r5r6r7r8r9r<r=ceZdZeZy) TestDIAMatrixN)rrrrrrcr>r<r[r[ rr>r[ceZdZeZej ejejgZ dZ dZ dZ dZ dZdZdZdZd Zd Zd Zej,j/d d dZej,j/d ddZdZej,j/d ddZej,j9eddZy)TestBSRctgd}tgd}td}tgdgdg|d<tgdgdg|d <tgd gd g|d <tgd gdg|d<tgdgdgdggdgdg}|j|||fd}t |j ||j|||f}t |j |yN)rrhrhr)rrhrhr)rrhrr(rRrr)rrrXr)rrr)rrrrh)rrrX)rrr rr rrQrrrl)rrr rrr)rrrrrSr s r<rLzTestBSR.test_constructor1/sy! "W~"$%Q#%&Q$&'Q$&'Q )Ii0772C D  $wv!6V DS[[]A&  $wv!67S[[]A&r>cdD]6}t|}t|j|j|8td}t|j|dj|t|j|dj|t gdgdgdggd gd g}t|j|j|t|j|d j|t|j|d j|t|j|dj|t|j|dj|t|j|dj|t|j|dj|t|j|d j|t gdgdgdggd gd g}t|j|dj|y)N)rr r)rXr)rrr6)rrrrTrr rrQr(rRr`rlrr)rhr)rrr)rrrrr )rrrSs r<rOzTestBSR.test_constructor2FsB =Ee A ++A.668! < = %LT''V'<DDFJT''V'<DDFJ )Ii0772C DT''*224a8T'''9AACQGT''V'<DDFJT''V'<DDFJT''V'<DDFJT''W'=EEGKT''W'=EEGKT''W'=EEGK )Ii0772C DT''V'<DDFJr>cgdgdgdff}tddgddgg}t|j|d j|y) NrrrrrrhrrrT)rrrr)rargrSs r<rQzTestBSR.test_constructor3^sJ'*+ Aa5!A- T''v'>FFH!Lr>c"d}tj||dftj}tjd|gtj}tj |tj}|j |||f|dfdy)NrrrrF)rUr&)rLrrrr\rr)rrrrrs r<r_zTestBSR.test_constructor4dso ww1ay01a&1))ARXX. D'62q!f5Qr>cd}tj|}tj|||f}tjd|g}tj|}t t 5|j |||fdddt t 5|j |||fddddt t 5|j |||fddddy#1swYfxYw#1swYDxYw#1swYyxYw)Nrrr^rTr)rLrrrrrr)rr data_1dimrrrs r<rezTestBSR.test_constructor5ms GGAJ ww1ay!1a&!))A, : & =    7F; < =: & M   gv6)  L M: & J   gv6&  I J J = = M M J Js$+C%C1C=%C.1C:=Dc@dgdggdgdggg}tjddgtj}tjddgtj}|j|||fd}|jtj|jk(sJy)Nrrrhrr6rT)rLrr\rrA)rrJrrrUs r<test_default_dtypezTestBSR.test_default_dtypes3*sQCj)1a&1((Aq62   8F  Kww"((6*00000r>c0tgd}tgd}td}tgdgdg|d<tgdgdg|d <tgd gd g|d <tgd gdg|d<tgdgdgdggdgdg}|j|||fd}|j }|j j }t |j|t |j|jyr_)rrr rrrrr)rrrrrSAbsrAcsr Acsr_via_coos r<test_bsr_tocsrzTestBSR.test_bsr_tocsrs|$ %Y"$%Q#%&Q$&'Q$&'Q , l;Y' )!!4&"9!Izz|zz|))+ T\\^Q'T\\^\%9%9%;ctgdddgddggj}|jddd}tgd}tgd}|j |||fd}|j }|j t|jd t|j|jy) Nr{rrrhr|r})rrrlr) r r=rrrr&r~rrerrxs r<rzTestBSR.test_eliminate_zeross,!uaUm<>>||Bq#01y!  $!8 Ghhj 377C(3;;=#++-8r>cjtjjd|jtjjdd}d|j|jdk<|j t |jdt|jjdd|j|jdk<|j t |jdt|jjd t|jtjd|j t |jdt|jjd t|jtjdy) Nr)rrrrTg?B)rrhrrvr) rLrrfrrr~rrerrrrr>s r<test_eliminate_zeros_all_zeroz%TestBSR.test_eliminate_zeros_all_zeros q   ryy//9V  L!"qvv} QUUB166<<4!"qvv} QUUA166<<3199;(:; QUUA166<<3199;(:;r>c|jtdjddd}t|jdjdd}t ||z|j |zy)NxrrrrrTrrrrrrrrras r<test_bsr_matveczTestBSR.test_bsr_matvecs_   vg66s3?5  Q 1771:  & &r! ,QUAIIK!O,r>c|jtdjddd}t|jddzjdd}t ||z|j |zy) NrsrrrtrTrrrruras r<test_bsr_matvecszTestBSR.test_bsr_matvecssc   vg66s3?5  Q 1771:a< ( (A .QUAIIK!O,r>FzBSR does not have a __getitem__rcyr@rcrs r<rzTestBSR.test_iteratorrr>zBSR does not have a __setitem__cyr@rcrs r<rzTestBSR.test_setdiagrr>cLtjgdgdgdg}|j|d}t|j ddut |j ddgd dgd dgg|j d t |j ddgd dgg|j dt |j ddgd dgddgg|j d t |j gd gdgdgtt|jdy)NrrrrrTrrrrhrrrrrr) rLrrrrrrrrrs r<test_resize_blockedzTestBSR.test_resize_blockeds HHl""$ % NN1N / D()199;!Q*+Q*+Q)1 2 199;!Q*+Q)1 2 199;!Q*+Q*+Q)1 2 199;)5)5)7 8 j!((F3r>cyr@rcrs r<rz"TestBSR.test_setdiag_comprehensiverr>zexceeds memory limitr@ctjdtj}tjdtj}tjd}|j|||fd}|j|||fd}|jd}|jd}t |j j tjt |j j tjt |j j tjt |j j tj tjd}tjd } |j|||fd} |j| ||fd} t | j j tjt | j j tj||||| | fD]} | | z y#ttf$rd} d} Y(wxYw) Nrhrrrrrlr)rrr)rrr) rLrr\rrrrAri MemoryErrorr) rrrrrPrUrr vals2vals3rrrBs r<rzTestBSR.test_scalar_idx_dtypes!288,((1BHH-xx "   gv6l  K   gv6j  I   | ,   z *QXX^^RXX.QXX^^RXX.QXX^^RXX.QXX^^RXX. HH_-EHH]+E""E7F#;<"PA""E7F#;:"NA  2  2Q1a# A E  Z( AA s'B2H,,IIN)rrrr'rrLrrrr rLrOrQr_rerhrmrrqrvrxrrr4rrr|rskipifIS_COLABrrcr>r<r]r](s I77BJJ 6K'.K0M RJ(1=. 9<.- -  [[5)JK L  [[5)JK L 4. [[5)JK L  [[)?@Ar>r])r5r6r7r8r9r=ceZdZeZy) TestBSRMatrixN)rrrr rrcr>r<rrrr>rcj|jdd}tj|jtjs.tj|jtj r||f|zS|f|z|fzS|dk(j }|jdd}|dddxxdzcc<d|ddd<|djdkDr=td|D}d|dzf|ddz}d|dzdzf|ddz}d||<d||<td|D}||f|zS|f|z|dzfzS) z-Duplicates entries to produce the same matrixrNrrhrbrc3&K|] }|d ywrrc).0ps r< z&_same_sum_duplicate..0s,QAaD,sc3>K|]}|jdyw)rhN)r;)rrs r<rz&_same_sum_duplicate..6s7w"7s) poprLrorArunsignedintegerrr;rnr)rindsrDr zeros_pospospos1pos2s r<_same_sum_duplicatersP ZZ$ 'F }}TZZ* }}TZZ!3!34 >7T> !7T>VI- -##%I ;;qq; !D1INIDAJ|1,),,#a&{SW$#a& }s12w&T T 7$7 7D ~w~w~! --r>ceZdZddfd Zej j ddZej j ddZej j d d Z xZ S) _NonCanonicalMixinFsorted_indicesct|}||g|i|}|jdk(j}|djdkD}|rZ|djdz} t 5} | j td|j||d| |d| }ddd|j||} d|vr|j|d<|| fi|} | jtjtjfvrd} nd} t| j|j| |r&t!| j"dk(j%| S#1swYxYw) zcReplace D with a non-canonical equivalent: containing duplicate elements and explicit zerosrrhrrNrgh㈵>gHz>)rtol)superrrrrnrr4r*_insert_explicit_zero_arg1_for_noncanonicalrrArLrrrrrr)rrrrGrD constructr}zero_pos has_zerosrr7arg1NCrrzs r<rz_NonCanonicalMixin.spcreator?sXG% a )$ )& )IIK1$--/a[%%)    !#A"$ R 24UV..q(1+a.(1+a.Q R**1n= & ggF7O t &v & 88 BLL1 1 DD aiik=  RWW\&&( ) 3 R Rs )6EE#z"bool(matrix) counts explicit zerosr@cyr@rcrs r<rz_NonCanonicalMixin.test_booldrr>z!getnnz-axis counts explicit zeroscyr@rcrs r<r!z#_NonCanonicalMixin.test_getnnz_axishrr>znnz counts explicit zeroscyr@rcrs r<rgz_NonCanonicalMixin.test_emptylrr>) rrrrrrrrr!rg __classcell__)rzs@r<rr>s16#J [[AB C  [[@A B  [[89 : r>rceZdZddZdZy)_NonCanonicalCompressedMixinct|j|j|j\}}}|sOt ||ddD]=\}}|||dddj ||||||dddj |||?|||fS)5Return non-canonical constructor arg1 equivalent to M)rrNr)rrrrr~r&)rr}rrrrstartstops r<rz3_NonCanonicalCompressedMixin._arg1_for_noncanonicalrs 3AFFAII;<88!Egv"66!":6 A t&-eD&9$B$&?&D&D&Fd##'d#3DbD#9#>#>#@U4  AWf$$r>cd|||f<|Srmrcrr}rrs r<rz2_NonCanonicalCompressedMixin._insert_explicit_zero|s!A#r>N)F)rrrrrrcr>r<rrqs %r>rceZdZdZdZej jdddZej jdddZ y ) _NonCanonicalCSMixinclfd}tD]%}dD]}|tj|| 'y)Nc@tgdgdgdgdg|} j||}|j\}}t| |D]*}t| |D]}t |||f|||f,dD]#}t t tf|j|%y)Nrwrrrdrrr) rrrr rrrrr) rArrrSr}rrrr!rs r<rz3_NonCanonicalCSMixin.test_getelement..checksw (-.Aq@A''CAaA2q\ 1r11A 1Q31Q301 1C Jz95q}}bI Jr>)FTr)rrrArs` r<rz$_NonCanonicalCSMixin.test_getelements; J & 7E"/ 7bhhuo~6 7 7r>cdtjd}|j|}|jgdg}|j|dddf<t 5}|j t d||dddf<dddt|j||jj|dddf<t 5}|j t d|j|dddf<dddt|j|y#1swYxYw#1swY0xYw)Nrrrrrh) rLr(rrrr4r*rrr=)rrrSrTr7s r<test_setitem_sparsez(_NonCanonicalCSMixin.test_setitem_sparses FF1I NN1  NNG9 %!A#   C JJ.0Q RAacF  199;*""$!A#   C JJ.0Q RSSAacF  199;*     s D *D&D#&D/Fz(inverse broken with non-canonical matrixrcyr@rcrs r<rz_NonCanonicalCSMixin.test_invrr>z&solve broken with non-canonical matrixcyr@rcrs r<rz_NonCanonicalCSMixin.test_solverr>N) rrrrrrrr4rrrcr>r<rrs`7*+" [[5)ST U  [[5)QR S r>rc eZdZy)TestCSRNonCanonicalNrrrrcr>r<rrr>rc eZdZy)TestCSRNonCanonicalMatrixNrrcr>r<rrrr>rc eZdZy)TestCSCNonCanonicalNrrcr>r<rrrr>rc eZdZy)TestCSCNonCanonicalMatrixNrrcr>r<rrrr>rceZdZdZej j dddZej j dddZy) TestBSRNonCanonicalch|j}d|||f<|j|jS)NrrT)rrrU)rr}rrrBs r<rz)TestBSRNonCanonical._insert_explicit_zeros/ GGI!A#www--r>Fz&diagonal broken with non-canonical BSRrcyr@rcrs r<rz!TestBSRNonCanonical.test_diagonalrr>z"expm broken with non-canonical BSRcyr@rcrs r<rzTestBSRNonCanonical.test_expmrr>N) rrrrrrr4rrrcr>r<rrs[.  [[5)QR S  [[5)MN O r>rc eZdZy)TestBSRNonCanonicalMatrixNrrcr>r<rrrr>rc eZdZddZdZdZy)TestCOONonCanonicalNclt|j|j|j\}}}|||ffS)r)rrrr)rr}rrrrs r<rz*TestCOONonCanonical._arg1_for_noncanonicals1,QVVQUUAEEBc3c3Zr>ctj|jjj d|jf|_tj|j jj ||j f|_tj|j jj ||j f|_|Srm)rLr_rrArFrrrs r<rz)TestCOONonCanonical._insert_explicit_zerosqvv||((+QVV34aeekk&&q)15501aeekk&&q)15501r>c2|jtjd}|j|j ddgd|jt tj tj|jdk\y)Nrrhrrr) rrLr(rrrr(rFrr>s r<test_setdiag_noncanonicalz-TestCOONonCanonical.test_setdiag_noncanonicalsf NN266!9 %  1a&A  rwwquu~*+,r>r@)rrrrrrrcr>r<rrs  -r>rc eZdZy)TestCOONonCanonicalMatrixNrrcr>r<rrrr>rc #K|dk(r&tttttt t g}n:|dk(r&tttttttg}ntd|ddddddd d d d }|D]}tt!|D]}t#||}|j%d s!t#|d dr/g}|j'|}t)|r$|t*j,j/|gz }t#|dg}|D]"} | j0dvs|j3| $t+j4|||yw)aYield all tests for all formats that use get_index_dtype 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! r+r,zparameter sp_api=z& is not one of 'sparray' or 'spmatrix'z%expm for 64-bit indices not availablez)linsolve for 64-bit indices not availableztest implemented in base classz%test actually requires 64-bit to workztest verifies int32 indexesztest verifies int64 indexes)rrrrr1rorrrKr*rFr@ pytestmark)rrr4xslow)marksN)r]rrrCr8rrrr6rrr[rr rsorteddirrr-r4rrrrrrNparam) sp_api TEST_CLASSES SKIP_TESTSr method_namemethodrr8markersrs r< cases_64bitrs['7G !'   : %}m& &  -fY.TUVV=?A!A)P%B%B*G JB!#c(+ BKS+.F&&w/6 nn[19fkk..c.:;;E!&,;#+Dyy$HH T*+ll3 5AA BBsB*E- E;A"E2Ec eZdZeeeeeee e e e g Z dZej j"dZej j"dZej j"dZy) Test64Bitctj|}|jdvr4|jj|k(xr|jj|k(S|jdk(r4|j j|k(xr|j j|k(S|jdk(r|jj|k(Std|d)N)r0r1r/r`ryzmatrix z has no integer indices) rLrArrrrrrr)rrrAs r<_compare_index_dtypezTest64Bit._compare_index_dtype-s 88, ,IIOOu,K188>>U3J K XX EEKK5(Dquu{{e/C D XX IIOOu, -wqe+BCD Dr>c`tdfd}jD] }|| y)NrXrtcB|tjjdd}tj |tj |tjjdd}tj |tj y)NrXrr)rLrr3rrr\ri)mat_clsrrs r<rz4Test64Bit.test_decorator_maxval_limit..check<sg r1-.A D--a: ; r1-.A D--a: ;r>r MAT_CLASSESrrrs` r<test_decorator_maxval_limitz%Test64Bit.test_decorator_maxval_limit8s: !b 1 < 2 < '' G 'N r>c`tdfd}jD] }|| y)NTrc,d}d}tdD]w}|tjjdd}|xs j |tj }|xs j |tj }|st|swytd)NFrYrz#both 32 and 64 bit indices not seen)r rLrr3rr\rirv)rseen_32seen_64rrrs r<rz5Test64Bit.test_decorator_maxval_random..checkJsGG3Z LBIINN1a01!KT%>%>q"((%K!KT%>%>q"((%Kw  L%%JKKr>rrs` r<test_decorator_maxval_randomz&Test64Bit.test_decorator_maxval_randomFs< ! - L . L'' G 'N r>c6ttjdd}ttjd}|ttt |ttt |t tt|t tty)Nr)rdryc|ddgddgddgg}tt|jdtt|jd|gd gd g}tt|jdtt|jd|gd gd g}tt|jdd |_tt|j y Nrrhrrrrrbrr)rrrrbF)rrvrfr0rrrrrrPs r< check_limitedz3Test64Bit.test_downcast_intp..check_limitedbs1v1v1v67A .!// B .!%%a 8y)45A .!// B .!%%a 8y)45A .!// B%*A " .!*:*: ;r>rdc@|ddgddgddgg}|jd|jd|gd gd g}|jd|jd|gd gd g}|jdd |_|jyr)rfr0rrrs r<check_unlimitedz5Test64Bit.test_downcast_intp..check_unlimitedrs1v1v1v67A OOO # EEqEMy)45A OOO # EEqEMy)45A OOO #%*A "   r>) rrLrir!r"r$rrr)rrrs r<test_downcast_intpzTest64Bit.test_downcast_intpZsq !RXXq I < J < !RXX 6  7  iI6 9i8j*j9 J ;r>N)rrrr rrrrr'r$r!r"r&rrrr thread_unsaferrrrcr>r<rr&s J J 9iIK E [[   [[& [[*<*rceZdZdZy) RunAll64Bitc 8tdi|d}|||y)Nc|}t|dr|j t||t|dr|jyy#t|dr|jwwxYw)N setup_methodteardown_method)rrrr)rrinstances r<rz,RunAll64Bit._check_resiliency..checksluHx0%%' /.+.08%67,,.878%67,,.8s AA3rc)r)rrrrrs r<_check_resiliencyzRunAll64Bit._check_resiliencys* ! &2 & / ' / c;r>N)rrrrrcr>r<rrs r>rceZdZejj deddZejjdejj deddZ ejj deddZ ejj deddZ y) Test64BitArraycls,method_namer+c,|j||dyNrXrrrrrs r<test_resiliency_limit_10z'Test64BitArray.test_resiliency_limit_10 sKbAr>rhc,|j||dyNTrrrs r<test_resiliency_randomz%Test64BitArray.test_resiliency_random sK=r>cH|j||tjyNrrrLr\rs r<test_resiliency_all_32z%Test64BitArray.test_resiliency_all_32 sKRXXFr>cH|j||tjyrrrLrirs r<test_resiliency_all_64z%Test64BitArray.test_resiliency_all_64rr>N) rrrrr parametrizerr rGr rrrcr>r<rrs  [[. I0FGBHB [[1 [[. I0FG>H>  [[. I0FGGHG [[. I0FGGHGr>rceZdZejj dejj deddZejj deddZ ejj dejj deddZ ejj deddZ ejj dedd Z y ) Test64BitMatrixrrr,c,|j||dy)NT)rrrs r< test_no_64zTest64BitMatrix.test_no_64s sKdCr>c,|j||dyrrrs r<r z(Test64BitMatrix.test_resiliency_limit_10r r>rhc,|j||dyr rrs r<r z&Test64BitMatrix.test_resiliency_randomrr>cH|j||tjyrrrs r<rz&Test64BitMatrix.test_resiliency_all_32rr>cH|j||tjyrrrs r<rz&Test64BitMatrix.test_resiliency_all_64rr>N) rrrrrrGrrrr r rrrcr>r<rrs [[1 [[. J0GHDID  [[. J0GHBIB [[1 [[. J0GH>I>  [[. J0GHGIG [[. J0GHGIGr>rctjgdg}tjdgdgdgg}tjgdgdg}tjdgg}tjdgg}tjgdg}tttt fD]}||j d}||j d }||j d} ||j d } ||j d } ||j d } t|jtj|dt|jtj|d t| j|t| jtj|d t| jtj|d t| jtj|d tjtd 5|gdgdgj ddddtjtd 5|gdgj ddddy#1swYLxYw#1swY)xYw)Nrrrrhrrrrrrrrzcannot be broadcastri)rrhrrr6rlr(r) rLrrr!rr" _broadcast_torr broadcast_torrr) rPrUrr rr containerres_ares_bres_cres_dres_eres_fs r<test_broadcast_tor*s )A 1#sQC!A )Y'(A 1#A 1#A )A )ZC? ! **51! **51! **51! **51! **51! **515==?BOOAu,EF5==?BOOAu,EF5==?A.5==?BOOAu,EF5==?BOOAu,EF5==?BOOAu,EF ]]:-B C J y), - ; ;& ; I J]]:-B C ? yk " 0 0v 0 > ? ?#? J J ? ?sJ>K >K K r@)NFNNF)T) TTTTTTTTT)r contextlibr'r5rr0sysrrrnumpyrLrrrrrr r r r r rrrr numpy.testingrrrrrrrnumpy.exceptionsrtypesr scipy.linalgr}rr~rrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,scipy.sparse._baser-scipy.sparse._sputilsr.r/r0r1r2scipy.sparse.linalgr3r4r5scipy._lib.decoratorr6rrr=rE frozensetrrVr5r4rrrrrrrrrrrrrrIrdcontextmanagerrrrrrrrr1rArCrrrrrrrr rr6r8r[r]rrrrrrrrrrrrrrrrrrrr*rcr>r<r8s *,,,,CCCCCC (FF//* ckk )/ ' %eW-( ! >"JN?DNb $$6"$"$H4DT 7T 7n@||~c+c+L%%%.@@F MKMK`Y0Y0x  B Bk$k$\ L LF_K_KD`0`0FL5L5^ 22:8AE8U7pL' fu(-e/45).0fRL' .B0 0 f #5  - 7- ` .  3]  .  3]   6   3] -,g-( 3] 6Br_<_