Ë
    âQ(hêB ã                   ó4	  — 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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 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+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 ddl8m9Z9 ddl:m;Z;m<Z<m=Z=m>Z>m?Z? dd	l@mAZAmBZBmCZC dd
lDmEZE ddlFmGZG dej�                  v ZId{d„ZJd„ ZK eLdg«      ZMd„ ZN e!«       ZOeOj¡                  eG«       	 	 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¶                   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 d-„ d.«      Zc G d/„ d0«      Zd G d1„ d2«      Ze G d3„ d4«      Zf G d5„ d6«      Zgd}d7„Zh	 	 	 	 d~d8„Zi G d9„ d: ei«       «      Zjejj×                  «         G d;„ d<eVej«      Zlelj×                  «         G d=„ d> ei«       «      Zmemj×                  «         G d?„ d@eVem«      Znenj×                  «         G dA„ dB eidd¬C«      «      Zo G dD„ dEeVeo«      Zpeoj×                  «        epj×                  «         G dF„ dG eid¬H«      «      Zq G dI„ dJeVeq«      Zreqj×                  «        erj×                  «         G dK„ dL eiddddd¬M«      «      Zs G dN„ dOeVes«      Ztesj×                  «        etj×                  «         G dP„ dQ eiddddddd¬R«      «      Zu G dS„ dTeVeu«      Zveuj×                  «        evj×                  «         G dU„ dV eidddddd¬W«      «      Zw G dX„ dYeVew«      Zxewj×                  «        exj×                  «        dZ„ Zy G d[„ d\«      Zz G d]„ d^ez«      Z{ G d_„ d`e{«      Z| G da„ dbe|ej«      Z} G dc„ dde}el«      Z~ G de„ dfe|em«      Z G dg„ dheen«      Z€ G di„ dje{ew«      Z� G dk„ dle�ex«      Z‚ G dm„ dnezes«      Zƒ G do„ dpeƒet«      Z„dq„ Z… G dr„ ds«      Z† G dt„ du«      Z‡ej´                  j¶                  ej´                  �j                   G dv„ dwe‡«      «       «       Z‰ej´                  j¶                   G dx„ dye‡«      «       ZŠdz„ 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Úsuppress_warnings)Ú
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)Ú_formats)Úsupported_dtypesÚisscalarlikeÚget_index_dtypeÚasmatrixÚmatrix)ÚspluÚexpmÚinv)Ú	decorator)ÚComplexWarningzgoogle.colabc                 ó8   — |�|n| ›d|›�}t        | |v |¬«       y )Nz not found in )Úmsg)r   )ÚmemberÚ
collectionr6   Úmessages       úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/sparse/tests/test_base.pyÚ	assert_inr;   3   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   8   s&   € ÜˆA�G‰G�q—w‘wÑÔÜ�q˜!Ñ&˜vÓ&r<   Údokc                 ó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_arraysB   sO   € ð ˆØ—‘×"Ñ"Ó$ò 	!ˆAÜ˜!œRŸZ™Z¬"¯*©*Ñ4Õ5Ø—‘˜aÕ ð	!ð ˆr<   TF)rJ   Úmay_share_memory)ÚAÚBrO   rN   Úbs        r:   Úsparse_may_share_memoryrT   ?   sI   € òñ   Ó"ò ˆÙ# AÓ&ò 	ˆAÜ×"Ñ" 1 aÕ(Úñ	ðð r<   Fc                 ó  ‡ ‡‡‡‡‡— ‰ €t        j                  d«      Š nt        j                  ‰ «      Š |rd
d„Šn8‰�d
ˆfd„	Šn/|r't         j                  j                  d¬«      Šd
ˆfd„	Šnd
ˆ fd„	Š‰�ˆfd„Št        ˆˆˆ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_dtypef   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_dtypel   s	   ø€ ØÐr<   éÒ  )Úseedc                 óh   •— t         j                  t         j                  f‰j                  d«         S )Né   )rJ   rZ   Úint64Úrandint)rM   r\   r]   Úcounters      €r:   r_   z4with_64bit_maxval_limit.<locals>.new_get_index_dtypeq   s$   ø€ Ü—H‘HœbŸh™hÐ'¨¯©¸Ó(:Ñ;Ð;r<   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   rg   r   r?   ÚsizeÚ
issubdtypeÚintegerrY   Úmin)rM   r\   r]   r?   ÚarrÚminvalÚmaxval_limits         €r:   r_   z4with_64bit_maxval_limit.<locals>.new_get_index_dtypet   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)rp   Ú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           
      óL  •— 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
}	 |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)ÚscipyÚsparseÚ_bsrÚ_cooÚ_cscÚ_csrÚ_diaÚ_dokÚ_lilÚ_sputilsÚ_compressedÚ
_constructrL   ÚgetattrÚsetattr)ÚfuncrN   ÚkwÚbackupÚmodulesÚmodÚnameÚoldfuncrw   rx   r_   s           €€€r:   Údecoz%with_64bit_maxval_limit.<locals>.deco�   sl  ø€ àˆÜ—<‘<×$Ñ$¤e§l¡l×&7Ñ&7¼¿¹×9JÑ9JÜ—<‘<×$Ñ$¤e§l¡l×&7Ñ&7¼¿¹×9JÑ9JÜ—<‘<×$Ñ$¤e§l¡l×&;Ñ&;Ü—<‘<×+Ñ+¬U¯\©\×-DÑ-DðFˆð	0Øò Q�Ø—‘˜sÐ$5Ü& sÐ,=¸tÓDðFô Gä˜Ð.Ð0CÔDØ"Ñ.Ø—M‘M 3Ð(=Ü#*¨3Ð0EÀtÓ#Lð#Nô Oä˜CÐ!6Ð8OÕPðQñ ˜�>˜b‘>à&,ò 0Ñ"��T˜7ØÑ&Ü˜C  wÕ/ñ0ø fò 0Ñ"��T˜7ØÑ&Ü˜C  wÕ/ñ0ús   Ä3F Ä55F ÆF#ÆF#)ra   NF)rJ   rg   ÚrandomÚRandomStater3   )	rr   r‘   rb   rw   Úassert_32bitr�   ri   rx   r_   s	   ` ``  @@@r:   Úwith_64bit_maxval_limitr”   W   s‰   ý€ ð ÐÜ—x‘x “|‰ô —x‘x Ó-ˆáô	ð
 
Ð	 ö	á	Ü—)‘)×'Ñ'¨TÐ'Ó2ˆö	<õ	ð* Ð"ô	'ô
 õ0ó ð0ð* €Kr<   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?   rf   é   Úfloat64Úint16Úfloat32Ú
complex128)
Ú	spcreatorr   Úreshaper   Úasfptyper?   rJ   Úformatru   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Ústaticmethodr.   Ú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/e0jb                  jd                  d„ «       Z3d„ Z4d„ Z5d„ Z6d„ Z7d „ Z8d!„ Z9d"„ Z:d#„ Z;d$„ Z<d%„ Z=d&„ Z>d'„ Z?d(„ Z@d)„ ZAd*„ ZBeCd+„ «       ZDeCd,„ «       ZEeCd-„ «       ZFeCd.„ «       ZGd/„ ZHd0„ ZIeCd1„ «       ZJeCd2„ «       ZKd3„ ZLd4„ ZMd5„ ZNd6„ ZOd7„ ZPd8„ ZQd9„ ZRd:„ ZSd;„ ZTd<„ ZUd=„ ZVd>„ ZWd?„ ZXd@„ ZYdA„ ZZdB„ Z[dC„ Z\dD„ Z]dE„ Z^dF„ Z_dG„ Z`dH„ ZadI„ ZbdJ„ ZcdK„ ZddL„ ZedM„ ZfdN„ ZgdO„ ZhdP„ ZidQ„ ZjdR„ ZkdS„ ZldT„ ZmdU„ ZndV„ ZodW„ ZpdX„ ZqdY„ ZryZ)[Ú_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   rf   )rð   r   rä   r   )r   rf   r   r   Úd)r   rè   rõ   ræ   Úsetr+   ÚunionÚmath_dtypesÚchecked_dtypesÚ
dat_dtypesÚdatsp_dtypesru   r   rJ   rñ   r–   rI   r)   Úis_array_test)Úclsr?   s     r:   Ú
init_classz_TestCommon.init_class6  s  € ô š¢|²\ÐBÀCÓHˆŒØ—M‘M #§'¡'Ó*ˆŒ	ô
 !Ô!1Ó2×8Ñ8¸¿¹ÓIˆÔØˆŒØˆÔØ×'Ñ'ò 	KˆEØ$'§G¡G§N¡N°5Ó$9ˆC�N‰N˜5Ñ!Ø&)§m¡m°C·G±G·N±NÀ5Ó4IÓ&JˆC×Ñ˜UÒ#ð	Kô 	�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>.checkO  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_boolN  s=   ø€ ô	/ô �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_rollover[  sY   € ô �d˜E�]�OÓ$ˆØ—‘˜sÓ#ˆä�r“ò 	ˆAØ˜E‘MˆEØ˜‘)‰Cð	ô 	˜3 §¡£Õ0r<   c                 óö   ‡ — t        «       }|j                  t        «       |t        ˆ fd„«       «       }‰ j                  j
                  dvrt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 óz  •— ‰	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                  «       «       y ©Nr   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>.checkj  s…  ø€ ð —/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEØ—8‘8“:ˆDØˆD’�1�‰IØ—^‘^ DÓ)ˆFØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFô % S¨D¡[°5¸F±?×2KÑ2KÓ2MÔNä$ S¨D¡[°6¸VÑ3C×2LÑ2LÓ2NÔOÜ$ S¨D¡[°6¸VÑ3C×2LÑ2LÓ2NÔOÜ$ S¨D¡[°6¸VÑ3C×2LÑ2LÓ2NÔOÜ$ S¨D¡[°6¸VÑ3C×2LÑ2LÓ2NÔOä$ S¨F¡]°F¸c±MÔBä$ S¨A¡X°¸±
×/CÑ/CÓ/EÔFÜ$ S¨A¡X°¸±
×/CÑ/CÓ/EÔFÜ$ S¬B¯F©F¡]Ø&+¬r¯v©v¡o×%>Ñ%>Ó%@õBr<   ©ÚbsrÚcscÚcsrú8Bool comparisons only implemented for BSR, CSC, and CSR.©	r   Úfilterr(   Úsup_complexræ   rø   r  r  r  ©r�   Úsupr  r?   s   `   r:   Útest_eqz_TestCommon.test_eqf  sr   ø€ ÜÓ!ˆØ�
‰
Ô*Ô+à	Ü	ó	Bó 
ó 
ð	Bð4 �:‰:×ÑÐ$9Ñ9Ü�K‰KÐRÔSØ×(Ñ(ò 	ˆEÙ�%�Lñ	r<   c                 óö   ‡ — t        «       }|j                  t        «       |t        ˆ fd„«       «       }‰ j                  j
                  dvrt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 óú  •— ‰	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                  «       «       y r#  )r  r  r$  rõ   rü   rþ   rÿ   r  rC   r–   rJ   r%  )
r?   rè   ræ   r&  r'  r(  r*  r)  r+  r�   s
            €r:   r  z"_TestCommon.test_ne.<locals>.check�  s»  ø€ ð —/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEØ—8‘8“:ˆDØˆD’�1�‰IØ—^‘^ DÓ)ˆFØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFô % S¨D¡[°5¸F±?×2KÑ2KÓ2MÔNä$ S¨D¡[°6¸VÑ3C×2LÑ2LÓ2NÔOÜ$ S¨D¡[°6¸VÑ3C×2LÑ2LÓ2NÔOÜ$ S¨D¡[°6¸VÑ3C×2LÑ2LÓ2NÔOÜ$ S¨D¡[°6¸VÑ3C×2LÑ2LÓ2NÔOä$ S¨F¡]°F¸c±MÔBä$ S¨A¡X°¸±
×/CÑ/CÓ/EÔFÜ$ S¨A¡X°¸±
×/CÑ/CÓ/EÔFÜ$ Q¨#¡X°°U±
×/CÑ/CÓ/EÔFÜ$ Q¨#¡X°°U±
×/CÑ/CÓ/EÔFÜ$ S¬B¯F©F¡]Ø&+¬r¯v©v¡o×%>Ñ%>Ó%@õBr<   r,  r0  r1  r4  s   `   r:   Útest_nez_TestCommon.test_ne‹  sr   ø€ ÜÓ!ˆØ�
‰
Ô*Ô+à	Ü	ó	Bó 
ó 
ð	Bð8 �:‰:×ÑÐ$9Ñ9Ü�K‰KÐRÔSØ×(Ñ(ò 	ˆEÙ�%�Lñ	r<   c                 óö   ‡ — t        «       }|j                  t        «       |t        ˆ fd„«       «       }‰ j                  j
                  dvrt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 ó~  •— ‰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  «       y # 1 sw Y   ŒdxY w©Nr   ù      ð?      ð?)rf   rä   r   rå   éþÿÿÿÚignore©Úinvalid©r  r  r$  rõ   ru   Úcomplexrü   rþ   rÿ   r  rC   r–   rJ   rg   Úerrstater%  ©r?   rè   ræ   r&  r'  Ú
datcomplexÚdatspcomplexr(  r*  r)  r+  Úvalr�   s               €r:   r  z"_TestCommon.test_lt.<locals>.check¶  sç  ø€ ð —/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEØ—8‘8“:ˆDØˆD’�1�‰IØ—^‘^ DÓ)ˆFØŸ™¤GÓ,ˆJØ$ˆJ’q˜�s‰OØŸ>™>¨*Ó5ˆLØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFô % S¨4¡Z°%¸&±.×1IÑ1IÓ1KÔLÜ$ Z°$Ñ%6Ø&2°VÑ&;×%DÑ%DÓ%FôHô % S¨4¡Z°&¸6±/×1JÑ1JÓ1LÔMÜ$ S¨4¡Z°&¸6±/×1JÑ1JÓ1LÔMÜ$ S¨4¡Z°&¸6±/×1JÑ1JÓ1LÔMÜ$ S¨4¡Z°&¸6±/×1JÑ1JÓ1LÔMä$ T¨C¡Z°&¸6±/×1JÑ1JÓ1LÔMÜ$ T¨C¡Z°&¸6±/×1JÑ1JÓ1LÔMÜ$ T¨C¡Z°&¸6±/×1JÑ1JÓ1LÔMÜ$ T¨C¡Z°&¸6±/×1JÑ1JÓ1LÔMä$ S¨4¡Z°¸±Ô>Ü$ Z°$Ñ%6¸ÀtÑ8KÔLà(ò M�Ü—h‘h˜s“m�Ü(¨%°#©+×)>Ñ)>Ó)@À#ÈÁ)ÔLÜ(¨#°©+×)>Ñ)>Ó)@À#ÈÁ)ÕLðMô
 —‘ XÔ.ñ 7Ü(¨%´"·&±&©.×)AÑ)AÓ)CØ),¬r¯v©v©ô7÷7ð
 —/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEØ—8‘8“:ˆDØˆD’�1�‰IØ—^‘^ DÓ)ˆFô % S¨6¡\°5¸4±<Õ@÷7ð 7úó   Ê=L3Ì3L<r,  r0  r1  r4  s   `   r:   Útest_ltz_TestCommon.test_lt²  ss   ø€ ÜÓ!ˆØ�
‰
Ô*Ô+à	Ü	ó2	Aó 
ó 
ð2	Aðh �:‰:×ÑÐ$9Ñ9Ü�K‰KÐRÔSØ×(Ñ(ò 	ˆEÙ�%�Lñ	r<   c                 óö   ‡ — t        «       }|j                  t        «       |t        ˆ fd„«       «       }‰ j                  j
                  dvrt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 ó~  •— ‰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  «       y # 1 sw Y   ŒdxY wr<  rB  rE  s               €r:   r  z"_TestCommon.test_gt.<locals>.checkõ  sç  ø€ ð —/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEØ—8‘8“:ˆDØˆD’�1�‰IØ—^‘^ DÓ)ˆFØŸ™¤GÓ,ˆJØ$ˆJ’q˜�s‰OØŸ>™>¨*Ó5ˆLØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFô % S¨4¡Z°%¸&±.×1IÑ1IÓ1KÔLÜ$ Z°$Ñ%6Ø&2°VÑ&;×%DÑ%DÓ%FôHô % S¨4¡Z°&¸6±/×1JÑ1JÓ1LÔMÜ$ S¨4¡Z°&¸6±/×1JÑ1JÓ1LÔMÜ$ S¨4¡Z°&¸6±/×1JÑ1JÓ1LÔMÜ$ S¨4¡Z°&¸6±/×1JÑ1JÓ1LÔMä$ T¨C¡Z°&¸6±/×1JÑ1JÓ1LÔMÜ$ T¨C¡Z°&¸6±/×1JÑ1JÓ1LÔMÜ$ T¨C¡Z°&¸6±/×1JÑ1JÓ1LÔMÜ$ T¨C¡Z°&¸6±/×1JÑ1JÓ1LÔMä$ S¨4¡Z°¸±Ô>Ü$ Z°$Ñ%6¸ÀtÑ8KÔLà(ò M�Ü—h‘h˜s“m�Ü(¨%°#©+×)>Ñ)>Ó)@À#ÈÁ)ÔLÜ(¨#°©+×)>Ñ)>Ó)@À#ÈÁ)ÕLðMô
 —‘ XÔ.ñ 7Ü(¨%´"·&±&©.×)AÑ)AÓ)CØ),¬r¯v©v©ô7÷7ð
 —/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEØ—8‘8“:ˆDØˆD’�1�‰IØ—^‘^ DÓ)ˆFô % S¨6¡\°5¸4±<Õ@÷7ð 7úrI  r,  r0  r1  r4  s   `   r:   Útest_gtz_TestCommon.test_gtñ  ss   ø€ ÜÓ!ˆØ�
‰
Ô*Ô+à	Ü	ó1	Aó 
ó 
ð1	Aðf �:‰:×ÑÐ$9Ñ9Ü�K‰KÐRÔSØ×(Ñ(ò 	ˆEÙ�%�Lñ	r<   c                 óö   ‡ — t        «       }|j                  t        «       |t        ˆ fd„«       «       }‰ j                  j
                  dvrt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 ó°  •— ‰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  «       y ©Nr   r=  )rf   rä   rå   r>  ©r  r  r$  rõ   ru   rC  rü   rþ   rÿ   r  rC   r–   rJ   rg   rE  s               €r:   r  z"_TestCommon.test_le.<locals>.check3  ó¦  ø€ ð —/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEØ—8‘8“:ˆDØˆD’�1�‰IØ—^‘^ DÓ)ˆFØŸ™¤GÓ,ˆJØ$ˆJ’q˜�s‰OØŸ>™>¨*Ó5ˆLØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFØ×'Ñ'¨Ó,ˆFô % S¨D¡[°5¸F±?×2KÑ2KÓ2MÔNÜ$ Z°4Ñ%7Ø&2°fÑ&<×%EÑ%EÓ%GôIô % f°Ñ&6×%?Ñ%?Ó%AÀ3È$Á;ÔOÜ$ f°Ñ&6×%?Ñ%?Ó%AÀ3È$Á;ÔOÜ$ f°Ñ&6×%?Ñ%?Ó%AÀ3È$Á;ÔOÜ$ f°Ñ&6×%?Ñ%?Ó%AÀ3È$Á;ÔOä$ f°Ñ&6×%?Ñ%?Ó%AÀ4È3Á;ÔOÜ$ f°Ñ&6×%?Ñ%?Ó%AÀ4È3Á;ÔOÜ$ f°Ñ&6×%?Ñ%?Ó%AÀ4È3Á;ÔOÜ$ f°Ñ&6×%?Ñ%?Ó%AÀ4È3Á;ÔOä$ U¨d¡]°C¸4±KÔ@Ü$ \°TÑ%9¸:ÈÑ;MÔNà%ò O�Ü—h‘h˜s“m�Ü(¨%°3©,×)?Ñ)?Ó)AÀ3È#Á:ÔNÜ(¨#°©,×)?Ñ)?Ó)AÀ3È#Á:ÕNðOð —/‘/ %Ñ(ˆCØ×%Ñ% eÑ,ˆEØ—8‘8“:ˆDØˆD’�1�‰IØ—^‘^ DÓ)ˆFô % S¨F¡]°E¸T±MÕBr<   r,  r0  r1  r4  s   `   r:   Útest_lez_TestCommon.test_le/  ós   ø€ ÜÓ!ˆØ�
‰
Ô*Ô+à	Ü	ó-	Có 
ó 
ð-	Cð^ �:‰:×ÑÐ$9Ñ9Ü�K‰KÐRÔSØ×(Ñ(ò 	ˆEÙ�%�Lñ	r<   c                 óö   ‡ — t        «       }|j                  t        «       |t        ˆ fd„«       «       }‰ j                  j
                  dvrt        j                  d«       ‰ j                  D ]
  } ||«       Œ y )Nc                 ó°  •— ‰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\  «       y rP  rQ  rE  s               €r:   r  z"_TestCommon.test_ge.<locals>.checkm  rR  r<   r,  r0  r1  r4  s   `   r:   Útest_gez_TestCommon.test_gei  rT  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   ©Úcoor/  r.  Ú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)NrZ  )Nr   rä   rå   r>  r]  znot implemented .* format©Úmatchr   )	ræ   rø   ÚTrJ   ra  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Øò A�Ü×+Ñ+¨A¯I©I«K¸bÔA�Ü˜QŸ_™_°"˜_Ó5°xÕ@ñAð	Añ
 ÜÔ2Ð:UÔVñ 1Ø—
