Ë
    çÿæiÂl ã                   ó’  — d Z ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z
 ddlZddlmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlZddlmZmZmZmZm Z m!Z! ddl"m#Z# ddl$m%Z% ddl&Z'ddl(m)Z) ddl(m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< dd	l=m>Z> dd
l?m@Z@mAZAmBZBmCZCmDZD ddlEmFZFmGZGmHZH dej’                  v ZJd~d„ZKd„ ZL eMdg«      ZNdZOd„ ZP	 	 dd„ZQd„ ZR G d„ d«      ZS G d„ d«      ZT G d„ d«      ZU G d„ d«      ZV G d„ d«      ZW G d„ d «      ZX G d!„ d"«      ZYej´                  j·                  d#¬$«       G d%„ d&«      «       Z\ G d'„ d(«      Z] G d)„ d*«      Z^ G d+„ d,«      Z_ejÀ                  d-„ «       Za G d.„ d/«      Zb G d0„ d1«      Zc G d2„ d3«      Zd G d4„ d5«      Ze G d6„ d7«      Zf G d8„ d9«      Zgd€d;„Zh	 	 	 	 d�d<„Zi G d=„ d>«      Zj G d?„ d@ej ei«       «      ZkekjÙ                  «         G dA„ dBeVek«      ZmdC„ ZnemjÙ                  «         G dD„ dEej ei«       «      ZoeojÙ                  «         G dF„ dGeVeo«      ZpepjÙ                  «         G dH„ dI eidd¬J«      «      Zq G dK„ dLeVeq«      ZreqjÙ                  «        erjÙ                  «         G dM„ dN eid¬O«      «      Zs G dP„ dQeVes«      ZtesjÙ                  «        etjÙ                  «         G dR„ dS«      Zu G dT„ dUeu eid:d:d:d:d:¬V«      «      Zv G dW„ dXeVeu eiddddd¬V«      «      ZwevjÙ                  «        ewjÙ                  «        dY„ Zx G dZ„ d[ eiddddddd¬\«      «      Zy G d]„ d^eVey«      ZzeyjÙ                  «        ezjÙ                  «         G d_„ d` eidddddd¬a«      «      Z{ G db„ dceVe{«      Z|e{jÙ                  «        e|jÙ                  «        dd„ Z} G de„ df«      Z~ G dg„ dhe~«      Z G di„ dje«      Z€ G dk„ dle€ek«      Z� G dm„ dne�em«      Z‚ G do„ dpe€eo«      Zƒ G dq„ dreƒep«      Z„ G ds„ dtee{«      Z… G du„ dve…e|«      Z† G dw„ dxe~«      Z‡ G dy„ dze‡ev«      Zˆ G d{„ d|e‡ew«      Z‰d}„ ZŠy)‚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)ÚarangeÚzerosÚarrayÚdotÚasarrayÚvstackÚndarrayÚ	transposeÚdiagÚkronÚinfÚ	conjugateÚint8)Úassert_equalÚassert_array_equalÚassert_array_almost_equalÚassert_almost_equalÚassert_Úassert_allclose)Ú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_arrayÚeyeÚissparseÚSparseEfficiencyWarningÚsparrayÚspmatrix)Ú_formats)Úsupported_dtypesÚisscalarlikeÚget_index_dtypeÚasmatrixÚmatrix)ÚspluÚexpmÚinvzgoogle.colabc                 ó8   — |�|n| ›d|›�}t        | |v |¬«       y )Nz not found in )Úmsg)r   )ÚmemberÚ
collectionr6   Úmessages       úq/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/scipy/sparse/tests/test_base.pyÚ	assert_inr;   4   s'   € Ø�_‰c¨V¨J°nÀZÀNÐ*S€GÜˆF�jÐ  gÖ.ó    c                 ób   — t        | j                  |j                  k(  «       t        | |fi |¤Ž y ©N)r   Údtyper   )ÚxÚyÚkwargss      r:   Úassert_array_equal_dtyperC   9   s&   € ÜˆA�G‰G�q—w‘wÑÔÜ�q˜!Ñ&˜vÓ&r<   ÚdokzChanging the sparsity structurec                 óp   — d„ } || «      D ](  } ||«      D ]  }t        j                  ||«      sŒ  y Œ* y)Nc                 óÂ   — g }| j                   j                  «       D ]?  }t        |t        j                  t        j
                  z  «      sŒ/|j                  |«       ŒA |S r>   )Ú__dict__ÚvaluesÚ
isinstanceÚnpr
   ÚgenericÚappend)r@   ÚarraysÚas      r:   Ú_underlying_arraysz3sparse_may_share_memory.<locals>._underlying_arraysE   sJ   € ð ˆØ—‘×"Ñ"Ö$ˆAÜ˜!œRŸZ™Z¬"¯*©*Ñ4Õ5Ø—‘˜aÕ ð %ð ˆr<   TF)rJ   Úmay_share_memory)ÚAÚBrO   rN   Úbs        r:   Úsparse_may_share_memoryrT   B   s?   € òñ   Ö"ˆÙ# AÖ&ˆAÜ×"Ñ" 1 aÕ(Úñ 'ð #ð r<   Fc                 ó  ‡ ‡‡‡‡‡— ‰ €t        j                  d«      Š nt        j                  ‰ «      Š |rd	d„Šn7‰�d	ˆfd„	Šn.|r&t         j                  j                  d«      Šd	ˆfd„	Šnd	ˆ fd„	Š‰�ˆfd„Šˆˆˆfd„}|S )
z‚
    Monkeypatch the maxval threshold at which scipy.sparse switches to
    64-bit index arrays, or make it (pseudo-)random.

    é
   c                 ó*  — t        | ||«      }t        t        j                  |«      j                  t        j                  t        j
                  «      j                  «       t        |t        j
                  k(  xs |t        j                  k(  «       |S r>   )r/   r   rJ   ÚiinfoÚmaxÚint32r   Úintc)rM   ÚmaxvalÚcheck_contentsÚtps       r:   Únew_get_index_dtypez4with_64bit_maxval_limit.<locals>.new_get_index_dtypee   s]   € Ü  ¨°Ó@ˆBÜœŸ™ "›×)Ñ)¬2¯8©8´B·H±HÓ+=×+AÑ+AÔBÜ�Bœ"Ÿ(™(‘NÒ3 b¬B¯G©G¡mÔ4ØˆIr<   c                 ó   •— ‰S r>   © )rM   r\   r]   Úfixed_dtypes      €r:   r_   z4with_64bit_maxval_limit.<locals>.new_get_index_dtypek   s	   ø€ ØÐr<   éÒ  c                 óh   •— t         j                  t         j                  f‰j                  d«         S )Né   )rJ   rZ   Úint64Úintegers)rM   r\   r]   Úrngs      €r:   r_   z4with_64bit_maxval_limit.<locals>.new_get_index_dtypeo   s#   ø€ Ü—H‘HœbŸh™hÐ'¨¯©°Q«Ñ8Ð8r<   c                 óÂ  •— t         j                  }|�|‰kD  rt         j                  }| D ]±  }t        j                  |«      }|j                  t         j                  kD  sŒ6|rj|j
                  dk(  rŒHt        j                  |j                  t         j                  «      r,|j                  «       }|j                  «       }|‰ k\  r|‰k  rŒ¢t         j                  }Œ³ |S ©Nr   )
rJ   rZ   rf   r   r?   ÚsizeÚ
issubdtypeÚintegerrY   Úmin)rM   r\   r]   r?   ÚarrÚminvalÚmaxval_limits         €r:   r_   z4with_64bit_maxval_limit.<locals>.new_get_index_dtyper   s«   ø€ Ü—H‘HˆEØÐ!Ø˜LÒ(ÜŸH™H�EÛ�Ü—j‘j “o�Ø—9‘9œrŸx™xÓ'Ù%ØŸ8™8 qš=à$ÜŸ]™]¨3¯9©9´b·j±jÔAØ%(§W¡W£Y˜FØ%(§W¡W£Y˜FØ%¨,¨Ò6¸6À\Ò;Qà (ÜŸH™H‘Eð ð ˆLr<   c                 ó~   •— | j                  «       ‰kD  rt        d«      ‚| j                  t        j                  «      S )Nzdowncast limited)rY   ÚAssertionErrorÚastyperJ   Úintp)ro   Údowncast_maxvals    €r:   Únew_downcast_intp_indexz8with_64bit_maxval_limit.<locals>.new_downcast_intp_indexˆ   s0   ø€ Ø�w‰w‹y˜?Ò*Ü$Ð%7Ó8Ð8Ø—:‘:œbŸg™gÓ&Ð&r<   c           
      óN  •‡ ‡‡— g Št         j                  j                  t         j                  j                  t         j                  j                  t         j                  j
                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  g
Št        j                  ‰ «      ˆˆˆ ˆˆˆfd„«       }|S )Nc            
      óP  •— 	 ‰D ]]  }‰j                  |dt        |dd «      f«       t        |d‰
«       ‰€Œ2‰j                  |dt        |dd «      f«       t        |d‰	«       Œ_  ‰| i |¤Ž‰D ]  \  }}}|€Œ
t        |||«       Œ S # ‰D ]  \  }}}|€Œ
t        |||«       Œ w xY w)Nr/   Údowncast_intp_index)rL   ÚgetattrÚsetattr)rN   ÚkwÚmodÚnameÚoldfuncÚbackuprv   ÚfuncÚmodulesrw   r_   s        €€€€€€r:   Úwrapperz;with_64bit_maxval_limit.<locals>.decorator.<locals>.wrapper”   sÔ   ø€ ð4Û"�CØ—M‘MØØ)Ü Ð%6¸Ó=ð#ô ô
 ˜CÐ!2Ð4GÔHà&Ñ2ØŸ™ØØ1Ü# CÐ)>ÀÓEð'ô ô
   Ð%:Ð<SÕTð #ñ  ˜Q�~ "‘~ã*0Ñ&�C˜˜wØÑ*Ü  T¨7Õ3ñ +1ø«&Ñ&�C˜˜wØÑ*Ü  T¨7Õ3ñ +1ús   ƒ3B ·5B ÂB%ÂB%)ÚscipyÚsparseÚ_bsrÚ_cooÚ_cscÚ_csrÚ_diaÚ_dokÚ_lilÚ_sputilsÚ_compressedÚ
_constructÚ	functoolsÚwraps)r‚   r„   r�   rƒ   rv   rw   r_   s   ` @@€€€r:   Ú	decoratorz*with_64bit_maxval_limit.<locals>.decorator�   sµ   û€ ØˆÜ—<‘<×$Ñ$¤e§l¡l×&7Ñ&7¼¿¹×9JÑ9JÜ—<‘<×$Ñ$¤e§l¡l×&7Ñ&7¼¿¹×9JÑ9JÜ—<‘<×$Ñ$¤e§l¡l×&;Ñ&;Ü—<‘<×+Ñ+¬U¯\©\×-DÑ-DðFˆô
 
�‰˜Ó	÷	4ð 	4ó 
ð	4ð. ˆr<   )ra   NF)rJ   rf   ÚrandomÚdefault_rng)	rq   r”   rb   rv   Úassert_32bitr“   rw   r_   rh   s	   ` ``  @@@r:   Úwith_64bit_maxval_limitr—   V   sy   ý€ ð ÐÜ—x‘x “|‰ô —x‘x Ó-ˆáô	ð
 
Ð	 ö	á	Ü�i‰i×#Ñ# DÓ)ˆö	9õ	ð* Ð"ô	'ö
ð@ Ðr<   c                 óp   — t        | t        j                  «      st        | «      r| S | j	                  «       S r>   )rI   rJ   r
   r.   Útoarray)rN   s    r:   r™   r™   °   s'   € Ü�!”R—Z‘ZÔ ¤L°¤OØˆØ�9‰9‹;Ðr<   c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚBinopTesterc                  ó   — y©Númatrix on the rightra   ©ÚselfÚmats     r:   Ú__add__zBinopTester.__add__¹   ó   € Ø$r<   c                  ó   — yr�   ra   rŸ   s     r:   Ú__mul__zBinopTester.__mul__¼   r£   r<   c                  ó   — yr�   ra   rŸ   s     r:   Ú__sub__zBinopTester.__sub__¿   r£   r<   c                  ó   — y©Númatrix on the leftra   rŸ   s     r:   Ú__radd__zBinopTester.__radd__Â   ó   € Ø#r<   c                  ó   — yr©   ra   rŸ   s     r:   Ú__rmul__zBinopTester.__rmul__Å   r¬   r<   c                  ó   — yr©   ra   rŸ   s     r:   Ú__rsub__zBinopTester.__rsub__È   r¬   r<   c                  ó   — yr�   ra   rŸ   s     r:   Ú
__matmul__zBinopTester.__matmul__Ë   r£   r<   c                  ó   — yr©   ra   rŸ   s     r:   Ú__rmatmul__zBinopTester.__rmatmul__Î   r¬   r<   N)Ú__name__Ú
__module__Ú__qualname__r¢   r¥   r§   r«   r®   r°   r²   r´   ra   r<   r:   r›   r›   ¶   s*   „ ò%ò%ò%ò$ò$ò$ò%ó$r<   r›   c                   óN   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚBinopTester_with_shapec                 ó   — || _         y r>   ©Ú_shape)r    Úshapes     r:   Ú__init__zBinopTester_with_shape.__init__Ô   s	   € Øˆ�r<   c                 ó   — | j                   S r>   r»   ©r    s    r:   r½   zBinopTester_with_shape.shape×   s   € Ø�{‰{Ðr<   c                 ó,   — t        | j                  «      S r>   )Úlenr¼   rÀ   s    r:   ÚndimzBinopTester_with_shape.ndimÚ   s   € Ü�4—;‘;ÓÐr<   c                  ó   — yr�   ra   rŸ   s     r:   r¢   zBinopTester_with_shape.__add__Ý   r£   r<   c                  ó   — yr�   ra   rŸ   s     r:   r¥   zBinopTester_with_shape.__mul__à   r£   r<   c                  ó   — yr�   ra   rŸ   s     r:   r§   zBinopTester_with_shape.__sub__ã   r£   r<   c                  ó   — yr©   ra   rŸ   s     r:   r«   zBinopTester_with_shape.__radd__æ   r¬   r<   c                  ó   — yr©   ra   rŸ   s     r:   r®   zBinopTester_with_shape.__rmul__é   r¬   r<   c                  ó   — yr©   ra   rŸ   s     r:   r°   zBinopTester_with_shape.__rsub__ì   r¬   r<   c                  ó   — yr�   ra   rŸ   s     r:   r²   z!BinopTester_with_shape.__matmul__ï   r£   r<   c                  ó   — yr©   ra   rŸ   s     r:   r´   z"BinopTester_with_shape.__rmatmul__ò   r¬   r<   N)rµ   r¶   r·   r¾   r½   rÃ   r¢   r¥   r§   r«   r®   r°   r²   r´   ra   r<   r:   r¹   r¹   Ñ   s9   „ òòò ò%ò%ò%ò$ò$ò$ò%ó$r<   r¹   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚComparisonTesterc                  ó   — y)NÚeqra   ©r    Úothers     r:   Ú__eq__zComparisonTester.__eq__÷   ó   € Ør<   c                  ó   — y)NÚnera   rÐ   s     r:   Ú__ne__zComparisonTester.__ne__ú   rÓ   r<   c                  ó   — y)NÚltra   rÐ   s     r:   Ú__lt__zComparisonTester.__lt__ý   rÓ   r<   c                  ó   — y)NÚlera   rÐ   s     r:   Ú__le__zComparisonTester.__le__   rÓ   r<   c                  ó   — y)NÚgtra   rÐ   s     r:   Ú__gt__zComparisonTester.__gt__  rÓ   r<   c                  ó   — y)NÚgera   rÐ   s     r:   Ú__ge__zComparisonTester.__ge__  rÓ   r<   N)	rµ   r¶   r·   rÒ   rÖ   rÙ   rÜ   rß   râ   ra   r<   r:   rÍ   rÍ   õ   s    „ òòòòòór<   rÍ   c                   óN   — e Zd ZdZeZeZeZ	e
ZeZeZeZ ee«      Zd„ Zd„ Zd„ Zy)Ú_MatrixMixinz8mixin to easily allow tests of both sparray and spmatrixc                 ó  — t        | j                  j                  d«      j                  «       | j                  dgd d …f   «       t        | j                  j                  d«      j                  «       | j                  dgd d …f   «       y ©Né   éÿÿÿÿ)r   ÚdatspÚgetrowr™   ÚdatrÀ   s    r:   Útest_getrowz_MatrixMixin.test_getrow  sd   € Ü˜4Ÿ:™:×,Ñ,¨QÓ/×7Ñ7Ó9¸4¿8¹8ÀQÀCÊÀFÑ;KÔLÜ˜4Ÿ:™:×,Ñ,¨RÓ0×8Ñ8Ó:¸D¿H¹HÀbÀTÊ1ÀWÑ<MÕNr<   c                 ó  — t        | j                  j                  d«      j                  «       | j                  d d …dgf   «       t        | j                  j                  d«      j                  «       | j                  d d …dgf   «       y ræ   )r   ré   Úgetcolr™   rë   rÀ   s    r:   Útest_getcolz_MatrixMixin.test_getcol  sd   € Ü˜4Ÿ:™:×,Ñ,¨QÓ/×7Ñ7Ó9¸4¿8¹8ÂAÈÀsÀFÑ;KÔLÜ˜4Ÿ:™:×,Ñ,¨RÓ0×8Ñ8Ó:¸D¿H¹HÂQÈÈÀWÑ<MÕNr<   c                 ó˜  — | j                  t        dd¬«      j                  dd«      «      }t        |j	                  «       j
                  t        j
                  d«      «       t        |j	                  «       j                  |j                  «       t        |j                  d«      j	                  «       j
                  t        j
                  d«      «       t        |j                  d	«      j	                  «       j
                  t        j
                  d	«      «       |j	                  «       }|j	                  «       }t        ||u «       y )
Né   rZ   ©r?   re   é   Úfloat64Úint16Úfloat32Ú
complex128)
Ú	spcreatorr   Úreshaper   Úasfptyper?   rJ   Úformatrt   r   ©r    rQ   rR   ÚCs       r:   Útest_asfptypez_MatrixMixin.test_asfptype"  sÔ   € Ø�N‰Nœ6 !¨'Ô2×:Ñ:¸1¸QÓ?Ó@ˆä�Q—Z‘Z“\×'Ñ'¬¯©°)Ó)<Ô=Ü�Q—Z‘Z“\×(Ñ(¨!¯(©(Ô3Ü�Q—X‘X˜gÓ&×/Ñ/Ó1×7Ñ7¼¿¹À)Ó9LÔMÜ�Q—X‘X˜lÓ+×4Ñ4Ó6×<Ñ<¼b¿h¹hÀ|Ó>TÔUà�J‰J‹LˆØ�J‰J‹LˆÜ��Q��r<   N)rµ   r¶   r·   Ú__doc__r   Úbsr_containerr   Úcoo_containerr   Úcsc_containerr   Úcsr_containerr   Údia_containerr   Údok_containerr   Úlil_containerÚstaticmethodr0   Úasdenserì   rï   rþ   ra   r<   r:   rä   rä     sC   „ ÙBØ€MØ€MØ€MØ€MØ€MØ€MØ€MÙ˜8Ó$€GòOòOó
r<   rä   c                   óŒ  — e Zd ZdZeZeZeZ	e
ZeZeZeZeZeZed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0e1jd                  jf                  d„ «       Z4d„ Z5d„ Z6d„ Z7d „ Z8d!„ Z9d"„ Z:d#„ Z;d$„ Z<d%„ Z=d&„ Z>d'„ Z?d(„ Z@d)„ ZAd*„ ZBd+„ ZCd,„ ZDd-„ ZEd.„ ZFd/„ ZGd0„ ZHd1„ ZId2„ ZJd3„ ZKd4„ ZLd5„ ZMd6„ ZNd7„ ZOd8„ ZPd9„ ZQd:„ ZRd;„ ZSd<„ ZTd=„ ZUd>„ ZVd?„ ZWd@„ ZXdA„ ZYdB„ ZZdC„ Z[dD„ Z\dE„ Z]dF„ Z^dG„ Z_dH„ Z`dI„ ZadJ„ ZbdK„ ZcdL„ ZddM„ ZedN„ ZfdO„ ZgdP„ ZhdQ„ ZidR„ ZjdS„ ZkdT„ ZldU„ ZmdV„ ZndW„ ZodX„ ZpdY„ ZqdZ„ Zrd[„ Zsy\)]Ú_TestCommonz6test common functionality shared by all sparse formatsc                 ó  — t        g d¢g d¢g d¢gd«      | _        | j                  | j                  «      | _        t	        t
        «      j                  | j                  «      | _        i | _	        i | _
        | j                  D ]a  }| j                  j                  |«      | j                  |<   | j                  | j                  j                  |«      «      | j                  |<   Œc t        | j                  | j                  t        j                     «       t        | j                  j                  «       | j                  t        j                     j                  «       «       t!        | j                  t"        «      | _        y )N)rç   r   r   re   )ró   r   rç   r   )r   re   r   r   Úd)r   rë   rø   ré   Úsetr-   ÚunionÚmath_dtypesÚchecked_dtypesÚ
dat_dtypesÚdatsp_dtypesrt   r   rJ   rô   r™   rI   r*   Úis_array_test)Úclsr?   s     r:   Ú
init_classz_TestCommon.init_class>  s  € ô š¢|²\ÐBÀCÓHˆŒØ—M‘M #§'¡'Ó*ˆŒ	ô
 !Ô!1Ó2×8Ñ8¸¿¹ÓIˆÔØˆŒØˆÔØ×'Ô'ˆEØ$'§G¡G§N¡N°5Ó$9ˆC�N‰N˜5Ñ!Ø&)§m¡m°C·G±G·N±NÀ5Ó4IÓ&JˆC×Ñ˜UÒ#ð (ô 	�S—W‘W˜cŸn™n¬R¯Z©ZÑ8Ô9Ü�S—Y‘Y×&Ñ&Ó(Ø×%Ñ%¤b§j¡jÑ1×9Ñ9Ó;ô	=ô ' s§y¡y´'Ó:ˆÕr<   c                 óŒ   ‡ — ˆ fd„}t        ‰ t        «      rt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 óÀ   •— ‰j                   |    }t        t        t        |«       t	        ‰j                  dgg«      «       t	        ‰j                  dgg«       «       y )Nrç   r   )r  Úassert_raisesÚ
ValueErrorÚboolr   rø   )r?   ré   r    s     €r:   Úcheckz$_TestCommon.test_bool.<locals>.checkW  sL   ø€ Ø×%Ñ% eÑ,ˆEäœ*¤d¨EÔ2Ü�D—N‘N Q C 5Ó)Ô*Ü˜Ÿ™¨¨ uÓ-Ð-Õ.r<   z%Cannot create a rank <= 2 DOK matrix.)rI   ÚTestDOKÚpytestÚskipr  ©r    r  r?   s   `  r:   Ú	test_boolz_TestCommon.test_boolV  s8   ø€ ô	/ô �dœGÔ$Ü�K‰KÐ?Ô@Ø×(Ô(ˆEÙ�%�Lñ )r<   c                 óª   — t        ddgg«      }| j                  |«      }t        d«      D ]  }||z   }||z   }Œ t        ||j	                  «       «       y )NTFrV   )r   rø   Úranger   r™   )r    rë   ré   Ú_s       r:   Útest_bool_rolloverz_TestCommon.test_bool_rolloverc  sT   € ô �d˜E�]�OÓ$ˆØ—‘˜sÓ#ˆä�r–ˆAØ˜E‘MˆEØ˜‘)‰Cð ô 	˜3 §¡£Õ0r<   c                 óœ   ‡ — ˆ fd„}‰ j                   j                  dvrt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 ó4  •— t        j                  «       5  t        j                  dt        «       t        j                  dt        «       ‰	j
                  |    }‰	j                  |    }|j                  «       }d|d d …df<   ‰	j                  |«      }‰	j                  |«      }‰	j                  |«      }‰	j                  |«      }‰	j                  |«      }t        ||k(  ||k(  j                  «       «       t        ||k(  ||k(  j                  «       «       t        ||k(  ||k(  j                  «       «       t        ||k(  ||k(  j                  «       «       t        ||k(  ||k(  j                  «       «       t        ||k(  ||k(  «       t        |dk(  |dk(  j                  «       «       t        |dk(  |dk(  j                  «       «       t        |t        j                   k(  |t        j                   k(  j                  «       «       d d d «       y # 1 sw Y   y xY w©NÚignorer   rç   )ÚwarningsÚcatch_warningsÚsimplefilterr)   r   r  r  Úcopyrø   r   r  r  r  rC   r™   rJ   Únan)
r?   rë   ré   Údat2Údatsp2ÚdatbsrÚdatcsrÚdatcscÚdatlilr    s
            €r:   r  z"_TestCommon.test_eq.<locals>.checkp  s¼  ø€ Ü×(Ñ(Õ*Ü×%Ñ% hÔ0GÔHÜ×%Ñ% h´Ô?Ø—o‘o eÑ,�Ø×)Ñ)¨%Ñ0�Ø—x‘x“z�Ø�’Q�q�S‘	ØŸ™¨Ó-�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�ô )¨°©°uÀ±×6OÑ6OÓ6QÔRä(¨°©°vÀÑ7G×6PÑ6PÓ6RÔSÜ(¨°©°vÀÑ7G×6PÑ6PÓ6RÔSÜ(¨°©°vÀÑ7G×6PÑ6PÓ6RÔSÜ(¨°©°vÀÑ7G×6PÑ6PÓ6RÔSä(¨°©¸À#¹ÔFä(¨°©°E¸Q±J×3GÑ3GÓ3IÔJÜ(¨°©°E¸Q±J×3GÑ3GÓ3IÔJÜ(¨´·±©Ø*/´2·6±6©/×)BÑ)BÓ)DôF÷3 +×*Ñ*ús   –G/HÈH©ÚbsrÚcscÚcsrú8Bool comparisons only implemented for BSR, CSC, and CSR.©ré   rû   r  r  r  r  s   `  r:   Útest_eqz_TestCommon.test_eqn  sB   ø€ ô	Fð: �:‰:×ÑÐ$9Ñ9Ü�K‰KÐRÔSØ×(Ô(ˆEÙ�%�Lñ )r<   c                 óœ   ‡ — ˆ fd„}‰ j                   j                  dvrt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 ó´  •— t        j                  «       5  t        j                  dt        «       t        j                  dt        «       ‰	j
                  |    }‰	j                  |    }|j                  «       }d|d d …df<   ‰	j                  |«      }‰	j                  |«      }‰	j                  |«      }‰	j                  |«      }‰	j                  |«      }t        ||k7  ||k7  j                  «       «       t        ||k7  ||k7  j                  «       «       t        ||k7  ||k7  j                  «       «       t        ||k7  ||k7  j                  «       «       t        ||k7  ||k7  j                  «       «       t        ||k7  ||k7  «       t        |dk7  |dk7  j                  «       «       t        |dk7  |dk7  j                  «       «       t        d|k7  d|k7  j                  «       «       t        d|k7  d|k7  j                  «       «       t        |t        j                   k7  |t        j                   k7  j                  «       «       d d d «       y # 1 sw Y   y xY wr'  )r)  r*  r+  r)   r   r  r  r,  rø   r   r  r  r  rC   r™   rJ   r-  )
r?   rë   ré   r.  r/  r0  r2  r1  r3  r    s
            €r:   r  z"_TestCommon.test_ne.<locals>.check“  sò  ø€ Ü×(Ñ(Õ*Ü×%Ñ% hÔ0GÔHÜ×%Ñ% h´Ô?Ø—o‘o eÑ,�Ø×)Ñ)¨%Ñ0�Ø—x‘x“z�Ø�’Q�q�S‘	ØŸ™¨Ó-�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�ô )¨°©°uÀ±×6OÑ6OÓ6QÔRä(¨°©°vÀÑ7G×6PÑ6PÓ6RÔSÜ(¨°©°vÀÑ7G×6PÑ6PÓ6RÔSÜ(¨°©°vÀÑ7G×6PÑ6PÓ6RÔSÜ(¨°©°vÀÑ7G×6PÑ6PÓ6RÔSä(¨°©¸À#¹ÔFä(¨°©°E¸Q±J×3GÑ3GÓ3IÔJÜ(¨°©°E¸Q±J×3GÑ3GÓ3IÔJÜ(¨¨c©°A¸±J×3GÑ3GÓ3IÔJÜ(¨¨c©°A¸±J×3GÑ3GÓ3IÔJÜ(¨´·±©Ø*/´2·6±6©/×)BÑ)BÓ)DôF÷7 +×*Ñ*ús   –H/IÉIr4  r8  r9  r  s   `  r:   Útest_nez_TestCommon.test_ne’  sB   ø€ ô	Fð> �:‰:×ÑÐ$9Ñ9Ü�K‰KÐRÔSØ×(Ô(ˆEÙ�%�Lñ )r<   c                 óú   — | j                   j                  dvrt        j                  d«       | j                   | j                   j                  k(  du sJ ‚| j                   | j                   j                  k7  du sJ ‚y )Nr4  r8  FT)ré   rû   r  r  ÚTrÀ   s    r:   Útest_eq_ne_different_shapesz'_TestCommon.test_eq_ne_different_shapes·  s`   € Ø�:‰:×ÑÐ$9Ñ9Ü�K‰KÐRÔSà—
‘
˜dŸj™jŸl™lÑ*¨uÑ4Ð4Ð4Ø—
‘
˜dŸj™jŸl™lÑ*¨tÑ3Ð3Ñ3r<   c                 óœ   ‡ — ˆ fd„}‰ j                   j                  dvrt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 ó8  •— t        j                  «       5  t        j                  dt        «       t        j                  dt        «       ‰j
                  |    }‰j                  |    }|j                  «       }d|d d …df<   ‰j                  |«      }|j                  t        «      }d|d d …df<   ‰j                  |«      }‰j                  |«      }‰j                  |«      }‰j                  |«      }	‰j                  |«      }
t        ||k  ||k  j!                  «       «       t        ||k  ||k  j!                  «       «       t        ||k  ||k  j!                  «       «       t        ||k  ||k  j!                  «       «       t        ||k  |	|k  j!                  «       «       t        ||k  |
|k  j!                  «       «       t        ||k  ||k  j!                  «       «       t        ||k  ||k  j!                  «       «       t        ||k  ||	k  j!                  «       «       t        ||k  ||
k  j!                  «       «       t        ||k  ||k  «       t        ||k  ||k  «       dD ]W  }t#        j$                  |«      }t        ||k  j!                  «       ||k  «       t        ||k  j!                  «       ||k  «       ŒY t#        j&                  d¬«      5  t        |t"        j(                  k  j!                  «       |t"        j(                  k  «       d d d «       ‰j
                  |    }‰j                  |    }|j                  «       }d|d d …df<   ‰j                  |«      }t        ||k  ||k  «       d d d «       y # 1 sw Y   ŒlxY w# 1 sw Y   y xY w©Nr(  r   ù      ð?      ð?)re   rç   r   rè   éþÿÿÿ©Úinvalid©r)  r*  r+  r)   r   r  r  r,  rø   rt   Úcomplexr   r  r  r  rC   r™   rJ   rf   Úerrstater-  ©r?   rë   ré   r.  r/  Ú
datcomplexÚdatspcomplexr0  r2  r1  r3  Úvalr    s               €r:   r  z"_TestCommon.test_lt.<locals>.check¿  s  ø€ Ü×(Ñ(Õ*Ü×%Ñ% hÔ0GÔHÜ×%Ñ% h´Ô?à—o‘o eÑ,�Ø×)Ñ)¨%Ñ0�Ø—x‘x“z�Ø�’Q�q�S‘	ØŸ™¨Ó-�Ø ŸZ™Z¬Ó0�
Ø"(�
š1˜Q˜3‘Ø#Ÿ~™~¨jÓ9�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�ô )¨¨t©°e¸f±n×5MÑ5MÓ5OÔPÜ(¨°dÑ):Ø*6¸Ñ*?×)HÑ)HÓ)JôLô )¨¨t©°f¸v±o×5NÑ5NÓ5PÔQÜ(¨¨t©°f¸v±o×5NÑ5NÓ5PÔQÜ(¨¨t©°f¸v±o×5NÑ5NÓ5PÔQÜ(¨¨t©°f¸v±o×5NÑ5NÓ5PÔQä(¨°©°f¸v±o×5NÑ5NÓ5PÔQÜ(¨°©°f¸v±o×5NÑ5NÓ5PÔQÜ(¨°©°f¸v±o×5NÑ5NÓ5PÔQÜ(¨°©°f¸v±o×5NÑ5NÓ5PÔQä(¨¨t©°U¸T±\ÔBÜ(¨°dÑ):¸LÈ4Ñ<OÔPã,�CÜŸ(™( 3›-�CÜ,¨e°c©k×-BÑ-BÓ-DÀcÈCÁiÔPÜ,¨c°E©k×-BÑ-BÓ-DÀcÈCÁiÕPð -ô
 —[‘[¨Ö2Ü,¨e´b·f±f©n×-EÑ-EÓ-GØ-0´2·6±6©\ô;÷ 3ð
 —o‘o eÑ,�Ø×)Ñ)¨%Ñ0�Ø—x‘x“z�Ø�’Q�q�S‘	ØŸ™¨Ó-�ô )¨¨v©°u¸t±|ÔD÷i +Ð*÷P 3Ð2ú÷Q +Ð*úó%   –KNË=NÌA"NÎN	Î	NÎNr4  r8  r9  r  s   `  r:   Útest_ltz_TestCommon.test_lt¾  sC   ø€ ô5	Eðn �:‰:×ÑÐ$9Ñ9Ü�K‰KÐRÔSØ×(Ô(ˆEÙ�%�Lñ )r<   c                 óœ   ‡ — ˆ fd„}‰ j                   j                  dvrt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 ó8  •— t        j                  «       5  t        j                  dt        «       t        j                  dt        «       ‰j
                  |    }‰j                  |    }|j                  «       }d|d d …df<   ‰j                  |«      }|j                  t        «      }d|d d …df<   ‰j                  |«      }‰j                  |«      }‰j                  |«      }‰j                  |«      }	‰j                  |«      }
t        ||kD  ||kD  j!                  «       «       t        ||kD  ||kD  j!                  «       «       t        ||kD  ||kD  j!                  «       «       t        ||kD  ||kD  j!                  «       «       t        ||kD  |	|kD  j!                  «       «       t        ||kD  |
|kD  j!                  «       «       t        ||kD  ||kD  j!                  «       «       t        ||kD  ||kD  j!                  «       «       t        ||kD  ||	kD  j!                  «       «       t        ||kD  ||
kD  j!                  «       «       t        ||kD  ||kD  «       t        ||kD  ||kD  «       dD ]W  }t#        j$                  |«      }t        ||kD  j!                  «       ||kD  «       t        ||kD  j!                  «       ||kD  «       ŒY t#        j&                  d¬«      5  t        |t"        j(                  kD  j!                  «       |t"        j(                  kD  «       d d d «       ‰j
                  |    }‰j                  |    }|j                  «       }d|d d …df<   ‰j                  |«      }t        ||kD  ||kD  «       d d d «       y # 1 sw Y   ŒlxY w# 1 sw Y   y xY wrC  rH  rK  s               €r:   r  z"_TestCommon.test_gt.<locals>.checkü  s  ø€ Ü×(Ñ(Õ*Ü×%Ñ% hÔ0GÔHÜ×%Ñ% h´Ô?Ø—o‘o eÑ,�Ø×)Ñ)¨%Ñ0�Ø—x‘x“z�Ø�’Q�q�S‘	ØŸ™¨Ó-�Ø ŸZ™Z¬Ó0�
Ø"(�
š1˜Q˜3‘Ø#Ÿ~™~¨jÓ9�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�ô )¨¨t©°e¸f±n×5MÑ5MÓ5OÔPÜ(¨°dÑ):Ø*6¸Ñ*?×)HÑ)HÓ)JôLô )¨¨t©°f¸v±o×5NÑ5NÓ5PÔQÜ(¨¨t©°f¸v±o×5NÑ5NÓ5PÔQÜ(¨¨t©°f¸v±o×5NÑ5NÓ5PÔQÜ(¨¨t©°f¸v±o×5NÑ5NÓ5PÔQä(¨°©°f¸v±o×5NÑ5NÓ5PÔQÜ(¨°©°f¸v±o×5NÑ5NÓ5PÔQÜ(¨°©°f¸v±o×5NÑ5NÓ5PÔQÜ(¨°©°f¸v±o×5NÑ5NÓ5PÔQä(¨¨t©°U¸T±\ÔBÜ(¨°dÑ):¸LÈ4Ñ<OÔPã,�CÜŸ(™( 3›-�CÜ,¨e°c©k×-BÑ-BÓ-DÀcÈCÁiÔPÜ,¨c°E©k×-BÑ-BÓ-DÀcÈCÁiÕPð -ô
 —[‘[¨Ö2Ü,¨e´b·f±f©n×-EÑ-EÓ-GØ-0´2·6±6©\ô;÷ 3ð
 —o‘o eÑ,�Ø×)Ñ)¨%Ñ0�Ø—x‘x“z�Ø�’Q�q�S‘	ØŸ™¨Ó-�ô )¨¨v©°u¸t±|ÔD÷g +Ð*÷N 3Ð2ú÷O +Ð*úrO  r4  r8  r9  r  s   `  r:   Útest_gtz_TestCommon.test_gtû  sC   ø€ ô4	Eðl �:‰:×ÑÐ$9Ñ9Ü�K‰KÐRÔSØ×(Ô(ˆEÙ�%�Lñ )r<   c                 óœ   ‡ — ˆ fd„}‰ j                   j                  dvrt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 ój  •— t        j                  «       5  t        j                  dt        «       t        j                  dt        «       ‰j
                  |    }‰j                  |    }|j                  «       }d|d d …df<   ‰j                  |«      }|j                  t        «      }d|d d …df<   ‰j                  |«      }‰j                  |«      }‰j                  |«      }‰j                  |«      }	‰j                  |«      }
t        ||k  ||k  j!                  «       «       t        ||k  ||k  j!                  «       «       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  j!                  «       ||k  «       t        ||k  ||k  «       t        ||k  ||k  «       dD ]W  }t#        j$                  |«      }t        ||k  j!                  «       ||k  «       t        ||k  j!                  «       ||k  «       ŒY ‰j
                  |    }‰j                  |    }|j                  «       }d|d d …df<   ‰j                  |«      }t        ||k  ||k  «       d d d «       y # 1 sw Y   y xY w©Nr(  r   rD  )re   rç   rè   rE  ©r)  r*  r+  r)   r   r  r  r,  rø   rt   rI  r   r  r  r  rC   r™   rJ   rf   rK  s               €r:   r  z"_TestCommon.test_le.<locals>.check8  ó×  ø€ Ü×(Ñ(Õ*Ü×%Ñ% hÔ0GÔHÜ×%Ñ% h´Ô?Ø—o‘o eÑ,�Ø×)Ñ)¨%Ñ0�Ø—x‘x“z�Ø�’Q�q�S‘	ØŸ™¨Ó-�Ø ŸZ™Z¬Ó0�
Ø"(�
š1˜Q˜3‘Ø#Ÿ~™~¨jÓ9�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�Ø×+Ñ+¨CÓ0�ô )¨°©°uÀ±×6OÑ6OÓ6QÔRÜ(¨°tÑ);Ø*6¸&Ñ*@×)IÑ)IÓ)KôMô )¨&°FÑ*:×)CÑ)CÓ)EÀsÈdÁ{ÔSÜ(¨&°FÑ*:×)CÑ)CÓ)EÀsÈdÁ{ÔSÜ(¨&°FÑ*:×)CÑ)CÓ)EÀsÈdÁ{ÔSÜ(¨&°FÑ*:×)CÑ)CÓ)EÀsÈdÁ{ÔSä(¨&°FÑ*:×)CÑ)CÓ)EÀtÈsÁ{ÔSÜ(¨&°FÑ*:×)CÑ)CÓ)EÀtÈsÁ{ÔSÜ(¨&°FÑ*:×)CÑ)CÓ)EÀtÈsÁ{ÔSÜ(¨&°FÑ*:×)CÑ)CÓ)EÀtÈsÁ{ÔSä(¨°$©¸¸t¹ÔDÜ(¨¸Ñ)=¸zÈTÑ?QÔRã)�CÜŸ(™( 3›-�CÜ,¨e°s©l×-CÑ-CÓ-EÀsÈcÁzÔRÜ,¨c°U©l×-CÑ-CÓ-EÀsÈcÁzÕRð *ð —o‘o eÑ,�Ø×)Ñ)¨%Ñ0�Ø—x‘x“z�Ø�’Q�q�S‘	ØŸ™¨Ó-�ô )¨°©¸À¹ÔF÷_ +×*Ñ*úó   –L
L)Ì)L2r4  r8  r9  r  s   `  r:   Útest_lez_TestCommon.test_le7  óC   ø€ ô0	Gðd �:‰:×ÑÐ$9Ñ9Ü�K‰KÐRÔSØ×(Ô(ˆEÙ�%�Lñ )r<   c                 óœ   ‡ — ˆ fd„}‰ j                   j                  dvrt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 ój  •— t        j                  «       5  t        j                  dt        «       t        j                  dt        «       ‰j
                  |    }‰j                  |    }|j                  «       }d|d d …df<   ‰j                  |«      }|j                  t        «      }d|d d …df<   ‰j                  |«      }‰j                  |«      }‰j                  |«      }‰j                  |«      }	‰j                  |«      }
t        ||k\  ||k\  j!                  «       «       t        ||k\  ||k\  j!                  «       «       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\  j!                  «       ||k\  «       t        ||k\  ||k\  «       t        ||k\  ||k\  «       dD ]W  }t#        j$                  |«      }t        ||k\  j!                  «       ||k\  «       t        ||k\  j!                  «       ||k\  «       ŒY ‰j
                  |    }‰j                  |    }|j                  «       }d|d d …df<   ‰j                  |«      }t        ||k\  ||k\  «       d d d «       y # 1 sw Y   y xY wrV  rW  rK  s               €r:   r  z"_TestCommon.test_ge.<locals>.checkp  rX  rY  r4  r8  r9  r  s   `  r:   Útest_gez_TestCommon.test_geo  r[  r<   c                 ó¢  — t        | j                  d«      j                  «       t        d«      «       t        | j                  d«      j                  d«       t        | j                  d«      j                  «       d«       | j                  j                  dv r7t        | j                  d«      j                  d¬«      t        g d¢«      «       y y )N©ró   ró   r   ©Úcoor7  r6  Úlil©Úaxis©r   r   r   )	r   rø   r™   r   ÚnnzÚcount_nonzeroré   rû   r   rÀ   s    r:   Ú
test_emptyz_TestCommon.test_empty§  s•   € ä�T—^‘^ FÓ+×3Ñ3Ó5´u¸V³}ÔEÜ�T—^‘^ FÓ+×/Ñ/°Ô3Ü�T—^‘^ FÓ+×9Ñ9Ó;¸QÔ?Ø�:‰:×ÑÐ <Ñ<Ü˜Ÿ™¨Ó/×=Ñ=À1Ð=ÓEÄuÊYÓGWÕXð =r<   c                 ó®  — | j                   j                  dv }|rg d¢nd g}| j                   | j                   j                  fD ]J  }|D ]C  }t        j                  |j                  «       |¬«      }t        |j	                  |¬«      |«       ŒE ŒL |s7t        t        d¬«      5  | j                   j	                  d¬«       d d d «       y y # 1 sw Y   y xY w)Nra  )Nr   rç   rè   rE  rd  znot implemented .* format©Úmatchr   )	ré   rû   r?  rJ   rh  r™   r   r  ÚNotImplementedError)r    Úaxis_supportÚaxesrQ   ÚaxÚexpecteds         r:   Útest_count_nonzeroz_TestCommon.test_count_nonzero¯  s°   € Ø—z‘z×(Ñ(Ð,HÐHˆÙ'3Ó#¸$¸ˆà—*‘*˜dŸj™jŸl™lÓ+ˆAÛ�Ü×+Ñ+¨A¯I©I«K¸bÔA�Ü˜QŸ_™_°"˜_Ó5°xÕ@ñ ð ,ñ
 ÜÔ2Ð:UÖVØ—
‘
×(Ñ(¨aÐ(Ô0÷ WÐVð ßVÐVús   Â$CÃCc                 ó¦   — t        t        | j                  d«       t        t        | j                  d«       t        t        | j                  d«       y )N©rè   ró   ©ró   rè   ©rè   rè   )r  r  rø   rÀ   s    r:   Útest_invalid_shapesz_TestCommon.test_invalid_shapes¼  s2   € Ü”j $§.¡.°&Ô9Ü”j $§.¡.°&Ô9Ü”j $§.¡.°'Õ:r<   c                 óR  — | j                  g d¢g d¢g d¢g«      }|j                  dk(  rdn|j                  dk(  rdnd}t        |j                     \  }}| j                  rd	nd
}d|› d|› d|j                  › d|j
                  › d|› d|j                  › d�}t        |«      |k(  sJ ‚y )N©rç   r   r   rf  ©r   r   rE  Údiaú(1 diagonals) r5  ú(blocksize=1x1) Ú r   r1   Ú<ú sparse ú of dtype 'ú'
	with ú stored elements ú
and shape Ú>)rø   rû   r,   r  r?   rg  r½   Úrepr©r    ré   Úextrar#  ÚfmtÚ
sparse_clsrq  s          r:   Ú	test_reprz_TestCommon.test_reprÁ  s¸   € Ø—‘¢	ª9²jÐAÓBˆà %§¡°Ò 5ÑØ',§|¡|°uÒ'<Ñ#Øð 	ô
 ˜%Ÿ,™,Ñ'‰ˆˆ3Ø $× 2Ò 2‘W¸ˆ
à�ˆu�H˜Z˜L¨°E·K±K°=ð AØ—i‘i�[Ð 1°%°¸
À5Ç;Á;À-ÈqðRð 	ô �E‹{˜hÒ&Ð&Ñ&r<   c                 ó2  — | j                  t        j                  d«      j                  dd«      «      }|j                  dk(  sJ ‚t        t        |«      j                  d«      «      dk(  sJ ‚t        j                  d«      j                  dd«      }| j                  |«      }|j                  dk(  rd	n|j                  }| j                  |d
¬«      }t        t        |«      j                  d«      «      |dz   k(  sJ ‚t        t        |«      j                  d«      «      dk(  sJ ‚| j                  |dddd¬«      }| j                  |dddd¬«      }t        j                  t        d¬«      5  | j                  |dddd«       d d d «       y # 1 sw Y   y xY w)NéK   é   é   é2   Ú
é6   ró   r{  é   rñ   )ÚmaxprintrV   )rŽ  ró   ÚiFé   )r½   r?   r,  r”  z'positional argument|unpack non-iterablerk  )rø   rJ   r   rù   r”  rÂ   ÚstrÚsplitrû   rg  r  r   Ú	TypeError)r    ré   rë   Ú	nnz_smallÚ	datsp_mp6s        r:   Útest_str_maxprintz_TestCommon.test_str_maxprintÐ  sT  € Ø—‘œrŸy™y¨›}×4Ñ4°Q¸Ó;Ó<ˆØ�~‰~ Ò#Ð#Ð#Ü”3�u“:×#Ñ# DÓ)Ó*¨fÒ4Ð4Ð4ä�i‰i˜‹m×#Ñ# A aÓ(ˆØ—‘˜sÓ#ˆàŸ,™,¨%Ò/‘B°U·Y±Yˆ	Ø—N‘N 3°�NÓ3ˆ	ä”3�u“:×#Ñ# DÓ)Ó*¨i¸!©mÒ;Ð;Ð;Ü”3�y“>×'Ñ'¨Ó-Ó.°%Ò7Ð7Ð7ð —‘˜s¨&¸À%ÐRS�ÓTˆØ—‘˜s F¨C°À�ÓCˆÜ�]‰]œ9Ð,UÖVØ�N‰N˜3 ¨¨U°AÔ6÷ W×VÑVús   Å.FÆFc                 ór  — | j                  g d¢g d¢g d¢g«      }|j                  dk7  ry |j                  dk(  rdn|j                  dk(  rdnd	}t        |j                     \  }}| j                  rd
nd}d|› d|› d|j
                  › d|j                  › d|› d|j                  › d�}t        |«      |k(  sJ ‚y )Nry  rf  rz  re   r{  r|  r5  r}  r~  r   r1   r  r€  r�  r‚  rƒ  r„  z(>
  Coords	Values
  (0, 0)	1
  (2, 2)	-2)rø   rg  rû   r,   r  r?   r½   r—  r‡  s          r:   Útest_strz_TestCommon.test_strä  sÉ   € Ø—‘¢	ª9²jÐAÓBˆØ�9‰9˜Š>Øà %§¡°Ò 5ÑØ',§|¡|°uÒ'<Ñ#Øð 	ô
 ˜%Ÿ,™,Ñ'‰ˆˆ3Ø $× 2Ò 2‘W¸ˆ
à�ˆu�H˜Z˜L¨°E·K±K°=ð AØ—i‘i�[Ð 1°%°¸
À5Ç;Á;À-ð Pðð 	ô �5‹z˜XÒ%Ð%Ñ%r<   c                 óŠ  — d}t        j                  d«      t        j                  d«      t        j                  d«      t        j                  d«      t        j                  d«      fD ]Ø  }| j                  ||¬«      }||z   }d|z  }||j                  «       z  }||j	                  «       z  }||j                  «       z  }||||||fD ]u  }	t        |	j                  «       |j                  «       |j                  «       z  «       t        |	j                  |«       t        |	j                  «       j                  |«       Œw ŒÚ y )	N©rŽ  rŽ  rZ   rö   rô   Ú	complex64r÷   rò   re   )rJ   r?   rø   ÚtocscÚtocsrÚtocoor   r™   )
r    r½   ÚmytyperN   rS   Úcr  ÚeÚfÚms
             r:   Útest_empty_arithmeticz!_TestCommon.test_empty_arithmeticø  sû   € àˆÜ—x‘x Ó(¬"¯(©(°9Ó*=Ü—‘˜Ó#¤R§X¡X¨kÓ%:Ü—‘˜Ó&ó(ˆFð —‘˜u¨F�Ó3ˆAØ�A‘ˆAØ�A‘ˆAØ�A—G‘G“I‘ˆAØ�A—G‘G“I‘ˆAØ�A—G‘G“I‘ˆAØ˜˜!˜A˜a “]�Ü˜QŸY™Y›[¨!¯)©)«+°a·i±i³kÑ*AÔBä˜QŸW™W VÔ,Ü˜QŸY™Y›[×.Ñ.¨vÕ6ñ	 #ñ(r<   c                 óª   — t        g d¢g d¢g d¢g d¢gd«      }t        t        |«      t        | j                  |«      «      j	                  «       «       y )N©rè   r   é   ©r   éûÿÿÿr   ©rç   éüÿÿÿr   rf  r  )r   r   Úabsrø   r™   ©r    rQ   s     r:   Útest_absz_TestCommon.test_abs
  s<   € Ü’;¢
ªJº	ÐBÀCÓHˆÜ”S˜“VœS §¡°Ó!2Ó3×;Ñ;Ó=Õ>r<   c                 ó¾   — d}t        ddgddggd«      }t        t        j                  ||¬«      t	        | j                  |«      |¬«      j                  «       «       y )	Nrç   gš™™™™™õ¿gìQ¸…ëá?g     @1@gìQ¸…ëÀr  )Údecimals)Úndigits)r   r   rJ   ÚaroundÚroundrø   r™   )r    ÚdecimalrQ   s      r:   Ú
test_roundz_TestCommon.test_round  sR   € ØˆÜ�E˜4�= 5¨% .Ð1°3Ó7ˆÜ”R—Y‘Y˜q¨7Ô3Ü˜4Ÿ>™>¨!Ó,°gÔ>×FÑFÓHõ	Jr<   c                 ó  — t        g d¢g d¢g d¢gd«      }t        t        j                  |d«      | j	                  |«      j                  d«      j                  «       «       t        t        | j	                  |«      j                  |«       y )N)r±  éýÿÿÿrE  ©rè   r   rç   ©re   ró   r–  r  re   )r   r   rJ   Úpowerrø   r™   r  rm  r³  s     r:   Útest_elementwise_powerz"_TestCommon.test_elementwise_power  sd   € Ü’<¢ªYÐ7¸Ó=ˆÜ”R—X‘X˜a “^ T§^¡^°AÓ%6×%<Ñ%<¸QÓ%?×%GÑ%GÓ%IÔJô 	Ô)¨4¯>©>¸!Ó+<×+BÑ+BÀAÕFr<   c                 óþ   — t        g d¢g d¢g d¢g d¢gd«      }t        | | j                  |«       j                  «       «       t        g d¢g d¢g«      }t	        t
        | j                  |«      j                  «       y )Nr¬  r®  r°  rf  r  )TFF)FFT)r   r   rø   r™   r  rm  Ú__neg__r³  s     r:   Útest_negz_TestCommon.test_neg  se   € Ü’;¢
ªJº	ÐBÀCÓHˆÜ�a�R˜4Ÿ>™>¨!Ó,Ð,×5Ñ5Ó7Ô8ô Ò'Ò)=Ð>Ó?ˆÜÔ)¨4¯>©>¸!Ó+<×+DÑ+DÕEr<   c                 óž   — t        ddgg«      }| j                  |«      }t        |j                  j	                  «       |j                  «       y ©Nù      ð?      @y       @      À)r   rø   r   Úrealr™   ©r    ÚDrQ   s      r:   Ú	test_realz_TestCommon.test_real#  ó;   € Ü�F˜FÐ#Ð$Ó%ˆØ�N‰N˜1ÓˆÜ�Q—V‘V—^‘^Ó% q§v¡vÕ.r<   c                 óž   — t        ddgg«      }| j                  |«      }t        |j                  j	                  «       |j                  «       y rÆ  )r   rø   r   Úimagr™   rÉ  s      r:   Ú	test_imagz_TestCommon.test_imag(  rÌ  r<   c           	      óð  — g }|j                  g d¢g«       |j                  dgdgdgg«       |j                  ddgddgddgg«       |j                  g d¢g d¢g d¢g«       |j                  ddgddgg«       |j                  t        |d   ddgg«      «       |j                  t        |d   dgdgg«      «       |j                  t        |d   ddgdd	gg«      «       |j                  t        |d   ddgdd	gg«      «       |j                  t        |d   ddgdd	gg«      «       |j                  t        |d   g d
¢g«      «       |D ]¸  }t        |«      j                  \  }}| j	                  |«      }t        | dz
  |dz   «      D ])  }t        |j                  |¬«      t        ||¬«      «       Œ+ t        |j                  d¬«      t        |d¬«      «       t        |j                  d¬«      t        |d¬«      «       Œº t        | j	                  d«      j                  «       t        j                  d«      «       t        | j	                  d«      j                  «       t        j                  d«      «       t        | j	                  d«      j                  «       t        j                  d«      «       t        | j	                  d«      j                  d«      t        j                  d«      «       y )N©rç   r   re   rç   r   re   ró   ©r   r   rç   )r   r   re   ©r   ró   r   r–  ©rç   re   ró   r–  ©ÚkrV   i�ÿÿÿ)é(   i?  r×  ©r   r   )r�  r   ©r   rŽ  )rL   r   r   r½   rø   r"  r   Údiagonalr   rJ   r   Úempty)r    Úmatsr©  ÚrowsÚcolsÚ
sparse_matrÖ  s          r:   Útest_diagonalz_TestCommon.test_diagonal-  sk  € àˆØ�‰’W�IÔØ�‰�a�S˜!˜˜a˜S�MÔ"Ø�‰�a˜�U˜A˜a˜5 ! A Ð'Ô(Ø�‰’WšW¢WÐ-Ô.Ø�‰�a˜�U˜A˜a˜5�MÔ"à�‰”D˜˜a™ 1 Q % Ó)Ô*Ø�‰”D˜˜a™ 1 # q c Ó+Ô,Ø�‰”D˜˜a™ 1 Q %¨¨1¨ Ó/Ô0Ø�‰”D˜˜a™ 1 Q %¨¨1¨ Ó/Ô0Ø�‰”D˜˜a™ 1 Q %¨¨1¨ Ó/Ô0Ø�‰”D˜˜a™¢) Ó-Ô.ãˆAÜ˜q›Ÿ™‰JˆD�$ØŸ™¨Ó*ˆJÜ˜D˜5 ™7 D¨¡FÖ+�Ü˜Z×0Ñ0°1Ð0Ó5´t¸AÀ´|ÕDð ,ô ˜×,Ñ,¨rÐ,Ó2´D¸¸b´MÔBÜ˜×,Ñ,¨sÐ,Ó3´T¸!¸s´^ÕDð ô 	�T—^‘^ KÓ0×9Ñ9Ó;¼R¿X¹XÀb»\ÔJô 	�T—^‘^ FÓ+×4Ñ4Ó6¼¿¹À»ÔDÜ�T—^‘^ GÓ,×5Ñ5Ó7¼¿¹À!»ÔEÜ�T—^‘^ FÓ+×4Ñ4°RÓ8¼"¿(¹(À1»+ÕFr<   c                 ó®  — t        j                  g d¢g d¢g d¢g«      }| j                  |«      }t        dd«      D ].  }t	        |j                  |¬«      |j                  |¬«      «       Œ0 t        j                  g d¢g d¢g«      }| j                  |«      }t        dd«      D ].  }t	        |j                  |¬«      |j                  |¬«      «       Œ0 y )N©rç   re   ró   ©r–  rŽ  rñ   )é   é   é	   rE  ró   )Úoffsetrè   )rJ   r   rø   r"  r   Útrace)r    rQ   rR   rÖ  s       r:   Ú
test_tracez_TestCommon.test_traceN  s¨   € ä�H‰H’i¢ªIÐ6Ó7ˆØ�N‰N˜1ÓˆÜ�r˜1–ˆAÜ˜Ÿ™¨˜Ó*¨A¯G©G¸1¨GÓ,=Õ>ð ô �H‰H’i¢Ð+Ó,ˆØ�N‰N˜1ÓˆÜ�r˜1–ˆAÜ˜Ÿ™¨˜Ó*¨A¯G©G¸1¨GÓ,=Õ>ñ r<   c           	      óø  — | j                  g d¢g d¢g d¢g d¢g«      }dD ]S  }dD ]L  }t        |j                  ||¬«      j                  «       |j                  «       j                  ||¬«      «       ŒN ŒU | j                  g d¢g d	¢g d
¢g«      }|j                  d«      }g d¢g d¢g}t        |j                  «       |«       |j                  d«      }t        |j                  «       |«       |j                  d«      }t        |j                  «       |«       t	        t
        |j                  d«       |j                  dd«      }t        |j                  «       |«       t	        t        |j                  ddd¬«       |j                  d«      }t        ||u «       |j                  dd¬«      }t        ||u«       t        |j                  d«       | j                  r"t	        t        d¬«      5  d|_        d d d «       n!d|_        t        |j                  «       |«       t	        t
        |j                  |j                  f«       t	        t
        |j                  d|j                  df«       y # 1 sw Y   ŒXxY w)N)rç   r   rä  rf  rÓ  )r   r   rŽ  )rý   ÚF))é   rç   )rç   rì  ©Úorder©r   rV   r   r   ©r   r   r   r   ©r   é   é   r×  ©re   rñ   )r   rV   r   r   r   r   )r   r   r   rò  ró  r×  ©re   rè   )rè   rñ   rv  re   rñ   rç   )Ú
not_an_arg©ró   r–  T©r,  zhas no setter|n't set attributerk  )rø   r   rù   r™   r  r  r™  r   r½   r  ÚAttributeErrorrk   )r    r@   rî  ÚsrA   Údesireds         r:   Útest_reshapez_TestCommon.test_reshape[  sì  € Ø�N‰NšI¢y²)ºYÐGÓHˆÛˆEÛ'�Ü" 1§9¡9¨Q°e 9Ó#<×#DÑ#DÓ#FØ#$§9¡9£;×#6Ñ#6°qÀÐ#6Ó#FõHñ (ð  ð �N‰NšMª<ºÐIÓJˆØ�I‰I�fÓˆÚ&Ò(=Ð>ˆÜ˜1Ÿ9™9›;¨Ô0ð �I‰I�gÓˆÜ˜1Ÿ9™9›;¨Ô0Ø�I‰I�gÓˆÜ˜1Ÿ9™9›;¨Ô0Ü”j !§)¡)¨XÔ6ð �I‰I�a˜‹OˆÜ˜1Ÿ9™9›;¨Ô0Ü”i §¡¨A¨q¸QÕ?ð �I‰I�fÓˆÜ��Q�ŒØ�I‰I�f 4ˆIÓ(ˆÜ�˜�
Ôô 	˜1Ÿ7™7 FÔ+à×ÒÜœ~Ð5VÖWØ �”÷ XÐWð ˆAŒGÜ˜qŸy™y›{¨GÔ4ô 	”j !§)¡)¨a¯f©f¨YÔ7Ü”j !§)¡)¨a°·±¸¨^Õ<÷ XÐWús   Ç/I0É0I9c                 óü  ‡— ˆfd„Šˆfd„}t         j                  j                  d«       g d¢}t         j                  t         j                  fD ]«  }|D ]¤  \  }}t        j
                  | dz   |dz
  «      }|D ]}  }t        j                  ||f|¬«      }| j                  ||f|¬«      }	 |||	|«       t         j                  j                  |t        t        |«      d«      ¬«      D ]  }
 |||	|
«       Œ Œ Œ¦ Œ­ y )	Nc                 ó‚  •— t        j                  |«      }|dk\  r‰t        | j                  d   | j                  d   |z
  «      }|j                  dk7  rt        |t        |«      «      }|d | }t        j                  d|«      }t        j                  |||z   «      }|| ||f<   y |dk  r ‰| j                  || «       y y ©Nr   rç   )rJ   r   rn   r½   rÃ   rÂ   r   r?  )rN   ÚvrÖ  Únr•  ÚjÚdense_setdiags         €r:   r  z=_TestCommon.test_setdiag_comprehensive.<locals>.dense_setdiagŒ  sª   ø€ Ü—
‘
˜1“ˆAØ�AŠvÜ˜Ÿ™ ™
 A§G¡G¨A¡J°¡NÓ3�Ø—6‘6˜Q’;Ü˜Aœs 1›v›�AØ˜"˜1˜�AÜ—I‘I˜a “O�Ü—I‘I˜a  Q¡Ó'�Ø��!�A�#’Ø�Q’Ù˜aŸc™c 1 q bÕ)ð r<   c                 óî  •— dt        t        j                  | |«      «      ddfD �]A  }|dk  r*t        j                  j	                  t        dd«      «      }n"t        j                  j                  dd|¬«      } ‰| ||«       t        j                  «       5  t        j                  dt        t        «       |j                  ||«       d d d «       t        j                  | |«      }t        j                  |«      j                  dk(  rt        ||d	¬
«       n2t!        t        |«      t        |«      «      }t        |d | |d | d	¬
«       t        |j#                  «       | d	¬
«       �ŒD y # 1 sw Y   Œ¢xY w)Nrè   re   ró  r   rç   rò  ©rk   r(  z	{msg} {r}©Úerr_msg)rÂ   rJ   r   r”   Úchoicer"  Úrandintr)  r*  ÚfilterwarningsÚWMSGr)   Úsetdiagr   rÃ   r   rn   r™   )rN   rS   rÖ  Úrr   r  r  r  s          €r:   Úcheck_setdiagz=_TestCommon.test_setdiag_comprehensive.<locals>.check_setdiag™  s  ø€ ð œ#œbŸg™g a¨›mÓ,¨a°Ô4�Ø�q’5ÜŸ	™	×(Ñ(¬¨q°"«Ó6‘AäŸ	™	×)Ñ)¨!¨R°aÐ)Ó8�Aá˜a  AÔ&Ü×,Ñ,Õ.Ü×+Ñ+¨H´dÔ<SÔTØ—I‘I˜a ”O÷ /ô
 —G‘G˜A˜q“M�Ü—:‘:˜a“=×%Ñ%¨Ò*Ü& q¨!°[ÖAäœC ›F¤C¨£FÓ+�AÜ& q¨¨! u¨a°°¨e¸[ÕIä" 1§9¡9£;°¸;×Gñ' 5÷ /Ð.ús   Â2E+Å+E4	rc   )rÙ  ©rŽ  r   ©rç   rŽ  ©rŽ  rç   r   rç   rò   rŽ  r  )rJ   r”   Úseedr   rô   r   r   rø   r  rn   rÂ   )r    r  Úshapesr?   r©  r  ÚksrÖ  rN   rS   Úk2r  s              @r:   Útest_setdiag_comprehensivez&_TestCommon.test_setdiag_comprehensiveŠ  sÛ   ø€ ô	*ô	Hô2 	�	‰	�‰�tÔÚ4ˆÜ—g‘gœrŸz™zÓ*ˆEÛ‘��!Ü—Y‘Y ˜r !™t Q q¡SÓ)�Û�AÜŸ™ ! Q ¨uÔ5�AØŸ™¨¨1 v°U˜Ó;�Aá! ! Q¨Ô*ô !Ÿi™i×.Ñ.¨r¼¼CÀ»GÀQ»Ð.ÖH˜Ù% a¨¨BÕ/ñ Iñ ñ ñ +r<   c           
      óP  — | j                  t        j                  d«      «      }| j                  d«      }g d¢}t        j                  «       5  t        j
                  dt        t        «       t        t        |j                  |d¬«       |j                  |«       t        |j                  «       |«       |j                  |d¬«       t        |j                  «       t        j                  g d¢g d	¢g d
¢g«      «       |j                  |d¬«       t        |j                  «       t        j                  g d¢g d	¢g d¢g«      «       |j                  dd¬«       t        |j                  «       d   d«       |j                  dd¬«       t        |j                  «       d   d«       |j                  dgd¬«       t        |j                  «       d   g d¢«       |j                  ddgd¬«       t        |j                  «       d d g d¢g d¢g«       d d d «       y # 1 sw Y   y xY w)Nró   ©r–  r–  )ró   re   rç   r(  r–  rÕ  rç   )ró   ró   r   )r   re   re   rÒ  rE  ©ró   r   rç   )ræ  re   ©r   re   ræ  ©re   r   r   ©r   r   rç   r   )r   r   r   rç   )rø   rJ   r'   r)  r*  r
  r  r)   r  r  r  r   rÚ  r™   r   )r    r©  Úm2rH   s       r:   Útest_setdiagz_TestCommon.test_setdiagÁ  s¥  € à�N‰Nœ2Ÿ6™6 !›9Ó%ˆØ�^‰^˜FÓ#ˆÚˆÜ×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLÜœ* a§i¡i°¸1Õ=Ø�I‰I�fÔÜ˜qŸz™z›|¨VÔ4Ø�I‰I�f ˆIÔ"Ü˜qŸy™y›{¬B¯H©H²iÚ6?Ú6?ð6Aó -Bô Cð �I‰I�f ˆIÔ#Ü˜qŸy™y›{¬B¯H©H²iÚ6?Ú6?ð6Aó -Bô Cð �I‰I�d˜aˆIÔ Ü˜qŸy™y›{¨3Ñ/°Ô3Ø�I‰I�d˜bˆIÔ!Ü˜qŸy™y›{¨3Ñ/°Ô3à�J‰J˜�s˜aˆJÔ Ü˜rŸz™z›|¨A™²Ô=à�J‰J˜˜1�v ˆJÔ#Ü˜rŸz™z›|¨B¨QÐ/²,Ú2>ð2@ô A÷- '×&Ñ&ús   ÁGHÈH%c                 ó6  — t        g d¢g d¢g d¢g«      }| j                  |«      }t        |j                  «       «      D �ch c]  }t	        |«      ’Œ }}t        |j                  «       «      D �ch c]  }t	        |«      ’Œ }}t        ||«       y c c}w c c}w ©N©rç   r   rç   ©r   rç   rç   rÒ  )r   rø   r   ÚnonzeroÚtupler   ©r    rQ   ÚAspÚijÚA_nzÚAsp_nzs         r:   Útest_nonzeroz_TestCommon.test_nonzeroß  s}   € Ü’9šY¢yÐ1Ó2ˆØ�n‰n˜QÓˆä$-¨a¯i©i«kÔ$:Ó;Ñ$:˜b”�b•	Ð$:ˆÐ;Ü&/°·±³Ô&>Ó?Ñ&> ”%˜•)Ð&>ˆÐ?ä�T˜6Õ"ùò <ùÚ?s   ÁBÁ0Bc                 óJ  — t        g d¢g d¢g d¢g«      }| j                  |«      }t        t        j                  |«      «      D �ch c]  }t        |«      ’Œ }}t        t        j                  |«      «      D �ch c]  }t        |«      ’Œ }}t        ||«       y c c}w c c}w r   )r   rø   r   rJ   r#  r$  r   r%  s         r:   Útest_numpy_nonzeroz_TestCommon.test_numpy_nonzeroè  s�   € ä’9šiªÐ3Ó4ˆØ�n‰n˜QÓˆä$-¬b¯j©j¸«mÔ$<Ó=Ñ$<˜b”�b•	Ð$<ˆÐ=Ü&/´·
±
¸3³Ô&@ÓAÑ&@ ”%˜•)Ð&@ˆÐAä�T˜6Õ"ùò >ùÚAs   ÁBÁ:B c                 óä  ‡ ‡	— t         j                  j                  d«       t        j                  g d¢g d¢g d¢g«      }t         j                  j	                  dd«      }t        j                  g g«      }t        j
                  d«      }t        j                  ddd¬«      j                  «       }|||||gŠ	ˆ	ˆ fd	„}‰ j                  D ]$  }t        t        ‰	«      «      D ]  } |||«       Œ Œ& y )
Nrc   ©r   rç   re   ©ró   r±  rŽ  ©éúÿÿÿrä  ræ  rŽ  )r×  r×  g{®Gáz„?)Údensityc                 óâ  •— ‰j                  ‰|   | ¬«      }‰j                  || ¬«      }t        j                  d¬«      5  t	        |j                  «       |j                  «       «       t        |j                  «       j                  |j                  «       j                  «       t        t        j                  |j                  d ¬«      «      «       t	        |j                  d ¬«      |j                  d ¬«      «       t        |j                  d ¬«      j                  |j                  d ¬«      j                  «       t	        |j                  d¬«      |j                  d¬«      «       t        |j                  d¬«      j                  |j                  d¬«      j                  «       t	        |j                  d¬«      |j                  d¬«      «       t        |j                  d¬«      j                  |j                  d¬«      j                  «       t	        |j                  d¬«      |j                  d¬«      «       t        |j                  d¬«      j                  |j                  d¬«      j                  «       t	        |j                  d¬«      |j                  d¬«      «       t        |j                  d¬«      j                  |j                  d¬«      j                  «       t	        |j                  d	¬«      |j                  d	¬«      «       t        |j                  d	¬«      j                  |j                  d	¬«      j                  «       d d d «       y # 1 sw Y   y xY w)
Nrò   r(  )Úoverrd  r   rç   rE  rè   ©r   rç   )
r  rø   rJ   rJ  r   Úsumr   r?   r   Úisscalar)r?   r  rë   ré   Úmatricesr    s       €€r:   r  z#_TestCommon.test_sum.<locals>.checký  sY  ø€ Ø—,‘,˜x¨™{°%�,Ó8ˆCØ—N‘N 3¨e�NÓ4ˆEÜ—‘ (Ö+Ü)¨#¯'©'«)°U·Y±Y³[ÔAÜ˜SŸW™W›YŸ_™_¨e¯i©i«k×.?Ñ.?Ô@ÜœŸ™ E§I¡I°4 IÓ$8Ó9Ô:Ü)¨#¯'©'°t¨'Ó*<¸e¿i¹iÈT¸iÓ>RÔSÜ˜SŸW™W¨$˜WÓ/×5Ñ5°u·y±yÀd°yÓ7K×7QÑ7QÔRÜ)¨#¯'©'°q¨'«/¸5¿9¹9È!¸9Ó;LÔMÜ˜SŸW™W¨!˜W›_×2Ñ2°E·I±IÀ1°IÓ4E×4KÑ4KÔLÜ)¨#¯'©'°q¨'«/¸5¿9¹9È!¸9Ó;LÔMÜ˜SŸW™W¨!˜W›_×2Ñ2°E·I±IÀ1°IÓ4E×4KÑ4KÔLÜ)¨#¯'©'°r¨'Ó*:¸E¿I¹IÈ2¸IÓ<NÔOÜ˜SŸW™W¨"˜WÓ-×3Ñ3°U·Y±YÀB°YÓ5G×5MÑ5MÔNÜ)¨#¯'©'°r¨'Ó*:¸E¿I¹IÈ2¸IÓ<NÔOÜ˜SŸW™W¨"˜WÓ-×3Ñ3°U·Y±YÀB°YÓ5G×5MÑ5MÔNÜ)¨#¯'©'°v¨'Ó*>ÀÇ	Á	ÈvÀ	Ó@VÔWÜ˜SŸW™W¨&˜WÓ1×7Ñ7¸¿¹È¸Ó9O×9UÑ9UÔV÷ ,×+Ñ+ús   ÁLM%Í%M.)rJ   r”   r  r   Úrandr   r†   r™   r  r"  rÂ   )
r    Údat_1Údat_2Údat_3Údat_4Údat_5r  r?   r  r8  s
   `        @r:   Útest_sumz_TestCommon.test_sumò  sÀ   ù€ Ü
�	‰	�‰�tÔÜ—‘š)Ú"Ú"ð$ó %ˆô —	‘	—‘˜q !Ó$ˆÜ—‘˜"˜“ˆÜ—‘˜Ó"ˆÜ—‘˜A˜q¨$Ô/×7Ñ7Ó9ˆØ˜5 %¨°Ð6ˆõ	Wð( ×(Ô(ˆEÜœ3˜x›=Ö)�Ù�e˜Q•ñ *ñ )r<   c                 ó:  — t        j                  d«      }t        g d¢g d¢g d¢g«      }| j                  |«      }t	        t
        d¬«      5  |j                  d¬«       d d d «       t	        t
        d¬«      5  |j                  d	¬«       d d d «       t	        t        d
¬«      5  |j                  d¬«       d d d «       t	        t
        d¬«      5  |j                  d|¬«       d d d «       y # 1 sw Y   Œ�xY w# 1 sw Y   ŒoxY w# 1 sw Y   ŒOxY w# 1 sw Y   y xY w©N©rç   ró   r.  r/  r0  zaxis out of rangerk  ró   rd  ©r   ró   zaxis must be an integerç      ø?z&do.*n.t match.*shape|wrong.*dimensionsrç   ©re  Úout)	rJ   r   r   rø   r  r  r6  r™  Úmean©r    rF  rë   ré   s       r:   Útest_sum_invalid_paramsz#_TestCommon.test_sum_invalid_params  sÜ   € Ü�h‰h�vÓˆÜ’YÚÚð!ó "ˆð —‘˜sÓ#ˆäœ:Ð-@ÖAØ�I‰I˜1ˆIÔ÷ Bäœ:Ð-@ÖAØ�I‰I˜6ˆIÔ"÷ Bäœ9Ð,EÖFØ�I‰I˜3ˆIÔ÷ Gô œ:Ð-UÖVØ�J‰J˜A 3ˆJÔ'÷ WÐV÷ BÐAúçAÐAúçFÐFú÷ WÐVús0   ÁC-Á8C9Â$DÃDÃ-C6Ã9DÄDÄDc                 ó�   ‡‡— t        g d¢g d¢g d¢g«      Š| j                  ‰«      Šˆˆfd„}| j                  D ]
  } ||«       Œ y )Nr.  r/  r0  c                 ó¦   •— ‰j                  | ¬«      }‰j                  | ¬«      }t        ||«       t        |j                  |j                  «       y ©Nrò   )r6  r   r   r?   )r?   Údat_sumÚ	datsp_sumrë   ré   s      €€r:   r  z)_TestCommon.test_sum_dtype.<locals>.check,  s?   ø€ Ø—g‘g E�gÓ*ˆGØŸ	™	¨˜	Ó.ˆIä% g¨yÔ9Ü˜Ÿ™¨	¯©Õ8r<   ©r   rø   r  ©r    r  r?   rë   ré   s      @@r:   Útest_sum_dtypez_TestCommon.test_sum_dtype&  sH   ù€ Ü’YÚÚð!ó "ˆð —‘˜sÓ#ˆõ	9ð ×(Ô(ˆEÙ�%�Lñ )r<   c                 óÐ  — | j                    }t        g d¢g d¢g d¢g«      }| j                  |«      }| j                   rt        d«      nt        dgg«      }| j                   rt        d«      nt        dgg«      }|j	                  ||¬«       |j	                  |¬«       t        ||«       | j                   rt        j                  d«      nt        j                  d«      }| j                   rt        j                  d«      nt        t        j                  d«      «      }|j	                  d	||¬
«       |j	                  d	|¬«       t        ||«       t        t        d¬«      5  |j	                  t        dg«      ¬«       d d d «       t        t        d¬«      5  |j	                  t        | j                   rdggnd«      ¬«       d d d «       y # 1 sw Y   ŒOxY w# 1 sw Y   y xY w)Nr.  r/  r0  r   ©rF  Úkeepdims©rF  ©ró   ©ró   rç   rç   ©re  rF  rT  rE  zoutput parameterrk  )
r  r   rø   r1   r6  r   rJ   r   r  r  ©r    Úkeeprë   ré   Údat_outÚ	datsp_outs         r:   Útest_sum_outz_TestCommon.test_sum_out6  ss  € Ø×%Ñ%Ð%ˆÜ’YÚÚð!ó "ˆð —‘˜sÓ#ˆà"×0Ò0”%˜”(´e¸a¸S¸E³lˆØ $× 2Ò 2”E˜!”H¼ÀÀ¸u»ˆ	à�‰�G dˆÔ+Ø�	‰	�iˆ	Ô Ü! '¨9Ô5à$(×$6Ò$6”"—(‘(˜4”.¼B¿H¹HÀVÓ<LˆØ&*×&8Ò&8”B—H‘H˜T”N¼fÄRÇXÁXÈfÓEUÓ>Vˆ	à�‰�Q˜G¨dˆÔ3Ø�	‰	�q˜iˆ	Ô(Ü! '¨9Ô5ô œ:Ð-?Ö@Ø�I‰Iœ%  ›*ˆIÔ%÷ Aäœ:Ð-?Ö@Ø�I‰Iœ%¨×);Ò); ! ¡ÀÓCˆIÔD÷ AÐ@÷ AÐ@úç@Ð@úó   Å%GÆ,GÇGÇG%c                 óú   — t        g d¢g d¢g d¢g«      }| j                  |«      }t        j                  |«      }t        j                  |«      }t	        ||«       t        |j                  |j                  «       y ©Nr.  r/  r0  )r   rø   rJ   r6  r   r   r?   )r    rë   ré   rM  rN  s        r:   Útest_numpy_sumz_TestCommon.test_numpy_sumQ  s_   € ä’YÚÚð!ó "ˆð —‘˜sÓ#ˆä—&‘&˜“+ˆÜ—F‘F˜5“Mˆ	ä! '¨9Ô5Ü�W—]‘] I§O¡OÕ4r<   c                 óî  — t        g d¢g d¢g d¢g«      }| j                  |«      }t        |j                  «       «      sJ ‚| j                  rt
        nt        j                  }t        |j                  d¬«      |«      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  «       «      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  d¬«      |«      sJ ‚y ©Nr.  r/  r0  r   rd  rç   )
r   rø   r.   r6  r  r
   rJ   r1   rI   rG  )r    rë   ré   Úmatrix_or_arrays       r:   Útest_sum_mean_container_typez(_TestCommon.test_sum_mean_container_type^  sÐ   € Ü’YÚÚð!ó "ˆð —‘˜sÓ#ˆä˜EŸI™I›KÔ(Ð(Ð(Ø%)×%7Ò%7�'¼R¿Y¹YˆÜ˜%Ÿ)™)¨˜)Ó+¨_Ô=Ð=Ð=Ü˜%Ÿ)™)¨˜)Ó+¨_Ô=Ð=Ð=ä˜EŸJ™J›LÔ)Ð)Ð)Ü˜%Ÿ*™*¨!˜*Ó,¨oÔ>Ð>Ð>Ü˜%Ÿ*™*¨!˜*Ó,¨oÔ>Ð>Ñ>r<   c                 ó`   ‡ ‡— ‰ j                    Šˆˆ fd„}‰ j                  D ]
  } ||«       Œ y )Nc                 ó˜  •— t        g d¢g d¢g d¢g| ¬«      }‰j                  || ¬«      }t        |j                  «       |j                  «       «       t	        |j                  «       j
                  |j                  «       j
                  «       t        t        j                  |j                  d ¬«      «      «       t        |j                  d ‰¬«      |j                  d ¬«      «       t	        |j                  d ¬«      j
                  |j                  d ¬«      j
                  «       t        |j                  d‰¬«      |j                  d¬«      «       t	        |j                  d¬«      j
                  |j                  d¬«      j
                  «       t        |j                  d‰¬«      |j                  d¬«      «       t	        |j                  d¬«      j
                  |j                  d¬«      j
                  «       t        |j                  d	‰¬«      |j                  d	¬«      «       t	        |j                  d	¬«      j
                  |j                  d	¬«      j
                  «       t        |j                  d
‰¬«      |j                  d
¬«      «       t	        |j                  d
¬«      j
                  |j                  d
¬«      j
                  «       t        |j                  d‰¬«      |j                  d¬«      «       t	        |j                  d¬«      j
                  |j                  d¬«      j
                  «       y )Nr.  )ró   r–  rŽ  )rñ   rä  ræ  rò   rd  ©re  rT  r   rç   rE  rè   r5  )	r   rø   r   rG  r   r?   r   rJ   r7  )r?   rë   ré   rZ  r    s      €€r:   r  z$_TestCommon.test_mean.<locals>.checko  sw  ø€ ÜšÚ"Ú"ð$à+0ô2ˆCð —N‘N 3¨e�NÓ4ˆEä% c§h¡h£j°%·*±*³,Ô?Ü˜Ÿ™›×)Ñ)¨5¯:©:«<×+=Ñ+=Ô>Ü”B—K‘K §
¡
° 
Ó 5Ó6Ô7Ü%Ø—‘˜d¨T�Ó2°E·J±JÀD°JÓ4Iôô ˜Ÿ™ t˜Ó,×2Ñ2°E·J±JÀD°JÓ4I×4OÑ4OÔPÜ%Ø—‘˜a¨$�Ó/°·±À°Ó1Côô ˜Ÿ™ q˜Ó)×/Ñ/°·±À°Ó1C×1IÑ1IÔJÜ%Ø—‘˜a¨$�Ó/°·±À°Ó1Côô ˜Ÿ™ q˜Ó)×/Ñ/°·±À°Ó1C×1IÑ1IÔJÜ%Ø—‘˜b¨4�Ó0°%·*±*À"°*Ó2Eôô ˜Ÿ™ r˜Ó*×0Ñ0°%·*±*À"°*Ó2E×2KÑ2KÔLÜ%Ø—‘˜b¨4�Ó0°%·*±*À"°*Ó2Eôô ˜Ÿ™ r˜Ó*×0Ñ0°%·*±*À"°*Ó2E×2KÑ2KÔLÜ%Ø—‘˜f¨t�Ó4°e·j±jÀf°jÓ6Môô ˜Ÿ™ v˜Ó.×4Ñ4°e·j±jÀf°jÓ6M×6SÑ6SÕTr<   )r  r  )r    r  r?   rZ  s   `  @r:   Ú	test_meanz_TestCommon.test_meanm  s1   ù€ Ø×%Ñ%Ð%ˆõ 	UðF ×(Ô(ˆEÙ�%�Lñ )r<   c                 óX  — | j                  t        j                  d«      «      }t        g d¢g d¢g d¢g«      }| j	                  |«      }t        t        d¬«      5  |j                  d¬«       d d d «       t        t        d¬«      5  |j                  d	¬«       d d d «       t        t        d
¬«      5  |j                  d¬«       d d d «       t        t        d¬«      5  |j                  d|¬«       d d d «       y # 1 sw Y   Œ�xY w# 1 sw Y   ŒoxY w# 1 sw Y   ŒOxY w# 1 sw Y   y xY wrA  )	r  rJ   r   r   rø   r  r  rG  r™  rH  s       r:   Útest_mean_invalid_paramz#_TestCommon.test_mean_invalid_param•  så   € Ø�l‰lœ2Ÿ8™8 FÓ+Ó,ˆÜ’YÚÚð!ó "ˆð —‘˜sÓ#ˆäœ:Ð-@ÖAØ�J‰J˜AˆJÔ÷ Bäœ:Ð-@ÖAØ�J‰J˜FˆJÔ#÷ Bäœ9Ð,EÖFØ�J‰J˜CˆJÔ ÷ Gô œ:Ð-UÖVØ�J‰J˜A 3ˆJÔ'÷ WÐV÷ BÐAúçAÐAúçFÐFú÷ WÐVús0   ÁC<ÂDÂ3DÃD Ã<DÄDÄDÄ D)c                 ó�   ‡‡— t        g d¢g d¢g d¢g«      Š| j                  ‰«      Šˆˆfd„}| j                  D ]
  } ||«       Œ y )Nr.  r/  r0  c                 ó¦   •— ‰j                  | ¬«      }‰j                  | ¬«      }t        ||«       t        |j                  |j                  «       y rL  )rG  r   r   r?   )r?   Údat_meanÚ
datsp_meanrë   ré   s      €€r:   r  z*_TestCommon.test_mean_dtype.<locals>.check¬  sA   ø€ Ø—x‘x e�xÓ,ˆHØŸ™¨%˜Ó0ˆJä% h°
Ô;Ü˜Ÿ™¨×)9Ñ)9Õ:r<   rO  rP  s      @@r:   Útest_mean_dtypez_TestCommon.test_mean_dtype¦  sH   ù€ Ü’YÚÚð!ó "ˆð —‘˜sÓ#ˆõ	;ð ×(Ô(ˆEÙ�%�Lñ )r<   c                 óÐ  — | j                    }t        g d¢g d¢g d¢g«      }| j                  |«      }| j                   rt        d«      nt        dgg«      }| j                   rt        d«      nt        dgg«      }|j	                  ||¬«       |j	                  |¬«       t        ||«       | j                   rt        j                  d«      nt        j                  d«      }| j                   rt        j                  d«      nt        t        j                  d«      «      }|j	                  d	||¬
«       |j	                  d	|¬«       t        ||«       t        t        d¬«      5  |j	                  t        dg«      ¬«       d d d «       t        t        d¬«      5  |j	                  t        | j                   rdggnd«      ¬«       d d d «       y # 1 sw Y   ŒOxY w# 1 sw Y   y xY w)Nr.  r/  r0  r   rS  rU  rV  rW  rç   rX  rE  z"output parameter.*wrong.*dimensionrk  )
r  r   rø   r1   rG  r   rJ   r   r  r  rY  s         r:   Útest_mean_outz_TestCommon.test_mean_out¶  ss  € Ø×%Ñ%Ð%ˆÜ’YÚÚð!ó "ˆð —‘˜sÓ#ˆà"×0Ò0”%˜”(´e¸a¸S¸E³lˆØ $× 2Ò 2”E˜!”H¼ÀÀ¸u»ˆ	à�‰�W tˆÔ,Ø�
‰
�yˆ
Ô!Ü! '¨9Ô5à$(×$6Ò$6”"—(‘(˜4”.¼B¿H¹HÀVÓ<LˆØ&*×&8Ò&8”B—H‘H˜T”N¼fÄRÇXÁXÈfÓEUÓ>Vˆ	à�‰�a˜W¨tˆÔ4Ø�
‰
˜˜yˆ
Ô)Ü! '¨9Ô5ô œ:Ð-QÖRØ�J‰Jœ5 ! ›:ˆJÔ&÷ Säœ:Ð-QÖRØ�J‰Jœ5¨$×*<Ò*< 1 #¡À!ÓDˆJÔE÷ SÐR÷ SÐRúçRÐRúr^  c                 óú   — t        g d¢g d¢g d¢g«      }| j                  |«      }t        j                  |«      }t        j                  |«      }t	        ||«       t        |j                  |j                  «       y r`  )r   rø   rJ   rG  r   r   r?   )r    rë   ré   rn  ro  s        r:   Útest_numpy_meanz_TestCommon.test_numpy_meanÑ  sa   € ä’YÚÚð!ó "ˆð —‘˜sÓ#ˆä—7‘7˜3“<ˆÜ—W‘W˜U“^ˆ
ä! (¨JÔ7Ü�X—^‘^ Z×%5Ñ%5Õ6r<   c                 óò  — t        g d¢g d¢g d¢gt        «      }| j                  |dt        ¬«      }t        j                  j                  |«      }t        g d¢g d¢g d¢g«      }| j                  |dt        ¬«      }t        j                  j                  |«      }t        j                  «       5  t        j                  d	d
t        «       t        j                  d	dt        «       t        j                  d	dt        «       t        |«      j                  «       }t        |«      j                  «       }d d d «       t        |z
  t        d«      «       t        |z
  t        d«      «       y # 1 sw Y   Œ:xY w)NrÑ  ©r   r   ró   ©r±  rŽ  rñ   r`  ©r½   r?   )ç      @ç        ç      ð?)rz  ç       @rz  )rz  rz  rz  r(  ú&splu converted its input to CSC formatúCspsolve is more efficient when sparse b is in the CSC matrix formatú.spsolve requires A be CSC or CSR matrix format)r   Úfloatrø   r…   Úlinalgr3   r)  r*  r
  r)   r™   r   r   )	r    ÚMÚsMÚMexpÚNÚsNÚNexpÚsMexpÚsNexps	            r:   Ú	test_expmz_TestCommon.test_expmÞ  s%  € Ü’9šiªÐ4´eÓ<ˆØ�^‰^˜A U´%ˆ^Ó8ˆÜ�|‰|× Ñ  Ó#ˆä’<¢ª|Ð<Ó=ˆØ�^‰^˜A U´%ˆ^Ó8ˆÜ�|‰|× Ñ  Ó#ˆä×$Ñ$Õ&Ü×#Ñ#ØØ8Ü'ôô
 ×#Ñ#ØØUÜ'ôô
 ×#Ñ#ØØ@Ü'ôô
 ˜“H×$Ñ$Ó&ˆEÜ˜“H×$Ñ$Ó&ˆE÷# 'ô& 	" 5¨4¡<´%¸³-Ô@Ü! 5¨4¡<´%¸³-Õ@÷) 'Ð&ús   Â0BE-Å-E6c                 ó8   ‡ — ˆ fd„}t         fD ]
  } ||«       Œ y )Nc                 ó  •— t        g d¢g d¢g d¢g| «      }t        j                  «       5  t        j                  ddt        «       t        j                  ddt        «       t        j                  ddt        «       ‰j                  |d| ¬	«      }t        |«      }d d d «       t        j                  «      j                  «       t        j                  d
«      «       t        t        t        |«       y # 1 sw Y   Œ[xY w)NrÑ  rv  rw  r(  r  r~  r}  r`  rx  ró   )r   r)  r*  r
  r)   rø   r4   r   r   r™   rJ   r'   r  r™  )r?   r‚  rƒ  ÚsMinvr    s       €r:   r  z#_TestCommon.test_inv.<locals>.checkþ  sË   ø€ Ü’y¢)ªZÐ8¸%Ó@ˆAÜ×(Ñ(Õ*Ü×'Ñ'ØØDÜ+ôô
 ×'Ñ'Øð2ä+ô	ô ×'Ñ'ØØ<Ü+ôð
 —^‘^ A¨U¸%�^Ó@�Ü˜B›�÷% +ô& & e§i¡i°£m×&;Ñ&;Ó&=¼r¿v¹vÀa»yÔIÜœ)¤S¨!Õ,÷) +Ð*ús   «A1C6Ã6C?)r€  r  s   `  r:   Útest_invz_TestCommon.test_invý  s   ø€ ô	-ô. “WˆEÙ�%�Lñ r<   c                 óø  — t        j                  «       5  t        j                  dt        «       t	        g d¢g d¢g d¢g d¢g«      }t        | j                  |«      j                  «       |«       t	        g d¢g d¢g d¢g«      }t        | j                  |«      j                  «       |«       t        | j                  |d¬	«      j                  «       |j                  d«      «       d d d «       y # 1 sw Y   y xY w©
Nr(  ry  r¿  )r   rŽ  r   rf  )rÇ  r   r   )r   ç      @r   rõ   rò   )	r)  r*  r+  r   r   r   rø   r™   rt   r³  s     r:   Útest_from_arrayz_TestCommon.test_from_array  s¼   € Ü×$Ñ$Õ&Ü×!Ñ! (¬NÔ;Ü’wšw¢wªwÐ7Ó8ˆAÜ˜tŸ~™~¨aÓ0×8Ñ8Ó:¸AÔ>äÒ'Ú&Ú ð"ó #ˆAô ˜tŸ~™~¨aÓ0×8Ñ8Ó:¸AÔ>ÜØ—‘˜q¨�Ó0×8Ñ8Ó:¸1¿8¹8ÀGÓ;LôN÷ '×&Ñ&úó   •CC0Ã0C9c                 ó  — t        j                  «       5  t        j                  dt        «       | j	                  g d¢g d¢g d¢g d¢g«      }t        | j                  |«      j                  «       |«       | j	                  g d¢g d¢g d¢g«      }t        | j                  |«      j                  «       |«       t        | j                  |d¬	«      j                  «       |j                  d«      «       d d d «       y # 1 sw Y   y xY wr�  )	r)  r*  r+  r   r  r   rø   Útodensert   r³  s     r:   Útest_from_matrixz_TestCommon.test_from_matrix&  sÃ   € Ü×$Ñ$Õ&Ü×!Ñ! (¬NÔ;Ø—‘šiª²IºyÐIÓJˆAÜ˜tŸ~™~¨aÓ0×8Ñ8Ó:¸AÔ>à—‘Ò.Ú-Ú'ð)ó *ˆAô ˜tŸ~™~¨aÓ0×8Ñ8Ó:¸AÔ>ÜØ—‘˜q¨�Ó0×8Ñ8Ó:¸A¿H¹HÀWÓ<Mô÷ '×&Ñ&ús   •CC<Ã<Dc                 óø  — t        j                  «       5  t        j                  dt        «       g d¢g d¢g d¢g d¢g}t	        | j                  |«      j                  «       |«       g d¢g d¢g d¢g}t	        | j                  |«      j                  «       t        |«      «       t	        | j                  |d¬	«      j                  «       t        |«      j                  d«      «       d d d «       y # 1 sw Y   y xY wr�  )	r)  r*  r+  r   r   rø   r™   r   rt   r³  s     r:   Útest_from_listz_TestCommon.test_from_list4  s¶   € Ü×$Ñ$Õ&Ü×!Ñ! (¬NÔ;Úš¢ªÐ1ˆAÜ˜tŸ~™~¨aÓ0×8Ñ8Ó:¸AÔ>â!Ú ÚðˆAô ˜tŸ~™~¨aÓ0×8Ñ8Ó:¼EÀ!»HÔEÜØ—‘˜q¨�Ó0×8Ñ8Ó:¼EÀ!»H¿O¹OÈGÓ<Tô÷ '×&Ñ&úr“  c                 ó˜  — t        j                  «       5  t        j                  dt        «       t	        g d¢g d¢g d¢g d¢g«      }| j                  |«      }t        | j                  |«      j                  «       |«       | j                  |«      }t        | j                  |«      j                  «       |«       t	        g d¢g d¢g d¢g«      }| j                  |«      }t        | j                  |«      j                  «       |«       t        | j                  |d¬	«      j                  «       |j                  d«      «       | j                  |«      }t        | j                  |«      j                  «       |«       t        | j                  |d¬	«      j                  «       |j                  d«      «       d d d «       y # 1 sw Y   y xY wr�  )
r)  r*  r+  r   r   r  r   rø   r™   rt   ©r    rÊ  ÚSs      r:   Útest_from_sparsez_TestCommon.test_from_sparseB  s[  € Ü×$Ñ$Õ&Ü×!Ñ! (¬NÔ;Ü’wšw¢wªwÐ7Ó8ˆAØ×"Ñ" 1Ó%ˆAÜ˜tŸ~™~¨aÓ0×8Ñ8Ó:¸AÔ>Ø—‘˜qÓ!ˆAÜ˜tŸ~™~¨aÓ0×8Ñ8Ó:¸AÔ>äÒ'Ú&Ú ð"ó #ˆAð ×"Ñ" 1Ó%ˆAÜ˜tŸ~™~¨aÓ0×8Ñ8Ó:¸AÔ>Ü˜tŸ~™~¨a°w˜~Ó?×GÑGÓIØ Ÿx™x¨Ó0ô2à—‘˜qÓ!ˆAÜ˜tŸ~™~¨aÓ0×8Ñ8Ó:¸AÔ>Ü˜tŸ~™~¨a°w˜~Ó?×GÑGÓIØ Ÿx™x¨Ó0ô2÷# '×&Ñ&ús   •F"G Ç G	c                 ó~  — | j                   j                  «       }t        || j                  rt        j
                  nt        j                  «      sJ ‚t        || j                  «       t        |j                  j                  |j                  j                  k7  «       | j                   j                  d¬«      }t        || j                  «       t        |j                  j                  «       t        |j                  j                   «       | j                   j                  d¬«      }t        || j                  «       t        |j                  j                   «       t        |j                  j                  «       t	        j                  | j                   j                  | j                   j                  ¬«      }| j                   j                  |¬«      }t        | j                  |«       t        | j                  |«       t	        j                   ||«      sJ ‚| j#                  t	        j                  | j                   j                  | j                   j                  ¬«      «      }| j                   j                  |¬«      }t        | j                  |«       t        | j                  |«       t	        j                   ||«      sJ ‚t%        g d¢g«      }|| j                  z  }|| j                   j                  «       z  }t        ||«       t%        g d¢g«      j&                  }| j                  |z  }| j                   j                  «       |z  }t        ||«       | j)                  | j                  t*        ¬«      }| j                  j-                  t*        «      }	t        |j                  «       |	«       y )Nrý   rí  rë  rò   rU  ©r{  r|  ry  ©r{  r|  ry  ç      @)ré   r•  rI   r  rJ   r
   r1   r   rë   r   ÚflagsÚc_contiguousÚf_contiguousr   r½   r?   rP   r  r   r?  rø   r  rt   )
r    ÚchkrF  rN   Údense_dot_denser  rS   Úcheck2ÚspboolÚmatbools
             r:   Útest_todensez_TestCommon.test_todense[  s“  € à�j‰j× Ñ Ó"ˆÜ˜#¨T×-?Ò-?œrŸzšzÄRÇYÁYÔOÐOÐOÜ˜3 §¡Ô)Ü�—	‘	×&Ñ&¨#¯)©)×*@Ñ*@Ñ@ÔAà�j‰j× Ñ  sÐ Ó+ˆÜ˜3 §¡Ô)Ü�—	‘	×&Ñ&Ô'Ü�C—I‘I×*Ñ*Ð*Ô+à�j‰j× Ñ  sÐ Ó+ˆÜ˜3 §¡Ô)Ü�C—I‘I×*Ñ*Ð*Ô+Ü�—	‘	×&Ñ&Ô'ä�h‰h�t—z‘z×'Ñ'¨t¯z©z×/?Ñ/?Ô@ˆØ�j‰j× Ñ  SÐ Ó)ˆÜ˜4Ÿ8™8 SÔ)Ü˜4Ÿ8™8 SÔ)Ü×"Ñ" 3¨Ô,Ð,Ð,à�l‰lœ2Ÿ8™8 D§J¡J×$4Ñ$4¸D¿J¹J×<LÑ<LÔMÓNˆØ�j‰j× Ñ  SÐ Ó)ˆÜ˜4Ÿ8™8 SÔ)Ü˜4Ÿ8™8 SÔ)Ü×"Ñ" 3¨Ô,Ð,Ð,Ü’:�,ÓˆØ˜dŸh™h™,ˆØ�D—J‘J×&Ñ&Ó(Ñ(ˆÜ˜?¨EÔ2Ü’=�/Ó"×$Ñ$ˆØŸ(™( Q™,ˆØ—‘×#Ñ#Ó%¨Ñ)ˆÜ˜?¨FÔ3à—‘ §¡´�Ó5ˆØ—(‘(—/‘/¤$Ó'ˆÜ˜6Ÿ>™>Ó+¨WÕ5r<   c                 ón  — t        | j                  «      }| j                  j                  «       }t	        ||«       t        |j                  j                  |j                  j                  k7  «       | j                  j                  d¬«      }t	        ||«       t        |j                  j                  «       t        |j                  j                   «       | j                  j                  d¬«      }t	        ||«       t        |j                  j                   «       t        |j                  j                  «       t        j                  | j                  j                  | j                  j                  ¬«      }| j                  j                  |¬«       t	        ||«       d|d<   | j                  j                  |¬«       t	        ||«       t        g d¢«      }t        ||«      }t        || j                  j                  «       «      }t	        ||«       t        g d	¢«      }t        ||«      }t        | j                  j                  «       |«      }t	        ||«       | j                  | j                  t         ¬«      }	|j#                  t         «      }
t	        |	j                  «       |
«       y )
Nrý   rí  rë  rò   rU  r{  .rž  rŸ  )r   rë   ré   r™   r   r   r¡  r¢  r£  rJ   r   r½   r?   r   r   rø   r  rt   )r    rë   r¤  rF  rN   r¥  r  rS   r¦  r§  Úarrbools              r:   Útest_toarrayz_TestCommon.test_toarray„  sí  € ä�d—h‘hÓˆØ�j‰j× Ñ Ó"ˆÜ˜3 Ô$Ü�—	‘	×&Ñ&¨#¯)©)×*@Ñ*@Ñ@ÔAà�j‰j× Ñ  sÐ Ó+ˆÜ˜3 Ô$Ü�—	‘	×&Ñ&Ô'Ü�C—I‘I×*Ñ*Ð*Ô+à�j‰j× Ñ  sÐ Ó+ˆÜ˜3 Ô$Ü�C—I‘I×*Ñ*Ð*Ô+Ü�—	‘	×&Ñ&Ô'ä�h‰h�t—z‘z×'Ñ'¨t¯z©z×/?Ñ/?Ô@ˆØ�
‰
×Ñ˜sÐÔ#Ü˜3 Ô$àˆˆC‰Ø�
‰
×Ñ˜sÐÔ#Ü˜3 Ô$Ü’*ÓˆÜ˜a ›+ˆÜ�A�t—z‘z×)Ñ)Ó+Ó,ˆÜ˜?¨EÔ2Ü’-Ó ˆÜ˜c 1›+ˆÜ�T—Z‘Z×'Ñ'Ó)¨1Ó-ˆÜ˜?¨FÔ3à—‘ §¡´�Ó5ˆØ—*‘*œTÓ"ˆÜ˜6Ÿ>™>Ó+¨WÕ5r<   c                 óB  ‡‡	— t        j                  «       5  t        j                  dt        «       t	        g d¢g d¢g d¢g«      }| j                  |«      }t        D �]*  }|j                  |«      }dD ]o  }|j                  ||¬«      Št        ‰j                  |j                  «       t        ‰j                  «       |«       t        ‰j                  |j                  «       Œq t        ‰j                  |d¬«      ‰u «       ‰j                  |d¬«      Š	t        ‰	‰u«       ˆˆ	fd	„}‰j                  d
v rdD ]
  } ||«       Œ Œë‰j                  dk(  rdD ]
  } ||«       Œ �Œ‰j                  dk(  s�ŒdD ]
  } ||«       Œ �Œ- 	 d d d «       y # 1 sw Y   y xY w)Nr(  ©y       @      @r   r   ©r   y      @      @r   rf  )TFrø  FTc                 óÔ   •— t        ‰| «      }t        ‰| «      }t        ||«       t        ||u«       d|j                  z  }||   }||    ||<   t        ||   ||   k7  «       |||<   y )N)r   )r{   r   r   rÃ   )Ú	attributerN   rS   r•  Úb_iÚS_castedÚS_copieds        €€r:   Ú(check_equal_but_not_same_array_attributezI_TestCommon.test_astype.<locals>.check_equal_but_not_same_array_attribute¾  ss   ø€ Ü ¨)Ó4�AÜ ¨)Ó4�AÜ& q¨!Ô,Ü˜A Q˜JÔ'Ø˜qŸv™v™�AØ˜A™$�CØ  ™t˜8�A�a‘DÜ˜A˜a™D A a¡D™LÔ)Ø�A�a’Dr<   ©r7  r6  r5  )ÚindicesÚindptrÚdatarb  )ÚrowÚcolr¹  r{  )Úoffsetsr¹  )r)  r*  r+  r   r   rø   r-   rt   r   r?   r™   rû   r   )
r    rÊ  r›  r@   ÚD_castedr,  rµ  r±  r³  r´  s
           @@r:   Útest_astypez_TestCommon.test_astype©  s^  ù€ Ü×$Ñ$Õ&Ü×!Ñ! (¬NÔ;ÜÒ'Ú'Ú ð"ó #ˆAð —‘˜qÓ!ˆAç%Ð%�àŸ8™8 A›;�Û)�DØ Ÿx™x¨°˜xÓ5�HÜ  §¡°·±Ô@Ü  ×!1Ñ!1Ó!3°XÔ>Ü  §¡°!·(±(Õ;ð	 *ô ˜Ÿ™¨°˜Ó6¸(ÐBÔCØ#Ÿ?™?¨1°4˜?Ó8�Ü˜¨Ð0Ô1õ	ð —?‘?Ð&;Ñ;Û%B˜	Ù@ÀÕKñ &Cà—_‘_¨Ò-Û%;˜	Ù@ÀÕKò &<à—_‘_¨Ô-Û%8˜	Ù@ÀÕKò &9ñ? &÷ '×&Ñ&ús   —E FÅ9FÆFc                 óF  — t        j                  «       5  t        j                  dt        «       t	        g d¢g d¢g d¢g«      }| j                  |«      }t        |d«      rd|j                  j                  _	        |j                  dv r6d|j                  j                  _	        d|j                  j                  _	        t        D ]D  }|j                  |«      }|j                  |«      }t        |j                   |j                   «       ŒF 	 d d d «       y # 1 sw Y   y xY w)Nr(  r®  r¯  rf  r¹  Fr¶  )r)  r*  r+  r   r   rø   Úhasattrr¹  r¡  Ú	writeablerû   r¸  r·  r-   rt   r   r?   )r    rÊ  r›  r@   r½  r³  s         r:   Útest_astype_immutablez!_TestCommon.test_astype_immutableÓ  sÏ   € Ü×$Ñ$Õ&Ü×!Ñ! (¬NÔ;ÜÒ'Ú'Ú ð"ó #ˆAð —‘˜qÓ!ˆAÜ�q˜&Ô!Ø).�—‘—‘Ô&Ø�x‰xÐ0Ñ0Ø+0�—‘—‘Ô(Ø,1�—	‘	—‘Ô)ß%�ØŸ8™8 A›;�ØŸ8™8 A›;�Ü˜XŸ^™^¨X¯^©^Õ<ñ &÷ '×&Ñ&ús   •C8DÄD c                 óB   ‡ — ˆ fd„}‰ j                   D ]
  } ||«       Œ y )Nc                 óÂ   •— ‰j                   |    }‰j                  |    }t        |dz  |dz  j                  «       «       t        |dz  |dz  j                  «       «       y ©Nre   çÍÌÌÌÌL1@©r  r  r   r™   ©r?   rë   ré   r    s      €r:   r  z*_TestCommon.test_mul_scalar.<locals>.checkå  sW   ø€ Ø—/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEä˜s 1™u u¨Q¡w×&7Ñ&7Ó&9Ô:Ü˜s 4™x¨%°©*×)=Ñ)=Ó)?Õ@r<   ©r  r  s   `  r:   Útest_mul_scalarz_TestCommon.test_mul_scalarä  ó"   ø€ ô	Að ×%Ô%ˆEÙ�%�Lñ &r<   c                 óB   ‡ — ˆ fd„}‰ j                   D ]
  } ||«       Œ y )Nc                 óÂ   •— ‰j                   |    }‰j                  |    }t        d|z  d|z  j                  «       «       t        d|z  d|z  j                  «       «       y rÅ  rÇ  rÈ  s      €r:   r  z+_TestCommon.test_rmul_scalar.<locals>.checkð  sW   ø€ Ø—/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEä˜q ™u q¨¡w×&7Ñ&7Ó&9Ô:Ü˜t C™x¨$¨u©*×)=Ñ)=Ó)?Õ@r<   rÉ  r  s   `  r:   Útest_rmul_scalarz_TestCommon.test_rmul_scalarï  rË  r<   c                 ó�   — | j                   t        j                     }t        t        «      5  d |z   d d d «       y # 1 sw Y   y xY wr>   )r  rJ   rô   r  r™  )r    ré   s     r:   Útest_rmul_scalar_type_errorz'_TestCommon.test_rmul_scalar_type_errorû  s1   € Ø×!Ñ!¤"§*¡*Ñ-ˆÜœ9Õ%Ø�5ŠL÷ &×%Ñ%ús	   ­<¼Ac                 óB   ‡ — ˆ fd„}‰ j                   D ]
  } ||«       Œ y )Nc                 óœ  •— ‰j                   |    }‰j                  |    }|j                  «       }d|d<   |}||z   }t        ||j	                  «       |z   «       ||j                  «       z   }t        |j	                  «       |j	                  «       |j	                  «       z   «       ||d   z   }t        ||j	                  «       |d   z   «       y )Nr|  r  r   )r  r  r,  r   r™   r£  ©r?   rë   ré   rN   rS   r¦  r    s         €r:   r  z#_TestCommon.test_add.<locals>.check  s²   ø€ Ø—/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEà—‘“
ˆAØˆAˆc‰FØˆAØ�A‘ˆAÜ˜q !§)¡)£+°¡/Ô2à�A—G‘G“I‘ˆAÜ˜qŸy™y›{Ø Ÿy™y›{¨Q¯Y©Y«[Ñ8ô:ð �A�a‘D‘ˆAÜ˜q !§)¡)£+°°!±Ñ"4Õ5r<   rÉ  r  s   `  r:   Útest_addz_TestCommon.test_add   s!   ø€ ô	6ð$ ×%Ô%ˆEÙ�%�Lñ &r<   c                 óB   ‡ — ˆ fd„}‰ j                   D ]
  } ||«       Œ y )Nc                 ó´   •— ‰j                   |    }‰j                  |    }|j                  «       }d|d<   |}||z   }t        |||j	                  «       z   «       y )Nr|  r  )r  r  r,  r   r™   rÓ  s         €r:   r  z$_TestCommon.test_radd.<locals>.check  sW   ø€ Ø—/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEà—‘“
ˆAØˆAˆc‰FØˆAØ�A‘ˆAÜ˜q ! a§i¡i£k¡/Õ2r<   rÉ  r  s   `  r:   Ú	test_raddz_TestCommon.test_radd  s!   ø€ ô	3ð ×%Ô%ˆEÙ�%�Lñ &r<   c                 ót   ‡ — ˆ fd„}‰ j                   D ]#  }|t        j                  d«      k(  rŒ ||«       Œ% y )Nc                 ó   •— ‰j                   |    }‰j                  |    }t        ||z
  j                  «       t	        j
                  d«      «       t        |dz
  j                  «       |«       ‰j                  t	        j                  g d¢g d¢g d¢gd«      «      }t        ||z
  j                  «       ||j                  «       z
  «       t        ||z
  j                  «       |j                  «       |z
  «       t        ||d   z
  ||d   z
  «       y )Nr÷  r   ©rç   r   r   r–  ©rè   r   r   r   ©r   rå  r   r¯  r  )r  r  r   r™   rJ   r   rø   r   ©r?   rë   ré   rQ   r    s       €r:   r  z#_TestCommon.test_sub.<locals>.check%  sÝ   ø€ Ø—/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEä ¨¡×6Ñ6Ó8¼"¿(¹(À6Ó:JÔKÜ ¨¡	×2Ñ2Ó4°cÔ:à—‘Ü—‘š,ª²}ÐEÀsÓKóˆAô  ¨¡	×2Ñ2Ó4°c¸A¿I¹I»KÑ6GÔHÜ  E¡	×2Ñ2Ó4°a·i±i³kÀCÑ6GÔHô ˜u s¨1¡v™~¨s°S¸±V©|Õ<r<   r  ©r  rJ   r?   r  s   `  r:   Útest_subz_TestCommon.test_sub$  s5   ø€ ô	=ð  ×%Ô%ˆEØœŸ™ Ó(Ò(àá�%�Lñ &r<   c                 ót   ‡ — ˆ fd„}‰ j                   D ]#  }|t        j                  d«      k(  rŒ ||«       Œ% y )Nc                 ó~  •— ‰j                   |    }‰j                  |    }t        ||z
  g d¢g d¢g d¢g«       t        ||z
  g d¢g d¢g d¢g«       t        d|z
  j                  «       | «       ‰j	                  g d¢g d¢g d¢gd¬«      }t        ||z
  ||j                  «       z
  «       t        ||z
  |j                  «       |z
  «       t        |j                  «       |z
  |j                  «       |z
  «       t        ||j                  «       z
  ||j                  «       z
  «       t        |d   |z
  |d   |z
  «       y )Nrð  r   rÚ  rÛ  rÜ  r  rò   )r  r  r   r™   rø   rÝ  s       €r:   r  z$_TestCommon.test_rsub.<locals>.check=  s  ø€ Ø—/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEä  e¡ªiº	Â)Ð-LÔMÜ ¨¡ªiº	Â)Ð-LÔMÜ  E¡	×2Ñ2Ó4°s°dÔ;à—‘¢	ª*²ZÐ@Às�ÓKˆAÜ  a¡¨#°·	±	³Ñ*;Ô<Ü  C¡¨!¯)©)«+¸Ñ*;Ô<Ü˜qŸy™y›{¨UÑ2°A·I±I³KÀ#Ñ4EÔFÜ˜u q§y¡y£{Ñ2°C¸!¿)¹)»+Ñ4EÔFô ˜s 1™v¨™~¨s°1©v¸©|Õ<r<   r  rÞ  r  s   `  r:   Ú	test_rsubz_TestCommon.test_rsub<  s5   ø€ ô	=ð" ×%Ô%ˆEØœŸ™ Ó(Ò(àá�%�Lñ &r<   c                 óB   ‡ — ˆ fd„}‰ j                   D ]
  } ||«       Œ y )Nc                 ó\  •— ‰j                   |    }‰j                  |    }t        |dz   j                  «       |«       t	        t        dd«      D �cg c]  }||z  ‘Œ	 c}«      }t	        t        dd«      D �cg c]  }||z  ‘Œ	 c}«      }t        |j                  «       |«       y c c}w c c}w )Nr   rç   ró   )r  r  r   r™   r6  r"  r   )r?   rë   ré   rÖ  ÚsumSÚsumDr    s         €r:   r  z$_TestCommon.test_add0.<locals>.checkV  s˜   ø€ Ø—/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEô  ¨¡	×2Ñ2Ó4°cÔ:ä¬5°°A¬;Ó7©; a˜˜E›	¨;Ñ7Ó8ˆDÜ¬¨q°!¬Ó5© A˜˜C›¨Ñ5Ó6ˆDÜ §¡£°Õ5ùò 8ùÚ5s   ÁB$Á6B)rÉ  r  s   `  r:   Ú	test_add0z_TestCommon.test_add0U  s!   ø€ ô		6ð ×%Ô%ˆEÙ�%�Lñ &r<   c                 óœ  — t        g d¢g d¢g«      }t        g d¢g d¢g«      }| j                  |«      }| j                  |«      }|j                  dv r|j                  nd}|j                  |«      j                  |k(  sJ ‚t	        |j                  |«      j                  «       ||z  «       t	        |j                  |«      j                  «       ||z  «       t        g d¢g d¢g«      }t        g d	¢g d
¢g«      }| j                  |«      }| j                  |«      }	t	        |j                  |	«      j                  «       ||z  «       t	        |j                  |«      j                  «       ||z  «       t	        |j                  |	«      j                  «       ||z  «       t	        |j                  |«      j                  «       ||z  «       y )N)r–  r   ræ  )re   r½  rŽ  )r   rä  r   )r   r±  r   )r6  r{  r5  r7  ©y      ð?       Ày              @y      ð¿        ©y      @      Ày      À      @rŽ  ©y      @       @y      @      Ày       À      ð?©y              ð¿y      À       @ræ  )r   rø   rû   Úmultiplyr   r™   )
r    rQ   rR   r&  ÚBspÚout_fmtrý   rÊ  ÚCspÚDsps
             r:   Útest_elementwise_multiplyz%_TestCommon.test_elementwise_multiplyd  sm  € ä’7š8Ð$Ó%ˆÜ’7š8Ð$Ó%ˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆà #§
¡
Ð.CÑ C�#—*’*ÈˆØ—‘˜SÓ!×)Ñ)¨WÒ4Ð4Ð4Ü˜CŸL™L¨Ó-×5Ñ5Ó7¸¸1¹Ô=Ü˜CŸL™L¨›O×3Ñ3Ó5°q¸±sÔ;ô Ò$¢^Ð4Ó5ˆÜÒ$¢^Ð4Ó5ˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆÜ˜CŸL™L¨Ó-×5Ñ5Ó7¸¸1¹Ô=Ü˜CŸL™L¨›O×3Ñ3Ó5°q¸±sÔ;ô 	˜CŸL™L¨Ó-×5Ñ5Ó7¸¸1¹Ô=Ü˜CŸL™L¨›O×3Ñ3Ó5°q¸±sÕ;r<   c                 ó  — t        dg«      }t        dgg«      }t        g d¢«      }t        g d¢g«      }t        dgdgdgg«      }t        g d¢g d	¢g d
¢g«      }g d¢}t        j                  d«      }|j                  }	t        dgg«      }
t        ddgddggg«      }| j	                  |«      }| j	                  |«      }| j	                  |«      }| j	                  |«      }| j	                  |«      }| j	                  |d   «      }| j	                  |	«      }| j	                  |	d d …dd f   «      }| j	                  |
«      }|||||||||	|
|g}|||||||||g	}|D ]V  }|D ]O  }	 |j                  «       |j                  «       z  }|j                  |«      }t        |j                  «       |«       ŒQ ŒX |D ]a  }|D ]Z  }	 |j                  «       |z  }	 |j                  |«      }t        |«      rt        |j                  «       |«       ŒOt        ||«       Œ\ Œc y # t        $ r t        t        |j                  |«       Y Œáw xY w# t        $ r Y Œ•t        $ r t        t        |j                  |«       Y Œºw xY w# t        $ r Y ŒÉw xY w)Nr–  é÷ÿÿÿ©rç   rè   r   )rä  ræ  rô  ró   re   rç   )rå  rñ   ró   )r±  ró   re   )rñ   rñ   rñ   râ  r÷  r   ©r   N)r   rJ   Úonesr?  rø   r™   r  r  rí  r   r™  r(   )r    rQ   rR   rý   rÊ  ÚErë  ÚGÚHÚJÚKÚLrî  rñ  ÚEspÚFspÚHspÚHsppÚJspÚJsppÚKspr8  Ú
spmatricesr•  r  Ú
dense_multÚsp_mults                              r:   Ú#test_elementwise_multiply_broadcastz/_TestCommon.test_elementwise_multiply_broadcast|  so  € Ü�1�#‹JˆÜ�B�4�&‹MˆÜ’(‹OˆÜ’8�*ÓˆÜ�A�3˜�s˜A˜3�-Ó ˆÜ’7š8¢GÐ,Ó-ˆÚˆÜ�G‰G�F‹OˆØ�C‰CˆÜ�A�3�%‹LˆÜ�Q�q�E˜1˜Q˜%�=�/Ó"ˆð �n‰n˜QÓˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆØ�~‰~˜a ™iÓ(ˆØ�n‰n˜QÓˆØ�~‰~˜a¢ ! D ™kÓ*ˆØ�n‰n˜QÓˆà�q˜!˜Q  1 a¨¨A¨q°!Ð4ˆØ˜3  S¨#¨t°S¸$ÀÐDˆ
ó ˆAÛ�ðØ!"§¡£¨q¯y©y«{Ñ!:�Jð Ÿ*™* Q›-�Ü# G§O¡OÓ$5°zÕBñ  ð ó ˆAÛ�ðØ!"§¡£¨q¡�JðØŸj™j¨›m�Gô ˜GÔ$Ü'¨¯©Ó(9¸:ÕFä'¨°Õ<ñ ñ øô "ò Ü!¤*¨a¯j©j¸!Ô<Ùðûô !ò ÙÜ!ò Ü!¤*¨a¯j©j¸!Ô<Ùðûô
 "ò Ùðús<   Å%!HÇ IÇI:È$IÉIÉ	I7É#I7É6I7É:	JÊJc           	      óž  — dt         j                  t         j                  dgdt         j                  dt         j                  gt         j                  dt         j                  t         j                  gg}t        t        | j                  | j                  z  «      |«       | j                  g d¢g d¢g d¢gd¬«      }dt         j                  t         j                  dgdt         j                  t        t         j                  gt         j                  d	t         j                  d
gg}t        t        | j                  |z  «      |«       t        g d¢g d¢g«      }t        g d¢g d¢g«      }| j                  |«      }| j                  |«      }t        t        ||z  «      ||z  «       t        g d¢g d¢g«      }t        g d¢g d¢g«      }| j                  |«      }| j                  |«      }t        j                  d¬«      5  t        t        ||z  «      ||z  «       d d d «       t        d
dgdd
gg«      }t        dd
gdd
gg«      }| j                  |«      }| j                  |«      }t        j                  dd¬«      5  t        t        j                  t        ||z  «      «      ||z  «       d d d «       y # 1 sw Y   ŒœxY w# 1 sw Y   y xY w)Nrç   rÚ  rÛ  rÜ  r  rò   ç      à?r½  g      Ð?r   ré  rê  rë  rì  râ  )r½  re   rç   r.  )r   rE  ró   r(  )Údivide)r  rG  )
rJ   r-  r   r™   ré   rø   r   r   r   rJ  )r    rq  ÚdenomrQ   rR   r&  rî  s          r:   Útest_elementwise_dividez#_TestCommon.test_elementwise_divide¶  s(  € Ø”r—v‘vœbŸf™f QÐ'Ø”r—v‘v˜a¤§¡Ð'Ü—V‘V˜AœbŸf™f¤R§V¡VÐ,ð.ˆô 	œ7 4§:¡:°·
±
Ñ#:Ó;¸XÔFà—‘¢	ª*²ZÐ@Às�ÓKˆØ”r—v‘vœbŸf™f SÐ)ØœŸ™œs¤2§6¡6Ð*Ü—V‘V˜D¤§¡¨Ð*ð,ˆô 	œ7 4§:¡:°Ñ#5Ó6¸ÔAô Ò$¢^Ð4Ó5ˆÜÒ$¢^Ð4Ó5ˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆÜœG C¨#¡IÓ.°°!±Ô4ô ’7š8Ð$Ó%ˆÜ’7š8Ð$Ó%ˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆÜ�[‰[ Ö)Üœw s¨S¡yÓ1°1°q±5Ô9÷ *ô �A�a�5˜!˜A˜�-Ó ˆÜ�A�a�5˜!˜A˜�-Ó ˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆÜ�[‰[ °(Ö;ÜœrŸx™x¬°°c±	Ó(:Ó;¸QÀ¹UÔC÷ <Ð;÷ *Ð)ú÷ <Ð;ús   È J7É?/KÊ7K ËKc                 ót  — t        g d¢g d¢g d¢g d¢g«      }| j                  |«      }| j                  rÇdD ]F  }||z  }||z  }t        |j	                  «       |«       t        |j                  |j                  «       ŒH t        t        |j                  d«       t        t        |j                  d«       | j                  |d d…d d …f   «      }t        |d	z  j	                  «       |j	                  «       «       y d
D ]a  }||z  }t        j                  j                  ||«      }t        |j	                  «       |«       t        |j                  |j                  «       Œc dD ]  }t        t        |j                  |«       Œ | j                  |d d…d d …f   «      }t        t        |j                  d	«       y )N©rç   r   re   r   )r   ró   r–  r   )r   rŽ  r   r   )r   rñ   rä  rå  )rç   re   çš™™™™™@ró   rÇ  r   rè   ró   rç   ©r   rç   re   ró   )rè   r  rÇ  )r   rø   r  r   r™   r   r?   r  rm  Ú__pow__r  rJ   r�  Úmatrix_powerr™  )r    rQ   rR   ÚexponentÚret_spÚret_nps         r:   Útest_powz_TestCommon.test_powÙ  sY  € Ü’<¢ª|º\ÐJÓKˆØ�N‰N˜1Óˆà×ÒÛ0�Ø˜H™�Ø˜H™�Ü" 6§>¡>Ó#3°VÔ<Ü˜VŸ\™\¨6¯<©<Õ8ð	 1ô Ô-¨q¯y©y¸!Ô<Üœ* a§i¡i°Ô4ð —‘˜q  ! ¢A ™wÓ'ˆAÜ˜!˜Q™$Ÿ™Ó)¨1¯9©9«;Õ7ã%�Ø˜H™�ÜŸ™×/Ñ/°°8Ó<�Ü" 6§>¡>Ó#3°VÔ<Ü˜VŸ\™\¨6¯<©<Õ8ð	 &ó .�Üœj¨!¯)©)°XÕ>ð .ð —‘˜q  ! ¢A ™wÓ'ˆAÜœ) Q§Y¡Y°Õ2r<   c                 óð   — | j                  g d¢g d¢g d¢g d¢g«      }t        g d¢|z  t        g d¢|j                  «       «      «       t	        g d¢g«      }t        ||z  ||j                  «       z  «       y )N©ró   r   r   ©r   rç   r   ©re   r   ry  ©re   ró   r   rÔ  )rø   r   r   r™   r   )r    r‚  rº  s      r:   Útest_rmatvecz_TestCommon.test_rmatvecú  sY   € Ø�N‰NšG¢GªI²gÐ>Ó?ˆÜ!¢)¨a¡-´²YÀÇ	Á	ÃÓ1LÔMÜ’Y�KÓ ˆÜ! #¨¡'¨3°·±³Ñ+<Õ=r<   c                 ó0  — | j                  dgdgdgg«      }t        t        |t        d«      z  «      «       t	        |t        d«      z  j                  «       dgdgdgg«       t	        |t        dg«      z  t        g d¢«      «       t	        |t        dgg«      z  t        dgdgdgg«      «       t	        |t        j                  d«      z  t        dgdgdgg«      «       t	        |t        j                  d«      z  t        j                  d«      «       y )Nrç   re   ró   râ  ©rç   rç   ©rç   r   ©ró   r   )rø   r   r(   r   r   r™   rJ   r÷  r³  s     r:   Útest_small_multiplicationz%_TestCommon.test_small_multiplication   sà   € à�N‰N˜Q˜C   Q C˜=Ó)ˆä”˜œU 1›X™Ó&Ô'Ü�aœ% ›(‘l×+Ñ+Ó-°°°a°S¸1¸#¨Ô?ä�Qœ ˜s›‘^¤Uª9Ó%5Ô6Ü�Qœ  ˜u›Ñ%¤u¨q¨c°A°3¸¸¨_Ó'=Ô>Ü�QœŸ™ ›Ñ(¬%°!°°q°c¸A¸3°Ó*@ÔAÜ�QœŸ™ ›Ñ(¬"¯'©'°&«/Õ:r<   c                 ó*  — t        j                  dgdgdgg«      }| j                  |«      }| j                  rYt	        |t        j
                  d«      z  j                  «       |«       t	        |t        dgg«      z  j                  «       |«       y t        |t        dg«      z  t        g d¢«      «       t        |t        dgg«      z  t        dgdgdgg«      «       t        |t        j
                  d«      z  t        j
                  d«      «       y )Nrç   re   ró   rW  râ  r   r!  )rJ   r   rø   r  r   r÷  r™   r   )r    rQ   r&  s      r:   Ú-test_star_vs_at_sign_for_sparray_and_spmatrixz9_TestCommon.test_star_vs_at_sign_for_sparray_and_spmatrix  sÔ   € ä�H‰H�q�c˜A˜3  �_Ó%ˆØ�n‰n˜QÓˆà×ÒÜ% s¬R¯W©W°V«_Ñ'<×&EÑ&EÓ&GÈÔKÜ% s¬U°Q°C°5«\Ñ'9×&BÑ&BÓ&DÀaÕHä˜œu a S›zÑ)¬5²Ó+;Ô<Ü˜œu q c U›|Ñ+¬U°Q°C¸!¸¸q¸c°?Ó-CÔDÜ˜œrŸw™w v›Ñ.´·±¸³Õ@r<   c                 ó6  — | j                  dgdgdgg«      }t        «       }t        ||z   d«       t        ||z
  d«       t        ||z  d«       t        ||z   d«       t        ||z
  d«       t        ||z  d«       t        ||z  d«       t        ||z  d«       y )Nrç   re   ró   rª   rž   )rø   r›   r   ©r    rQ   rR   s      r:   Útest_binop_custom_typez"_TestCommon.test_binop_custom_type  s�   € ð
 �N‰N˜Q˜C !  q c˜?Ó+ˆÜ‹MˆÜ�Q˜‘UÐ0Ô1Ü�Q˜‘UÐ0Ô1Ü�Q˜‘UÐ0Ô1Ü�Q˜‘UÐ1Ô2Ü�Q˜‘UÐ1Ô2Ü�Q˜‘UÐ1Ô2ä�Q˜‘UÐ0Ô1Ü�Q˜‘UÐ1Õ2r<   c                 ó8  — | j                  dgdgdgg«      }t        d«      }t        ||z   d«       t        ||z
  d«       t        ||z  d«       t        ||z   d«       t        ||z
  d«       t        ||z  d«       t        ||z  d«       t        ||z  d«       y )Nrç   re   ró   rW  rª   rž   )rø   r¹   r   r&  s      r:   Ú!test_binop_custom_type_with_shapez-_TestCommon.test_binop_custom_type_with_shape*  sž   € Ø�N‰N˜Q˜C !  q c˜?Ó+ˆÜ" 5Ó)ˆÜ�Q˜‘UÐ0Ô1Ü�Q˜‘UÐ0Ô1Ü�Q˜‘UÐ0Ô1Ü�Q˜‘UÐ1Ô2Ü�Q˜‘UÐ1Ô2Ü�Q˜‘UÐ1Ô2ä�Q˜‘UÐ0Ô1Ü�Q˜‘UÐ1Õ2r<   c                 óþ   —  G d„ d«      }d}| j                  dgdgdgg«      } ||«      }||z  }||z  }t        |j                  «       |j                  «       «       t        |j                  |j                  «       y )Nc                   ó   — e Zd Zd„ Zd„ Zy)ú0_TestCommon.test_mul_custom_type.<locals>.Customc                 ó   — || _         y r>   ©Úscalar)r    r/  s     r:   r¾   z9_TestCommon.test_mul_custom_type.<locals>.Custom.__init__9  s	   € Ø$�•r<   c                 ó    — || j                   z  S r>   r.  rÐ   s     r:   r®   z9_TestCommon.test_mul_custom_type.<locals>.Custom.__rmul__<  s   € Ø˜tŸ{™{Ñ*Ð*r<   N)rµ   r¶   r·   r¾   r®   ra   r<   r:   ÚCustomr,  8  s   „ ò%ó+r<   r1  re   rç   ró   )rø   rC   r™   r   rû   )r    r1  r/  rQ   r¦  ÚA_scalarÚA_cs          r:   Útest_mul_custom_typez _TestCommon.test_mul_custom_type7  ss   € ÷	+ñ 	+ð ˆØ�N‰N˜Q˜C   Q C˜=Ó)ˆÙ�6‹NˆØ�v‘:ˆØ�!‰eˆÜ  ×!1Ñ!1Ó!3°S·[±[³]ÔCÜ�X—_‘_ c§j¡jÕ1r<   c                 óú   — | j                  dgdgdgg«      }t        «       }t        ||k(  d«       t        ||k7  d«       t        ||kD  d«       t        ||k\  d«       t        ||k  d«       t        ||k  d	«       y )
Nrç   re   ró   rÏ   rÕ   rØ   rÛ   rÞ   rá   )rø   rÍ   r   r&  s      r:   Útest_comparisons_custom_typez(_TestCommon.test_comparisons_custom_typeG  sx   € Ø�N‰N˜Q˜C !  q c˜?Ó+ˆÜÓˆÜ�Q˜!‘V˜TÔ"Ü�Q˜!‘V˜TÔ"Ü�Q˜‘U˜DÔ!Ü�Q˜!‘V˜TÔ"Ü�Q˜‘U˜DÔ!Ü�Q˜!‘V˜TÕ"r<   c           	      óÐ   — | j                  t        g d¢g d¢g d¢g d¢g«      «      }d}|j                  |«      }||z  }t        |j	                  «       |j	                  «       «       y )Nr  r  r  r  rV   )rø   r   r   r   r™   )r    r‚  r/  Úactualrq  s        r:   Útest_dot_scalarz_TestCommon.test_dot_scalarQ  sS   € Ø�N‰Nœ5¢'ª'²)ºGÐ!DÓEÓFˆØˆØ—‘�v“ˆØ�v‘:ˆä˜Ÿ™Ó(¨(×*:Ñ*:Ó*<Õ=r<   c           	      ó¤  — | j                  t        g d¢g d¢g d¢g d¢g«      «      }| j                  t        ddgddgddggd«      «      }t        g d	¢g«      j                  }t        j                  }t         |||«      |j                  «       |z  «       t         |||«      j                  «       ||z  j                  «       «       t         ||j                  «       |«      ||z  j                  «       «       t         |||j                  «       «      ||z  j                  «       «       t        t        ||d«       t        t        |d|«       y )
Nr  r  r  r  r   rç   re   r  râ  )	rø   r   r?  ÚoperatorÚmatmulr   r™   r  r  )r    r‚  rR   r»  r<  s        r:   Útest_matmulz_TestCommon.test_matmulY  s  € Ø�N‰Nœ5¢'ª'²)ºGÐ!DÓEÓFˆØ�N‰Nœ5 1 Q %¨¨1¨¨q°¨eÐ!4°SÓ9Ó:ˆÜ’W�IÓ× Ñ ˆä—‘ˆä!¡&¨¨C£.°!·)±)³+ÀÑ2CÔDô 	"¡&¨¨A£,×"6Ñ"6Ó"8¸1¸q¹5¿/¹/Ó:KÔLÜ!¡&¨¯©«°aÓ"8¸1¸q¹5¿/¹/Ó:KÔLÜ!¡&¨¨A¯I©I«KÓ"8¸1¸q¹5¿/¹/Ó:KÔLô 	”j &¨!¨QÔ/Ü”j &¨!¨QÕ/r<   c           
      óJ  — | j                  g d¢g d¢g d¢g d¢g«      }t        g d¢g«      j                  }t        ||z  |j	                  «       |z  «       t        |t        g d¢«      z  j                  d«       t        |t        dgdgd	gg«      z  j                  d
«       t        |t        dgdgd	gg«      z  j                  d
«       t        t        |t        g d¢«      z  t        «      «       | j                  rt        nt        j                  }t        t        |t        g d¢«      j                  z  |«      «       t        ddg«      t        g d¢«      t        dgdgg«      t        g d¢«      t        dgdgg«      g}|D ]  }t        t        |j                  |«       Œ t!        |t        g d¢«      z  t#        |j	                  «       g d¢«      «       t!        |dgdgd	ggz  t        j$                  t#        |j	                  «       g d¢«      «      j                  «       y )Nr  r  r  r  râ  )r–  rç   re   ró   )r–  rç   rÔ  )rø   r   r?  r   r™   r   r½   r1   r   rI   r
   r  rJ   r  r  r²   r   r   Ú
atleast_2d)r    r‚  r»  rd  Úbad_vecsr@   s         r:   Útest_matvecz_TestCommon.test_matveck  s¨  € Ø�N‰NšG¢GªI²gÐ>Ó?ˆÜ’W�IÓ× Ñ ˆä! ! c¡'¨1¯9©9«;¸Ñ+<Ô=ô 	�aœ%¢›.Ñ(×/Ñ/°Ô5Ü�aœ% !  a S¨!¨ Ó.Ñ.×5Ñ5°eÔ<Ü�aœ& 1 # q c¨1¨# Ó/Ñ/×6Ñ6°uÔ=ô 	”
˜1œu¢W›~Ñ-¬wÓ7Ô8Ø%)×%7Ò%7�'¼R¿Y¹YˆÜ”
˜1œv¢g›×0Ñ0Ñ0°/ÓBÔCô ˜1˜Q˜%“L¤%ª	Ó"2´E¸A¸3À¸s¸)Ó4DÜš7“O¤V¨a¨S°!°¨IÓ%6ð8ˆãˆAÜœ* a§l¡l°AÕ6ð ô
 	˜Aœe¢G›nÑ,¬c°!·)±)³+ºgÓ.FÔGÜ˜A ˜s A 3¨ s˜m™O¬R¯]©]¼3¸q¿y¹y»{Ê7Ó;SÓ-T×-VÑ-VÕWr<   c                 ó¬  — t        g d¢g d¢g d¢g d¢g«      }t        g d¢g d¢g d¢g d¢g«      }t        ddgddgddggd«      }| j                  |«      }| j                  |«      }t        ||z  j	                  «       ||z  «       t        ||z  ||z  «       t        ||z  ||z  «       t        ||z  ||z  «       |j                  «       }|}||z  }t        ||z  j	                  «       |«       t        ||z  |«       t        ||z  |«       t        ||z  |«       |j                  «       }t        ||z  j	                  «       |«       t        ||z  |«       t        ||z  |«       t        ||z  |«       |j                  «       }t        ||z  j	                  «       |«       t        ||z  |«       t        ||z  |«       t        ||z  |«       d	}	d
}
t        j                  d«       t        |	df«      }t        |	«      D ]6  }t        d«      D ]&  }t        j                  «       }||
k  sŒ||
z  |||f<   Œ( Œ8 | j                  |«      }||j                  z  }t        |j	                  «       |j	                  «       |j                  j	                  «       z  «       t        |j	                  «       |j	                  «       |j	                  «       j                  z  «       | j                  ddgddgg«      }| j                  ddgddgddgg«      }t        t        |j                  |«       | j                   rt        t        |j"                  |«       y y )Nr  r  r  r  r   rç   re   r  ró  g333333Ó?ró   r–  rŽ  rñ   )r1   r   rø   r   r™   r¢  r£  r¤  r”   r  r   r"  r?  r  r  r²   r  r¥   )r    rN   Úa2rS   ÚaspÚbspÚcspr¦  Úwantrý  ÚfracrQ   r•  r  r  rR   s                   r:   Útest_matmat_sparsez_TestCommon.test_matmat_sparseŠ  sÝ  € Ü’GšG¢IªgÐ6Ó7ˆÜ’GšG¢IªgÐ6Ó7ˆÜ�Q�q�E˜1˜Q˜%  1 Ð& sÓ+ˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆÜ! 3¨¡9×"5Ñ"5Ó"7¸¸Q¹Ô?Ü! #¨¡'¨1¨q©5Ô1Ü! ! c¡'¨1¨q©5Ô1Ü! " s¡(¨A°©EÔ2ð �i‰i‹kˆØˆØ�1‰uˆÜ! 3¨¡9×"5Ñ"5Ó"7¸Ô>Ü! #¨¡'¨4Ô0ä! ! c¡'¨4Ô0Ü! " s¡(¨DÔ1Ø�i‰i‹kˆÜ! 3¨¡9×"5Ñ"5Ó"7¸Ô>Ü! #¨¡'¨4Ô0ä! ! c¡'¨4Ô0Ü! " s¡(¨DÔ1Ø�i‰i‹kˆÜ! 3¨¡9×"5Ñ"5Ó"7¸Ô>Ü! #¨¡'¨4Ô0ä! ! c¡'¨4Ô0Ü! " s¡(¨DÔ1ð ˆØˆÜ�‰�AŒÜ�1�Q�%‹LˆÜ�q–ˆAÜ˜1–X�Ü—M‘M“O�Ø�t“8Ø˜t™V�A�a˜�c’Fñ ð ð �N‰N˜1ÓˆØ�—‘‰GˆÜ! !§)¡)£+¨q¯y©y«{¸Q¿S¹S¿[¹[»]Ñ/JÔKÜ! !§)¡)£+¨q¯y©y«{¸Q¿Y¹Y»[¿]¹]Ñ/JÔKð �N‰N˜Q˜q˜E 1 Q %˜=Ó)ˆØ�N‰N˜Q˜q˜E 1 Q %¨¨1¨Ð.Ó/ˆÜ”j !§,¡,°Ô2Ø×ÒÜœ* a§i¡i°Õ3ð r<   c           	      ób  — g d¢g d¢g d¢g d¢g}| j                  |«      }t        ddgddgd	d
gg«      t        ddgddgd	d
gg«      g}|D ]c  }||z  }t        t	        || j
                  rt        n
t        |«      «      «       t        |j                  d«       t        |t        ||«      «       Œe y )Nr  r  r  r  rç   re   ró   r–  rŽ  rñ   ©r–  re   )rø   r   r1   r   rI   r  r
   Útyper   r½   r   )r    rN   rD  ÚbsrS   Úresults         r:   Útest_matmat_densez_TestCommon.test_matmat_denseÂ  s¨   € Ú’WšY¢wÐ/ˆØ�n‰n˜QÓˆô �a˜�U˜A˜a˜5 ! A Ð'Ó(¬&°1°Q°%¸¸1¸¸qÀ¸eÐ1DÓ*EÐFˆãˆAØ˜1‘WˆFÜ”J˜v°$×2DÒ2D¥wÌ$ÈqË'ÓRÔSÜ˜Ÿ™ uÔ-Ü˜¤ Q q£Õ*ñ	 r<   c                 ó  — t        j                  g d¢g d¢g d¢gddgddgg«      }|j                  «       }| j                  |«      }dD ]é  }|j	                  |«      }t        |j                  |«       t        |j                  «       |«       | j                  |d	z   «      j	                  |«      }t        |j                  |«       t        |j                  «       |d	z   «       | j                  |«      j	                  |«      }t        |j                  |«       t        |j                  «       |«       Œë d
D ]Q  }|j	                  |«      }t        ||«       | j                  |d	z   «      j	                  |«      }t        ||d	z   «       ŒS y )NrÑ  ©r   ró   r–  )rŽ  r   r   rç   re   r   ró   )r5  rb  r6  r7  r{  rD   rc  ù              @)r   Údense)r†   r   r™   rø   Úasformatr   rû   r   )r    rQ   rÊ  rû   rN   rS   r¦  s          r:   Útest_sparse_format_conversionsz*_TestCommon.test_sparse_format_conversionsÏ  s:  € Ü�K‰Kš¢ªÐ1°Q°q°E¸1¸Q¸%°=ÓAˆØ�I‰I‹KˆØ�N‰N˜1ÓˆãAˆFØ—
‘
˜6Ó"ˆAÜ˜Ÿ™ &Ô)Ü˜qŸy™y›{¨AÔ.à—‘˜q ™tÓ$×-Ñ-¨fÓ5ˆAÜ˜Ÿ™ &Ô)Ü˜qŸy™y›{¨A¨b©DÔ1à—‘˜qÓ!×*Ñ*¨6Ó2ˆAÜ˜Ÿ™ &Ô)Ü˜qŸy™y›{¨AÕ.ð Bó )ˆFØ—
‘
˜6Ó"ˆAÜ˜q !Ô$à—‘˜q ™tÓ$×-Ñ-¨fÓ5ˆAÜ˜q ! B¡$Õ'ñ )r<   c           	      ó  — t        g d¢g d¢g d¢g«      }t        g d¢g d¢g«      }t        ||«      }| j                  |«      }dD ]B  }t        |d|z   «      }dD ],  }d	D ]%  }t	         |||f¬
«      j                  «       |«       Œ' Œ. ŒD y )Nr  rð  ©r   r   r–  rŽ  r.  ©ró   r   rŽ  )r5  Úto)rç   re   ró   rñ   )rç   re   ró   r–  rñ   rì  ©Ú	blocksize)r   r   rø   r{   r   r™   )	r    r@   rA   rQ   r&  rû   ÚfnÚXÚYs	            r:   Ú
test_tobsrz_TestCommon.test_tobsrè  s…   € Ü’9šY¢yÐ1Ó2ˆÜ’7š7Ð#Ó$ˆÜ��1‹IˆØ�n‰n˜QÓˆÛˆFÜ˜˜d V™mÓ,ˆBã!�Û,�AÜ ¡¨q°!¨fÔ!5×!=Ñ!=Ó!?ÀÕCñ -ñ "ñ r<   c                 ó  ‡ ‡— ‰ j                   }t        j                  g g«      }||gŠˆˆ fd„}‰ j                  d«      }t	        t        j
                  |«      j                  «       t        j
                  t        d«      «      «       t	        |j                  j                  «       t        d«      «       t        t        |j
                  d¬«       ‰ j                  D ]$  }t        t        ‰«      «      D ]  } |||«       Œ Œ& y )Nc                 ó   •— t        ‰|   | ¬«      }‰j                  |«      }|j                  «       }|j                  «       }t        |j	                  «       |«       t        |j                  «       j	                  «       |«       t        |j                  d¬«      j	                  «       |«       t        |j                  |j                  «       y )Nrò   r   ©ro  )r   rø   r   r   r™   r   r?   )r?   r  rë   ré   rN   rS   r8  r    s         €€r:   r  z)_TestCommon.test_transpose.<locals>.checkù  s‘   ø€ Ü˜ ™¨5Ô1ˆCØ—N‘N 3Ó'ˆEà—‘Ó!ˆAØ—‘“ˆAä˜qŸy™y›{¨AÔ.Ü˜qŸ{™{›}×4Ñ4Ó6¸Ô<Ü˜uŸ™°F˜Ó;×CÑCÓEÀqÔIÜ˜Ÿ™ !§'¡'Õ*r<   r÷  ©r–  ró   r   rb  )rë   rJ   r   rø   r   r   r™   r   r?  r  r  r  r"  rÂ   )r    r:  r;  r  rÛ  r?   r  r8  s   `      @r:   Útest_transposez_TestCommon.test_transposeô  sº   ù€ Ø—‘ˆÜ—‘˜"˜“ˆØ˜5�>ˆõ
	+ð —‘˜vÓ&ˆÜœ2Ÿ<™<¨Ó.×6Ñ6Ó8ÜŸ<™<¬¨f«Ó6ô	8ä˜5Ÿ7™7Ÿ?™?Ó,¬e°F«mÔ<Ü”j %§/¡/¸Õ:à×(Ô(ˆEÜœ3˜x›=Ö)�Ù�e˜Q•ñ *ñ )r<   c                 óB   ‡ — ˆ fd„}‰ j                   D ]
  } ||«       Œ y )Nc                 ó’   •— ‰j                   |    }‰j                  |    }||z   }t        |||z   «       ||z   }t        |||z   «       y r>   )r  r  r   ©r?   rë   ré   Úsum1Úsum2r    s        €r:   r  z)_TestCommon.test_add_dense.<locals>.check  sQ   ø€ Ø—/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEð ˜‘;ˆDÜ˜t S¨3¡YÔ/Ø˜3‘;ˆDÜ˜t S¨3¡YÕ/r<   rÉ  r  s   `  r:   Útest_add_densez_TestCommon.test_add_dense  s!   ø€ ô	0ð ×%Ô%ˆEÙ�%�Lñ &r<   c                 ót   ‡ — ˆ fd„}‰ j                   D ]#  }|t        j                  d«      k(  rŒ ||«       Œ% y )Nc                 ó"  •— ‰j                   |    }‰j                  |    }|j                  t        k(  r)||z
  }t	        |||z
  «       ||z
  }t	        |||z
  «       y ||z   |z   |z
  }t	        |||z   «       ||z   |z   |z
  }t	        |||z   «       y r>   )r  r  r?   r  r   rg  s        €r:   r  z)_TestCommon.test_sub_dense.<locals>.check   s    ø€ Ø—/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEð �y‰yœDÒ Ø˜U‘{�Ü" 4¨¨s©Ô3Ø˜s‘{�Ü" 4¨¨s©Õ3ð ˜c™	 C™¨5Ñ0�Ü" 4¨¨s©Ô3Ø ™¨Ñ-°Ñ4�Ü" 4¨¨s©Õ3r<   r  rÞ  r  s   `  r:   Útest_sub_densez_TestCommon.test_sub_dense  s5   ø€ ô	4ð$ ×%Ô%ˆEØœŸ™ Ó(Ò(àá�%�Lñ &r<   c           	      óÈ  ‡ ‡‡‡— t        j                  g d¢g d¢g d¢g«      Št        j                  g d¢g d¢g d¢g«      Št        j                  g d¢g d¢g d¢g«      Šˆˆˆˆ fd	„}‰ j                  D ]m  }t         j                  t         j                  t         j
                  fD ]9  }d
D ]2  } |t        j                  |«      t        j                  |«      |«       Œ4 Œ; Œo y )N)rç   r   ró   )r   r–  rŽ  rf  )rç   rç   re   )r   ró   rñ   rõ  )r   y      @       @rŽ  )r   ù              ð?y       €      ð¿c                 óú  •— t        j                  | t         j                  «      r!‰j                  ‰
j	                  | «      «      }n ‰j                  ‰	j	                  | «      «      }|dk(  r|j                  d«      }n^|dk(  r|j                  d«      }nG|dk(  r‰j	                  |«      }n0|dk(  r!‰j                  ‰j	                  |«      «      }n
t        «       ‚t        j                  «       5  t        j                  ddt        «       |j                  |«      }|j                  |«      }d d d «       t        j                  t        |«      t        |«      «      }t        t        «      |«       t        |j                   |j                   «       t        j                  t        |«      t        |«      «      }t        t        «      |«       t        |j                   |j                   «       y # 1 sw Y   ŒÄxY w)	Nr/  rç   Úscalar2rè   rS  r†   r(  zTTaking (maximum|minimum) with a (positive|negative) number results in a dense matrix)rJ   rl   Úcomplexfloatingrø   rt   rL  r  r)  r*  r
  r)   ÚmaximumÚminimumr™   r   r   r?   )r?   Údtype2ÚbtyperQ   rR   Úmax_sÚmin_sÚmax_dÚmin_dÚA_denseÚA_dense_cpxÚB_denser    s            €€€€r:   r  z/_TestCommon.test_maximum_minimum.<locals>.check?  so  ø€ Ü�}‰}˜U¤B×$6Ñ$6Ô7Ø—N‘N ;×#5Ñ#5°eÓ#<Ó=‘à—N‘N 7§>¡>°%Ó#8Ó9�Ø˜Ò Ø—K‘K “N‘Ø˜)Ò#Ø—K‘K “O‘Ø˜'Ò!Ø—N‘N 6Ó*‘Ø˜(Ò"Ø—N‘N 7§>¡>°&Ó#9Ó:‘ä “lÐ"ä×(Ñ(Õ*Ü×'Ñ'Øð0ä+ô	ð Ÿ	™	 !›�ØŸ	™	 !›�÷ +ô —J‘Jœw q›z¬7°1«:Ó6ˆEÜœw u›~¨uÔ5Ü˜Ÿ™ e§k¡kÔ2ä—J‘Jœw q›z¬7°1«:Ó6ˆEÜœw u›~¨uÔ5Ü˜Ÿ™ e§k¡kÕ2÷# +Ð*ús   Ã0>G1Ç1G:)r/  rq  rS  r†   )rJ   r   r  r   rô   r÷   r?   )r    r  r?   ru  rv  r{  r|  r}  s   `    @@@r:   Útest_maximum_minimumz _TestCommon.test_maximum_minimum9  sŸ   û€ Ü—(‘(šI¢y²)Ð<Ó=ˆÜ—(‘(šI¢y²*Ð=Ó>ˆä—h‘h¢	ª<ºÐFÓGˆ÷!	3ðF ×%Ô%ˆEÜŸ7™7¤B§J¡J´·±Ó>�ÛE�EÙœ"Ÿ(™( 5›/¬2¯8©8°FÓ+;¸UÕCñ Fñ ?ñ &r<   c                 óþ  — | j                   }t        |j                  «       j                  |j                  «       t        |j	                  |d¬«      j                  |j                  «       t        |j	                  |d¬«      j                  |j                  «       t        |j                  «       j                  «       |j                  «       «       t        |j	                  |d¬«      j                  «       |j                  «       «       t        |j	                  |d¬«      j                  «       |j                  «       «       t        |d|j                  z   «      }t         |«       |u «       t         |d¬«      |u «       t         |d¬«      j                  |j                  «       t         |d¬«      j                  «       |j                  «       «       t        t        |j                  «       |«       «       y )NTrø  FrY  )	ré   r   r,  rû   Ú	__class__r™   r{   r   rT   )r    rQ   Útoselfs      r:   Ú	test_copyz_TestCommon.test_copyg  sZ  € à�J‰Jˆô 	�Q—V‘V“X—_‘_ a§h¡hÔ/Ü�Q—[‘[ ¨�[Ó-×4Ñ4°a·h±hÔ?Ü�Q—[‘[ ¨�[Ó.×5Ñ5°q·x±xÔ@ä�Q—V‘V“X×%Ñ%Ó'¨¯©«Ô5Ü�Q—[‘[ ¨�[Ó.×6Ñ6Ó8¸!¿)¹)»+ÔFÜ�Q—[‘[ ¨�[Ó/×7Ñ7Ó9¸1¿9¹9»;ÔGô ˜˜4 !§(¡(™?Ó+ˆÜ‘“˜A�ÔÜ‘˜EÔ" aÐ'Ô(Ü‘V Ô&×-Ñ-¨q¯x©xÔ8Ü‘V Ô&×.Ñ.Ó0°!·)±)³+Ô>ô 	Ô+¨A¯F©F«H°aÓ8Ð8Õ9r<   c                 óê   — | j                  t        j                  d«      j                  dd«      «      }| j	                  |«      }t        ||«      D ]  \  }}t        |j                  «       |«       Œ! y )Nr�  rŽ  rV   )r  rJ   r   rù   rø   Úzipr   r™   )r    rR   rQ   r@   rA   s        r:   Útest_iteratorz_TestCommon.test_iterator  sW   € Ø�L‰LœŸ™ 2›×.Ñ.¨q°"Ó5Ó6ˆØ�N‰N˜1Óˆä˜˜1–I‰DˆAˆqÜ˜Ÿ™› aÕ(ñ r<   c                 ól  — t        g «      }|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }t        j                  ddg«      }| j	                  |«      }| j	                  |«      }	| j	                  |«      }
| j	                  |«      }| j	                  |«      }| j	                  |«      }t        |j                  |«      j                  «       t        j                  ||«      «       t        |	j                  |«      j                  «       t        j                  ||«      «       t        |j                  |	«      j                  «       t        j                  ||«      «       t        |
j                  |«      j                  «       t        j                  ||«      «       t        |
j                  |«      j                  «       t        j                  ||«      «       t        |j                  |
«      j                  «       t        j                  ||«      «       t        |j                  |
«      j                  «       t        j                  ||«      «       t        |j                  |«      j                  «       t        j                  ||«      «       t        t        |j                  |«       t        t        |j                  |«       t        |j                  |«      j                  «       t        j                  ||«      «       t        |	j                  |	«      j                  «       t        j                  ||«      «       t        |j                  |«      j                  «       t        j                  ||«      «       t        |j                  |«      j                  «       t        j                  ||«      «       t        |	j                  |«      j                  «       t        j                  ||«      «       t        |j                  |«      j                  «       t        j                  ||«      «       t        |j                  d«      j                  «       t        j                  |d«      «       t        |	j                  d«      j                  «       t        j                  |d«      «       t        |j                  d«      j                  «       t        j                  |d«      «       t        t        |j                  |«       t        t        |j                  |«       t        |j                  |«      j                  «       |j                  |«      «       t        |	j                  |	«      j                  «       |j                  |«      «       t        |j                  |«      j                  «       |j                  |«      «       t        t        |j                  |«       t        t        |	j                  |«       y )NrØ  r5  rÙ  r   r  rŽ  rñ   )r   rù   rJ   r÷  rø   r   r   r™   r  r  rí  r¢   )r    r¡   rN   rS   r¦  r  r§  r¨  rD  rE  rF  ÚdspÚespÚfsps                 r:   Ú test_size_zero_matrix_arithmeticz,_TestCommon.test_size_zero_matrix_arithmetic†  s  € ô �B‹iˆØ�K‰K˜ÓˆØ�K‰K˜ÓˆØ�K‰K˜ÓˆØ�K‰K˜ÓˆØ�K‰K˜ÓˆÜ�G‰G�Q˜�F‹Oˆà�n‰n˜QÓˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆô 	˜3Ÿ7™7 3›<×/Ñ/Ó1´2·6±6¸!¸Q³<Ô@Ü˜3Ÿ7™7 3›<×/Ñ/Ó1´2·6±6¸!¸Q³<Ô@Ü˜3Ÿ7™7 3›<×/Ñ/Ó1´2·6±6¸!¸Q³<Ô@Ü˜3Ÿ7™7 3›<×/Ñ/Ó1´2·6±6¸!¸Q³<Ô@Ü˜3Ÿ7™7 3›<×/Ñ/Ó1´2·6±6¸!¸Q³<Ô@Ü˜3Ÿ7™7 3›<×/Ñ/Ó1´2·6±6¸!¸Q³<Ô@Ü˜3Ÿ7™7 3›<×/Ñ/Ó1´2·6±6¸!¸Q³<Ô@Ü˜3Ÿ7™7 3›<×/Ñ/Ó1´2·6±6¸!¸Q³<Ô@ô 	”j #§'¡'¨1Ô-Ü”j #§'¡'¨1Ô-ô 	˜3Ÿ<™<¨Ó,×4Ñ4Ó6¼¿¹ÀAÀqÓ8IÔJÜ˜3Ÿ<™<¨Ó,×4Ñ4Ó6¼¿¹ÀAÀqÓ8IÔJÜ˜3Ÿ<™<¨Ó,×4Ñ4Ó6¼¿¹ÀAÀqÓ8IÔJä˜3Ÿ<™<¨›?×2Ñ2Ó4´b·k±kÀ!ÀQÓ6GÔHÜ˜3Ÿ<™<¨›?×2Ñ2Ó4´b·k±kÀ!ÀQÓ6GÔHÜ˜3Ÿ<™<¨›?×2Ñ2Ó4´b·k±kÀ!ÀQÓ6GÔHä˜3Ÿ<™<¨›?×2Ñ2Ó4´b·k±kÀ!ÀQÓ6GÔHÜ˜3Ÿ<™<¨›?×2Ñ2Ó4´b·k±kÀ!ÀQÓ6GÔHÜ˜3Ÿ<™<¨›?×2Ñ2Ó4´b·k±kÀ!ÀQÓ6GÔHô 	”j #§,¡,°Ô2Ü”j #§,¡,°Ô2ô 	˜3Ÿ;™; sÓ+×3Ñ3Ó5°q·y±yÀ³|ÔDÜ˜3Ÿ;™; sÓ+×3Ñ3Ó5°q·y±yÀ³|ÔDÜ˜3Ÿ;™; sÓ+×3Ñ3Ó5°q·y±yÀ³|ÔDô 	”j #§+¡+¨sÔ3Ü”j #§+¡+¨sÕ3r<   c                 óš  — t        g «      }|j                  d«      }|j                  d«      }|j                  d«      }|||fD �]  }| j                  |«      }t        |j	                  «       j                  «       |«       t        |j                  «       j                  «       |«       t        |j                  «       j                  «       |«       t        |j                  «       j                  «       |«       t        |j                  «       j                  «       |«       t        |j                  «       j                  «       |«       �Œ y )NrØ  rÙ  r  )r   rù   rø   r   r¤  r™   r£  r¢  ÚtolilÚtodokÚtobsr)r    r¡   rN   rS   r¦  r©  Úspms          r:   Útest_size_zero_conversionsz&_TestCommon.test_size_zero_conversionsÀ  sé   € Ü�B‹iˆØ�K‰K˜ÓˆØ�K‰K˜ÓˆØ�K‰K˜Óˆà�Q˜”ˆAØ—.‘. Ó#ˆCÜ˜sŸy™y›{×2Ñ2Ó4°aÔ8Ü˜sŸy™y›{×2Ñ2Ó4°aÔ8Ü˜sŸy™y›{×2Ñ2Ó4°aÔ8Ü˜sŸy™y›{×2Ñ2Ó4°aÔ8Ü˜sŸy™y›{×2Ñ2Ó4°aÔ8Ü˜sŸy™y›{×2Ñ2Ó4°aÖ8ñ r<   c                 ó²  — t        j                  g d¢g d¢gt         j                  ¬«      }t        t        d¬«      5  | j                  |«       d d d «       | j                  |j                  t         j                  «      «      }t        t        d¬«      5  | j                  |t         j                  ¬«       d d d «       y # 1 sw Y   ŒsxY w# 1 sw Y   y xY w)N)g      @r   gš™™™™™ñ?rf  rò   zdoes not support dtyperk  )rJ   r   Úfloat16r  r  rø   rt   rö   )r    rN   ÚA32s      r:   Útest_dtype_checkz_TestCommon.test_dtype_checkÏ  s‘   € Ü�H‰H’m¢YÐ/´r·z±zÔBˆÜœ:Ð-EÖFØ�N‰N˜1Ô÷ Gð �n‰n˜QŸX™X¤b§j¡jÓ1Ó2ˆÜœ:Ð-EÖFØ�N‰N˜3¤b§j¡jˆNÔ1÷ GÐF÷	 GÐFú÷ GÐFús   ½CÂ"CÃC
ÃCc                 ó*   ‡ ‡— dd l Šˆˆ fd„} |«        y )Nr   c                  ó‚  •— t        j                  «       5  t        j                  dt        «       ‰j                  j                  «       } t        ‰j                  «      D �]G  }‰j                  ‰j                  | |¬«      «      }t        | j                  |j                  «       t        | j                  «       |j                  «       «       t        | j                  |j                  «       | j                  j!                  «       D ]�  \  }}t#        |t$        j&                  «      rt        ||j                  |   «       Œ:t#        |t(        «      r9|r7t#        |d   t$        j&                  «      rt        ||j                  |   «       Œƒt+        ||j                  |   k(  «       ŒŸ �ŒJ 	 d d d «       y # 1 sw Y   y xY w)Nr(  )Úprotocolr   )r)  r*  r+  r)   ré   r,  r"  ÚHIGHEST_PROTOCOLÚloadsÚdumpsr   r½   r   r™   rû   rG   ÚitemsrI   rJ   r
   r$  r   )ré   r—  ÚsploadedÚkeyrN  Úpickler    s        €€r:   r  z&_TestCommon.test_pickle.<locals>.checkÚ  s4  ø€ Ü×(Ñ(Õ*Ü×%Ñ% hÔ0GÔHØŸ
™
Ÿ™Ó)�Ü % f×&=Ñ&=× >�HØ%Ÿ|™|¨F¯L©L¸È¨LÓ,RÓS�HÜ  §¡¨h¯n©nÔ=Ü& u§}¡}£¸×8HÑ8HÓ8JÔKÜ  §¡¨x¯©Ô?ð %*§N¡N×$8Ñ$8Ö$:™˜˜SÜ% c¬2¯:©:Ô6Ü.¨s°H×4EÑ4EÀcÑ4JÕKÜ(¨¬eÔ4¹Ü",¨S°©V´R·Z±ZÔ"@Ü.¨s°H×4EÑ4EÀcÑ4JÕKä# C¨8×+<Ñ+<¸SÑ+AÑ$AÕBò %;ñ !?÷ +×*Ñ*ús   –FF5Æ5F>)rž  )r    r  rž  s   ` @r:   Útest_picklez_TestCommon.test_pickleØ  s   ù€ Ûõ	Cñ, 	�r<   c                 ó.   ‡ — ˆ fd„}dD ]
  } ||«       Œ y )Nc                 ó’  •— | dk(  rt        j                  d«       ‰j                  j                  dv rt        j                  d«       t	        t
        | «      }‰j                  t        j                  d«      j                  dd«      dz  «      } ||j                  «       «      } ||«      }t        |j                  «       |«       y )	NÚsignz2sign conflicts with comparison op support on Numpy)rD   rc  z%Unary ops not implemented for dok/lilrò  r–  rŽ  ç      4@)r  r  ré   rû   r{   rJ   rø   r   rù   r™   r   )r   Úufuncr]  ÚX0ÚX2r    s        €r:   r  z5_TestCommon.test_unary_ufunc_overrides.<locals>.checkó  s—   ø€ Ø�vŠ~Ü—‘ð /ô 0à�z‰z× Ñ  NÑ2Ü—‘ÐCÔDÜœB Ó%ˆEà—‘œrŸy™y¨›}×4Ñ4°Q¸Ó:¸SÑ@ÓAˆAÙ�q—y‘y“{Ó#ˆBá�q“ˆBÜ˜rŸz™z›|¨RÕ0r<   )ÚsinÚtanÚarcsinÚarctanÚsinhÚtanhÚarcsinhÚarctanhÚrintr¢  Úexpm1Úlog1pÚdeg2radÚrad2degÚfloorÚceilÚtruncÚsqrtr²  ra   )r    r  r   s   `  r:   Útest_unary_ufunc_overridesz&_TestCommon.test_unary_ufunc_overridesò  s   ø€ ô	1óˆDñ �$�Kñ	r<   c                 óÌ  — t        j                  g d¢g d¢g d¢g«      }| j                  |«      }t        |j	                  d«      d u «       t        |j                  «       ddgddgddgg«       |j	                  d	«       t        |j                  «       ddgddgg«       |j	                  d«       t        |j                  «       ddgddgddgg«       |j	                  d
«       t        |j                  «       g d¢g d¢g d¢g«       |j	                  d
«       t        |j                  «       g d¢g d¢g d¢g«       |j	                  dd«       t        |j                  «       ddgddgddgg«       | j                  r |j                  dv r|j	                  d«       n&t        t        t        t        f|j                  d«       dD ]  }t        t        |j                  |«       Œ y )N©rç   r   ró   r–  ©re   r   r   r   ©ró   r   r   r   ©ró   re   rç   r   re   ró   ©re   re   r`  ry  )re   r   r   rf  )rb  r7  ))rè   re   rõ  râ  )rJ   r   rø   r   Úresizer   r™   r  rû   r  r  rm  Ú
IndexError)r    rÊ  r›  Ú	bad_shapes       r:   Útest_resizez_TestCommon.test_resize	  s³  € ä�H‰H’lÚ"Ú"ð$ó %ˆð �N‰N˜1ÓˆÜ�—‘˜Ó  DÐ(Ô)Ü˜1Ÿ9™9›;¨!¨Q¨Ø*+¨Q¨Ø*+¨Q¨ð)1ô 	2ð 	
�‰�ÔÜ˜1Ÿ9™9›;¨!¨Q¨Ø*+¨Q¨ð)1ô 	2à	�‰�ÔÜ˜1Ÿ9™9›;¨!¨Q¨Ø*+¨Q¨Ø*+¨Q¨ð)1ô 	2ð 	
�‰�ÔÜ˜1Ÿ9™9›;ªÚ)2Ú)2ð)4ô 	5ð 	
�‰�ÔÜ˜1Ÿ9™9›;ªÚ)2Ú)2ð)4ô 	5ð
 	
�‰��AŒÜ˜1Ÿ9™9›;¨!¨Q¨Ø*+¨Q¨Ø*+¨Q¨ð)1ô 	2ð ×Ò !§(¡(¨nÑ"<Ø�H‰H�Q�Käœ:Ô':¼JÐGÈÏÉÐSTÔUã6ˆIÜœ* a§h¡h°	Õ:ñ 7r<   c                 ó4  — | j                   }|j                  }|j                  |d¬«      }t        |j	                  «       |j	                  «       «       |t
        vrt        t        ||«      «       |j                  ||j                  d¬«      }t        |j	                  «       |j	                  «       «       |t
        vrt        t        ||«      «       |j                  |t        j                  d¬«      }t        |j	                  «       |j	                  «       «       |j                  |d¬«      }t        |j	                  «       |j	                  «       «       t        t        ||«       «       dD ]¥  }||k(  rŒ	|j                  |«      }|j                  |d¬«      }t        |j	                  «       |j	                  «       «       |j                  |d¬«      }t        |j	                  «       |j	                  «       «       t        t        ||«       «       Œ§ y )NFrø  )r?   r,  T)r7  r6  rb  r{  rD   rc  )ré   rû   r€  rC   r™   ÚNON_ARRAY_BACKED_FORMATSr   rT   r?   rJ   rö   r   rT  )r    rQ   Úself_formatrý   Úother_formatrR   s         r:   Útest_constructor1_basez"_TestCommon.test_constructor1_base0	  sŒ  € Ø�J‰Jˆà—h‘hˆà�K‰K˜ ˆKÓ&ˆÜ  §¡£¨a¯i©i«kÔ:ØÔ6Ñ6ÜÔ+¨A¨qÓ1Ô2à�K‰K˜ §¡¨uˆKÓ5ˆÜ  §¡£¨a¯i©i«kÔ:ØÔ6Ñ6ÜÔ+¨A¨qÓ1Ô2à�K‰K˜¤§¡°%ˆKÓ8ˆÜ˜1Ÿ9™9›;¨¯	©	«Ô4à�K‰K˜ ˆKÓ%ˆÜ  §¡£¨a¯i©i«kÔ:ÜÔ+¨A¨qÓ1Ð1Ô2ãFˆLØ˜{Ò*ØØ—
‘
˜<Ó(ˆAØ—‘˜A E�Ó*ˆAÜ$ Q§Y¡Y£[°!·)±)³+Ô>à—‘˜A D�Ó)ˆAÜ$ Q§Y¡Y£[°!·)±)³+Ô>ÜÔ/°°1Ó5Ð5Õ6ñ Gr<   N)trµ   r¶   r·   rÿ   r-   r  r&   r   r#   r  r    r  r!   r  r%   r  r"   r  r$   r  r   r  Úclassmethodr  r   r$  r:  r=  r@  rP  rS  rZ  r^  ri  rr  rw  r‹  rœ  rž  rª  r´  r»  rÁ  rÄ  rË  rÏ  rà  ré  rü  r  ÚmarkÚslowr  r  r*  r,  r?  rI  rQ  r]  ra  re  ri  rk  rp  rr  rt  rŠ  rŽ  r’  r–  r˜  rœ  r©  r¬  r¾  rÂ  rÊ  rÎ  rÐ  rÔ  r×  rß  râ  rç  rò  r  r  r  r  r"  r$  r'  r)  r4  r6  r9  r=  rA  rI  rO  rU  r_  rd  rj  rm  r~  r‚  r…  rŠ  r�  r”  rŸ  r¸  rÂ  rÇ  ra   r<   r:   r
  r
  1  s?  „ Ù@Ø"€Kà€MØ€MØ€MØ€MØ€MØ€MØ€MØ€Gàñ;ó ð;ò.ò	1ò"òH#òJ4ò;òz:òx6òp6òpYò1ò;ò
'ò7ò(&ò(7ò$?òJòGòFò/ò
/ò
GòB?ò-=ð^ ‡[�[×Ññ40ó ð40òlAò<#ò#ò! òF(ò"ò Eò65ò?ò&òP(ò"ò Fò67òAò>ò6Nòòò2ò2'6òR#6òJ(LòT=ò"	ò	òò
ò,òò0ò2ò<ò08=òt!DòF3òB>ò
;òAò3ò"3ò2ò #ò>ò0ò$Xò>64òp+ò(ò2
Dò ò8òò6,Dò\:ò0)ò84òt9ò2òò4ò*';óR7r<   r
  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)Ú_TestInplaceArithmeticc                 óÐ  — t        j                  d«      }| j                  |«      }|j                  «       }|j                  «       }||z  }||z  }t	        ||«       |j                  «       }|j                  «       }||z  }||z  }t	        ||«       | j
                  rn|j                  «       }|j                  «       }t        t        d¬«      5  ||j                  z  }d d d «       ||z  }||z  }t	        ||j                  «       «       nu|j                  «       }|j                  «       }t        t        d¬«      5  ||z  }d d d «       |j                  |j                  «      }||j                  z  }t	        ||«       |j                  «       }||j                  z  }|j                  «       }|j                  «       }t        t        d¬«      5  ||z  }d d d «       |j                  |j                  «      }||j                  z  }t	        ||«       t        t        d¬«      5  ||z  }d d d «       y # 1 sw Y   �ŒXxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒyxY w# 1 sw Y   y xY w)Nr÷  úinconsistent shapesrk  zdimension mismatchúunsupported operand)rJ   r÷  rø   r,  r   r  r  r  r?  r™   r   r™  )r    rN   rS   r@   rA   s        r:   Útest_inplace_densez)_TestInplaceArithmetic.test_inplace_denseS	  só  € Ü�G‰G�F‹OˆØ�N‰N˜1Óˆà�F‰F‹HˆØ�F‰F‹HˆØ	ˆQ‰ˆØ	ˆQ‰ˆÜ˜1˜aÔ à�F‰F‹HˆØ�F‰F‹HˆØ	ˆQ‰ˆØ	ˆQ‰ˆÜ˜1˜aÔ à×Òà—‘“ˆAØ—‘“ˆAÜœzÐ1FÖGØ�Q—S‘S‘�÷ Hà�A‘ˆAØ�‰FˆAÜ˜q !§)¡)£+Õ.ð —‘“ˆAØ—‘“ˆAÜœzÐ1EÖFØ�Q‘�÷ Gà—‘�a—c‘c“
ˆAØ�—‘‰HˆAÜ˜q !Ô$ð �F‰F‹HˆØ	ˆQ�S‰S‰ˆØ�F‰F‹HˆØ�F‰F‹HˆÜœ:Ð-AÖBØ�‰FˆA÷ Cà�E‰E�!—#‘#‹JˆØ	ˆQ�S‰S‰ˆÜ˜1˜aÔ ô œ9Ð,AÖBØ�!‰GˆA÷ CÐB÷7 HÑGú÷ GÑFú÷ CÐBú÷ CÐBús0   ÃH6Ä>IÇIÈ'IÈ6I ÉIÉIÉI%c                 óB   ‡ — ˆ fd„}‰ j                   D ]
  } ||«       Œ y )Nc                 óÄ  •— ‰j                   |    }‰j                  |    }t        j                  t        | d¬«      rD|j                  «       }|dz  }|j                  «       }|dz  }t        ||j                  «       «       t        j                  t        | d¬«      rE|j                  «       }|dz  }|j                  «       }|dz  }t        ||j                  «       «       y y ©NÚ	same_kind)Úcastingre   rÆ  ©	r  r  rJ   Úcan_castÚintr,  r   r™   r€  ©r?   rë   ré   rN   rS   r    s        €r:   r  z6_TestInplaceArithmetic.test_imul_scalar.<locals>.check†	  s¸   ø€ Ø—/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEô �{‰{œ3 ¨{Õ;Ø—J‘J“L�Ø�Q‘�Ø—H‘H“J�Ø�Q‘�Ü" 1 a§i¡i£kÔ2ä�{‰{œ5 %°Õ=Ø—J‘J“L�Ø�T‘	�Ø—H‘H“J�Ø�T‘	�Ü" 1 a§i¡i£kÕ2ð >r<   rÉ  r  s   `  r:   Útest_imul_scalarz'_TestInplaceArithmetic.test_imul_scalar…	  s!   ø€ ô	3ð& ×%Ô%ˆEÙ�%�Lñ &r<   c                 óž   ‡ — ˆ fd„}‰ j                   D ]8  }t        j                  |t        j                  t        «      «      rŒ1 ||«       Œ: y )Nc                 óÄ  •— ‰j                   |    }‰j                  |    }t        j                  t        | d¬«      rD|j                  «       }|dz  }|j                  «       }|dz  }t        ||j                  «       «       t        j                  t        | d¬«      rE|j                  «       }|dz  }|j                  «       }|dz  }t        ||j                  «       «       y y rÓ  rÖ  rÙ  s        €r:   r  z6_TestInplaceArithmetic.test_idiv_scalar.<locals>.check�	  s¶   ø€ Ø—/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEä�{‰{œ3 ¨{Õ;Ø—J‘J“L�Ø�Q‘�Ø—H‘H“J�Ø�Q‘�Ü" 1 a§i¡i£kÔ2ä�{‰{œ5 %°Õ=Ø—J‘J“L�Ø�T‘	�Ø—H‘H“J�Ø�T‘	�Ü" 1 a§i¡i£kÕ2ð >r<   )r  rJ   r×  r?   rØ  r  s   `  r:   Útest_idiv_scalarz'_TestInplaceArithmetic.test_idiv_scalarœ	  s9   ø€ ô	3ð$ ×%Ô%ˆEô —;‘;˜u¤b§h¡h¬s£mÕ4Ù�e•ñ	 &r<   c                 óÚ  — | j                  t        j                  d«      «      }| j                  t        j                  d«      «      }| j                  t        j                  d«      «      }||z  }||z   }t        |j	                  «       |j	                  «       «       | j
                  r2||z  }||z  }t        |j	                  «       |j	                  «       «       ||z  }||z  }t        |j	                  «       |j	                  «       «       ||z  }||z
  }t        |j	                  «       |j	                  «       «       t        t        d¬«      5  ||z  }d d d «       y # 1 sw Y   y xY w)NrŽ  rÏ  rk  )rø   rJ   r'   r   r™   r  r  r™  )r    rN   rS   Úbps       r:   Útest_inplace_successz+_TestInplaceArithmetic.test_inplace_successµ	  s  € ð �N‰Nœ2Ÿ6™6 !›9Ó%ˆØ�N‰Nœ2Ÿ6™6 !›9Ó%ˆØ�^‰^œBŸF™F 1›IÓ&ˆà	ˆQ‰ˆØ�!‰VˆÜ˜Ÿ	™	› R§Z¡Z£\Ô2à×ÒØ�‰FˆAØ�a‘ˆBÜ˜AŸI™I›K¨¯©«Ô6à	ˆQ‰ˆØ�!‰VˆÜ˜Ÿ	™	› R§Z¡Z£\Ô2à	ˆQ‰ˆØ�!‰VˆÜ˜Ÿ	™	› R§Z¡Z£\Ô2äœ9Ð,AÖBØ�!‰GˆA÷ C×BÑBús   ÅE!Å!E*N)rµ   r¶   r·   rÐ  rÚ  rÝ  rà  ra   r<   r:   rÌ  rÌ  R	  s   „ ò0òdò.ó2r<   rÌ  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú_TestGetSetc                 ó\   ‡ — ˆ fd„}t         D ]  } |t        j                  |«      «       Œ y )Nc                 ól  •— t        g d¢g d¢g d¢g d¢g| ¬«      }‰j                  |«      }|j                  \  }}t        | |«      D ]*  }t        | |«      D ]  }t	        |||f   |||f   «       Œ Œ, t	        t        |d   «      | «       dD ]#  }t        t        t        f|j                  |«       Œ% y )Nry  ©r–  ró   r   ©r   re   r   rf  rò   r  ©rC  rt  )r–  r   rc  )r–  rè   râ  )
r   rø   r½   r"  r   rL  r  rÀ  r™  Ú__getitem__)	r?   rÊ  rQ   r‚  r…  r•  r  r'  r    s	           €r:   r  z*_TestGetSet.test_getelement.<locals>.checkÓ	  s±   ø€ Ü’wÚÚÚð ð (-ô.ˆAð —‘˜qÓ!ˆAà—'‘'‰CˆAˆaä˜A˜2˜q–\�Ü ˜r 1ž�AÜ   1 Q 3¡¨¨1¨Q¨3©Õ0ñ &ð "ô œ˜a ™f› uÔ-ãB�Üœz¬9Ð5°q·}±}ÀbÕIñ Cr<   ©r-   rJ   r?   r  s   `  r:   Útest_getelementz_TestGetSet.test_getelementÒ	  s%   ø€ ô	J÷$ &ˆEÙ”"—(‘(˜5“/Õ"ñ &r<   c                 ó–   ‡ — ˆ fd„}d„ t         j                  d„ g}|D ])  }t        D ]  } |t        j                  |«      |«       Œ  Œ+ y )Nc                 óö  •— ‰j                  d| ¬«      }t        j                  «       5  t        j                  dt        t
        «        || j                  d«      «      |d<    || j                  d«      «      |d<    || j                  d«      «      |d	<    || j                  d
«      «      |d<    || j                  d«      «      |d<    || j                  d«      «      |d<    || j                  d«      «      |d	<   d d d «       | t        j                  k7  r#t        |j                  «       g d¢g d¢g d¢g«       dD ]  }t        t        |j                  |d«       Œ  g d¢t        g d¢«      fD ]  }t        t        |j                  d|«       Œ  t        j                   | t        j"                  «      s8| t        j                  k7  r$dD ]  }t        t$        |j                  d|«       Œ  y y y # 1 sw Y   ŒñxY w)Nr÷  rò   r(  r   rØ  r   ©rç   re   ró   r5  r|  r  rå  ©r   rè   rä  ©rè   rE  rŽ  )r   rŽ  r   rå  )r   r   r–  r   )re   r   rä  r   ))r   r–  )rè   r–  r!  r÷  ru  g     À^@râ  )rR  )rø   r)  r*  r
  r  r)   rL  rJ   Úbool_r   r™   r  rÀ  Ú__setitem__r   r  rl   rr  r™  )r?   Úscalar_containerrQ   r'  r   r    s        €r:   r  z*_TestGetSet.test_setelement.<locals>.checké	  s“  ø€ Ø—‘˜v¨U�Ó3ˆAÜ×(Ñ(Õ*Ü×'Ñ'¨´$Ô8OÔPÙ*¨5¯:©:°a«=Ó9��$‘Ù*¨5¯:©:°c«?Ó;��$‘Ù*¨5¯:©:°a«=Ó9��$‘Ù*¨5¯:©:°c«?Ó;��$‘Ù+¨E¯J©J°q«MÓ:��%‘Ù,¨U¯Z©Z¸«]Ó;��&‘	Ù*¨5¯:©:°a«=Ó9��$‘÷ +ð œŸ™Ò Ü"Ø—I‘I“K¢,²ºlÐ!Kôó A�Üœj¨!¯-©-¸¸UÕCð Aò  ¤¢yÓ!1Ó2�Üœj¨!¯-©-¸ÀÕCð 3ô —=‘= ¬×(:Ñ(:Ô;ÀÌÏÉÒ@QÛ�AÜ!¤)¨Q¯]©]¸FÀAÕFñ ð ARÐ;÷+ +Ð*ús   ©CG/Ç/G8c                 óB   — t        t        j                  | gg«      «      S r>   )r!   rJ   r   ©r@   s    r:   Ú<lambda>z-_TestGetSet.test_setelement.<locals>.<lambda>
  s   € ”i¤§¡¨1¨#¨£Ô0r<   c                 ó   — | S r>   ra   rô  s    r:   rõ  z-_TestGetSet.test_setelement.<locals>.<lambda>
  s   € Áar<   )rJ   r   r-   r?   )r    r  Úscalar_containersrò  r?   s   `    r:   Útest_setelementz_TestGetSet.test_setelementè	  sH   ø€ ô	Gñ8 1´"·(±(¹Kð
Ðó !2Ðß)�Ù”b—h‘h˜u“oÐ'7Õ8ñ *ñ !2r<   c                 óh   ‡ — ˆ fd„}‰ j                   D ]  } |t        j                  |«      «       Œ y )Nc                 óä   •— ‰j                  d| ¬«      }t        j                  «       5  t        j                  dt        t
        «       d|d<   d d d «       t        |d   d«       y # 1 sw Y   ŒxY w)N)ró   rV   rò   r(  rç   )r   r±  )rø   r)  r*  r
  r  r)   r   ©r?   rQ   r    s     €r:   r  z9_TestGetSet.test_negative_index_assignment.<locals>.check
  s[   ø€ Ø—‘˜w¨e�Ó4ˆAÜ×(Ñ(Õ*Ü×'Ñ'¨´$Ô8OÔPØ��%‘÷ +ô ˜˜5™ 1Õ%÷ +Ð*ús   ©%A&Á&A/rÞ  r  s   `  r:   Útest_negative_index_assignmentz*_TestGetSet.test_negative_index_assignment
  s*   ø€ ô	&ð ×%Ô%ˆEÙ”"—(‘(˜5“/Õ"ñ &r<   c           	      óª   ‡ ‡‡— d\  ŠŠˆˆˆ fd„}dddt        d«      dfdt        d«      ft        d«      t        d«      ffD ]  \  }} |||d«       Œ y )	N©rŽ  rV   c                 ó<  •— | ›d|›d|›�}‰j                  ‰‰f«      }t        j                  «       5  t        j                  dt        t
        «       d|| |f<   d d d «       t        |j                  «       ||¬«       t        || |f   d|¬«       y # 1 sw Y   Œ9xY w)Nz ; r(  rç   r  )rø   r)  r*  r
  r  r)   r   r6  )r•  r  Únitemsr6   rQ   r©  r  r    s        €€€r:   Ú	_test_setz3_TestGetSet.test_scalar_assign_2.<locals>._test_set
  s�   ø€ Ø�E˜˜Q˜E  V JÐ/ˆCØ—‘  1˜vÓ&ˆAÜ×(Ñ(Õ*Ü×'Ñ'¨´$Ô8OÔPØ��!�Q�$‘÷ +ô   §¡£¨¸Õ=Ü  ! Q $¡¨°CÖ8÷	 +Ð*ús   ³'BÂB©re   ró   ©rè   rå  rï  rè   rE  rç   )r   ©r    r  r•  r  r©  r  s   `   @@r:   Útest_scalar_assign_2z _TestGetSet.test_scalar_assign_2
  sZ   ú€ Ø‰ˆˆ1ö	9ð ˜W h´°r³¸B°À"ÄeÈBÃiÀÜ˜B“i¤ r£Ð+ó-‰DˆAˆqá�a˜˜AÕñ-r<   c                 óF  — | j                  d«      }t        j                  d«      }t        j                  «       5  t        j
                  dt        t        «       ||fD ]  }d|d<   d|d<   d|d<   Œ 	 d d d «       t        |j                  «       |«       y # 1 sw Y   Œ$xY w)Nr   r(  rç   r5  r–  r!  ræ  ©
rø   rJ   r   r)  r*  r
  r  r)   r   r™   rü   s       r:   Útest_index_scalar_assignz$_TestGetSet.test_index_scalar_assign)
  s†   € Ø�N‰N˜6Ó"ˆÜ�H‰H�VÓˆÜ×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLØ˜“V�Ø��#‘Ø��#‘Ø��#’ñ ÷ 'ô 	˜1Ÿ9™9›;¨Õ*÷ 'Ð&ús   »8BÂB N)rµ   r¶   r·   rê  rø  rü  r  r  ra   r<   r:   râ  râ  Ñ	  s   „ ò#ò,!9òF#òó"	+r<   râ  zfails in parallel©Úreasonc                   ó   — e Zd Zd„ Zy)Ú
_TestSolvec                 ó2  — d}t         j                  j                  d«       t        ||ft        ¬«      }t         j                  j                  |«      }t         j                  j                  |dz
  «      dt         j                  j                  |dz
  «      z  z   }t         j                  j                  |«      }t        t        |«      «      D ]  }||   |||f<   Œ t        t        |«      «      D ]%  }||   |||dz   f<   t        ||   «      ||dz   |f<   Œ' | j                  |«      }t        j                  «       5  t        j                  ddt        «       t        |«      j                  |«      }d d d «       t!        ||z  |«       y # 1 sw Y   ŒxY w)Nrò  r   rò   rç   ro  r(  r}  )rJ   r”   r  r   rI  r9  r"  rÂ   r   rø   r)  r*  r
  r)   r2   Úsolver   )r    r  rQ   r@   rA   r  r•  s          r:   Ú
test_solvez_TestSolve.test_solve7
  sF  € ð ˆÜ
�	‰	�‰�qÔÜ�1�Q�%œwÔ'ˆÜ�I‰I�N‰N˜1ÓˆÜ�I‰I�N‰N˜1˜Q™3Ó ¤2§9¡9§>¡>°!°A±#Ó#6Ñ 6Ñ6ˆÜ�I‰I�N‰N˜1ÓˆÜ”s˜1“v–ˆAØ�q‘TˆAˆa�ˆcŠFð ä”s˜1“v–ˆAØ˜‘tˆAˆa��!‘ˆe‰HÜ   1¡“ˆAˆa�‰c�!ˆeŠHð ð �N‰N˜1ÓˆÜ×$Ñ$Õ&Ü×#Ñ#ØÐBÜ'ô)ô �Q“—‘˜aÓ ˆA÷	 'ô
 	˜A ™E !Õ$÷ 'Ð&ús   Ä?6FÆFN)rµ   r¶   r·   r  ra   r<   r:   r  r  5
  s   „ ó%r<   r  c                   ó–   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                  j                  d«      d	„ «       Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)Ú_TestSlicingc                 óT  — t        | j                  dt        j                  ¬«      ddd…f   j                  t        j                  «       t        | j                  dt        j
                  ¬«      ddd…f   j                  t        j
                  «       t        | j                  dt        j                  ¬«      ddd…f   j                  t        j                  «       t        | j                  dt        j                  ¬«      ddd…f   j                  t        j                  «       y )N©rç   rV   rò   r   rç   rŽ  )r   rø   rJ   rõ   r?   rZ   rö   rô   rÀ   s    r:   Útest_dtype_preservationz$_TestSlicing.test_dtype_preservationO
  sÊ   € Ü�T—^‘^ F´"·(±(�^Ó;¸A¸aÀ¸c¸EÑB×HÑHÌ"Ï(É(ÔSÜ�T—^‘^ F´"·(±(�^Ó;¸A¸aÀ¸c¸EÑB×HÑHÌ"Ï(É(ÔSÜ�T—^‘^ F´"·*±*�^Ó=¸aÀÀ!À¸eÑD×JÑJÌBÏJÉJÔWÜ�T—^‘^ F´"·*±*�^Ó=¸aÀÀ!À¸eÑD×JÑJÌBÏJÉJÕWr<   c                 ó¨  — t         j                  t         j                  t         j                  t         j                  fD ]‘  }| j                  d|¬«      }t        |d d …ddd…f   j                  |«       t        |ddd…d d …f   j                  |«       t        |dddd…f   j                  |«       t        |ddd…df   j                  |«       Œ“ y )Nr½  rò   r   re   ©rJ   rõ   rZ   rö   rô   rø   r   r?   ©r    ÚdtrQ   s      r:   Ú#test_dtype_preservation_empty_slicez0_TestSlicing.test_dtype_preservation_empty_sliceU
  s±   € ô —8‘8œRŸX™X¤r§z¡z´2·:±:Ó>ˆBØ—‘˜v¨R�Ó0ˆAÜ˜š1˜a  !˜e˜8™×*Ñ*¨BÔ/Ü˜˜1˜Q˜q˜5¢!˜8™×*Ñ*¨BÔ/Ü˜˜1˜a  !˜e˜8™×*Ñ*¨BÔ/Ü˜˜1˜Q˜q˜5 !˜8™×*Ñ*¨BÕ/ñ ?r<   c           	      ó�  — | j                  t        d«      j                  dd«      «      }| j                  |«      }| j                  rdndgdgdgf\  }}}t        ||d d …f   |dd d …f   j                  «       «       t        ||dd…f   |ddd…f   j                  «       «       | j                  g d¢g d	¢g d
¢g d¢g«      }| j                  |«      }t        ||dd…f   |ddd…f   j                  «       «       | j                  g d¢g d¢g d
¢g d¢g«      }| j                  |«      }	t        ||dd…f   |	ddd…f   j                  «       «       t        ||dd …f   |	ddd …f   j                  «       «       t        t        |j                  t        d «      df«       t        t        |j                  dt        dd«      f«       y )Nç      I@rŽ  rV   r.  r   rç   re   ©rç   re   rç   ©r–  r   rñ   rf  rÒ  ró   ©r–  r   r   rE  é   rñ   rä  )r  r   rù   rø   r  r   r™   r  rÀ  rè  Úslice)
r    rR   rQ   Úr0Úr1Úr2rý   rÊ  rø  rë  s
             r:   Útest_get_horiz_slicez!_TestSlicing.test_get_horiz_slice_
  s›  € Ø�L‰Lœ ›×,Ñ,¨Q¨rÓ2Ó3ˆØ�N‰N˜1ÓˆØ"&×"4Ò"4‘Y¸A¸3ÀÀÀaÀS¸/‰
ˆˆB�Ü˜1˜R¢˜U™8 Q qª! t¡W§_¡_Ó%6Ô7Ü˜1˜R  1 ˜W™: q¨¨A¨a¨C¨¡y×'8Ñ'8Ó':Ô;à�L‰Lš)¢Y²	º9ÐEÓFˆØ�N‰N˜1ÓˆÜ˜1˜R  1 ˜W™: q¨¨A¨a¨C¨¡y×'8Ñ'8Ó':Ô;ð �L‰Lš)¢Y²	º9ÐEÓFˆØ�N‰N˜1ÓˆÜ˜1˜R  1 ˜W™: q¨¨A¨a¨C¨¡y×'8Ñ'8Ó':Ô;Ü˜1˜R ¡˜W™: q¨¨B©C¨¡y×'8Ñ'8Ó':Ô;ô 	”j !§-¡-´%¸³+¸rÐ1BÔCÜ”j !§-¡-°!´U¸1¸a³[Ð1AÕBr<   c           	      óª  — t        d«      j                  dd«      }| j                  |«      }| j                  rdndgdgdgf\  }}}t	        |dd…|f   |dd…df   j                  «       «       t	        |d d …|f   |d d …df   j                  «       «       t        g d¢g d	¢g d
¢g d¢g«      }| j                  |«      }t	        |dd…|f   |dd…df   j                  «       «       t	        |d d …|f   |d d …df   j                  «       «       t        g d¢g d¢g d
¢g d¢g«      }| j                  |«      }	t	        |d d …|f   |	d d …df   j                  «       «       t	        |dd …|f   |	dd …df   j                  «       «       t        t        |j                  t        d «      df«       t        t        |j                  dt        dd«      f«       y )Nr  rŽ  rV   r.  r   rç   re   r  r  rf  rÒ  ró   r!  r  rE  r  rñ   rä  )r   rù   rø   r  r   r™   r   r  rÀ  rè  r   )
r    rR   rQ   Úc0Úc1Úc2rý   rÊ  rø  rë  s
             r:   Útest_get_vert_slicez _TestSlicing.test_get_vert_slicet
  s¡  € Ü�3‹K×Ñ  2Ó&ˆØ�N‰N˜1ÓˆØ"&×"4Ò"4‘Y¸A¸3ÀÀÀaÀS¸/‰
ˆˆB�Ü˜1˜Q˜q˜S "˜W™: q¨¨1¨¨a¨¡y×'8Ñ'8Ó':Ô;Ü˜1šQ ˜U™8 Q¢q¨! t¡W§_¡_Ó%6Ô7ä’9šiª²IÐ>Ó?ˆØ�N‰N˜1ÓˆÜ˜1˜Q˜q˜S "˜W™: q¨¨1¨¨a¨¡y×'8Ñ'8Ó':Ô;Ü˜1šQ ˜U™8 Q¢q¨! t¡W§_¡_Ó%6Ô7ô ’9šiª²IÐ>Ó?ˆØ�N‰N˜1ÓˆÜ˜1šQ ˜U™8 Q¢q¨! t¡W§_¡_Ó%6Ô7Ü˜1˜R™S "˜W™: q¨©¨a¨¡y×'8Ñ'8Ó':Ô;ô 	”j !§-¡-´%¸³+¸rÐ1BÔCÜ”j !§-¡-°!´U¸1¸a³[Ð1AÕBr<   c                 ód  — t        d«      j                  dd«      }| j                  |«      }t        |dd…dd…f   j	                  «       |dd…dd…f   «       t        |dd …d d…f   j	                  «       |dd …d d…f   «       t        |d d…dd …f   j	                  «       |d d…dd …f   «       t        g d	¢g d
¢g d¢g d¢g«      }| j                  |«      }t        |dd…dd…f   |dd…dd…f   j	                  «       «       t        |d d …dd …f   |d d …dd …f   j	                  «       «       y )Nr  rŽ  rV   re   r   ró   rç   rè   r!  r  rf  rÒ  )r   rù   rø   r   r™   r   )r    rR   rQ   rø  rë  s        r:   Útest_get_slicesz_TestSlicing.test_get_slicesŠ
  s4  € Ü�3‹K×Ñ  2Ó&ˆØ�N‰N˜1ÓˆÜ˜1˜Q˜q˜S ! A #˜X™;×.Ñ.Ó0°!°A°a°C¸¸1¸°H±+Ô>Ü˜1˜Q™R  " ˜W™:×-Ñ-Ó/°°1±2°s¸°s°7±Ô<Ü˜1˜S˜b˜S !¡"˜W™:×-Ñ-Ó/°°3°B°3¸¹°7±Ô<ô ’9šiª²IÐ>Ó?ˆØ�N‰N˜1ÓˆÜ˜1˜Q˜q˜S ! A #˜X™;¨¨!¨A¨#¨q°¨s¨(©×(;Ñ(;Ó(=Ô>Ü˜1šQ ¡˜U™8 Q¢q¨!©" u¡X×%5Ñ%5Ó%7Õ8r<   c                 ó  — t         j                  j                  dd«      }	 | j                  |«      ddd…ddd…f   }t        |j                  «       |ddd…ddd…f   «       y # t        $ r t        j                  d«      ‚w xY w)Nr�  r   é   re   ró  ró   úfeature not implemented)	rJ   r”   r9  rø   r  r  r  r   r™   )r    Úv0r   s      r:   Ú test_non_unit_stride_2d_indexingz-_TestSlicing.test_non_unit_stride_2d_indexing—
  s†   € ä�Y‰Y�^‰^˜B Ó#ˆð	9Ø—‘˜rÓ" 1 R¨ 6¨1¨R°¨6 >Ñ2ˆAô
 	˜1Ÿ9™9›;¨¨1¨R°¨6°1°R¸°6¨>Ñ(:Õ;øô	 ò 	9ä—+‘+Ð7Ó8Ð8ð	9ús   ¢A$ Á$Bc                 ó  — | j                  t        d«      j                  dd«      «      }| j                  |«      }t	        |d   |d   «       t	        |d   |d   «       t	        |d   |d   «       t	        |t        d«      df   |d   «       t	        |dt        d«      f   |d   «       t	        |t        d«      t        d«      f   |d   «       t	        |d	d d …f   j                  «       |d	d d …f   «       t	        |d	dd…f   j                  «       |d	dd…f   «       t	        |t        d	«      dd…f   j                  «       |d	dd…f   «       t	        |d d …d	f   j                  «       |d d …d	f   «       t	        |d
d…df   j                  «       |d
d…df   «       t	        |dd…df   j                  «       |dd…df   «       t	        |d	d…d
f   j                  «       |d	d…d
f   «       t	        |d	d…t        d
«      f   j                  «       |d	d…d
f   «       t	        |dd	…dd	…f   j                  «       |dd	…dd	…f   «       t	        |dd …d
d …f   j                  «       |dd …d
d …f   «       t	        |d d…d d…f   j                  «       |d d…d d…f   «       t	        |d	d…d d…f   j                  «       |d	d…d d…f   «       t	        |dd d …f   j                  «       |dd d …f   «       t	        |dd d …f   j                  «       |dd d …f   «       t	        |t        d«      d d …f   j                  «       |dd d …f   «       t	        |dd j                  «       |dd «       t	        |dd j                  «       |dd «       t        t        d	«      t        d«      d «      }t	        ||d d …f   j                  «       |d	d…d d …f   «       t	        |d d …|f   j                  «       |d d …d	d…f   «       y )Nr�  rŽ  rV   r  r  rï  rè   rE  re   ró   r–  ræ  rç   r¯  )	r  r   rù   rø   r   r   r™   r   r   )r    rR   rQ   rú  s       r:   Útest_slicing_2z_TestSlicing.test_slicing_2¢
  sÞ  € Ø�L‰Lœ ›×+Ñ+¨A¨bÓ1Ó2ˆØ�N‰N˜1Óˆô 	�Q�s‘V˜Q˜s™VÔ$Ü�Q�t‘W˜a ™gÔ&Ü�Q�u‘X˜a ™hÔ'Ü�Q”u˜R“y �|‘_ Q u¡XÔ.Ü�Q�rœ% ›)�|‘_ Q u¡XÔ.Ü�Q”u˜R“y¤ r£Ð*Ñ+¨A¨e©HÔ5ô 	�Q�qš!�t‘W—_‘_Ó&¨¨!ªQ¨$©Ô0Ü�Q�q˜!˜B˜$�w‘Z×'Ñ'Ó)¨1¨Q°°"°¨W©:Ô6Ü�Q”u˜Q“x  2 �~Ñ&×.Ñ.Ó0°!°A°q¸°t°G±*Ô=ô 	�Q’q˜!�t‘W—_‘_Ó&¨ª!¨Q¨$©Ô0Ü�Q�q˜�s˜A�v‘Y×&Ñ&Ó(¨!¨A¨a¨C°¨F©)Ô4Ü�Q�q˜�s˜B�w‘Z×'Ñ'Ó)¨1¨Q¨q¨S°"¨W©:Ô6Ü�Q�q˜�t˜Q�w‘Z×'Ñ'Ó)¨1¨Q¨r¨T°1¨W©:Ô6Ü�Q�q˜�tœU 1›X�~Ñ&×.Ñ.Ó0°!°A°b°D¸!°G±*Ô=ô 	�Q�q˜�s˜A˜a˜C�x‘[×(Ñ(Ó*¨A¨a°¨c°1°Q°3¨h©KÔ8Ü�Q�q‘r˜1™2�v‘Y×&Ñ&Ó(¨!¨A©B°±¨F©)Ô4Ü�Q�r˜�r˜2˜A˜2�v‘Y×&Ñ&Ó(¨!¨B¨Q¨B°°°¨F©)Ô4Ü�Q�q˜�t˜R˜a˜R�x‘[×(Ñ(Ó*¨A¨a°¨d°B°Q°B¨h©KÔ8ô 	�Q�qš!�t‘W—_‘_Ó&¨¨!ªQ¨$©Ô0Ü�Q�rš1�u‘X×%Ñ%Ó'¨¨2ªq¨5©Ô2Ü�Q”u˜R“y¢!�|‘_×,Ñ,Ó.°°"²a°%±Ô9ô 	�Q�q˜�V—^‘^Ó% q¨¨1 vÔ.Ü�Q�q˜�W—_‘_Ó&¨¨!¨B¨Ô0ô ”$�q“'œ$˜q›' $Ó'ˆÜ�Q�qš!�t‘W—_‘_Ó&¨¨!¨A¨#ªq¨&©	Ô2Ü�Q’q˜!�t‘W—_‘_Ó&¨ª!¨Q¨q¨S¨&©	Õ2r<   re   c                 óÎ  ‡‡— | j                  t        d«      j                  dd«      «      Š| j                  ‰«      Št        j
                  }|d d |dd |dd  |dd d…   |dd |dd |d	dd
…   |dd d…   |d dd
…   dd|d d  |dd d
ddt        d
«      t	        j                  d«      g}ˆˆfd„}t        |«      D ]  \  }} ||«       Œ ˆˆfd„}t        |«      D ]!  \  }}t        |«      D ]  \  }} |||«       Œ Œ# g }	t        j                  dgdz  Ž D ](  \  }}}
|
dk(  rŒ|	j                  t        |||
«      «       Œ* |	D ]  } |||«        ||d«        |d|«       Œ y )Nr�  rŽ  rV   re   rç   ró   r�  rò  rå  rè   r–  rE  r   r¯  r½  c                 óì   •— ‰|    }‰|    }|j                   dk(  rt        ||t        | «      «       y |j                  dk(  r|j                  dk(  ry t	        |j                  «       |t        | «      «       y ©Nra   r   )r½   r   r†  rk   r   r™   )rN   r@   rA   rQ   rR   s      €€r:   Úcheck_1z,_TestSlicing.test_slicing_3.<locals>.check_1Û
  s^   ø€ Ø�!‘ˆAØ�!‘ˆAØ�w‰w˜"Š}Ü˜Q ¤4¨£7Õ+à—6‘6˜Q’; 1§6¡6¨Q¢;Øä& q§y¡y£{°A´t¸A³wÕ?r<   c                 óœ  •— t        | t        j                  «      rt        | «      }n| }t        |t        j                  «      rt        |«      }n|}‰| |f   }‰||f   }|j                  dk(  rt        ||t        | |f«      «       y |j                  dk(  r|j                  dk(  ry t        |j                  «       |t        | |f«      «       y r5  )
rI   rJ   r
   rØ  r½   r   r†  rk   r   r™   )rN   rS   ÚaiÚbir@   rA   rQ   rR   s         €€r:   Úcheck_2z,_TestSlicing.test_slicing_3.<locals>.check_2é
  s¨   ø€ ô ˜!œRŸZ™ZÔ(Ü˜“V‘à�Ü˜!œRŸZ™ZÔ(Ü˜“V‘à�à�!�Q�$‘ˆAØ�"�b�&‘	ˆAà�w‰w˜"Š}Ü˜Q ¤4¨¨A¨£<Õ0à—6‘6˜Q’; 1§6¡6¨Q¢;Øä& q§y¡y£{°A´t¸QÀ¸F³|ÕDr<   )
Nr   rç   re   rŽ  r�  rè   rE  rŽ  iñÿÿÿ)r  r   rù   rø   rJ   Ús_r   r   Ú	enumerateÚ	itertoolsÚproductrL   r   )r    r;  Úslicesr6  r  rN   r:  r•  rS   Úextra_slicesr¦  rQ   rR   s              @@r:   Útest_slicing_3z_TestSlicing.test_slicing_3Ï
  sœ  ù€ à�L‰Lœ ›×+Ñ+¨A¨bÓ1Ó2ˆØ�N‰N˜1Óˆä�U‰UˆØ�R�a�&˜"˜Q˜q˜' 2 a b 6¨2¨a¨d°¨d©8Ø�R˜�)˜R  !˜WØ�Q�q˜�V‘*˜b   B ™i¨¨E¨Q¨r¨E©Ø�Q˜™1˜˜r ! A˜w¨¨B°Ü˜“)œRŸW™W R›[ð	*ˆõ		@ô ˜fÖ%‰DˆAˆqÙ�A�Jð &õ	Eô0 ˜fÖ%‰DˆAˆqÜ! &Ö)‘��1Ù˜˜1•ñ *ð &ð
 ˆÜ ×(Ñ(ð -=ð ,>Ø>?ñ,@ó B‰GˆAˆq�!à�AŠvØØ×Ñ¤ a¨¨A£Õ/ð	Bó ˆAÙ�A�qŒMÙ�A�rŒNÙ�B˜�Nñ r<   c                 óô  — | j                  t        d«      j                  dd«      «      }| j                  |«      }|d   j                  dk(  sJ ‚|d ddd…f   j
                  dk(  sJ ‚|d	   j
                  d
k(  sJ ‚|d   j
                  dk(  sJ ‚|d   j
                  dk(  sJ ‚|d dd d …f   j
                  dk(  sJ ‚|dd d d …f   j
                  dk(  sJ ‚|dd d …d f   j
                  dk(  sJ ‚|d dd…df   j
                  |d dd…df   j
                  cxk(  rdk(  sJ ‚ J ‚|dd…d df   j
                  |dd…d df   j
                  cxk(  rdk(  sJ ‚ J ‚|dd…dd f   j
                  |dd…dd f   j
                  cxk(  rdk(  sJ ‚ J ‚|d ddd…f   j
                  |d ddd…f   j
                  cxk(  rdk(  sJ ‚ J ‚|dd dd…f   j
                  |dd dd…f   j
                  cxk(  rdk(  sJ ‚ J ‚|ddd…d f   j
                  |ddd…d f   j
                  cxk(  rdk(  sJ ‚ J ‚| j                  rã|dd…df   j
                  |dd…df   j
                  cxk(  rdk(  sJ ‚ J ‚|ddd…f   j
                  |ddd…f   j
                  cxk(  rdk(  sJ ‚ J ‚|d   j
                  |d   j
                  cxk(  rdk(  sJ ‚ J ‚|d   j
                  |d   j
                  cxk(  rdk(  sJ ‚ J ‚|d   j
                  |d   j
                  cxk(  rdk(  sJ ‚ J ‚y |ddd…f   j
                  |ddd…f   j
                  cxk(  rdk(  sJ ‚ J ‚|dd…df   j
                  |dd…df   j
                  cxk(  rdk(  sJ ‚ J ‚|d   j
                  |d   j
                  cxk(  rd
k(  sJ ‚ J ‚|d   j
                  |d   j
                  cxk(  rd
k(  sJ ‚ J ‚|d   j
                  |d   j
                  cxk(  rd
k(  sJ ‚ J ‚y )Nr�  rŽ  rV   rí  r   rç   re   r–  )Nrç   re   Nr  )Nrç   r  )rç   N)rV   rç   ró   ©re   rç   )re   )Nrç   re   )rç   )rç   Nre   )rç   re   N)r  r   rù   rø   rÃ   r½   r  ©r    rR   rQ   s      r:   Útest_None_slicingz_TestSlicing.test_None_slicing  s�  € Ø�L‰Lœ ›×+Ñ+¨A¨bÓ1Ó2ˆØ�N‰N˜1Óˆà�‰w�|‰|˜qÒ Ð Ð Ø��q˜!˜A˜#�‰×$Ñ$¨Ò.Ð.Ð.ØÐ!Ñ"×(Ñ(¨FÒ2Ð2Ð2ð �‰z×Ñ 7Ò*Ð*Ð*Ø�‰z×Ñ 7Ò*Ð*Ð*Ø��qš!�‰}×"Ñ" gÒ-Ð-Ð-Ø��Dš!�‰}×"Ñ" gÒ-Ð-Ð-Ø�’A�t�‰}×"Ñ" gÒ-Ð-Ð-à��q˜�s˜A�‰×$Ñ$¨¨$°°!°°Q¨,©×(=Ñ(=ÔGÀÒGÐGÑGÐGÐGØ��1��d˜A�‰×$Ñ$¨¨!¨A¨#¨t°Q¨,©×(=Ñ(=ÔGÀÒGÐGÑGÐGÐGØ��1��a˜�‰×$Ñ$¨¨!¨A¨#¨q°$¨,©×(=Ñ(=ÔGÀÒGÐGÑGÐGÐGØ��q˜!˜A˜#�‰×$Ñ$¨¨$°°1°Q°3¨,©×(=Ñ(=ÔGÀÒGÐGÑGÐGÐGØ��D˜!˜A˜#�‰×$Ñ$¨¨!¨T°1°Q°3¨,©×(=Ñ(=ÔGÀÒGÐGÑGÐGÐGØ��A�a�C˜�‰×$Ñ$¨¨!¨Q¨q¨S°$¨,©×(=Ñ(=ÔGÀÒGÐGÑGÐGÐGð ×ÒØ�Q�q�S˜!�V‘9—?‘? a¨¨!¨¨Q¨¡i§o¡oÔ=¸Ò=Ð=Ñ=Ð=Ð=Ø�Q˜˜!˜�V‘9—?‘? a¨¨1¨Q¨3¨¡i§o¡oÔ=¸Ò=Ð=Ñ=Ð=Ð=Ø�Z‘=×&Ñ&¨!¨J©-×*=Ñ*=ÔEÀÒEÐEÑEÐEÐEØ�Z‘=×&Ñ&¨!¨J©-×*=Ñ*=ÔEÀÒEÐEÑEÐEÐEØ�Z‘=×&Ñ&¨!¨J©-×*=Ñ*=ÔEÀÒEÐEÑEÐEÑEà�Q˜˜!˜�V‘9—?‘? a¨¨1¨Q¨3¨¡i§o¡oÔ?¸Ò?Ð?Ñ?Ð?Ð?Ø�Q�q�S˜!�V‘9—?‘? a¨¨!¨¨Q¨¡i§o¡oÔ?¸Ò?Ð?Ñ?Ð?Ð?Ø�Z‘=×&Ñ&¨!¨J©-×*=Ñ*=ÔGÀÒGÐGÑGÐGÐGØ�Z‘=×&Ñ&¨!¨J©-×*=Ñ*=ÔGÀÒGÐGÑGÐGÐGØ�Z‘=×&Ñ&¨!¨J©-×*=Ñ*=ÔGÀÒGÐGÑGÐGÑGr<   c                 ór  — | j                  t        d«      j                  dd«      «      }| j                  |«      }t	        |d   j                  «       |d   «       t	        |d   j                  «       |d   «       t	        |d   j                  «       |d   «       t	        |d   j                  «       |d   «       t	        |d   j                  «       |d   «       t        j                  t        d	¬
«      5  |d    d d d «       t        j                  t        d¬
«      5  |d    d d d «       t        j                  t        d	¬
«      5  |j                  d    d d d «       t	        |dd …df   j                  «       |dd …df   «       t	        |ddd …f   j                  «       |ddd …f   «       t	        |d d…df   j                  «       |d d…df   «       t	        |dd d…f   j                  «       |dd d…f   «       t	        |d d…df   j                  «       |d d…df   «       t	        |dd d…f   j                  «       |dd d…f   «       t	        |dd …df   j                  «       |dd …df   «       t	        |ddd …f   j                  «       |ddd …f   «       t	        |dd …df   j                  «       |dd …df   «       t	        |ddd …f   j                  «       |ddd …f   «       t	        |dd …ddf   j                  «       |dd …ddf   «       t	        |dddd …f   j                  «       |dddd …f   «       t	        |dddd …f   j                  «       |dddd …f   «       t	        |d d…ddf   j                  «       |d d…ddf   «       t	        |ddd d…f   j                  «       |ddd d…f   «       t	        |ddd d…f   j                  «       |ddd d…f   «       t        |d   |d   «       t        |d   |d   «       y # 1 sw Y   �ŒxY w# 1 sw Y   �ŒûxY w# 1 sw Y   �ŒÕxY w)Nr�  rŽ  rV   .).)r–  .).r–  ).rŽ  zindex .5. out of rangerk  )rŽ  .zindex .10. out of range).rV   rç   re   )rç   rç   .)rç   .rç   )r  r   rù   rø   r   r™   r  r   rÀ  r?  r   ©r    rS   rN   s      r:   Útest_ellipsis_slicingz"_TestSlicing.test_ellipsis_slicing6  sð  € Ø�L‰Lœ ›×+Ñ+¨A¨bÓ1Ó2ˆØ�N‰N˜1Óˆä˜1˜S™6Ÿ>™>Ó+¨Q¨s©VÔ4Ü˜1˜T™7Ÿ?™?Ó,¨a°©gÔ6ä˜1˜V™9×,Ñ,Ó.°°&±	Ô:Ü˜1˜V™9×,Ñ,Ó.°°&±	Ô:Ü˜1˜V™9×,Ñ,Ó.°°&±	Ô:Ü�]‰]œ:Ð-EÖFØˆfŠI÷ Gä�]‰]œ:Ð-FÖGØˆgŠJ÷ Hä�]‰]œ:Ð-EÖFØ�C‰C�ŠK÷ Gô 	˜1˜Q™R ˜W™:×-Ñ-Ó/°°1±2°s°7±Ô<Ü˜1˜S !¡"˜W™:×-Ñ-Ó/°°3¸¹°7±Ô<Ü˜1˜R˜a˜R ˜W™:×-Ñ-Ó/°°2°A°2°s°7±Ô<Ü˜1˜S " 1 "˜W™:×-Ñ-Ó/°°3¸¸¸°7±Ô<ô 	˜1˜R˜a˜R ˜W™:×-Ñ-Ó/°°2°A°2°s°7±Ô<Ü˜1˜S " 1 "˜W™:×-Ñ-Ó/°°3¸¸¸°7±Ô<Ü˜1˜Q™R ˜W™:×-Ñ-Ó/°°1±2°s°7±Ô<Ü˜1˜S !¡"˜W™:×-Ñ-Ó/°°3¸¹°7±Ô<Ü˜1˜R™S #˜X™;×.Ñ.Ó0°!°B±C¸°H±+Ô>Ü˜1˜S "¡#˜X™;×.Ñ.Ó0°!°C¸¹°H±+Ô>ô 	˜1˜Q™R  C˜Z™=×0Ñ0Ó2°A°a±b¸!¸S°j±MÔBÜ˜1˜Q  Q¡R˜Z™=×0Ñ0Ó2°A°a¸¸a¹b°j±MÔBÜ˜1˜S ! Q¡R˜Z™=×0Ñ0Ó2°A°a¸¸a¹b°j±MÔBÜ˜1˜R˜a˜R  C˜Z™=×0Ñ0Ó2°A°b°q°b¸!¸S°j±MÔBÜ˜1˜Q  R a R˜Z™=×0Ñ0Ó2°A°a¸¸b¸q¸b°j±MÔBÜ˜1˜S ! R a R˜Z™=×0Ñ0Ó2°A°a¸¸b¸q¸b°j±MÔBä�Q�y‘\ 1 Y¡<Ô0Ü�Q�y‘\ 1 Y¡<Õ0÷; GÑFúçGÑGúçFÑFús$   Ã7PÄ PÅ	P,ÐPÐP)Ð,P6c                 óÂ  — | j                  t        d«      j                  dd«      «      }| j                  |«      }g d¢}dgdz  |z   }||z   }|gdz  }t	        t        ||df   «      ||df   «       t	        t        |d|f   «      |d|f   «       t	        t        ||df   «      ||df   «       t	        t        |d|f   «      |d|f   «       t	        t        ||d|f   «      ||d|f   «       t	        t        |d||f   «      |d||f   «       t	        t        |||df   «      |||df   «       t        t        d¬«      5  |||f    d d d «       y # 1 sw Y   y xY w)	Nr�  rŽ  rV   )TFTFTF.úshape mismatchrk  )r  r   rù   rø   r   r™   r  rÀ  )r    Únumpy_arN   Úix5Úix10Ú
ix10_6TrueÚfull_ixs          r:   Útest_ellipsis_fancy_boolz%_TestSlicing.test_ellipsis_fancy_bool_  sj  € Ø—,‘,œv b›z×1Ñ1°!°RÓ8Ó9ˆØ�N‰N˜7Ó#ˆâ.ˆØˆw˜‰{˜SÑ ˆØ˜3‘Yˆ
Ø�&˜1‘*ˆäœ7 1 W¨c \¡?Ó3°W¸WÀc¸\Ñ5JÔKÜœ7 1 S¨' \¡?Ó3°W¸SÀ'¸\Ñ5JÔKäœ7 1 S¨# X¡;Ó/°¸¸c¸Ñ1BÔCÜœ7 1 S¨$ Y¡<Ó0°'¸#¸t¸)Ñ2DÔEäœ7 1 S¨#¨t ^Ñ#4Ó5°w¸sÀCÈ¸~Ñ7NÔOÜœ7 1 S¨#¨t ^Ñ#4Ó5°w¸sÀCÈ¸~Ñ7NÔOÜœ7 1 S¨$° ^Ñ#4Ó5°w¸sÀDÈ#¸~Ñ7NÔOäœ:Ð-=Ö>Øˆc�:ˆoÒ÷ ?×>Ñ>ús   ÅEÅEc           	      óš  — | j                  t        d«      j                  dd«      «      }| j                  |«      }t	        |dgdf   j                  «       |dgdf   «       t	        |ddgdf   j                  «       |ddgdf   «       t	        |ddgf   j                  «       |ddgf   «       t	        |dddgf   j                  «       |dddgf   «       t	        |dgddf   j                  «       |dgddf   «       t	        |ddgddf   j                  «       |ddgddf   «       t	        |dgddf   j                  «       |dgddf   «       t	        |ddgdf   j                  «       |ddgdf   «       t	        t        |ddgdddgf   «      |ddgdddgf   «       t	        t        |dddgddgf   «      |dddgddgf   «       y )Nr�  rŽ  rV   r–  .re   rç   )r  r   rù   rø   r   r™   rG  s      r:   Útest_ellipsis_fancy_slicingz(_TestSlicing.test_ellipsis_fancy_slicingu  só  € Ø�L‰Lœ ›×+Ñ+¨A¨rÓ2Ó3ˆØ�N‰N˜1Óˆä˜1˜a˜S #˜X™;×.Ñ.Ó0°!°Q°C¸°H±+Ô>Ü˜1˜a ˜V S˜[™>×1Ñ1Ó3°Q¸¸1°v¸s°{±^ÔDÜ˜1˜S 1 #˜X™;×.Ñ.Ó0°!°C¸!¸°H±+Ô>Ü˜1˜S 1 a &˜[™>×1Ñ1Ó3°Q°s¸QÀ¸F°{±^ÔDä˜1˜a˜S ! S˜[™>×1Ñ1Ó3°Q¸°s¸A¸s°{±^ÔDÜ˜1˜a ˜V Q¨˜^Ñ,×4Ñ4Ó6¸¸1¸a¸&À!ÀS¸.Ñ8IÔJÜ˜1˜a˜S # q˜[™>×1Ñ1Ó3°Q¸°s¸CÀ°{±^ÔDÜ˜1˜S 1 # q˜[™>×1Ñ1Ó3°Q°s¸Q¸CÀ°{±^ÔDäœ7 1 a¨ V¨S°1°a°&Ð%8Ñ#9Ó:¸A¸qÀ!¸fÀcÈAÈqÈ6Ð>QÑ<RÔSÜœ7 1 S¨1¨a¨&°1°a°&Ð%8Ñ#9Ó:¸A¸cÀAÀqÀ6ÈAÈqÈ6Ð>QÑ<RÕSr<   c                 ó,  — | j                  t        d«      j                  dd«      «      }t        j                  t
        d¬«      5  |d    d d d «       t        j                  t
        d¬«      5  |d    d d d «       y # 1 sw Y   Œ3xY w# 1 sw Y   y xY w)Nrñ   ró   re   z(an index can only have a single ellipsisrk  )..).rç   .)rø   r   rù   r  r   rÀ  ©r    rN   s     r:   Útest_multiple_ellipsis_slicingz+_TestSlicing.test_multiple_ellipsis_slicing†  s�   € Ø�N‰Nœ6 !›9×,Ñ,¨Q°Ó2Ó3ˆä�]‰]œ:Ø!KöMàˆhŠK÷Mô �]‰]œ:Ø!KöMàˆkŠN÷Mð M÷Mð Mú÷Mð Mús   ÁA>Á/B
Á>BÂ
BN)rµ   r¶   r·   r  r  r$  r)  r+  r0  r2  r  rÉ  Ú	fail_slowrA  rE  rH  rP  rR  rU  ra   r<   r:   r  r  N
  sl   „ òXò0òCò*Cò,9ò	<ò+3ðZ ‡[�[×Ñ˜1Óñ@ó ð@òD"HòH'1òRò,Tó"r<   r  c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
Ú_TestSlicingAssignc                 óˆ  — | j                  d«      }t        j                  d«      }t        j                  «       5  t        j
                  dt        t        «       ||fD ]2  }d|dd…df<   d|dd…df<   d|dd…df<   d|ddd …f<   d|dd d…dd …f<   Œ4 	 d d d «       t        |j                  «       |«       y # 1 sw Y   Œ$xY w)	Nr   r(  rç   r   r–  ró   ræ  rè   r  rü   s       r:   Útest_slice_scalar_assignz+_TestSlicingAssign.test_slice_scalar_assign’  sÂ   € Ø�N‰N˜6Ó"ˆÜ�H‰H�VÓˆÜ×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLØ˜“V�Ø��!�A�#�a�%‘Ø��!�A�#�a�%‘Ø��!�A�#�a�%‘Ø��!�A‘B�$‘Ø��!�%�R�%˜™�(’ñ ÷ 'ô 	˜1Ÿ9™9›;¨Õ*÷ 'Ð&ús   »AB8Â8Cc                 óÂ   ‡ ‡‡— d\  ŠŠˆˆˆ fd„}dt        d«      fdt        d dd«      fdt        dd«      ft        d«      t        dd«      ffD ]  \  }} |||«       Œ y )	Nrþ  c                 óN  •— d| ›d|›�}‰j                  ‰‰f«      }t        j                  «       5  t        j                  dt        t
        «       d|| |f<   d d d «       t        j                  ‰‰f«      }d|| |f<   t        |j                  «       ||¬«       y # 1 sw Y   ŒDxY w)Nzi=z; j=r(  rç   r  )
rø   r)  r*  r
  r  r)   rJ   r   r   r™   )r•  r  r6   rQ   rR   r©  r  r    s        €€€r:   r  z9_TestSlicingAssign.test_slice_assign_2.<locals>._test_set¢  s”   ø€ Ø�q�e˜4 ˜uÐ%ˆCØ—‘  1˜vÓ&ˆAÜ×(Ñ(Õ*Ü×'Ñ'¨´$Ô8OÔPØ��!�Q�$‘÷ +ô —‘˜!˜Q˜Ó ˆAØˆAˆa�ˆd‰GÜ% a§i¡i£k°1¸cÖB÷ +Ð*ús   ±'BÂB$re   ró   rV   r–  rŽ  rE  )r   r   r  s   `   @@r:   Útest_slice_assign_2z&_TestSlicingAssign.test_slice_assign_2Ÿ  sg   ú€ Ø‰ˆˆ1ö	Cð œ˜q›�] Q¬¨d°B¸Ó(:Ð$;¸aÄÀqÈ"ÃÐ=NÜ˜A“h¤ a¨£Ð-ó/‰DˆAˆqá�a˜�Oñ/r<   c                 óÌ  — | j                  d«      }t        j                  «       5  t        j                  dt        t
        «       d|d<   d|d<   d|d<   d	|d
<   |d	z  }|dd d …f   |dd d …f<   t        |dd d …f   j                  «       |dd d …f   j                  «       «       |d	z  }|d d…d d…f   |d d …d d …f<   t        t        j                  d«      |d   z   |j                  «       «       |d	z  }|d dd d …f   j                  |d d…df<   t        |dd d …f   j                  «       j                  |d d…df   j                  «       «       d d d «       y # 1 sw Y   y xY w)Nrc  r(  re   rØ  rä  rí  ró   rC  rV   r!  r   rç   rè   )rø   r)  r*  r
  r  r)   r   r™   rJ   r   r?  rD  s      r:   Útest_self_self_assignmentz,_TestSlicingAssign.test_self_self_assignment°  sH  € à�N‰N˜5Ó!ˆÜ×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLØˆAˆc‰FØˆAˆc‰FØˆAˆc‰FØˆAˆc‰Fà�B‘ˆAØ�qš�s‘VˆAˆa’ˆc‰FÜ˜q ¢1 ™vŸ~™~Ó/°°1²Q°3±·±Ó1AÔBà�B‘ˆAØ�r˜�r˜"˜1˜"�u‘XˆAŠa’ˆc‰FÜœrŸx™x¨›°°3±Ñ7¸¿¹»ÔEà�B‘ˆAØ˜˜a¢˜‘{—}‘}ˆAˆcˆrˆc�!ˆe‰HÜ˜q ¢1 ™vŸ~™~Ó/×1Ñ1°1°S°b°S¸°U±8×3CÑ3CÓ3EÔF÷# '×&Ñ&ús   ¦D+EÅE#c                 óî  — | j                  d«      }t        g d¢g d¢g d¢g d¢g«      }ddgddgg}t        j                  «       5  t        j                  d	t
        t        «       d
|d<   d|d<   d|d<   ||z   |d d …d d …f<   t        |j                  «       |«       | j                  t        |«      «      |d d…d d…f<   t        |j                  «       d d…d d…f   |«       d d d «       y # 1 sw Y   y xY w)Nrc  ©rV   r   r   )r   r   rñ   )r   r“  r   rf  rç   r   r–  r(  rŽ  rØ  ró   rí  rä  rC  re   )
rø   r   r)  r*  r
  r  r)   r   r™   r  )r    rR   rq  Úblocks       r:   Útest_slice_assignmentz(_TestSlicingAssign.test_slice_assignmentÆ  sé   € Ø�N‰N˜5Ó!ˆÜš(Ú!Ú"Ú!ð#ó $ˆð �A�˜˜!�u�ˆä×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLØˆAˆc‰FØˆAˆc‰FØˆAˆc‰FØ�q‘SˆAŠa’ˆc‰FÜ˜qŸy™y›{¨HÔ5à×)Ñ)¬%°«,Ó7ˆAˆbˆqˆb��!�ˆe‰HÜ˜qŸy™y›{¨2¨A¨2¨r°¨r¨6Ñ2°EÔ:÷ '×&Ñ&ús   ÁBC+Ã+C4c                 óŽ  — | j                  d«      }t        j                  «       5  t        j                  dt        t
        «       d|d<   d|d<   d|d<   d	|d
<   | j                  t        j                  d«      «      |d d d d d «       t        g d¢g d¢g d¢g d¢g«      }t        |j                  «       |«       y # 1 sw Y   Œ;xY w)Nrc  r(  rŽ  rØ  ró   rí  rä  rC  rV   r!  ry  r  rÒ  ra  )rø   r)  r*  r
  r  r)   r  rJ   r'   r   r   r™   )r    rR   rq  s      r:   Ú"test_sparsity_modifying_assignmentz5_TestSlicingAssign.test_sparsity_modifying_assignmentÙ  s¤   € Ø�N‰N˜5Ó!ˆÜ×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLØˆAˆc‰FØˆAˆc‰FØˆAˆc‰FØˆAˆc‰FØ×&Ñ&¤r§v¡v¨a£yÓ1ˆAˆbˆqˆE÷ 'ô š'¢'ª'²(Ð;Ó<ˆÜ˜1Ÿ9™9›;¨Õ1÷ 'Ð&ús   ¦AB;Â;Cc                 ób  — | j                  d«      }t        t        dt        «      «      }t        j
                  }|d d |dd |dd  |dd d…   |ddd…   |dd d…   |d d	d…   d
d|d d  |dd	 dddt        d«      t	        j                  d«      g}t        j                  «       5  t        j                  dt        t        «       t        |«      D ]3  \  }}|||<   |||<   t        |j                  «       |t        |«      «       Œ5 t        |«      D ]d  \  }}t        |«      D ]Q  \  }}d|z  d|dz   z  z   |||f<   d|z  d|dz   z  z   |||f<   t        |j                  «       |t        ||f«      «       ŒS Œf t!        ddd«      |d
ddd…f<   t!        ddd«      |d
ddd…f<   t        |j                  «       |«       t	        j"                  dd	d«      d d …d f   |dd	d…d
f<   t	        j"                  dd	d«      d d  |dd	d…d
f<   t        |j                  «       |«       d d d «       t%        t&        |j(                  dt+        t!        d«      «      «       t%        t&        |j(                  dt#        d«      «       t%        t&        |j(                  d
t-        d «      ft+        t!        d«      «      «       t%        t&        |j(                  t-        d «      dft+        t!        d«      «      «       t%        t&        |j(                  t-        d «      df|j/                  «       «       t%        t&        |j(                  g d¢g d¢gg d¢fg d¢«       t%        t0        |j(                  g d¢g d¢g d¢gg d¢g d¢gfg d¢«       t%        t&        |j(                  t-        d«      d
fddgddgg«       y # 1 sw Y   �Œ‰xY w)Nrþ  re   rç   ró   rå  rè   r–  rE  rŽ  r   r¯  r½  r(  rV   éè  rØ  éd   râ  rQ  rÔ  )r–  rç   ró   ©rç   re   r–  )r   rç   ró   r¿  )rø   r   r   r€  rJ   r;  r   r)  r*  r
  r  r)   r<  r   r™   r†  r"  r   r  r  rñ  Úlistr   r,  rÀ  )	r    rQ   rR   r;  r?  r  rN   r•  rS   s	            r:   Útest_set_slicez!_TestSlicingAssign.test_set_sliceæ  sL  € Ø�N‰N˜6Ó"ˆÜ”%˜¤Ó'Ó(ˆÜ�U‰UˆØ�R�a�&˜"˜Q˜q˜' 2 a b 6¨2¨a¨d°¨d©8Ø�Q�q˜�V‘*˜b   B ™i¨¨E¨Q¨r¨E©Ø�Q˜™1˜˜r ! A˜w¨¨B°Ü˜“)œRŸW™W R›[ð*ˆô
 ×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLÜ! &Ö)‘��1Ø��!‘Ø��!‘Ü" 1§9¡9£;°´4¸³7Õ;ð *ô
 " &Ö)‘��1Ü% fÖ-‘D�A�qØ ™T D¨!¨A©#¡JÑ.�A�a˜�c‘FØ ™T D¨!¨A©#¡JÑ.�A�a˜�c‘FÜ& q§y¡y£{°A´t¸QÀ¸F³|ÕDñ .ð *ô !  B¨›?ˆAˆa��2�a�ˆi‰LÜ   B¨›?ˆAˆa��2�a�ˆi‰LÜ˜qŸy™y›{¨AÔ.ÜŸ)™) A q¨!Ó,ªQ°¨WÑ5ˆAˆa��!ˆe�Qˆh‰KÜŸ)™) A q¨!Ó,©QÐ/ˆAˆa��!ˆe�Qˆh‰KÜ˜qŸy™y›{¨AÔ.÷% 'ô* 	”j !§-¡-°¼¼eÀC»jÓ9IÔJÜ”j !§-¡-°¼À»ÔEÜ”j !§-¡-°!´U¸4³[Ð1AÜœ5 ›:Ó&ô	(ä”j !§-¡-´%¸³+¸qÐ1AÜœ5 ›:Ó&ô	(ä”j !§-¡-´%¸³+¸qÐ1AÀ1Ç6Á6Ã8ÔLÜ”j !§-¡-Ú!¢9Ð-ªyÐ9º<ô	Iä”j !§-¡-Ú!¢9ªiÐ8Ú!¢9Ð-ð/Ú09ô	;ô 	”j !§-¡-´%¸³(¸A°Ø˜1�v  1˜vÐ&õ	(÷C 'Ñ&ús   Â$E9N$Î$N.c                 óÀ   — | j                  t        j                  d«      «      }| j                  d«      }||dd d…f<   t        |j	                  «       g d¢g d¢g«       y )Nr  rí  rç   re   ©rç   rç   rç   rÒ  )rø   rJ   r÷  r   r™   r&  s      r:   Útest_assign_emptyz$_TestSlicingAssign.test_assign_empty  sN   € Ø�N‰Nœ2Ÿ7™7 6›?Ó+ˆØ�N‰N˜6Ó"ˆð ˆˆ!ˆRˆaˆRˆ%‰Ü˜1Ÿ9™9›;ª²IÐ(>Õ?r<   c                 óà   — | j                  t        j                  d«      «      }t        j                  d«      }||d d …df<   ||dd d …f<   t	        |j                  «       g d¢g d¢g d¢g«       y )Nr`  ró   r   rç   r"  rf  )rø   rJ   r÷  r   r   r™   ©r    rQ   r@   s      r:   Útest_assign_1d_slicez'_TestSlicingAssign.test_assign_1d_slice  sV   € Ø�N‰Nœ2Ÿ7™7 6›?Ó+ˆÜ�H‰H�Q‹KˆØˆŠ!ˆQˆ$‰Øˆˆ!ŠQˆ$‰Ü˜1Ÿ9™9›;ª²IºyÐ(IÕJr<   N)rµ   r¶   r·   rZ  r]  r_  rc  re  rk  rn  rq  ra   r<   r:   rX  rX  ‘  s.   „ ò+òò"Gò,;ò&2ò+(òZ@óKr<   rX  c                   óR   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zy)Ú_TestFancyIndexingz†Tests fancy indexing features.  The tests for any matrix formats
    that implement these features should derive from this class.
    c                 ó   — t         j                  t         j                  t         j                  t         j                  fD ]�  }| j                  d|¬«      }t        |d d …ddgf   j                  |«       t        |g d¢d d …f   j                  |«       t        |d d …g f   j                  |«       t        |g d d …f   j                  |«       Œ� y )Nr½  rò   F)FFFr  r  s      r:   Ú#test_dtype_preservation_empty_indexz6_TestFancyIndexing.test_dtype_preservation_empty_index(  sž   € ô —8‘8œRŸX™X¤r§z¡z´2·:±:Ó>ˆBØ—‘˜v¨R�Ó0ˆAÜ˜š1˜u e˜nÐ,Ñ-×3Ñ3°RÔ8Ü˜Ò0²!Ð3Ñ4×:Ñ:¸BÔ?Ü˜š1˜b˜5™Ÿ™¨Ô,Ü˜˜2šq˜5™Ÿ™¨Õ,ñ ?r<   c                 ó\  — | j                  t        j                  ddg«      «      }t        t        |j
                  d«      j                  d«       t        t        |j
                  d«      j                  d«       g d¢g d¢f}t        t        |j
                  |«      j                  d«       y )NrŽ  ÚfoozIndex dimension©re   rw  râ  rÔ  rJ  )rø   rJ   r   r  rÀ  rè  rl  )r    rQ   Úidxs      r:   Útest_bad_indexz!_TestFancyIndexing.test_bad_index2  s{   € Ø�N‰Nœ2Ÿ8™8 Q¨ FÓ+Ó,ˆÜ”j !§-¡-°Ó7×=Ñ=Ð>OÔPÜ”j !§-¡-°Ó<×BÑBÐCTÔUÚš,Ð'ˆÜ”j !§-¡-°Ó5×;Ñ;Ð<LÕMr<   c           
      ó€  — | j                  t        d«      j                  dd«      «      }| j                  |«      }t	        |dg   j                  «       |dg   «       t	        |ddg   j                  «       |ddg   «       t	        |ddgf   j                  «       |ddgf   «       t	        |dddgf   j                  «       |dddgf   «       t	        |dddgf   j                  «       |dddgf   «       t	        |t        d«      ddgf   j                  «       |dddgf   «       t	        |dt        ddg«      f   j                  «       |dddgf   «       t	        |t        d«      t        ddg«      f   j                  «       |dddgf   «       t	        |d d …g d	¢f   j                  «       |d d …g d	¢f   «       t	        |dd
…dgf   j                  «       |dd
…dgf   «       t	        |dd
…ddgf   j                  «       |dd
…ddgf   «       t	        |dd
…t        ddg«      f   j                  «       |dd
…ddgf   «       t	        |dgdf   j                  «       |dgdf   «       t	        |ddgdf   j                  «       |ddgdf   «       t	        |ddgdf   j                  «       |ddgdf   «       t	        |t        ddg«      df   j                  «       |ddgdf   «       t	        |ddgt        d«      f   j                  «       |ddgdf   «       t	        |t        ddg«      t        d«      f   j                  «       |ddgdf   «       t	        |dgd d …f   j                  «       |dgd d …f   «       t	        |ddgd d …f   j                  «       |ddgd d …f   «       t	        |ddgdd…f   j                  «       |ddgdd…f   «       t	        |t        ddg«      dd…f   j                  «       |ddgdd…f   «       t	        t        |dgd
gf   «      |dgd
gf   «       t	        t        |ddgdd
gf   «      |ddgdd
gf   «       t	        t        |ddgddgf   «      |ddgddgf   «       t	        t        |t        ddg«      ddgf   «      |ddgddgf   «       t	        t        |ddgt        ddg«      f   «      |ddgddgf   «       t	        t        |t        ddg«      t        ddg«      f   «      |ddgddgf   «       t	        |dgdggdd
gf   j                  «       |dgdggdd
gf   «       t	        |dgdgdggddgf   j                  «       |dgdgdggddgf   «       t	        |t        dgdgdgg«      ddgf   j                  «       |dgdgdggddgf   «       t	        |dgdgdggt        ddg«      f   j                  «       |dgdgdggddgf   «       t	        |t        dgdgdgg«      t        ddg«      f   j                  «       |dgdgdggddgf   «       t	        |ddg   j                  «       |ddg   «       t	        |ddg   j                  «       |ddg   «       t	        |t        ddg«         j                  «       |ddg   «       t	        |dgd d …f   d d …d
gf   j                  «       |dgd d …f   d d …d
gf   «       t	        |ddgd d …f   d d …dd
gf   j                  «       |ddgd d …f   d d …dd
gf   «       t	        |ddgd d …f   d d …ddgf   j                  «       |ddgd d …f   d d …ddgf   «       t	        |t        ddg«      d d …f   d d …t        ddg«      f   j                  «       |ddgd d …f   d d …ddgf   «       t	        |dddggf   ddggdf   j                  «       |dddggf   ddggdf   «       t	        |dddggf   ddggdf   j                  «       |dddggf   ddggdf   «       |j                  dk(  r]t	        |d d…ddggf   j                  «       |d d…ddggf   «       t	        |ddggd d…f   j                  «       |ddggd d…f   «       n`t        j                  t        d¬«      5  |d d…ddggf    d d d «       t        j                  t        d¬«      5  |ddggd d…f    d d d «       t	        |d d …ddgf   dd
gd d …f   j                  «       |d d …ddgf   dd
gd d …f   «       t	        |d d …ddgf   ddgd d …f   j                  «       |d d …ddgf   ddgd d …f   «       t	        |d d …t        ddg«      f   t        ddg«      d d …f   j                  «       |d d …ddgf   ddgd d …f   «       t        t        d«      t        d
«      d «      }t	        ||d d …f   j                  «       |dd
…d d …f   «       t	        |d d …|f   j                  «       |d d …dd
…f   «       t        j                  dggt        ¬«      }t	        |||f   j                  «       |||f   «       t	        |g gg gf   j                  «       |g gg gf   «       y # 1 sw Y   �ŒãxY w# 1 sw Y   �ŒÀxY w)Nr�  rŽ  rV   ró   rç   rè   re   r¯  )re   rå  ró   rè   r–  ræ  r±  rå  r½  rE  r   rb  z"Only 1D or 2D|>2D is not supportedrk  rò   )r  r   rù   rø   r   r™   r   rû   r  r   rÀ  r   r   rJ   rØ  )r    rR   rQ   rú  r•  s        r:   Útest_fancy_indexingz&_TestFancyIndexing.test_fancy_indexing9  sÆ  € Ø�L‰Lœ ›×+Ñ+¨A¨bÓ1Ó2ˆØ�N‰N˜1Óˆô 	�Q˜�s‘V—^‘^Ó% q¨!¨¡vÔ.Ü�Q˜˜1�v‘Y×&Ñ&Ó(¨!¨Q°¨F©)Ô4ô 	�Q�q˜1˜#�v‘Y×&Ñ&Ó(¨!¨A°¨s¨F©)Ô4Ü�Q�q˜1˜a˜&�y‘\×)Ñ)Ó+¨Q¨q°1°a°&¨y©\Ô:Ü�Q�r˜A˜r˜7�{‘^×+Ñ+Ó-¨q°°a¸°W°©~Ô>Ü�Q”u˜R“y 1 b 'Ð)Ñ*×2Ñ2Ó4°a¸¸QÀ¸G¸±nÔEÜ�Q�rœ5 ! R ›>Ð)Ñ*×2Ñ2Ó4°a¸¸QÀ¸G¸±nÔEÜ�Q”u˜R“y¤%¨¨B¨£.Ð0Ñ1×9Ñ9Ó;¸Q¸rÀAÀrÀ7¸{¹^ÔLô 	�Q’qš-Ð'Ñ(×0Ñ0Ó2°A²aºÐ6FÑ4GÔHÜ�Q�q˜�s˜Q˜C�x‘[×(Ñ(Ó*¨A¨a°¨c°A°3¨h©KÔ8Ü�Q�q˜�s˜R ˜H�}Ñ%×-Ñ-Ó/°°1°Q°3¸¸R¸°=Ñ1AÔBÜ�Q�q˜�sœE 2 r (›OÐ+Ñ,×4Ñ4Ó6¸¸!¸A¸#ÀÀB¸x¸-Ñ8HÔIô 	�Q˜�s˜A�v‘Y×&Ñ&Ó(¨!¨Q¨C°¨F©)Ô4Ü�Q˜˜1�v˜q�y‘\×)Ñ)Ó+¨Q°°1¨v°q¨y©\Ô:Ü�Q˜˜2�w �{‘^×+Ñ+Ó-¨q°!°R°¸"°©~Ô>Ü�Q”u˜a ˜W“~ rÐ)Ñ*×2Ñ2Ó4°a¸¸B¸À¸±nÔEÜ�Q˜˜2�w¤ b£	Ð)Ñ*×2Ñ2Ó4°a¸¸B¸À¸±nÔEÜ�Q”u˜a ˜W“~¤u¨R£yÐ0Ñ1×9Ñ9Ó;¸QÀÀ2¸wÈ¸{¹^ÔLô 	�Q˜�sšA�v‘Y×&Ñ&Ó(¨!¨Q¨C²¨F©)Ô4Ü�Q˜˜1�všq�y‘\×)Ñ)Ó+¨Q°°1¨v²q¨y©\Ô:Ü�Q˜˜2�w  " �}Ñ%×-Ñ-Ó/°°A°r°7¸A¸b¸D°=Ñ1AÔBÜ�Q”u˜a ˜W“~ q¨ tÐ+Ñ,×4Ñ4Ó6¸¸1¸b¸'À1ÀRÀ4¸-Ñ8HÔIô 	”W˜Q ˜s Q C˜x™[Ó)¨1¨a¨S°1°#¨X©;Ô7Ü”W˜Q  1˜v¨¨1 v˜~Ñ.Ó/°°A°q°6¸A¸q¸6°>Ñ1BÔCÜ”W˜Q  B˜x¨!¨R¨Ð0Ñ1Ó2°A°r¸2°hÀÀBÀÐ6GÑ4HÔIÜÜ�A”e˜R ˜H“o¨¨2 wÐ.Ñ/Ó0°!°R¸°H¸qÀ"¸gÐ4EÑ2Fô	
ô 	Ü�A�r˜2�h¤ q¨" g£Ð.Ñ/Ó0°!°R¸°H¸qÀ"¸gÐ4EÑ2Fô	
ô 	Ü�A”e˜R ˜H“o¤u¨a°¨W£~Ð5Ñ6Ó7¸¸BÀ¸8ÀaÈÀWÐ;LÑ9Mô	
ô
 	�Q˜˜˜a˜S�z A q 6Ð)Ñ*×2Ñ2Ó4°a¸!¸¸q¸c¸
ÀQÈÀFÐ8JÑ6KÔLÜØ�ˆt�b�T˜B˜4Ð  1 b 'Ð)Ñ*×2Ñ2Ó4Ø�ˆt�b�T˜B˜4Ð  1 b 'Ð)Ñ*ô	
ô 	ØŒe�b�T˜B˜4 " Ð&Ó'¨!¨R¨Ð0Ñ1×9Ñ9Ó;Ø�ˆt�b�T˜B˜4Ð  1 b 'Ð)Ñ*ô	
ô 	Ø�ˆt�b�T˜B˜4Ð ¤%¨¨B¨£.Ð0Ñ1×9Ñ9Ó;Ø�ˆt�b�T˜B˜4Ð  1 b 'Ð)Ñ*ô	
ô 	ØŒe�b�T˜B˜4 " Ð&Ó'¬°°2¨w«Ð7Ñ8×@Ñ@ÓBØ�ˆt�b�T˜B˜4Ð  1 b 'Ð)Ñ*ô	
ô 	�Q˜˜1�v‘Y×&Ñ&Ó(¨!¨Q°¨F©)Ô4Ü�Q˜˜B�x‘[×(Ñ(Ó*¨A¨r°2¨h©KÔ8Ü�Q”u˜b "˜X“Ñ'×/Ñ/Ó1°1°b¸"°X±;Ô?ô 	�Q˜�sšA�v‘Yšq 1 #˜vÑ&×.Ñ.Ó0°!°Q°Cº°F±)ºAÀ¸s¸FÑ2CÔDÜØˆq�!ˆf’aˆi‰Lš˜Q ˜F˜Ñ#×+Ñ+Ó-¨q°!°Q°º°©|ºAÀÀ1¸v¸IÑ/Fô	
ô 	Øˆr�2ˆhšˆk‰Nš1˜q "˜g˜:Ñ&×.Ñ.Ó0°!°R¸°Hºa°K±.ÂÀQÈÀGÀÑ2Lô	
ô 	ØŒe�R˜�H‹ošqÐ Ñ!¢!¤U¨A¨r¨7£^Ð"3Ñ4×<Ñ<Ó>Øˆr�2ˆhšˆk‰Nš1˜q "˜g˜:Ñ&ô	
ô
 	Øˆa�1�a�&�ˆk‰N˜Q ˜F˜8 Q˜;Ñ'×/Ñ/Ó1°1°Q¸!¸Q¸¸°[±>ÀAÀqÀ6À(ÈAÀ+Ñ3Nô	
ô 	Øˆa�2�r�(�ˆmÑ˜q "˜g˜Y¨˜\Ñ*×2Ñ2Ó4°a¸¸RÀ¸H¸:¸Ñ6FÈÈBÈÀyÐRSÀ|Ñ6Tô	
ð �8‰8�uÒÜ˜˜2˜A˜2  A ˜x˜<™×0Ñ0Ó2°A°b°q°b¸A¸q¸6¸(°l±OÔDÜ˜˜Q ˜F˜8 R a R˜<™×0Ñ0Ó2°A¸¸1°v°hÀÀÀ°l±OÕDä—‘œzÐ1UÖVØ�"�1�"˜˜1�v�h�,’÷ Wä—‘œzÐ1UÖVØ�A�q�6�(˜B˜Q˜B�,’÷ Wô 	ØŠa�!�Q�ˆi‰L˜!˜Q˜¢˜Ñ#×+Ñ+Ó-¨q²°Q¸°F°©|¸QÀ¸FÂA¸IÑ/Fô	
ô 	ØŠa�"�b�ˆk‰N˜A˜r˜7¢A˜:Ñ&×.Ñ.Ó0°!²A¸¸B°x°K±.À!ÀRÀÊ!ÀÑ2Lô	
ô 	ØŠa”˜˜B�x“Ð Ñ!¤%¨¨B¨£.²!Ð"3Ñ4×<Ñ<Ó>ØŠa�"�b�ˆk‰N˜A˜r˜7¢A˜:Ñ&ô	
ô ”$�q“'œ$˜q›' $Ó'ˆÜ�Q�qš!�t‘W—_‘_Ó&¨¨!¨A¨#ªq¨&©	Ô2Ü�Q’q˜!�t‘W—_‘_Ó&¨ª!¨Q¨q¨S¨&©	Ô2ô �H‰H�q�c�U¤#Ô&ˆÜ�Q�q˜!�t‘W—_‘_Ó&¨¨!¨Q¨$©Ô0ô 	�Q˜�t˜b˜T�z‘]×*Ñ*Ó,¨a°°°r°d°
©mÕ<÷9 WÑVúçVÑVús   â8j&ã(j3ê&j0ê3j=c                 ó†  — t         j                  j                  d«       d}d}d}| j                  t         j                  j	                  ||«      «      }t        j
                  ||dkD  «      }t         j                  j                  | dz   ||¬«      }t         j                  j                  | dz   ||¬«      }| j                  |«      }|||f   }t        |«      r|j                  «       }t        ||||f   «       ||z   }	||z
  }
t        t        |j                  |	|f«       t        t        |j                  ||
f«       y )Nrc   r�  rñ   r–  r
  rç   r  )rJ   r”   r  r  r9  rí  r	  rø   r(   r™   r   r  rÀ  rè  )r    ÚNUM_SAMPLESr‚  r…  rÊ  ÚIrû  r›  ÚSIJÚI_badÚJ_bads              r:   Útest_fancy_indexing_randomizedz1_TestFancyIndexing.test_fancy_indexing_randomized¹  s  € Ü
�	‰	�‰�tÔàˆØˆØˆà�L‰LœŸ™Ÿ™¨¨!Ó,Ó-ˆÜ�K‰K˜˜1˜s™7Ó#ˆä�I‰I×Ñ˜q˜b 1™f a¨kÐÓ:ˆÜ�I‰I×Ñ˜q˜b 1™f a¨kÐÓ:ˆà�N‰N˜1Óˆà��!�‰fˆÜ�CŒ=Ø—+‘+“-ˆCÜ�S˜!˜A˜a˜C™&Ô!à�A‘ˆØ�A‘ˆä”j !§-¡-°%¸°Ô;Ü”j !§-¡-°!°E°Õ;r<   c                 óš  — d\  }}| j                  t        ||z  «      j                  ||«      «      }| j                  |«      }t	        j
                  |dz   t        ¬«      }t	        j
                  |dz
  t        ¬«      }t	        j
                  |dz   t        ¬«      }t	        j
                  |dz
  t        ¬«      }d}	t        j                  ||t        d «      f||t        d «      f«      D ]Q  \  }
}t        |
t        «      rt        |t        «      rŒ't        j                  t        |	¬«      5  ||
|f   }d d d «       ŒS y # 1 sw Y   Œ^xY w)Nrþ  rç   rò   re   z(bool index .* has shape .* instead of .*rk  )r  r   rù   rø   rJ   r÷  r  r=  r>  r   rI   r  r   rÀ  )r    r‚  r…  rR   rQ   Úrow_longÚ	row_shortÚcol_longÚ	col_shortrl  r•  r  r#  s                r:   Útest_missized_maskingz(_TestFancyIndexing.test_missized_maskingÓ  s  € Ø‰ˆˆ1à�L‰Lœ  A¡›×.Ñ.¨q°!Ó4Ó5ˆØ�N‰N˜1Óˆô —7‘7˜1˜q™5¬Ô-ˆÜ—G‘G˜A ™E¬Ô.ˆ	Ü—7‘7˜1˜q™5¬Ô-ˆÜ—G‘G˜A ™E¬Ô.ˆ	à8ˆÜ×%Ñ%Ø�y¤%¨£+Ð.Ø�y¤%¨£+Ð.ö
‰DˆAˆqô ˜!œUÔ#¬
°1´eÔ(<ØÜ—‘œz°Ö7Ø�a˜�d‘G�÷ 8Ð7ñ
÷ 8Ð7ús   Ä.EÅE
	c                 óF  — t         j                  j                  d«       | j                  t	        d«      j                  dd«      «      }| j                  |«      }t        j                  t         j                  j                  ddd¬«      t        ¬«      }t        j                  t         j                  j                  ddd¬«      t        ¬«      }t        j                  t         j                  j                  ddd	¬«      t        ¬«      }t        t        ||   «      ||   «       t        t        |d d …|f   «      |d d …|f   «       t        t        ||   «      ||   «       t        t        ||d
kD     «      ||d
kD     «       t        j                  g d¢«      }t        j                  g d¢«      }t        t        |||f   «      |||f   «       t        j                  dt        ¬«      }t        j                  dt        ¬«      }d|d<   t        j                  dt        ¬«      }d|d<   t        t        |j                  |«       t        t        |j                  |«       t        t        |j                  |«       t        t        t         f|j                  |df«       y )Nrc   r�  rŽ  rV   r   re   r  rò   rþ  ræ  )TFTTF)
FTTFTFFFFF)rñ   r  Trî  )rè   r   rç   )rJ   r”   r  r  r   rù   rø   r   r	  r  r   r™   r   r  rÀ  rè  r  )	r    rR   rQ   r  rû  r]  ÚZ1ÚZ2ÚZ3s	            r:   Útest_fancy_indexing_booleanz._TestFancyIndexing.test_fancy_indexing_booleané  sé  € Ü
�	‰	�‰�tÔà�L‰Lœ ›×+Ñ+¨A¨bÓ1Ó2ˆØ�N‰N˜1Óˆä�H‰H”R—Y‘Y×&Ñ& q¨!°!Ð&Ó4¼DÔAˆÜ�H‰H”R—Y‘Y×&Ñ& q¨!°"Ð&Ó5¼TÔBˆÜ�H‰H”R—Y‘Y×&Ñ& q¨!°'Ð&Ó:Ä$ÔGˆä”W˜Q˜q™T“] A a¡DÔ)Ü”W˜Qšq !˜t™WÓ% qª¨A¨¡wÔ/Ü”W˜Q˜q™T“] A a¡DÔ)Ü”W˜Q˜q 1™u™XÓ&¨¨!¨a©%©Ô1ä�H‰HÒ5Ó6ˆÜ�H‰Hò 9ó :ˆô 	”W˜Q˜q !˜t™WÓ% q¨¨A¨¡wÔ/ä�X‰X�g¤TÔ*ˆÜ�X‰X�g¤TÔ*ˆØˆˆ4‰Ü�X‰X�g¤TÔ*ˆØˆˆ4‰ä”j !§-¡-°Ô4Ü”j !§-¡-°Ô4Ü”j !§-¡-°Ô4Ü”z¤:Ð.°·±ÀÀ1¸vÕFr<   c                 óª  — t         j                  j                  d«       | j                  t	        d«      j                  dd«      «      }| j                  |«      }t        j                  t         j                  j                  ddd¬«      t        ¬	«      }| j                  |«      }t        t        ||   «      ||   «       t        t        ||d
kD     «      ||d
kD     «       t        j                  t         j                  j                  ddd¬«      t        ¬	«      }t        j                  t         j                  j                  ddd¬«      t        ¬	«      }| j                  |«      }| j                  |«      }t        t        |j                  |«       t        t        |j                  |«       t        t        t         f|j                  |df«       y )Nrc   r�  rŽ  rV   r   re   rþ  r  rò   ræ  )rŽ  r  )rñ   rV   rç   )rJ   r”   r  r  r   rù   rø   r   r	  r  r  r   r™   r  rÀ  rè  r  )	r    rR   rQ   r]  ÚXspÚZr^  ÚZspÚYsps	            r:   Ú"test_fancy_indexing_sparse_booleanz5_TestFancyIndexing.test_fancy_indexing_sparse_boolean	  sO  € Ü
�	‰	�‰�tÔà�L‰Lœ ›×+Ñ+¨A¨bÓ1Ó2ˆØ�N‰N˜1Óˆä�H‰H”R—Y‘Y×&Ñ& q¨!°'Ð&Ó:Ä$ÔGˆà× Ñ  Ó#ˆä”W˜Q˜s™V“_ a¨¡dÔ+Ü”W˜Q˜q 1™u™XÓ&¨¨!¨a©%©Ô1ä�H‰H”R—Y‘Y×&Ñ& q¨!°'Ð&Ó:Ä$ÔGˆÜ�H‰H”R—Y‘Y×&Ñ& q¨!°'Ð&Ó:Ä$ÔGˆà× Ñ  Ó#ˆØ× Ñ  Ó#ˆä”j !§-¡-°Ô5Ü”j !§-¡-°Ô5Ü”z¤:Ð.°·±ÀÀQ¸xÕHr<   c                 óì   — | j                  t        g d¢g d¢g d¢g«      «      }t        j                  |j	                  d«      «      dkD  }t        |d d …|f   j                  «       ddgddgddgg«       y )Nry  r  r   rç   )rø   r   rJ   Úravelr6  r   r™   )r    r¡   Údesired_colss      r:   Ú#test_fancy_indexing_regression_3087z6_TestFancyIndexing.test_fancy_indexing_regression_3087   sf   € Ø�n‰nœU¢IªwºÐ#@ÓAÓBˆÜ—x‘x §¡¨£
Ó+¨aÑ/ˆÜ�Sš˜L˜Ñ)×1Ñ1Ó3°q¸!°f¸qÀ!¸fÀqÈ!ÀfÐ5MÕNr<   c           	      ó¦   — | j                  t        ddgddgg«      «      }t        t        |j                  dt        j                  ddg«      «       y )Nrç   r   rØ  re   )rø   r   r  r  rñ  rJ   rŸ   s     r:   Útest_fancy_indexing_seq_assignz1_TestFancyIndexing.test_fancy_indexing_seq_assign%  s@   € Ø�n‰nœU Q¨ F¨Q°¨FÐ#3Ó4Ó5ˆÜ”j #§/¡/°6¼2¿8¹8ÀQÀqÀE»?ÕKr<   c                 óD  — | j                  t        ddgddgg«      «      }t        j                  «       5  t        j                  dt
        t        «       |ddgddgf   |ddgddgf<   d d d «       t        t        |«      t        ddgddgg«      «       y # 1 sw Y   Œ.xY w)Nrç   r   re   ró   r(  )	rø   r   r)  r*  r
  r  r)   r   r™   rŸ   s     r:   Útest_fancy_indexing_2d_assignz0_TestFancyIndexing.test_fancy_indexing_2d_assign)  s˜   € à�n‰nœU Q¨ F¨Q°¨FÐ#3Ó4Ó5ˆÜ×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLØ"% q¨! f¨q°!¨f nÑ"5ˆC��A�˜˜A˜�Ñ÷ 'ô 	”W˜S“\¤5¨1¨a¨&°1°a°&Ð)9Ó#:Õ;÷ 'Ð&ús   µ4BÂBc                 óz  — | j                  t        d«      j                  dd«      «      }d|dd d …f<   d|d d …df<   d|d<   | j                  |«      }t	        j
                  g d¢«      }t        t        ||   «      ||   «       t	        j
                  g t        ¬	«      }t        t        ||   «      ||   «       t        t        |||f   «      |||f   «       t	        j
                  g d
¢t        ¬	«      d d …d f   }t        t        |||f   «      |||f   «       t        t        |||f   «      |||f   «       y )Nr�  rŽ  rV   r   rç   re   ©ró   rñ   ©FFFFFrò   ©r   rç   re   ró   r–  ©	r  r   rù   rø   rJ   r   r   r™   rØ  ©r    rR   rQ   rü  rû  s        r:   Útest_fancy_indexing_emptyz,_TestFancyIndexing.test_fancy_indexing_empty1  s  € Ø�L‰Lœ ›×+Ñ+¨A¨bÓ1Ó2ˆØˆˆ!ŠAˆ#‰ØˆŠ!ˆAˆ#‰Øˆˆ#‰Ø�N‰N˜1Óˆä�H‰HÒ8Ó9ˆÜ”W˜Q˜q™T“] A a¡DÔ)Ü�H‰H�RœsÔ#ˆÜ”W˜Q˜q™T“] A a¡DÔ)Ü”W˜Q˜q !˜t™WÓ% q¨¨A¨¡wÔ/Ü�H‰H’_¬CÔ0²°4°Ñ8ˆÜ”W˜Q˜q !˜t™WÓ% q¨¨A¨¡wÔ/Ü”W˜Q˜q !˜t™WÓ% q¨¨A¨¡wÕ/r<   N)rµ   r¶   r·   rÿ   ru  rz  r|  rƒ  r‰  rŽ  r”  r˜  rš  rœ  r£  ra   r<   r:   rs  rs  #  sF   „ ñò-òNò~=ò@<ò4ò,Gò@Iò.Oò
Lò<ó0r<   rs  c              #   óÞ   K  — t        | d«      r| j                  sd–— yd–— | j                  j                  «       }d| _        | j	                  «        t        || j                  d«       y­w)zIChecks that sorted indices property is retained through an operation
    Úhas_sorted_indicesNFz'Expected sorted indices, found unsorted)rÀ  r¥  r·  r,  Úsort_indicesr   )r]  r·  s     r:   Úcheck_remains_sortedr§  B  sZ   è ø€ ô �1Ð*Ô+°1×3GÒ3GÛØÛ	Ø�i‰i�n‰nÓ€GØ €AÔØ‡N�NÔÜ�w §	¡	Ø@õBùs   ‚A+A-c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú_TestFancyIndexingAssignc                 óì   — | j                  t        j                  ddg«      «      }t        t        t
        t        f|j                  dd«       t        t        t
        t        f|j                  dd«       y )NrŽ  rw  re   rx  )rø   rJ   r   r  rÀ  r  r™  rñ  r³  s     r:   Útest_bad_index_assignz._TestFancyIndexingAssign.test_bad_index_assignR  sQ   € Ø�N‰Nœ2Ÿ8™8 Q¨ FÓ+Ó,ˆÜ”z¤:¬yÐ9¸1¿=¹=È%ÐQRÔSÜ”z¤:¬yÐ9¸1¿=¹=È*ÐVWÕXr<   c                 óL  ‡ ‡‡— d\  ŠŠˆˆˆ fd„}dt        d dd«      ft        j                  d«      t        dd«      ft        d	d«      t        dd«      ffD ]  \  }} |||«       Œ t        j                  d«      t        j                  d«      fd
fD ]  \  }} |||«       Œ y )Nrþ  c                 ó˜  •— ‰j                  ‰‰f«      }‰j                  t        j                  ‰‰f«      «      }t	        j
                  «       5  t	        j                  dt        t        «       d|| |f<   t        |«      5  d|| |f<   d d d «       d d d «       t        |j                  «       |«       y # 1 sw Y   Œ,xY w# 1 sw Y   Œ0xY w©Nr(  rç   )rø   r  rJ   r   r)  r*  r
  r  r)   r§  r   r™   ©r•  r  rQ   rR   r©  r  r    s       €€€r:   Ú_test_set_slicezI_TestFancyIndexingAssign.test_fancy_indexing_set.<locals>._test_set_sliceZ  sŸ   ø€ Ø—‘  1˜vÓ&ˆAØ—‘œRŸX™X q¨! fÓ-Ó.ˆAÜ×(Ñ(Õ*Ü×'Ñ'¨´$Ô8OÔPØ��!�Q�$‘Ü)¨!Õ,Ø�A�a˜�d‘G÷ -÷ +ô
 & a§i¡i£k°1Õ5÷ -Ð,ú÷ +Ð*ús$   Á2C ÂB4Â	C Â4B=	Â9C Ã C	r¿  rV   r–  ró   rŽ  rE  re   )rQ  ri  )r   rJ   r   ©r    r°  r•  r  r©  r  s   `   @@r:   Útest_fancy_indexing_setz0_TestFancyIndexingAssign.test_fancy_indexing_setW  s    ú€ Ø‰ˆˆ1ö	6ð  ¤ t¨R°Ó!3Ð4Ü—i‘i “l¤E¨!¨R£LÐ1Ü˜A˜q“k¤5¨¨B£<Ð0ó2‰DˆAˆqñ ˜A˜qÕ!ð2ô —i‘i “l¤B§I¡I¨a£LÐ1Ð3IÓJ‰DˆAˆqÙ˜A˜qÕ!ñ Kr<   c                 ó\   ‡ — ˆ fd„}t         D ]  } |t        j                  |«      «       Œ y )Nc                 óx  •— ‰j                  d| ¬«      }t        j                  «       5  t        j                  dt        t
        «       | j                  d«      |ddgddgf<   t        |j                  «       | j                  d«      dz  «       | j                  d«      |dd…dd…f<   t        |j                  «       | j                  d«      dz  «       | j                  d«      |d	<   t        |j                  «       | j                  d«      dz  | j                  d«      z   «       d d d «       y # 1 sw Y   y xY w)
Nr   rò   r(  rç   r   re   r{  r–  r¾  )	rø   r)  r*  r
  r  r)   rL  r   r6  rû  s     €r:   r  zD_TestFancyIndexingAssign.test_fancy_assignment_dtypes.<locals>.checkl  sì   ø€ Ø—‘˜v¨U�Ó3ˆAÜ×(Ñ(Õ*Ü×'Ñ'¨´$Ô8OÔPØ!&§¡¨A£��1�Q�%˜˜1˜�+‘Ü˜QŸU™U›W e§j¡j°£m°A¡oÔ6Ø"ŸZ™Z¨›_��!�A�#�a˜�c�'‘
Ü˜QŸU™U›W e§j¡j°£m°A¡oÔ6ØŸ™ C›��#‘Ü˜QŸU™U›W e§j¡j°£m°A¡o¸¿
¹
À1»Ñ&EÔF÷ +×*Ñ*ús   ©C>D0Ä0D9ré  r  s   `  r:   Útest_fancy_assignment_dtypesz5_TestFancyIndexingAssign.test_fancy_assignment_dtypesk  s%   ø€ ô		G÷ &ˆEÙ”"—(‘(˜5“/Õ"ñ &r<   c                 óð  — | j                  d«      }| j                  t        dd«      «      }g d¢}d}t        |«      }t        j                  «       5  t        j
                  dt        t        «       t        |«      5  ||df   j                  |d|f<   ||df   j                  |d|f<   ||df   j                  |d|f<   d d d «       t        |j                  «       |j                  j                  «       «       | j                  d	«      }t        |«      5  d
dg|ddd…f<   d d d «       t        |j                  «       g d¢g d¢g«       | j                  d«      }t        |«      5  d
gdgg|dd…df<   d d d «       t        |j                  «       ddgdd
gddgg«       | j                  d«      }| j                  t        j                  d«      «      }t        |«      5  ||fD ]  }g d¢|g d¢g d¢f<   Œ 	 d d d «       t        |j                  «       |«       | j                  d«      }t        |«      5  g d¢|d<   d d d «       t        |j!                  «       d«       | j                  t        j                  d«      «      }g d¢|d<   t        |j                  «       |«       d d d «       y # 1 sw Y   �ŒïxY w# 1 sw Y   �ŒšxY w# 1 sw Y   �ŒUxY w# 1 sw Y   ŒÞxY w# 1 sw Y   Œ¤xY w# 1 sw Y   y xY w)Nrc  ró   r–  r.  r(  r   rç   re   r  rV   rò  rf  )r   rV   rò  r½  r`  rã  râ  )râ  r.  rñ   )rø   r'   r   r)  r*  r
  r  r)   r§  r?  r   r™   r  rJ   r   r   r6  )r    rQ   rR   Úi0Úi1Úi2rý   s          r:   Útest_sequence_assignmentz1_TestFancyIndexingAssign.test_sequence_assignmentz  ss  € Ø�N‰N˜5Ó!ˆØ�N‰Nœ3˜q ›8Ó$ˆâˆØˆÜ�2‹Yˆä×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLÜ% aÕ(Ø˜B˜q˜D™'Ÿ)™)��!�B�$‘Ø˜B˜q˜D™'Ÿ)™)��!�B�$‘Ø˜B˜q˜D™'Ÿ)™)��!�B�$‘÷ )ô ˜qŸy™y›{¨A¯C©C¯K©K«MÔ:ð —‘˜uÓ%ˆAÜ% aÕ(Ø˜r˜7��!�A�a�C�%‘÷ )ä˜qŸy™y›{ªYºÐ,DÔEð —‘˜uÓ%ˆAÜ% aÕ(Ø˜D " ˜;��!�A�#�a�%‘÷ )ä˜qŸy™y›{¨a°¨V°a¸°W¸qÀ"¸gÐ,FÔGð —‘˜uÓ%ˆAØ—‘œRŸX™X e›_Ó-ˆAÜ% aÕ(Ø˜Q›�AÚ*1�A’gšwÐ&Ò'ñ  ÷ )ô ˜qŸy™y›{¨AÔ.ð —‘˜vÓ&ˆAÜ% aÕ(Ú*3�Ð&Ñ'÷ )ä §¡£¨Ô+Ø—‘œRŸX™X fÓ-Ó.ˆAÚ&/ˆAÐ"Ñ#Ü˜qŸy™y›{¨AÔ.÷G 'Ð&ç(Ñ(ú÷ )Ñ(ú÷ )Ñ(ú÷ )Ð(ú÷ )Ð(ú÷= 'Ð&ús‰   Á+K,Á=AJ-Ã AK,ÄJ:Ä"AK,Å&KÅ4A+K,ÇKÇ7>K,È5K È=A'K,Ê-J7	Ê2K,Ê:K	Ê?K,ËK	ËK,ËK	ËK,Ë K)	Ë%K,Ë,K5c                 ód  — | j                  t        d«      j                  dd«      «      }d|dd d …f<   d|d d …df<   d|d<   | j                  |«      }t	        j
                  g d¢«      }d	||<   t        t        |«      |«       t	        j
                  g t        ¬
«      }d	||<   t        t        |«      |«       d	|||f<   t        t        |«      |«       t	        j
                  g d¢t        ¬
«      d d …d f   }d	|||f<   t        t        |«      |«       d	|||f<   t        t        |«      |«       y )Nr�  rŽ  rV   r   rç   re   rž  rŸ  é*   rò   r   r¡  r¢  s        r:   Útest_fancy_assign_emptyz0_TestFancyIndexingAssign.test_fancy_assign_empty§  s	  € Ø�L‰Lœ ›×+Ñ+¨A¨bÓ1Ó2ˆØˆˆ!ŠAˆ#‰ØˆŠ!ˆAˆ#‰Øˆˆ#‰Ø�N‰N˜1Óˆä�H‰HÒ8Ó9ˆØˆˆ!‰Ü”W˜Q“Z Ô#ä�H‰H�RœsÔ#ˆØˆˆ!‰Ü”W˜Q“Z Ô#Øˆˆ!ˆAˆ#‰Ü”W˜Q“Z Ô#ä�H‰H’_¬CÔ0²°4°Ñ8ˆØˆˆ!ˆAˆ#‰Ü”W˜Q“Z Ô#Øˆˆ!ˆAˆ#‰Ü”W˜Q“Z Õ#r<   N)rµ   r¶   r·   r«  r²  rµ  rº  r½  ra   r<   r:   r©  r©  Q  s   „ òYò
"ò(#ò+/óZ$r<   r©  c                   ó   — e Zd Zd„ Zy)Ú_TestFancyMultidimc           
      óÚ  — t        j                  dgdgdgg«      t        j                  g d¢«      ft        j                  dgdgdgg«      t        j                  g d¢g«      ft        j                  g d¢g«      t        j                  dgdgdgg«      ft        j                  g d¢«      t        j                  dgdgdgg«      ft        j                  g d¢g d¢g«      t        j                  g d¢g d¢g«      fg}t         j                  j                  d	«       | j	                  t         j                  j                  d
d«      «      }| j                  |«      }|j                  dk(  rU|j                  t        j                  dgdgdggdgdgdggg«      t        j                  d
gdgdggdgdgdggg«      f«       |D �]%  \  }}|||f   }|||f   }t        t        |«      |«       |d
z   }|dz   }	t        t        |j                  ||f«       t        t        |j                  ||	f«       |j                  dk7  rQt        t        |j                  ||gt        d «      f«       t        t        |j                  t        d «      ||gf«       ŒÎt        |||gd d …f   j                  «       |||gd d …f   «       t        |d d …||gf   j                  «       |d d …||gf   «       �Œ( y )Nrç   re   ró   ©ró   r–  re   râ  r–  ©rŽ  rñ   ró   ©re   ró   rç   rc   rŽ  rä  rb  rñ   )rJ   r   r”   r  r  r9  rø   rû   rL   r   r™   r  rÀ  rè  r   )
r    ÚIandJrÊ  r›  r  rû  r€  ÚDIJr�  r‚  s
             r:   Útest_fancy_indexing_ndarrayz._TestFancyMultidim.test_fancy_indexing_ndarrayÀ  s…  € ä�X‰X˜�s˜Q˜C ! �oÓ&¬¯©²Ó(;Ð<Ü�X‰X˜�s˜Q˜C ! �oÓ&¬¯©²)°Ó(=Ð>Ü�X‰X’y�kÓ"¤B§H¡H¨q¨c°A°3¸¸¨_Ó$=Ð>Ü�X‰X’iÓ ¤"§(¡(¨Q¨C°!°°q°c¨?Ó";Ð<Ü�X‰X’y¢)Ð,Ó-¬r¯x©xºÂIÐ8NÓ/OÐPð
ˆô 	�	‰	�‰�tÔØ�L‰LœŸ™Ÿ™¨¨1Ó-Ó.ˆØ�N‰N˜1Óˆð �8‰8�uÒØ�L‰LÜ—‘˜Q˜C !  q c˜?¨a¨S°1°#¸°s¨OÐ<Ó=Ü—‘˜Q˜C !  q c˜?¨a¨S°1°#¸°s¨OÐ<Ó=ð?ôô
 ‰DˆAˆqØ�A�q�D‘'ˆCØ�A�q�D‘'ˆCÜœ › sÔ+à˜‘EˆEØ˜‘EˆEäœ* a§m¡m°e¸Q°ZÔ@Üœ* a§m¡m°a¸°ZÔ@à�x‰x˜5Ò Üœj¨!¯-©-¸1¸a¸&Ä%ÈÃ+Ð9NÔOÜœj¨!¯-©-¼%À»+ÈÈ1ÀvÐ9NÕOä˜Q  1˜v¢q˜y™\×1Ñ1Ó3°Q¸¸1°vºq°y±\ÔBÜ˜Qšq 1 a &˜y™\×1Ñ1Ó3°Q²q¸1¸a¸&°y±\ÖBñ! r<   N)rµ   r¶   r·   rÆ  ra   r<   r:   r¿  r¿  ¿  s   „ ó$Cr<   r¿  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)Ú_TestFancyMultidimAssignc                 ó²  — t         j                  j                  d«       | j                  t         j                  j	                  dd«      «      }| j                  |«      }t         j                  j	                  dd«      }t        j                  g d¢g d¢g«      }t        j                  g d¢g d	¢g«      }t        |«      5  ||||f<   d d d «       ||||f<   t        |j                  «       |«       |dz   }|dz   }g d¢}t        |«      5  ||||f<   d d d «       ||||f<   t        |j                  «       |«       t        |«      5  d|||f<   d d d «       d|||f<   t        |j                  «       |«       t        t        |j                  ||f|«       t        t        |j                  ||f|«       y # 1 sw Y   ŒíxY w# 1 sw Y   Œ¯xY w# 1 sw Y   ŒxY w©
Nrc   rŽ  rä  re   ró   râ  rÁ  rÂ  rÃ  )rJ   r”   r  r  r9  rø   r   r§  r   r™   r  rÀ  rñ  )	r    rÊ  r›  r]  r  rû  r�  r‚  rý   s	            r:   Útest_fancy_assign_ndarrayz2_TestFancyMultidimAssign.test_fancy_assign_ndarrayè  sz  € Ü
�	‰	�‰�tÔà�L‰LœŸ™Ÿ™¨¨1Ó-Ó.ˆØ�N‰N˜1ÓˆÜ�I‰I�N‰N˜1˜aÓ ˆä�H‰H’i¢Ð+Ó,ˆÜ�H‰H’i¢Ð+Ó,ˆä! !Õ$ØˆAˆa�ˆc‰F÷ %àˆˆ!ˆAˆ#‰Ü�Q—Y‘Y“[ !Ô$à�A‘ˆØ�A‘ˆâˆä! !Õ$ØˆAˆa�ˆc‰F÷ %àˆˆ!ˆAˆ#‰Ü�Q—Y‘Y“[ !Ô$ä! !Õ$ØˆAˆa�ˆc‰F÷ %àˆˆ!ˆAˆ#‰Ü�Q—Y‘Y“[ !Ô$ä”j !§-¡-°%¸°¸AÔ>Ü”j !§-¡-°!°E°¸AÕ>÷+ %Ð$ú÷ %Ð$ú÷
 %Ð$ús$   ÃF5ÄGÅGÆ5F>ÇG
ÇGc                 óÞ   ‡ ‡‡— d\  ŠŠˆˆˆ fd„}t        j                  ddgddgg«      ddgft        j                  ddg«      ddgddggfg d¢g d	¢gg d
¢g d¢gffD ]  \  }} |||«       Œ y )Nrþ  c                 ó˜  •— ‰j                  ‰‰f«      }t        |«      5  t        j                  «       5  t        j                  dt
        t        «       d|| |f<   d d d «       d d d «       ‰j                  t        j                  ‰‰f«      «      }d|| |f<   t        |j                  «       |«       y # 1 sw Y   ŒYxY w# 1 sw Y   Œ]xY wr®  )rø   r§  r)  r*  r
  r  r)   r  rJ   r   r   r™   r¯  s       €€€r:   r°  zR_TestFancyMultidimAssign.test_fancy_indexing_multidim_set.<locals>._test_set_slice  sœ   ø€ Ø—‘  1˜vÓ&ˆAÜ% aÕ(¬(×*AÑ*AÕ*CÜ×'Ñ'¨´$Ô8OÔPØ��!�Q�$‘÷ +D×(ð —‘œRŸX™X q¨! fÓ-Ó.ˆAØˆAˆa�ˆd‰GÜ% a§i¡i£k°1Õ5÷ +DÐ*Cú×(Ð(ús"    C µ'B4ÁC Â4B=	Â9C Ã C	rç   re   ró   r   r–  râ  ©r   re   r–  )r   r–  ró   )r–  rç   re   )rJ   r   r±  s   `   @@r:   Ú test_fancy_indexing_multidim_setz9_TestFancyMultidimAssign.test_fancy_indexing_multidim_set	  s‡   ú€ Ø‰ˆˆ1ö	6ô —h‘h  A ¨¨A¨Ð/Ó0°1°a°&Ð9ÜŸ™ 1 a &Ó)¨Q°¨F°Q¸°FÐ+;Ð<Ú#¢YÐ/²)ºYÐ1GÐHóJ‰DˆAˆqñ ˜A˜qÕ!ñJr<   c           	      óF  — t         j                  j                  d«       | j                  t         j                  j	                  dd«      «      }| j                  |«      }t         j                  j	                  dd«      }g d¢g d¢g}g d¢g d	¢g}||||f<   ||||f<   t        |j                  «       |«       |D ��cg c]  }|D �cg c]  }|dz   ‘Œ	 c}‘Œ }}}|D �	�
cg c]  }	|	D �
cg c]  }
|
dz   ‘Œ	 c}
‘Œ }}	}
g d¢}||||f<   ||||f<   t        |j                  «       |«       d|||f<   d|||f<   t        |j                  «       |«       t        t        |j                  ||f|«       t        t        |j                  ||f|«       y c c}w c c}}w c c}
w c c}
}	w rÊ  )rJ   r”   r  r  r9  rø   r   r™   r  rÀ  rñ  )r    rÊ  r›  r]  r  rû  r•  Úiir�  r  Újjr‚  rý   s                r:   Útest_fancy_assign_listz/_TestFancyMultidimAssign.test_fancy_assign_list  sp  € Ü
�	‰	�‰�tÔà�L‰LœŸ™Ÿ™¨¨1Ó-Ó.ˆØ�N‰N˜1ÓˆÜ�I‰I�N‰N˜1˜aÓ ˆâš	Ð"ˆÚš	Ð"ˆàˆˆ!ˆAˆ#‰Øˆˆ!ˆAˆ#‰Ü�Q—Y‘Y“[ !Ô$á/0Ô1©q¨!¡1Ó%¡1˜R�"�q“& 1Ó%¨qˆÑ1Ù/0Ô1©q¨!¡1Ó%¡1˜R�"�q“& 1Ó%¨qˆÑ1Úˆàˆˆ!ˆAˆ#‰Øˆˆ!ˆAˆ#‰Ü�Q—Y‘Y“[ !Ô$àˆˆ!ˆAˆ#‰Øˆˆ!ˆAˆ#‰Ü�Q—Y‘Y“[ !Ô$ä”j !§-¡-°%¸°¸AÔ>Ü”j !§-¡-°!°E°¸AÕ>ùò &ùÓ1ùÚ%ùÓ1s0   Â=	FÃFÃFÃ	FÃ(FÃ4FÆFÆFc                 ó
  — t         j                  j                  d«       | j                  t         j                  j	                  dd«      «      }| j                  |«      }g d¢}g d¢}|D �cg c]  }|dz   ‘Œ	 }}|D �cg c]  }|dz   ‘Œ	 }}g d¢}	t        j                  d«      d d …d f   }
t        t        |j                  |t        d «      f|	«       t        t        |j                  t        d «      |f|
«       y c c}w c c}w )Nrc   rŽ  rä  )rç   re   ró   ró   r–  re   )rŽ  rñ   ró   re   ró   rç   )rç   re   ró   r–  rŽ  rñ   rä  )rJ   r”   r  r  r9  rø   r   r  rÀ  rñ  r   )r    rÊ  r›  r  rû  rÑ  r�  rÒ  r‚  ÚC1ÚC2s              r:   Útest_fancy_assign_slicez0_TestFancyMultidimAssign.test_fancy_assign_slice7  sÐ   € Ü
�	‰	�‰�tÔà�L‰LœŸ™Ÿ™¨¨1Ó-Ó.ˆØ�N‰N˜1ÓˆâˆÚˆá"#Ó$¡!˜B��a“ !ˆÐ$Ù"#Ó$¡!˜B��a“ !ˆÐ$â"ˆÜ�Y‰Y�q‹\š!˜T˜'Ñ"ˆÜ”j !§-¡-°%¼¸t»Ð1EÀrÔJÜ”j !§-¡-´%¸³+¸uÐ1EÀrÕJùò %ùÚ$s   Á,C;Á>D N)rµ   r¶   r·   rË  rÏ  rÓ  r×  ra   r<   r:   rÈ  rÈ  ç  s   „ ò?òB"ò"?ó:Kr<   rÈ  c                   ó^   — e Zd ZdZd„ Zej                  j                  d«      d„ «       Zd„ Z	y)Ú_TestArithmeticz&
    Test real/complex arithmetic
    c                 ó  — t        g d¢g d¢g d¢g d¢gd«      }t        g d¢g d¢g d¢g d	¢gd
«      }t        g d¢g d¢g d¢g d¢gd«      |_        t        |dz  j                  d«      d|z  «       t        |j                  dz  j                  d«      d|j                  z  «       t        |j                  dz  j                  d«      d|j                  z  «       | j                  |«      }| j                  |«      }||||fS )N)g      ø¿g      @r   ç      @r   r   )g      	@g     €Àg      ä?r   r   r   )r   r   ç      À¿r{  r   r   )r   r   g     À @r   r   r   rô   )g      Ø?r   r   r   r¯  g      @)g     €,@g      Àr   r   rÜ  r   )r   g      @r   r   r   r   )g     €2@ç      °¿r   r   r   r   r÷   )g      ô?r   r   r   rñ   g      À)rÛ  ç     €@r   r   r   g      @)r   rÞ  r   r   r   r   )rÝ  r   r   r   r   r   é   rZ   )r   rÎ  r   rt   rÈ  rø   )r    Ú_TestArithmetic__AÚ_TestArithmetic__BÚ_TestArithmetic__AspÚ_TestArithmetic__Bsps        r:   Ú__arith_initz_TestArithmetic.__arith_initM  sþ   € äÒ/Ú9Ú3Ú0ð2ð 4=ó>ˆô Ò.Ú9Ú/Ú5ð7ð 9EóFˆô Ò4Ú;Ú5Ú7ð9ð ;DóEˆŒô 	˜C ™FŸ?™?¨7Ó3°B°s±FÔ;Ü˜CŸH™H R™K×/Ñ/°Ó8¸¸C¿H¹H¹ÔEÜ˜CŸH™H R™K×/Ñ/°Ó8¸¸C¿H¹H¹ÔEà—‘˜sÓ#ˆØ—‘˜sÓ#ˆØ�C˜ Ð%Ð%r<   rò  c                 ó  — | j                  «       \  }}}}t        ||z   j                  «       ||z   «       t        D �]±  }t	        j
                  d¬«      5  |j                  |«      }d d d «       | j                  «      }t        D �]c  }t	        j                  |t        j                  «      s;t	        j
                  d¬«      5  |j                  j                  |«      }	d d d «       n|j                  |«      }	| j                  	«      }
||	z   }||
z   }t        |j                  |j                  «       t        |j                  «       |«       t        ||	z   |«       t        ||
z   |«       t	        j                  d«      ||fv r�Œ||	z
  }||
z
  }t        |j                  |j                  «       t        |j                  «       |«       t        ||	z
  |«       t        ||
z
  |«       �Œf �Œ´ y # 1 sw Y   �ŒŒxY w# 1 sw Y   �ŒxY w)Nr(  rF  r  )Ú_TestArithmetic__arith_initr   r™   r-   rJ   rJ  rt   rø   rl   rr  rÈ  r   r?   ©r    rà  rá  râ  rã  r@   rQ   r&  rA   rR   rî  ÚD1ÚS1s                r:   Útest_add_subz_TestArithmetic.test_add_sube  s¤  € à!%×!2Ñ!2Ó!4ÑˆˆS�%˜ô 	Ø�U‰]×#Ñ#Ó% s¨S¡yô	
÷
 "Ð!ˆAÜ—‘ XÖ.Ø—J‘J˜q“M�÷ /à—.‘. Ó#ˆCß%Ð%�Ü—}‘} Q¬×(:Ñ(:Ô;ÜŸ™¨XÖ6ØŸH™HŸO™O¨AÓ.˜÷ 7Ð6ð Ÿ
™
 1›�AØ—n‘n QÓ'�ð ˜‘U�Ø˜3‘Y�ä˜RŸX™X b§h¡hÔ/Ü" 2§:¡:£<°Ô4Ü" 3¨¡7¨2Ô.Ü" 1 s¡7¨2Ô.ô —8‘8˜FÓ#¨¨1 vÑ-áà˜‘U�Ø˜3‘Y�ä˜RŸX™X b§h¡hÔ/Ü" 2§:¡:£<°Ô4Ü" 3¨¡7¨2Ô.Ü" 1 s¡7¨2Ö.ò9 &ñ	 "ß.Ñ.ú÷
 7Ñ6ús   ÁG2ÃG?Ç2G<	Ç?H	c           
      ód  — | j                  «       \  }}}}t        ||j                  z  j                  «       ||j                  z  «       t        D �]D  }t        j                  d¬«      5  |j                  |«      }d d d «       | j                  «      }t        D ]÷  }t        j                  |t
        j                  «      r|j                  |«      }	n:t        j                  d¬«      5  |j                  j                  |«      }	d d d «       | j                  	«      }
||	j                  z  }||
j                  z  }t        |j                  «       |dt        |«      j                  «       z  ¬«       t        |j                   |j                   «       Œù �ŒG y # 1 sw Y   �ŒxY w# 1 sw Y   Œ¡xY w)Nr(  rF  g›+¡†›„=)Úatol)ræ  r   r?  r™   r-   rJ   rJ  rt   rø   rl   rr  rÈ  r   r²  rY   r   r?   rç  s                r:   Útest_muz_TestArithmetic.test_mu‘  s8  € Ø!%×!2Ñ!2Ó!4ÑˆˆS�%˜ô 	˜E E§G¡G™O×4Ñ4Ó6Ø #§%¡%™Kô	)÷ "Ð!ˆAÜ—‘ XÖ.Ø—J‘J˜q“M�÷ /à—.‘. Ó#ˆCß%�Ü—=‘= ¤B×$6Ñ$6Ô7ØŸ
™
 1›‘AäŸ™¨XÖ6ØŸH™HŸO™O¨AÓ.˜÷ 7à—n‘n QÓ'�à˜Ÿ™‘W�Ø˜3Ÿ5™5‘[�ä §
¡
£¨bØ%*¬3¨r«7¯;©;«=Ñ%8õ:ä˜RŸX™X b§h¡hÕ/ò &ñ	 "ß.Ñ.ú÷ 7Ð6ús   Á*FÃ*F&ÆF#	Æ&F/N)
rµ   r¶   r·   rÿ   ræ  r  rÉ  rV  rê  rí  ra   r<   r:   rÙ  rÙ  I  s5   „ ñò&ð0 ‡[�[×Ñ˜2Óñ)/ó ð)/óV0r<   rÙ  c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	Ú_TestMinMaxc                 óò  — t         j                  t         j                  t         j                  t         j                  t         j
                  fD �]K  }t        j                  d|¬«      j                  dd«      }| j                  |«      }t        |j                  «       d«       t        |j                  «       d«       t        |j                  «       j                  |«       t        |j                  «       j                  |«       |dz  }| j                  |«      }t        |j                  «       d«       t        |j                  «       d«       |dz  }| j                  |«      }t        |j                  «       d	«       t        |j                  «       d«       �ŒN | j                  t        j                  d
d«      j                  dd«      «      }t        |j                  «       d
«       t        |j                  «       j                  |j                  «       t        |j                  d¬«      d
«       | }t        |j                  «       d«       t        |j                  d¬«      d«       | j                  t        j                  d«      «      }t        |j                  «       d«       t        |j                  «       d«       t        |j                  «       j                  |j                  «       t        j                  dt        ¬«      j                  dd«      }d|dd…d d …f<   | j                  |«      }t        |j                  «       d«       t        |j                  «       d«       t        j                  d«      t        j                  d«      t        j                  d«      fD ]G  }| j                  |«      }t        t         |j                  «       t        t         |j                  «       ŒI y )Nrò  rò   rŽ  r–  r   é   rè   iíÿÿÿiòÿÿÿrç   rV   ró   T©Úexplicitr  re   rØ  ©r   rV   ©rV   r   )rJ   rö   rô   rZ   rf   r÷   r   rù   rø   r   rn   rY   r?   r   r€  r  r  )r    r?   rÊ  r]  r‘  s        r:   Útest_minmaxz_TestMinMax.test_minmax­  s¦  € Ü—j‘j¤"§*¡*¬b¯h©h¼¿¹Ä"Ç-Á-ÔPˆEÜ—	‘	˜" EÔ*×2Ñ2°1°QÓ7ˆAà—‘˜qÓ!ˆAÜ˜Ÿ™› !Ô$Ü˜Ÿ™› "Ô%Ü˜Ÿ™›Ÿ™¨Ô.Ü˜Ÿ™›Ÿ™¨Ô.à�‰GˆAØ—‘˜qÓ!ˆAÜ˜Ÿ™› #Ô&Ü˜Ÿ™› !Ô$à�‰FˆAØ—‘˜qÓ!ˆAÜ˜Ÿ™› #Ô&Ü˜Ÿ™› !Ö$ð# Qð( �N‰Nœ2Ÿ9™9 Q¨Ó+×3Ñ3°A°qÓ9Ó:ˆÜ�Q—U‘U“W˜aÔ Ü�Q—U‘U“W—]‘] A§G¡GÔ,Ü�Q—U‘U D�UÓ)¨1Ô-àˆBˆÜ�Q—U‘U“W˜bÔ!Ü�Q—U‘U D�UÓ)¨2Ô.ð �N‰Nœ2Ÿ8™8 FÓ+Ó,ˆÜ�Q—U‘U“W˜aÔ Ü�Q—U‘U“W˜aÔ Ü�Q—U‘U“W—]‘] A§G¡GÔ,ô �I‰I�b¤Ô&×.Ñ.¨q°Ó3ˆØˆˆ!ˆAˆ#Šqˆ&‰	Ø�N‰N˜1ÓˆÜ�Q—U‘U“W˜aÔ Ü�Q—U‘U“W˜bÔ!ô —(‘(˜6Ó"¤B§H¡H¨WÓ$5´r·x±xÀÓ7HÓIˆAØ—‘˜qÓ!ˆAÜœ* a§e¡eÔ,Üœ* a§e¡eÕ,ñ Jr<   c                 óˆ  — | j                    }t        j                  d«      j                  dd«      }d|dd d …f<   d|d d …df<   d|d<   d|d	<   | j	                  |«      }dd
g}ddg}||z   D ]x  }t        |j                  |¬«      j                  «       |j                  ||¬«      «       t        |j                  |¬«      j                  «       |j                  ||¬«      «       Œz |D ]²  }t        |j                  |d¬«      j                  «       | j                  g d¢«      «       t        j                  |j                  dk(  «      r| j                  g d¢«      }n| j                  g d¢«      }t        |j                  |d¬«      j                  «       |«       Œ´ |D ]´  }t        j                  g d¢«      }t        j                  g d¢«      }	| j                   s"|j                  d«      }|	j                  d«      }	t        |j                  |d¬«      j                  «       |«       t        |j                  |d¬«      j                  «       |	«       Œ¶ t        j                  dd«      j                  dd«      }| j	                  |«      }||z   D ]x  }t        |j                  |¬«      j                  «       |j                  ||¬«      «       t        |j                  |¬«      j                  «       |j                  ||¬«      «       Œz t        |j                  d¬«      |j                  d|¬«      «       |D ]Š  }|dd d …f   }|dd d …f   }	| j                   s|d dd d …f   }|d dd d …f   }	t        |j                  |d¬«      j                  «       |«       t        |j                  |d¬«      j                  «       |	«       ŒŒ |D ]Š  }|d d …df   }|d d …df   }	| j                   s|d d …dd f   }|d d …dd f   }	t        |j                  |d¬«      j                  «       |«       t        |j                  |d¬«      j                  «       |	«       ŒŒ | j                  t        j                  d«      «      }| j	                  |«      }||z   D ]x  }t        |j                  |d¬«      j                  «       |j                  |¬«      «       t        |j                  |d¬«      j                  «       |j                  |¬«      «       Œz | j                  t        j                  d«      «      }| j	                  |«      }ddg}
t        t!        j"                  ||
«      «      }t        t!        j"                  ||
«      «      }|D ]?  \  }}t%        t&        |j                  ||¬«       t%        t&        |j                  ||¬«       ŒA |D ]{  \  }}t        |j                  ||¬«      j                  «       |j                  |¬«      «       t        |j                  ||¬«      j                  «       |j                  |¬«      «       Œ} | j                  t        j                  d«      «      }| j	                  |«      }|D ]?  \  }}t%        t&        |j                  ||¬«       t%        t&        |j                  ||¬«       ŒA |D ]{  \  }}t        |j                  ||¬«      j                  «       |j                  |¬«      «       t        |j                  ||¬«      j                  «       |j                  |¬«      «       Œ} y )Nr�  rŽ  rV   r   rç   ræ  r`  rè   r¾  rE  rd  rh  T©re  ró  )
r×  é)   r¼  é+   é,   é-   é.   é/   é0   r   )
rò  rç   rè   ró   r–  rŽ  r   rä  rå  r   )
rò  rç   rè   ró   r–  rŽ  rñ   rä  rå  r   )rå  r   é   é&   rÿ  )rç   r   rè   ró  r×  r  é3   r5  )rV   rŽ  rô  Frõ  )r  rJ   r   rù   rø   r   rY   r™   rn   r   r  Úanyr¹  r   r   rj  r=  r>  r  r  )r    rZ  rÊ  r]  Ú	axes_evenÚaxes_oddre  rq  Úexpected_maxÚexpected_minÚexplicit_valuesÚeven_explicit_pairsÚodd_explicit_pairsÚexs                 r:   Útest_minmax_axisz_TestMinMax.test_minmax_axisÞ  s  € Ø×%Ñ%Ð%ˆÜ�I‰I�b‹M×!Ñ! ! RÓ(ˆàˆˆ!ŠQˆ$‰àˆŠ!ˆQˆ$‰àˆˆ$‰àˆˆ$‰Ø�N‰N˜1Óˆà˜�Gˆ	Ø�r�7ˆØ˜yÔ(ˆDÜØ—‘˜4�Ó ×(Ñ(Ó*¨A¯E©E°tÀd¨EÓ,Kôô Ø—‘˜4�Ó ×(Ñ(Ó*¨A¯E©E°tÀd¨EÓ,Kõð	 )ó ˆDÜØ—‘˜4¨$�Ó/×7Ñ7Ó9Ø—‘ÒDÓEôô �v‰v�a—f‘f ‘kÔ"àŸ<™<Ò(HÓI‘àŸ<™<Ò(HÓI�Ü˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀHÕMð ó ˆDÜŸ8™8Ò$6Ó7ˆLÜŸ8™8Ò$6Ó7ˆLØ×%Ò%Ø+×3Ñ3°FÓ;�Ø+×3Ñ3°FÓ;�Ü˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀLÔQÜ˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀLÕQð ô �I‰I�a˜Ó×$Ñ$ R¨Ó+ˆØ�N‰N˜1ÓˆØ˜yÔ(ˆDÜØ—‘˜4�Ó ×(Ñ(Ó*¨A¯E©E°tÀd¨EÓ,Kôô Ø—‘˜4�Ó ×(Ñ(Ó*¨A¯E©E°tÀd¨EÓ,Kõð	 )ô 	�Q—U‘U �UÓ'¨¯©°FÀT¨Ó)JÔKãˆDØ˜R¢˜U™8ˆLØ˜Q¢˜T™7ˆLØ×%Ò%Ø   rª1 ™~�Ø   qª! ™}�Ü˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀLÔQÜ˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀLÕQð ó ˆDØšQ ˜U™8ˆLØšQ ˜T™7ˆLØ×%Ò%Ø ¢ B¨ ™~�Ø ¢ A t ™}�Ü˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀLÔQÜ˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀLÕQð ð �L‰LœŸ™ 'Ó*Ó+ˆØ�N‰N˜1ÓˆØ Ô(ˆDÜ˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀAÇEÁEÈtÀEÓDTÔUÜ˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀAÇEÁEÈtÀEÓDTÕUð )ð
 �L‰LœŸ™ 'Ó*Ó+ˆØ�N‰N˜1ÓˆØ ˜-ˆÜ"¤9×#4Ñ#4°YÀÓ#PÓQÐÜ!¤)×"3Ñ"3°H¸oÓ"NÓOÐÛ+‰HˆD�"Üœ* a§e¡e°$ÀÕDÜœ* a§e¡e°$ÀÖDð ,ó +‰HˆD�"Ü˜Ÿ™ D°2˜Ó6×>Ñ>Ó@À!Ç%Á%ÈTÀ%ÓBRÔSÜ˜Ÿ™ D°2˜Ó6×>Ñ>Ó@À!Ç%Á%ÈTÀ%ÓBRÕSð +ð �L‰LœŸ™ 'Ó*Ó+ˆØ�N‰N˜1ÓˆÛ*‰HˆD�"Üœ* a§e¡e°$ÀÕDÜœ* a§e¡e°$ÀÖDð +ó ,‰HˆD�"Ü˜Ÿ™ D°2˜Ó6×>Ñ>Ó@À!Ç%Á%ÈTÀ%ÓBRÔSÜ˜Ÿ™ D°2˜Ó6×>Ñ>Ó@À!Ç%Á%ÈTÀ%ÓBRÕSñ ,r<   c                 óÖ  — t        g d¢g d¢g d¢g«      }| j                  |«      }| j                  rt        nt        j
                  }| j                  rt        nt        }t        |j                  «       «      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  «       «      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  «       «      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  «       «      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  «       «      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  «       «      sJ ‚t        |j                  d¬«      |«      sJ ‚t        |j                  d¬«      |«      sJ ‚y rc  )r   rø   r  r
   rJ   r1   r*   r+   r.   rn   rI   rY   ÚnanminÚnanmaxÚargminÚargmax)r    rë   ré   rd  Úspmatrix_or_sparrays        r:   Útest_minmax_container_typez&_TestMinMax.test_minmax_container_typeD  s  € Ü’YÚÚð!ó "ˆð —‘˜sÓ#ˆØ%)×%7Ò%7�'¼R¿Y¹YˆØ)-×);Ò);�gÄÐä˜EŸI™I›KÔ(Ð(Ð(Ü˜%Ÿ)™)¨˜)Ó+Ð-@ÔAÐAÐAÜ˜%Ÿ)™)¨˜)Ó+Ð-@ÔAÐAÐAä˜EŸI™I›KÔ(Ð(Ð(Ü˜%Ÿ)™)¨˜)Ó+Ð-@ÔAÐAÐAÜ˜%Ÿ)™)¨˜)Ó+Ð-@ÔAÐAÐAä˜EŸL™L›NÔ+Ð+Ð+Ü˜%Ÿ,™,¨A˜,Ó.Ð0CÔDÐDÐDÜ˜%Ÿ,™,¨A˜,Ó.Ð0CÔDÐDÐDä˜EŸL™L›NÔ+Ð+Ð+Ü˜%Ÿ,™,¨A˜,Ó.Ð0CÔDÐDÐDÜ˜%Ÿ,™,¨A˜,Ó.Ð0CÔDÐDÐDä˜EŸL™L›NÔ+Ð+Ð+Ü˜%Ÿ,™,¨A˜,Ó.°Ô@Ð@Ð@Ü˜%Ÿ,™,¨A˜,Ó.°Ô@Ð@Ð@ä˜EŸL™L›NÔ+Ð+Ð+Ü˜%Ÿ,™,¨A˜,Ó.°Ô@Ð@Ð@Ü˜%Ÿ,™,¨A˜,Ó.°Ô@Ð@Ñ@r<   c                 ó&  — | j                  t        j                  d«      j                  dd«      t        ¬«      }d|dd d …f<   d|d d …df<   d|d<   d	|d
<   t        j
                  |d<   t        j
                  |d<   | j                  |«      }|j                  «       }t        j                  |«      sJ ‚|t        j                  |«      k(  sJ ‚|j                  «       }t        j                  |«      sJ ‚|t        j                  |«      k(  sJ ‚|j                  d¬«      }t        j                  |«      sJ ‚|t        j                  |d¬«      k(  sJ ‚g d¢}|D ]´  }|j                  |¬«      }t        |j                  «       t        j                  ||¬«      «       t        || j                  «      sJ ‚|j                  |¬«      }t        |j                  «       t        j                  ||¬«      «       t        || j                  «      rŒ´J ‚ y )Nr�  rŽ  rV   rò   r   rç   ræ  r`  rè   r¾  rK  )rç   r–  r5  rd  )rE  rè   r   rç   )r  rJ   r   rù   r€  r-  rø   r  r7  r  r   r™   rI   r  )	r    rÊ  r]  ÚX_nan_maximumÚX_nan_minimumro  re  ÚX_nan_maximaÚX_nan_minimas	            r:   Útest_nanminmaxz_TestMinMax.test_nanminmaxd  sµ  € Ø�L‰LœŸ™ 2›×.Ñ.¨q°Ó4¼EˆLÓBˆØˆˆ!ŠQˆ$‰ØˆŠ!ˆQˆ$‰Øˆˆ$‰Øˆˆ$‰Ü—&‘&ˆˆ$‰Ü—&‘&ˆˆ$‰Ø�N‰N˜1ÓˆàŸ™›
ˆÜ�{‰{˜=Ô)Ð)Ð)Ø¤§	¡	¨!£Ò,Ð,Ð,àŸ™›
ˆÜ�{‰{˜=Ô)Ð)Ð)Ø¤§	¡	¨!£Ò,Ð,Ð,àŸ™ f˜Ó-ˆÜ�{‰{˜=Ô)Ð)Ð)Ø¤§	¡	¨!°&Ô 9Ò9Ð9Ð9âˆÛˆDØŸ8™8¨˜8Ó.ˆLÜ˜L×0Ñ0Ó2´B·I±I¸aÀdÔ4KÔLÜ˜l¨D×,>Ñ,>Ô?Ð?Ð?àŸ8™8¨˜8Ó.ˆLÜ˜L×0Ñ0Ó2´B·I±I¸aÀdÔ4KÔLÜ˜l¨D×,>Ñ,>Õ?Ð?Ð?ñ r<   c                 ó.  — t        g d¢g d¢g d¢g«      }| j                  |«      }dD ]k  }t        ||«      }t        ||«      }t        t        |d¬«       t        t
        |d¬«       t        t        |dd¬	«       t         |d
¬«       |d
¬«      «       Œm y )Nr.  r/  r0  )rn   rY   ró   rd  rD  rç   rE  r5  )r   rø   r{   r  r  r™  r   )r    rë   ré   ÚfnameÚdatfuncr‚   s         r:   Útest_minmax_invalid_paramsz&_TestMinMax.test_minmax_invalid_params„  s…   € Ü’YÚÚð!ó "ˆð —‘˜sÓ#ˆã#ˆEÜ˜c 5Ó)ˆGÜ˜5 %Ó(ˆDÜœ* d°Õ3Üœ) T°Õ4Üœ* d°¸Õ:Ü™ 6Ô*©G¸Ô,@ÕAñ $r<   c                 óP  — ddl m} t        g d¢g d¢g d¢g«      }| j                  |«      }t	        ||j
                  «      ret        t        j                  |«      t        j                  |«      «       t        t        j                  |«      t        j                  |«      «       y y )Nr   ©Ú_datar.  r/  r0  )
Úscipy.sparser   r   rø   rI   Ú_minmax_mixinr   rJ   rn   rY   )r    r   rë   ré   s       r:   Útest_numpy_minmaxz_TestMinMax.test_numpy_minmax’  sy   € õ 	'ä’YÚÚð!ó "ˆð —‘˜sÓ#ˆô �e˜U×0Ñ0Ô1ÜœrŸv™v e›}¬b¯f©f°S«kÔ:ÜœrŸv™v e›}¬b¯f©f°S«kÕ:ð 2r<   c                 óH  — ddl m} t        j                  g d¢g d¢g d¢g d¢g d¢g«      }|j	                  «       }t        j                  dd	gd
dgg«      }t        j                  dd	gd
dgg«      }t        j                  g d¢g d¢g d¢g«      }|||||fD �]Z  }| j                  |«      }| j                  |«      }t        ||j                  «      sŒ=t        |j                  «       t        j                  |«      «       t        |j                  «       t        j                  |«      «       t        |j                  d¬«      t        j                  |d¬«      «       t        |j                  d¬«      t        j                  |d¬«      «       t        |j                  d¬«      t        j                  |d¬«      «       t        |j                  d¬«      t        j                  |d¬«      «       �Œ] | j                  | j                  |«      «      }t        |j                  d¬«      d«       t        | j                  d¬«      d«       t        |j                  d¬«      d«       t        | j                  d¬«      d«       | j                  t        j                  d«      «      }	| j                  t        j                  d«      «      }
ddg}t        j                  |	|
gg d¢|«      D �]  \  }}}|�|j                  |   dk(  rot!        j"                  t$        d¬«      5  |j                  ||¬«       d d d «       t!        j"                  t$        d¬«      5  |j                  ||¬«       d d d «       Œ‹| j&                  rt        j(                  d«      }nt        j(                  |dk(  rdnd«      }t        |j                  ||¬«      |«       t        |j                  ||¬«      |«       �Œ | j                  |«      }t        |j                  dd¬«      | j                  g d¢«      «       t        |j                  dd¬«      | j                  g d¢«      «       t        j                  g d¢«      }t        j                  g d ¢«      }|j*                  d!k7  rd|d"<   | j&                  s"|j-                  d#«      }|j-                  d#«      }t        |j                  dd¬«      |«       t        t/        |j                  dd¬«      «      |«       t        j(                  d$«      }| j                  |«      }|j*                  dk7  r;t        |j                  d d¬«      d«       t        |j                  d d¬«      d«       y t!        j"                  t$        d¬«      5  |j                  d d¬«       d d d «       t!        j"                  t$        d¬«      5  |j                  d d¬«       d d d «       y # 1 sw Y   �Œ¼xY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ[xY w# 1 sw Y   y xY w)%Nr   r  )rè   rŽ  re   ró   )r   r   rè   rE  )rè   rE  r½  r±  rÔ  )rç   re   r   r   r–  ró   rä  rŽ  )rŽ  rŽ  ró   )r–  ræ  rV   )ró   r–  ræ  rd  rç   Trò  re   rÙ  r  Frÿ  zCannot applyrk  rø  r5  r   )ró   r   ró   ró   )r   re   re   re   )rç   re   r   ró   rç   )r   ró   ró   r   r   rß  rè   r  r¾  )r!  r   rJ   r   r   r  rø   rI   r"  r   r  r  rÛ  r=  r>  r½   r  r   r  r  r   rg  rù   r   )r    r   rè  ÚD2ÚD3ÚD4ÚD5rÊ  r¡   ÚD6ÚD7Ú	explicitsre  r  rq  r  r  s                    r:   Útest_argmaxz_TestMinMax.test_argmax¤  s   € Ý&Ü�X‰XÚÚÚÚÚð
ó ˆð �\‰\‹^ˆä�X‰X˜˜1�v  1˜vÐ&Ó'ˆÜ�X‰X˜˜1�v  1˜vÐ&Ó'ˆÜ�X‰X’y¢*ªiÐ8Ó9ˆà�b˜"˜b "Ô%ˆAØ—‘˜Q“ˆAØ—.‘. Ó#ˆCÜ˜c 5×#6Ñ#6Ô7Øä˜Ÿ™›¤r§y¡y°£|Ô4Ü˜Ÿ™›¤r§y¡y°£|Ô4ä˜Ÿ™¨˜Ó+¬R¯Y©Y°q¸qÔ-AÔBÜ˜Ÿ™¨˜Ó+¬R¯Y©Y°q¸qÔ-AÔBä˜Ÿ™¨˜Ó+¬R¯Y©Y°q¸qÔ-AÔBÜ˜Ÿ™¨˜Ó+¬R¯Y©Y°q¸qÔ-AÖBð &ð  �n‰n˜TŸ\™\¨"Ó-Ó.ˆÜ�S—Z‘Z¨�ZÓ.°Ô2Ü�s�d—]‘]¨D�]Ó1°1Ô5Ü�S—Z‘Z¨�ZÓ.°Ô2Ü�s�d—]‘]¨D�]Ó1°1Ô5ð �^‰^œBŸH™H VÓ,Ó-ˆØ�^‰^œBŸH™H VÓ,Ó-ˆØ˜5�Mˆ	ä&×.Ñ.°°B¨xºÀy×Q‰MˆC��rØˆ|˜sŸy™y¨™°!Ò3Ü—]‘]¤:°^ÖDØ—J‘J D°2�JÔ6÷ Eä—]‘]¤:°^ÖDØ—J‘J D°2�JÔ6÷ EÐDð ×%Ò%Ü!Ÿx™x¨›{‘Hä!Ÿx™x°$¸!²)©ÀÓH�HÜ˜SŸZ™Z¨T¸B˜ZÓ?ÀÔJÜ˜SŸZ™Z¨T¸B˜ZÓ?ÀÖJð Rð �n‰n˜RÓ ˆÜ�S—Z‘Z Q°�ZÓ6¸¿¹Â\Ó8RÔSÜ�S—Z‘Z Q°�ZÓ6¸¿¹Â\Ó8RÔSä—x‘x¢Ó0ˆÜ—x‘x¢Ó0ˆØ�7‰7�bŠ=à ˆL˜ÑØ×!Ò!Ø'×/Ñ/°Ó7ˆLØ'×/Ñ/°Ó7ˆLä�S—Z‘Z Q°�ZÓ6¸ÔEÜ”W˜SŸZ™Z¨Q¸˜ZÓ>Ó?ÀÔNô �H‰H�VÓˆØ�n‰n˜QÓˆØ�7‰7�aŠ<ä˜Ÿ™¨¸˜Ó=¸qÔAÜ˜Ÿ™¨¸˜Ó=¸qÕAô —‘œz°Ö@Ø—
‘
 ¨t�
Ô4÷ Aä—‘œz°Ö@Ø—
‘
 ¨t�
Ô4÷ AÐ@÷O EÑDúçDÑDú÷F AÐ@úç@Ð@ús0   Ì$W2ÍW?ÖX×X×2W<	×?X		ØXØX!N)
rµ   r¶   r·   rö  r  r  r  r  r#  r,  ra   r<   r:   rï  rï  ¬  s/   „ ò/-òbdTòLAò@@ò@Bò;ó$T5r<   rï  c                   ó   — e Zd Zd„ Zy)Ú_TestGetNnzAxisc                 ó¨  — t        ddgddgddgg«      }|j                  t        «      }| j                  |«      }t        j
                  t        j                  f}| j                  r|j                  n|j                  }t        |j                  d ¬«       |d ¬«      «       t        |j                  «        |«       «       t        |j                  d¬«       |d¬«      «       t         |d¬«      j                  |«       t        |j                  d¬«       |d¬«      «       t         |d¬«      j                  |«       t        |j                  d	¬«       |d	¬«      «       t         |d	¬«      j                  |«       t        |j                  d
¬«       |d
¬«      «       t         |d
¬«      j                  |«       t        t        |d¬«       y )Nr   re   ró   rŽ  r1  ræ  rd  rç   rE  rè   )r   rt   r  rø   rJ   rZ   rf   r  rh  Úgetnnzr   r6  r;   r?   r  r  )r    rë   Úbool_datré   Úaccepted_return_dtypesr0  s         r:   Útest_getnnz_axisz _TestGetNnzAxis.test_getnnz_axisü  s_  € Ü�a˜�VØ˜�VØ˜!�Wðó ˆð —:‘:œdÓ#ˆØ—‘˜sÓ#ˆä"$§(¡(¬B¯H©HÐ!5Ðà(,×(:Ò(:�×$Ò$ÀÇÁˆÜ˜8Ÿ<™<¨T˜<Ó2±FÀÔ4EÔFÜ˜8Ÿ<™<›>©6«8Ô4Ü˜8Ÿ<™<¨Q˜<Ó/±¸Q´Ô@Ü‘&˜a”.×&Ñ&Ð(>Ô?Ü˜8Ÿ<™<¨Q˜<Ó/±¸Q´Ô@Ü‘&˜a”.×&Ñ&Ð(>Ô?Ü˜8Ÿ<™<¨R˜<Ó0±&¸b´/ÔBÜ‘&˜b”/×'Ñ'Ð)?Ô@Ü˜8Ÿ<™<¨R˜<Ó0±&¸b´/ÔBÜ‘&˜b”/×'Ñ'Ð)?Ô@ä”j &¨qÖ1r<   N)rµ   r¶   r·   r3  ra   r<   r:   r.  r.  û  s   „ ó2r<   r.  Tc                 ó   — |r| S d„ }t        | j                  «      }| j                  j                  «       D ]"  \  }}|j                  d«      sŒ ||«      ||<   Œ$ t	        | j
                  dz   | j                  |«      S )z…
    Construct a class that either runs tests as usual (require=True),
    or each method skips if it encounters a common error.
    c                 óB   ‡ — t        j                  ‰ «      ˆ fd„«       }|S )Nc                  ó„   •— 	  ‰| i |¤ŽS # t         t        t        t        t        f$ r t        j                  d«      ‚w xY w)Nr.  )rm  r™  r  rÀ  rù  r  r  )rN   r}   Úfcs     €r:   r„   z6_possibly_unimplemented.<locals>.wrap.<locals>.wrapper!  sF   ø€ ðAÙ˜q˜< B™<Ð'øÜ+¬Y¼
Ü"¤Nð4ò Aä Ÿ+™+Ð&?Ó@Ð@ðAús   ƒ ‹4?)r‘   r’   )r7  r„   s   ` r:   Úwrapz%_possibly_unimplemented.<locals>.wrap   s'   ø€ Ü�_‰_˜RÓ óAó !ðAð ˆNr<   Útest_ÚNotImplemented)ÚdictrG   r›  Ú
startswithrL  rµ   Ú	__bases__)r  Úrequirer8  Únew_dictr   r‚   s         r:   Ú_possibly_unimplementedr@    sz   € ñ
 Øˆ
ò		ô ˜Ÿ™Ó%ˆØŸ,™,×,Ñ,Ö.‰JˆD�$Ø�‰˜wÕ'Ù!% d£�˜’ð /ô �C—L‘LÐ#3Ñ3Ø—M‘MØóð 	r<   c	                 ó>  — t         t        t        | «      t        t        t
        t        t        |«      t        t        |«      t        t        |«      t        t        |«      t        t        |xr |«      t        t        |xr |«      t        t        |«      t        t        |«      f}	i }
|	D ]e  }|j                  D ]T  }|j                  d«      sŒ|
j!                  |«      }|�(t#        d|j$                  › d|› d|j$                  › �«      ‚||
|<   ŒV Œg t'        d|	i «      S )zˆ
    Construct a base class, optionally converting some of the tests in
    the suite to check that the feature is not implemented.
    r9  zTest class z overloads test z defined in ÚTestBase)r
  r@  râ  r  rÌ  rÙ  r  rX  rs  r©  r¿  rÈ  rï  r.  rG   r<  Úgetr  rµ   rL  )ÚgetsetÚslicingÚslicing_assignÚfancy_indexingÚfancy_assignÚfancy_multidim_indexingÚfancy_multidim_assignÚminmaxÚnnz_axisÚbasesÚnamesr  r   Úold_clss                 r:   Úsparse_test_classrP  4  s  € ô Ü$¤[°&Ó9ÜÜ#ÜÜ$¤\°7Ó;Ü$Ô%7¸ÓHÜ$Ô%7¸ÓHÜ$Ô%=Ø%1ó3ä$Ô%7Ø%3Ò%OÐ8OóQä$Ô%=Ø%:Ò%K¸|óMä$¤[°&Ó9Ü$¤_°hÓ?ðA€Eð$ €EÛˆØ—L”LˆDØ—?‘? 7Ô+ØØ—i‘i “oˆGØÐ"Ü  ;¨s¯|©|¨nÐ<LØ$( 6¨°g×6FÑ6FÐ5Gð"Ió Jð JàˆE�$ŠKñ !ð ô �
˜E 2Ó&Ð&r<   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)Ú_CompressedMixinc                 ó"  — | j                  |«      }d|_        |j                  «        |j                  sJ ‚t        |«      5  |j	                  d«       d d d «       t        j                  |j                  «       dk(  «      sJ ‚y # 1 sw Y   Œ2xY w)NFrŽ  )rø   r¥  r¦  r§  r  rJ   ÚallrÚ  rÉ  s      r:   Ú_test_setdiag_sortedz%_CompressedMixin._test_setdiag_sorteda  so   € Ø�N‰N˜1Óˆà$ˆÔØ	�‰ÔØ×#Ò#Ð#Ð#ä! !Õ$Ø�I‰I�aŒL÷ %ä�v‰v�a—j‘j“l aÑ'Ô(Ð(Ñ(÷ %Ð$ús   ÁBÂBc                 óØ   — d}t        j                  d|dz   «      }t         j                  g d¢   |z  }d}d|d| d …f<   g d¢}| j                  ||f||f¬«      }| j	                  |«      S )Néê  rç   ©rè   re   rç   ró   rz  r¾  ©r½   ©rJ   r   Úc_r  rU  )r    r…  ÚvalsÚdiagsÚN_newr¼  rÊ  s          r:   Útest_setdiag_noconvertz'_CompressedMixin.test_setdiag_noconvertl  s}   € ð ˆÜ�y‰y˜˜A ™EÓ"ˆÜ—‘’jÑ! DÑ(ˆð ˆØˆˆa�%�‘ˆjÑÚˆØ×Ñ  wÐ/¸¸1°vÐÓ>ˆØ×(Ñ(¨Ó+Ð+r<   c                 óÒ   — d}t        j                  d|dz   «      }t         j                  g d¢   |z  }d|ddd …f<   g d¢}| j                  ||f||f¬«      }| j	                  |«      S )NrW  rç   rX  rz  rŽ  r¾  rY  rZ  )r    r…  r\  r]  r¼  rÊ  s         r:   Útest_setdiag_cooconvertz(_CompressedMixin.test_setdiag_cooconvert}  ss   € ð
 ˆÜ�y‰y˜˜A ™EÓ"ˆÜ—‘’jÑ! DÑ(ˆàˆˆa�‘ˆe‰ÚˆØ×Ñ  wÐ/¸¸1°vÐÓ>ˆØ×(Ñ(¨Ó+Ð+r<   N)rµ   r¶   r·   rU  r_  ra  ra   r<   r:   rR  rR  `  s   „ ò	)ò,ó",r<   rR  c                   óÞ   — e Zd Zed„ «       Zej                  ej                  ej                  ej                  gZ
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestCSRc                 óª   — t        j                  «       5  t        j                  dt        t        «       t        |i |¤Žcd d d «       S # 1 sw Y   y xY w©Nr(  )r)  r*  r
  r  r)   r!   ©r  ÚargsrB   s      r:   rø   zTestCSR.spcreator�  ó:   € ä×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLÜ˜dÐ- fÑ-÷ '×&Ò&úó   •*A	Á	Ac                 ól  — t        g d¢g d¢g d¢gd«      }| j                  |«      }t        |j                  g d¢«       t	        |j
                  g d¢«       t	        |j                  g d¢«       t        |j                  d«       t        |j                  d	«       t	        |j                  «       |«       y )
N)r   r–  r   r  ræ  r  )r–  ró   re   r!  r  ró   r7  )r   r  r   r¹  r   r·  r¸  r   rg  rû   r™   ©r    rS   rE  s      r:   Útest_constructor1zTestCSR.test_constructor1”  s„   € Ü’9ÚÚðà"ó$ˆð × Ñ  Ó#ˆÜ! #§(¡(ª7Ô3Ü˜3Ÿ;™;¢wÔ/Ü˜3Ÿ:™:¢iÔ0Ü�S—W‘W˜QÔÜ�S—Z‘Z Ô&Ü˜3Ÿ;™;›=¨!Õ,r<   c                 ó  — t        dd«      }d|d<   | j                  |«      }t        |j                  dg«       t	        |j
                  dg«       t	        |j                  g d¢«       t        |j                  «       |«       y )N©rñ   rñ   r  rŽ  r÷  r–  )r   r   r   r   rç   rç   rç   )r   r  r   r¹  r   r·  r¸  r™   rk  s      r:   Útest_constructor2zTestCSR.test_constructor2   se   € Ü�%˜ÓˆØˆˆ#‰Ø× Ñ  Ó#ˆÜ! #§(¡(¨A¨3Ô/Ü˜3Ÿ;™;¨ sÔ+Ü˜3Ÿ:™:¢oÔ6Ü! #§+¡+£-°Õ3r<   c                 ó  — t        ddgddgddggd«      }| j                  |«      }t        |j                  g d¢«       t	        |j
                  g d¢«       t	        |j                  g d¢«       t        |j                  «       |«       y )	Nrç   r   re   ró   r  râ  r  r  )r   r  r   r¹  r   r·  r¸  r™   rk  s      r:   Útest_constructor3zTestCSR.test_constructor3©  st   € Ü�A�q�6Ø�q�6Ø�q�6ðàó!ˆð × Ñ  Ó#ˆÜ! #§(¡(ª7Ô3Ü˜3Ÿ;™;¢wÔ/Ü˜3Ÿ:™:¢iÔ0Ü! #§+¡+£-°Õ3r<   c                 ó  — t        g d¢«      }t        g d¢«      }t        g d¢«      }t        ||f«      }| j                  ||fd«      }t        t	        d«      j                  dd«      |j                  «       «       | j                  dd	gd
d	gd
d	gfft        j                  ¬«      }t        dd
gd
d	ggt        j                  ¬«      }t        ||j                  «       «       | j                  g d¢g d¢g d¢ff«      }|j                  dk(  sJ ‚y )N©re   ró   rç   ró   r   rç   ró   r   re   rç   re   ©r   rç   r   r   rç   rç   re   re   re   re   rç   ©ç      @g      $@ry  ç      "@r{  r   g      &@r|  ç       @ç      @r‘  rc  rì  r–  ró   ì           rç   r   rò   ©rç   rç   rç   rç   ©r   re   re   r   ©r   rç   rç   r   re   )
r   r	   r  r   r   rù   r™   rJ   Úuint64rg  )r    rº  r»  r¹  r'  r7  rS  s          r:   Útest_constructor4zTestCSR.test_constructor4³  sø   € äÒ5Ó6ˆÜÒ5Ó6ˆÜò 3ó 4ˆô �S˜�IÓˆØ× Ñ  $ r ¨5Ó1ˆÜœ6 "›:×-Ñ-¨a°Ó3°S·[±[³]ÔCð × Ñ  9¨a .°A°q°6¸A¸q¸6Ð2BÐ!CÌ2Ï9É9Ð ÓUˆÜ˜	 1�~¨¨1 vÐ.´b·i±iÔ@ˆÜ˜5 #§+¡+£-Ô0ð × Ñ ¢)ªiºÐ-CÐ!DÓEˆØ�w‰w˜!Š|Ð‰|r<   c                 ó¦   — t        g d¢«      }t        g d¢«      }t        g d¢«      }| j                  |||f«      }t        |j                  d«       y ©N©r   rç   ró   ró   ©r   rŽ  rç   re   rÔ  rž  )r   r  r   r½   ©r    r¸  r·  r¹  r7  s        r:   Útest_constructor5zTestCSR.test_constructor5Ç  óE   € ä’yÓ!ˆÜš	Ó"ˆÜ’YÓˆØ× Ñ  $¨°Ð!8Ó9ˆÜ˜3Ÿ9™9 UÕ+r<   c                 óÞ   — g d¢}g d¢}g d¢}| j                  |||f«      }t        |j                  d«       t        t	        j
                  |j                  t        j                  «      «       y r�  )r  r   r½   r   rJ   rl   r?   Úsignedintegerr„  s        r:   Útest_constructor6zTestCSR.test_constructor6Ï  sS   € âˆÚˆÚˆØ× Ñ  $¨°Ð!8Ó9ˆÜ˜3Ÿ9™9 eÔ,Ü”—‘˜cŸi™i¬×)9Ñ)9Ó:Õ;r<   c                 ó  — t        d«      dz   }t        g d¢t        j                  ¬«      }t        g d¢t        j                  ¬«      }| j	                  |||fd¬«      }t        g d¢g d	¢g d
¢gd«      }t        j
                  | j                  rt        j                  nt        j                  «      }t        |j                  j
                  |«       t        |j                  j
                  |«       t        |j                  «       |«       y )Nrñ   rç   )rç   re   rç   r   r   re   rò   ©r   re   r–  rñ   r`  rY  r.  rå  )rŽ  r   rñ   r  )r   r   rJ   rf   r  r?   r  rZ   r   r¸  r·  r   r™   )r    r¹  r»  ÚptrrN   rS   Úexpected_dtypes          r:   Útest_constructor_smallcolz!TestCSR.test_constructor_smallcolØ  s¼   € ä�a‹y˜1‰}ˆÜÒ&¬b¯h©hÔ7ˆÜ’L¬¯©Ô1ˆà×Ñ  c¨3Ð/°vÐÓ>ˆä’9ÚÚðà"ó$ˆô
 Ÿ™¨d×.@Ò.@¤"§(¢(ÄbÇhÁhÓOˆÜ�Q—X‘X—^‘^ ^Ô4Ü�Q—Y‘Y—_‘_ nÔ5Ü˜1Ÿ9™9›;¨Õ*r<   c           	      ó|  — t        d«      dz   }t        j                  t        j                  «      j                  dz   }t        ddd||dz   |dz   gt        j                  ¬«      }t        g d¢t        j                  ¬«      }| j                  |||f«      }t        |j                  j                  t        j                  t        j                  «      «       t        |j                  j                  t        j                  t        j                  «      «       t        |j                  dt	        |«      dz   f«       y )	Nrñ   rç   rh  r   re   rò   r‹  ró   )r   rJ   rX   rZ   rY   r   rf   r  r   r¸  r?   r·  r   r½   )r    r¹  Úlarger»  rŒ  rN   s         r:   Útest_constructor_largecolz!TestCSR.test_constructor_largecolê  sÐ   € ä�a‹y˜1‰}ˆÜ—‘œŸ™Ó"×&Ñ&¨Ñ,ˆÜ�Q˜˜1˜e U¨1¡W¨e°A©gÐ6¼b¿h¹hÔGˆÜ’L¬¯©Ô1ˆà×Ñ  c¨3Ð/Ó0ˆä�Q—X‘X—^‘^¤R§X¡X¬b¯h©hÓ%7Ô8Ü�Q—Y‘Y—_‘_¤b§h¡h¬r¯x©xÓ&8Ô9Ü˜1Ÿ7™7 Q¬¨C«°©
 OÕ4r<   c                 ó:  — t        d«      }t        g d¢«      }t        g d¢«      }| j                  |||fd¬«      }|j                  «       }|j	                  «        t        |j                  g d¢«       t        |j                  «       |j                  «       «       y )NrŽ  ©rä  re   rç   rŽ  r–  ©r   ró   rŽ  ©re   rV   rY  ©rç   re   rä  r–  rŽ  )r   r   r  r,  r¦  r   r·  r™   ©r    r¹  r·  r¸  rD  rE  s         r:   Útest_sort_indiceszTestCSR.test_sort_indices÷  sv   € Ü�a‹yˆÜšÓ(ˆÜ’yÓ!ˆØ× Ñ  $¨°Ð!8ÀÐ ÓGˆØ�h‰h‹jˆØ×ÑÔÜ˜3Ÿ;™;¢Ô7Ü˜3Ÿ;™;›=¨#¯+©+«-Õ8r<   c                 ój  — t        g d¢«      }t        g d¢«      }t        g d¢«      }| j                  |||fd¬«      }|j                  «       }|j                  «        t	        |j
                  d«       t	        |j                  g d¢«       t	        |j                  «       |j                  «       «       y )N©rç   r   r   r   re   r   ró   r   ©rç   re   ró   r–  rŽ  rñ   rä  rå  ©r   ró   rå  r•  rY  ró   râ  )r   r  r,  Úeliminate_zerosr   rg  r¹  r™   r—  s         r:   Útest_eliminate_zeroszTestCSR.test_eliminate_zeros  ó‡   € ÜÒ-Ó.ˆÜÒ0Ó1ˆÜ’yÓ!ˆØ× Ñ  $¨°Ð!8ÀÐ ÓGˆØ�h‰h‹jˆØ×ÑÔÜ˜3Ÿ7™7 AÔ&Ü˜3Ÿ8™8¢IÔ.Ü˜3Ÿ;™;›=¨#¯+©+«-Õ8r<   c           	      ó  — | j                  t        j                  d«      j                  dd«      dz  «      }dD ]Ï  }t	        t        | j                  |«      d«        t        ||«      «       }t	        |j                  |j                  «       t        |j                  |j                  «       t        |j                  |j                  «       t        |j                  «        t        t        |«      |j                  «       «      «       ŒÑ y )Nrò  r–  rŽ  r£  ©r§  r¨  r©  rª  r«  r¬  r­  r®  r¯  r¢  r°  r±  r²  r³  r´  rµ  r¶  r·  T)r  rJ   r   rù   r   rÀ  ré   r{   r½   r   r·  r¸  r™   ©r    r]  r¨  r¦  s       r:   Útest_ufuncszTestCSR.test_ufuncs  ó¹   € Ø×ÑœrŸy™y¨›}×4Ñ4°Q¸Ó:¸SÑ@ÓAˆóJˆAô œ §¡¨QÓ/°Ô6Ø”˜˜A““ˆBÜ˜Ÿ™ "§(¡(Ô+Ü˜qŸy™y¨"¯*©*Ô5Ü˜qŸx™x¨¯©Ô3Ü˜rŸz™z›|¨^¬W´R¸«^¸A¿I¹I»KÓ-HÕIñJr<   c                 óh  — t        d«      }t        g d¢«      }t        g d¢«      }| j                  |||fd¬«      }t        d«      }t        g d¢«      }t        g d¢«      }| j                  |||fd¬«      }t        ||z   j	                  «       |j	                  «       |j	                  «       z   «       y )	NrŽ  r“  r”  r•  rY  rñ   ©rå  rç   rŽ  rä  re   r–  ©r   re   rñ   )r   r   r  r   r™   r—  s         r:   Útest_unsorted_arithmeticz TestCSR.test_unsorted_arithmetic  ó�   € Ü�a‹yˆÜšÓ(ˆÜ’yÓ!ˆØ× Ñ  $¨°Ð!8ÀÐ ÓGˆÜ�a‹yˆÜÒ*Ó+ˆÜ’yÓ!ˆØ× Ñ  $¨°Ð!8ÀÐ ÓGˆÜ�c˜C‘i×(Ñ(Ó*¨C¯K©K«M¸C¿K¹K»MÑ,IÕJr<   c                 óŒ  — t        j                  dgdgdgg«      }t        j                  g d¢«      }t         j                  j                  d«       | j	                  t         j                  j                  dd«      «      }| j                  |«      }|||f   }t        |«      r|j                  «       }t        ||||f   «       y ©Nrç   re   ró   rÁ  rc   rŽ  rä  ©
rJ   r   r”   r  r  r9  rø   r(   r™   r   ©r    r  rû  rÊ  r›  r€  s         r:   Útest_fancy_indexing_broadcastz%TestCSR.test_fancy_indexing_broadcast#  ó–   € ä�H‰H�q�c˜A˜3  �_Ó%ˆÜ�H‰H’YÓˆä
�	‰	�‰�tÔØ�L‰LœŸ™Ÿ™¨¨1Ó-Ó.ˆØ�N‰N˜1Óˆà��!�‰fˆÜ�CŒ=Ø—+‘+“-ˆCÜ�S˜!˜A˜a˜C™&Õ!r<   c                 óB  — t        j                  ddg«      }t        j                  ddg«      }t        j                  ddg«      }t        j                  ddg«      }| j                  |||f«      j                  «       }t	        d|j
                  «       t        |j
                  t        «      sJ ‚| j                  |||f«      j                  «       }t	        d|j
                  «       |j                  «        t	        d|j
                  «       t        |j                  |«       | j                  |||f«      j                  «       }d|_        t	        d|j
                  «       t        |j                  |«       |j                  «        t        |j                  |«       y)z@Ensure has_sorted_indices memoizes sorted state for sort_indicesr   rç   re   TFN)rJ   r   r  r,  r   r¥  rI   r  r¦  r   r·  )r    Úsorted_indsÚunsorted_indsr¹  r¸  r‚  s         r:   Útest_has_sorted_indiceszTestCSR.test_has_sorted_indices1  sJ  € ä—h‘h  1˜vÓ&ˆÜŸ™ ! Q Ó(ˆÜ�x‰x˜˜A˜ÓˆÜ—‘˜1˜a˜&Ó!ˆØ×Ñ  k°6Ð:Ó;×@Ñ@ÓBˆÜ�T˜1×/Ñ/Ô0Ü˜!×.Ñ.´Ô5Ð5Ð5à×Ñ  m°VÐ<Ó=×BÑBÓDˆÜ�U˜A×0Ñ0Ô1ð 	
�‰ÔÜ�T˜1×/Ñ/Ô0Ü˜1Ÿ9™9 kÔ2à×Ñ  m°VÐ<Ó=×BÑBÓDˆà#ˆÔÜ�T˜1×/Ñ/Ô0Ü˜1Ÿ9™9 mÔ4ð 	
�‰ÔÜ˜1Ÿ9™9 mÕ4r<   c                 ó€	  — t        j                  dg«      t        j                  dg«      t        j                  ddg«      f}t        j                  ddg«      t        j                  ddg«      t        j                  ddg«      f}| j                  |«      }t        d|j                  «       | j                  |«      j                  «       }t        d|j                  «       t        |j                  t        «      sJ ‚|j                  «        t        d|j                  «       t        dt        |j                  «      «       | j                  |«      j                  «       }d|_        t        d|j                  «       t        dt        |j                  «      «       |j                  «        t        dt        |j                  «      «       d|_        |j                  «        t        dt        |j                  «      «       t        d|j                  «       d|_        t        d|j                  «       | j                  |j                  |j                  |j                  f«      }t        d|j                  «       |j                  «        t        d|j                  «       | j                  t        j                  dg«      t        j                  dg«      t        j                  g d¢«      f«      }t        |j                  d«       t        j                  «       5  t        j                   dt"        t$        «       d|d	<   |dd
d
…fxx   dz  cc<   d|d<   d
d
d
«       t        d|j                  «       | j                  |j                  |j                  |j                  f«      }t        d|j                  «       | j                  |«      }|\  |_        |_
        |_        t        d|j                  «       t        dt        |j                  «      «       | j                  |«      }|j                   |\  |_        |_
        |_        t        d|j                  «       t        dt        |j                  «      «       |j                  «        t        dt        |j                  «      «       y
# 1 sw Y   �ŒZxY w)ú=Ensure has_canonical_format memoizes state for sum_duplicatesre   r   rç   TF)r   rç   rç   rç   r`  r(  r5  NrŽ  ró   r  )rJ   r   r  r   Úhas_canonical_formatr,  rI   r  Úsum_duplicatesrÂ   r·  r¹  r¸  r½   r)  r*  r
  r  r)   )r    Úinfo_no_dupsÚinfo_with_dupsr‚  ÚMchecks        r:   Útest_has_canonical_formatz!TestCSR.test_has_canonical_formatM  s�  € ô Ÿ™ ! ›¤r§x¡x°°£}´b·h±hÀÀ1¸vÓ6FÐGˆÜŸ(™( A q 6Ó*¬B¯H©H°a¸°VÓ,<¼b¿h¹hÈÈ1ÀvÓ>NÐOˆà×Ñ˜|Ó,ˆÜ�T˜1×1Ñ1Ô2à×Ñ˜~Ó.×3Ñ3Ó5ˆÜ�U˜A×2Ñ2Ô3Ü˜!×0Ñ0´$Ô7Ð7Ð7ð 	
×ÑÔÜ�T˜1×1Ñ1Ô2Ü�Qœ˜AŸI™I›Ô'ð ×Ñ˜~Ó.×3Ñ3Ó5ˆØ!%ˆÔÜ�T˜1×1Ñ1Ô2Ü�Qœ˜AŸI™I›Ô'à	×ÑÔÜ�Qœ˜AŸI™I›Ô'à!&ˆÔØ	×ÑÔÜ�Qœ˜AŸI™I›Ô'Ü�T˜1×1Ñ1Ô2ð "'ˆÔÜ�U˜A×2Ñ2Ô3Ø×#Ñ# Q§V¡V¨Q¯Y©Y¸¿¹Ð$AÓBˆÜ�T˜6×6Ñ6Ô7à	×ÑÔÜ�T˜1×1Ñ1Ô2ð ×Ñ¤§¡¨!¨£¬r¯x©x¸¸«}¼b¿h¹hÂ|Ó>TÐUÓVˆÜ�Q—W‘W˜fÔ%Ü×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLØˆAˆd‰GØˆa’ˆd‹G�q‰L‹GØˆAˆd‰G÷	 'ô
 	�T˜1×1Ñ1Ô2Ø×#Ñ# Q§V¡V¨Q¯Y©Y¸¿¹Ð$AÓBˆÜ�T˜6×6Ñ6Ô7ð ×Ñ˜|Ó,ˆØ&4Ñ#ˆŒ�”	˜1œ8Ü�U˜A×2Ñ2Ô3Ü�Qœ˜AŸI™I›Ô'ð ×Ñ˜|Ó,ˆØ	×ÒØ&4Ñ#ˆŒ�”	˜1œ8Ü�T˜1×1Ñ1Ô2Ü�Qœ˜AŸI™I›Ô'Ø	×ÑÔÜ�Qœ˜AŸI™I›Õ'÷- 'Ñ&ús   Ì ;R3Ò3R=c                 óH  — t        j                  dt         j                  ¬«      }t        j                  dt         j                  ¬«      }t        j                  d«      }| j                  |||fd¬«      }| j                  |||fd¬«      }t        j                  dt         j                  ¬«      }| j                  ||fd¬«      }| j                  ||fd¬«      }| j                  d«      }	| j                  d«      }
t	        |j
                  j                  t         j                  «       t	        |j
                  j                  t         j                  «       t	        |j
                  j                  t         j                  «       t	        |j
                  j                  t         j                  «       t	        |	j
                  j                  t         j                  «       t	        |
j
                  j                  t         j                  «       |||||	|
fD ]  }||z    Œ	 y )Nre   rò   r   ©rç   éÿÿÿrY  ©rç   ì        r  )rJ   r   rZ   r  r   r¸  r?   rf   ©r    r¸  r·  r\  rN   rS   r'  r¦  r  r§  r¨  r@   s               r:   Útest_scalar_idx_dtypezTestCSR.test_scalar_idx_dtype‘  ó{  € ô —‘˜!¤2§8¡8Ô,ˆÜ—(‘(˜1¤B§H¡HÔ-ˆÜ�x‰x˜‹{ˆØ×Ñ  g¨vÐ6¸lÐÓKˆØ×Ñ  g¨vÐ6¸jÐÓIˆÜ�X‰X�f¤B§H¡HÔ-ˆØ×Ñ  b˜z°ÐÓ>ˆØ×Ñ  b˜z°ÐÓ<ˆØ×Ñ˜|Ó,ˆØ×Ñ˜zÓ*ˆÜ�Q—X‘X—^‘^¤R§X¡XÔ.Ü�Q—X‘X—^‘^¤R§X¡XÔ.Ü�Q—X‘X—^‘^¤R§X¡XÔ.Ü�Q—X‘X—^‘^¤R§X¡XÔ.Ü�Q—X‘X—^‘^¤R§X¡XÔ.Ü�Q—X‘X—^‘^¤R§X¡XÔ.ð �Q˜˜1˜a Ó#ˆAØ�‹Eñ $r<   c                 ó¼   — | j                  g d¢g«      }| j                  g d¢g«      }||z   j                  dk(  sJ ‚|j                  |«      j                  dk(  sJ ‚y )Nr  ©rç   rç   r   re   rç   )r  rg  rí  ©r    rN   rS   s      r:   Útest_binop_explicit_zerosz!TestCSR.test_binop_explicit_zeros©  sZ   € ð ×Ñ¢	˜{Ó+ˆØ×Ñ¢	˜{Ó+ˆØ�A‘�{‰{˜aÒÐÐØ�z‰z˜!‹}× Ñ  AÒ%Ð%Ñ%r<   N)rµ   r¶   r·   rÈ  rø   rJ   rð  Úint_rô   r÷   r  rl  ro  rq  r  r…  r‰  rŽ  r‘  r˜  rž  r£  r¨  r®  r³  r»  rÂ  rÇ  ra   r<   r:   rc  rc  Œ  s�   „ Øñ.ó ð.ð —8‘8˜RŸW™W b§j¡j°"·-±-Ð@€Kò
-ò4ò4òò(,ò<ò+ò$5ò9ò	9ò
Jò	Kò"ò5ò8B(òHó0&r<   rc  c                   ó   — e Zd Zed„ «       Zy)ÚTestCSRMatrixc                 óª   — t        j                  «       5  t        j                  dt        t        «       t        |i |¤Žcd d d «       S # 1 sw Y   y xY wre  )r)  r*  r
  r  r)   r   rf  s      r:   rø   zTestCSRMatrix.spcreator¶  ó:   € ä×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLÜ˜tÐ. vÑ.÷ '×&Ò&úri  N©rµ   r¶   r·   rÈ  rø   ra   r<   r:   rÊ  rÊ  µ  ó   „ Øñ/ó ñ/r<   rÊ  c                  ó¾   — t         t        j                     } t        | t        «      sJ ‚| j
                  t         u sJ ‚| j                  t        j                  fk(  sJ ‚y r>   )r   rJ   r   rI   r   Ú
__origin__Ú__args__©rN  s    r:   Útest_spmatrix_subscriptablerÓ  ¼  sL   € ÜœŸ™Ñ €FÜ�fœlÔ+Ð+Ð+Ø×Ñ¤
Ñ*Ð*Ð*Ø�?‰?œrŸw™w˜jÒ(Ð(Ñ(r<   c                   óÀ   — e Zd Zed„ «       Zej                  ej                  ej                  ej                  gZ
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zy)ÚTestCSCc                 óª   — t        j                  «       5  t        j                  dt        t        «       t        |i |¤Žcd d d «       S # 1 sw Y   y xY wre  )r)  r*  r
  r  r)   r    rf  s      r:   rø   zTestCSC.spcreatorÇ  rh  ri  c                 óx  — t        g d¢g d¢g d¢gd«      }| j                  |«      }t        |j                  g d¢«       t	        |j
                  g d¢«       t	        |j                  g d¢«       t        |j                  d«       t        |j                  |j                  «       t        |j                  d	«       y )
N©rç   r   r   r   r  ©r   re   r   ró   r  )rç   re   rç   ró   )r   re   rç   re   r   r–  r6  )r   r  r   r¹  r   r·  r¸  r   rg  r½   rû   rk  s      r:   rl  zTestCSC.test_constructor1Î  s}   € Ü’<¢ª|Ð<¸cÓBˆØ× Ñ  Ó#ˆÜ! #§(¡(ª9Ô5Ü˜3Ÿ;™;¢yÔ1Ü˜3Ÿ:™:¢kÔ2Ü�S—W‘W˜QÔÜ�S—Y‘Y˜qŸw™wÔ'Ü�S—Z‘Z Õ&r<   c                 óÔ   — t        dd«      }d|d<   | j                  |«      }t        |j                  dg«       t	        |j
                  dg«       t	        |j                  g d¢«       y )Nrn  r  rŽ  ©re   r–  re   )r   r   r   r   r   rç   rç   )r   r  r   r¹  r   r·  r¸  rk  s      r:   ro  zTestCSC.test_constructor2Ø  sU   € Ü�%˜ÓˆØˆˆ#‰Ø× Ñ  Ó#ˆÜ! #§(¡(¨A¨3Ô/Ü˜3Ÿ;™;¨ sÔ+Ü˜3Ÿ:™:¢oÕ6r<   c                 óà   — t        ddgddgddggd«      }| j                  |«      }t        |j                  ddg«       t	        |j
                  ddg«       t	        |j                  g d¢«       y )Nrç   r   re   r  r.  )r   r  r   r¹  r   r·  r¸  rk  s      r:   rq  zTestCSC.test_constructor3à  sc   € Ü�A�q�6˜A˜q˜6 A q 6Ð*¨CÓ0ˆØ× Ñ  Ó#ˆÜ! #§(¡(¨A¨a¨5Ô1Ü˜3Ÿ;™;¨¨! uÔ-Ü˜3Ÿ:™:¢gÕ.r<   c                 óR  — t        g d¢«      }t        g d¢«      }t        g d¢«      }t        ||f«      }| j                  ||fd«      }t        t	        d«      j                  dd«      |j                  «       «       | j                  g d¢g d	¢g d
¢ff«      }|j                  dk(  sJ ‚y )Nrs  rt  ru  rc  rì  r–  ró   r{  r|  r}  re   )r   r	   r  r   r   rù   r™   rg  )r    rº  r»  r¹  r'  r6  s         r:   r  zTestCSC.test_constructor4ç  s”   € äÒ5Ó6ˆÜÒ5Ó6ˆÜÒCÓDˆä�S˜�IÓˆØ× Ñ  $ r ¨5Ó1ˆÜœ6 "›:×-Ñ-¨a°Ó3°S·[±[³]ÔCð × Ñ ¢)ªiºÐ-CÐ!DÓEˆØ�w‰w˜!Š|Ð‰|r<   c                 ó¦   — t        g d¢«      }t        g d¢«      }t        g d¢«      }| j                  |||f«      }t        |j                  d«       y ©Nr‚  rƒ  rÔ  )rñ   ró   )r   r  r   r½   ©r    r¸  r·  r¹  r6  s        r:   r…  zTestCSC.test_constructor5õ  r†  r<   c                 óÞ   — g d¢}g d¢}g d¢}| j                  |||f«      }t        |j                  d«       t        t	        j
                  |j                  t        j                  «      «       y rß  )r  r   r½   r   rJ   rl   r?   rˆ  rà  s        r:   r‰  zTestCSC.test_constructor6ý  sS   € âˆÚˆÚˆØ× Ñ  $¨°Ð!8Ó9ˆÜ˜3Ÿ9™9 UÔ+Ü”—‘˜cŸi™i¬×)9Ñ)9Ó:Õ;r<   c                 ój  — t        g d¢«      }t        g d¢«      }t        g d¢«      }| j                  |||fd¬«      }|j                  «       }|j                  «        t	        |j
                  d«       t	        |j                  g d¢«       t	        |j                  «       |j                  «       «       y )Nrš  r›  rœ  ©rV   re   rY  ró   râ  )r   r  r,  r�  r   rg  r¹  r™   r—  s         r:   rž  zTestCSC.test_eliminate_zeros  rŸ  r<   c                 ó(  — t        d«      }t        g d¢«      }g d¢}| j                  |||fd¬«      }|j                  «       }|j	                  «        t        |j                  g d¢«       t        |j                  «       |j                  «       «       y )NrŽ  r“  r”  rã  rY  r–  )r   r   r  r,  r¦  r   r·  r™   )r    r¹  rº  rŒ  rD  rE  s         r:   r˜  zTestCSC.test_sort_indices  sq   € Ü�a‹yˆÜ’OÓ$ˆÚˆØ× Ñ  $¨¨SÐ!1¸Ð Ó@ˆØ�h‰h‹jˆØ×ÑÔÜ˜3Ÿ;™;¢Ô7Ü˜3Ÿ;™;›=¨#¯+©+«-Õ8r<   c           	      ó  — | j                  t        j                  d«      j                  dd«      dz  «      }dD ]Ï  }t	        t        | j                  |«      d«        t        ||«      «       }t	        |j                  |j                  «       t        |j                  |j                  «       t        |j                  |j                  «       t        |j                  «        t        t        |«      |j                  «       «      «       ŒÑ y )Né   rä  ró   g      5@r¡  T)r  rJ   r   rù   r   rÀ  ré   r{   r½   r   r·  r¸  r™   r¢  s       r:   r£  zTestCSC.test_ufuncs  r¤  r<   c                 óh  — t        d«      }t        g d¢«      }t        g d¢«      }| j                  |||fd¬«      }t        d«      }t        g d¢«      }t        g d¢«      }| j                  |||fd¬«      }t        ||z   j	                  «       |j	                  «       |j	                  «       z   «       y )	NrŽ  r“  r”  rã  rY  rñ   r¦  r§  )r   r   r  r   r™   r—  s         r:   r¨  z TestCSC.test_unsorted_arithmetic'  r©  r<   c                 óŒ  — t        j                  dgdgdgg«      }t        j                  g d¢«      }t         j                  j                  d«       | j	                  t         j                  j                  dd«      «      }| j                  |«      }|||f   }t        |«      r|j                  «       }t        ||||f   «       y r«  r¬  r­  s         r:   r®  z%TestCSC.test_fancy_indexing_broadcast2  r¯  r<   c                 óH  — t        j                  dt         j                  ¬«      }t        j                  dt         j                  ¬«      }t        j                  d«      }| j                  |||fd¬«      }| j                  |||fd¬«      }t        j                  dt         j                  ¬«      }| j                  ||fd¬«      }| j                  ||fd¬«      }| j	                  d«      }	| j	                  d	«      }
t        |j                  j                  t         j                  «       t        |j                  j                  t         j                  «       t        |j                  j                  t         j                  «       t        |j                  j                  t         j                  «       t        |	j                  j                  t         j                  «       t        |
j                  j                  t         j                  «       |||||	|
fD ]  }||z    Œ	 y )
Nre   rò   r   )r¾  rç   rY  )rÀ  rç   r  r½  r¿  )	rJ   r   rZ   r  r  r   r¸  r?   rf   rÁ  s               r:   rÂ  zTestCSC.test_scalar_idx_dtype@  rÃ  r<   N)rµ   r¶   r·   rÈ  rø   rJ   rð  rÈ  rô   r÷   r  rl  ro  rq  r  r…  r‰  rž  r˜  r£  r¨  r®  rÂ  ra   r<   r:   rÕ  rÕ  Æ  sr   „ Øñ.ó ð.ð —8‘8˜RŸW™W b§j¡j°"·-±-Ð@€Kò'ò7ò/òò,ò<ò	9ò9ò
Jò	Kò"ór<   rÕ  c                   ó   — e Zd Zed„ «       Zy)ÚTestCSCMatrixc                 óª   — t        j                  «       5  t        j                  dt        t        «       t        |i |¤Žcd d d «       S # 1 sw Y   y xY wre  )r)  r*  r
  r  r)   r   rf  s      r:   rø   zTestCSCMatrix.spcreator]  rÌ  ri  NrÍ  ra   r<   r:   rë  rë  \  rÎ  r<   rë  c                   óz   — e Zd ZeZej                  ej                  ej                  gZ	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zy)r  c                 óâ   — | j                  d«      }d|d<   d|d<   ||j                  z  }||j                  j                  «       z  }t        |j	                  «       |j	                  «       «       y )N)rV   rì  rV   rC  rò  ©rŽ  rñ   )r  r?  r   r   r™   )r    rQ   rÊ  rø  s       r:   Ú	test_multzTestDOK.test_multk  s[   € Ø×Ñ˜xÓ(ˆØˆˆ$‰Øˆˆ$‰Ø�—‘‰GˆØ�—‘—‘“ÑˆÜ˜1Ÿ9™9›;¨¯	©	«Õ4r<   c                 óè   — | j                  d«      }d|d<   d|d<   |dz   }t        ddgddgddgg«      }t        |j                  «       |«       |d	z   }|d	z   }t        |j                  «       |«       y )
Nr½  éöÿÿÿr5  rò  r  rV   r   ró  ro  )rø   r   r   r™   r&  s      r:   Útest_add_nonzerozTestDOK.test_add_nonzeros  sz   € Ø�N‰N˜5Ó!ˆØˆˆ#‰Øˆˆ#‰Ø�‰FˆÜ�B˜�7˜R ˜H r¨2 hÐ/Ó0ˆÜ˜1Ÿ9™9›;¨Ô*à�‰FˆØ�‰FˆÜ˜1Ÿ9™9›;¨Õ*r<   c                 óò   — | j                  d«      }d|d<   d|d<   t        |dz  j                  «       |j                  «       dz  «       t        |dz  j                  «       |j                  «       dz  «       y ©Nr½  rò  r5  rò  r  ro  ræ  ©rø   r   r™   r³  s     r:   Útest_dok_divide_scalarzTestDOK.test_dok_divide_scalar  s_   € Ø�N‰N˜5Ó!ˆØˆˆ#‰Øˆˆ#‰ä˜A˜b™DŸ>™>Ó+¨Q¯Y©Y«[¸©^Ô<Ü˜A˜a™CŸ=™=›?¨A¯I©I«K¸©MÕ:r<   c                 óp  — d\  }}| j                  ||f«      }d|d<   d|d<   d|d<   d|d	<   d
|d<   d|d<   t        |j                  «       d d …|dz
  f   t        |«      «       |j	                  «       }t        |j                  «       d d …|dz
  f   t        |«      «       ||}}|j                  «       }t        |j                  ||f«       t        |j                  «       |dz
  d d …f   t        |«      «       |j                  «       }t        |j                  «       |dz
  d d …f   t        |«      «       y )N)rñ   rä  rç   rC  re   r  ró   rW  r–  r  rŽ  rc  rñ   rK  )	r  r   r™   r   r¢  r   r   r½   r£  )r    r©  r  rN   r6  rS   r7  s          r:   Útest_convertzTestDOK.test_convert‡  s  € à‰ˆˆAØ×Ñ  1˜vÓ&ˆð ˆˆ#‰Øˆˆ#‰Øˆˆ#‰Øˆˆ#‰Øˆˆ#‰Øˆˆ#‰ô 	˜1Ÿ9™9›;¢q¨¨1© uÑ-¬u°Q«yÔ9ð �g‰g‹iˆÜ˜3Ÿ;™;›=ª¨1¨Q©3¨Ñ/´°q³Ô;ð �QˆAˆØ�K‰K‹MˆÜ�Q—W‘W˜q !˜fÔ%ä˜1Ÿ9™9›; q¨¡sª1 uÑ-¬u°Q«yÔ9ð �g‰g‹iˆÜ˜3Ÿ;™;›=¨¨1©ªQ¨Ñ/´°q³Õ;r<   c                 ó„  — t        t        | j                  «       t        g d¢g d¢g d¢gd«      }| j                  |«      }t	        |j
                  |j
                  «       t	        |j                  «       |«       | j                  |«      }t	        |j                  «       |j                  «       «       g d¢g d¢g}| j                  |t        j                  ¬«      }t	        |j
                  t        j                  «       |j                  «       }t	        |j
                  t        j                  «       t        ||«       y )NrØ  r  rÙ  r  r.  r  rò   )r  r™  r  r   r   r?   r™   r  rJ   rö   r   )r    rS   rQ   r¦  r¹  r  Údas          r:   Ú	test_ctorzTestDOK.test_ctor¦  sÝ   € ä”i ×!3Ñ!3Ô4ô ’<¢ª|Ð<¸cÓBˆØ×Ñ˜qÓ!ˆÜ�Q—W‘W˜aŸg™gÔ&Ü�Q—Y‘Y“[ !Ô$ð ×Ñ˜qÓ!ˆÜ�Q—Y‘Y“[ !§)¡)£+Ô.âš9Ð%ˆØ×Ñ˜t¬2¯:©:ÐÓ6ˆÜ�Q—W‘WœbŸj™jÔ)Ø�Y‰Y‹[ˆÜ�R—X‘XœrŸz™zÔ*Ü˜2˜tÕ$r<   c                 óè   — | j                  d«      }d|d<   t        d|j                  «       vd«       | j                  d«      }d|d d …df<   t        t        |j                  «       «      dk(  d«       y )Nr`  r   rØ  zUnexpected entry (0,0) in keyszUnexpected entries in keys)r  r   ÚkeysrÂ   rÆ  s      r:   Útest_ticket1160zTestDOK.test_ticket1160»  sl   € à×Ñ˜uÓ%ˆØˆˆ#‰ô 	�˜QŸV™V›XÐ%Ð'GÔHð ×Ñ˜uÓ%ˆØˆŠ!ˆAˆ#‰Ü”�A—F‘F“H“ Ñ"Ð$@ÕAr<   N)rµ   r¶   r·   r"   rø   rJ   rÈ  rô   r÷   r  rð  ró  r÷  rù  rü  rÿ  ra   r<   r:   r  r  g  s>   „ Ø€IØ—7‘7˜BŸJ™J¨¯©Ð6€Kò5ò
+ò;ò<ò>%ó*Br<   r  )rK  rL  c                   ó   — e Zd ZeZy)ÚTestDOKMatrixN)rµ   r¶   r·   r   rø   ra   r<   r:   r  r  É  ó   „ Ø�Ir<   r  c                   óŒ   — e Zd ZeZej                  ej                  ej                  gZ	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zy
)ÚTestLILc                 óØ  — t        dt        j                  «      }d|d<   d|d<   | j                  dt        j                  ¬«      }d|d<   d|d<   t	        j
                  «       dk7  r4t        ||j                  z  ||j                  z  j                  «       «       t        ||j                  «       j                  z  ||j                  «       j                  z  j                  «       «       y )N©rV   rV   rV   rC  y              4@rï  rò   Úppc64le)
r   rJ   r÷   r  ÚplatformÚmachiner   r?  r™   r   r&  s      r:   Útest_dotzTestLIL.test_dotÕ  s¶   € Ü�(œBŸM™MÓ*ˆØˆˆ$‰Øˆˆ$‰à×Ñ˜x¬r¯}©}ÐÓ=ˆØˆˆ$‰Øˆˆ$‰ô ×ÑÓ Ò*Ü˜q 1§3¡3™w¨¨Q¯S©S©×(9Ñ(9Ó(;Ô<ä˜1˜qŸ{™{›}Ÿ™Ñ.°°Q·[±[³]·_±_Ñ1D×0MÑ0MÓ0OÕPr<   c                 ó€   — | j                  d«      }d|d<   |dz  }t        |d   d«       |dz  }t        |d   d«       y )Nr`  re   rØ  r–  r   )r  r   )r    r@   s     r:   Útest_scalar_mulzTestLIL.test_scalar_mulä  sI   € Ø×Ñ˜vÓ&ˆØˆˆ$‰àˆa‰CˆÜ�Q�t‘W˜aÔ àˆa‰CˆÜ�Q�t‘W˜aÕ r<   c                 óò   — | j                  d«      }d|d<   d|d<   t        |dz  j                  «       |j                  «       dz  «       t        |dz  j                  «       |j                  «       dz  «       y rõ  rö  r³  s     r:   Útest_truediv_scalarzTestLIL.test_truediv_scalarî  sc   € Ø�N‰N˜6Ó"ˆØˆˆ$‰Øˆˆ$‰ä˜A ™F×+Ñ+Ó-¨q¯y©y«{¸RÑ/?Ô@Ü˜A ™EŸ?™?Ó,¨a¯i©i«k¸A©oÕ>r<   c                 ó2  — | j                  g d¢g d¢g«      }| j                  g d¢g d¢g«      }|||z   f|||z
  fd|dz  fdœ}|j                  «       D ]V  \  }\  }}|j                  «       } t        |d|› d�«      |«       t	        |j                  «       |j                  «       «       ŒX | j                  dt        j                  d	«      ¬
«      }| j                  g d¢«      }|dd d …fxx   |z  cc<   t	        |dd d …f   j                  «       |«       y )N©r   re   ró   r  r  ró   )ÚaddÚsubÚmulÚ__iÚ__rB  rô   rò   )çš™™™™™¹?r  r  r   )	r  r›  r,  r{   r   r™   rJ   r?   r  )r    rQ   rR   r¹  ÚoprÑ   rq  rN  s           r:   Útest_inplace_opszTestLIL.test_inplace_opsö  s  € Ø×Ñ¢	ª9Ð5Ó6ˆØ×Ñ¢	ª9Ð5Ó6ˆà˜1˜q™5�zØ˜1˜q™5�zØ˜1˜q™5�zñ#ˆð &*§Z¡Z¦\Ñ!ˆBÑ!�˜Ø—V‘V“XˆFØ)ŒG�F˜c "  R˜LÓ)¨%Ô0ä˜vŸ~™~Ó/°×1AÑ1AÓ1CÕDð	 &2ð ×Ñ˜v¬R¯X©X°iÓ-@ÐÓAˆØ�L‰LšÓ)ˆØ	ˆ!ŠQˆ$‹�1‰‹Ü˜1˜Q¢˜T™7Ÿ?™?Ó,¨aÕ0r<   c                 óÒ   — g d¢g d¢g}| j                  t        |«      «      }t        |«      D ]7  \  }}t        |j	                  «       t        ||   |j
                  ¬«      «       Œ9 y )Nrâ  rã  )Úndmin)r  r   r<  r   r™   rÃ   )r    Úrow_datarR   r  rº  s        r:   Útest_lil_iterationzTestLIL.test_lil_iteration
  sQ   € ÚšyÐ)ˆØ×Ñœu X›Ó/ˆÜ –l‰FˆAˆsÜ˜sŸ{™{›}¬e°H¸Q±KÀsÇxÁxÔ.PÕQñ #r<   c                 óê   — | j                  d«      }d|d<   d|d<   d|d<   d|d	<   d
|d<   |j                  «       }| j                  |«      }t        |j                  «       |j                  «       «       y )Nr  rV   rC  rò  rï  ró  )rå  ró   r×  )ró   rå  r�  )rå  ræ  )r  r£  r   r™   )r    rR   rý   rÊ  s       r:   Útest_lil_from_csrzTestLIL.test_lil_from_csr  sp   € à×Ñ˜xÓ(ˆØˆˆ$‰Øˆˆ$‰Øˆˆ$‰Øˆˆ$‰Øˆˆ$‰Ø�G‰G‹IˆØ×Ñ˜qÓ!ˆÜ˜1Ÿ9™9›;¨¯	©	«Õ4r<   c                 óö   — | j                  t        d«      j                  dd«      «      }| j                  |«      }t	        |t        g d¢«      dd…f   j                  «       |t        g d¢«      dd…f   «       y )Nr-  rŽ  râ  re   ró   )r  r   rù   r  r   r   r™   )r    r‚  rQ   s      r:   Útest_fancy_indexing_lilzTestLIL.test_fancy_indexing_lil  sm   € Ø�L‰Lœ ›×+Ñ+¨A¨qÓ1Ó2ˆØ×Ñ˜qÓ!ˆä�Q”ušYÓ'¨¨1¨Ð,Ñ-×5Ñ5Ó7Ø”ušYÓ'¨¨1¨Ð,Ñ-õ	/r<   c                 ó˜  — | j                  d«      }d|d<   d|d<   d|d<   d|d	<   | j                  d«      }d|d<   d|d
<   d|d<   d|d	<   d|d<   t        |j                  |«      j                  «       |j                  |«      j                  «       «       t        |j                  |«      j                  «       g d¢g d¢g d¢g d¢g«       y )Nrc  rç   rØ  re   r  ró   r¾  r–  rW  r5  r½  ry  rf  ©r   r   ræ  )r   rß  r   )r  r   rí  r™   )r    Úlr©  s      r:   Útest_point_wise_multiplyz TestLIL.test_point_wise_multiply#  sÐ   € Ø×Ñ˜vÓ&ˆØˆˆ$‰Øˆˆ$‰Øˆˆ$‰Øˆˆ$‰à×Ñ˜vÓ&ˆØˆˆ$‰Øˆˆ$‰Øˆˆ$‰Øˆˆ$‰Øˆˆ$‰ä˜1Ÿ:™: a›=×0Ñ0Ó2ØŸ:™: a›=×0Ñ0Ó2ô	4ô 	˜1Ÿ:™: a›=×0Ñ0Ó2Ú%Ú%Ú%Ú&ð(õ	)r<   c                 óh   — | j                  t        j                  d«      «      }|dz  }d|dd d …f<   y )Nr`  r|  r   )r  rJ   r÷  rT  s     r:   Útest_lil_multiply_removalz!TestLIL.test_lil_multiply_removal:  s0   € à×ÑœrŸw™w v›Ó/ˆØ	ˆR‰ˆØˆˆ!ŠQˆ$Šr<   N)rµ   r¶   r·   r$   rø   rJ   rÈ  rô   r÷   r  r
  r  r  r  r  r  r   r$  r&  ra   r<   r:   r  r  Ñ  sN   „ Ø€IØ—7‘7˜BŸJ™J¨¯©Ð6€KòQò!ò?ò1ò(Rò
5ò/ò)ó.r<   r  )rK  c                   ó   — e Zd ZeZy)ÚTestLILMatrixN)rµ   r¶   r·   r   rø   ra   r<   r:   r(  r(  A  r  r<   r(  c                   óæ   — e Zd Zej                  ej
                  ej                  gZd„ Zd„ Z	d„ Z
d„ Zd„ Zej                  j                  dd¬«      d	„ «       Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚBaseTestCOOc                 ó°  — t        g d¢«      }t        g d¢«      }t        g d¢«      }| j                  |||ffd«      }t        t        d«      j	                  dd«      |j                  «       «       | j                  dd	gd
d	gd
d	gfft        j                  ¬«      }t        dd
gd
d	ggt        j                  ¬«      }t        ||j                  «       «       y )Nrs  rt  ru  rc  rì  r–  ró   rz  rç   r   rò   )r   r  r   r   rù   r™   rJ   r~  )r    rº  r»  r¹  rb  rS  s         r:   rl  zBaseTestCOO.test_constructor1L  s½   € äÒ5Ó6ˆÜÒ5Ó6ˆÜÒCÓDˆà× Ñ  $¨¨C yÐ!1°%Ó8ˆÜœ6 "›:×-Ñ-¨a°Ó3°S·[±[³]ÔCð × Ñ  9¨a .°A°q°6¸A¸q¸6Ð2BÐ!CÌ2Ï9É9Ð ÓUˆÜ˜	 1�~¨¨1 vÐ.´b·i±iÔ@ˆÜ˜5 #§+¡+£-Õ0r<   c                 óÚ   — t        g d¢«      }t        g d¢«      }t        g d¢«      }| j                  |||ffd«      }t        g d¢g d¢g d¢g«      }t        ||j                  «       «       y )N)
r   rç   re   re   re   re   r   r   re   re   )
r   re   r   re   rç   rç   rç   r   r   re   )
re   ræ  r±  rŽ  rä  r   rè   re   rç   r¯  r`  )r–  rè   r   r"  )r½  rä  r   )r   r  r   r™   )r    rº  r»  r¹  rb  r¡   s         r:   ro  zBaseTestCOO.test_constructor2Z  s_   € äÒ)Ó*ˆÜÒ)Ó*ˆÜÒ-Ó.ˆØ× Ñ  $¨¨C yÐ!1°%Ó8ˆä’Z¢ªJÐ7Ó8ˆä˜3 §¡£Õ.r<   c                 ó  — | j                  d«      }t        |j                  d«       t        |j                  g «       t        |j                  g «       t        |j
                  g «       t        |j                  «       t        d«      «       y )Nrc  )r  r   r½   rº  r»  r¹  r™   r   ©r    rb  s     r:   rq  zBaseTestCOO.test_constructor3e  s^   € à× Ñ  Ó'ˆä˜3Ÿ9™9 UÔ+Ü˜3Ÿ7™7 2Ô&Ü˜3Ÿ7™7 2Ô&Ü˜3Ÿ8™8 BÔ'Ü˜3Ÿ;™;›=¬%°«-Õ8r<   c                 óP  — t        g d¢g d¢g d¢g«      }| j                  |«      }t        |j                  «       |«       t        g d¢«      }| j                  |«      }| j                  r|n|j                  dd«      }t        |j                  «       |«       t        j                  t        d¬«      5  | j                  g d¢g d	¢g d
¢f«       d d d «       t        j                  t        d¬«      5  | j                  g d¢d¬«       d d d «       y # 1 sw Y   ŒCxY w# 1 sw Y   y xY w)N©r   rç   r   r   )rä  r   ró   r   )r   r–  r   r   rç   rè   zobject cannot be interpretedrk  )r   r  é   é!   r  rð  rÎ  r  rY  )
r   r  r   r™   r  rù   r  r   r™  r  )r    r¡   rb  rq  s       r:   r  zBaseTestCOO.test_constructor4o  sî   € ä’YÚÚð ó !ˆð × Ñ  Ó%ˆÜ˜3Ÿ;™;›=¨#Ô.ô ’IÓˆØ× Ñ  Ó%ˆØ×,Ò,‘3°#·+±+¸aÀÓ2DˆÜ˜3Ÿ;™;›=¨(Ô3ô �]‰]œ9Ð,KÖLØ×Ñš²º|Ð0LÔM÷ Mô �]‰]œ:Ð-CÖDØ×Ñš°fÐÔ=÷ EÐD÷	 MÐLú÷ EÐDús   Â3DÃ1DÄDÄD%c                 ó˜   — dg}| j                  |dgdgffd ¬«      }|j                  t        j                  |«      j                  k(  sJ ‚y )Nrç   r   rò   )r  r?   rJ   r   )r    r¹  rb  s      r:   Ú"test_constructor_data_ij_dtypeNonez.BaseTestCOO.test_constructor_data_ij_dtypeNone…  sK   € ØˆsˆØ× Ñ  $¨!¨¨q¨c¨
Ð!3¸4Ð Ó@ˆØ�y‰yœBŸH™H T›N×0Ñ0Ò0Ð0Ñ0r<   FzCOO does not have a __getitem__©Úrunr
  c                  ó   — y r>   ra   rÀ   s    r:   r…  zBaseTestCOO.test_iteratorŠ  ó   € àr<   c                 ó€   — ddgg}| j                  |«      j                  «       }t        |j                  «       |«       y rj   )r  Útodiar   r™   )r    r   r{  s      r:   Útest_todia_all_zerosz BaseTestCOO.test_todia_all_zerosŽ  s6   € Ø�Q��ˆØ× Ñ  Ó'×-Ñ-Ó/ˆÜ˜3Ÿ;™;›=¨%Õ0r<   c                 óü  — | j                  d«      }|j                  «        | j                  ddgddgddgff«      }|j                  «        t        |j                  «       ddgddgg«       | j                  ddgddgddgff«      }|j                  «        t        |j                  «       ddgddgg«       t        |j                  dg«       t        |j
                  dg«       t        |j                  dg«       y )Nrc  rç   re   r   ró   )r  r·  r   r™   rº  r»  r¹  r.  s     r:   Útest_sum_duplicateszBaseTestCOO.test_sum_duplicates“  sè   € Ø× Ñ  Ó'ˆØ×ÑÔØ× Ñ  1 Q %¨1¨Q¨%°!°A°¨Ð!8Ó9ˆØ×ÑÔÜ˜3Ÿ;™;›=¨A¨a¨5°!°A°¨-Ô8Ø× Ñ  1 Q %¨1¨Q¨%°!°A°¨Ð!8Ó9ˆØ×ÑÔÜ˜3Ÿ;™;›=¨A¨a¨5°!°A°¨-Ô8Ü˜3Ÿ7™7 Q CÔ(Ü˜3Ÿ7™7 Q CÔ(Ü˜3Ÿ8™8 a SÕ)r<   c                 óª   — | j                  g d¢g d¢g d¢ff«      }|j                  «       }t        |j                  «       |j                  «       «       y )Nr{  r|  r}  )r  r�  r   r™   )r    rb  rD   s      r:   Útest_todok_duplicatesz!BaseTestCOO.test_todok_duplicates   s=   € Ø× Ñ ¢)ªiºÐ-CÐ!DÓEˆØ�i‰i‹kˆÜ˜3Ÿ;™;›=¨#¯+©+«-Õ8r<   c                 ó  — | j                  g d¢g d¢g d¢ff«      }|j                  «       }t        |j                  dz   |j                  «       |j	                  «       }t        |j                  dz   |j                  «       y )Nr{  r|  r}  re   )r  r£  r   rg  r¢  )r    rb  r7  r6  s       r:   Útest_tocompressed_duplicatesz(BaseTestCOO.test_tocompressed_duplicates¥  s^   € Ø× Ñ ¢)ªiºÐ-CÐ!DÓEˆØ�i‰i‹kˆÜ�S—W‘W˜q‘[ #§'¡'Ô*Ø�i‰i‹kˆÜ�S—W‘W˜q‘[ #§'¡'Õ*r<   c                 ó€  — | j                  d«      }t        |j                  d«       t        j                  g d¢g«      }t        j                  dg«      t        j                  dg«      t        j                  dg«      ff}t        j                  ddg«      t        j                  ddg«      t        j                  ddg«      ff}| j                  |«      }|j                  du sJ ‚| j                  |«      }|j                  du sJ ‚|j                  «        |j                  du sJ ‚| j                  |d¬«      }|j                  du sJ ‚| j                  |d¬«      }|j                  du sJ ‚|j                  «        |j                  du sJ ‚| j                  |«      }|j                  du sJ ‚t        |j                  d«       |j                  «        |j                  du sJ ‚t        |j                  d«       d|_        t        |j                  d«       t        |j                  d«       |j                  «        t        |j                  d«       | j                  |«      }d|_        t        |j                  d«       t        |j                  d«       |j                  «        t        |j                  d«       y	)
rµ  r  Træ  re   r   rç   Frø  N)r  r   r¶  rJ   r   r·  rg  )r    rQ   ÚA_arrayÚA_coords_formÚA_coords_dupss        r:   r»  z%BaseTestCOO.test_has_canonical_format¬  se  € ð ×Ñ˜vÓ&ˆÜ�Q×+Ñ+¨TÔ2ä—(‘(šI˜;Ó'ˆÜŸ™ 1 #›¬¯©°1°#«¼¿¹À!À»Ð(FÐGˆÜŸ™ 1 a &Ó)¬B¯H©H°a¸°VÓ,<¼b¿h¹hÈÈ1ÀvÓ>NÐ+OÐPˆà×Ñ˜wÓ'ˆØ×%Ñ%¨Ñ-Ð-Ð-Ø×Ñ˜}Ó-ˆØ×%Ñ%¨Ñ.Ð.Ð.Ø	×ÑÔØ×%Ñ%¨Ñ-Ð-Ð-à×Ñ˜q tÐÓ,ˆØ×%Ñ%¨Ñ-Ð-Ð-Ø×Ñ˜q uÐÓ-ˆØ×%Ñ%¨Ñ.Ð.Ð.Ø	×ÑÔØ×%Ñ%¨Ñ-Ð-Ð-à×Ñ˜}Ó-ˆØ×%Ñ%¨Ñ.Ð.Ð.Ü�Q—U‘U˜AÔØ	×ÑÔØ×%Ñ%¨Ñ-Ð-Ð-Ü�Q—U‘U˜AÔð "'ˆÔÜ�Q×+Ñ+¨UÔ3Ü�Q—U‘U˜AÔØ	×ÑÔÜ�Q×+Ñ+¨TÔ2à×Ñ˜}Ó-ˆØ!%ˆÔÜ�Q×+Ñ+¨TÔ2Ü�Q—U‘U˜AÔØ	×ÑÔÜ�Q—U‘U˜AÕr<   c                 ó\  — t        g d¢«      }t        g d¢«      }t        g d¢«      }| j                  |||ffd¬«      }|j                  «       }|j                  «        t	        |j
                  dk7  j                  «       «       t        |j                  «       |j                  «       «       y )Nrš  )r   r   r   rç   rç   rç   rç   rç   r›  r•  rY  r   )	r   r  r,  r�  r   r¹  rT  r   r™   )r    r¹  rº  r»  rD  rE  s         r:   rž  z BaseTestCOO.test_eliminate_zerosÙ  s‡   € ÜÒ-Ó.ˆÜÒ,Ó-ˆÜÒ,Ó-ˆØ× Ñ  $¨¨c¨
Ð!3¸6Ð ÓBˆØ�h‰h‹jˆØ×ÑÔÜ�—‘˜Q‘×#Ñ#Ó%Ô&Ü˜3Ÿ;™;›=¨#¯+©+«-Õ8r<   c                 óš  — g d¢g d¢g d¢g}d}| j                  |«      }|j                  |«      }t        |j                  |j                  u «       |j                  |d¬«      }t        |j                  |j                  u «       |j                  |d¬«      }t        t	        j
                  |j                  |j                  «       «       y )Nrï  rð  rñ  rô  Frø  T)r  rù   r   r¹  rJ   rP   )r    ro   Ú	new_shaper@   rA   s        r:   Útest_reshape_copyzBaseTestCOO.test_reshape_copyã  sŸ   € ÚšlªOÐ<ˆØˆ	Ø×Ñ˜sÓ#ˆà�I‰I�iÓ ˆÜ�—‘˜!Ÿ&™&Ð Ô!à�I‰I�i eˆIÓ,ˆÜ�—‘˜!Ÿ&™&Ð Ô!à�I‰I�i dˆIÓ+ˆÜ”B×'Ñ'¨¯©°·±Ó7Ð7Õ8r<   c                 ó  — | j                  dgdgdgffd«      }| j                  dgdgdgffd«      }t        |j                  dd¬«      |k7  j                  dk(  «       t        |j                  dd	¬«      |k7  j                  dk(  «       y )
Nrç   iÀÆ- rg  )éÁÆ- éé  )rL  rK  rý   rí  r   rë  )r  r   rù   rg  )r    Úmat1Úmat2s      r:   Útest_large_dimensions_reshapez)BaseTestCOO.test_large_dimensions_reshapeñ  s”   € ð ×!Ñ! A 3¨'¨°T°FÐ(;Ð"<¸oÓNˆØ×!Ñ! A 3¨$¨°'°Ð(;Ð"<¸oÓNˆô 	�—‘˜o°S�Ó9¸TÑA×FÑFÈ!ÑKÔLÜ�—‘˜o°S�Ó9¸TÑA×FÑFÈ!ÑKÕLr<   N)rµ   r¶   r·   rJ   rÈ  rô   r÷   r  rl  ro  rq  r  r4  r  rÉ  Úxfailr…  r;  r=  r?  rA  r»  rž  rI  rO  ra   r<   r:   r*  r*  I  s‡   „ Ø—7‘7˜BŸJ™J¨¯©Ð6€Kò1ò	/ò9ò>ò,1ð
 ‡[�[×Ñ˜5Ð)JÐÓKñó Lðò1ò
*ò9ò
+ò+òZ9ò9ó	Mr<   r*  c                   ó   — e Zd ZeZy)ÚTestCOON)rµ   r¶   r·   r#   rø   ra   r<   r:   rR  rR  ü  s	   „ ð �Ir<   rR  )rD  rE  rF  rG  rH  c                   ó   — e Zd ZeZy)ÚTestCOOMatrixN)rµ   r¶   r·   r   rø   ra   r<   r:   rT  rT    s	   „ ð
 �Ir<   rT  c                  óª  — t         t        j                  t        t           f   } t        | t        «      sJ ‚| j                  t         u sJ ‚| j                  t        j                  t        t           fk(  sJ ‚t         t        j                     } t        | t        «      sJ ‚| j                  t         u sJ ‚| j                  t        j                  fk(  sJ ‚y r>   )	r#   rJ   r   r$  rØ  rI   r   rÐ  rÑ  rÒ  s    r:   Útest_sparray_subscriptablerV    s¦   € Ü”r—w‘w¤¤c¡
Ð*Ñ+€FÜ�fœlÔ+Ð+Ð+Ø×Ñ¤	Ñ)Ð)Ð)Ø�?‰?œrŸw™w¬¬c©
Ð3Ò3Ð3Ð3ä”r—w‘wÑ€FÜ�fœlÔ+Ð+Ð+Ø×Ñ¤	Ñ)Ð)Ð)Ø�?‰?œrŸw™w˜jÒ(Ð(Ñ(r<   c                   ó>  — e Zd ZeZej                  ej                  ej                  gZ	d„ Z
ej                  j                  dd¬«      d„ «       Z ed«      d„ «       Zd„ Zd	„ Zej                  j'                  d
¬«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestDIAc                 ó  — t        g d¢g d¢g d¢g d¢g«      }t        j                   g d¢g«      j                  dd¬«      }t        j                   g d	¢«      }t        | j	                  ||fd
¬«      j                  «       |«       y )N)rç   r   ró   r   )rç   re   r   r–  )r   re   ró   r   )r   r   ró   r–  rÔ  ró   r   rd  ©r   rè   re   r  rY  )r   rJ   Úrepeatr   r  r™   )r    rÊ  r¹  r¼  s       r:   rl  zTestDIA.test_constructor1   st   € Ü’<ÚÚÚð!ó "ˆô �x‰xš˜Ó$×+Ñ+¨A°1Ð+Ó5ˆÜ—(‘(š8Ó$ˆÜ�T×'Ñ'¨¨w¨¸vÐ'ÓF×NÑNÓPÐRSÕTr<   FzDIA does not have a __getitem__r5  c                  ó   — y r>   ra   rÀ   s    r:   r…  zTestDIA.test_iterator)  r8  r<   ró   c                 óP  — | j                  t        j                  d«      «      }t        |j                  j
                  t        j                  «       |j                  dd¬«       t        |j                  j
                  t        j                  «       | j                  t        j                  d«      «      }t        |j                  j
                  t        j                  «       |j                  dd¬«       t        |j                  j
                  t        j                  «       y )Nró   rV  re   rÕ  r–  )	r  rJ   r'   r   r¼  r?   rZ   r  rf   ©r    r©  s     r:   Útest_setdiag_dtypezTestDIA.test_setdiag_dtype-  sª   € à×ÑœrŸv™v a›yÓ)ˆÜ�Q—Y‘Y—_‘_¤b§h¡hÔ/Ø	�	‰	�$˜!ˆ	ÔÜ�Q—Y‘Y—_‘_¤b§h¡hÔ/à×ÑœrŸv™v a›yÓ)ˆÜ�Q—Y‘Y—_‘_¤b§h¡hÔ/Ø	�	‰	�$˜!ˆ	ÔÜ�Q—Y‘Y—_‘_¤b§h¡hÕ/r<   c                 óä  — dgg}g d¢g}|dgdddgddggdf|dgdddgddggdf|dgdddgddggdf|d	gdddgddggd
f|dgdddgddggdf|dgdddgddggdf|dgdddgddggdf|d	gdddgddggdfd d dddgddggdfddggdgdddgddggdft        j                  dd«      j                  d«      g d¢dddgddggdft        j                  dd«      j                  d«      g d¢dddgddggdfgS )Nrç   râ  rè   r   zshorter diagonal withinz+shorter diagonal above (but within if full)ró   z$shorter diagonal, all elements abover½  z$shorter diagonal, all elements belowz"longer diagonal within (only head)re   z"longer diagonal within (only tail)z#longer diagonal, all elements abovez#longer diagonal, all elements belowzempty inputzexplicit zerosrå  )rä  rç   )r   rç   re   ró   rè   rE  r½  rŽ  z)overfilled shorter-diagonal, out of orderr1  )rä  ró   r–  é   z(overfilled longer-diagonal, out of order)rJ   r   rù   )r    Úd1Úd3s      r:   Ú	ill_caseszTestDIA.ill_cases9  sÑ  € ð
 ˆcˆUˆÚˆ[ˆà�b�T˜1  1˜v¨¨1 vÐ.Ø*ð,à�a�S˜1  1˜v¨¨1 vÐ.Ø>ð@à�a�S˜1  1˜v¨¨1 vÐ.Ø7ð9à�b�T˜1  1˜v¨¨1 vÐ.Ø7ð9à�b�T˜1  1˜v¨¨1 vÐ.Ø5ð7à�a�S˜1  1˜v¨¨1 vÐ.Ø5ð7à�a�S˜1  1˜v¨¨1 vÐ.Ø6ð8à�b�T˜1  1˜v¨¨1 vÐ.Ø6ð8à�t˜Q ! Q ¨!¨Q¨Ð 0Øð à�a�&�˜A˜3  Q¨ F¨Q°¨FÐ#3Ø!ð#ä—‘˜1˜eÓ$×,Ñ,¨VÓ4Ú)Ø�a˜�V˜a ˜VÐ$Ø<ð>ô —‘˜1˜iÓ(×0Ñ0°Ó8Ú)Ø�a˜�V˜b !˜WÐ%Ø;ð=ð1>ð 	>r<   c                 óà   — | j                  «       D ][  \  }}}}}dD ]N  }|€| j                  |«      }n| j                  ||f|¬«      }d|v rd}|j                  «       |k(  rŒFJ d|z   «       ‚ Œ] y )N©r¾  r  r  rY  r   úcase: )rd  r  Ú_getnnz)r    r¹  Úofsetsrg  ÚrefÚcaser½   rQ   s           r:   Útest_getnnzzTestDIA.test_getnnz^  s   € Ø,0¯N©NÖ,<Ñ(ˆD�&˜#˜s DÛ1�Ø�<Ø×*Ñ*¨5Ó1‘Aà×*Ñ*¨D°&¨>ÀÐ*ÓG�AØ˜‘:Ø�CØ—y‘y“{ cÓ)Ð:¨8°d©?Ó:Ð)ñ 2ñ -=r<   zDIA stores extra zerosr	  c                  ó   — y r>   ra   rÀ   s    r:   r3  zTestDIA.test_getnnz_axisi  r8  r<   c                 óŒ  — | j                  «       D ]±  \  }}}}}dD ]¤  }|€| j                  |«      }n| j                  ||f|¬«      }|j                  «       }t        j                  |«      d |d   …d |d   …f   }	t        j
                  |	«      }
|j                  |
k(  sJ ‚t        |j                  «       |	d|z   ¬«       Œ¦ Œ³ y )Nrf  rY  r   rç   rg  r  )	rd  r  r£  rJ   r   rh  rg  r   r™   )r    r¹  ri  r#  r  rk  r½   rQ   rR   rj  rg  s              r:   Ú
test_tocsrzTestDIA.test_tocsrm  sÀ   € ð )-¯©Ö(8Ñ$ˆD�&˜!˜Q Û1�Ø�<Ø×*Ñ*¨5Ó1‘Aà×*Ñ*¨D°&¨>ÀÐ*ÓG�AØ—G‘G“I�Ü—h‘h˜q“k ) 5¨¡8 )¨Y¨e°A©h¨YÐ"6Ñ7�Ü×&Ñ& sÓ+�Ø—u‘u ’|Ð#�|Ü" 1§9¡9£;°¸XÈ¹_ÖMñ 2ñ )9r<   c                 óö   — | j                  g d¢gdgfd¬«      }|j                  «       }t        |j                  «       j                  «       |«       t        |j	                  «       j                  «       |«       y )NrÅ  rè   rK  rY  )r  r™   r   r¢  r£  )r    r©  rq  s      r:   Útest_convert_gh14555zTestDIA.test_convert_gh14555}  s]   € à×Ñ¢ ¨b¨TÐ2¸&ÐÓAˆØ—9‘9“;ˆÜ˜1Ÿ7™7›9×,Ñ,Ó.°Ô9Ü˜1Ÿ7™7›9×,Ñ,Ó.°Õ9r<   c                 ó2  — | j                  ddgddgg«      j                  «       }t        j                  |j                  |j
                  f|j                  «      }t        j                  t        j                  |«      dkD  «      }|j                  |k(  sJ ‚y )Nrç   re   ró   r–  r   )
r  r¤  rJ   Úravel_multi_indexrº  r»  r½   rT  Údiffr¶  )r    r©  Ú	flat_indsÚinds_are_sorteds       r:   Útest_tocoo_gh10050zTestDIA.test_tocoo_gh10050„  sz   € à×Ñ  A ¨¨A¨Ð/Ó0×6Ñ6Ó8ˆÜ×(Ñ(¨!¯%©%°·±¨¸¿¹ÓAˆ	ÜŸ&™&¤§¡¨Ó!3°aÑ!7Ó8ˆØ×%Ñ%¨Ò8Ð8Ñ8r<   c                 ó,  — t        j                  g d¢g«      j                  dd¬«      }t        j                  g d¢t         j                  ¬«      }t	        j
                  ||fd¬«      }|j                  «       }|j                  j                  t         j                  k(  sJ ‚|j                  «       }|j                  j                  t         j                  k(  sJ ‚|j                  «       }|j                  j                  t         j                  k(  sJ ‚y )	NrÔ  ró   r   rd  rZ  rò   r  rY  )rJ   r   r[  rZ   r†   r%   r¤  r»  r?   r£  r·  r¢  )r    r¹  r¼  r{  rb  r7  r6  s          r:   Útest_tocoo_tocsr_tocsc_gh19245z&TestDIA.test_tocoo_tocsr_tocsc_gh19245‹  s¿   € ä�x‰xš˜Ó'×.Ñ.¨q°qÐ.Ó9ˆÜ—(‘(š:¬R¯X©XÔ6ˆÜ×Ñ  g˜°fÔ=ˆà�i‰i‹kˆØ�w‰w�}‰}¤§¡Ò(Ð(Ð(Ø�i‰i‹kˆØ�{‰{× Ñ ¤B§H¡HÒ,Ð,Ð,Ø�i‰i‹kˆØ�{‰{× Ñ ¤B§H¡HÒ,Ð,Ñ,r<   c                 ój  — t        ddg«      }|t        dgd«      z   }| j                  |«      }| j                  |«      }||z   }t        || j                  «      sJ ‚t        |j	                  «       ||z   «       ||z   }t        || j                  «      sJ ‚t        |j	                  «       ||z   «       y )Nrç   re   ró   )r   r  rI   r   r™   ©r    rQ   rR   r&  rî  rð  s         r:   Útest_add_sparsezTestDIA.test_add_sparse˜  s§   € ä�!�Q�‹LˆØ”�a�S˜!“ÑˆØ× Ñ  Ó#ˆØ× Ñ  Ó#ˆà�C‰iˆÜ˜#˜t×1Ñ1Ô2Ð2Ð2Ü˜3Ÿ;™;›=¨!¨a©%Ô0à�C‰iˆÜ˜#˜t×1Ñ1Ô2Ð2Ð2Ü˜3Ÿ;™;›=¨!¨a©%Õ0r<   c                 ó  — t        ddg«      }|t        dgd«      z   }| j                  |«      }| j                  |«      }||z
  }t        || j                  «      sJ ‚t        |j	                  «       ||z
  «       ||z
  }t        || j                  «      sJ ‚t        |j	                  «       ||z
  «       |j                  d«      }t        ||z
  j	                  «       ||z
  «       t        ||z
  j	                  «       ||z
  «       y )Nrç   re   ró   r7  )r   r  rI   r   r™   rT  r{  s         r:   Útest_sub_sparsezTestDIA.test_sub_sparse§  së   € ä�!�Q�‹LˆØ”�a�S˜!“ÑˆØ× Ñ  Ó#ˆØ× Ñ  Ó#ˆà�C‰iˆÜ˜#˜t×1Ñ1Ô2Ð2Ð2Ü˜3Ÿ;™;›=¨!¨a©%Ô0à�C‰iˆÜ˜#˜t×1Ñ1Ô2Ð2Ð2Ü˜3Ÿ;™;›=¨!¨a©%Ô0à�l‰l˜5Ó!ˆÜ˜C #™I×.Ñ.Ó0°!°a±%Ô8Ü˜C #™I×.Ñ.Ó0°!°a±%Õ8r<   c                 ó>  — | j                  ddgddgg«      }|dz  }t        ||j                  «      sJ ‚t        |j	                  «       ddgddgg«       |j                  d«      }t        ||j                  «      sJ ‚t        |j	                  «       ddgddgg«       y )Nrç   re   r   r–  ró   rñ   rì  )r  rI   r€  r   r™   rí  )r    r©  ÚresÚres2s       r:   rÊ  zTestDIA.test_mul_scalarº  s—   € à×Ñ  A ¨¨A¨Ð/Ó0ˆØ�!‰eˆÜ˜#˜qŸ{™{Ô+Ð+Ð+Ü˜3Ÿ;™;›=¨A¨q¨6°A°r°7Ð*;Ô<à�z‰z˜!‹}ˆÜ˜$ §¡Ô,Ð,Ð,Ü˜4Ÿ<™<›>¨Q°¨F°Q¸°GÐ+<Õ=r<   c                 óî  — t        g d¢g d¢g«      }t        ddgddgddgg«      }| j                  |«      }| j                  |«      }d	|j                  |j                  d
k(  <   d	|j                  |j                  d
k(  <   t        |j	                  «       |«       t        |j	                  «       |«       ||z  }||z  }t        || j                  «      sJ ‚t        |j	                  «       |«       t        |j                  g d¢«       t        |j                  | j                  |«      j                  «       ||z  }||z  }t        || j                  «      sJ ‚t        |j	                  «       |«       t        |j                  g d¢«       t        |j                  | j                  |«      j                  «       | j                  g d¢g d¢gddgfd«      }| j                  g d¢g d¢gd	dgfd«      }||z  }t        |j                  t        dd
g«      «       t        |j                  g d¢g d¢g«       ||z  }t        |j                  t        dd
g«      «       t        |j                  g d¢g d¢g«       y )Nrâ  rã  r  rì  ra  r“  r�  rß  rè   r   r¾  )rE  rè   r   rç   re   )rz  r{  r|  )ry  r   ry  rç   rE  r   )rv  r‘  rx  )rz  rz  rw  re   r½  )ç      8@g     €A@rz  )rv  ç      ,@ç      ;@)rƒ  rz  rz  )r…  rv  r„  )r   r  r¹  r   r™   rI   r¼  )r    rQ   rR   r&  rî  rý   rð  s          r:   Útest_matmul_diazTestDIA.test_matmul_diaÅ  s&  € ô ’9Úðó ˆä�B˜�8Ø˜�8Ø˜�8ðó ˆð × Ñ  Ó#ˆØ× Ñ  Ó#ˆØ"$ˆ�‰�—‘˜Q‘ÑØ"$ˆ�‰�—‘˜Q‘ÑÜ˜3Ÿ;™;›=¨!Ô,Ü˜3Ÿ;™;›=¨!Ô,à�‰EˆØ�C‰iˆÜ˜#˜t×1Ñ1Ô2Ð2Ð2Ü˜3Ÿ;™;›=¨!Ô,Ü˜3Ÿ;™;ª
Ô3Ü˜3Ÿ8™8 T×%7Ñ%7¸Ó%:×%?Ñ%?Ô@à�‰EˆØ�C‰iˆÜ˜#˜t×1Ñ1Ô2Ð2Ð2Ü˜3Ÿ;™;›=¨!Ô,Ü˜3Ÿ;™;Ò(9Ô:Ü˜3Ÿ8™8 T×%7Ñ%7¸Ó%:×%?Ñ%?Ô@ð × Ñ ¢<²Ð">ÀÀBÀÐ!HÈ&ÓQˆØ× Ñ ¢<²Ð">ÀÀQÀÐ!HÈ&ÓQˆà�C‰iˆÜ˜3Ÿ;™;¬¨r°1¨g«Ô7Ü˜3Ÿ8™8¢nÚ&4ð&6ô 	7ð �C‰iˆÜ˜3Ÿ;™;¬¨r°1¨g«Ô7Ü˜3Ÿ8™8¢mÚ&4ð&6õ 	7r<   N)rµ   r¶   r·   r%   rø   rJ   rÈ  rô   r÷   r  rl  r  rÉ  rP  r…  r—   r_  rd  rl  r  r3  ro  rq  rw  ry  r|  r~  rÊ  r†  ra   r<   r:   rX  rX    sÅ   „ ð €IØ—7‘7˜BŸJ™J¨¯©Ð6€KòUð ‡[�[×Ñ˜5Ð)JÐÓKñó Lðñ ˜QÓñ	0ó  ð	0ò#>òJ	;ð ‡[�[×ÑÐ5ÐÓ6ñó 7ðòNò :ò9ò-ò1ò9ò&	>ó*7r<   rX  )rD  rE  rF  rG  rH  rK  rL  c                   ó   — e Zd ZeZy)ÚTestDIAMatrixN)rµ   r¶   r·   r   rø   ra   r<   r:   rˆ  rˆ  ò  r  r<   rˆ  c                   ó¼  — e Zd ZeZej                  ej                  ej                  gZ	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zej.                  j1                  dd¬«      d„ «       Zej.                  j1                  dd¬«      d„ «       Zd„ Zej.                  j1                  dd¬«      d„ «       Zej.                  j;                  ed¬«      d„ «       Zy)ÚTestBSRc                 óà  — t        g d¢«      }t        g d¢«      }t        d«      }t        g d¢g d¢g«      |d<   t        g d¢g d¢g«      |d	<   t        g d
¢g d¢g«      |d<   t        g d¢g d¢g«      |d<   t        g d¢g d¢g d¢gg d¢g d¢g«      }| j                  |||fd¬«      }t	        |j                  «       |«       | j                  |||f«      }t	        |j                  «       |«       y ©N)r   re   re   r–  )r   re   re   ró   )r–  re   ró   r.  rX  r   rÎ  )rñ   r   rV   rç   )r   r–  rå  )rì  r   rò  re   )r   rŽ  rV   )r�  r   r-  ró   r  rð  rW  ©rñ   rì  rY  )r   r   r   r   r   r™   )r    r¸  r·  r¹  rQ   r&  s         r:   rl  zTestBSR.test_constructor1  sî   € ä’yÓ!ˆÜš	Ó"ˆÜ�W‹~ˆäšÚ"ð$ó %ˆˆQ‰äšÚ#ð%ó &ˆˆQ‰äšÚ$ð&ó 'ˆˆQ‰äšÚ$ð&ó 'ˆˆQ‰ô ’)šI¢iÐ0²7º7Ð2CÓDˆØ× Ñ  $ w¨vÐ!6¸VÐ ÓDˆÜ�S—[‘[“] AÔ&ð × Ñ  $ w¨vÐ!6Ó7ˆÜ�S—[‘[“] AÕ&r<   c                 óª  — dD ]6  }t        |«      }t        | j                  |«      j                  «       |«       Œ8 t        d«      }t        | j                  |d¬«      j                  «       |«       t        | j                  |d¬«      j                  «       |«       t	        g d¢g d¢g d¢gg d	¢g d
¢g«      }t        | j                  |«      j                  «       |«       t        | j                  |d¬«      j                  «       |«       t        | j                  |d¬«      j                  «       |«       t        | j                  |d¬«      j                  «       |«       t        | j                  |d¬«      j                  «       |«       t        | j                  |d¬«      j                  «       |«       t        | j                  |d¬«      j                  «       |«       t        | j                  |d¬«      j                  «       |«       t	        g d¢g d¢g d¢gg d	¢g d
¢g«      }t        | j                  |d¬«      j                  «       |«       y )N)r  r  r  )rV   r–  )ró   rä  rC  )r–  rñ   r¾  rZ  r  r  rð  rW  r.  rX  r�  rY  r  rô  )re   rì  )ró   rì  r0  )r   r   r   r™   r   )r    r½   rQ   s      r:   ro  zTestBSR.test_constructor2  sî  € ó BˆEÜ�e“ˆAÜ˜×+Ñ+¨AÓ.×6Ñ6Ó8¸!Õ<ð Bô �%‹LˆÜ�T×'Ñ'¨°VÐ'Ó<×DÑDÓFÈÔJÜ�T×'Ñ'¨°VÐ'Ó<×DÑDÓFÈÔJä’)šI¢iÐ0²7º7Ð2CÓDˆÜ�T×'Ñ'¨Ó*×2Ñ2Ó4°aÔ8Ü�T×'Ñ'¨°Ð'Ó9×AÑAÓCÀQÔGÜ�T×'Ñ'¨°VÐ'Ó<×DÑDÓFÈÔJÜ�T×'Ñ'¨°VÐ'Ó<×DÑDÓFÈÔJÜ�T×'Ñ'¨°VÐ'Ó<×DÑDÓFÈÔJÜ�T×'Ñ'¨°WÐ'Ó=×EÑEÓGÈÔKÜ�T×'Ñ'¨°WÐ'Ó=×EÑEÓGÈÔKÜ�T×'Ñ'¨°WÐ'Ó=×EÑEÓGÈÔKä’)šI¢iÐ0²7º7Ð2CÓDˆÜ�T×'Ñ'¨°VÐ'Ó<×DÑDÓFÈÕJr<   c                 ó”   — g d¢g d¢g d¢ff}t        ddgddgg«      }t        | j                  |d¬	«      j                  «       |«       y )
Nrâ  r"  rÒ  rç   r   re   ró   r¾  rZ  )r   r   r   r™   )r    ÚargrQ   s      r:   rq  zTestBSR.test_constructor30  sJ   € âš¢'Ð*Ð+ˆÜ�A�a�5˜!˜A˜�-Ó ˆÜ�T×'Ñ'¨°vÐ'Ó>×FÑFÓHÈ!ÕLr<   c                 ó"  — d}t        j                  ||dft         j                  ¬«      }t        j                  d|gt         j                  ¬«      }t        j
                  |t         j                  ¬«      }| j                  |||f|dfd¬«       y )Nrå  rç   rò   r   F)r[  r,  )rJ   r÷  r   r   rZ   r   r   )r    r  r¹  r¸  r·  s        r:   r  zTestBSR.test_constructor46  so   € ð ˆÜ�w‰w˜˜1˜a�y¬¯©Ô0ˆÜ—‘˜1˜a˜&¬¯©Ô1ˆÜ—)‘)˜A¤R§X¡XÔ.ˆØ×Ñ˜D '¨6Ð2¸qÀ!¸fÈ5ÐÕQr<   c                 ó  — d}t        j                  |«      }t        j                  |||f«      }t        j                  d|g«      }t        j                  |«      }t	        t
        «      5  | j                  |||f«       d d d «       t	        t
        «      5  | j                  |||fd¬«       d d d «       t	        t
        «      5  | j                  |||fd¬«       d d d «       y # 1 sw Y   ŒfxY w# 1 sw Y   ŒDxY w# 1 sw Y   y xY w)Nrå  r   rm  rZ  r  )rJ   r÷  r   r   r  r  r   )r    r  Ú	data_1dimr¹  r¸  r·  s         r:   r…  zTestBSR.test_constructor5?  sÙ   € àˆÜ—G‘G˜A“Jˆ	Ü�w‰w˜˜1˜a�yÓ!ˆÜ—‘˜1˜a˜&Ó!ˆÜ—)‘)˜A“,ˆäœ:Õ&à×Ñ 	¨7°FÐ;Ô<÷ 'ô œ:Õ&à×Ñ  g¨vÐ6À)ÐÔL÷ 'ô œ:Õ&à×Ñ  g¨vÐ6À&ÐÔI÷ 'Ð&÷ 'Ð&ú÷ 'Ð&ú÷ 'Ð&ús$   Á+C%ÂC1ÃC=Ã%C.Ã1C:Ã=Dc                 ó@  — dgdggdgdggg}t        j                  ddgt         j                  ¬«      }t        j                  ddgt         j                  ¬«      }| j                  |||fd¬«      }|j                  t        j                  |«      j                  k(  sJ ‚y )Nrç   r   re   rò   rC  rZ  )rJ   r   rZ   r   r?   )r    rH   r¸  r·  rS   s        r:   Útest_default_dtypezTestBSR.test_default_dtypeS  s‰   € à�3˜˜�* ˜s Q C˜jÐ)ˆÜ—‘˜1˜a˜&¬¯©Ô1ˆÜ—(‘(˜A˜q˜6¬¯©Ô2ˆØ×Ñ ¨°Ð8ÀFÐÓKˆØ�w‰wœ"Ÿ(™( 6Ó*×0Ñ0Ò0Ð0Ñ0r<   c                 ó0  — t        g d¢«      }t        g d¢«      }t        d«      }t        g d¢g d¢g«      |d<   t        g d¢g d¢g«      |d	<   t        g d
¢g d¢g«      |d<   t        g d¢g d¢g«      |d<   t        g d¢g d¢g d¢gg d¢g d¢g«      }| j                  |||fd¬«      }|j	                  «       }|j                  «       j	                  «       }t        |j                  «       |«       t        |j                  «       |j                  «       «       y rŒ  )r   r   r   r   r£  r¤  r   r™   )r    r¸  r·  r¹  rQ   ÚAbsrÚAcsrÚAcsr_via_coos           r:   Útest_bsr_tocsrzTestBSR.test_bsr_tocsr[  s  € ä’|Ó$ˆÜšÓ%ˆÜ�YÓˆäšÚ"ð$ó %ˆˆQ‰äšÚ#ð%ó &ˆˆQ‰äšÚ$ð&ó 'ˆˆQ‰äšÚ$ð&ó 'ˆˆQ‰ô ’,¢ªlÐ;ÚšYÐ'ó)ˆà×!Ñ! 4¨°&Ð"9ÀÐ!ÓIˆØ�z‰z‹|ˆØ—z‘z“|×)Ñ)Ó+ˆÜ�T—\‘\“^ QÔ'Ü�T—\‘\“^ \×%9Ñ%9Ó%;Õ<r<   c                 ó‚  — t        g d¢ddgddgg«      j                  }|j                  ddd«      }t        g d¢«      }t        g d¢«      }| j	                  |||fd¬«      }|j                  «       }|j                  «        t        |j                  d	«       t        |j                  «       |j                  «       «       y )
Nrš  rç   rè   re   r›  rœ  )r–  rò  rY  rì  )
r   r?  rù   r   r   r,  r�  r   rg  r™   r—  s         r:   rž  zTestBSR.test_eliminate_zerosr  sŸ   € ÜÒ,°°!¨u°a¸°U¨mÓ<×>Ñ>ˆØ�|‰|˜B˜q Ó#ˆÜÒ0Ó1ˆÜ’yÓ!ˆØ× Ñ  $¨°Ð!8ÀÐ ÓGˆØ�h‰h‹jˆØ×ÑÔÜ˜3Ÿ7™7 CÔ(Ü˜3Ÿ;™;›=¨#¯+©+«-Õ8r<   c                 ój  — t         j                  j                  d«       | j                  t         j                  j                  d«      d¬«      }d|j                  |j                  dk  <   |j                  «        t        |j                  d«       t        |j                  j                  d«       d|j                  |j                  dk  <   |j                  «        t        |j                  d«       t        |j                  j                  d	«       t        |j                  «       t        j                  d«      «       |j                  «        t        |j                  d«       t        |j                  j                  d	«       t        |j                  «       t        j                  d«      «       y )
Nr   )rì  rì  r  rZ  gÍÌÌÌÌÌì?éB   )r  re   ró   r{  r  )rJ   r”   r  r   r¹  r�  r   rg  r   r½   r™   r   r^  s     r:   Útest_eliminate_zeros_all_zeroz%TestBSR.test_eliminate_zeros_all_zero~  s  € Ü
�	‰	�‰�qÔØ×ÑœrŸy™y×/Ñ/°Ó9ÀVÐÓLˆð !"ˆ�‰ˆq�v‰v˜‰}ÑØ	×ÑÔÜ�Q—U‘U˜BÔÜ˜1Ÿ6™6Ÿ<™<¨Ô4ð !"ˆ�‰ˆq�v‰v˜‰}ÑØ	×ÑÔÜ�Q—U‘U˜AÔÜ˜1Ÿ6™6Ÿ<™<¨Ô3Ü˜1Ÿ9™9›;¬¯©°Ó(:Ô;ð 	
×ÑÔÜ�Q—U‘U˜AÔÜ˜1Ÿ6™6Ÿ<™<¨Ô3Ü˜1Ÿ9™9›;¬¯©°Ó(:Õ;r<   c                 óÎ  — t        j                  g d¢g d¢g d¢g«      }| j                  |«      }t        d|j                  «       t        j                  ddg«      }t        j                  ||dz  g«      }t        j                  ddg«      }| j                  |||f«      j                  «       }t        d|j                  «       t        |j                  t        «      sJ ‚|j                  «        t        d|j                  «       t        dt        |j                  «      «       | j                  |||f«      j                  «       }d|_        t        d|j                  «       t        dt        |j                  «      «       |j                  «        t        dt        |j                  «      «       d|_        |j                  «        t        dt        |j                  «      «       t        d|j                  «       | j                  |«      }d|_        t        d|j                  «       t        dt        |j                  «      «       |j                  «        t        d|j                  «       | j                  |«      }|||c|_        |_
        |_        t        d|j                  «       t        dt        |j                  «      «       | j                  |«      }|j                   |||c|_        |_
        |_        t        d|j                  «       t        dt        |j                  «      «       |j                  «        t        dt        |j                  «      «       y	)
rµ  )re   ró   re   )r   re   rç   )r±  r   re   Tr   re   Frç   N)rJ   r   r   r   r¶  r,  rI   r  r·  rÂ   r·  r¹  r¸  )r    rQ   r‚  r·  r¹  r¸  s         r:   r»  z!TestBSR.test_has_canonical_format•  sš  € ô �H‰H’i¢ªJÐ7Ó8ˆØ×Ñ˜qÓ!ˆÜ�T˜1×1Ñ1Ô2ä—(‘(˜A˜q˜6Ó"ˆÜ�x‰x˜˜A˜a™C˜Ó!ˆÜ—‘˜1˜a˜&Ó!ˆà×Ñ  g¨vÐ6Ó7×<Ñ<Ó>ˆÜ�U˜A×2Ñ2Ô3Ü˜!×0Ñ0´$Ô7Ð7Ð7à	×ÑÔÜ�T˜1×1Ñ1Ô2Ü�Qœ˜AŸI™I›Ô'ð ×Ñ  g¨vÐ6Ó7×<Ñ<Ó>ˆØ!%ˆÔÜ�T˜1×1Ñ1Ô2Ü�Qœ˜AŸI™I›Ô'à	×ÑÔÜ�Qœ˜AŸI™I›Ô'à!&ˆÔØ	×ÑÔÜ�Qœ˜AŸI™I›Ô'Ü�T˜1×1Ñ1Ô2ð ×Ñ˜qÓ!ˆØ!&ˆÔÜ�U˜A×2Ñ2Ô3Ü�Qœ˜AŸI™I›Ô'à	×ÑÔÜ�T˜1×1Ñ1Ô2ð ×Ñ˜qÓ!ˆØ&*¨G°VÐ#ˆŒ�”	˜1œ8Ü�U˜A×2Ñ2Ô3Ü�Qœ˜AŸI™I›Ô'ð ×Ñ˜qÓ!ˆØ	×ÒØ&*¨G°VÐ#ˆŒ�”	˜1œ8Ü�T˜1×1Ñ1Ô2Ü�Qœ˜AŸI™I›Ô'Ø	×ÑÔÜ�Qœ˜AŸI™I›Õ'r<   c                 óì   — | j                  t        d«      j                  dd«      d¬«      }t        |j                  d   «      j                  dd«      }t	        ||z  |j                  «       |z  «       y )Néx   rå  r�  ©r–  rŽ  rZ  rç   rè   ©r   r   rù   r½   r   r™   rp  s      r:   Útest_bsr_matveczTestBSR.test_bsr_matvecÎ  s_   € Ø×Ñœv g›×6Ñ6°s¸3Ó?È5ÐÓQˆÜ�1—7‘7˜1‘:Ó×&Ñ& r¨!Ó,ˆÜ�Q˜‘U˜AŸI™I›K¨!™OÕ,r<   c                 óò   — | j                  t        d«      j                  dd«      d¬«      }t        |j                  d   dz  «      j                  dd«      }t	        ||z  |j                  «       |z  «       y )	Nr¡  rå  r�  r¢  rZ  rç   rñ   rè   r£  rp  s      r:   Útest_bsr_matvecszTestBSR.test_bsr_matvecsÓ  sc   € Ø×Ñœv g›×6Ñ6°s¸3Ó?È5ÐÓQˆÜ�1—7‘7˜1‘:˜a‘<Ó ×(Ñ(¨¨AÓ.ˆÜ�Q˜‘U˜AŸI™I›K¨!™OÕ,r<   FzBSR does not have a __getitem__r5  c                  ó   — y r>   ra   rÀ   s    r:   r…  zTestBSR.test_iteratorØ  r8  r<   zBSR does not have a __setitem__c                  ó   — y r>   ra   rÀ   s    r:   r  zTestBSR.test_setdiagÜ  r8  r<   c                 óL  — t        j                  g d¢g d¢g d¢g«      }| j                  |d¬«      }t        |j	                  d«      d u «       t        |j                  «       ddgd	dgd
dgg«       |j	                  d«       t        |j                  «       ddgd	dgg«       |j	                  d«       t        |j                  «       ddgd	dgddgg«       |j	                  d«       t        |j                  «       g d¢g d¢g d¢g«       t        t        |j                  d«       y )Nrº  r»  r¼  rí  rZ  r½  rç   r   re   ró   r¾  r÷  rØ  rð  r  )	rJ   r   rø   r   r¿  r   r™   r  r  rš  s      r:   Útest_resize_blockedzTestBSR.test_resize_blockedà  s  € ä�H‰H’lÚ"Ú"ð$ó %ˆð �N‰N˜1¨ˆNÓ/ˆÜ�—‘˜Ó  DÐ(Ô)Ü˜1Ÿ9™9›;¨!¨Q¨Ø*+¨Q¨Ø*+¨Q¨ð)1ô 	2ð 	
�‰�ÔÜ˜1Ÿ9™9›;¨!¨Q¨Ø*+¨Q¨ð)1ô 	2à	�‰�ÔÜ˜1Ÿ9™9›;¨!¨Q¨Ø*+¨Q¨Ø*+¨Q¨ð)1ô 	2ð 	
�‰�ÔÜ˜1Ÿ9™9›;ªÚ)5Ú)5ð)7ô 	8ô 	”j !§(¡(¨FÕ3r<   c                  ó   — y r>   ra   rÀ   s    r:   r  z"TestBSR.test_setdiag_comprehensive÷  r8  r<   zexceeds memory limitr	  c                 óŠ  — t        j                  dt         j                  ¬«      }t        j                  dt         j                  ¬«      }t        j                  d«      }| j                  |||fd¬«      }| j                  |||fd¬«      }| j                  d«      }| j                  d«      }t	        |j
                  j                  t         j                  «       t	        |j
                  j                  t         j                  «       t	        |j
                  j                  t         j                  «       t	        |j
                  j                  t         j                  «       	 t        j                  d«      }t        j                  d	«      }	| j                  |||fd¬«      }
| j                  |	||fd¬«      }t	        |
j
                  j                  t         j                  «       t	        |j
                  j                  t         j                  «       |||||
|fD ]  }||z    Œ	 y # t        t        f$ r d}
d}Y Œ(w xY w)
Nre   rò   r   r"  r½  rY  r¿  )r   rç   r¾  )r   rç   rÀ  )
rJ   r   rZ   r   r   r¸  r?   rf   ÚMemoryErrorr  )r    r¸  r·  r\  rN   rS   r¦  r  Úvals2Úvals3r§  r¨  r@   s                r:   rÂ  zTestBSR.test_scalar_idx_dtypeû  s¯  € ô —‘˜!¤2§8¡8Ô,ˆÜ—(‘(˜1¤B§H¡HÔ-ˆÜ�x‰x˜	Ó"ˆØ×Ñ  g¨vÐ6¸lÐÓKˆØ×Ñ  g¨vÐ6¸jÐÓIˆØ×Ñ˜|Ó,ˆØ×Ñ˜zÓ*ˆÜ�Q—X‘X—^‘^¤R§X¡XÔ.Ü�Q—X‘X—^‘^¤R§X¡XÔ.Ü�Q—X‘X—^‘^¤R§X¡XÔ.Ü�Q—X‘X—^‘^¤R§X¡XÔ.ð
	Ü—H‘H˜_Ó-ˆEÜ—H‘H˜]Ó+ˆEØ×"Ñ" E¨7°FÐ#;À<Ð"ÓPˆAØ×"Ñ" E¨7°FÐ#;À:Ð"ÓNˆAÜ˜Ÿ™Ÿ™¬¯©Ô2Ü˜Ÿ™Ÿ™¬¯©Ô2ð �Q˜˜1˜a Ó#ˆAØ�‹Eñ $øô œZÐ(ò 	àˆAØŠAð	ús   Å'B2H, È,IÉIN) rµ   r¶   r·   r&   rø   rJ   rÈ  rô   r÷   r  rl  ro  rq  r  r…  r•  rš  rž  rž  r»  r¤  r¦  r  rÉ  rP  r…  r  rª  r  ÚskipifÚIS_COLABrÂ  ra   r<   r:   rŠ  rŠ  ú  s  „ ð €IØ—7‘7˜BŸJ™J¨¯©Ð6€Kò'ò.Kò0MòRòJò(1ò=ò.	9ò<ò.7(òr-ò
-ð
 ‡[�[×Ñ˜5Ð)JÐÓKñó Lðð ‡[�[×Ñ˜5Ð)JÐÓKñó Lðò4ð. ‡[�[×Ñ˜5Ð)JÐÓKñó Lðð ‡[�[×Ñ˜Ð)?ÐÓ@ñó Añr<   rŠ  )rD  rE  rF  rG  rH  rL  c                   ó   — e Zd ZeZy)ÚTestBSRMatrixN)rµ   r¶   r·   r   rø   ra   r<   r:   r³  r³    r  r<   r³  c                 ój  — |j                  dd«      }t        j                  | j                  t        j                  «      s.t        j                  | j                  t        j
                  «      r|€| f|z   S | f|z   |fz   S | dk(  j                  «       }| j                  dd¬«      } | ddd…xx   dz  cc<   d| ddd…<   |d   j                  dkD  r=t        d„ |D «       «      }d|d   z  f|dd z   }d|d   z  dz   f|dd z   }d| |<   d| |<   t        d„ |D «       «      }|€| f|z   S | f|z   |dz  fz   S )	z-Duplicates entries to produce the same matrixr¸  Nr   re   rd  rç   c              3   ó&   K  — | ]	  }|d    –— Œ y­wrö  ra   )Ú.0Úps     r:   Ú	<genexpr>z&_same_sum_duplicate.<locals>.<genexpr>;  s   è ø€ Ð,¡)˜Q�A�a•D¡)ùs   ‚c              3   ó>   K  — | ]  }|j                  d «      –— Œ y­w)re   N)r[  )r¶  r·  s     r:   r¸  z&_same_sum_duplicate.<locals>.<genexpr>A  s   è ø€ Ð7±$ w�—‘ ×"±$ùs   ‚)
ÚpoprJ   rl   r?   rð  Úunsignedintegerr#  r[  rk   r$  )r¹  ÚindsrB   r¸  Ú	zeros_posÚposÚpos1Úpos2s           r:   Ú_same_sum_duplicaterÁ  (  sP  € à�Z‰Z˜ $Ó'€FÜ	‡}�}�T—Z‘Z¤§¡Ô*Ü	‡}�}�T—Z‘Z¤×!3Ñ!3Ô4Øˆ>Ø�7˜T‘>Ð!à�7˜T‘> V IÑ-Ð-à˜‘×#Ñ#Ó%€Ið �;‰;�q˜qˆ;Ó!€DØ‰ˆ1ˆƒI��NƒIØ€DˆˆˆAˆ�Jð ��|×Ñ˜1ÒÜÑ,¡)Ó,Ó,ˆØ�#�a‘&‘ˆ{˜S  ˜WÑ$ˆØ�#�a‘&‘˜‘
ˆ}˜s 1 2˜wÑ&ˆØˆˆT‰
ØˆˆT‰
äÑ7±$Ó7Ó7€Dà€~Øˆw˜‰~Ðàˆw˜‰~ ¨!¡ Ñ-Ð-r<   c                   óð   ‡ — e Zd Zddœˆ fd„
Zej
                  j                  d¬«      d„ «       Zej
                  j                  d¬«      d„ «       Zej
                  j                  d	¬«      d
„ «       Z	ˆ xZ
S )Ú_NonCanonicalMixinF©Úsorted_indicesc                óò  •— t         ‰| �  } ||g|¢­i |¤Ž}|j                  «       dk(  j                  «       }|d   j                  dkD  }|rm|d   j                  dz  }	t        j                  «       5  t        j                  dt        t        «       | j                  ||d   |	   |d   |	   «      }ddd«       | j                  ||«      }
d|vr|j                  |d<    ||
fi |¤Ž}|j                  t        j                  t        j                   fv rd}nd}t#        |j                  «       |j                  «       |¬	«       |r&t%        |j&                  dk(  j)                  «       «       |S # 1 sw Y   Œ¼xY w)
zcReplace D with a non-canonical equivalent: containing
        duplicate elements and explicit zerosr   re   r(  rç   Nr½   gñhãˆµøä>gH¯¼šò×z>)Úrtol)Úsuperrø   r™   r#  rk   r)  r*  r
  r  r)   Ú_insert_explicit_zeroÚ_arg1_for_noncanonicalr½   r?   rJ   rö   r¡  r   r   r¹  r  )r    rÊ  rÅ  rg  rB   Ú	constructr‚  Úzero_posÚ	has_zerosrÖ  Úarg1ÚNCrÇ  r€  s                €r:   rø   z_NonCanonicalMixin.spcreatorJ  sT  ø€ ô ‘GÑ%ˆ	Ù�aÐ)˜$Ò) &Ñ)ˆà—I‘I“K 1Ñ$×-Ñ-Ó/ˆØ˜a‘[×%Ñ%¨Ñ)ˆ	ÙØ˜‘× Ñ  !Ñ#ˆAÜ×(Ñ(Õ*Ü×'Ñ'¨´$Ô8OÔPØ×.Ñ.¨q°(¸1±+¸a±.À(È1Á+ÈaÁ.ÓQ�÷ +ð ×*Ñ*¨1¨nÓ=ˆØ˜&Ñ ØŸg™gˆF�7‰OÙ�tÑ&˜vÑ&ˆð �8‰8œŸ
™
¤B§L¡LÐ1Ñ1ð
 ‰DàˆDÜ˜Ÿ
™
› a§i¡i£k¸Õ=ñ Ü�R—W‘W ‘\×&Ñ&Ó(Ô)ð ˆ	÷3 +Ð*ús   Á3?E-Å-E6z"bool(matrix) counts explicit zerosr	  c                  ó   — y r>   ra   rÀ   s    r:   r   z_NonCanonicalMixin.test_boolo  r8  r<   z!getnnz-axis counts explicit zerosc                  ó   — y r>   ra   rÀ   s    r:   r3  z#_NonCanonicalMixin.test_getnnz_axiss  r8  r<   znnz counts explicit zerosc                  ó   — y r>   ra   rÀ   s    r:   ri  z_NonCanonicalMixin.test_emptyw  r8  r<   )rµ   r¶   r·   rø   r  rÉ  r  r   r3  ri  Ú__classcell__)r€  s   @r:   rÃ  rÃ  I  sƒ   ø„ Ø16ö #ðJ ‡[�[×ÑÐAÐÓBñó Cðð ‡[�[×ÑÐ@ÐÓAñó Bðð ‡[�[×ÑÐ8ÐÓ9ñó :ôr<   rÃ  c                   ó   — e Zd Zdd„Zd„ Zy)Ú_NonCanonicalCompressedMixinc                 ó  — t        |j                  |j                  |j                  ¬«      \  }}}|sOt	        ||dd «      D ]=  \  }}||| ddd…   j                  «       ||| ||| ddd…   j                  «       ||| Œ? |||fS )ú5Return non-canonical constructor arg1 equivalent to M)r¸  rç   Nrè   )rÁ  r¹  r·  r¸  r„  r,  )r    r‚  rÅ  r¹  r·  r¸  ÚstartÚstops           r:   rÊ  z3_NonCanonicalCompressedMixin._arg1_for_noncanonical}  sž   € ä 3°A·F±F¸A¿I¹IØ;<¿8¹8ô!EÑˆˆg�váÜ" 6¨6°!°"¨:Ö6‘��tØ&-¨e°DÐ&9¹$¸B¸$Ñ&?×&DÑ&DÓ&F�˜˜dÐ#Ø#'¨¨dÐ#3±D°b°DÑ#9×#>Ñ#>Ó#@��U˜4Ñ ð  7ð �W˜fÐ$Ð$r<   c                 ó   — d|||f<   |S rj   ra   ©r    r‚  r•  r  s       r:   rÉ  z2_NonCanonicalCompressedMixin._insert_explicit_zero‡  s   € Øˆˆ!ˆAˆ#‰Øˆr<   N)F)rµ   r¶   r·   rÊ  rÉ  ra   r<   r:   rÕ  rÕ  |  s   „ ó%ór<   rÕ  c                   ó¤   — e Zd Zd„ Zd„ Zej                  j                  dd¬«      d„ «       Zej                  j                  dd¬«      d„ «       Z	y	)
Ú_NonCanonicalCSMixinc                 ól   ‡ — ˆ fd„}t         D ]%  }dD ]  } |t        j                  |«      |«       Œ  Œ' y )Nc                 ó@  •— t        g d¢g d¢g d¢g d¢g| ¬«      }‰	j                  ||¬«      }|j                  \  }}t        | |«      D ]*  }t        | |«      D ]  }t	        |||f   |||f   «       Œ Œ, dD ]#  }t        t        t        f|j                  |«       Œ% y )Nry  rå  ræ  rf  rò   rÄ  rç  )	r   rø   r½   r"  r   r  rÀ  r™  rè  )
r?   rÅ  rÊ  rQ   r‚  r…  r•  r  r'  r    s
            €r:   r  z3_NonCanonicalCSMixin.test_getelement.<locals>.checkŽ  s¤   ø€ Ü’wÚÚÚð ð (-ô.ˆAð —‘˜q°�Ó@ˆAà—'‘'‰CˆAˆaä˜A˜2˜q–\�Ü ˜r 1ž�AÜ   1 Q 3¡¨¨1¨Q¨3©Õ0ñ &ð "ó C�Üœz¬9Ð5°q·}±}ÀbÕIñ Cr<   )FTré  )r    r  r?   rÅ  s   `   r:   rê  z$_NonCanonicalCSMixin.test_getelement�  s1   ø€ ô	J÷  &ˆEÛ"/�Ù”b—h‘h˜u“o ~Õ6ñ #0ñ &r<   c                 ó°  — t        j                  d«      }| j                  |«      }| j                  g d¢g«      }|j                  «       |dd d …f<   t	        j
                  «       5  t	        j                  dt        t        «       ||dd d …f<   d d d «       t        |j                  «       |«       |j                  «       j                  «       |d d …df<   t	        j
                  «       5  t	        j                  dt        t        «       |j                  |d d …df<   d d d «       t        |j                  «       |«       y # 1 sw Y   Œ²xY w# 1 sw Y   Œ0xY w)Nró   râ  rç   r(  re   )rJ   r'   rø   r™   r)  r*  r
  r  r)   r   r–  r?  )r    rÊ  rQ   rR   s       r:   Útest_setitem_sparsez(_NonCanonicalCSMixin.test_setitem_sparse¢  sø   € Ü�F‰F�1‹IˆØ�N‰N˜1ÓˆØ�N‰NšG˜9Ó%ˆà—‘“ˆˆ!ŠAˆ#‰Ü×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLØˆAˆa’ˆc‰F÷ 'ô 	˜1Ÿ9™9›;¨Ô*à—‘“×"Ñ"Ó$ˆŠ!ˆAˆ#‰Ü×$Ñ$Õ&Ü×#Ñ# H¬dÔ4KÔLØ—S‘SˆAŠa�ˆc‰F÷ 'ô 	˜1Ÿ9™9›;¨Õ*÷ 'Ð&ú÷ 'Ð&ús   Á&)E Ã*3EÅ E	ÅEFz(inverse broken with non-canonical matrixr5  c                  ó   — y r>   ra   rÀ   s    r:   rŽ  z_NonCanonicalCSMixin.test_inv³  r8  r<   z&solve broken with non-canonical matrixc                  ó   — y r>   ra   rÀ   s    r:   r  z_NonCanonicalCSMixin.test_solve·  r8  r<   N)
rµ   r¶   r·   rê  rá  r  rÉ  rP  rŽ  r  ra   r<   r:   rÝ  rÝ  Œ  s`   „ ò7ò*+ð" ‡[�[×Ñ˜5Ð)SÐÓTñó Uðð ‡[�[×Ñ˜5Ð)QÐÓRñó Sñr<   rÝ  c                   ó   — e Zd Zy)ÚTestCSRNonCanonicalN©rµ   r¶   r·   ra   r<   r:   rå  rå  ¼  ó   „ Ør<   rå  c                   ó   — e Zd Zy)ÚTestCSRNonCanonicalMatrixNræ  ra   r<   r:   ré  ré  À  rç  r<   ré  c                   ó   — e Zd Zy)ÚTestCSCNonCanonicalNræ  ra   r<   r:   rë  rë  Ä  rç  r<   rë  c                   ó   — e Zd Zy)ÚTestCSCNonCanonicalMatrixNræ  ra   r<   r:   rí  rí  È  rç  r<   rí  c                   óž   — e Zd Zd„ Zej
                  j                  dd¬«      d„ «       Zej
                  j                  dd¬«      d„ «       Zy)	ÚTestBSRNonCanonicalc                 óh   — |j                  «       }d|||f<   |j                  |j                  ¬«      S )Nr   rZ  )r£  rŽ  r[  )r    r‚  r•  r  r@   s        r:   rÉ  z)TestBSRNonCanonical._insert_explicit_zeroÍ  s/   € Ø�G‰G‹IˆØˆˆ!ˆAˆ#‰Ø�w‰w §¡ˆwÓ-Ð-r<   Fz&diagonal broken with non-canonical BSRr5  c                  ó   — y r>   ra   rÀ   s    r:   rà  z!TestBSRNonCanonical.test_diagonalÒ  r8  r<   z"expm broken with non-canonical BSRc                  ó   — y r>   ra   rÀ   s    r:   rŠ  zTestBSRNonCanonical.test_expmÖ  r8  r<   N)	rµ   r¶   r·   rÉ  r  rÉ  rP  rà  rŠ  ra   r<   r:   rï  rï  Ì  s[   „ ò.ð
 ‡[�[×Ñ˜5Ð)QÐÓRñó Sðð ‡[�[×Ñ˜5Ð)MÐÓNñó Oñr<   rï  c                   ó   — e Zd Zy)ÚTestBSRNonCanonicalMatrixNræ  ra   r<   r:   rô  rô  Û  rç  r<   rô  c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚCOONonCanonicalMixinNc                 ól   — t        |j                  |j                  |j                  «      \  }}}|||ffS )r×  )rÁ  r¹  rº  r»  )r    r‚  rÅ  r¹  rº  r»  s         r:   rÊ  z+COONonCanonicalMixin._arg1_for_noncanonicalà  s1   € ä,¨Q¯V©V°Q·U±U¸A¿E¹EÓB‰ˆˆc�3Ø�c˜3�ZÐÐr<   c                 ó°  — t         j                  |j                  j                  j	                  d«      |j                  f   |_        t         j                  |j
                  j                  j	                  |«      |j
                  f   |_        t         j                  |j                  j                  j	                  |«      |j                  f   |_        |S rj   )rJ   Úr_r¹  r?   rL  rº  r»  rÛ  s       r:   rÉ  z*COONonCanonicalMixin._insert_explicit_zeroå  s‹   € Ü—‘�q—v‘v—|‘|×(Ñ(¨Ó+¨Q¯V©VÐ3Ñ4ˆŒÜ—‘�a—e‘e—k‘k×&Ñ& qÓ)¨1¯5©5Ð0Ñ1ˆŒÜ—‘�a—e‘e—k‘k×&Ñ& qÓ)¨1¯5©5Ð0Ñ1ˆŒØˆr<   c                 ó2  — | j                  t        j                  d«      «      }|j                  «        |j	                  ddgd¬«       |j                  «        t        t        j                  t        j                  |j                  «      dk\  «      «       y )Nró   re   rç   rÕ  r   )	rø   rJ   r'   r·  r  r   rT  rt  r»  r^  s     r:   Útest_setdiag_noncanonicalz.COONonCanonicalMixin.test_setdiag_noncanonicalë  sf   € Ø�N‰Nœ2Ÿ6™6 !›9Ó%ˆØ	×ÑÔØ	�	‰	�1�a�&˜Aˆ	ÔØ	×ÑÔÜ”—‘”r—w‘w˜qŸu™u“~¨Ñ*Ó+Õ,r<   r>   )rµ   r¶   r·   rÊ  rÉ  rû  ra   r<   r:   rö  rö  ß  s   „ ó ò
ó-r<   rö  c                   ó   — e Zd Zy)ÚTestCOONonCanonicalNræ  ra   r<   r:   rý  rý  ó  rç  r<   rý  c                   ó   — e Zd Zy)ÚTestCOONonCanonicalMatrixNræ  ra   r<   r:   rÿ  rÿ  ÷  rç  r<   rÿ  c                  ó®  — t        j                  g d¢g«      } t        j                  dgdgdgg«      }t        j                  g d¢g d¢g«      }t        j                  dgg«      }t        j                  dgg«      }t        j                  g d¢g«      }t        t        t        t
        fD �]  } || «      j                  d«      } ||«      j                  d	«      } ||«      j                  d«      }	 ||«      j                  d
«      }
 ||«      j                  d«      } ||«      j                  d«      }t        |j                  «       t        j                  | d«      «       t        |j                  «       t        j                  |d	«      «       t        |	j                  «       |«       t        |
j                  «       t        j                  |d
«      «       t        |j                  «       t        j                  |d«      «       t        |j                  «       t        j                  |d«      «       t        j                  t        d¬«      5   |g d¢g d¢g«      j                  d¬«       d d d «       t        j                  t        d¬«      5   |g d¢g«      j                  d¬«       d d d «       �Œ y # 1 sw Y   ŒLxY w# 1 sw Y   �Œ)xY w)NrÑ  rç   r   re   rÓ  rä  rð  r  r÷  r  rï  rÛ  zcannot be broadcastrk  )rç   re   r   r  rC  rY  r.  r½  )rJ   r   r   r    r   r!   Ú_broadcast_tor   r™   Úbroadcast_tor  r   r  )rN   rS   r¦  r  r§  r¨  Ú	containerÚres_aÚres_bÚres_cÚres_dÚres_eÚres_fs                r:   Útest_broadcast_tor
  û  s
  € Ü
�‰’)�Ó€AÜ
�‰�1�#˜�s˜Q˜C�Ó!€AÜ
�‰’)šYÐ'Ó(€AÜ
�‰�1�#�‹€AÜ
�‰�1�#�‹€AÜ
�‰’)�Ó€AÜ ¤)¬Z¼ÔCˆ	Ù˜!“×*Ñ*¨5Ó1ˆÙ˜!“×*Ñ*¨5Ó1ˆÙ˜!“×*Ñ*¨5Ó1ˆÙ˜!“×*Ñ*¨5Ó1ˆÙ˜!“×*Ñ*¨5Ó1ˆÙ˜!“×*Ñ*¨5Ó1ˆÜ˜5Ÿ=™=›?¬B¯O©O¸A¸uÓ,EÔFÜ˜5Ÿ=™=›?¬B¯O©O¸A¸uÓ,EÔFÜ˜5Ÿ=™=›?¨AÔ.Ü˜5Ÿ=™=›?¬B¯O©O¸A¸uÓ,EÔFÜ˜5Ÿ=™=›?¬B¯O©O¸A¸uÓ,EÔFÜ˜5Ÿ=™=›?¬B¯O©O¸A¸uÓ,EÔFä�]‰]œ:Ð-BÖCÙ’y¢)Ð,Ó-×;Ñ;À&Ð;ÔI÷ Dô �]‰]œ:Ð-BÖCÙ’y�kÓ"×0Ñ0°vÐ0Ô>÷ DÑCñ# D÷ DÐCú÷ DÑCús   ÉJ>ÊK
Ê>K	Ë
K	r>   )NFNNF)T)	TTTTTTTTT)‹rÿ   Ú
contextlibr‘   r;  r  r=  Úsysr)  r  r   r  ÚnumpyrJ   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r”   Únumpy.testingr   r   r   r   r   r   Únumpy.exceptionsr   Útypesr   Úscipy.linalgr…   r!  r†   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   Úscipy.sparse._baser,   Úscipy.sparse._sputilsr-   r.   r/   r0   r1   Úscipy.sparse.linalgr2   r3   r4   rƒ   r±  r;   rC   Ú	frozensetrÄ  r  rT   r—   r™   r›   r¹   rÍ   rä   r
  rÌ  râ  rÉ  Úthread_unsafer  r  rX  rs  Úcontextmanagerr§  r©  r¿  rÈ  rÙ  rï  r.  r@  rP  rR  rc  r  rÊ  rÓ  rÕ  rë  r  r  r  r(  r*  rR  rT  rV  rX  rˆ  rŠ  r³  rÁ  rÃ  rÕ  rÝ  rå  ré  rë  rí  rï  rô  rö  rý  rÿ  r
  ra   r<   r:   Ú<module>r     sØ  ðñó Û Û Û Û Û 
Û ã Ý *ã ÷÷ ÷ õ ó ÷÷ õ ,å ã å ÷C÷ C÷ C÷ C÷ Cñ Cõ
 (÷Fõ Fç /Ñ /à˜cŸk™kÐ)€ó/ò
'ñ
 % e WÓ-Ð à(€òð( JNØ?DóWòt÷$ñ $÷6"$ñ "$÷Hñ ÷4ñ ÷D^ 7ñ ^ 7÷BA|ñ |÷~a+ñ a+ðH ‡�×ÑÐ"5ÐÓ6÷%ð %ó 7ð%÷0@ñ @÷F
OKñ OK÷d\0ñ \0ð~ ×ÑñBó ðB÷k$ñ k$÷\%Cñ %C÷P_Kñ _K÷D`0ñ `0÷FL5ñ L5÷^
2ñ 2ó:ð8 AEØ8<ØJNØ,0ó%'÷X),ñ ),ôXc&ÐÑ 1Ó 3ô c&ðL	 × Ñ Ô ô/�L 'ô /ò)ð × Ñ Ô ôPÐÑ 1Ó 3ô Pðf × Ñ Ô ô/�L 'ô /ð × Ñ Ô ô_BÑ u°uÔ=ô _BôD�L 'ô ð × Ñ Ô Ø × Ñ Ô ômÑ uÔ-ô mô`�L 'ô ð × Ñ Ô Ø × Ñ Ô ÷qMñ qMôfˆkÙ tØ(,¸TØ/3À$ôHôô�LØÙ%¨UØ.3ÀEØ5:ÈôPôð × Ñ Ô Ø × Ñ Ô ò	)ôU7Ñ u°eÈEØ/4À5Ø',°uô>ô U7ôp�L 'ô ð × Ñ Ô Ø × Ñ Ô ô_Ñ uØ(-¸eØ/4À5Ø).ô0ô _ôD	�L 'ô ð × Ñ Ô Ø × Ñ Ô ò.÷B0ñ 0ôfÐ#5ô ô -Ð7ô -ô`	Ð.°ô 	ô	Ð 3°]ô 	ô	Ð.°ô 	ô	Ð 3°]ô 	ôÐ6¸ô ô	Ð 3°]ô 	ô-Ð-ô -ô(	Ð.°ô 	ô	Ð 4°mô 	ó?r<   