‘
×(Ñ(¨aÐ(Ô0÷1ð 1ð ÷1ð 1ú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   r_  ©r   r   r>  Údiaú(1 diagonals) r-  ú(blocksize=1x1) Ú r   r/   ú<ú sparse ú of dtype 'ú'
	with ú stored elements ú
and shape ú>)rõ   rø   r*   r  r?   r`  rº   Úrepr©r�   ræ   Úextrar  ÚfmtÚ
sparse_clsrk  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ð   ru  é   rî   )ÚmaxprintrV   )rˆ  rð   ÚiFé   )rº   r?   r$  rŽ  z'positional argument|unpack non-iterablerd  )rõ   rJ   r   rö   rŽ  r¿   ÚstrÚsplitrø   r`  r  r   Ú	TypeError)r�   ræ   rè   Ú	nnz_smallÚ	datsp_mp6s        r:   Útest_str_maxprintz_TestCommon.test_str_maxprintÌ  s\  € Ø—‘œ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ñ 	7Ø�N‰N˜3 ¨¨U°AÔ6÷	7÷ 	7ñ 	7ú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 )Nrs  r_  rt  rf   ru  rv  r-  rw  rx  r   r/   ry  rz  r{  r|  r}  r~  z(>
  Coords	Values
  (0, 0)	1
  (2, 2)	-2)rõ   r`  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ï   rf   )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Ó%:Ü—‘˜Ó&ð(ò 	7ˆ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 �]ò 7�Ü˜QŸY™Y›[¨!¯)©)«+°a·i±i³kÑ*AÔBä˜QŸW™W VÔ,Ü˜QŸY™Y›[×.Ñ.¨vÕ6ñ	7ñ	7r<   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   r_  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«  éýÿÿÿr>  )rå   r   rä   ©rf   rð   r�  r  rf   )r   r   rJ   Úpowerrõ   r–   r  rg  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ª  r_  r  )TFF)FFT)r   r   rõ   r–   r  rg  Ú__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   rf   rä   r   rf   rð   ©r   r   rä   )r   r   rf   ©r   rð   r   r�  ©rä   rf   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)  sy  € àˆØ�‰’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™¢) Ó-Ô.àò 	EˆAÜ˜q›Ÿ™‰JˆD�$ØŸ™¨Ó*ˆJÜ˜D˜5 ™7 D¨¡FÓ+ò E�Ü˜Z×0Ñ0°1Ð0Ó5´t¸AÀ´|ÕDðEô ˜×,Ñ,¨rÐ,Ó2´D¸¸b´MÔBÜ˜×,Ñ,¨sÐ,Ó3´T¸!¸s´^ÕDð	Eô 	�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ä   rf   rð   ©r�  rˆ  rî   )é   é   é	   r>  rð   )Úoffsetrå   )rJ   r   rõ   r  r   Útrace)r�   rQ   rR   rÏ  s       r:   Ú
test_tracez_TestCommon.test_traceJ  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Ý  r_  rÌ  )r   r   rˆ  )rù   ÚF))é   rä   )rä   rå  ©Úorder©r   rV   r   r   ©r   r   r   r   ©r   é   é   rÐ  ©rf   rî   )r   rV   r   r   r   r   )r   r   r   rë  rì  rÐ  ©rf   rå   )rå   rî   rp  rf   rî   rä   )Ú
not_an_arg©rð   r�  T©r$  zhas no setter|n't set attributerd  )rõ   r   rö   r–   r  r  r“  r   rº   r  ÚAttributeErrorrl   )r�   r@   rç  ÚsrA   Údesireds         r:   Útest_reshapez_TestCommon.test_reshapeW  s  € Ø�N‰NšI¢y²)ºYÐGÓHˆØò 	HˆEØ'ò H�Ü" 1§9¡9¨Q°e 9Ó#<×#DÑ#DÓ#FØ#$§9¡9£;×#6Ñ#6°qÀÐ#6Ó#FõHñHð	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ñ !Ø �”÷!ð !ð ˆAŒGÜ˜qŸy™y›{¨GÔ4ô 	”j !§)¡)¨a¯f©f¨YÔ7Ü”j !§)¡)¨a°·±¸¨^Õ<÷!ð !ú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 r#  )rJ   r   ro   rº   rÀ   r¿   r   rf  )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 �].  }|dk  r*t        j                  j	                  t        dd«      «      }n"t        j                  j                  dd|¬«      } ‰| ||«       t        «       5 }|j                  t        d«       |j                  ||«       d d d «       t        j                  | |«      }t        j                  |«      j                  dk(  rt        ||d	¬
«       n2t        t        |«      t        |«      «      }t        |d | |d | d	¬
«       t        |j                  «       | d	¬
«       �Œ1 y # 1 sw Y   Œ¢xY w)Nrå   rf   rì  r   rä   rë  ©rl   zChanging the sparsity structuz	{msg} {r}©Úerr_msg)r¿   rJ   r   r‘   Úchoicer  rh   r   r2  r(   Úsetdiagr   rÀ   r   ro   r–   )	rN   rS   rÏ  Úrrø  r5  r  rù  rû  s	           €r:   Úcheck_setdiagz=_TestCommon.test_setdiag_comprehensive.<locals>.check_setdiag•  s!  ø€ ð œ#œbŸg™g a¨›mÓ,¨a°Ð4ó H�Ø�q’5ÜŸ	™	×(Ñ(¬¨q°"«Ó6‘AäŸ	™	×)Ñ)¨!¨R°aÐ)Ó8�Aá˜a  AÔ&Ü&Ó(ð $¨CØ—J‘JÔ6Ð8WÔXØ—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ñ'H÷$ð $ús   Â)EÅE!	rc   )rÒ  ©rˆ  r   ©rä   rˆ  ©rˆ  rä   rš  rä   rï   rˆ  rý  )rJ   r‘   rd   r   rñ   r   r   rõ   r   ro   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Ð*ò 	0ˆEØò 
0‘��!Ü—Y‘Y ˜r !™t Q q¡SÓ)�Øò 0�AÜŸ™ ! Q ¨uÔ5�AØŸ™¨¨1 v°U˜Ó;�Aá! ! Q¨Ô*ô !Ÿi™i×.Ñ.¨r¼¼CÀ»GÀQ»Ð.ÓHò 0˜Ù% a¨¨BÕ/ñ0ñ0ñ
0ñ	0r<   c           
      ó*  — | j                  t        j                  d«      «      }| j                  d«      }g d¢}t        «       5 }|j	                  t
        d«       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ð   rf   rä   úChanging the sparsity structurer�  rÎ  rä   )rð   rð   r   )r   rf   rf   rË  r>  ©rð   r   rä   )rß  rf   ©r   rf   rß  ©rf   r   r   ©r   r   rä   r   )r   r   r   rä   )rõ   rJ   r&   r   r2  r(   r  r  r  r   rÓ  r–   r   )r�   r£  Úm2rH   r5  s        r:   Útest_setdiagz_TestCommon.test_setdiag½  s«  € à�N‰Nœ2Ÿ6™6 !›9Ó%ˆØ�^‰^˜FÓ#ˆÚˆÜÓ ð 	A CØ�J‰JÔ.Ð0QÔRÜœ* 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÷-	A÷ 	Añ 	Aús   ÁF<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Û  sw   € Ü’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ˆÐ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ä   rf   ©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                  «       d d d «       y # 1 sw Y   y xY w)	Nrï   r?  )Úoverr]  r   rä   r>  rå   )
r  rõ   rJ   rD  r   Úsumr   r?   r   Úisscalar)r?   rú  rè   ræ   Úmatricesr�   s       €€r:   r  z#_TestCommon.test_sum.<locals>.checkù  s!  ø€ Ø—,‘,˜x¨™{°%�,Ó8ˆCØ—N‘N 3¨e�NÓ4ˆEÜ—‘ (Ô+ñ OÜ)¨#¯'©'«)°U·Y±Y³[ÔAÜ˜SŸW™W›YŸ_™_¨e¯i©i«k×.?Ñ.?Ô@ÜœŸ™ E§I¡I°4 IÓ$8Ó9Ô:Ü)¨#¯'©'°t¨'Ó*<Ø*/¯)©)¸¨)Ó*>ô@ä˜SŸW™W¨$˜WÓ/×5Ñ5Ø"ŸY™Y¨D˜YÓ1×7Ñ7ô9ä)¨#¯'©'°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÷O÷ Oñ Oús   ÁJ/K9Ë9L)rJ   r‘   rd   r   Úrandr   r|   r–   r  r  r¿   )
r�   Údat_1Údat_2Údat_3Údat_4Údat_5r  r?   rú  r,  s
   `        @r:   Útest_sumz_TestCommon.test_sumî  sÊ   ù€ Ü
�	‰	�‰�tÔÜ—‘š)Ú"Ú"ð$ó %ˆô —	‘	—‘˜q !Ó$ˆÜ—‘˜"˜“ˆÜ—‘˜Ó"ˆÜ—‘˜A˜q¨$Ô/×7Ñ7Ó9ˆØ˜5 %¨°Ð6ˆõ	Oð( ×(Ñ(ò 	 ˆEÜœ3˜x›=Ó)ò  �Ù�e˜Q•ñ ñ	 r<   c                 óZ  — t        j                  d«      }t        g d¢g d¢g d¢g«      }| j                  |«      }t	        t
        |j                  d¬«       t	        t        |j                  d¬«       t	        t        |j                  d¬«       t	        t
        |j                  d	|¬
«       y ©N©rä   rð   r#  r$  r%  rð   r]  ©r   rä   ç      ø?rä   ©r^  Úout)rJ   r   r   rõ   r  r  r*  r“  ©r�   r:  rè   ræ   s       r:   Útest_sum_invalid_paramsz#_TestCommon.test_sum_invalid_params  sy   € Ü�h‰h�vÓˆÜ’YÚÚð!ó "ˆð —‘˜sÓ#ˆä”j %§)¡)°!Õ4Ü”i §¡°Õ8Ü”i §¡°Õ5Ü”j %§)¡)°!¸Ö=r<   c                 ó�   ‡‡— t        g d¢g d¢g d¢g«      Š| j                  ‰«      Šˆˆfd„}| j                  D ]
  } ||«       Œ y )Nr#  r$  r%  c                 ó¦   •— ‰j                  | ¬«      }‰j                  | ¬«      }t        ||«       t        |j                  |j                  «       y ©Nrï   )r*  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  sM   ù€ Ü’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$  r%  r   )r:  Úkeepdims©r:  ©rð   ©rð   rä   rä   )r^  r:  rG  r9  z"output parameter.*wrong.*dimensionrd  )
r  r   rõ   r/   r*  r   rJ   r   r  r  ©r�   Úkeeprè   ræ   Údat_outÚ	datsp_outs         r:   Útest_sum_outz_TestCommon.test_sum_out-  s‡  € Ø×%Ñ%Ð%ˆÜ’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ô œ:Ð-QÔRñ 	&Ø�I‰Iœ%  ›*ˆIÔ%÷	&äœ:Ð-QÔRñ 	EØ�I‰Iœ%¨×);Ò); ! ¡ÀÓCˆIÔD÷	Eð 	E÷	&ð 	&ú÷	Eð 	Eúó   Å%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$  r%  )r   rõ   rJ   r*  r   r   r?   )r�   rè   ræ   r@  rA  s        r:   Útest_numpy_sumz_TestCommon.test_numpy_sumH  s_   € ä’YÚÚð!ó "ˆð —‘˜sÓ#ˆä—&‘&˜“+ˆÜ—F‘F˜5“Mˆ	ä! '¨9Ô5Ü�W—]‘] I§O¡OÕ4r<   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
                  «       y )Nr#  ©rð   r�  rˆ  )rî   rÝ  rß  rï   r]  ©r^  rG  r   rä   r>  rå   )	r   rõ   r   Úmeanr   r?   r   rJ   r+  )r?   rè   ræ   rL  r�   s      €€r:   r  z$_TestCommon.test_mean.<locals>.checkW  s$  ø€ ÜšÚ"Ú"ð$à+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ÕLr<   )r  r  )r�   r  r?   rL  s   `  @r:   Ú	test_meanz_TestCommon.test_meanU  s5   ù€ Ø×%Ñ%Ð%ˆõ	Mð< ×(Ñ(ò 	ˆEÙ�%�Lñ	r<   c                 óx  — | j                  t        j                  d«      «      }t        g d¢g d¢g d¢g«      }| j	                  |«      }t        t        |j                  d¬«       t        t        |j                  d¬«       t        t        |j                  d¬«       t        t        |j                  d	|¬
«       y r5  )	r  rJ   r   r   rõ   r  r  rX  r“  r;  s       r:   Útest_mean_invalid_paramsz$_TestCommon.test_mean_invalid_paramsx  s‚   € Ø�l‰lœ2Ÿ8™8 FÓ+Ó,ˆÜ’YÚÚð!ó "ˆð —‘˜sÓ#ˆä”j %§*¡*°1Õ5Ü”i §¡°&Õ9Ü”i §¡°#Õ6Ü”j %§*¡*°1¸#Ö>r<   c                 ó�   ‡‡— t        g d¢g d¢g d¢g«      Š| j                  ‰«      Šˆˆfd„}| j                  D ]
  } ||«       Œ y )Nr#  r$  r%  c                 ó¦   •— ‰j                  | ¬«      }‰j                  | ¬«      }t        ||«       t        |j                  |j                  «       y r?  )rX  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<   rB  rC  s      @@r:   Útest_mean_dtypez_TestCommon.test_mean_dtype„  sM   ù€ Ü’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rF  )
r  r   rõ   r/   rX  r   rJ   r   r  r  rK  s         r:   Útest_mean_outz_TestCommon.test_mean_out”  s‡  € Ø×%Ñ%Ð%ˆÜ’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Ô&÷	'äœ:Ð-QÔRñ 	FØ�J‰Jœ5¨$×*<Ò*< 1 #¡À!ÓDˆJÔE÷	Fð 	F÷	'ð 	'ú÷	Fð 	FúrP  c                 óú   — t        g d¢g d¢g d¢g«      }| j                  |«      }t        j                  |«      }t        j                  |«      }t	        ||«       t        |j                  |j                  «       y rR  )r   rõ   rJ   rX  r   r   r?   )r�   rè   ræ   r^  r_  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        «       5 }|j                  t        d	«       |j                  t        d
«       |j                  t        d«       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î   rY  ©rº   r?   )ç      @ç        ç      ð?)rj  ç       @rj  )rj  rj  rj  ú&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{   Úlinalgr1   r   r2  r(   r–   r   r   )
r�   ÚMÚsMÚMexpÚNÚsNÚNexpr5  ÚsMexpÚsNexps
             r:   Ú	test_expmz_TestCommon.test_expm¼  s  € Ü’9šiªÐ4´eÓ<ˆØ�^‰^˜A U´%ˆ^Ó8ˆÜ�|‰|× Ñ  Ó#ˆä’<¢ª|Ð<Ó=ˆØ�^‰^˜A U´%ˆ^Ó8ˆÜ�|‰|× Ñ  Ó#ˆäÓ ð 	' CØ�J‰JÜ'Ø8ôð �J‰JÜ'ØUôð �J‰JÜ'Ø@ôô ˜“H×$Ñ$Ó&ˆEÜ˜“H×$Ñ$Ó&ˆE÷	'ô  	" 5¨4¡<´%¸³-Ô@Ü! 5¨4¡<´%¸³-Õ@÷#	'ð 	'ús   Â&A5EÅEc                 ó8   ‡ — ˆ fd„}t         fD ]
  } ||«       Œ y )Nc                 óÒ  •— t        g d¢g d¢g d¢g| «      }t        «       5 }|j                  t        d«       |j                  t        d«       |j                  t        d«       ‰j	                  |d| ¬«      }t        |«      }d d d «       t        j                  «      j                  «       t        j                  d	«      «       t        t        t
        |«       y # 1 sw Y   Œ[xY w)
NrÊ  rf  rg  ro  rn  rm  rY  rh  rð   )r   r   r2  r(   rõ   r2   r   r   r–   rJ   r&   r  r“  )r?   rr  r5  rs  ÚsMinvr�   s        €r:   r  z#_TestCommon.test_inv.<locals>.checkÙ  s½   ø€ Ü’y¢)ªZÐ8¸%Ó@ˆAÜ"Ó$ð 	 ¨Ø—
‘
Ô2ØKôNà—
‘
Ô2ð9ô;ð —
‘
Ô2ØCôFà—^‘^ A¨U¸%�^Ó@�Ü˜B›�÷	 ô & e§i¡i°£m×&;Ñ&;Ó&=¼r¿v¹vÀa»yÔIÜœ)¤S¨!Õ,÷	 ð 	 ús   ¡A"CÃC&)rp  r  s   `  r:   Útest_invz_TestCommon.test_invØ  s"   ø€ ô	-ô �Wò 	ˆEÙ�%�Lñ	r<   c                 ór  — 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«      «       y ©	Nrs  r¸  )r   rˆ  r   r_  )rÀ  r   r   )r   ç      @r   rò   rï   )r   r   rõ   r–   ru   r­  s     r:   Útest_from_arrayz_TestCommon.test_from_arrayê  s�   € ä’7š7¢7ª7Ð3Ó4ˆÜ˜4Ÿ>™>¨!Ó,×4Ñ4Ó6¸Ô:äÒ#Ú"Úðó ˆô 	˜4Ÿ>™>¨!Ó,×4Ñ4Ó6¸Ô:Ü˜4Ÿ>™>¨!°7˜>Ó;×CÑCÓEÀaÇhÁhÈwÓFWÕXr<   c                 óŠ  — | 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«      «       y r€  )r  r   rõ   Útodenseru   r­  s     r:   Útest_from_matrixz_TestCommon.test_from_matrixõ  s›   € à�L‰Lš)¢Y²	º9ÐEÓFˆÜ˜4Ÿ>™>¨!Ó,×4Ñ4Ó6¸Ô:à�L‰LÒ*Ú)Ú#ð%ó &ˆô 	˜4Ÿ>™>¨!Ó,×4Ñ4Ó6¸Ô:ÜØ�N‰N˜1 GˆNÓ,×4Ñ4Ó6¸¿¹ÀÓ8Iõ	
r<   c                 ór  — 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«      «       y r€  )r   rõ   r–   r   ru   r­  s     r:   Útest_from_listz_TestCommon.test_from_list  sŽ   € â’WšW¢WÐ-ˆÜ˜4Ÿ>™>¨!Ó,×4Ñ4Ó6¸Ô:âÚÚðˆô 	˜4Ÿ>™>¨!Ó,×4Ñ4Ó6¼¸a»ÔAÜØ�N‰N˜1 GˆNÓ,×4Ñ4Ó6¼¸a»¿¹ÈÓ8Põ	
r<   c                 ó  — 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«      «       y r€  )r   rÿ   r   rõ   r–   ru   ©r�   rÃ  ÚSs      r:   Útest_from_sparsez_TestCommon.test_from_sparse  s3  € ä’7š7¢7ª7Ð3Ó4ˆØ×Ñ˜qÓ!ˆÜ˜4Ÿ>™>¨!Ó,×4Ñ4Ó6¸Ô:Ø�N‰N˜1ÓˆÜ˜4Ÿ>™>¨!Ó,×4Ñ4Ó6¸Ô:äÒ#Ú"Úðó ˆð ×Ñ˜qÓ!ˆÜ˜4Ÿ>™>¨!Ó,×4Ñ4Ó6¸Ô:Ü˜4Ÿ>™>¨!°7˜>Ó;×CÑCÓEØŸ8™8 GÓ,ô	.à�N‰N˜1ÓˆÜ˜4Ÿ>™>¨!Ó,×4Ñ4Ó6¸Ô:Ü˜4Ÿ>™>¨!°7˜>Ó;×CÑCÓEØŸ8™8 GÓ,õ	.r<   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ï   rH  ©rk  rl  ri  ©rk  rl  ri  ç      @)ræ   r„  rI   r  rJ   r
   r/   r   rè   r   ÚflagsÚc_contiguousÚf_contiguousr   rº   r?   rP   r  r   rf  rõ   r  ru   )
r�   Úchkr:  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ï   rH  rk  .r�  rŽ  )r   rè   ræ   r–   r   r   r�  r‘  r’  rJ   r   rº   r?   r   r   rõ   r  ru   )r�   rè   r“  r:  rN   r”  r  rS   r•  r–  Úarrbools              r:   Útest_toarrayz_TestCommon.test_toarrayP  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                 óº  ‡‡	— 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 ]
  } ||«       Œ �Œ- y )N©y       @      @r   r   ©r   y      @      @r   r_  )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   ø€ Ü˜H iÓ0�Ü˜H iÓ0�Ü" 1 aÔ(Ü˜ ˜
Ô#Ø˜1Ÿ6™6‘M�Ø˜‘d�Ø˜Q™4�x��!‘Ü˜˜!™  !¡™Ô%Ø��!’r<   ©r/  r.  r-  )ÚindicesÚindptrÚdatar[  )ÚrowÚcolr¨  ru  )Úoffsetsr¨  )	r   rõ   r+   ru   r   r?   r–   rø   r   )
r�   rÃ  rŠ  r@   ÚD_castedr$  r¤  r   r¢  r£  s
           @@r:   Útest_astypez_TestCommon.test_astypeu  sS  ù€ äÒ#Ú#Úðó ˆð �N‰N˜1Óˆä!ó  	HˆAà—x‘x “{ˆHØ%ò 8�ØŸ8™8 A¨D˜8Ó1�Ü˜XŸ^™^¨X¯^©^Ô<Ü˜X×-Ñ-Ó/°Ô:Ü˜XŸ_™_¨a¯h©hÕ7ð	8ô �H—O‘O A¨E�OÓ2°hÐ>Ô?Ø—‘ q¨t�Ó4ˆHÜ�H HÐ,Ô-õ	ð �‰Ð"7Ñ7Ø!>ò H�IÙ<¸YÕGñHà—‘ EÒ)Ø!7ò H�IÙ<¸YÕGòHà—‘ EÔ)Ø!4ò H�IÙ<¸YÕGòHñ? 	Hr<   c                 ó¾  — 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 y )Nr�  rž  r_  r¨  Fr¥  )r   rõ   Úhasattrr¨  r�  Ú	writeablerø   r§  r¦  r+   ru   r   r?   )r�   rÃ  rŠ  r@   r¬  r¢  s         r:   Útest_astype_immutablez!_TestCommon.test_astype_immutablež  s¬   € äÒ#Ú#Úðó ˆð �N‰N˜1ÓˆÜ�1�fÔØ%*ˆA�F‰F�L‰LÔ"Ø�8‰8Ð,Ñ,Ø',ˆA�H‰H�N‰NÔ$Ø(-ˆA�I‰I�O‰OÔ%Ü!ò 	9ˆAØ—x‘x “{ˆHØ—x‘x “{ˆHÜ˜Ÿ™¨¯©Õ8ñ	9r<   c                 óB   ‡ — ˆ fd„}‰ j                   D ]
  } ||«       Œ y )Nc                 óÂ   •— ‰j                   |    }‰j                  |    }t        |dz  |dz  j                  «       «       t        |dz  |dz  j                  «       «       y ©Nrf   çÍÌÌÌÌ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Å  s:   € Ø×!Ñ!¤"§*¡*Ñ-ˆÜœ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 )Nrl  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 )Nrl  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î  s:   ø€ ô	=ð  ×%Ñ%ò 	ˆ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  s:   ø€ ô	=ð" ×%Ñ%ò 	ˆ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–   r*  r  r   )r?   rè   ræ   rÏ  ÚsumSÚsumDr�   s         €r:   r  z$_TestCommon.test_add0.<locals>.check   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_add0  s&   ø€ ô		6ð ×%Ñ%ò 	ˆEÙ�%�Lñ	r<   c                 ó$  — t        g d¢g d¢g«      }t        g d¢g d¢g«      }| j                  |«      }| 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ß  )rf   r·  rˆ  )r   rÝ  r   )r   r«  r   ©y      ð?       Ày              @y      ð¿        ©y      @      Ày      À      @rˆ  ©y      @       @y      @      Ày       À      ð?©y              ð¿y      À       @rß  )r   rõ   r   Úmultiplyr–   )	r�   rQ   rR   r  ÚBsprù   rÃ  ÚCspÚDsps	            r:   Útest_elementwise_multiplyz%_TestCommon.test_elementwise_multiply.  s9  € ä’7š8Ð$Ó%ˆÜ’7š8Ð$Ó%ˆØ�n‰n˜QÓˆØ�n‰n˜QÓˆÜ˜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 ]`  }|D ]Y  }	 |j                  «       |z  }|j                  |«      }t        |«      rt        |j                  «       |«       ŒNt        ||«       Œ[ Œb y # t        $ r t        t        |j                  |«       Y Œàw xY w# t        $ r Y Œ”t        $ r t        t        |j                  |«       Y Œ¹w xY w)Nr�  é÷ÿÿÿ©rä   rå   r   )rÝ  rß  râ  rð   rf   rä   )rÞ  rî   rð   )r«  rð   rf   )rî   rî   rî   rÛ  rð  r   ©r   N)r   rJ   Úonesrf  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ÚKspr,  Ú
spmatricesr�  rú  Ú
dense_multÚsp_mults                              r:   Ú#test_elementwise_multiply_broadcastz/_TestCommon.test_elementwise_multiply_broadcastC  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ˆ
ð ò 	CˆAØò C�ðØ!"§¡£¨q¯y©y«{Ñ!:�Jð Ÿ*™* Q›-�Ü# G§O¡OÓ$5°zÕBñCð	Cð ò 	=ˆAØò =�ðØ!"§¡£¨q¡�Jð Ÿ*™* Q›-�Ü˜GÔ$Ü'¨¯©Ó(9¸:ÕFä'¨°Õ<ñ=ñ	=øô "ò Ü!¤*¨a¯j©j¸!Ô<Ùðûô !ò ÙÜ!ò Ü!¤*¨a¯j©j¸!Ô<Ùðús*   Å%!HÇ IÈ$IÉIÉ	I6É#I6É5I6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·  rf   rä   r#  )r   r>  rð   r?  )Údivide)rù  rA  )
rJ   r%  r   r–   ræ   rõ   r   r   r   rD  )r�   rk  ÚdenomrQ   rR   r  rÝ  s          r:   Útest_elementwise_dividez#_TestCommon.test_elementwise_dividez  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ÓˆÜ�[‰[ °(Ô;ñ 	DÜœrŸx™x¬°°c±	Ó(:Ó;¸QÀ¹UÔC÷	Dð 	D÷	:ð 	:ú÷	Dð 	Dú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   rf   r   )r   rð   r�  r   )r   rˆ  r   r   )r   rî   rÝ  rÞ  )rä   rf   çš™™™™™@rð   r   rå   rð   rä   ©r   rä   rf   rð   )rå   rþ  rÀ  )r   rõ   r  r   r–   r   r?   r  rg  Ú__pow__r  rJ   rq  Úmatrix_powerr“  )r�   rQ   rR   ÚexponentÚret_spÚret_nps         r:   Útest_powz_TestCommon.test_pow�  sj  € Ü’<¢ª|º\ÐJÓKˆØ�N‰N˜1Óˆà×Òð +ò 9�Ø˜H™�Ø˜H™�Ü" 6§>¡>Ó#3°VÔ<Ü˜VŸ\™\¨6¯<©<Õ8ð	9ô Ô-¨q¯y©y¸!Ô<Üœ* a§i¡i°Ô4ð —‘˜q  ! ¢A ™wÓ'ˆAÜ˜!˜Q™$Ÿ™Ó)¨1¯9©9«;Õ7à%ò 9�Ø˜H™�ÜŸ™×/Ñ/°°8Ó<�Ü" 6§>¡>Ó#3°VÔ<Ü˜VŸ\™\¨6¯<©<Õ8ð	9ð .ò ?�Üœ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   ©rf   r   ri  ©rf   rð   r   rÍ  )rõ   r   r   r–   r   )r�   rr  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ä   rf   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ä   rf   rð   rJ  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ä   rf   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ä   rf   rð   rJ  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__  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    s   „ ò%ó+r<   r  rf   rä   rð   )rõ   rC   r–   r   rø   )r�   r  r  rQ   r   ÚA_scalarÚA_cs          r:   Útest_mul_custom_typez _TestCommon.test_mul_custom_type  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ä   rf   rð   rÌ   rÒ   rÕ   rØ   rÛ   rÞ   )rõ   rÊ   r   r  s      r:   Útest_comparisons_custom_typez(_TestCommon.test_comparisons_custom_type  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�   rr  r  Úactualrk  s        r:   Útest_dot_scalarz_TestCommon.test_dot_scalar  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ä   rf   r  rÛ  )	rõ   r   rf  ÚoperatorÚmatmulr   r–   r  r  )r�   rr  rR   rª  r*  s        r:   Útest_matmulz_TestCommon.test_matmul#  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ä   rf   rð   )r�  rä   rÍ  )rõ   r   rf  r   r–   r   rº   r/   r   rI   r
   r  rJ   r  r  r¯   r   r   Ú
atleast_2d)r�   rr  rª  Úmatrix_or_arrayÚbad_vecsr@   s         r:   Útest_matvecz_TestCommon.test_matvec5  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ˆàò 	7ˆAÜœ* a§l¡l°AÕ6ð	7ô
 	˜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ä   rf   r  rì  g333333Ó?rð   r�  rˆ  rî   )r/   r   rõ   r   r–   rœ  r�  rž  r‘   rd   r   r  rf  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_sparseT  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ä   rf   rð   r�  rˆ  rî   ©r�  rf   )rõ   r   r/   r   rI   r  r
   Útyper   rº   r   )r�   rN   r3  Ú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ä   rf   r   rð   )r-  r[  r.  r/  ru  rD   r\  ù              @)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™  sC  € Ü�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Õ.ð	/ð )ò 	(ˆ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ˆ  )r-  Úto)rä   rf   rð   rî   )rä   rf   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ÓˆØò 	DˆFÜ˜˜d V™mÓ,ˆBà!ò D�Ø,ò D�AÜ ¡¨q°!¨fÔ!5×!=Ñ!=Ó!?ÀÕCñDñDñ	D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  ©ri  )r   rõ   r   r   r–   r   r?   )r?   rú  rè   ræ   rN   rS   r,  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   rQ  )rè   rJ   r   rõ   r   r   r–   r   rf  r  r  r  r  r¿   )r�   r.  r/  r  rÔ  r?   rú  r,  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   rV  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è  s:   ø€ ô	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ˆ  r_  )rä   rä   rf   )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        «       5 }|j                  t        d«       |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å   rB  r|   zHTaking maximum .minimum. with > 0 .< 0. number results to a dense matrix)rJ   rm   Úcomplexfloatingrõ   ru   r;  r  r   r2  r(   ÚmaximumÚminimumr–   r   r   r?   )r?   Údtype2ÚbtyperQ   rR   r5  Ú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	  sm  ø€ Ü�}‰}˜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Ð"ä"Ó$ð %¨Ø—
‘
Ô2ð7ô8ð Ÿ	™	 !›�ØŸ	™	 !›�÷%ô —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   Ã&9G"Ç"G+)r  r`  rB  r|   )rJ   r   r  r   rñ   rô   r?   )r�   r  r?   rd  re  rj  rk  rl  s   `    @@@r:   Útest_maximum_minimumz _TestCommon.test_maximum_minimum  s³   û€ Ü—(‘(šI¢y²)Ð<Ó=ˆÜ—(‘(šI¢y²*Ð=Ó>ˆä—h‘h¢	ª<ºÐFÓGˆ÷	3ð@ ×%Ñ%ò 	DˆEÜŸ7™7¤B§J¡J´·±Ð>ò D�ØEò D�EÙœ"Ÿ(™( 5›/¬2¯8©8°FÓ+;¸UÕCñDñDñ	D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ñ  FrH  )	ræ   r   r$  rø   Ú	__class__r–   r‡   r   rT   )r�   rQ   Útoselfs      r:   Ú	test_copyz_TestCommon.test_copy.  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_iteratorF  s\   € Ø�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Ñ  r7  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¢  r3  r4  r5  ÚdspÚespÚfsps                 r:   Ú test_size_zero_matrix_arithmeticz,_TestCommon.test_size_zero_matrix_arithmeticM  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˜�ó 	9ˆ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ñ	9r<   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š™™™™™ñ?r_  rï   zdoes not support dtyperd  )rJ   r   Úfloat16r  r  rõ   ru   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Ô÷	ð �n‰n˜QŸX™X¤b§j¡jÓ1Ó2ˆÜœ:Ð-EÔFñ 	2Ø�N‰N˜3¤b§j¡jˆNÔ1÷	2ð 	2÷		ð 	ú÷	2ð 	2ús   ½CÂ"CÃC
ÃCc                 ór   ‡ ‡— dd l Št        «       }|j                  t        «       |ˆˆ fd„«       } |«        y )Nr   c                  óú  •— ‰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 y )N)Úprotocolr   )ræ   r$  r  ÚHIGHEST_PROTOCOLÚloadsÚdumpsr   rº   r   r–   rø   rG   ÚitemsrI   rJ   r
   r  r   )ræ   r†  ÚsploadedÚkeyrH  Úpickler�   s        €€r:   r  z&_TestCommon.test_pickle.<locals>.check¤  s  ø€ à—J‘J—O‘OÓ%ˆEÜ! &×"9Ñ"9Ó:ó ?�Ø!Ÿ<™<¨¯©°UÀX¨Ó(NÓO�Ü˜UŸ[™[¨(¯.©.Ô9Ü" 5§=¡=£?°H×4DÑ4DÓ4FÔGÜ˜UŸ\™\¨8¯?©?Ô;ð !&§¡× 4Ñ 4Ó 6ò ?‘H�C˜Ü! #¤r§z¡zÔ2Ü*¨3°×0AÑ0AÀ#Ñ0FÕGÜ$ S¬%Ô0±SÜ(¨¨Q©´·±Ô<Ü*¨3°×0AÑ0AÀ#Ñ0FÕGä  x×'8Ñ'8¸Ñ'=Ñ =Õ>ò?ñ?r<   )r�  r   r2  r(   )r�   r5  r  r�  s   `  @r:   Útest_picklez_TestCommon.test_pickleŸ  s4   ù€ ÛÜÓ!ˆØ�
‰
Ô*Ô+à	ô	?ó 
ð	?ñ( 	�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   r\  z%Unary ops not implemented for dok/lilrë  r�  rˆ  ç      4@)r  r  ræ   rø   r‡   rJ   rõ   r   rö   r–   r   )rŽ   ÚufuncrL  Ú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�  ©rf   r   r   r   ©rð   r   r   r   ©rð   rf   rä   r   rf   rð   ©rf   rf   rY  rs  )rf   r   r   r_  )r[  r/  ))rå   rf   rî  rÛ  )rJ   r   rõ   r   Úresizer   r–   r  rø   r  r  rg  Ú
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°	Õ:ñ	;r<   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)r/  r.  r[  ru  rD   r\  )ræ   rø   ro  rC   r–   ÚNON_ARRAY_BACKED_FORMATSr   rT   r?   rJ   ró   r   rC  )r�   rQ   Úself_formatrù   Úother_formatrR   s         r:   Útest_constructor1_basez"_TestCommon.test_constructor1_baseù  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ò 		7ˆLØ˜{Ò*ØØ—
‘
˜<Ó(ˆAØ—‘˜A E�Ó*ˆAÜ$ Q§Y¡Y£[°!·)±)³+Ô>à—‘˜A D�Ó)ˆAÜ$ Q§Y¡Y£[°!·)±)³+Ô>ÜÔ/°°1Ó5Ð5Õ6ñ		7r<   N)sr²   r³   r´   rû   r+   r  r%   rü   r"   rý   r   rþ   r    rÿ   r$   r   r!   r  r#   r  r   r  Úclassmethodr  r  r   r6  r9  rJ  rM  rS  rW  rb  rl  rq  r…  r–  r˜  r¤  r®  rµ  rº  r½  rÄ  rÈ  rÙ  râ  rõ  r  ÚmarkÚslowr
  r  r  r!  r3  r<  rD  rO  rS  rY  r[  r`  rb  rd  rz  r~  r3  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+  r0  r8  r>  rD  rN  rS  rY  r\  rm  rq  rt  ry  r  rƒ  rŽ  r§  r±  r¶  ra   r<   r:   r  r  )  s‘  „ Ù@Ø"€Kà€MØ€MØ€MØ€MØ€MØ€MØ€MØ€Gàñ;ó ð;ò.ò	1ò#òJ%òN=ò~<ò|8òt8òtYò1ò;ò
'ò7ò(&ò(7ò$?òJòGòFò/ò
/ò
GòB?ò-=ð^ ‡[�[×Ññ40ó ð40òlAò<#ò#ò! òF
>òò Eò65ò!òF
?òò Fò67òAò8ð$ ñYó ðYð ñ

ó ð

ð ñ

ó ð

ð ñ.ó ð.ò.'6òR#6ðJ ñ&Hó ð&HðP ñ9ó ð9ò	ò	òò
ò,òò0ò2ò<ò*5=òn!DòF%3òN>ò
;òAò3ò"3ò2ò #ò>ò0ò$Xò>64òp+ò(ò2
Dò ò8òò6)DòV:ò0)ò84òt9ò2òò8ò*';ó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   �ŒYxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒyxY w# t        $ r Y ŒQw xY w# 1 sw Y   y xY w)Nrð  úinconsistent shapesrd  zdimension mismatchúunsupported operand)rJ   rå  rõ   r$  r   r  r  r  rf  r–   r   r“  )r�   rN   rS   r@   rA   s        r:   Útest_inplace_densez)_TestInplaceArithmetic.test_inplace_dense	  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‘�÷à�A‘ˆAØ�‰FˆAÜ˜q !§)¡)£+Õ.ð —‘“ˆAØ—‘“ˆAÜœzÐ1EÔFñ Ø�Q‘�÷à—‘�a—c‘c“
ˆAØ�—‘‰HˆAÜ˜q !Ô$ð �F‰F‹Hˆð	%Ø�—‘‰HˆAð —‘“ˆAØ—‘“ˆAÜœzÐ1EÔFñ Ø�Q‘�÷à—‘�a—c‘c“
ˆAØ�—‘‰HˆAÜ˜q !Ô$ô œ9Ð,AÔBñ 	Ø�!‰GˆA÷	ð 	÷Cñ ú÷ñ ú÷"ð ûô ò 	Ùð	ú÷	ð 	úsB   ÃH7Ä>IÆI ÇIÈ(I,È7IÉIÉIÉ	I)É(I)É,I5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)Úcastingrf   rµ  ©	r  r  rJ   Úcan_castÚintr$  r   r–   rp  ©r?   rè   ræ   rN   rS   r�   s        €r:   r  z6_TestInplaceArithmetic.test_imul_scalar.<locals>.checkU	  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_scalarT	  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>.checkl	  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_scalark	  s>   ø€ ô	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¾  rd  )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÷	÷ 	ñ 	ús   ÅE!Å!E*N)r²   r³   r´   r¿  rÉ  rÌ  rÏ  ra   r<   r:   r»  r»  	  s   „ ò6òpò.ó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 )Nrs  ©r�  rð   r   ©r   rf   r   r_  rï   r  ©©r   rð   rn  )r�  r   rR  )r�  rå   rÛ  )
r   rõ   rº   r  r   r;  r  r¯  r“  Ú__getitem__)	r?   rÃ  rQ   rr  ru  r�  rú  r  r�   s	           €r:   r  z*_TestGetSet.test_getelement.<locals>.check¢	  sÁ   ø€ Ü’wÚÚÚð ð (-ô.ˆAð —‘˜qÓ!ˆAà—'‘'‰CˆAˆaä˜A˜2˜q“\ò 1�Ü ˜r 1›ò 1�AÜ   1 Q 3¡¨¨1¨Q¨3©Õ0ñ1ð1ô œ˜a ™f› uÔ-àBò J�Üœz¬9Ð5°q·}±}ÀbÕIñJr<   ©r+   rJ   r?   r  s   `  r:   Útest_getelementz_TestGetSet.test_getelement¡	  s*   ø€ ô	Jô$ &ò 	#ˆEÙ”"—(‘(˜5“/Õ"ñ	#r<   c                 ó\   ‡ — ˆ fd„}t         D ]  } |t        j                  |«      «       Œ y )Nc                 ó|  •— ‰j                  d| ¬«      }t        «       5 }|j                  t        d«       | 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ä   rf   rð   r7  rl  r  rÞ  ©r   rå   rÝ  ©rå   r>  rˆ  )r   rˆ  r   rÞ  )r   r   r�  r   )rf   r   rÝ  r   ))r   r�  )rå   r�  r  rð  ro  g     À^@rÛ  )rA  )rõ   r   r2  r(   r;  rJ   Úbool_r   r–   r  r¯  Ú__setitem__r   r  rm   ra  r“  )r?   rQ   r5  r  rø  r�   s        €r:   r  z*_TestGetSet.test_setelement.<locals>.check¸	  sˆ  ø€ Ø—‘˜u¨E�Ó2ˆAÜ"Ó$ð (¨Ø—
‘
Ô2Ð4UÔVØŸ*™* Q›-��$‘ØŸ*™* S›/��$‘ØŸ*™* Q›-��$‘ØŸ*™* S›/��$‘ØŸ*™* Q›-��$‘Ø Ÿ:™: a›=��%‘ØŸ*™* Q›-��$‘÷(ð œŸ™Ò Ü"Ø—I‘I“Kâ$Ú$Ú$ðôð 8ò D�Üœj¨!¯-©-¸¸UÕCðDò œu¢W›~Ð.ò C�Üœj¨!¯-©-¸ÀÕBðCô —M‘M %¬×);Ñ);Ô<ØœRŸX™XÒ%Øò F�AÜ!¤)¨Q¯]©]¸EÀ1ÕEñFð &ð =÷5(ð (ús   ŸB#F2Æ2F;rÙ  r  s   `  r:   Útest_setelementz_TestGetSet.test_setelement·	  s+   ø€ ô	FôB &ò 	#ˆEÙ”"—(‘(˜5“/Õ"ñ	#r<   c                 óh   ‡ — ˆ fd„}‰ j                   D ]  } |t        j                  |«      «       Œ y )Nc                 ó¾   •— ‰j                  d| ¬«      }t        «       5 }|j                  t        d«       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   r2  r(   r   ©r?   rQ   r5  r�   s      €r:   r  z9_TestGetSet.test_negative_index_assignment.<locals>.checkß	  s[   ø€ Ø—‘˜w¨e�Ó4ˆAÜ"Ó$ð ¨Ø—
‘
Ô2Ð4UÔVØ��%‘÷ô ˜˜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        «       5 }|j                  t        d«       d|| |f<   d d d «       t	        |j                  «       ||¬«       t	        || |f   d|¬«       y # 1 sw Y   Œ9xY w)Nz ; r  rä   rþ  )rõ   r   r2  r(   r   r*  )	r�  rú  Únitemsr6   rQ   r5  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Ü"Ó$ð ¨Ø—
‘
Ô2Ð4UÔVØ��!�Q�$‘÷ô   §¡£¨¸Õ=Ü  ! Q $¡¨°CÖ8÷	ð ús   ©A?Á?B©rf   rð   ©rå   rÞ  rß  rå   r>  rä   )r   ©r�   rë  r�  rú  r£  rù  s   `   @@r:   Útest_scalar_assign_2z _TestGetSet.test_scalar_assign_2é	  s_   ú€ Ø‰ˆˆ1ö	9ð ˜W h´°r³¸B°À"ÄeÈBÃiÀÜ˜B“i¤ r£Ð+ð-ò 	‰DˆAˆqá�a˜˜AÕñ	r<   c                 ó   — | j                  d«      }t        j                  d«      }t        «       5 }|j	                  t
        d«       ||fD ]  }d|d<   d|d<   d|d<   Œ 	 d d d «       t        |j                  «       |«       y # 1 sw Y   Œ$xY w)Nrš  r  rä   r7  r�  r  rß  ©rõ   rJ   r   r   r2  r(   r   r–   ©r�   rQ   rR   r5  rù   s        r:   Útest_index_scalar_assignz$_TestGetSet.test_index_scalar_assignú	  s‹   € Ø�N‰N˜6Ó"ˆÜ�H‰H�VÓˆÜÓ ð 	 CØ�J‰JÔ.Ð0QÔRØ˜�Vò �Ø��#‘Ø��#‘Ø��#’ñ÷	ô 	˜1Ÿ9™9›;¨Õ*÷	ð 	ús   ±/BÂBN)r²   r³   r´   rÚ  râ  ræ  rï  ró  ra   r<   r:   rÑ  rÑ   	  s   „ ò#ò,##òJ#òó"	+r<   rÑ  c                   ó   — e Zd Zd„ Zy)Ú
_TestSolvec                 ó  — 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        «       5 }|j                  t        d«       t        |«      j                  |«      }d d d «       t        ||z  |«       y # 1 sw Y   ŒxY w)Nrë  r   rï   rä   r^  rm  )rJ   r‘   rd   r   rC  r-  r  r¿   r   rõ   r   r2  r(   r0   Úsolver   )r�   rù  rQ   r@   rA   r  r�  r5  s           r:   Ú
test_solvez_TestSolve.test_solve
  sM  € ð ˆÜ
�	‰	�‰�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ÓˆÜÓ ð 	! CØ�J‰JÔ.Ø?ôAä�Q“—‘˜aÓ ˆA÷	!ô 	˜A ™E !Õ$÷		!ð 	!ús   Ä51E>Å>FN)r²   r³   r´   rø  ra   r<   r:   rõ  rõ  
  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_preservation
  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   rf   ©rJ   rò   rZ   ró   rñ   rõ   r   r?   ©r�   ÚdtrQ   s      r:   Ú#test_dtype_preservation_empty_slicez0_TestSlicing.test_dtype_preservation_empty_slice%
  s¶   € ô —8‘8œRŸX™X¤r§z¡z´2·:±:Ð>ò 	0ˆ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Õ/ñ	0r<   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ä   rf   ©rä   rf   rä   ©r�  r   rî   r_  rË  rð   ©r�  r   r   r>  é   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ä   rf   r  r  r_  rË  rð   r  r  r>  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_sliceD
  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   rf   r   rð   rä   rå   r  r  r_  rË  )r   rö   rõ   r   r–   r   )r�   rR   rQ   ræ  rä  s        r:   Útest_get_slicesz_TestSlicing.test_get_slicesZ
  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   é   rf   rì  rð   úfeature not implemented)	rJ   r‘   r-  rõ   r  r  r  r   r–   )r�   Úv0rø  s      r:   Ú test_non_unit_stride_2d_indexingz-_TestSlicing.test_non_unit_stride_2d_indexingg
  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å   r>  rf   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_2r
  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<   rf   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   rf   rä   rð   r‰  rë  rÞ  rå   r�  r>  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€  rl   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 r  )
rI   rJ   r
   rÇ  rº   r   r€  rl   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ä   rf   rˆ  r‰  rå   r>  rˆ  iñÿÿÿ)r  r   rö   rõ   rJ   Ús_r   r   Ú	enumerateÚ	itertoolsÚproductrL   r	  )r�   r$  Úslicesr  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ò 	0‰GˆAˆq�!à�AŠvØØ×Ñ¤ a¨¨A£Õ/ð		0ð ò 	ˆ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ä   rf   r�  )Nrä   rf   Nr  )Nrä   rü  )rä   N)rV   rä   rð   ©rf   rä   )rf   )Nrä   rf   )rä   )rä   Nrf   )rä   rf   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 rangerd  )rˆ  .zindex .10. out of range).rV   rä   rf   )rä   rä   .)rä   .rä   )r  r   rö   rõ   r   r–   r  r   r¯  rf  r   ©r�   rS   rN   s      r:   Útest_ellipsis_slicingz"_TestSlicing.test_ellipsis_slicing  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÷	ä�]‰]œ:Ð-FÔGñ 	ØˆgŠJ÷	ä�]‰]œ:Ð-EÔFñ 	Ø�C‰C�ŠK÷	ô 	˜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÷;	ñ 	ú÷	ñ 	ú÷	ñ 	ú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.zshape mismatchrd  )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/  ss  € Ø—,‘,œ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�  .rf   rä   )r  r   rö   rõ   r   r–   r/  s      r:   Útest_ellipsis_fancy_slicingz(_TestSlicing.test_ellipsis_fancy_slicingE  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ð   rf   z(an index can only have a single ellipsisrd  )..).rä   .)rõ   r   rö   r  r   r¯  ©r�   rN   s     r:   Útest_multiple_ellipsis_slicingz+_TestSlicing.test_multiple_ellipsis_slicingV  s„   € Ø�N‰Nœ6 !›9×,Ñ,¨Q°Ó2Ó3ˆä�]‰]œ:Ø!KôMñ 	àˆhŠK÷	ô �]‰]œ:Ø!KôMñ 	àˆkŠN÷	ð 	÷	ð 	ú÷	ð 	ús   ÁA>Á/B
Á>BÂ
BN)r²   r³   r´   rý  r  r  r  r  r  r  r  r¸  Ú	fail_slowr*  r-  r0  r7  r9  r<  ra   r<   r:   rú  rú  
  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                 ób  — | j                  d«      }t        j                  d«      }t        «       5 }|j	                  t
        d«       ||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_assignb  sÇ   € Ø�N‰N˜6Ó"ˆÜ�H‰H�VÓˆÜÓ ð 	  CØ�J‰JÔ.Ð0QÔRØ˜�Vò  �Ø��!�A�#�a�%‘Ø��!�A�#�a�%‘Ø��!�A�#�a�%‘Ø��!�A‘B�$‘Ø��!�%�R�%˜™�(’ñ ÷	 ô 	˜1Ÿ9™9›;¨Õ*÷	 ð 	 ús   ±AB%Â%B.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                 ó(  •— d| ›d|›�}‰j                  ‰‰f«      }t        «       5 }|j                  t        d«       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   r2  r(   rJ   r   r   r–   )	r�  rú  r6   rQ   r5  rR   r£  rù  r�   s	         €€€r:   rë  z9_TestSlicingAssign.test_slice_assign_2.<locals>._test_setr  s”   ø€ Ø�q�e˜4 ˜uÐ%ˆCØ—‘  1˜vÓ&ˆAÜ"Ó$ð ¨Ø—
‘
Ô2Ð4UÔVØ��!�Q�$‘÷ô —‘˜!˜Q˜Ó ˆAØˆAˆa�ˆd‰GÜ% a§i¡i£k°1¸cÖB÷ð ús   §BÂBrf   rð   rV   r�  rˆ  r>  )r	  r   rî  s   `   @@r:   Útest_slice_assign_2z&_TestSlicingAssign.test_slice_assign_2o  sl   ú€ Ø‰ˆˆ1ö	Cð œ˜q›�] Q¬¨d°B¸Ó(:Ð$;¸aÄÀqÈ"ÃÐ=NÜ˜A“h¤ a¨£Ð-ð/ò 	‰DˆAˆqá�a˜�Oñ	r<   c                 ó¦  — | j                  d«      }t        «       5 }|j                  t        d«       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)NrR  r  rf   rÑ  rÝ  rÝ  rð   r,  rV   r  r   rä   rå   )	rõ   r   r2  r(   r   r–   rJ   r   rf  )r�   rR   r5  rQ   s       r:   Útest_self_self_assignmentz,_TestSlicingAssign.test_self_self_assignment€  sN  € à�N‰N˜5Ó!ˆÜÓ ð 	G CØ�J‰JÔ.Ð0QÔRØˆ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÷#	G÷ 	Gñ 	Gú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        «       5 }|j                  t        d	«       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)NrR  ©rV   r   r   )r   r   rî   )r   r�  r   r_  rä   r   r�  r  rˆ  rÑ  rð   rÝ  rÝ  r,  rf   )rõ   r   r   r2  r(   r   r–   rþ   )r�   rR   rk  Úblockr5  s        r:   Útest_slice_assignmentz(_TestSlicingAssign.test_slice_assignment–  së   € Ø�N‰N˜5Ó!ˆÜš(Ú!Ú"Ú!ð#ó $ˆð �A�˜˜!�u�ˆäÓ ð 		; CØ�J‰JÔ.Ð0QÔRØˆ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ÃC!c                 óh  — | j                  d«      }t        «       5 }|j                  t        d«       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)NrR  r  rˆ  rÑ  rð   rÝ  rÝ  r,  rV   r  rs  r  rË  rH  )
rõ   r   r2  r(   rÿ   rJ   r&   r   r   r–   )r�   rR   r5  rk  s       r:   Ú"test_sparsity_modifying_assignmentz5_TestSlicingAssign.test_sparsity_modifying_assignment©  s¤   € Ø�N‰N˜5Ó!ˆÜÓ ð 	2 CØ�J‰JÔ.Ð0QÔRØˆAˆc‰FØˆAˆc‰FØˆAˆc‰FØˆAˆc‰FØ×&Ñ&¤r§v¡v¨a£yÓ1ˆAˆbˆqˆE÷	2ô š'¢'ª'²(Ð;Ó<ˆÜ˜1Ÿ9™9›;¨Õ1÷	2ð 	2ús   œAB(Â(B1c                 ó<  — | 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        «       5 }|j                  t        d«       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!        t"        |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è  rf   rä   rð   rÞ  rå   r�  r>  rˆ  r   r©  r·  r  rV   éè  rÑ  éd   rÛ  r@  rÍ  )r�  rä   rð   ©rä   rf   r�  )r   rä   rð   r¸  )rõ   r   r   rp  rJ   r$  r   r   r2  r(   r%  r   r–   r€  r  r   r  r  rá  Úlistr	  r$  )
r�   rQ   rR   r$  r(  r5  rú  rN   r�  rS   s
             r:   Útest_set_slicez!_TestSlicingAssign.test_set_slice¶  s_  € Ø�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›[ð*ˆô
 Ó ð 	/ CØ�J‰JÔ.Ð0QÔRÜ! &Ó)ò <‘��1Ø��!‘Ø��!‘Ü" 1§9¡9£;°´4¸³7Õ;ð<ô
 " &Ó)ò E‘��1Ü% fÓ-ò E‘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ñEðEô !  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   ÂE0NÎNc                 óÀ   — | j                  t        j                  d«      «      }| j                  d«      }||dd d…f<   t        |j	                  «       g d¢g d¢g«       y )Nrì  rÝ  rä   rf   ©rä   rä   rä   rË  )rõ   rJ   rå  r   r–   r  s      r:   Útest_assign_emptyz$_TestSlicingAssign.test_assign_emptyã  sL   € Ø�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 )NrY  rð   r   rä   r  r_  )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´   rA  rD  rF  rJ  rL  rR  rU  rX  ra   r<   r:   r?  r?  a  s.   „ ò+òò"Gò,;ò&2ò+(òZ@óKr<   r?  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                 ó6  — | j                  t        j                  ddg«      «      }t        t        t
        t        f|j                  d«       t        t        t
        t        f|j                  d«       t        t        t
        f|j                  g d¢g d¢f«       y )Nrˆ  Úfoo©rf   r^  rÛ  rÍ  )rõ   rJ   r   r  r¯  r  r“  rØ  r­  s     r:   Útest_bad_indexz!_TestFancyIndexing.test_bad_index   sh   € Ø�N‰Nœ2Ÿ8™8 Q¨ FÓ+Ó,ˆÜ”z¤:¬yÐ9¸1¿=¹=È%ÔPÜ”z¤:¬yÐ9¸1¿=¹=È*ÔUÜ”z¤:Ð.°·±Ú ¢,Ð/õ	1r<   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   «       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å   rf   r©  )rf   rÞ  rð   rå   r�  rß  r«  rÞ  r·  r>  r   zOnly 1D or 2D arrays allowedrd  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_indexing  sY  € Ø�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ô	
ô �]‰]œ:Ð-KÔLñ 	Øˆbˆqˆb�A�q�6�(ˆlŠO÷	ä�]‰]œ:Ð-KÔLñ 	Ø��1ˆvˆh˜˜˜ˆlŠO÷	ô 	ØŠ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	ñ 	ú÷	ñ 	ús   áh:á<iè:iéi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‘   rd   r  r-  rÜ  rh   rõ   r'   r–   r   r  r¯  rØ  )r�   ÚNUM_SAMPLESrr  ru  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ï   rf   z(bool index .* has shape .* instead of .*rd  )r  r   rö   rõ   rJ   rå  r  r&  r'  r	  rI   r  r   r¯  )r�   rr  ru  rR   rQ   Úrow_longÚ	row_shortÚcol_longÚ	col_shortre  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�÷ð ñ	÷ð ú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   rf   rý  rï   rè  rß  )TFTTF)
FTTFTFFFFF)rî   r  TrÞ  )rå   r   rä   )rJ   r‘   rd   r  r   rö   rõ   r   rh   r  r   r–   r   r  r¯  rØ  r  )	r�   rR   rQ   re  ré  rL  Ú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   rf   rè  rý  rï   rß  )rˆ  r  )rî   rV   rä   )rJ   r‘   rd   r  r   rö   rõ   r   rh   r  rÿ   r   r–   r  r¯  rØ  r  )	r�   rR   rQ   rL  ÚXspÚZrM  Ú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 )Nrs  r  r   rä   )rõ   r   rJ   Úravelr*  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Ñ  rf   )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                 ó  — | j                  t        ddgddgg«      «      }t        «       5 }|j                  t        d«       |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   rf   rð   r  )rõ   r   r   r2  r(   r   r–   )r�   rž   r5  s      r:   Útest_fancy_indexing_2d_assignz0_TestFancyIndexing.test_fancy_indexing_2d_assignô  s˜   € à�n‰nœU Q¨ F¨Q°¨FÐ#3Ó4Ó5ˆÜÓ ð 	6 CØ�J‰JÔ.Ð0QÔRØ"% q¨! f¨q°!¨f nÑ"5ˆC��A�˜˜A˜�Ñ÷	6ô 	”W˜S“\¤5¨1¨a¨&°1°a°&Ð)9Ó#:Õ;÷	6ð 	6ús   «+BÂ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ä   rf   ©rð   rî   ©FFFFFrï   ©r   rä   rf   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_emptyü  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û   r\  r`  rb  ri  ro  rt  rz  r~  r€  r‚  r‰  ra   r<   r:   rZ  rZ  ñ  sE   „ ñò-ò1ò{=òz<ò4ò,Gò@Iò.Oò
Lò<ó0r<   rZ  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   )rL  r¦  s     r:   Úcheck_remains_sortedr�    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ˆ  r^  rf   r_  )rõ   rJ   r   r  r¯  r  r“  rá  r­  s     r:   Útest_bad_index_assignz._TestFancyIndexingAssign.test_bad_index_assign  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                 ór  •— ‰j                  ‰‰f«      }‰j                  t        j                  ‰‰f«      «      }t	        «       5 }|j                  t        d«       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   r2  r(   r�  r   r–   )r�  rú  rQ   rR   r5  r£  rù  r�   s        €€€r:   Ú_test_set_slicezI_TestFancyIndexingAssign.test_fancy_indexing_set.<locals>._test_set_slice%  s¦   ø€ Ø—‘  1˜vÓ&ˆAØ—‘œRŸX™X q¨! fÓ-Ó.ˆAÜ"Ó$ð  ¨Ø—
‘
Ô2Ð4UÔVØ��!�Q�$‘Ü)¨!Ó,ñ  Ø�A�a˜�d‘G÷ ÷ ô
 & a§i¡i£k°1Õ5÷ ð  ú÷ ð  ús$   Á)B-Á.B!Á6B-Â!B*	Â&B-Â-B6r¸  rV   r�  rð   rˆ  r>  rf   )r@  rP  )r	  rJ   r   ©r�   r•  r�  rú  r£  rù  s   `   @@r:   Útest_fancy_indexing_setz0_TestFancyIndexingAssign.test_fancy_indexing_set"  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Õ!ð	"ô —i‘i “l¤B§I¡I¨a£LÐ1Ð3IÐJò 	"‰DˆAˆqÙ˜A˜qÕ!ñ	"r<   c                 ó\   ‡ — ˆ fd„}t         D ]  } |t        j                  |«      «       Œ y )Nc                 óR  •— ‰j                  d| ¬«      }t        «       5 }|j                  t        d«       | 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   rf   rk  r�  r­  )rõ   r   r2  r(   r;  r   r*  rå  s      €r:   r  zD_TestFancyIndexingAssign.test_fancy_assignment_dtypes.<locals>.check7  sò   ø€ Ø—‘˜v¨U�Ó3ˆAÜ"Ó$ð G¨Ø—
‘
Ô2Ð4UÔVØ!&§¡¨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÷G÷ Gñ Gús   ŸC5DÄD&rÙ  r  s   `  r:   Útest_fancy_assignment_dtypesz5_TestFancyIndexingAssign.test_fancy_assignment_dtypes6  s*   ø€ ô		Gô &ò 	#ˆEÙ”"—(‘(˜5“/Õ"ñ	#r<   c                 óÊ  — | j                  d«      }| j                  t        dd«      «      }g d¢}d}t        |«      }t        «       5 }|j	                  t
        d«       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)NrR  rð   r�  r#  r  r   rä   rf   rì  rV   rë  r_  )r   rV   rë  r¬  rY  rÜ  rÛ  )rÛ  r#  rî   )rõ   r&   r   r   r2  r(   r�  rf  r   r–   r  rJ   r   r   r*  )r�   rQ   rR   Úi0Úi1Úi2r5  rù   s           r:   Útest_sequence_assignmentz1_TestFancyIndexingAssign.test_sequence_assignmentE  sŸ  € Ø�N‰N˜5Ó!ˆØ�N‰Nœ3˜q ›8Ó$ˆâˆØˆÜ�2‹YˆäÓ ð #	/ CØ�J‰JÔ.Ð0QÔRÜ% 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Ó(ñ 2Ø˜Q˜ò 2�AÚ*1�A’gšwÐ&Ò'ñ2÷2ô ˜qŸy™y›{¨AÔ.ð —‘˜vÓ&ˆAÜ% aÓ(ñ 4Ú*3�Ð&Ñ'÷4ä §¡£¨Ô+Ø—‘œRŸX™X fÓ-Ó.ˆAÚ&/ˆAÐ"Ñ#Ü˜qŸy™y›{¨AÔ.÷G#	/ð #	/÷$ñ $ú÷#ñ #ú÷'ñ 'ú÷2ð 2ú÷4ð 4ú÷=#	/ð #	/ús‰   Á"KÁ*AJÂ-AKÄJ'ÄAKÅJ4Å!A+KÇKÇ$>KÈ"KÈ*A'KÊJ$	ÊKÊ'J1	Ê,KÊ4J>	Ê9KËK
	ËKËK	ËKËK"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ä   rf   r„  r…  é*   rï   r†  r‡  rˆ  s        r:   Útest_fancy_assign_emptyz0_TestFancyIndexingAssign.test_fancy_assign_emptyr  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�    s   „ òYò
"ò(#ò+/óZ$r<   r�  c                   ó   — e Zd Zd„ Zy)Ú_TestFancyMultidimc           
      ób  — 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}|D �],  \  }}t         j                  j                  d	«       | j	                  t         j                  j                  d
d«      «      }| j                  |«      }|||f   }t        |«      r|j                  «       }t        ||||f   «       |d
z   }|dz   }t        t        |j                  ||f«       t        t        |j                  ||f«       t        t        |j                  ||gt        d «      f«       t        t        |j                  t        d «      ||gf«       �Œ/ y )Nrä   rf   rð   ©rð   r�  rf   rÛ  r�  ©rˆ  rî   rð   ©rf   rð   rä   rc   rˆ  rÝ  )rJ   r   r‘   rd   r  r-  rõ   r'   r–   r   r  r¯  rØ  r	  )	r�   Úsetsre  ré  rÃ  rŠ  rf  rg  rh  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¢)Ð,Ó-Ü�X‰X’y¢)Ð,Ó-ð/ðˆð ó 	L‰DˆAˆqÜ�I‰I�N‰N˜4Ô Ø—‘œRŸY™YŸ^™^¨A¨qÓ1Ó2ˆAØ—‘˜qÓ!ˆAà�A�a�C‘&ˆCÜ˜Œ}Ø—k‘k“m�Ü˜˜a  ! ™fÔ%à˜‘EˆEØ˜‘EˆEäœ* a§m¡m°e¸A°YÔ?Üœ* a§m¡m°a¸°YÔ?ô œ* a§m¡m°q¸!°f¼eÀD»kÐ5JÔKÜœ* a§m¡m´e¸D³kÀAÀqÀ6Ð5JÖKñ%	Lr<   N)r²   r³   r´   rª  ra   r<   r:   r¤  r¤  Š  s   „ óL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Ý  rf   rð   rÛ  r¦  r§  r¨  )rJ   r‘   rd   r  r-  rõ   r   r�  r   r–   r  r¯  rá  )	r�   rÃ  rŠ  rL  re  ré  rg  rh  rù   s	            r:   Útest_fancy_assign_ndarrayz2_TestFancyMultidimAssign.test_fancy_assign_ndarray®  s�  € Ü
�	‰	�‰�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                 ór  •— ‰j                  ‰‰f«      }t        |«      5  t        «       5 }|j                  t        d«       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   r2  r(   r  rJ   r   r   r–   )r�  rú  rQ   r5  rR   r£  rù  r�   s        €€€r:   r•  zR_TestFancyMultidimAssign.test_fancy_indexing_multidim_set.<locals>._test_set_sliceÒ  s¦   ø€ Ø—‘  1˜vÓ&ˆAÜ% aÓ(ñ Ô*;Ó*=ð ÀØ—
‘
Ô2Ð4UÔVØ��!�Q�$‘÷÷ ð —‘œRŸX™X q¨! fÓ-Ó.ˆAØˆAˆa�ˆd‰GÜ% a§i¡i£k°1Õ5÷ð ú÷ ð ús"    B-«B!Á	B-Â!B*	Â&B-Â-B6rä   rf   rð   r   r�  rÛ  ©r   rf   r�  )r   r�  rð   )r�  rä   rf   )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Õ!ñ	"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‘   rd   r  r-  rõ   r   r–   r  r¯  rá  )r�   rÃ  rŠ  rL  re  ré  r�  Úiirg  rú  Újjrh  rù   s                r:   Útest_fancy_assign_listz/_TestFancyMultidimAssign.test_fancy_assign_listà  sf  € Ü
�	‰	�‰�tÔà�L‰LœŸ™Ÿ™¨¨1Ó-Ó.ˆØ�N‰N˜1ÓˆÜ�I‰I�N‰N˜1˜aÓ ˆâš	Ð"ˆÚš	Ð"ˆàˆˆ!ˆAˆ#‰Øˆˆ!ˆAˆ#‰Ü�Q—Y‘Y“[ !Ô$à/0×1¨! 1Ö%˜R�"�q“&Ô%Ð1ˆÑ1Ø/0×1¨! 1Ö%˜R�"�q“&Ô%Ð1ˆÑ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ä   rf   rð   rð   r�  rf   )rˆ  rî   rð   rf   rð   rä   )rä   rf   rð   r�  rˆ  rî   rÝ  )rJ   r‘   rd   r  r-  rõ   r   r  r¯  rá  r	  )r�   rÃ  rŠ  re  ré  rµ  rg  r¶  rh  ÚC1ÚC2s              r:   Útest_fancy_assign_slicez0_TestFancyMultidimAssign.test_fancy_assign_sliceý  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   ç      À¿rk  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   ru   rÁ  rõ   )r�   Ú_TestArithmetic__AÚ_TestArithmetic__BÚ_TestArithmetic__AspÚ_TestArithmetic__Bsps        r:   Ú__arith_initz_TestArithmetic.__arith_init  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?  r@  r  )Ú_TestArithmetic__arith_initr   r–   r+   rJ   rD  ru   rõ   rm   ra  rÁ  r   r?   ©r�   rÄ  rÅ  rÆ  rÇ  r@   rQ   r  rA   rR   rÝ  ÚD1ÚS1s                r:   Útest_add_subz_TestArithmetic.test_add_sub+  sº  € à!%×!2Ñ!2Ó!4ÑˆˆS�%˜ô 	Ø�U‰]×#Ñ#Ó% s¨S¡yô	
ô
 "ó  	/ˆAÜ—‘ XÔ.ñ "Ø—J‘J˜q“M�÷"à—.‘. Ó#ˆCÜ%ó /�Ü—}‘} Q¬×(:Ñ(:Ô;ÜŸ™¨XÔ6ñ /ØŸH™HŸO™O¨AÓ.˜÷/ð /ð Ÿ
™
 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/ñ	 	/÷"ñ "ú÷
/ñ /ú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?  r@  g›+¡†›„=)Úatol)rÊ  r   rf  r–   r+   rJ   rD  ru   rõ   rm   ra  rÁ  r   r¬  rY   r   r?   rË  s                r:   Útest_muz_TestArithmetic.test_muW  sO  € Ø!%×!2Ñ!2Ó!4ÑˆˆS�%˜ô 	˜E E§G¡G™O×4Ñ4Ó6Ø #§%¡%™Kô	)ô "ó 	0ˆAÜ—‘ XÔ.ñ "Ø—J‘J˜q“M�÷"à—.‘. Ó#ˆCÜ%ò 0�Ü—=‘= ¤B×$6Ñ$6Ô7ØŸ
™
 1›‘AäŸ™¨XÔ6ñ /ØŸH™HŸO™O¨AÓ.˜÷/à—n‘n QÓ'�à˜Ÿ™‘W�Ø˜3Ÿ5™5‘[�ä §
¡
£¨bØ%*¬3¨r«7¯;©;«=Ñ%8õ:ä˜RŸX™X b§h¡hÕ/ò0ñ		0÷"ñ "ú÷/ð /ús   Á*FÃ*F&ÆF#	Æ&F/N)
r²   r³   r´   rû   rÊ  r  r¸  r=  rÎ  rÑ  ra   r<   r:   r½  r½    s5   „ ñò&ð0 ‡[�[×Ñ˜2Óñ)/ó ð)/óV0r<   r½  c                   ó0   — e 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«       | 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ð   r  rf   rÑ  ©r   rV   ©rV   r   )rJ   ró   rñ   rZ   rg   rô   r   rö   rõ   r   ro   rY   r?   r   rp  r  r  )r�   r?   rÃ  rL  rw  s        r:   Útest_minmaxz_TestMinMax.test_minmaxs  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Ü˜Ÿ™› #Ô&Ü˜Ÿ™› !Ö$ð#	%ð( �N‰Nœ2Ÿ9™9 Q¨Ó+×3Ñ3°A°qÓ9Ó:ˆÜ�Q—U‘U“W˜aÔ Ü�Q—U‘U“W—]‘] A§G¡GÔ,àˆBˆÜ�Q—U‘U“W˜bÔ!ð �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Õ,ñ	-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 |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ß  rY  rå   r­  r>  r]  rW  T©r^  Úexplicit)
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   )rV   rˆ  rÖ  Fr×  )r  rJ   r   rö   rõ   r   rY   r–   ro   r   r  Úanyr¨  r   r   rQ  r&  r'  r  r  )r�   rL  rÃ  rL  Ú	axes_evenÚaxes_oddr^  rk  Úexpected_maxÚexpected_minÚexplicit_valuesÚeven_explicit_pairsÚodd_explicit_pairsÚexs                 r:   Útest_minmax_axisz_TestMinMax.test_minmax_axis¢  sD  € Ø×%Ñ%Ð%ˆÜ�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õð		ð ò 
	NˆDÜØ—‘˜4¨$�Ó/×7Ñ7Ó9Ø—‘ÒDÓEôô �v‰v�a—f‘f ‘kÔ"àŸ<™<Ò(HÓI‘àŸ<™<Ò(HÓI�Ü˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀHÕMð
	Nð ò 	Rˆ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ð	Rô �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õð		ð ò 	RˆDØ˜R¢˜U™8ˆLØ˜Q¢˜T™7ˆLØ×%Ò%Ø   rª1 ™~�Ø   qª! ™}�Ü˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀLÔQÜ˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀLÕQð	Rð ò 	RˆDØšQ ˜U™8ˆLØšQ ˜T™7ˆLØ×%Ò%Ø ¢ B¨ ™~�Ø ¢ A t ™}�Ü˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀLÔQÜ˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀLÕQð	Rð �L‰LœŸ™ 'Ó*Ó+ˆØ�N‰N˜1ÓˆØ Ñ(ò 	VˆDÜ˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀAÇEÁEÈtÀEÓDTÔUÜ˜Ÿ™ D°4˜Ó8×@Ñ@ÓBÀAÇEÁEÈtÀEÓDTÕUð	Vð
 �L‰LœŸ™ 'Ó*Ó+ˆØ�N‰N˜1ÓˆØ ˜-ˆÜ"¤9×#4Ñ#4°YÀÓ#PÓQÐÜ!¤)×"3Ñ"3°H¸oÓ"NÓOÐØ+ò 	E‰HˆD�"Üœ* a§e¡e°$ÀÕDÜœ* a§e¡e°$ÀÖDð	Eð +ò 	T‰HˆD�"Ü˜Ÿ™ D°2˜Ó6×>Ñ>Ó@À!Ç%Á%ÈTÀ%ÓBRÔSÜ˜Ÿ™ D°2˜Ó6×>Ñ>Ó@À!Ç%Á%ÈTÀ%ÓBRÕSð	Tð �L‰LœŸ™ 'Ó*Ó+ˆØ�N‰N˜1ÓˆØ*ò 	E‰HˆD�"Üœ* a§e¡e°$ÀÕDÜœ* a§e¡e°$ÀÖDð	Eð ,ò 	T‰HˆD�"Ü˜Ÿ™ D°2˜Ó6×>Ñ>Ó@À!Ç%Á%ÈTÀ%ÓBRÔSÜ˜Ÿ™ D°2˜Ó6×>Ñ>Ó@À!Ç%Á%ÈTÀ%ÓBRÕSñ	T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 ‚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ß  rY  rå   r­  r:  )rä   r�  )r>  rå   r   rä   r]  )r  rJ   r   rö   rp  r%  rõ   Únanmaxr+  Únanminr   r–   rI   rý   )	r�   rÃ  rL  ÚX_nan_maximumÚX_nan_minimumri  r^  ÚX_nan_maximaÚX_nan_minimas	            r:   Útest_nanminmaxz_TestMinMax.test_nanminmax  s�  € Ø�L‰LœŸ™ 2›×.Ñ.¨q°Ó4¼EˆLÓBˆØˆˆ!ŠQˆ$‰ØˆŠ!ˆQˆ$‰Øˆˆ$‰Øˆˆ$‰Ü—&‘&ˆˆ$‰Ü—&‘&ˆˆ$‰Ø�N‰N˜1ÓˆàŸ™›
ˆÜ�{‰{˜=Ô)Ð)Ð)Ø¤§	¡	¨!£Ò,Ð,Ð,àŸ™›
ˆÜ�{‰{˜=Ô)Ð)Ð)Ø¤§	¡	¨!£Ò,Ð,Ð,âˆØò 	@ˆ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 ]W  }t        ||«      }t        t        |d¬«       t        t
        |d¬«       t        t
        |d¬«       t        t        |d	d	¬
«       ŒY y )Nr#  r$  r%  )ro   rY   rð   r]  r7  r8  rä   r9  )r   rõ   r‡   r  r  r“  )r�   rè   ræ   Úfnamer‰   s        r:   Útest_minmax_invalid_paramsz&_TestMinMax.test_minmax_invalid_params#  sv   € Ü’YÚÚð!ó "ˆð —‘˜sÓ#ˆà#ò 	;ˆEÜ˜5 %Ó(ˆDÜœ* d°Õ3Üœ) T°Õ7Üœ) T°Õ4Üœ* d°¸Ö:ñ	;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$  r%  )
Úscipy.sparserý  r   rõ   rI   Ú_minmax_mixinr   rJ   ro   rY   )r�   rý  rè   ræ   s       r:   Útest_numpy_minmaxz_TestMinMax.test_numpy_minmax0  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                 ó$  — 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                  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ˆ  rf   rð   )r   r   rå   r>  )rå   r>  r·  r«  rÍ  )rä   rf   r   r   r�  rð   rÝ  rˆ  )rˆ  rˆ  rð   )r�  rß  rV   )rð   r�  rß  r]  rä   rÒ  r  TFr#  zCannot applyrd  rÚ  r7  r  )rð   r   rð   rð   )r   rf   rf   rf   )rä   rf   r   rð   rä   )r   rð   rð   r   r   rÃ  rf   rå   r  r­  )rþ  rý  rJ   r   r   r  rõ   rI   rÿ  r   ÚargmaxÚargminrÔ  r&  r'  rº   r  r   r  r  r   r`  rö   r   )r�   rý  rÌ  ÚD2ÚD3ÚD4ÚD5rÃ  rž   ÚD6ÚD7Ú	explicitsr^  rî  rk  ré  rê  s                    r:   Útest_argmaxz_TestMinMax.test_argmaxB  sZ  € Ý&Ü�X‰XÚÚÚÚÚð
ó ˆð �\‰\‹^ˆä�X‰X˜˜1�v  1˜vÐ&Ó'ˆÜ�X‰X˜˜1�v  1˜vÐ&Ó'ˆÜ�X‰X’y¢*ªiÐ8Ó9ˆà�b˜"˜b "Ð%ó 	Cˆ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ð	Cð  �^‰^œBŸH™H VÓ,Ó-ˆØ�^‰^œBŸH™H VÓ,Ó-ˆØ˜5�Mˆ	ä&×.Ñ.°°B¨xºÀyÓQó 	K‰MˆC��rØˆ|˜sŸy™y¨™°!Ò3Ü—]‘]¤:°^ÔDñ 7Ø—J‘J D°2�JÔ6÷7ä—]‘]¤:°^ÔDñ 7Ø—J‘J D°2�JÔ6÷7ð 7ð ×%Ò%Ü!Ÿx™x¨›{‘Hä!Ÿx™x°$¸!²)©ÀÓH�HÜ˜SŸZ™Z¨T¸B˜ZÓ?ÀÔJÜ˜SŸZ™Z¨T¸B˜ZÓ?ÀÖJð	Kð �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°Ô@ñ 5Ø—
‘
 ¨t�
Ô4÷5ä—‘œz°Ô@ñ 5Ø—
‘
 ¨t�
Ô4÷5ð 5÷O7ñ 7ú÷7ñ 7ú÷F5ð 5ú÷5ð 5ús0   ÊU Ë	U-ÔU:ÕVÕ U*	Õ-U7	Õ:VÖVN)	r²   r³   r´   rØ  rï  r÷  rú  r   r  ra   r<   r:   rÓ  rÓ  r  s&   „ ò--ò^cTòJ@ò8;ò;ó$M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   rf   rð   rˆ  r&  rß  r]  rä   r>  rå   )r   ru   r  rõ   rJ   rZ   rg   r  ra  Úgetnnzr   r*  r;   r?   r  r  )r�   rè   Úbool_datræ   Úaccepted_return_dtypesr  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´   r  ra   r<   r:   r  r  ’  s   „ ó2r<   r  c                 ó   — |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  )rg  r“  r  r¯  rò  r  r  )rN   rŠ   Úfcs     €r:   Úwrapperz6_possibly_unimplemented.<locals>.wrap.<locals>.wrapper¸  sF   ø€ ðAÙ˜q˜< B™<Ð'øÜ+¬Y¼
Ü"¤Nð4ò Aä Ÿ+™+Ð&?Ó@Ð@ðAús   ƒ ‹4?)Ú	functoolsÚwraps)r  r  s   ` r:   Úwrapz%_possibly_unimplemented.<locals>.wrap·  s'   ø€ Ü�_‰_˜RÓ óAó !ðAð ˆNr<   Útest_ÚNotImplemented)ÚdictrG   rŠ  Ú
startswithr;  r²   Ú	__bases__)r  Úrequirer  Únew_dictrŽ   r‰   s         r:   Ú_possibly_unimplementedr"  ¯  s   € ñ
 Øˆ
ò		ô ˜Ÿ™Ó%ˆØŸ,™,×,Ñ,Ó.ò 	,‰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.
    r  zTest class z overloads test z defined in ÚTestBase)r  r"  rÑ  rõ  r»  r½  rú  r?  rZ  r�  r¤  r¬  rÓ  r  rG   r  Úgetr  r²   r;  )Ú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_classr2  Ë  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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d„ Zy)ÚTestCSRc                 ó„   — t        «       5 }|j                  t        d«       t        |i |¤Žcd d d «       S # 1 sw Y   y xY w©Nr  )r   r2  r(   r    ©r  ÚargsrB   r5  s       r:   rõ   zTestCSR.spcreatorø  ó<   € äÓ ð 	. CØ�J‰JÔ.Ð0QÔRÜ˜dÐ- fÑ-÷	.÷ 	.ò 	.úó   ‹!6¶?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ð   rf   r  rÿ  rð   r/  )r   rÿ   r   r¨  r   r¦  r§  r   r`  rø   r–   ©r�   rS   r4  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–   r<  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   rf   rð   r  rÛ  r  rÿ  )r   rÿ   r   r¨  r   r¦  r§  r–   r<  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©rf   rð   rä   rð   r   rä   rð   r   rf   rä   rf   ©r   rä   r   r   rä   rä   rf   rf   rf   rf   rä   ©g      @g      $@ri  g      "@rk  r�  g      &@rl  g       @g      @r�  rR  rå  r�  rð   ì           rä   r   rï   ©rä   rä   rä   rä   ©r   rf   rf   r   ©r   rä   rä   r   rf   )
r   r	   rÿ   r   r   rö   r–   rJ   Úuint64r`  )r�   r©  rª  r¨  r  r/  rB  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ä   rf   rÍ  r„  )r   rÿ   r   rº   ©r�   r§  r¦  r¨  r/  s        r:   Útest_constructor5zTestCSR.test_constructor52  ó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 rN  )rÿ   r   rº   r   rJ   rm   r?   ÚsignedintegerrQ  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ä   rf   rä   r   r   rf   rï   ©r   rf   r�  rî   rY  ©rº   r#  rÔ  )rˆ  r   rî   r  )r   r   rJ   rg   rÿ   r?   r  rZ   r   r§  r¦  r   r–   )r�   r¨  rª  ÚptrrN   rS   Úexpected_dtypes          r:   Útest_constructor_smallcolz!TestCSR.test_constructor_smallcolC  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ä   rO  r   rf   rï   rX  rð   )r   rJ   rX   rZ   rY   r   rg   rÿ   r   r§  r?   r¦  r   rº   )r�   r¨  Úlargerª  rZ  rN   s         r:   Útest_constructor_largecolz!TestCSR.test_constructor_largecolU  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Ý  rf   rä   rˆ  r�  ©r   rð   rˆ  ©rf   rV   rY  ©rä   rf   rÝ  r�  rˆ  )r   r   rÿ   r$  rŒ  r   r¦  r–   ©r�   r¨  r¦  r§  r3  r4  s         r:   Útest_sort_indiceszTestCSR.test_sort_indicesb  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   rf   r   rð   r   ©rä   rf   rð   r�  rˆ  rî   rÝ  rÞ  ©r   rð   rÞ  rc  rY  rð   rÛ  )r   rÿ   r$  Úeliminate_zerosr   r`  r¨  r–   re  s         r:   Útest_eliminate_zeroszTestCSR.test_eliminate_zerosl  ó‡   € ÜÒ-Ó.ˆÜÒ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�   rL  r¢  r•  s       r:   Útest_ufuncszTestCSR.test_ufuncsw  ó¿   € Ø×ÑœrŸy™y¨›}×4Ñ4°Q¸Ó:¸SÑ@ÓAˆðJò 	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ˆ  ra  rb  rc  rY  rî   ©rÞ  rä   rˆ  rÝ  rf   r�  ©r   rf   rî   )r   r   rÿ   r   r–   re  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ä   rf   rð   r¦  rc   rˆ  rÝ  ©
rJ   r   r‘   rd   r  r-  rõ   r'   r–   r   ©r�   re  ré  rÃ  rŠ  rf  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ä   rf   TFN)rJ   r   rÿ   r$  r   r‹  rI   r  rŒ  r   r¦  )r�   Úsorted_indsÚunsorted_indsr¨  r§  rr  s         r:   Útest_has_sorted_indiceszTestCSR.test_has_sorted_indicesœ  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                 ó¨  — | j                  t        j                  dg«      t        j                  dg«      t        j                  ddg«      f«      }t        d|j                  «       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                  «        t        d|j                  «       t        dt        |j                  «      «       | j                  |||f«      j                  «       }d|_        t        d|j                  «       t        dt        |j                  «      «       |j                  «        t        dt        |j                  «      «       y)z=Ensure has_canonical_format memoizes state for sum_duplicatesrf   r   rä   TFN)rÿ   rJ   r   r   Úhas_canonical_formatr$  rI   r  Úsum_duplicatesr¿   r¦  )r�   rr  r¦  r¨  r§  s        r:   Útest_has_canonical_formatz!TestCSR.test_has_canonical_format¸  sb  € ð ×Ñ¤§¡¨!¨£¬r¯x©x¸¸«}¼b¿h¹hÈÈ1ÀvÓ>NÐOÓPˆÜ�T˜1×1Ñ1Ô2ä—(‘(˜A˜q˜6Ó"ˆÜ�x‰x˜˜A˜ÓˆÜ—‘˜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›Õ'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 )Nrf   rï   r   ©rä   éÿÿÿrY  ©rä   ì        r  )rJ   r   rZ   rÿ   r   r§  r?   rg   ©r�   r§  r¦  ÚvalsrN   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                  t        j                  d«      gdgfd¬«      }| j                  |«      }|j	                  dt        j
                  |j                  d   «      z  «       |d   dk(  sJ ‚y ©Néê  r   )r‘  r‘  rY  rˆ  rp  ©r   rJ   r   rõ   r  rå  rº   rÂ  s      r:   Útest_setdiag_csrzTestCSR.test_setdiag_csrí  ói   € à×Ñ¤§¡¨4£Ð 1°A°3Ð7¸|ÐÓLˆØ�N‰N˜1ÓˆØ	�	‰	�!”b—g‘g˜aŸg™g a™jÓ)Ñ)Ô*Ø�‰y˜AŠ~Ð‰~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   rf   rä   )rÿ   r`  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  r=  r@  rB  rL  rR  rV  r\  r_  rf  rl  rq  rv  r|  r�  r…  r�  r“  r˜  ra   r<   r:   r4  r4  ÷  s�   „ Øñ.ó ð.ð —8‘8˜RŸW™W b§j¡j°"·-±-Ð@€Kò
-ò4ò4òò(,ò<ò+ò$5ò9ò	9ò
Jò	Kò"ò5ò8(ò:ò0ó&r<   r4  c                   ó   — e Zd Zed„ «       Zy)ÚTestCSRMatrixc                 ó„   — t        «       5 }|j                  t        d«       t        |i |¤Žcd d d «       S # 1 sw Y   y xY wr6  )r   r2  r(   r   r7  s       r:   rõ   zTestCSRMatrix.spcreator  ó<   € äÓ ð 	/ CØ�J‰JÔ.Ð0QÔRÜ˜tÐ. vÑ.÷	/÷ 	/ò 	/úr:  N©r²   r³   r´   r·  rõ   ra   r<   r:   r›  r›     ó   „ Øñ/ó ñ/r<   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d„ Zy)ÚTestCSCc                 ó„   — t        «       5 }|j                  t        d«       t        |i |¤Žcd d d «       S # 1 sw Y   y xY wr6  )r   r2  r(   r   r7  s       r:   rõ   zTestCSC.spcreator  r9  r:  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   rf   r   rð   r  )rä   rf   rä   rð   )r   rf   rä   rf   r†  r�  r.  )r   rþ   r   r¨  r   r¦  r§  r   r`  rº   rø   r<  s      r:   r=  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 )Nr?  r  rˆ  ©rf   r�  rf   )r   r   r   r   r   rä   rä   )r   rþ   r   r¨  r   r¦  r§  r<  s      r:   r@  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   rf   r  r#  )r   rþ   r   r¨  r   r¦  r§  r<  s      r:   rB  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 )NrD  rE  rF  rR  rå  r�  rð   rH  rI  rJ  rf   )r   r	   rþ   r   r   rö   r–   r`  )r�   r©  rª  r¨  r  r.  s         r:   rL  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 ©NrO  rP  rÍ  )rî   rð   )r   rþ   r   rº   ©r�   r§  r¦  r¨  r.  s        r:   rR  zTestCSC.test_constructor5:  rS  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   rm   r?   rU  r¬  s        r:   rV  zTestCSC.test_constructor6B  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 )Nrh  ri  rj  ©rV   rf   rY  rð   rÛ  )r   rþ   r$  rk  r   r`  r¨  r–   re  s         r:   rl  zTestCSC.test_eliminate_zerosK  rm  r<   c                 ó(  — t        d«      }t        g d¢«      }g d¢}| j                  |||fd¬«      }|j                  «       }|j	                  «        t        |j                  g d¢«       t        |j                  «       |j                  «       «       y )Nrˆ  ra  rb  r¯  rY  rd  )r   r   rþ   r$  rŒ  r   r¦  r–   )r�   r¨  r©  rZ  r3  r4  s         r:   rf  zTestCSC.test_sort_indicesV  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@ro  T)rþ   rJ   r   rö   r   r¯  ræ   r‡   rº   r   r¦  r§  r–   rp  s       r:   rq  zTestCSC.test_ufuncs`  rr  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ˆ  ra  rb  r¯  rY  rî   rt  ru  )r   r   rþ   r   r–   re  s         r:   rv  z TestCSC.test_unsorted_arithmeticl  rw  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 ry  rz  r{  s         r:   r|  z%TestCSC.test_fancy_indexing_broadcastw  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 )
Nrf   rï   r   )rˆ  rä   rY  )rŠ  rä   r  r‡  r‰  )	rJ   r   rZ   rþ   rÿ   r   r§  r?   rg   r‹  s               r:   r�  zTestCSC.test_scalar_idx_dtype…  rŽ  r<   c                 óö   — | j                  t        j                  d«      gdgfd¬«      }| j                  |«      }|j	                  dt        j
                  |j                  d   «      z  «       |d   dk(  sJ ‚y r�  r’  rÂ  s      r:   Útest_setdiag_csczTestCSC.test_setdiag_csc�  r”  r<   N)r²   r³   r´   r·  rõ   rJ   rà  r™  rñ   rô   r  r=  r@  rB  rL  rR  rV  rl  rf  rq  rv  r|  r�  r·  ra   r<   r:   r¡  r¡    sw   „ Øñ.ó ð.ð —8‘8˜RŸW™W b§j¡j°"·-±-Ð@€Kò'ò7ò/òò,ò<ò	9ò9ò
Jò	Kò"òó0r<   r¡  c                   ó   — e Zd Zed„ «       Zy)ÚTestCSCMatrixc                 ó„   — t        «       5 }|j                  t        d«       t        |i |¤Žcd d d «       S # 1 sw Y   y xY wr6  )r   r2  r(   r   r7  s       r:   rõ   zTestCSCMatrix.spcreator©  r�  r:  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   r×  rë  ©rˆ  rî   )r  rf  r   r   r–   )r�   rQ   rÃ  ræ  s       r:   Ú	test_multzTestDOK.test_mult·  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¬  éöÿÿÿr7  rë  r  rV   r   rì  r^  )rõ   r   r   r–   r  s      r:   Útest_add_nonzerozTestDOK.test_add_nonzero¿  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À  r7  rë  r  r^  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ä   r,  rf   r  rð   rJ  r�  r  rˆ  rR  rî   r:  )	r  r   r–   r   rœ  r   r   rº   r�  )r�   r£  rù  rN   r.  rS   r/  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 )NrY  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  ³  s>   „ Ø€IØ—7‘7˜BŸJ™J¨¯©Ð6€Kò5ò
+ò;ò<ò>%ó*Br<   r  )r-  r.  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   r×  y              4@r½  rï   Úppc64le)
r   rJ   rô   r  ÚplatformÚmachiner   rf  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 )NrY  rf   rÑ  r�  r   )r  r   )r�   r@   s     r:   Útest_scalar_mulzTestLIL.test_scalar_mul0  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   rf   rð   r  r  rð   )ÚaddÚsubÚmulÚ__iÚ__r6  rñ   rï   )çš™™™™™¹?rä  rä  r   )	r  rŠ  r$  r‡   r   r–   rJ   r?   r  )r�   rQ   rR   r¨  ÚoprÎ   rk  r=  s           r:   Útest_inplace_opszTestLIL.test_inplace_opsB  s  € Ø×Ñ¢	ª9Ð5Ó6ˆØ×Ñ¢	ª9Ð5Ó6ˆà˜1˜q™5�zØ˜1˜q™5�zØ˜1˜q™5�zñ#ˆð &*§Z¡Z£\ò 	EÑ!ˆBÑ!�˜Ø—V‘V“XˆFØ)ŒG�F˜c "  R˜LÓ)¨%Ô0ä˜vŸ~™~Ó/°×1AÑ1AÓ1CÕDð		Eð ×Ñ˜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_iterationV  sX   € ÚšyÐ)ˆØ×Ñœu X›Ó/ˆÜ “lò 	R‰FˆAˆsÜ˜sŸ{™{›}¬e°H¸Q±KÀsÇxÁxÔ.PÕQñ	Rr<   c                 óê   — | j                  d«      }d|d<   d|d<   d|d<   d|d	<   d
|d<   |j                  «       }| j                  |«      }t        |j                  «       |j                  «       «       y )NrÔ  rV   r×  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Û  rf   rð   )r  r   rö   r  r   r   r–   )r�   rr  rQ   s      r:   Útest_fancy_indexing_lilzTestLIL.test_fancy_indexing_lilh  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 )NrR  rä   rÑ  rf   r  rð   r­  r�  rJ  r7  r¬  rs  r_  ©r   r   rß  )r   rÃ  r   )r  r   rÜ  r–   )r�   Úlr£  s      r:   Útest_point_wise_multiplyz TestLIL.test_point_wise_multiplyo  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 )NrY  rl  r   )r  rJ   rå  r;  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Ò  )r-  c                   ó   — e Zd ZeZy)ÚTestLILMatrixN)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ej                   j#                  dd¬«      d	„ «       Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestCOOc                 ó°  — 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 )NrD  rE  rF  rR  rå  r�  rð   rG  rä   r   rï   )r   rý   r   r   rö   r–   rJ   rK  )r�   r©  rª  r¨  r[  rB  s         r:   r=  zTestCOO.test_constructor1›  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ä   rf   rf   rf   rf   r   r   rf   rf   )
r   rf   r   rf   rä   rä   rä   r   r   rf   )
rf   rß  r«  rˆ  rÝ  r   rå   rf   rä   r©  rY  )r�  rå   r   rð  )r·  rÝ  r   )r   rý   r   r–   )r�   r©  rª  r¨  r[  rž   s         r:   r@  zTestCOO.test_constructor2©  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 )NrR  )rý   r   rº   r©  rª  r¨  r–   r   ©r�   r[  s     r:   rB  zTestCOO.test_constructor3´  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 interpretedrd  )r   r  é   é!   rÿ  ré  r½  r  rY  )
r   rý   r   r–   r  rö   r  r   r“  r  )r�   rž   r[  rk  s       r:   rL  zTestCOO.test_constructor4¾  sþ   € ä’YÚÚð ó !ˆð × Ñ  Ó%ˆÜ˜3Ÿ;™;›=¨#Ô.ô ’IÓˆØ× Ñ  Ó%ˆØ×,Ò,‘3°#·+±+¸aÀÓ2DˆÜ˜3Ÿ;™;›=¨(Ô3ô �]‰]œ9Ð,KÔLñ 	NØ×Ñš²º|Ð0LÔM÷	Nô �]‰]œ:Ð-CÔDñ 	>Ø×Ñš°fÐÔ=÷	>ð 	>÷		Nð 	Nú÷	>ð 	>ú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¨  r[  s      r:   Ú"test_constructor_data_ij_dtypeNonez*TestCOO.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__©ÚrunÚreasonc                  ó   — y r>   ra   r½   s    r:   rt  zTestCOO.test_iteratorÙ  ó   € àr<   c                 ó€   — ddgg}| j                  |«      j                  «       }t        |j                  «       |«       y rk   )rý   Útodiar   r–   )r�   r   ru  s      r:   Útest_todia_all_zeroszTestCOO.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 )NrR  rä   rf   r   rð   )rý   r„  r   r–   r©  rª  r¨  rü  s     r:   Útest_sum_duplicateszTestCOO.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 )NrH  rI  rJ  )rý   r|  r   r–   )r�   r[  rD   s      r:   Útest_todok_duplicateszTestCOO.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 )NrH  rI  rJ  rf   )rý   r�  r   r`  rœ  )r�   r[  r/  r.  s       r:   Útest_tocompressed_duplicatesz$TestCOO.test_tocompressed_duplicatesô  s^   € Ø× Ñ ¢)ªiºÐ-CÐ!DÓEˆØ�i‰i‹kˆÜ�S—W‘W˜q‘[ #§'¡'Ô*Ø�i‰i‹kˆÜ�S—W‘W˜q‘[ #§'¡'Õ*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 )Nrh  )r   r   r   rä   rä   rä   rä   rä   ri  rc  rY  r   )	r   rý   r$  rk  r   r¨  Úallr   r–   )r�   r¨  r©  rª  r3  r4  s         r:   rl  zTestCOO.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�   rp   Ú	new_shaper@   rA   s        r:   Útest_reshape_copyzTestCOO.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ÀÆ- rN  )éÁÆ- éé  )r  r  rù   ræ  r   rä  )rý   r   rö   r`  )r�   Úmat1Úmat2s      r:   Útest_large_dimensions_reshapez%TestCOO.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´   r"   rõ   rJ   r™  rñ   rô   r  r=  r@  rB  rL  r  r  r¸  Úxfailrt  r
  r  r  r  rl  r  r  ra   r<   r:   rø  rø  •  sˆ   „ ð €IØ—7‘7˜BŸJ™J¨¯©Ð6€Kò1ò	/ò9ò>ò,1ð
 ‡[�[×Ñ˜5Ð)JÐÓKñó Lðò1ò
*ò9ò
+ò9ò9ó	Mr<   rø  )r&  r'  r(  r)  r*  c                   ó   — e Zd ZeZy)ÚTestCOOMatrixN)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
ej                  j                  dd¬«      d„ «       Z ed«      d„ «       Zej                  j#                  d¬	«      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ä   rf   r   r�  )r   rf   rð   r   )r   r   rð   r�  rÍ  rð   r   r]  ©r   rå   rf   r  rY  )r   rJ   Úrepeatr   r   r–   )r�   rÃ  r¨  r«  s       r:   r=  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__r  c                  ó   — y r>   ra   r½   s    r:   rt  zTestDIA.test_iterator6  r  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ð   rI  rf   rÎ  r�  )	r   rJ   r&   r   r«  r?   rZ   r  rg   ©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<   zDIA stores extra zeros©r  c                  ó   — y r>   ra   r½   s    r:   r  zTestDIA.test_getnnz_axisF  r  r<   c                 óö   — | j                  g d¢gdgfd¬«      }|j                  «       }t        |j                  «       j                  «       |«       t        |j	                  «       j                  «       |«       y )Nr–  rå   r:  rY  )r   r–   r   rœ  r�  )r�   r£  rk  s      r:   Útest_convert_gh14555zTestDIA.test_convert_gh14555J  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ä   rf   rð   r�  r   )
r   rž  rJ   Úravel_multi_indexr©  rª  rº   r  Údiffrƒ  )r�   r£  Ú	flat_indsÚinds_are_sorteds       r:   Útest_tocoo_gh10050zTestDIA.test_tocoo_gh10050Q  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   r]  r"  rï   r  rY  )rJ   r   r#  rZ   r|   r$   rž  rª  r?   r�  r¦  rœ  )r�   r¨  r«  ru  r[  r/  r.  s          r:   Útest_tocoo_tocsr_tocsc_gh19245z&TestDIA.test_tocoo_tocsr_tocsc_gh19245X  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                  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ä   rf   r   r�  rð   rî   rå  )r   rI   ro  r   r–   rÜ  )r�   r£  ÚresÚres2s       r:   r¹  zTestDIA.test_mul_scalare  s—   € à×Ñ  A ¨¨A¨Ð/Ó0ˆØ�!‰eˆÜ˜#˜qŸ{™{Ô+Ð+Ð+Ü˜3Ÿ;™;›=¨A¨q¨6°A°r°7Ð*;Ô<à�z‰z˜!‹}ˆÜ˜$ §¡Ô,Ð,Ð,Ü˜4Ÿ<™<›>¨Q°¨F°Q¸°GÐ+<Õ=r<   N)r²   r³   r´   r$   rõ   rJ   r™  rñ   rô   r  r=  r  r¸  r  rt  r”   r'  r  r  r+  r1  r3  r¹  ra   r<   r:   r   r   '  s¥   „ ð €IØ—7‘7˜BŸJ™J¨¯©Ð6€KòUð ‡[�[×Ñ˜5Ð)JÐÓKñó Lðñ ˜QÓñ	0ó  ð	0ð ‡[�[×ÑÐ5ÐÓ6ñó 7ðò:ò9ò-ó	>r<   r   )r&  r'  r(  r)  r*  r-  r.  c                   ó   — e Zd ZeZy)ÚTestDIAMatrixN)r²   r³   r´   r   rõ   ra   r<   r:   r8  r8  q  rÐ  r<   r8  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ej,                  j/                  dd¬«      d„ «       Zej,                  j/                  dd¬«      d„ «       Zd„ Zej,                  j/                  dd¬«      d„ «       Zej,                  j9                  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   rf   rf   r�  )r   rf   rf   rð   )r�  rf   rð   r#  rG  r   r²  )rî   r   rV   rä   )r   r�  rÞ  )rå  r   rë  rf   )r   rˆ  rV   )r‰  r   r  rð   rý  ré  rF  ©rî   rå  rY  )r   r   r   rü   r   r–   )r�   r§  r¦  r¨  rQ   r  s         r:   r=  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Ý  r,  )r�  rî   r­  rI  rì  rý  ré  rF  r#  rG  r=  rY  r  rí  )rf   rå  )rð   rå  rþ  )r   r   rü   r–   r   )r�   rº   rQ   s      r:   r@  zTestBSR.test_constructor2—  sò  € ð Bò 	=ˆEÜ�e“ˆAÜ˜×+Ñ+¨AÓ.×6Ñ6Ó8¸!Õ<ð	=ô �%‹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   rf   rð   r­  rI  )r   r   rü   r–   )r�   ÚargrQ   s      r:   rB  zTestBSR.test_constructor3¯  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)rJ  r$  )rJ   rå  r   r   rZ   r   rü   )r�   rù  r¨  r§  r¦  s        r:   rL  zTestBSR.test_constructor4µ  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   rT  rI  r  )rJ   rå  r   r   r  r  rü   )r�   rù  Ú	data_1dimr¨  r§  r¦  s         r:   rR  zTestBSR.test_constructor5¾  sù   € àˆÜ—G‘G˜A“Jˆ	Ü�w‰w˜˜1˜a�yÓ!ˆÜ—‘˜1˜a˜&Ó!ˆÜ—)‘)˜A“,ˆäœ:Ó&ñ 	=à×Ñ 	¨7°FÐ;Ô<÷	=ô œ:Ó&ñ 	Mà×Ñ  g¨vÐ6À)ÐÔL÷	Mô œ:Ó&ñ 	Jà×Ñ  g¨vÐ6À&ÐÔI÷	Jð 	J÷	=ð 	=ú÷	Mð 	Mú÷	Jð 	Jú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   rf   rï   r,  rI  )rJ   r   rZ   rü   r?   )r�   rH   r§  r¦  rS   s        r:   Útest_default_dtypezTestBSR.test_default_dtypeÒ  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 )
Nrh  rä   rå   rf   ri  rj  )r�  rë  rY  rå  )
r   rf  rö   r   rü   r$  rk  r   r`  r–   re  s         r:   rl  zTestBSR.test_eliminate_zerosñ  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ì  rI  gÍÌÌÌÌÌì?éB   )r  rf   rð   rk  rÞ  )rJ   r‘   rd   rü   r¨  rk  r   r`  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                 óì   — | j                  t        d«      j                  dd«      d¬«      }t        |j                  d   «      j                  dd«      }t	        ||z  |j                  «       |z  «       y )Néx   rÞ  r‰  ©r�  rˆ  rI  rä   rå   ©rü   r   rö   rº   r   r–   rW  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 )	NrP  rÞ  r‰  rQ  rI  rä   rî   rå   rR  rW  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__r  c                  ó   — y r>   ra   r½   s    r:   rt  zTestBSR.test_iterator  r  r<   zBSR does not have a __setitem__c                  ó   — y r>   ra   r½   s    r:   r  zTestBSR.test_setdiag"  r  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Ý  rI  r¬  rä   r   rf   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=  r  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)
Nrf   rï   r   r  r‡  rY  r‰  )r   rä   rˆ  )r   rä   rŠ  )
rJ   r   rZ   rü   r   r§  r?   rg   ÚMemoryErrorr  )r�   r§  r¦  rŒ  rN   rS   r   r  Úvals2Úvals3r¡  r¢  r@   s                r:   r�  zTestBSR.test_scalar_idx_dtypeA  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  r=  r@  rB  rL  rR  rE  rJ  rl  rN  rS  rU  r  r¸  r  rt  r  rY  r
  ÚskipifÚIS_COLABr�  ra   r<   r:   r:  r:  y  s	  „ ð €IØ—7‘7˜BŸJ™J¨¯©Ð6€Kò'ò.Kò0MòRòJò(1ò=ò.	9ò<ò.-ò
-ð
 ‡[�[×Ñ˜5Ð)JÐÓKñó Lðð ‡[�[×Ñ˜5Ð)JÐÓKñó Lðò4ð. ‡[�[×Ñ˜5Ð)JÐÓKñó Lðð ‡[�[×Ñ˜Ð)?ÐÓ@ñó Añr<   r:  )r&  r'  r(  r)  r*  r.  c                   ó   — e Zd ZeZy)ÚTestBSRMatrixN)r²   r³   r´   r   rõ   ra   r<   r:   rb  rb  b  rÐ  r<   rb  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   rf   r]  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)rf   N)r#  )re  r¦  s     r:   rg  z&_same_sum_duplicate.<locals>.<genexpr>‡  s   è ø€ Ò7 w�—‘ ×"Ñ7ùs   ‚)
ÚpoprJ   rm   r?   rà  Úunsignedintegerr  r#  rl   r  )r¨  ÚindsrB   r§  Ú	zeros_posÚposÚpos1Úpos2s           r:   Ú_same_sum_duplicaterp  n  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  }|rZ|d   j                  dz  }	t        «       5 }
|
j                  t        d«       | 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   rf   r  rä   Nrº   gñhãˆµøä>gH¯¼šò×z>)Úrtol)Úsuperrõ   r–   r  rl   r   r2  r(   Ú_insert_explicit_zeroÚ_arg1_for_noncanonicalrº   r?   rJ   ró   r›  r   r   r¨  ræ  )r�   rÃ  rt  r8  rB   Ú	constructrr  Úzero_posÚ	has_zerosrÏ  r5  Úarg1ÚNCrv  ro  s                 €r:   rõ   z_NonCanonicalMixin.spcreator�  sX  ø€ ô ‘GÑ%ˆ	Ù�aÐ)˜$Ò) &Ñ)ˆà—I‘I“K 1Ñ$×-Ñ-Ó/ˆØ˜a‘[×%Ñ%¨Ñ)ˆ	ÙØ˜‘× Ñ  !Ñ#ˆAÜ"Ó$ð R¨Ø—
‘
Ô2Ð4UÔVØ×.Ñ.¨q°(¸1±+¸a±.À(È1Á+ÈaÁ.ÓQ�÷Rð ×*Ñ*¨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Rð Rús   Á)6EÅE#z"bool(matrix) counts explicit zerosr(  c                  ó   — y r>   ra   r½   s    r:   r  z_NonCanonicalMixin.test_boolµ  r  r<   z!getnnz-axis counts explicit zerosc                  ó   — y r>   ra   r½   s    r:   r  z#_NonCanonicalMixin.test_getnnz_axis¹  r  r<   znnz counts explicit zerosc                  ó   — y r>   ra   r½   s    r:   rb  z_NonCanonicalMixin.test_empty½  r  r<   )r²   r³   r´   rõ   r  r¸  r  r  r  rb  Ú__classcell__)ro  s   @r:   rr  rr  �  sƒ   ø„ Ø16ö #ðJ ‡[�[×ÑÐAÐÓBñó Cðð ‡[�[×ÑÐ@ÐÓAñó Bðð ‡[�[×ÑÐ8ÐÓ9ñó :ôr<   rr  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å   )rp  r¨  r¦  r§  rs  r$  )r�   rr  rt  r¨  r¦  r§  ÚstartÚstops           r:   ry  z3_NonCanonicalCompressedMixin._arg1_for_noncanonicalÃ  s¥   € ä 3°A·F±F¸A¿I¹IØ;<¿8¹8ô!EÑˆˆg�váÜ" 6¨6°!°"¨:Ó6ò A‘��tØ&-¨e°DÐ&9¹$¸B¸$Ñ&?×&DÑ&DÓ&F�˜˜dÐ#Ø#'¨¨dÐ#3±D°b°DÑ#9×#>Ñ#>Ó#@��U˜4Ñ ðAð �W˜fÐ$Ð$r<   c                 ó   — d|||f<   |S rk   ra   ©r�   rr  r�  rú  s       r:   rx  z2_NonCanonicalCompressedMixin._insert_explicit_zeroÍ  s   € Øˆˆ!ˆAˆ#‰Øˆr<   N)F)r²   r³   r´   ry  rx  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 )Nrs  rÔ  rÕ  r_  rï   rs  rÖ  )	r   rõ   rº   r  r   r  r¯  r“  rØ  )
r?   rt  rÃ  rQ   rr  ru  r�  rú  r  r�   s
            €r:   r  z3_NonCanonicalCSMixin.test_getelement.<locals>.checkÔ  s´   ø€ Ü’wÚÚÚð ð (-ô.ˆAð —‘˜q°�Ó@ˆAà—'‘'‰CˆAˆaä˜A˜2˜q“\ò 1�Ü ˜r 1›ò 1�AÜ   1 Q 3¡¨¨1¨Q¨3©Õ0ñ1ð1ð Cò J�Üœz¬9Ð5°q·}±}ÀbÕIñJr<   )FTrÙ  )r�   r  r?   rt  s   `   r:   rÚ  z$_NonCanonicalCSMixin.test_getelementÓ  s;   ø€ ô	Jô  &ò 	7ˆEØ"/ò 7�Ù”b—h‘h˜u“o ~Õ6ñ7ñ	7r<   c                 ód  — t        j                  d«      }| j                  |«      }| j                  g d¢g«      }|j                  «       |dd d …f<   t	        «       5 }|j                  t        d«       ||dd d …f<   d d d «       t        |j                  «       |«       |j                  «       j                  «       |d d …df<   t	        «       5 }|j                  t        d«       |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  rf   )
rJ   r&   rõ   r–   r   r2  r(   r   r|  rf  )r�   rÃ  rQ   rR   r5  s        r:   Útest_setitem_sparsez(_NonCanonicalCSMixin.test_setitem_sparseè  sø   € Ü�F‰F�1‹IˆØ�N‰N˜1ÓˆØ�N‰NšG˜9Ó%ˆà—‘“ˆˆ!ŠAˆ#‰ÜÓ ð 	 CØ�J‰JÔ.Ð0QÔRØˆAˆa’ˆc‰F÷	ô 	˜1Ÿ9™9›;¨Ô*à—‘“×"Ñ"Ó$ˆŠ!ˆAˆ#‰ÜÓ ð 	 CØ�J‰JÔ.Ð0QÔRØ—S‘SˆAŠa�ˆc‰F÷	ô 	˜1Ÿ9™9›;¨Õ*÷	ð 	ú÷	ð 	ús   Á DÃ*D&ÄD#Ä&D/Fz(inverse broken with non-canonical matrixr  c                  ó   — y r>   ra   r½   s    r:   r~  z_NonCanonicalCSMixin.test_invù  r  r<   z&solve broken with non-canonical matrixc                  ó   — y r>   ra   r½   s    r:   rø  z_NonCanonicalCSMixin.test_solveý  r  r<   N)
r²   r³   r´   rÚ  r�  r  r¸  r  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   rI  )r�  r}  rJ  )r�   rr  r�  rú  r@   s        r:   rx  z)TestBSRNonCanonical._insert_explicit_zero  s/   € Ø�G‰G‹IˆØˆˆ!ˆAˆ#‰Ø�w‰w §¡ˆwÓ-Ð-r<   Fz&diagonal broken with non-canonical BSRr  c                  ó   — y r>   ra   r½   s    r:   rÙ  z!TestBSRNonCanonical.test_diagonal  r  r<   z"expm broken with non-canonical BSRc                  ó   — y r>   ra   r½   s    r:   rz  zTestBSRNonCanonical.test_expm  r  r<   N)	r²   r³   r´   rx  r  r¸  r  rÙ  rz  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)ÚTestCOONonCanonicalNc                 ól   — t        |j                  |j                  |j                  «      \  }}}|||ffS )r†  )rp  r¨  r©  rª  )r�   rr  rt  r¨  r©  rª  s         r:   ry  z*TestCOONonCanonical._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 rk   )rJ   Úr_r¨  r?   r;  r©  rª  rŠ  s       r:   rx  z)TestCOONonCanonical._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ð   rf   rä   rÎ  r   )	rõ   rJ   r&   r„  r  r   r  r.  rª  r&  s     r:   Útest_setdiag_noncanonicalz-TestCOONonCanonical.test_setdiag_noncanonical1  sf   € Ø�N‰Nœ2Ÿ6™6 !›9Ó%ˆØ	×ÑÔØ	�	‰	�1�a�&˜Aˆ	ÔØ	×ÑÔÜ”—‘”r—w‘w˜qŸu™u“~¨Ñ*Ó+Õ,r<   r>   )r²   r³   r´   ry  rx  rª  ra   r<   r:   r¥  r¥  %  s   „ ó ò
ó-r<   r¥  c                   ó   — e Zd Zy)ÚTestCOONonCanonicalMatrixNr•  ra   r<   r:   r¬  r¬  9  r–  r<   r¬  c           	   #   ó¤  K  — | dk(  r&t         t        t        t        t        t
        t        g}n:| dk(  r&t        t        t        t        t        t        t        g}nt        d| ›d�«      ‚dddddd	d
d	dœ}|D ]×  }t        t!        |«      «      D ]¾  }t#        ||«      }|j%                  d«      sŒ!t#        |dd«      rŒ/g }|j'                  |«      }t)        |«      r$|t*        j,                  j/                  |¬«      gz  }t#        |dg «      }|D ]"  }	|	j0                  dv sŒ|j3                  |	«       Œ$ t+        j4                  |||¬«      –— ŒÀ ŒÙ y­w)a�  Yield all tests for all formats that use get_index_dtype

    This is more than testing get_index_dtype. It allows checking whether upcasting
    or downcasting the index dtypes affects test results. The approach used here
    does not try to figure out which tests might fail due to 32/64-bit issues.
    We just run them all.
    So, each test method in that uses cases_64bit reruns most of the test suite!
    r)   Úspmatrixzparameter sp_api=z& is not one of 'sparray' or 'spmatrix'z%expm for 64-bit indices not availablez)linsolve for 64-bit indices not availableztest implemented in base classz%test actually requires 64-bit to workztest verifies int32 indexesztest verifies int64 indexes)rz  r~  rø  r�  r  r\  r_  r3  r  r¹  Fr(  Ú
pytestmark)r_  r  r  Úxslow)ÚmarksN)r:  rø  r¡  r4  r   r  rÒ  rb  r  r¹  r›  r8  rÏ  rö  r  ÚsortedÚdirr‡   r  r%  r  r  r¸  r  rŽ   rL   Úparam)
Úsp_apiÚTEST_CLASSESÚ
SKIP_TESTSr  Úmethod_nameÚmethodr±  r6   Úmarkersr¸  s
             r:   Úcases_64bitr»  >  s[  è ø€ ð �ÒÜ¤¬'´7¼Gô
 !¤'ð‰ð 
�:Ò	Ü%¤}´mÜ&¬ä&¬ð‰ô Ð- f YÐ.TÐUÓVÐVð =Ø?ØAØ!AØ)PØ%BØ%BØ*Gñ	€Jð ò BˆÜ!¤# c£(Ó+ò 	BˆKÜ˜S +Ó.ˆFØ×&Ñ& wÕ/Ü ¨°Õ6Ø�à —n‘n [Ó1�Ü˜”9ØœfŸk™k×.Ñ.°cÐ.Ó:Ð;Ñ;�Eä! &¨,¸Ó;�Ø#ò +�DØ—y‘yÐ$HÒHØŸ™ TÕ*ð+ô —l‘l 3¨¸5ÔAÓAñ	BñBùs   ‚B*EÂ-EÂ;A"EÄ2Ec            
       óÒ   — e Zd Zeeeeeee	e
eeg
Zd„ Zej                   j"                  d„ «       Zej                   j"                  d„ «       Zej                   j"                  d„ «       Zy)Ú	Test64Bitc                 ó¤  — t        j                  |«      }|j                  dv r4|j                  j                  |k(  xr |j                  j                  |k(  S |j                  dk(  r4|j
                  j                  |k(  xr |j                  j                  |k(  S |j                  dk(  r|j                  j                  |k(  S t        d|›d�«      ‚)N)r.  r/  r-  r[  ru  zmatrix z has no integer indices)	rJ   r?   rø   r¦  r§  r©  rª  r«  r  )r�   r£  r?   s      r:   Ú_compare_index_dtypezTest64Bit._compare_index_dtype~  s¦   € Ü—‘˜“ˆØ�8‰8Ð,Ñ,Ø—I‘I—O‘O uÑ,ÒK°1·8±8·>±>ÀUÑ3JÐKØ�X‰X˜ÒØ—E‘E—K‘K 5Ñ(ÒD¨q¯u©u¯{©{¸eÑ/CÐDØ�X‰X˜ÒØ—I‘I—O‘O uÑ,Ð-ä˜w q eÐ+BÐCÓDÐDr<   c                 ó`   ‡ — t        d¬«      ˆ fd„«       }‰ j                  D ]
  } ||«       Œ y )NrV   ©rr   c                 óB  •—  | t         j                  j                  dd«      «      }t        ‰j	                  |t         j
                  «      «        | t         j                  j                  dd«      «      }t        ‰j	                  |t         j                  «      «       y )NrV   rä   r  )rJ   r‘   r-  r   r¿  rZ   rg   )Úmat_clsr£  r�   s     €r:   r  z4Test64Bit.test_decorator_maxval_limit.<locals>.check�  sg   ø€ áœŸ	™	Ÿ™ r¨1Ó-Ó.ˆAÜ�D×-Ñ-¨a´·±Ó:Ô;ÙœŸ	™	Ÿ™ r¨1Ó-Ó.ˆAÜ�D×-Ñ-¨a´·±Ó:Õ;r<   ©r”   ÚMAT_CLASSES©r�   r  rÃ  s   `  r:   Útest_decorator_maxval_limitz%Test64Bit.test_decorator_maxval_limit‰  s:   ø€ ô 
!¨bÔ	1ó	<ó 
2ð	<ð ×'Ñ'ò 	ˆGÙ�'�Nñ	r<   c                 ó`   ‡ — t        d¬«      ˆ fd„«       }‰ j                  D ]
  } ||«       Œ y )NT©r‘   c                 ó,  •— d}d}t        d«      D ]w  } | t        j                  j                  dd«      «      }|xs  ‰j	                  |t        j
                  «      }|xs  ‰j	                  |t        j                  «      }|sŒt|sŒw y  t        d«      ‚)NFrO  rß  z#both 32 and 64 bit indices not seen)r  rJ   r‘   r-  r¿  rZ   rg   rt   )rÃ  Úseen_32Úseen_64rÏ  r£  r�   s        €r:   r  z5Test64Bit.test_decorator_maxval_random.<locals>.check›  s‡   ø€ àˆGØˆGÜ˜3“Zò L�ÙœBŸI™IŸN™N¨1¨aÓ0Ó1�Ø!ÒK T×%>Ñ%>¸qÄ"Ç(Á(Ó%K�Ø!ÒK T×%>Ñ%>¸qÄ"Ç(Á(Ó%K�ÚšwÙðLô %Ð%JÓKÐKr<   rÄ  rÆ  s   `  r:   Útest_decorator_maxval_randomz&Test64Bit.test_decorator_maxval_random—  s<   ø€ ô 
!¨Ô	-ó
	Ló 
.ð
	Lð ×'Ñ'ò 	ˆGÙ�'�Nñ	r<   c                 ó6  — t        t        j                  d¬«      d„ «       }t        t        j                  ¬«      d„ «       } |t        t        t
        «        |t        t        t
        «        |t        t        t        «        |t        t        t        «       y )Nrä   )rb   rw   c                 ó¸  —  | ddgddgddgg«      }t        t        |j                  d¬«       t        t        |j                  d¬«        |g d	¢g d
¢g«      }t        t        |j                  d¬«       t        t        |j                  d¬«        |g d	¢g d¢g«      }t        t        |j                  d¬«       d|_        t        t        |j
                  «       y ©Nrä   rf   rð   r�  rˆ  rî   r]  r   rÛ  )rð   r�  rî   rV  F)r  rt   ra  r*  rƒ  r„  ©rþ   rÿ   rý   rN   s       r:   Úcheck_limitedz3Test64Bit.test_downcast_intp.<locals>.check_limited³  s§   € ñ   1˜v¨¨1 v°°1¨vÐ6Ó7ˆAÜœ.¨!¯/©/ÀÕBÜœ.¨!¯%©%°aÕ8ášyª)Ð4Ó5ˆAÜœ.¨!¯/©/ÀÕBÜœ.¨!¯%©%°aÕ8ášyª)Ð4Ó5ˆAÜœ.¨!¯/©/ÀÕBØ%*ˆAÔ"Üœ.¨!×*:Ñ*:Õ;r<   ©rb   c                 ó@  —  | ddgddgddgg«      }|j                  d¬«       |j                  d¬«        |g d	¢g d
¢g«      }|j                  d¬«       |j                  d¬«        |g d	¢g d¢g«      }|j                  d¬«       d|_        |j                  «        y rÐ  )ra  r*  rƒ  r„  rÑ  s       r:   Úcheck_unlimitedz5Test64Bit.test_downcast_intp.<locals>.check_unlimitedÃ  s—   € ñ   1˜v¨¨1 v°°1¨vÐ6Ó7ˆAØ�O‰O ˆOÔ#Ø�E‰E�qˆEŒMášyª)Ð4Ó5ˆAØ�O‰O ˆOÔ#Ø�E‰E�qˆEŒMášyª)Ð4Ó5ˆAØ�O‰O ˆOÔ#Ø%*ˆAÔ"Ø×ÑÕr<   )	r”   rJ   rg   r   r    r"   r   r   r   )r�   rÒ  rÕ  s      r:   Útest_downcast_intpzTest64Bit.test_downcast_intp«  sq   € ô 
!¬R¯X©XÀqÔ	Iñ	<ó 
Jð	<ô 
!¬R¯X©XÔ	6ñ	ó 
7ð	ñ 	”i¤¬IÔ6Ùœ	¤9¬iÔ8Ù”j¤*¬jÔ9Ùœ
¤J´
Õ;r<   N)r²   r³   r´   r   r   r   r   r   r%   r"   r   r    r$   rÅ  r¿  r  r¸  Úthread_unsaferÇ  rÍ  rÖ  ra   r<   r:   r½  r½  w  s�   „ ð 	�J 
¨J¸
Ø�9˜i¨°Ið€Kò
	Eð ‡[�[×Ññó ðð ‡[�[×Ññó ðð& ‡[�[×Ññ*<ó ñ*<r<   r½  c                   ó   — e Zd Zd„ Zy)ÚRunAll64Bitc                 ó8   — t        di |¤Žd„ «       } |||«       y )Nc                 óì   —  | «       }t        |d«      r|j                  «        	  t        ||«      «        t        |d«      r|j                  «        y y # t        |d«      r|j                  «        w w xY w)NÚsetup_methodÚteardown_method)r¯  rÜ  r‡   rÝ  )r  r¸  Úinstances      r:   r  z,RunAll64Bit._check_resiliency.<locals>.checkà  sl   € á“uˆHÜ�x Ô0Ø×%Ñ%Ô'ð/Ø.”˜ +Ó.Ô0ä˜8Ð%6Ô7Ø×,Ñ,Õ.ð 8ø”7˜8Ð%6Ô7Ø×,Ñ,Õ.ð 8ús   ¥A ÁA3ra   )r”   )r�   r  r¸  rŠ   r  s        r:   Ú_check_resiliencyzRunAll64Bit._check_resiliencyÜ  s*   € ô 
!Ñ	& 2Ñ	&ñ	/ó 
'ð	/ñ 	ˆc�;Õr<   N)r²   r³   r´   rß  ra   r<   r:   rÙ  rÙ  Û  s   „ ó r<   rÙ  c                   óˆ  — e Zd Zej                  j                  d ed«      «      d„ «       Zej                  j                  d«      ej                  j                  d ed«      «      d„ «       «       Z	ej                  j                  d ed«      «      d„ «       Z
ej                  j                  d ed«      «      d„ «       Zy)	ÚTest64BitArrayúcls,method_namer)   c                 ó,   — | j                  ||d¬«       y ©NrV   rÁ  ©rß  ©r�   r  r¸  s      r:   Útest_resiliency_limit_10z'Test64BitArray.test_resiliency_limit_10ó  ó   € à×Ñ˜s K¸bÐÕAr<   rf   c                 ó,   — | j                  ||d¬«       y ©NTrÉ  rå  ræ  s      r:   Útest_resiliency_randomz%Test64BitArray.test_resiliency_random÷  ó   € ð 	×Ñ˜s K¸ÐÕ=r<   c                 óH   — | j                  ||t        j                  ¬«       y ©NrÓ  ©rß  rJ   rZ   ræ  s      r:   Útest_resiliency_all_32z%Test64BitArray.test_resiliency_all_32ÿ  ó   € à×Ñ˜s K¼R¿X¹XÐÕFr<   c                 óH   — | j                  ||t        j                  ¬«       y rî  ©rß  rJ   rg   ræ  s      r:   Útest_resiliency_all_64z%Test64BitArray.test_resiliency_all_64  rñ  r<   N)r²   r³   r´   r  r¸  Úparametrizer»  rç  r=  rë  rð  rô  ra   r<   r:   rá  rá  î  sÏ   „ ð
 ‡[�[×ÑÐ.±¸IÓ0FÓGñBó HðBð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±¸IÓ0FÓGñ>ó Hó ð>ð ‡[�[×ÑÐ.±¸IÓ0FÓGñGó HðGð ‡[�[×ÑÐ.±¸IÓ0FÓGñGó HñGr<   rá  c                   ó  — e Zd Zej                  j                  d«      ej                  j                  d ed«      «      d„ «       «       Zej                  j                  d ed«      «      d„ «       Z	ej                  j                  d«      ej                  j                  d ed«      «      d„ «       «       Z
ej                  j                  d ed«      «      d„ «       Zej                  j                  d ed«      «      d	„ «       Zy
)ÚTest64BitMatrixrˆ  râ  r®  c                 ó,   — | j                  ||d¬«       y )NT)r“   rå  ræ  s      r:   Ú
test_no_64zTest64BitMatrix.test_no_64  s   € ð 	×Ñ˜s K¸dÐÕCr<   c                 ó,   — | j                  ||d¬«       y rä  rå  ræ  s      r:   rç  z(Test64BitMatrix.test_resiliency_limit_10  rè  r<   rf   c                 ó,   — | j                  ||d¬«       y rê  rå  ræ  s      r:   rë  z&Test64BitMatrix.test_resiliency_random  rì  r<   c                 óH   — | j                  ||t        j                  ¬«       y rî  rï  ræ  s      r:   rð  z&Test64BitMatrix.test_resiliency_all_32  rñ  r<   c                 óH   — | j                  ||t        j                  ¬«       y rî  ró  ræ  s      r:   rô  z&Test64BitMatrix.test_resiliency_all_64"  rñ  r<   N)r²   r³   r´   r  r¸  r=  rõ  r»  rù  rç  rë  rð  rô  ra   r<   r:   r÷  r÷    s  „ ð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±¸JÓ0GÓHñDó Ió ðDð
 ‡[�[×ÑÐ.±¸JÓ0GÓHñBó IðBð ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ.±¸JÓ0GÓHñ>ó Ió ð>ð ‡[�[×ÑÐ.±¸JÓ0GÓHñGó IðGð ‡[�[×ÑÐ.±¸JÓ0GÓHñGó IñG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   rf   rÌ  rÝ  ré  rì  rð  r  r½  r§  zcannot be broadcastrd  )rä   rf   r   r  r,  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ñ 	JÙ’y¢)Ð,Ó-×;Ñ;À&Ð;ÔI÷	Jô �]‰]œ:Ð-BÔCñ 	?Ù’y�kÓ"×0Ñ0°vÐ0Ô>÷	?ñ 	?ñ#?÷	Jð 	Jú÷	?ñ 	?ús   ÉJ>ÊK
Ê>K	Ë
K	r>   )NFNNF)T)	TTTTTTTTT)Œrû   Ú
contextlibr  r)  rÖ  r&  Úsysr  r   r  ÚnumpyrJ   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r‘   Únumpy.testingr   r   r   r   r   r   r   Úscipy.linalgr{   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-   r.   r/   Úscipy.sparse.linalgr0   r1   r2   Úscipy._lib.decoratorr3   Úscipy._lib._utilr4   rŒ   r`  r;   rC   Ú	frozensetr³  rT   r3  r2  r”   r–   r˜   r¶   rÊ   rá   r  r»  rÑ  r¸  r×  rõ  rú  r?  rZ  Úcontextmanagerr�  r�  r¤  r¬  r½  rÓ  r  r"  r2  r4  r  r›  r¡  r¹  r  rÏ  rÒ  rö  rø  r  r   r8  r:  rb  rp  rr  r„  rŒ  r”  r˜  rš  rœ  rž  r£  r¥  r¬  r»  r½  rÙ  r¹  rá  r÷  r  ra   r<   r:   ú<module>r     s  ðñó Û Û Û Û Û 
ã Ý *ã ÷÷ ÷ õ ó ÷,÷ ,ñ ,ó å ÷9÷ 9÷ 9÷ 9÷ 9õ
 (÷Fõ Fç /Ñ /å *Ý +à˜cŸk™kÐ)€ó/ò
'ñ
 % e WÓ-Ð òñ(  Ó!€Ø × Ñ �>Ô "ð JNØ?DóNòb÷$ñ $÷6"$ñ "$÷Hñ ÷4ñ ÷Do7ñ o7÷d?Bñ B÷Jc+ñ c+ðL ‡�×Ñ÷%ð %ó ð%÷.@ñ @÷F
MKñ MK÷`Y0ñ Y0ðx ×ÑñBó ðB÷k$ñ k$÷\ Lñ  L÷F_Kñ _K÷D`0ñ `0÷F]5ñ ]5÷@	2ñ 2ó:ð8 AEØ8<ØJNØ,0ó%'ôXC&ÑÓ!ô C&ðL × Ñ Ô ô/�L 'ô /ð × Ñ Ô ôWÑÓ!ô Wðt × Ñ Ô ô/�L 'ô /ð × Ñ Ô ô_BÑ u°uÔ=ô _BôD�L 'ô ð × Ñ Ô Ø × Ñ Ô ômÑ uÔ-ô mô`�L 'ô ð × Ñ Ô Ø × Ñ Ô ôGMÑ uØ(-¸eØ/4À5ôJô GMôT�L 'ô ð × Ñ Ô Ø × Ñ Ô ôG>Ñ u°eÈEØ/4À5Ø',°uô>ô G>ôT�L 'ô ð × Ñ Ô Ø × Ñ Ô ôfÑ uØ(-¸eØ/4À5Ø).ô0ô fôR�L 'ô ð × Ñ Ô Ø × Ñ Ô ò.÷B0ñ 0ôfÐ#5ô ô -Ð7ô -ô`	Ð.°ô 	ô	Ð 3°]ô 	ô	Ð.°ô 	ô	Ð 3°]ô 	ôÐ6¸ô ô	Ð 3°]ô 	ô-Ð,¨gô -ô(	Ð 3°]ô 	ò
6B÷r_<ñ _<÷H ñ  ð& ‡�×ÑØ‡�×ÒôG�[ó Gó ó ðGð0 ‡�×ÑôG�kó Gó ðGó:?r<   