Ë
    ÏÍ:jœ¿  ã                   óˆ  — d dl Z d dlZd dlZd dlmZmZ d dlZd dlm	Z	 d dl
mZmZmZmZ d dlmZ ddlmZm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!ejD                  jG                  dg d¢«      de$fd„«       Z%ejD                  jG                  d e& e'g d¢g d¢«      «      «      de(e$e$f   fd„«       Z)ejD                  jG                  dg d¢«      de$fd„«       Z*d„ Z+d„ Z,d„ Z-d „ Z.d!„ Z/d"„ Z0d#„ Z1d$„ Z2ejD                  jG                  d%g d&¢«      d'„ «       Z3ejD                  jG                  d%g d&¢«      d(„ «       Z4ejD                  jG                  d%g d&¢«      d)„ «       Z5ejD                  jG                  d%g d&¢«      d*„ «       Z6d+„ Z7ejD                  jG                  d,g d-¢«      d.„ «       Z8ejD                  jG                  d%g d&¢«      d/„ «       Z9ejD                  jG                  d%g d&¢«      d0„ «       Z:ejD                  jG                  d1g d2¢«      d3„ «       Z;d4„ Z<d5„ Z=ejD                  jG                  d%g d&¢«      d6„ «       Z>ejD                  jG                  d%g d&¢«      d7„ «       Z?d8„ Z@ejD                  jG                  d9g d:¢«      d;„ «       ZAejD                  jG                  d%g d&¢«      d<„ «       ZBejD                  jG                  d%g d&¢«      d=„ «       ZCd>„ ZDejD                  jG                  d9g d:¢«      d?„ «       ZEg d@¢ZFejD                  jG                  dAeF«      dB„ «       ZGg dC¢ZHejD                  jG                  dDeH«      dE„ «       ZIdF„ ZJdG„ ZKdH„ ZLdI„ ZMdJ„ ZNg dK¢ZOejD                  jG                  d9eO«      dL„ «       ZPdMdNdOgd gffdPdQdRgd gffdSdTd gdgffdUdVd dRgdRdgffdWdXg dY¢g dZ¢ffd[d\d]d]g dY¢g dY¢ffgZQejD                  jG                  d^eQ«      d_„ «       ZRd`„ ZSejD                  jG                  dag db¢«      dc„ «       ZTejD                  jG                  d%g dd¢«      de„ «       ZUejD                  jG                  d%g dd¢«      df„ «       ZVg dg¢ZWejD                  jG                  d9eW«      dh„ «       ZXejD                  jG                  d9eW«      di„ «       ZYg dj¢ZZejD                  jG                  dkeZ«      dl„ «       Z[g dm¢Z\ejD                  jG                  dke\«      dn„ «       Z]do„ Z^dpdqdrdsdtdudWd  ej¾                  dv«      fdwdPdO ej¾                  dx«      fdydzd{d|d}d~dd€d�d‚ ej¾                  dƒ«      fd„d…d�d† ej¾                  d‡«      fdˆd�dY ej¾                  dS«      fd‰gZ`ejD                  jG                  dŠe`«      d‹„ «       ZaejD                  jG                  dŠe`«      dŒ„ «       Zbd�„ Zcg dg¢ZdejD                  jG                  d9ed«      dŽ„ «       Zed�„ ZfejD                  jG                  d9ed«      d�„ «       Zgd‘„ ZhejD                  jG                  d9ed«      d’„ «       Zid“„ ZjejD                  jG                  d9ed«      d”„ «       ZkejD                  jG                  d9ed«      d•„ «       Zld–„ Zmd—„ Znd˜„ Zod™„ Zpdš„ Zqd›„ Zrdœ„ Zsd�„ Zt ejê                  dž«      jí                  dŸ«      Zw eew«      Zxd d¡ eydOdRd«      d fd eydOdRd«      f eydOdRd«       eydOd¢dR«      f eyddd£«      dfdO eyd«      fezfdOdRgd fddOdgf ejö                  dOdRg«       eydOd«      f eyd«       ejö                  g d¤¢«      f ejö                  dOdRg«       ejö                  d dg«      fgZ|ejD                  jG                  g d¥¢e|D � cg c]  } exew| f‘Œ	 c} «      ejD                  jú                  d¦„ «       «       Z~ ejê                  d§«      jí                  d¨«      Zw eew«      Zxd©dªd  eydOdR«      d f eydRd«      dR eyd«      f eyd«       eydOd¢d«       eydOd«      f eyddd£«       eyd«       eydOd¢d«      fezddOdg eydR«      f ejö                  dOdRg«       eydOd«      d f ejö                  dOdRg«       eydOd«      d gf ejö                  dOdRg«       eydOd«       ejö                  dd«g«      fd ejö                  dOdRg«       ejö                  dd«g«      f ejö                  dOdRg«       ejö                  dd«g«      dOf ejö                  dOdRg«       ejö                  dd«g«      dgfgZ|ejD                  jG                  g d¥¢e|D � cg c]  } exew| f‘Œ	 c} «      ejD                  jú                  d¬„ «       «       ZejD                  jG                  d­d®„ ejö                  d¯„ gg d°¢¬±«      ejD                  jû                  d²¬³«      d´„ «       «       Z€ ejê                  dµ«      jí                  d¶«      Zw eew«      Zxd·d¸d¹dºd» eydd«d«      ddO eyddd«      dOffd¼ eyd«dd«       eyddd«      ddOdOffd½ddOdO eyd«dd«       eyddd«      ffd¾ eyd«d«d«       eyddd«      ddOdOffd¿ eydd«d«      g dÀ¢g dÁ¢gg dÂ¢g dÃ¢g eyddd«      d ffdÄ eydd«d«      g dÂ¢g dÁ¢gg dÂ¢g dÃ¢gdO eyddd«      ffdÅ eydd«d«      g dÂ¢g dÂ¢ eyddd«      dOffdÆd  eydOd«d«      dOg dÂ¢gdgdOgd ggffdÇ eyddRd«       eydOd«d«      dOg dÂ¢gdgdOgd ggffdÈg dÂ¢gdgdOgd ggd  eydOd«d«       eyddRd«      ffdÉg dÂ¢g eydOd«d«       eyddRd«      d dgdOgd ggffdÊ eydd«d«      g dÂ¢g dÀ¢gg dÂ¢g dË¢g eyddd«      dOffdÌ eydOd«d«      d dOg dÀ¢gdgdOgdOggffgZ|ejD                  jG                  g dÍ¢e|D ��cg c]  \  }}exew||f‘Œ c}}«      ejD                  jú                  dÎ„ «       «       Z�dÏ„ Z‚dÐ„ Zƒyc c} w c c} w c c}}w )Ñé    N)Úassert_equalÚassert_allclose)Ú
block_diag)Ú	coo_arrayÚrandom_arrayÚSparseEfficiencyWarningÚmatrix_transpose)Ú	csr_arrayé   )Ú_block_diagÚ_extract_block_diagc                  óº  — t        d«      } | j                  dk(  sJ ‚t        | j                  «       t	        j
                  d«      «       t        d«      }|j                  dk(  sJ ‚t        |j                  «       t	        j
                  d«      «       t        d«      }|j                  dk(  sJ ‚t        |j                  «       t	        j
                  d«      «       y )N©é   ©r   r   )r   r   é   é   é   ©r   Úshaper   ÚtoarrayÚnpÚzeros)Úempty1dÚempty2dÚempty_nds      úp/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/scipy/sparse/tests/test_coo.pyÚtest_shape_constructorr      s¤   € Ü˜‹o€GØ�=‰=˜DÒ Ð Ð Ü�—‘Ó"¤B§H¡H¨T£NÔ3ä˜Ó€GØ�=‰=˜FÒ"Ð"Ð"Ü�—‘Ó"¤B§H¡H¨VÓ$4Ô5ä˜Ó%€HØ�>‰>˜[Ò(Ð(Ð(Ü�×!Ñ!Ó#¤R§X¡X¨kÓ%:Õ;ó    c                  ó*  — t        g d¢«      } | j                  dk(  sJ ‚t        | j                  «       t	        j
                  g d¢«      «       t        g d¢g d¢g«      }|j                  dk(  sJ ‚t        |j                  «       t	        j
                  g d¢g d¢g«      «       t	        j
                  ddgddggd	d
gddgggddgddggdd
gdd	gggddgddggddgddgggg«      }t        |«      }|j                  dk(  sJ ‚t        |j                  «       |«       t        j                  j                  d«       t        j                  j                  ddddd	d
ddd«	      }t        |«      }|j                  dk(  sJ ‚t        |j                  «       |«       t        dt        j                  ggddggd
d	ggg«      }|j                  dk(  sJ ‚t        |j                  «       t	        j
                  dt        j                  ggddggd
d	ggg«      «       y )N©é   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"   r   )
r   r   r   r   r   ÚarrayÚrandomÚseedÚrandnÚnan)Úres1dÚres2dÚarr4dÚres4dÚarr9dÚres9dÚnan_3ds          r   Útest_dense_constructorr5      só  € ä’iÓ €EØ�;‰;˜$ÒÐÐÜ�—‘“¤"§(¡(ª9Ó"5Ô6ô ’y¢)Ð,Ó-€EØ�;‰;˜&Ò Ð Ð Ü�—‘“¤"§(¡(ªI²yÐ+AÓ"BÔCô �H‰H˜˜A˜  A Ð'¨1¨a¨&°1°a°&Ð)9Ð:Ø˜A˜  A Ð'¨1¨a¨&°1°a°&Ð)9Ð:Ø˜A˜  A Ð'¨1¨a¨&°1°a°&Ð)9Ð:ð<ó =€Eô �eÓ€EØ�;‰;˜,Ò&Ð&Ð&Ü�—‘“ %Ô(ô ‡I�I‡N�N�2ÔÜ�I‰I�O‰O˜A˜a  ! A a¨¨!¨AÓ.€EÜ�eÓ€EØ�;‰;Ð-Ò-Ð-Ð-Ü�—‘“ %Ô(ô ˜!œRŸV™V˜˜¨¨A¨ x°1°a°&°Ð:Ó;€FØ�<‰<˜9Ò$Ð$Ð$Ü�—‘Ó!¤2§8¡8¨q´"·&±&¨k¨]¸aÀ¸V¸HÈÈ1ÀvÀhÐ,OÓ#PÕQr   c            	      óö  — t        g d¢d¬«      } | j                  dk(  sJ ‚t        | j                  «       t	        j
                  g d¢«      «       t        g d¢g d¢gd¬«      }|j                  dk(  sJ ‚t        |j                  «       t	        j
                  g d¢g d¢g«      «       t        dggdgggd¬«      }|j                  dk(  sJ ‚t        |j                  «       t	        j
                  dggdggg«      «       t        j                  j                  d	«       t        j                  j                  d
dddddd
«      }t        |d¬«      }|j                  dk(  sJ ‚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   )	r   r   r   r   r   r)   r*   r+   r,   )r.   r/   Úres3dÚarr7dÚres7ds        r   Ú!test_dense_constructor_with_shaper<   =   s%  € Ü’i tÔ,€EØ�;‰;˜$ÒÐÐÜ�—‘“¤"§(¡(ª9Ó"5Ô6ä’y¢)Ð,°FÔ;€EØ�;‰;˜&Ò Ð Ð Ü�—‘“¤"§(¡(ªI²yÐ+AÓ"BÔCä˜˜�u ˜s˜e�n¨IÔ6€EØ�;‰;˜)Ò#Ð#Ð#Ü�—‘“¤"§(¡(¨a¨S¨E°Q°C°5¨>Ó":Ô;ä‡I�I‡N�N�2ÔÜ�I‰I�O‰O˜A˜a  ! A a¨Ó*€EÜ�u _Ô5€EØ�;‰;˜/Ò)Ð)Ð)Ü�—‘“ %Õ(r   c                  ó.  — t        j                  t        d¬«      5  t        g d¢d¬«       d d d «       t        j                  t        d¬«      5  t        g d¢d¬«       d d d «       t        j                  t        d¬«      5  t        g d¢gd¬«       d d d «       t        j                  t        d¬«      5  t        dggd	gggd
¬«       d d d «       t        j                  t        d¬«      5  t        dgdgffd¬«       d d d «       t        j                  t        d¬«      5  t        ddgddgddgddgffd¬«       d d d «       t        j                  t        d¬«      5  t        dgdgff«       d d d «       t        j                  t        d¬«      5  t        dgdgdgdgff«       d d d «       y # 1 sw Y   �Œ‰xY w# 1 sw Y   �ŒcxY w# 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   Œ¶xY w# 1 sw Y   ŒŽxY w# 1 sw Y   y xY w)Núinconsistent shapes©Úmatchr!   ©r   r7   ©r   r"   r   r   r   ©r"   r"   r"   z)axis 0 index 2 exceeds matrix dimension 2r"   r   )r   z)axis 1 index 3 exceeds matrix dimension 3r   )r   r   r   znegative axis 0 index: -1éÿÿÿÿznegative axis 2 index: -1)ÚpytestÚraisesÚ
ValueErrorr   © r   r   Ú.test_dense_constructor_with_inconsistent_shaperI   Q   sÝ  € Ü	�‰”zÐ)>Ô	?ñ )Ü’) 4Õ(÷)ô 
�‰”zÐ)>Ô	?ñ +Ü’) 6Õ*÷+ô 
�‰”zÐ)>Ô	?ñ +Ü’9�+ TÕ*÷+ô 
�‰”zÐ)>Ô	?ñ 3Ü�Q�C�5˜A˜3˜%�.¨	Õ2÷3ô 
�‰”zØHô
Jñ -ä�A�3˜!˜˜�- tÕ,÷-ô 
�‰”zØHô
Jñ Fä�A�a�5˜A˜q˜6 A q 6¨A¨q¨6Ð2Ð3¸9ÕE÷Fô 
�‰”zÐ)DÔ	Eñ "Ü�A�3˜"˜˜�.Ô!÷"ô 
�‰”zÐ)DÔ	Eñ +Ü�A�3˜!˜˜q˜c B 4Ð(Ð)Ô*÷+ð +÷/)ñ )ú÷+ñ +ú÷+ñ +ú÷3ñ 3ú÷-ð -ú÷Fð Fú÷"ð "ú÷+ð +ús_   œF3ÁG ÂGÂ6GÃ-G'Ä#G3Å!G?ÆHÆ3F=Ç G
ÇGÇG$Ç'G0Ç3G<Ç?HÈHc                  ó¬   — t        d«      } t        | «      }|j                  dk(  sJ ‚t        |j                  «       t	        j
                  d«      «       y )Nr   r   )r   Úress     r   Útest_1d_sparse_constructorrL   m   s?   € Ü˜‹o€GÜ
�GÓ
€CØ�9‰9˜ÒÐÐÜ�—‘“¤§¡¨£Õ/r   c                  ó¨   — t        ddgddgff«      } | j                  dk(  sJ ‚t        | j                  «       t	        j
                  g d¢«      «       y )Nr&   r'   r"   r   r   )r   r&   r'   ©r   r   r   r   r   r)   ©rK   s    r   Útest_1d_tuple_constructorrP   t   sF   € Ü
�a˜�U˜a ˜U˜HÐ%Ó
&€CØ�9‰9˜ÒÐÐÜ�—‘“¤§¡ªÓ 3Õ4r   c                  ó¬   — t        ddgddgffd¬«      } | j                  dk(  sJ ‚t        | j                  «       t	        j
                  g d¢«      «       y )Nr&   r'   r"   r   rA   r7   )r   r&   r'   r   rN   rO   s    r   Ú$test_1d_tuple_constructor_with_shaperR   z   sH   € Ü
�a˜�U˜a ˜U˜HÐ%¨TÔ
2€CØ�9‰9˜ÒÐÐÜ�—‘“¤§¡ªÓ 6Õ7r   c                  ó   — d\  } }t        j                  | dz
  gd¬«      t        j                  |dz
  gd¬«      f}t        dg|f| |f¬«      }|j                  | |z  df«      }|j                  d   j
                  t        j
                  d«      k(  sJ ‚|j                  d   d   | |z  dz
  k(  sJ ‚|j                  || «      }|j                  d   j
                  t        j
                  d«      k(  sJ ‚|j                  d   d   |dz
  k(  sJ ‚y )	N)iô iü r"   Úint32)Údtypegffffff
@r7   r   Úint64)r   r)   r   ÚreshapeÚcoordsrU   )ÚMÚNrX   ÚAÚBÚCs         r   Útest_reshape_overflowr^      s   € à�D€A€qÜ�h‰h˜˜A™�w gÔ.´·±¸!¸a¹%¸ÈÔ0PÐQ€FÜ�C�5˜&�/¨!¨Q¨Ô0€Að 	
�	‰	�1�q‘5˜!�*Ó€AØ�8‰8�A‰;×Ñ¤§¡¨Ó 1Ò1Ð1Ð1Ø�8‰8�A‰;�q‰>˜a !™e q™[Ò(Ð(Ð(ð 	
�	‰	�!�Q‹€AØ�8‰8�A‰;×Ñ¤§¡¨Ó 1Ò1Ð1Ð1Ø�8‰8�A‰;�q‰>˜Q ™UÒ"Ð"Ñ"r   c            	      ó¸  — t        g d¢«      } | j                  dk(  sJ ‚| j                  d«      }|j                  dk(  sJ ‚t        |j	                  «       t        j                  dgdgdgg«      «       | j                  d«      }|j                  dk(  sJ ‚t        |j	                  «       t        j                  g d¢g«      «       t        j                  t        d¬	«      5  | j                  d
«       d d d «       t        j                  t        d¬	«      5  | j                  d«       d d d «       t        g d¢g d¢g«      }|j                  dk(  sJ ‚|j                  d«      }|j                  dk(  sJ ‚t        |j	                  «       t        j                  g d¢«      «       |j                  d«      }|j                  dk(  sJ ‚t        |j	                  «       t        j                  dgdgdggdgdgdggg«      «       t        j                  t        d¬	«      5  |j                  d«       d d d «       y # 1 sw Y   �ŒExY w# 1 sw Y   �ŒxY w# 1 sw Y   y xY w)N©r"   r   r   r   rB   r"   r   r   ©r"   r   zcannot reshape arrayr?   ©r   r   ©r   r   ©r"   r   r   ©r   r   r   r%   )r   )r"   r   r   r   r   r   )r   r   r"   r   )
r   r   rW   r   r   r   r)   rE   rF   rG   )Úarr1dÚcol_vecÚrow_vecÚarr2dÚflatÚ	to_3d_arrs         r   Útest_reshaperl   �   só  € Ü’iÓ €EØ�;‰;˜$ÒÐÐà�m‰m˜FÓ#€GØ�=‰=˜FÒ"Ð"Ð"Ü�—‘Ó"¤B§H¡H¨q¨c°A°3¸¸¨_Ó$=Ô>à�m‰m˜FÓ#€GØ�=‰=˜FÒ"Ð"Ð"Ü�—‘Ó"¤B§H¡Hªi¨[Ó$9Ô:ô 
�‰”zÐ)?Ô	@ñ Ø�‰�eÔ÷ô 
�‰”zÐ)?Ô	@ñ Ø�‰�eÔ÷ô ’y¢)Ð,Ó-€EØ�;‰;˜&Ò Ð Ð à�=‰=˜Ó€DØ�:‰:˜ÒÐÐÜ�—‘“¤§¡Ò*<Ó!=Ô>ð —‘˜iÓ(€IØ�?‰?˜iÒ'Ð'Ð'Ü�×"Ñ"Ó$¤b§h¡h°!°°q°c¸A¸3°À1À#ÈÀsÈQÈCÀÐ/QÓ&RÔSô 
�‰”zÐ)?Ô	@ñ Ø�‰�eÔ÷ð ÷)ñ ú÷ñ ú÷ ð ús$   Ã!H6ÄIÈIÈ6I ÉIÉIc                  óÈ   — t        g d¢«      } | j                  dk(  sJ ‚| j                  dk(  sJ ‚t        g d¢g d¢g«      }|j                  dk(  sJ ‚|j                  dk(  sJ ‚y )Nr`   r   r   rd   re   r%   r   )r   r   Únnz©rf   ri   s     r   Útest_nnzrp   ´   s_   € Ü’iÓ €EØ�;‰;˜$ÒÐÐØ�9‰9˜Š>Ðˆ>ä’y¢)Ð,Ó-€EØ�;‰;˜&Ò Ð Ð Ø�9‰9˜Š>Ð‰>r   c                  ó  — t        g d¢«      j                  } | j                  dk(  sJ ‚t        | j	                  «       t        j                  g d¢«      «       t        g d¢g d¢g«      }|j                  j                  dk(  sJ ‚t        j                  ddgddgdd	gg«      }t        |j                  j	                  «       |«       t        |j                  j	                  «       |«       t        t        |«      j	                  «       |«       y )
Nr`   r   rd   re   r   r"   r   r   r   )	r   ÚTr   r   r   r   r)   ÚmTr	   )rf   ri   Údesireds      r   Útest_transposeru   ¾   sÈ   € Ü’iÓ ×"Ñ"€EØ�;‰;˜$ÒÐÐÜ�—‘“¤"§(¡(ª9Ó"5Ô6ä’y¢)Ð,Ó-€EØ�7‰7�=‰=˜FÒ"Ð"Ð"Ü�h‰h˜˜A˜  A ¨¨A¨Ð/Ó0€GÜ�—‘—‘Ó" GÔ,Ü�—‘×!Ñ!Ó# WÔ-ÜÔ! %Ó(×0Ñ0Ó2°GÕ<r   c                  óÄ  — t        g d¢«      j                  d¬«      } | j                  dk(  sJ ‚t        | j	                  «       t        j                  g d¢«      «       t        g d¢g d¢g«      j                  d¬«      }|j                  dk(  sJ ‚t        |j	                  «       t        j                  g d¢g d¢g«      «       t        j                  t        d	¬
«      5  t        g d¢«      j                  d¬«       d d d «       t        j                  t        d¬
«      5  t        g d¢g d¢g«      j                  d¬«       d d d «       y # 1 sw Y   ŒOxY w# 1 sw Y   y xY w)Nr`   ©r   ©Úaxesr   rd   re   ©r   r"   r%   ú"axes don't match matrix dimensionsr?   úrepeated axis in transpose©r"   r"   )
r   Ú	transposer   r   r   r   r)   rE   rF   rG   ro   s     r   Útest_transpose_with_axisr   Ë   s  € Ü’iÓ ×*Ñ*°Ð*Ó5€EØ�;‰;˜$ÒÐÐÜ�—‘“¤"§(¡(ª9Ó"5Ô6ä’y¢)Ð,Ó-×7Ñ7¸VÐ7ÓD€EØ�;‰;˜&Ò Ð Ð Ü�—‘“¤"§(¡(ªI²yÐ+AÓ"BÔCä	�‰”zÐ)MÔ	Nñ 4Ü’)Ó×&Ñ&¨FÐ&Ô3÷4ô 
�‰”zÐ)EÔ	Fñ AÜ’9šiÐ(Ó)×3Ñ3¸Ð3Ô@÷Að A÷4ð 4ú÷Að Aús   ÃE
Ä"EÅ
EÅEc                  óì  — t        g d¢«      } t        | j                  t        j                  g d¢«      «       t        | j
                  t        j                  | j                  «      «       | j
                  j                  | j                  j                  k(  sJ ‚| j
                  j                  j                  du sJ ‚g d¢| _        t        | j                  «      dk(  sJ ‚t        | j                  t        j                  g d¢«      «       | j
                  j                  | j                  j                  k(  sJ ‚t        j                  t        d¬«      5  g d¢| _        d d d «       y # 1 sw Y   y xY w)N©r"   éþÿÿÿéýÿÿÿ©r   r"   r   Fr!   r"   zcannot set row attributer?   )r   r   Úcolr   r)   ÚrowÚ
zeros_likerU   ÚflagsÚ	writeableÚlenrX   rE   rF   rG   rO   s    r   Útest_1d_row_and_colr‹   Û   sõ   € Ü
’KÓ
 €CÜ�—‘œ"Ÿ(™(¢9Ó-Ô.Ü�—‘œ"Ÿ-™-¨¯©Ó0Ô1Ø�7‰7�=‰=˜CŸG™GŸM™MÒ)Ð)Ð)Ø�7‰7�=‰=×"Ñ" eÑ+Ð+Ð+â€C„GÜˆs�z‰z‹?˜aÒÐÐÜ�—‘œ"Ÿ(™(¢9Ó-Ô.Ø�7‰7�=‰=˜CŸG™GŸM™MÒ)Ð)Ð)ä	�‰”zÐ)CÔ	Dñ ÚˆŒ÷÷ ñ ús   Å
E*Å*E3c                  óœ  — t        g d¢«      } | j                  | j                  | j                  | j                  fD ]-  }t        j                  t        d¬«      5   |«        d d d «       Œ/ | j                  | j                  | j                  fD ]/  }t         |«       j                  «       | j                  «       «       Œ1 y # 1 sw Y   Œ�xY w)Nr�   zCannot convertr?   )r   ÚtobsrÚtocscÚtodiaÚtolilrE   rF   rG   ÚtocooÚtocsrÚtodokr   r   )rK   Úfs     r   Útest_1d_toformatsr•   ë   sž   € Ü
’KÓ
 €CØ�i‰i˜Ÿ™ C§I¡I¨s¯y©yÐ9ò ˆÜ�]‰]œ:Ð-=Ô>ñ 	ÙŒC÷	ð 	ðð �i‰i˜Ÿ™ C§I¡IÐ.ò 3ˆÜ‘Q“S—[‘[“] C§K¡K£MÕ2ñ3÷	ð 	ús   ÁCÃC	Úarg)r"   r   r   r$   r'   c                 óú   — t        j                  g d¢«      }t        |«      }|j                  | d¬«       |j                  | «       |j                  |j                  k(  sJ ‚t        |j                  «       |«       y )Nr�   F©Úrefcheck©r   r)   r   Úresizer   r   r   ©r–   ÚdenrK   s      r   Útest_1d_resizerž   ô   sZ   € ä
�(‰(’;Ó
€CÜ
�C‹.€CØ‡J�Jˆs˜U€JÔ#Ø‡J�Jˆs„OØ�9‰9˜Ÿ	™	Ò!Ð!Ð!Ü�—‘“ Õ$r   ©r"   r   r   r   c                 óú   — t        j                  g d¢«      }t        |«      }|j                  | d¬«       |j                  | «       |j                  |j                  k(  sJ ‚t        |j                  «       |«       y )Nr`   Fr˜   rš   rœ   s      r   Útest_1d_to_2d_resizer¡   þ   sZ   € ä
�(‰(’9Ó
€CÜ
�C‹.€Cà‡J�Jˆs˜U€JÔ#Ø‡J�Jˆs„OØ�9‰9˜Ÿ	™	Ò!Ð!Ð!Ü�—‘“ Õ$r   )r"   r   r   r'   c                 ó  — t        j                  g d¢g d¢g«      }t        |«      }|j                  | d¬«       |j                  | «       |j                  |j                  k(  sJ ‚t        |j                  «       |«       y )Nr`   ©r   r   r   Fr˜   rš   rœ   s      r   Útest_2d_to_1d_resizer¤   	  s_   € ä
�(‰(’IšyÐ)Ó
*€CÜ
�C‹.€CØ‡J�Jˆs˜U€JÔ#Ø‡J�Jˆs„OØ�9‰9˜Ÿ	™	Ò!Ð!Ð!Ü�—‘“ Õ$r   c            	      óx  — t        g d¢g d¢ff«      } | j                  dk(  sJ ‚t        | j                  «       t	        j
                  ddg«      «       | j                  «        | j                  dk(  sJ ‚t        | j                  «       t	        j
                  ddg«      «       t        g d¢g d¢g d¢g d¢g d¢ff«      }|j                  dk(  sJ ‚t	        j
                  d	d	gd	d	gd	d	ggd	d	gd	d	gd	d	ggd	d	gd	d	gdd	gggd	d	gd	d
gd	d	ggd	d	gd	d	gd	d	ggd	d	gd	d	gd	d	gggg«      }t        |j                  «       |«       |j                  «        |j                  dk(  sJ ‚t        |j                  «       |«       t        g d¢g d¢ff«      }|j                  dk(  sJ ‚|j                  «        |j                  dk(  s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   r"   r   r   )r   rn   r   r   r   r)   Úsum_duplicates)rf   r0   ÚexpectedÚ
arr_nodupss       r   Útest_sum_duplicatesr¬     sÂ  € ä’y¢9 ,Ð/Ó0€EØ�9‰9˜Š>Ðˆ>Ü�—‘“¤"§(¡(¨A¨q¨6Ó"2Ô3Ø	×ÑÔØ�9‰9˜Š>Ðˆ>Ü�—‘“¤"§(¡(¨A¨q¨6Ó"2Ô3ô ’y¢9ªiºÂIÐ"NÐOÓP€EØ�9‰9˜Š>Ðˆ>Ü�x‰xØˆqˆ6�A�q�6˜A˜q˜6Ð
" a¨ V¨a°¨V°a¸°VÐ$<ÀÀ1¸vÈÈ1ÀvÐPQÐSTÈvÐ>VÐ	WØˆqˆ6�A�q�6˜A˜q˜6Ð
" a¨ V¨a°¨V°a¸°VÐ$<ÀÀ1¸vÈÈ1ÀvÐPQÐSTÈvÐ>VÐ	Wð	Yó€Hô �—‘“ (Ô+Ø	×ÑÔØ�9‰9˜Š>Ðˆ>Ü�—‘“ (Ô+ô šLª<¨/Ð:Ó;€JØ�>‰>˜QÒÐÐØ×ÑÔØ�>‰>˜QÒÐÑr   c                  óD  — t        g d¢g d¢ff«      } | j                  dk(  sJ ‚| j                  «       dk(  sJ ‚t        | j	                  «       t        j                  ddg«      «       | j                  «        | j                  dk(  sJ ‚| j                  «       dk(  sJ ‚t        | j	                  «       t        j                  ddg«      «       t        | j                  t        j                  dg«      «       t        | j                  t        j                  dg«      «       y )N)r   r   r"   r¦   r   r"   r   )
r   rn   Úcount_nonzeror   r   r   r)   Úeliminate_zerosr…   r†   )rf   s    r   Útest_eliminate_zerosr°   /  s×   € Ü’y¢9 ,Ð/Ó0€EØ�9‰9˜Š>Ðˆ>Ø×ÑÓ  AÒ%Ð%Ð%Ü�—‘“¤"§(¡(¨A¨q¨6Ó"2Ô3Ø	×ÑÔØ�9‰9˜Š>Ðˆ>Ø×ÑÓ  AÒ%Ð%Ð%Ü�—‘“¤"§(¡(¨A¨q¨6Ó"2Ô3Ü�—‘œBŸH™H a S›MÔ*Ü�—‘œBŸH™H a S›MÕ*r   c                  óÎ   — t        j                  g d¢«      } t        j                  g d¢«      }| |z   }t        | «      |z   }t        |«      t        |«      u sJ ‚t	        ||«       y ©N©r   r‚   rƒ   r   r¨   )r   r)   r   Útyper   ©Úden_aÚden_bÚexprK   s       r   Útest_1d_add_denser¹   <  sV   € Ü�H‰H’^Ó$€EÜ�H‰H’\Ó"€EØ
�%‰-€CÜ
�EÓ
˜UÑ
"€CÜ�‹9œ˜S›	Ñ!Ð!Ð!Ü��cÕr   c                  óÌ   — t        j                  g d¢«      } t        j                  g d¢«      }| |z   }t        | «      t        |«      z   }t        ||j	                  «       «       y r²   )r   r)   r   r   r   ©r¶   r·   Ú	dense_sumÚ
sparse_sums       r   Útest_1d_add_sparser¾   E  sN   € Ü�H‰H’^Ó$€EÜ�H‰H’\Ó"€EØ˜‘€Iä˜5Ó!¤I¨eÓ$4Ñ4€JÜ�˜J×.Ñ.Ó0Õ1r   c                  óÒ   — t        j                  g d¢«      } t        j                  g d¢«      }| |z  }t        | «      |z  }t        j                  |«      dk(  sJ ‚t	        ||«       y )Nr³   r¨   r   )r   r)   r   Úndimr   rµ   s       r   Útest_1d_matmul_vectorrÁ   N  sV   € Ü�H‰H’^Ó$€EÜ�H‰H’\Ó"€EØ
�%‰-€CÜ
�EÓ
˜UÑ
"€CÜ�7‰7�3‹<˜1ÒÐÐÜ��cÕr   c                  óê   — t        j                  g d¢«      } t        j                  g d¢g d¢g«      j                  }| |z  }t        | «      |z  }t	        |«      t	        |«      u sJ ‚t        ||«       y )Nr³   r¨   ©r   r   r"   r   )r   r)   rr   r   r´   r   )r�   Úotherr¸   rK   s       r   Útest_1d_matmul_multivectorrÅ   W  s`   € Ü
�(‰(’>Ó
"€CÜ�H‰H’l¢LÐ1Ó2×4Ñ4€EØ
�‰+€CÜ
�C‹.˜5Ñ
 €CÜ�‹9œ˜S›	Ñ!Ð!Ð!Ü��cÕr   c                  ó  — t        j                  g d¢g d¢g«      } t        | «      }| | j                  z  }||j                  z  }t	        |j                  «       |«       t        j                  g d¢g d¢g«      } t        | «      }| | j                  z  }|| j                  z  }t	        ||«       t        j                  g d¢g d¢g«      }t        j                  g d¢«      }t        |«      }||j                  z  }||j                  z  }t	        ||«       t        j                  g d¢«      }t        j                  dgdgd	gg«      }||z  }t        |«      |z  }t	        ||«       t        |«      t        |«      z  }t	        ||«       y )
Nr¨   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   rr   r   r   Úlist)r�   ri   r¸   rK   r¶   r·   rf   s          r   Útest_2d_matmul_multivectorrÈ   `  sD  € ä
�(‰(’L¢,Ð/Ó
0€CÜ�c‹N€EØ
�—‘‰+€CØ
�%—'‘'‰/€CÜ�—‘“ Ô$ô �(‰(’O¢_Ð5Ó
6€CÜ�c‹N€EØ
�—‘‰+€CØ
�#—%‘%‰-€CÜ��cÔô �H‰H’o¢Ð7Ó8€EÜ�H‰H’_Ó%€EÜ�eÓ€EØ
�%—'‘'‰/€CØ
�%—'‘'‰/€CÜ��cÔô �H‰H’YÓ€EÜ�H‰H�q�c˜A˜3  �_Ó%€EØ
�%‰-€CÜ
�EÓ
˜UÑ
"€CÜ��cÔÜ
�EÓ
œT %›[Ñ
(€CÜ��cÕr   c                  óÄ   — t        j                  g d¢«      } t        j                  t        d¬«      5  t        | «      j                  «        d d d «       y # 1 sw Y   y xY w)Nr³   z diagonal requires two dimensionsr?   )r   r)   rE   rF   rG   r   Údiagonal)r�   s    r   Útest_1d_diagonalrË   �  sD   € Ü
�(‰(’>Ó
"€CÜ	�‰”zÐ)KÔ	Lñ "Ü�#‹×ÑÔ!÷"÷ "ñ "ús   ³AÁAr   )rw   ©r   )r   r   ©r   r   r   )r   r   r   r`   )r   r&   r   r   r   r$   c                 óÌ   — t         j                  j                  d«       t         j                  j                  dd| ¬«      }t	        t        |«      j                  «       |«       y )Nr(   r   r$   )ÚlowÚhighÚsize)r   r*   r+   Úrandintr   r   Útodense)r   Úarrs     r   Útest_nd_todenserÕ   ‡  sF   € ô ‡I�I‡N�N�2ÔÜ
�)‰)×
Ñ
 ¨°Ð
Ó
6€CÜ”˜3“×'Ñ'Ó)¨3Õ/r   c                 ó¬   — t        | «      }t        |«      }|j                  | k(  sJ ‚t        |j                  «       t	        j
                  | «      «       y ©Nr   )r   Ú	empty_arrrK   s      r   Útest_nd_sparse_constructorrÙ   �  sB   € ô ˜%Ó €IÜ
�IÓ
€CØ�9‰9˜ÒÐÐÜ�—‘“¤§¡¨£Õ0r   c                 óæ   — t         j                  j                  d«       t        j                  j                  | Ž }t	        |«      }|j
                  | k(  sJ ‚t        |j                  «       |«       y )Nr(   ©r   r*   r+   r,   r   r   r   r   ©r   rÔ   rK   s      r   Útest_nd_tuple_constructorrÝ   ˜  sQ   € ô ‡I�I‡N�N�2ÔÜ
�)‰)�/‰/˜5Ð
!€CÜ
�C‹.€CØ�9‰9˜ÒÐÐÜ�—‘“ Õ$r   c                 óê   — t         j                  j                  d«       t        j                  j                  | Ž }t	        || ¬«      }|j
                  | k(  sJ ‚t        |j                  «       |«       y )Nr(   r7   rÛ   rÜ   s      r   Ú$test_nd_tuple_constructor_with_shaperß   ¢  sT   € ô ‡I�I‡N�N�2ÔÜ
�)‰)�/‰/˜5Ð
!€CÜ
�C˜uÔ
%€CØ�9‰9˜ÒÐÐÜ�—‘“ Õ$r   c                  ó  — t        j                  t        d¬«      5  t        ddgddgddgddgffd¬	«       d d d «       t        g g g g g ffd
¬	«      } t	        | j                  «       t        j                  d
«      «       y # 1 sw Y   ŒJxY w)Nzexceeds matrix dimensionr?   r&   r'   r"   r   r   ©r   r   r   r7   )r   r   r   r   )rE   rF   rG   r   r   r   r   Úempty)rØ   s    r   Ú(test_tuple_constructor_for_dim_size_zerorã   ¬  sˆ   € ä	�‰”zÐ)CÔ	Dñ EÜ�A�q�6˜Q ˜F Q¨ F¨Q°¨FÐ3Ð4¸GÕD÷Eô ˜2  B¨¨BÐ/Ð0¸	ÔB€IÜ�×"Ñ"Ó$¤b§h¡h¨yÓ&9Õ:÷	Eð Eús   œB Â B	)r   Ú	new_shape))©r   r&   r   r$   )r   r   é   r   )rå   )é$   é   )rå   )i8  )rå   )r   r   r   r   r   r$   r   c                 óD  — t         j                  j                  d«      }t        | d|t        ¬«      }|j
                  | k(  sJ ‚|j                  «       }|j                  |«      }|j                  |«      }|j
                  |k(  sJ ‚t        |j                  «       |«       y ©NéŸ4eç333333ã?©ÚdensityÚrngrU   )	r   r*   Údefault_rngr   Úintr   r   rW   r   )r   rä   rï   r0   Úden4dÚexp_arrÚres_arrs          r   Útest_nd_reshaperõ   µ  s„   € ô �)‰)×
Ñ
 Ó
)€Cä˜¨°¼CÔ@€EØ�;‰;˜%ÒÐÐØ�M‰M‹O€Eà�m‰m˜IÓ&€GØ�m‰m˜IÓ&€GØ�=‰=˜IÒ%Ð%Ð%Ü�—‘Ó" GÕ,r   c                 óÌ   — t         j                  j                  d«      }t        | d|t        ¬«      }|j
                  t        j                  |j                  «       «      k(  sJ ‚y rê   )r   r*   rð   r   rñ   rn   r®   r   )r   rï   rÔ   s      r   Útest_nd_nnzr÷   Ç  sK   € ô �)‰)×
Ñ
 Ó
)€Cä
�u c¨s¼#Ô
>€CØ�7‰7”b×&Ñ& s§{¡{£}Ó5Ò5Ð5Ñ5r   c                 ó`  — t         j                  j                  d«      }t        | d|t        ¬«      }|j                  «       j                  }|j                  «       }|j                  | d d d…   k(  sJ ‚t        |j                  «       |«       t        | «      dk\  rœ|j                  «       j                  }|j                  }|j                  |j                  k(  sJ ‚t        |j                  «       |«       t        |«      }|j                  |j                  k(  sJ ‚t        |j                  «       |«       y t        j                  t        d¬«      5  |j                   d d d «       t        j                  t        d¬«      5  t        |«       d d d «       y # 1 sw Y   Œ9xY w# 1 sw Y   y xY w)Nrë   rì   rí   rD   r   z2-dimensionalr?   )r   r*   rð   r   rñ   r   rr   r~   r   r   rŠ   rs   r	   rE   rF   rG   )r   rï   rÔ   ró   Ú	trans_arrs        r   Útest_nd_transposerú   Ð  sJ  € ô �)‰)×
Ñ
 Ó
)€Cä
�u c¨s¼#Ô
>€CØ�k‰k‹m�o‰o€GØ—‘“€IØ�?‰?˜e¡D b D™kÒ)Ð)Ð)Ü�×"Ñ"Ó$ gÔ.ä
ˆ5ƒz�Q‚Ø—+‘+“-×"Ñ"ˆØ—F‘Fˆ	Ø�‰ '§-¡-Ò/Ð/Ð/Ü�Y×&Ñ&Ó(¨'Ô2ä$ SÓ)ˆ	Ø�‰ '§-¡-Ò/Ð/Ð/Ü�Y×&Ñ&Ó(¨'Õ2ä�]‰]œ:¨_Ô=ñ 	Ø�FŠF÷	ä�]‰]œ:¨_Ô=ñ 	"Ü˜SÔ!÷	"ð 	"÷	ð 	ú÷	"ð 	"ús   ÅFÆF$ÆF!Æ$F-)r   Ú	axis_perm))r   rw   )r%   rz   ))r   r   r   r   r$   r   )r"   r   r   r$   r   r   c                 ó  — t         j                  j                  d«      }t        | d|t        ¬«      }|j                  |¬«      }t        |j                  «       t        j
                  |j                  «       |¬«      «       y )Nrë   rì   rí   rx   )r   r*   rð   r   rñ   r~   r   r   )r   rû   rï   rÔ   rù   s        r   Útest_nd_transpose_with_axisrý   ë  s\   € ô �)‰)×
Ñ
 Ó
)€Cä
�u c¨s¼#Ô
>€CØ—‘ 9�Ó-€IÜ�×"Ñ"Ó$¤b§l¡l°3·;±;³=ÀyÔ&QÕRr   c                  ó@  — t        j                  t        d¬«      5  t        g d¢«      j	                  d¬«       d d d «       t        j                  t        d¬«      5  t        g d¢g d¢g«      j	                  d	¬«       d d d «       y # 1 sw Y   ŒOxY w# 1 sw Y   y xY w)
Nr{   r?   r`   rz   rx   r|   rd   re   r}   )rE   rF   rG   r   r~   rH   r   r   Ú%test_transpose_with_inconsistent_axisrÿ   ö  s‡   € Ü	�‰”zÐ)MÔ	Nñ 4Ü’)Ó×&Ñ&¨FÐ&Ô3÷4ô 
�‰”zÐ)EÔ	Fñ AÜ’9šiÐ(Ó)×3Ñ3¸Ð3Ô@÷Að A÷4ð 4ú÷Að Aús   œBÁ"BÂBÂBc            
      óÆ  — t        g d¢g d¢g d¢g d¢ff«      } | j                  dk(  sJ ‚| j                  «       dk(  sJ ‚t        | j	                  «       t        j                  g d¢g d¢gg d¢g d¢gg d¢g d	¢gg«      «       | j                  «        | j                  dk(  sJ ‚| j                  «       dk(  sJ ‚t        | j	                  «       t        j                  g d¢g d¢gg d¢g d¢gg d¢g d	¢gg«      «       g d¢g d¢g d¢g d
¢g d¢f}t        g d¢|f«      }|j                  dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  «        |j                  dk(  sJ ‚|j                  «       dk(  sJ ‚t        |j                  t        j                  g «      «       t        |j                  t        j                  g «      «       t        |j                  g g g g g f«       y )N)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   r   )r   r   r   r   r   )r   rn   r®   r   r   r   r)   r¯   r…   r†   rX   )Úarr3drX   Úarr5ds      r   Útest_nd_eliminate_zerosr  þ  s¤  € ä’|¢l²LÂ,Ð%OÐPÓQ€EØ�9‰9˜Š>Ðˆ>Ø×ÑÓ  AÒ%Ð%Ð%Ü�—‘“¤"§(¡(ªYº	Ð,BÚ%.²	Ð$:ºYÊ	Ð<Rð,Tó #Uô Và	×ÑÔØ�9‰9˜Š>Ðˆ>Ø×ÑÓ  AÒ%Ð%Ð%Ü�—‘“¤"§(¡(ªYº	Ð,BÚ%.²	Ð$:ºYÊ	Ð<Rð,Tó #Uô Vò šLª,ºÂlÐS€FÜ’| VÐ,Ó-€EØ�9‰9˜Š>Ðˆ>Ø×ÑÓ  AÒ%Ð%Ð%Ø	×ÑÔØ�9‰9˜Š>Ðˆ>Ø×ÑÓ  AÒ%Ð%Ð%Ü�—‘œBŸH™H R›LÔ)Ü�—‘œBŸH™H R›LÔ)Ü�—‘  B¨¨B°Ð3Õ4r   c                 ó*  — t         j                  j                  d«      }t        | d|t        ¬«      }t        | d|t        ¬«      }|j                  «       |j                  «       }}||z   }||z   }t        |«      t        |«      u sJ ‚t        ||«       y rê   ©r   r*   rð   r   rñ   r   r´   r   ©r   rï   Úsp_xÚsp_yÚden_xÚden_yr¸   rK   s           r   Útest_nd_add_denser    ó   € ô �)‰)×
Ñ
 Ó
)€CÜ˜ s°¼3Ô?€DÜ˜ s°¼3Ô?€DØ—<‘<“> 4§<¡<£>ˆ5€EØ
�%‰-€CØ
�‰,€CÜ�‹9œ˜S›	Ñ!Ð!Ð!Ü��cÕr   c                 ó  — t         j                  j                  d«      }t        | d|t        ¬«      }t        | d|t        ¬«      }|j                  «       |j                  «       }}||z   }||z   }t        ||j                  «       «       y rê   ©r   r*   rð   r   rñ   r   r   ©r   rï   r  r  r	  r
  r¼   r½   s           r   Útest_nd_add_sparser  %  sr   € ô �)‰)×
Ñ
 Ó
)€CÜ˜¨°#¼SÔA€DÜ˜¨°#¼SÔA€DØ—<‘<“> 4§<¡<£>ˆ5€Eà˜‘€IØ˜‘€JÜ�˜J×.Ñ.Ó0Õ1r   c                  ó  — t        j                  dgt         j                  ggdgdggg«      } t        j                  dgdggdgdggg«      }| |z   }t        | «      t        |«      z   }t	        ||j                  «       «       y ©Nr   rƒ   r"   r   r   )r   r)   Úinfr   r   r   r»   s       r   Útest_add_sparse_with_infr  2  ó|   € ä�H‰H˜�sœRŸV™V˜H�o¨¨¨q¨c {Ð3Ó4€EÜ�H‰H˜�s˜Q˜C�j A 3¨¨ *Ð-Ó.€EØ˜‘€IÜ˜5Ó!¤I¨eÓ$4Ñ4€JÜ�˜J×.Ñ.Ó0Õ1r   )Úa_shapeÚb_shape))rÌ   )r(   )©r   r   )r   r$   )©r$   r&   r   r   )r&   r$   r   r   c                 óø   — t         j                  j                  d«      }t        | d|t        ¬«      }t        |d|t        ¬«      }t        j                  t        d¬«      5  ||z    d d d «       y # 1 sw Y   y xY w©Nrë   rì   rí   r>   r?   ©r   r*   rð   r   rñ   rE   rF   rG   ©r  r  rï   Úarr_aÚarr_bs        r   Ú+test_nd_add_sparse_with_inconsistent_shapesr   ;  óc   € ô �)‰)×
Ñ
 Ó
)€Cä˜'¨C°SÄÔD€EÜ˜'¨C°SÄÔD€EÜ	�‰”zÐ)>Ô	?ñ Ø�Š÷÷ ñ úó   Á!A0Á0A9c                 ó*  — t         j                  j                  d«      }t        | d|t        ¬«      }t        | d|t        ¬«      }|j                  «       |j                  «       }}||z
  }||z
  }t        |«      t        |«      u sJ ‚t        ||«       y rê   r  r  s           r   Útest_nd_sub_denser$  G  r  r   c                 ó  — t         j                  j                  d«      }t        | d|t        ¬«      }t        | d|t        ¬«      }|j                  «       |j                  «       }}||z
  }||z
  }t        ||j                  «       «       y rê   r  r  s           r   Útest_nd_sub_sparser&  T  sr   € ô �)‰)×
Ñ
 Ó
)€Cä˜ s°¼3Ô?€DÜ˜ s°¼3Ô?€DØ—<‘<“> 4§<¡<£>ˆ5€Eà˜‘€IØ˜‘€JÜ�˜J×.Ñ.Ó0Õ1r   c                  ó  — t        j                  dgt         j                  ggdgdggg«      } t        j                  dgdggdgdggg«      }| |z
  }t        | «      t        |«      z
  }t	        ||j                  «       «       y r  )r   r)   r-   r   r   r   r»   s       r   Útest_nd_sub_sparse_with_nanr(  b  r  r   c                 óø   — t         j                  j                  d«      }t        | d|t        ¬«      }t        |d|t        ¬«      }t        j                  t        d¬«      5  ||z
   d d d «       y # 1 sw Y   y xY wr  r  r  s        r   Ú+test_nd_sub_sparse_with_inconsistent_shapesr*  k  r!  r"  )	)©r   r   r   r$   ©r$   ©©r   r   rw   ))r   r   r   r   r'   )r'   ©)r   r   r   r   rw   )©r   r$   r   r   r   ©r   r"   )©r   r$   r,  ©r2  )r$   r"   )r   rB   )rA   rA   )Ú	mat_shapeÚ	vec_shapec                 ó.  — t         j                  j                  d«      }t        | d|t        ¬«      }t        |d|t        ¬«      }|j                  «       |j                  «       }}||z  }||z  }t        ||«       |t        |«      z  }t        ||«       y rê   ©r   r*   rð   r   rñ   r   r   rÇ   )	r4  r5  rï   r  r  r	  r
  r¸   rK   s	            r   Útest_nd_matmul_vectorr8  ‚  s   € ä
�)‰)×
Ñ
 Ó
)€Cä˜	¨3°C¼sÔC€DÜ˜	¨3°C¼sÔC€DØ—<‘<“> 4§<¡<£>ˆ5€EØ
�%‰-€CØ
�‰,€CÜ��SÔØ
”�e“Ñ
€CÜ��SÕr   ))r+  )r   r   r$   r   r-  r/  )©r   r'   r   r   )r9  rB   )r0  ©r   r   ))r"   r   r   r   )r   r$   r"   r   r   ))r   r"   r"   r   r   )r"   r   r   r   )rA   )r   r   r   )r   )r$   r   r   r   r   )rA   r:  r3  )Ú
mat_shape1Ú
mat_shape2c                 óŽ  — t         j                  j                  d«      }t        | d|t        ¬«      }t        |d|t        ¬«      }|j                  «       |j                  «       }}||z  }||z  }t        |j                  «       |«       ||z  }t        ||«       |t        |«      z  }t        ||«       ||z  }t        ||«       y ©Nrë   rì   ©rî   Úrandom_staterU   r7  )	r;  r<  rï   r  r  r	  r
  r¸   rK   s	            r   Útest_nd_matmulrA  ž  s­   € ä
�)‰)×
Ñ
 Ó
)€Cä˜
¨C¸cÌÔM€DÜ˜
¨C¸cÌÔM€DØ—<‘<“> 4§<¡<£>ˆ5€EØ
�%‰-€Cà
�‰+€CÜ�—‘“ Ô$à
�‰,€CÜ��cÔØ
”�e“Ñ
€CÜ��cÔð �$‰,€CÜ��cÕr   c                  ó”  — t         j                  j                  d«      } t        dd| t        ¬«      }t        dd| t        ¬«      }t        j                  t        d¬«      5  ||z   d d d «       t        j                  t        d¬«      5  ||j                  «       z   d d d «       t        dd| t        ¬«      }t        j                  t        d	¬«      5  ||z   d d d «       t        j                  t        d	¬«      5  ||j                  «       z   d d d «       y # 1 sw Y   Œ´xY w# 1 sw Y   Œ‰xY w# 1 sw Y   ŒYxY w# 1 sw Y   y xY w)
Nrë   )r   r$   r   r   r   rì   r?  )r"   r$   r   r   r$   z)matmul: dimension mismatch with signaturer?   )r"   r$   r   r   z&Batch dimensions are not broadcastable)	r   r*   rð   r   rñ   rE   rF   rG   r   )rï   r  r  Úsp_zs       r   Ú.test_nd_matmul_sparse_with_inconsistent_arraysrD  ´  s  € Ü
�)‰)×
Ñ
 Ó
)€Cä˜¨S¸sÌ#ÔN€DÜ˜¨S¸sÌ#ÔN€DÜ	�‰”zÐ)TÔ	Uñ ØˆtŠ÷ä	�‰”zÐ)TÔ	Uñ  Ø�—‘“Ò÷ ô ˜	¨3¸SÌÔL€DÜ	�‰”zÐ)QÔ	Rñ ØˆtŠ÷ä	�‰”zÐ)QÔ	Rñ  Ø�—‘“Ò÷ ð  ÷ð ú÷ ð  ú÷ð ú÷ ð  ús0   Á!DÂ
D&ÃD2Ã=D>ÄD#Ä&D/Ä2D;Ä>Ec                  ó,  — t        g d¢«      } t        g d¢«      }t        j                  | j                  «       |j                  «       «      }| j                  |«      }t	        ||«       | j                  |j                  «       «      }t	        ||«       y )Nr!   r#   )r   r   Údotr   r   )ÚaÚbr¸   rK   s       r   Útest_dot_1d_1drI  Å  sg   € Ü’'Ó€AÜ’'Ó€AÜ
�&‰&�—‘“˜aŸi™i›kÓ
*€CØ
�%‰%�‹(€CÜ��cÔØ
�%‰%�—	‘	“Ó
€CÜ��cÕr   c                  óÎ   — t        ddgddgddgg«      } d}| j                  |«      }t        j                  | j                  «       |«      }t	        |j                  «       |«       y )Nr"   r   r   r   r$   r   )r   rF  r   r   r   )rG  rH  rK   r¸   s       r   Útest_dot_sparse_scalarrK  Ï  sW   € Ü�A�q�6˜A˜q˜6 A q 6Ð*Ó+€AØ	€AØ
�%‰%�‹(€CÜ
�&‰&�—‘“˜aÓ
 €CÜ�—‘“ Õ$r   c                  óÆ   — t        ddggddggg«      } t        g d¢«      }t        j                  t        d¬«      5  | j	                  |«       d d d «       y # 1 sw Y   y xY w)Nr"   r   r   r   r#   znot aligned for n-D dotr?   )r   rE   rF   rG   rF  )r  r  s     r   Ú!test_dot_with_inconsistent_shapesrM  ×  sW   € Ü˜˜A˜�x 1 a & Ð*Ó+€EÜ’iÓ €EÜ	�‰”zÐ)BÔ	Cñ Ø�	‰	�%Ô÷÷ ñ ús   ¼AÁA c                  óþ  — t        ddgddgg«      } t        j                  t        d¬«      5  | j	                  d «       d d d «       t        j                  t        d¬«      5  | j                  d «       d d d «       t        j                  t        d¬«      5  | d z   d d d «       t        j                  t        d¬«      5  d | z   d d d «       y # 1 sw Y   Œ‘xY w# 1 sw Y   ŒhxY w# 1 sw Y   ŒKxY w# 1 sw Y   y xY w)	Nr"   r   r   r   zargument not supported typer?   zarg not supported typezunsupported operand type)r   rE   rF   Ú	TypeErrorrF  Ú	tensordot)r  s    r   Útest_matmul_dot_not_implementedrQ  Þ  sÓ   € Ü˜˜1�v  1˜vÐ&Ó'€EÜ	�‰”yÐ(EÔ	Fñ Ø�	‰	�$Œ÷ä	�‰”yÐ(@Ô	Añ Ø�‰˜Ô÷ä	�‰”yÐ(BÔ	Cñ Ø�Š÷ä	�‰”yÐ(BÔ	Cñ ØˆuŠ÷ð ÷ð ú÷ð ú÷ð ú÷ð ús/   ­CÁ"CÂC'Ã C3ÃCÃC$Ã'C0Ã3C<)
)rb   rb   )©r   r   ©r   r   ))r"   r   r1  )©r   r   r   r   rÌ   )r,  ©r   r   r$   r   )rT  )r   r"   ))r"   r$   rU  )rR  ©r   r   r   r   )©r   r'   r   )r   r$   r   r   r   )©r   r$   r   r   rV  c                 ó  — t         j                  j                  d«      }t        | d|t        ¬«      }t        |d|t        ¬«      }t        j
                  |j                  «       |j                  «       «      }|j                  |j                  «       «      }t        ||«       |j                  t        |j                  «       «      «      }t        ||«       |j                  |«      }t        |j                  «       |«       y r>  )	r   r*   rð   r   rñ   rF  r   r   rÇ   )r  r  rï   r  r  r¸   rK   s          r   Útest_dot_ndrZ  ñ  s±   € ä
�)‰)×
Ñ
 Ó
)€Cä˜¨#¸CÄsÔK€EÜ˜¨#¸CÄsÔK€Eä
�&‰&�—‘“ %§-¡-£/Ó
2€Cà
�)‰)�E—M‘M“OÓ
$€CÜ��cÔØ
�)‰)”D˜Ÿ™›Ó)Ó
*€CÜ��cÔà
�)‰)�EÓ
€CÜ�—‘“ Õ$r   rR  rS  r"   rT  rÌ   r   r,  rU  rX  rV  rW  ©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   )r  r  ry   c                 óR  — t         j                  j                  d«      }t        | d|t        ¬«      }t        |d|t        ¬«      }t        j
                  |j                  «       |j                  «       |¬«      }|j                  |j                  «       |¬«      }t        ||«       |j                  t        |j                  «       «      |¬«      }t        ||«       |j                  ||¬«      }t        |«      t        u rt        |j                  «       |«       y t        ||«       y )Nrë   rì   r?  rx   )r   r*   rð   r   rñ   rP  r   r   rÇ   r´   r   )r  r  ry   rï   r  r  r¸   rK   s           r   Útest_tensordotr]    sÙ   € ä
�)‰)×
Ñ
 Ó
)€Cä˜¨#¸CÄsÔK€EÜ˜¨#¸CÄsÔK€Eä
�,‰,�u—}‘}“¨¯©«¸dÔ
C€Cð �/‰/˜%Ÿ-™-›/°ˆ/Ó
5€CÜ��cÔØ
�/‰/œ$˜uŸ}™}›Ó/°dˆ/Ó
;€CÜ��cÔð �/‰/˜% dˆ/Ó
+€CÜˆCƒy”IÑÜ�S—[‘[“] CÕ(ä�S˜#Õr   c                  ó  — t         j                  j                  d«      } t        dd| t        ¬«      }t        dd| t        ¬«      }dgdgf}t        j                  t        d¬«      5  |j                  ||¬	«       d d d «       t        d
d| t        ¬«      }t        dd| t        ¬«      }g d¢ddgf}t        j                  t        d¬«      5  |j                  ||¬	«       d d d «       y # 1 sw Y   ŒoxY w# 1 sw Y   y xY w)Nrë   ©r   r   r$   rì   r?  ©r   r   r   r   z*sizes of the corresponding axes must matchr?   rx   )r$   r   r   r   r   )r   r   r   r   )r   r   r"   r"   r   z,axes lists/tuples must be of the same length)	r   r*   rð   r   rñ   rE   rF   rG   rP  )rï   r  r  ry   s       r   Ú test_tensordot_with_invalid_argsra  $  sä   € Ü
�)‰)×
Ñ
 Ó
)€Cä˜¨#¸CÄsÔK€EÜ˜¨#¸CÄsÔK€EàˆC�!�ˆ:€DÜ	�‰”zÐ)UÔ	Vñ *Ø�‰˜ DˆÔ)÷*ô ˜¨cÀÌ3ÔO€EÜ˜¨C¸cÌÔM€Eâ�a˜�UÐ€DÜ	�‰”zð *&ô 
'ñ *à�‰˜ DˆÔ)÷*ð *÷*ð *ú÷*ð *ús   Á'C)ÃC5Ã)C2Ã5C>)Úactual_shapeÚbroadcast_shape)	))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&   )ra   )r   r$   r   ))r   r'   r"   )r   r'   r$   )rB   ©r   r   ))r"   r,  )rC   r#   ))r"   r   r"   r$   r   )r'   r   r   r&   r$   r   c                 ó  — t         j                  j                  d«      }t        | d|t        ¬«      }|j                  |«      }t        j                  |j                  «       |«      }t        |j                  «       |«       y r>  )	r   r*   rð   r   rñ   Ú_broadcast_toÚbroadcast_tor   r   )rb  rc  rï   rÔ   rK   r¸   s         r   Útest_broadcast_torh  7  s^   € ô �)‰)×
Ñ
 Ó
)€Cä
�|¨S¸sÌ#Ô
N€CØ
×
Ñ
˜OÓ
,€CÜ
�/‰/˜#Ÿ+™+›-¨Ó
9€CÜ�—‘“ Õ$r   ))r   r$   r   r   r'   r  r  )r&   r$   r   r   r   c                 óÊ  — t         j                  j                  d«      }t        | d|t        ¬«      }|j                  «       }t	        t        j                  |j                  d d «      «      }|j                  |f|j                  dd  z   «      }t        |«      D �cg c]  }||d d …d d …f   ‘Œ }}t        |Ž }t        |«      }	t        |	j                  «       |«       y c c}w )Nrë   rì   r?  r‚   )r   r*   rð   r   rñ   r   Úprodr   rW   Úranger   r   r   )
r   rï   r  r	  Ú
num_slicesÚreshaped_arrayÚiÚmatricesr¸   rK   s
             r   Útest_block_diagrp  E  sÀ   € ô �)‰)×
Ñ
 Ó
)€CÜ˜ s¸ÄCÔH€DØ�L‰L‹N€Eô ”R—W‘W˜UŸ[™[¨¨"Ð-Ó.Ó/€JØ—]‘] J =°5·;±;¸r¸sÐ3CÑ#CÓD€NÜ16°zÓ1BÖC¨A�˜q¢!¢Q˜wÓ'ÐC€HÐCÜ
�hÐ
€Cä
�dÓ
€Cä�—‘“ Õ$ùò Ds   ÂC c                 óâ   — t         j                  j                  d«      }t        | d|t        ¬«      }t        t        |«      | «      }t        |j                  «       |j                  «       «       y r>  )	r   r*   rð   r   rñ   r   r   r   r   )r   rï   r  rK   s       r   Útest_extract_block_diagrr  X  sO   € ô �)‰)×
Ñ
 Ó
)€CÜ˜ s¸ÄCÔH€DÜ
œk¨$Ó/°Ó
7€Cä�—‘“ §¡£Õ/r   ))rd  rd  )r`  r`  )©r   r   r$   rs  c                 ón  — t         j                  j                  d«      }t        | d|t        ¬«      }t        |d|t        ¬«      }||z   }t        j
                  |j                  «       |j                  «       «      }t        |j                  «       |«       ||j                  «       z   }t        ||«       y r>  )r   r*   rð   r   rñ   Úaddr   r   ©r  r  rï   rG  rH  rK   r¸   s          r   Útest_add_no_broadcastingrw  e  s„   € ä
�)‰)×
Ñ
 Ó
)€CÜ�W c¸Ä3ÔG€AÜ�W c¸Ä3ÔG€Aà
ˆa‰%€CÜ
�&‰&�—‘“˜aŸi™i›kÓ
*€CÜ�—‘“ Ô$Ø
ˆa�i‰i‹k‰/€CÜ��cÕr   c                 ón  — t         j                  j                  d«      }t        | d|t        ¬«      }t        |d|t        ¬«      }||z
  }t        j
                  |j                  «       |j                  «       «      }t        |j                  «       |«       ||j                  «       z
  }t        ||«       y r>  )r   r*   rð   r   rñ   Úsubtractr   r   rv  s          r   Útest_sub_no_broadcastingrz  r  s„   € ä
�)‰)×
Ñ
 Ó
)€CÜ�W c¸Ä3ÔG€AÜ�W c¸Ä3ÔG€Aà
ˆa‰%€CÜ
�+‰+�a—i‘i“k 1§9¡9£;Ó
/€CÜ�—‘“ Ô$à
ˆa�i‰i‹k‰/€CÜ��cÕr   )©r   N©r   r   ©rR  r"   ©©r   r   r   ©©r   r$   N©rW  r   ©rW  r   )©r   r   r   ))r   r   r   r   r   ©rT  N©rT  r"   ©rT  r   ©rT  r   )rT  r‚   ©r[  r   )r[  rƒ   )r   Úaxisc                 ót  — t         j                  j                  d«      }t        | d|t        ¬«      }|j                  |¬«      }t        j
                  |j                  «       |¬«      }t        ||«       |j                  |¬«      }t        j                  |j                  «       |¬«      }t        ||«       y ©Nrë   rì   r?  ©rŠ  )	r   r*   rð   r   rñ   Úargmaxr   r   Úargmin)r   rŠ  rï   rG  rK   r¸   s         r   Útest_argmax_argminr�  Š  s†   € ä
�)‰)×
Ñ
 Ó
)€CÜ�U C°cÄÔE€Aà
�(‰(˜ˆ(Ó
€CÜ
�)‰)�A—I‘I“K dÔ
+€CÜ��cÔà
�(‰(˜ˆ(Ó
€CÜ
�)‰)�A—I‘I“K dÔ
+€CÜ��cÕr   )r{  r|  r}  r~  r€  r‚  rƒ  r…  r†  r‡  rˆ  r‰  )©r   r$   r'   r"   r   )rR  rw   )rR  rz   )©r   r   r   r   )r’  ©r   r   )rc   r   )©r   r   r'   r$   rz   )r”  ©r   r"   )r”  r„  )r”  ©r   r‚   )r”  ©rD   r   )r”  r   )r”  r„   )r”  r¨   c                 óô  — t         j                  j                  d«      }t        | d|t        ¬«      }|j                  |¬«      }t        j
                  |j                  «       |¬«      }|j                  |¬«      }t        j                  |j                  «       |¬«      }|j                  |¬«      }t        j                  |j                  «       |¬«      }	|j                  |¬«      }
t        j                  |j                  «       |¬«      }||f||f||	f|
|ffD ]Y  \  }}t        j                  t        |«      t         j                  «      rt        ||«       Œ@t        |j                  «       |«       Œ[ y rŒ  )r   r*   rð   r   rñ   Úminr   ÚmaxÚnanminÚnanmaxÚ
issubdtyper´   Únumberr   )r   rŠ  rï   rG  Úres_minÚexp_minÚres_maxÚexp_maxÚ
res_nanminÚ
exp_nanminÚ
res_nanmaxÚ
exp_nanmaxrK   r¸   s                 r   Útest_min_maxr§  £  s"  € ä
�)‰)×
Ñ
 Ó
)€CÜ�U C°cÄÔE€Aà�e‰e˜ˆeÓ€GÜ�f‰f�Q—Y‘Y“[ tÔ,€GØ�e‰e˜ˆeÓ€GÜ�f‰f�Q—Y‘Y“[ tÔ,€GØ—‘˜t�Ó$€JÜ—‘˜1Ÿ9™9›;¨TÔ2€JØ—‘˜t�Ó$€JÜ—‘˜1Ÿ9™9›;¨TÔ2€Jà˜wÐ'¨'°7Ð);Ø  *Ð-°
¸JÐ/GðIò -‰ˆˆSä�=‰=œ˜c›¤B§I¡IÔ.Ü˜˜cÕ"ä˜Ÿ™›¨Õ,ñ-r   c                  óž   — t        g d¢gg«      t        g d¢g«      fD ]-  } | j                  «       dk(  sJ ‚|  j                  «       dk(  rŒ-J ‚ y )NrŸ   r"   rD   )r   r™  rš  )rG  s    r   Útest_min_max_fullr©  ¹  sO   € Üš,˜Ð(Ó)¬9²l°^Ó+DÐEò  ˆØ�u‰u‹w˜!Š|Ðˆ|Ø��x‰x‹z˜RÓÐÐñ r   )r   NN)r   r   N)rR  r"   N)r  r   N)r�  NN)rW  r   N)r'   r   )rT  NN)r   r   r   )rT  r   N)r[  r   N)r‘  r   N)rR  rw   N)rR  rz   N)r’  r   N)r’  r“  N)rc   r   Nr”  rz   )r'   r$   )r”  r•  N)r”  r–  Nr—  )r   r   )r”  r   N)r”  r¨   N)r   rŠ  Úoutc                 ó@  — t         j                  j                  d«      }t        | d|t        ¬«      }|j                  ||¬«      }t        j
                  |j                  «       |¬«      }t        ||«       |�&t        ||«       t        |«      t        |«      k(  sJ ‚y y ©Nrë   rì   r?  )rŠ  rª  r�  )	r   r*   rð   r   rñ   Úsumr   r   Úid©r   rŠ  rª  rï   rG  rK   r¸   s          r   Útest_sumr°  Ì  s‚   € ä
�)‰)×
Ñ
 Ó
)€CÜ�U C°cÄÔE€Aà
�%‰%�T˜sˆ%Ó
#€CÜ
�&‰&�—‘“ 4Ô
(€CÜ��cÔØ
€Ü�S˜#ÔÜ�#‹wœ"˜S›'Ò!Ð!Ñ!ð r   c                 ó@  — t         j                  j                  d«      }t        | d|t        ¬«      }|j                  ||¬«      }t        j
                  |j                  «       |¬«      }t        ||«       |�&t        |«      t        |«      k(  sJ ‚t        ||«       y y r¬  )	r   r*   rð   r   rñ   Úmeanr   r   r®  r¯  s          r   Ú	test_meanr³  Ù  s‚   € ä
�)‰)×
Ñ
 Ó
)€CÜ�U C°cÄÔE€Aà
�&‰&�d ˆ&Ó
$€CÜ
�'‰'�!—)‘)“+ DÔ
)€CÜ�C˜ÔØ
€Ü�#‹wœ"˜S›'Ò!Ð!Ð!Ü˜˜SÕ!ð r   c                  ót  — t         j                  j                  d«      } t        dd| t        ¬«      }t        |dz  j                  «       t        j                  |j                  «       d«      «       t        |dz  j                  «       t        j                  |j                  «       d«      «       t        t        |«      j                  «       t        j                  |j                  «       «      «       t        t        |«      j                  «       t        j                  |j                  «       «      «       y )Nrë   )r   r   r$   r   r   rì   r?  r   r   )
r   r*   rð   r   rñ   r   r   ÚpowerÚroundÚabs©rï   rG  s     r   Útest_pow_abs_roundr¹  æ  s¼   € Ü
�)‰)×
Ñ
 Ó
)€CÜ�[¨#¸CÄsÔK€AÜ�Q˜‘T—N‘NÓ$¤b§h¡h¨q¯y©y«{¸AÓ&>Ô?Ü�Q˜‘T—N‘NÓ$¤b§h¡h¨q¯y©y«{¸AÓ&>Ô?Ü”E˜!“H×$Ñ$Ó&¬¯©°·±³Ó(=Ô>Ü”C˜“F—N‘NÓ$¤b§f¡f¨Q¯Y©Y«[Ó&9Õ:r   c                 ój  — t         j                  j                  d«      }t        | d|t        ¬«      }t        |d|t        ¬«      }t        j                  «       5  t        j                  dt        «       t        ||k(  j                  «       |j                  «       |j                  «       k(  «       t        ||k7  j                  «       |j                  «       |j                  «       k7  «       t        ||k\  j                  «       |j                  «       |j                  «       k\  «       t        ||k  j                  «       |j                  «       |j                  «       k  «       t        ||kD  j                  «       |j                  «       |j                  «       kD  «       t        ||k  j                  «       |j                  «       |j                  «       k  «       t        ||k(  j                  «       t        j                  ||k7  j                  «       «      «       t        ||k\  j                  «       t        j                  ||k  j                  «       «      «       t        ||k  j                  «       t        j                  ||kD  j                  «       «      «       d d d «       y # 1 sw Y   y xY w©Nrë   rì   r?  Úignore)r   r*   rð   r   rñ   ÚwarningsÚcatch_warningsÚsimplefilterr   r   r   Úbitwise_not)r  r  rï   rG  rH  s        r   Útest_boolean_comparisonsrÁ  ø  sÇ  € ä
�)‰)×
Ñ
 Ó
)€CÜ�W c¸Ä3ÔG€AÜ�W c¸Ä3ÔG€AÜ	×	 Ñ	 Ó	"ñ 
HÜ×Ñ˜hÔ(?Ô@Ü�a˜‘d—^‘^Ó% q§y¡y£{°A·I±I³KÑ'?Ô@Ü�a˜‘d—^‘^Ó% q§y¡y£{°A·I±I³KÑ'?Ô@Ü�a˜‘d—^‘^Ó% q§y¡y£{°A·I±I³KÑ'?Ô@Ü�a˜‘d—^‘^Ó% q§y¡y£{°A·I±I³KÑ'?Ô@Ü�a˜‘c—]‘]“_ a§i¡i£k°!·)±)³+Ñ&=Ô>Ü�a˜‘c—]‘]“_ a§i¡i£k°!·)±)³+Ñ&=Ô>Ü�a˜‘d—^‘^Ó%¤r§~¡~°q¸!±t·n±nÓ6FÓ'GÔHÜ�a˜‘d—^‘^Ó%¤r§~¡~°q¸±s·m±m³oÓ'FÔGÜ�a˜‘d—^‘^Ó%¤r§~¡~°q¸±s·m±m³oÓ'FÔG÷
H÷ 
Hñ 
Hús   ÁIJ)Ê)J2c                  ó  — t         j                  j                  d«      } t        dd| t        ¬«      }t        j                  «       5  t        j                  dt        «       t        |dk(  j                  «       |j                  «       dk(  «       t        |dk7  j                  «       |j                  «       dk7  «       t        |dk\  j                  «       |j                  «       dk\  «       t        |dk  j                  «       |j                  «       dk  «       t        |dkD  j                  «       |j                  «       dkD  «       t        |dk  j                  «       |j                  «       dk  «       d d d «       y # 1 sw Y   y xY w)Nrë   )r$   r   r'   r   rì   r?  r¼  r   r"   )r   r*   rð   r   rñ   r½  r¾  r¿  r   r   r   r¸  s     r   Ú$test_boolean_comparisons_with_scalarrÃ  
  s  € Ü
�)‰)×
Ñ
 Ó
)€CÜ�Y¨¸#ÄSÔI€AÜ	×	 Ñ	 Ó	"ñ 5Ü×Ñ˜hÔ(?Ô@Ü�a˜‘d—^‘^Ó% q§y¡y£{°A¡~Ô6Ü�a˜‘d—^‘^Ó% q§y¡y£{°A¡~Ô6Ü�a˜‘d—^‘^Ó% q§y¡y£{°A¡~Ô6Ü�a˜‘d—^‘^Ó% q§y¡y£{°A¡~Ô6Ü�a˜‘c—]‘]“_ a§i¡i£k°!¡mÔ4Ü�a˜‘c—]‘]“_ a§i¡i£k°!¡mÔ4÷5÷ 5ñ 5ús   ÁD/E?Å?Fc                 ó0  — t         j                  j                  d«      }t        | d|t        ¬«      }t        |d|t        ¬«      }||z  }t        j
                  |j                  «       |j                  «       «      }t        |j                  «       |«       y r>  ©r   r*   rð   r   rñ   Úmultiplyr   r   rv  s          r   Útest_multiplyrÇ    sk   € ä
�)‰)×
Ñ
 Ó
)€CÜ�W c¸Ä3ÔG€AÜ�W c¸Ä3ÔG€AØ
ˆa‰%€CÜ
�+‰+�a—i‘i“k 1§9¡9£;Ó
/€CÜ�—‘“ Õ$r   c                  óî   — t         j                  j                  d«      } t        dd| t        ¬«      }|dz  }t        j
                  |j                  «       d«      }t        |j                  «       |«       y ©Nrë   )r   r$   r   rì   r?  r   rÅ  ©rï   rG  rK   r¸   s       r   Útest_multiply_with_scalarrË  !  sU   € Ü
�)‰)×
Ñ
 Ó
)€CÜ�W c¸Ä3ÔG€AØ
ˆa‰%€CÜ
�+‰+�a—i‘i“k 1Ó
%€CÜ�—‘“ Õ$r   c                 ó€  — t         j                  j                  d«      }t        | d|t        ¬«      }t        j
                  ddt        j                  |«      z   «      j                  |«      }||z  }|j                  «       |z  }t        |j                  «       |«       ||z  }t        |j                  «       |«       y )Nrë   rì   r?  r"   )r   r*   rð   r   rñ   ÚarangeÚmathrj  rW   r   r   rv  s          r   Útest_dividerÏ  )  s�   € ä
�)‰)×
Ñ
 Ó
)€CÜ�W c¸Ä3ÔG€AÜ
�	‰	�!�QœŸ™ 7Ó+Ñ+Ó,×4Ñ4°WÓ=€AØ
ˆa‰%€CØ
�)‰)‹+˜‰/€CÜ�C—K‘K“M 3Ô'à
ˆa‰%€CÜ�C—K‘K“M 3Õ'r   c                  óÌ   — t         j                  j                  d«      } t        dd| t        ¬«      }|dz  }|j                  «       dz  }t        |j                  «       |«       y rÉ  )r   r*   rð   r   rñ   r   r   rÊ  s       r   Útest_divide_with_scalarrÑ  6  sN   € Ü
�)‰)×
Ñ
 Ó
)€CÜ�W c¸Ä3ÔG€AØ
ˆa‰%€CØ
�)‰)‹+˜‰/€CÜ�C—K‘K“M 3Õ'r   c                 óÎ  — t         j                  j                  d«      }t        | d|t        ¬«      }t        |d|t        ¬«      }t        j                  «       5  t        j                  dt        «       |j                  |«      }t        j                  |j                  «       |j                  «       «      }t        |j                  «       |«       d d d «       y # 1 sw Y   y xY wr»  )r   r*   rð   r   rñ   r½  r¾  r¿  r   Úmaximumr   r   rv  s          r   Útest_maximumrÔ  >  ó¡   € ä
�)‰)×
Ñ
 Ó
)€CÜ�W c¸Ä3ÔG€AÜ�W c¸Ä3ÔG€AÜ	×	 Ñ	 Ó	"ñ )Ü×Ñ˜hÔ(?Ô@Ø�i‰i˜‹lˆÜ�j‰j˜Ÿ™› a§i¡i£kÓ2ˆÜ�S—[‘[“] CÔ(÷	)÷ )ñ )úó   ÁA8CÃC$c                 óÎ  — t         j                  j                  d«      }t        | d|t        ¬«      }t        |d|t        ¬«      }t        j                  «       5  t        j                  dt        «       |j                  |«      }t        j                  |j                  «       |j                  «       «      }t        |j                  «       |«       d d d «       y # 1 sw Y   y xY wr»  )r   r*   rð   r   rñ   r½  r¾  r¿  r   Úminimumr   r   rv  s          r   Útest_minimumrÙ  J  rÕ  rÖ  c                  óà  — t        g d¢«      } t        ddgddgddgg«      }t        ddgdd	ggd
dgddgggddgddggddgddgggg«      }t        j                  «       5  t        j                  dt        «       t        | j                  d«      j                  «       t        j                  | j                  «       d«      «       t        |j                  d«      j                  «       t        j                  |j                  «       d«      «       t        |j                  d«      j                  «       t        j                  |j                  «       d«      «       d d d «       y # 1 sw Y   y xY w©N)r   r"   r   ræ   r   é   r$   iôÿÿÿr   r   r   r'   r&   rƒ   r(   r   iúÿÿÿr¼  )	r   r½  r¾  r¿  r   r   rÓ  r   r   ©rG  rH  Úcs      r   Útest_maximum_with_scalarrß  V  ó2  € Ü’'Ó€AÜ�B˜�7˜R ˜G a¨ XÐ.Ó/€AÜ�a˜�U˜Q˜q˜E�N a¨ U¨R°¨GÐ$4Ð5Ø˜�U˜Q˜q˜E�N a¨ U¨Q¨r¨F OÐ4ð6ó 	7€Aä	×	 Ñ	 Ó	"ñ IÜ×Ñ˜hÔ(?Ô@Ü�Q—Y‘Y˜q“\×)Ñ)Ó+¬R¯Z©Z¸¿	¹	»ÀQÓ-GÔHÜ�Q—Y‘Y˜q“\×)Ñ)Ó+¬R¯Z©Z¸¿	¹	»ÀQÓ-GÔHÜ�Q—Y‘Y˜q“\×)Ñ)Ó+¬R¯Z©Z¸¿	¹	»ÀQÓ-GÔH÷	I÷ Iñ Iúó   ÁC<E$Å$E-c                  óà  — t        g d¢«      } t        ddgddgddgg«      }t        ddgdd	ggd
dgddgggddgddggddgddgggg«      }t        j                  «       5  t        j                  dt        «       t        | j                  d«      j                  «       t        j                  | j                  «       d«      «       t        |j                  d«      j                  «       t        j                  |j                  «       d«      «       t        |j                  d«      j                  «       t        j                  |j                  «       d«      «       d d d «       y # 1 sw Y   y xY wrÛ  )	r   r½  r¾  r¿  r   r   rØ  r   r   rÝ  s      r   Útest_minimum_with_scalarrã  b  rà  rá  c                  ó¬  — t        t        j                  d«      «      } | d   dk(  sJ ‚| d   dk(  sJ ‚t        | dd j	                  «       | j	                  «       dd «       t        | d d j	                  «       | j	                  «       d d «       t        | dd  j	                  «       | j	                  «       dd  «       t        | ddd…   j	                  «       | j	                  «       ddd…   «       t        | g d¢   j	                  «       | j	                  «       g d¢   «       t        | g d	¢   j	                  «       | j	                  «       g d	¢   «       y )
Nr&   r   r   r"   r   r$   r   ©r"   r   r   ©r   r   r"   )r   r   rÍ  r   r   ©r\   s    r   Útest_1d_coo_getrè  n  s  € Ü”"—)‘)˜A“,Ó€AàˆQ‰4�1Š9Ðˆ9ØˆQ‰4�1Š9Ðˆ9ä��1�Q�—‘Ó! 1§9¡9£;¨q°Ð#3Ô4Ü��2�A�—‘“ !§)¡)£+¨b¨q /Ô2Ü��1�2�—‘“ !§)¡)£+¨a¨b /Ô2Ü��1�Q�q�5‘×!Ñ!Ó# Q§Y¡Y£[°°1°Q°Ñ%7Ô8ä�’9‘×%Ñ%Ó'¨¯©«²YÑ)?Ô@Ü�’9‘×%Ñ%Ó'¨¯©«²YÑ)?Õ@r   c                  óº  — t        t        j                  d«      j                  d«      «      } | d   dk(  sJ ‚| d   dk(  sJ ‚t	        | dd…df   j                  «       | j                  «       dd…df   «       t	        | d	dd…f   j                  «       | j                  «       d	dd…f   «       t	        | d d	…dd
d…f   j                  «       | j                  «       d d	…dd
d…f   «       t	        | ddgdf   j                  «       | j                  «       ddgdf   «       t	        | d	d …ddgf   j                  «       | j                  «       d	d …ddgf   «       t	        | t        j                  ddg«      df   j                  «       | j                  «       ddgdf   «       t	        | d	d …t        j                  ddg«      f   j                  «       | j                  «       d	d …ddgf   «       t	        | d d …df   j                  «       | j                  «       d d …df   «       t	        | dd d …f   j                  «       | j                  «       dd d …f   «       y )Né   ©r   r$   r.  r   rd  é   r"   r   r   r$   )r   r   rÍ  rW   r   r   r)   rç  s    r   Útest_2d_coo_getrí  }  s  € Ü”"—)‘)˜EÓ"×*Ñ*¨6Ó2Ó3€AàˆT‰7�aŠ<Ðˆ<ØˆT‰7�bŠ=Ðˆ=ä��1�Q�3˜�6‘×"Ñ"Ó$ a§i¡i£k°!°A°#°q°&Ñ&9Ô:Ü��1�a˜�c�6‘×"Ñ"Ó$ a§i¡i£k°!°Q°q°S°&Ñ&9Ô:Ü��2�A�2�q˜˜1�u�9‘×%Ñ%Ó'¨¯©«°R°a°R¸¸1¸Q¸°YÑ)?Ô@ä��A�q�6˜1�9‘×%Ñ%Ó'¨¯©«°a¸°U¸A°XÑ)>Ô?Ü��1‘2˜˜1�v�:‘×&Ñ&Ó(¨!¯)©)«+°a±b¸1¸Q¸%°iÑ*@ÔAÜ�”2—8‘8˜Q ˜FÓ# QÐ&Ñ'×/Ñ/Ó1°1·9±9³;ÀÀ!¸uÀa¸xÑ3HÔIÜ��1‘2”r—x‘x  A Ó'Ð'Ñ(×0Ñ0Ó2°A·I±I³KÀÁÀQÀqÀEÀ	Ñ4JÔKä�’1�a�4‘—‘Ó" A§I¡I£K²°1°Ñ$5Ô6Ü��1’a�4‘—‘Ó" A§I¡I£K°²1°Ñ$5Õ6r   c                  óÂ  — t        t        j                  d«      j                  d«      «      } | d   dk(  sJ ‚| d   dk(  sJ ‚t	        | ddd…df   j                  «       | j                  «       ddd…df   «       t	        | ddd…df   j                  «       | j                  «       ddd…df   «       t	        | d d…dd	d
…d
d …f   j                  «       | j                  «       d d…dd	d
…d
d …f   «       t	        | ddgddf   j                  «       | j                  «       ddgddf   «       t	        | d d
…dd…ddgf   j                  «       | j                  «       d d
…dd…ddgf   «       t	        | dd d …df   j                  «       | j                  «       dd d …df   «       t	        | d d …d d …df   j                  «       | j                  «       d d …d d …df   «       y )Néx   r#   rÍ   r   r_  éw   r"   r   r$   r   )r   r   rÍ  rW   r   r   )r[   s    r   Útest_3d_coo_getrñ  �  sÎ  € Ü”"—)‘)˜IÓ&×.Ñ.¨yÓ9Ó:€AØˆW‰:˜Š?Ðˆ?ØˆW‰:˜ÒÐÐä��1�a˜�c˜1�9‘×%Ñ%Ó'¨¯©«°Q¸¸!¸¸Q°YÑ)?Ô@Ü��1�a˜�c˜1�9‘×%Ñ%Ó'¨¯©«°Q¸¸!¸¸Q°YÑ)?Ô@Ü��2�A�2�q˜˜1�u˜a™b�=Ñ!×)Ñ)Ó+¨Q¯Y©Y«[¸¸!¸¸Q¸qÀ¸UÀAÁB¸Ñ-GÔHä��A�q�6˜1˜a�<‘×(Ñ(Ó*¨A¯I©I«K¸¸A¸ÀÀ1¸Ñ,EÔFÜ��2�A�2�q˜�s˜Q ˜F�?Ñ#×+Ñ+Ó-¨q¯y©y«{¸2¸A¸2¸qÀ¸sÀQÈÀF¸?Ñ/KÔLä��1’a˜�7‘×#Ñ#Ó% q§y¡y£{°1²a¸°7Ñ';Ô<Ü�’1’a˜�7‘×#Ñ#Ó% q§y¡y£{²1²a¸°7Ñ';Õ<r   c            	      óú  — t        t        j                  d«      j                  d«      «      } | j	                  «       }t        | d d…dd …df   j	                  «       |d d…dd …df   «       t        | d d d…dd…d df   j	                  «       |d d d…dd…d df   «       t        | d d d…dd …dd f   j	                  «       |d d d…dd …dd f   «       t        | d d d…dd f   j	                  «       |d d d…dd f   «       y )Nrï  r#   r$   r   r"   .)r   r   rÍ  rW   r   r   )r[   ÚDs     r   Útest_newaxis_getrô     s  € Ü”"—)‘)˜IÓ&×.Ñ.¨yÓ9Ó:€AØ	�	‰	‹€AÜ��2�A�2�q‘r˜1�9‘×%Ñ%Ó'¨¨2¨A¨2¨q©r°1¨9©Ô6Ü��4˜˜!˜˜Q˜q˜S $¨Ð)Ñ*×2Ñ2Ó4°a¸¸b¸q¸bÀ!ÀAÀ#ÀtÈQÐ8NÑ6OÔPÜ��4˜˜!˜˜Q™R  DÐ(Ñ)×1Ñ1Ó3°Q°t¸R¸a¸RÀÁÀQÈÐ7LÑ5MÔNÜ��4˜˜!˜˜S $Ð&Ñ'×/Ñ/Ó1°1°T¸2¸A¸2¸sÀDÐ5HÑ3IÕJr   c                  óv  — t        j                  d«      j                  d«      } t        | «      }dx|d dd …df<   | d dd …df<   t	        |j                  «       | «       dx|dd …dd f<   | dd …dd f<   t	        |j                  «       | «       dx|dd …d df<   | dd …d df<   t	        |j                  «       | «       y )Nrï  r#   r$   r   r"   r   )r   rÍ  rW   r   r   r   ©ró  r[   s     r   Útest_newaxis_setr÷  ©  sº   € Ü
�	‰	�)Ó×$Ñ$ YÓ/€AÜ�!‹€Aà&'Ð'€A€dˆA‰B�€k�N�Q�t˜Q™R �{‘^Ü�—‘“˜aÔ Ø&'Ð'€A€a�bˆ!ˆT€k�N�Q�q‘r˜1˜d�{‘^Ü�—‘“˜aÔ Ø&'Ð'€A€a�bˆ$�€k�N�Q�q‘r˜4 �{‘^Ü�—‘“˜aÕ r   c                  óÖ  — t        j                  d«      } t        | «      }dx|d<   | d<   t        |j	                  «       | «       dx|d<   | d<   t        |j	                  «       | «       ddgx|dd | dd t        |j	                  «       | «       g d	¢x|d d | d d t        |j	                  «       | «       | dd   x|dd  | dd  t        |j	                  «       | «       | dd
d…    x|dd
d…<   | dd
d…<   t        |j	                  «       | «       | g d¢    x|g d¢<   | g d¢<   t        |j	                  «       | «       | g d¢    x|g d¢<   | g d¢<   t        |j	                  «       | «       y )Nr&   rD   r   r‚   r   rƒ   r"   r   )iùÿÿÿiøÿÿÿi÷ÿÿÿr$   r   rå  r!   ræ  )r   rÍ  r   r   r   rö  s     r   Útest_1d_coo_setrù  µ  sd  € Ü
�	‰	�!‹€AÜ�!‹€AàÐ€A€a�Dˆ1ˆQ‰4Ü�—‘“˜aÔ ØÐ€A€a�Dˆ1ˆQ‰4Ü�—‘“˜aÔ à˜2�hÐ€A€aˆ€FˆQˆq�ˆVÜ�—‘“˜aÔ Ú Ð €A€b€q€EˆAˆbˆqˆEÜ�—‘“˜aÔ Ø�q�r�U�FÐ€A€a€b€EˆAˆaˆbˆEÜ�—‘“˜aÔ Ø˜Q˜q ˜U™8˜)Ð#€A€aˆˆ!€e�Hˆq��1�Q�‰xÜ�—‘“˜aÔ à#$¢Y¡< -Ð/€A‚i�L�1’Y‘<Ü�—‘“˜aÔ Ø#$¢Y¡< -Ð/€A‚i�L�1’Y‘<Ü�—‘“˜aÕ r   rê  rë  ra   )rD   rƒ   r$   rD   r!   ©r[   ró  Úidxc                 óT   — ||    x||<   | |<   t        | j                  «       |«       y r×   ©r   r   rú  s      r   Útest_2d_coo_setrþ  ä  s,   € ð ˜‘v�gÐ€A€c�FˆQˆs‰VÜ�—‘“˜aÕ r   rï  r#   rÍ   )r   éüÿÿÿr$   r   c                 óL   — dx||<   | |<   t        | j                  «       |«       y )Né�ÿÿÿrý  rú  s      r   Útest_3d_coo_setr    s&   € ð Ð€A€c�FˆQˆs‰VÜ�—‘“˜aÕ r   Úscalar_containerc                 óB   — t        t        j                  | gg«      «      S r×   )r
   r   r)   ©Úxs    r   ú<lambda>r    s   € ŒyœŸ™ A 3 %›Ó)€ r   c                 ó   — | S r×   rH   r  s    r   r  r    s   € ¸q€ r   )ÚsparseÚdenseÚscalar)Úidszfails in parallel)Úreasonc                 óx   —  | d«      t         d<   dt        d<   t        t         j                  «       t        «       y )Nr  rÍ   )r[   ró  r   r   )r  s    r   Útest_3d_coo_singletonr  
  s+   € ñ $ CÓ(„A€i�LØ„A€i�LÜ”—‘“œaÕ r   éÀ  ©r   r   r   r   r   )zall-intsr§   )zellipsis-first).r   )zellipsis-last)r"   .)zellipsis-middle)r"   .r   z
split-intszcontiguous-ints-lastzcontiguous-ints-firstzempty-slicezsplit-2d-arrays-and-intsr8   )r   r"   r   )r   r"   r   rá   zcontiguous-2d-arrays-and-intszsplit-1d-arrays-and-intsz,split-ints-broadcast-arrays-slice-step-not-1zcontiguous-broadcast-arrayszcontiguous-arrays-firstz!split-arrays-some-first-some-lastz$duplicate-array-entries-split-arrays)r   r   r   z3duplicate-array-entries-contiguous-broadcast-arrays©r[   ró  ÚixÚmsgc                 óX   — dx||<   | |<   t        | j                  «       |d|› d�¬«       y )Nr  z

Test of: ú
)Úerr_msgrý  r  s       r   Útest_5d_coo_setr  G  s1   € ð Ð€A€b�EˆAˆb‰EÜ�—‘“˜a¨;°s°e¸2Ð)>Ö?r   c                  óˆ  — t        j                  d«      j                  d«      } t        | «      }t	        || dkD     j                  «       | | dkD     «       t	        || dkD     j                  «       | | dkD     «       t	        || dkD     j                  «       | | dkD     «       t	        ||dkD     j                  «       | | dkD     «       t	        ||dkD     j                  «       | | dkD     «       t	        ||dk     j                  «       | | dk     «       |d d …ddddf   dkD  }|dd d …dddf   dkD  }|t        dd	d «      d
gt        d dd«      |f}|j                  «       t        dd	d
«      d
gt        ddd«      |j                  «       f}| |   }t	        ||   j                  «       |«       t	        ||   j                  «       |«       t        dd	d «      ||t        d dd«      d
gf}t        dd	d «      |j                  «       |j                  «       t        d dd«      d
gf}| |   }t	        ||   j                  «       |«       y )Nr  r  éô  iˆ  rD   r   é2   r   r   r"   )r   rÍ  rW   r   r   r   Úslice)ró  r[   Úbi0Úbi1rû  ÚidxnpÚresults          r   Útest_bool_getr!  N  s$  € Ü
�	‰	Ð#Ó$×,Ñ,¨_Ó=€AÜ�!‹€Aä��1�s‘7‘×#Ñ#Ó% q¨¨S©¡zÔ2Ü��1�t‘8‘×$Ñ$Ó&¨¨!¨d©(©Ô4Ü��1�r‘6‘×"Ñ"Ó$ a¨¨B©¡iÔ0ä��1�s‘7‘×#Ñ#Ó% q¨¨S©¡zÔ2Ü��1�t‘8‘×$Ñ$Ó&¨¨!¨d©(©Ô4Ü��1�r‘6‘×"Ñ"Ó$ a¨¨B©¡iÔ0à
ŠAˆq�!�Q˜ˆMÑ
˜RÑ
€CØ
ˆAŠq�!�Q˜ˆMÑ
˜RÑ
€Cà”�a˜˜DÓ! A 3¬¨d°A°qÓ(9¸3Ð
?€CØ�[‰[‹]œE ! Q¨›N¨Q¨C´°q¸!¸Q³ÀÇÁÃÐO€EØˆu‰X€FÜ��3‘—‘Ó! 6Ô*Ü��5‘×!Ñ!Ó# VÔ,ä��A�tÓ˜c 3¬¨d°A°qÓ(9¸A¸3Ð
?€CÜ�1�a˜Ó §¡£¨s¯{©{«}¼eÀDÈ!ÈQÓ>OÐRSÐQTÐU€EØˆu‰X€FÜ��3‘—‘Ó! 6Õ*r   c                  óh  — t        j                  d«      j                  d«      } t        | «      }|j	                  «       | j	                  «       }}dx||dkD  <   ||dkD  <   t        |j                  «       |«       |j	                  «       | j	                  «       }}dx||dkD  <   ||dkD  <   t        |j                  «       |«       |j	                  «       | j	                  «       }}|d d …ddddf   dkD  }|t        dd	d «      d
gt        d dd«      |f}|j                  «       t        dd	d
«      d
gt        ddd«      |j                  «       f}dx||<   ||<   t        |j                  «       |«       |j	                  «       | j	                  «       }}dx||<   ||<   t        |j                  «       |«       y )Nr  r  ißÿÿÿr  i³ÿÿÿr   r  r   r   r"   iÉÿÿÿi¨ÿÿÿ)r   rÍ  rW   r   Úcopyr   r   r  )ÚD_origÚA_origr[   ró  Úbool0rû  r  s          r   Útest_bool_setr'  i  s}  € Ü�Y‰YÐ(Ó)×1Ñ1°/ÓB€FÜ�vÓ€Fà�;‰;‹=˜&Ÿ+™+›-€q€AØ!Ð!€A€aˆ#�g�J��1�s‘7‘Ü�—‘“˜aÔ à�;‰;‹=˜&Ÿ+™+›-€q€AØ!Ð!€A€aˆ#�g�J��1�s‘7‘Ü�—‘“˜aÔ à�;‰;‹=˜&Ÿ+™+›-€q€AØŠa��A�q˜!ˆmÑ˜rÑ!€EØ”%˜˜1˜dÓ# a S¬%°°a¸Ó*;¸UÐ
C€CØ�]‰]‹_œe A q¨!›n¨q¨c´5¸¸A¸q³>À5Ç=Á=Ã?ÐS€EàÐ€A€e�Hˆq�‰vÜ�—‘“˜aÔ à�;‰;‹=˜&Ÿ+™+›-€q€AØÐ€A€e�Hˆq�‰xÜ�—‘“˜aÕ r   )„rÎ  r½  Únumpyr   Únumpy.testingr   r   rE   Úscipy.linalgr   Úscipy.sparser   r   r   r	   Úscipy.sparse._csrr
   Ú_coor   r   r   r5   r<   rI   rL   rP   rR   r^   rl   rp   ru   r   r‹   r•   ÚmarkÚparametrizerñ   rž   rÇ   ÚzipÚtupler¡   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*  Úmat_vec_shapesr8  Úmat_mat_shapesrA  rD  rI  rK  rM  rQ  Ú
dot_shapesrZ  Útensordot_shapes_and_axesr]  ra  rh  rp  rr  Úadd_sub_shapesrw  rz  Úargmax_argmin_shapes_axisr�  Úmax_min_shapes_axisr§  r©  r   Úsum_mean_paramsr°  r³  r¹  Úbitwise_op_and_compare_shapesrÁ  rÃ  rÇ  rË  rÏ  rÑ  rÔ  rÙ  rß  rã  rè  rí  rñ  rô  r÷  rù  rÍ  rW   ró  r[   r  ÚEllipsisr)   ÚkeysÚthread_unsaferþ  r  r  r  r!  r'  )rû  r  r  s   000r   ú<module>r>     sÉ  ðÛ Û ã ß 7Û Ý #÷ó õ (ß 3ò<òRò@)ò(+ò80ò5ò8ò
#ò "òJò
=òAò ò 3ð ‡�×Ñ˜¢Ó0ð%˜ò %ó 1ð%ð ‡�×Ñ˜¡¡Sª²|Ó%DÓ EÓFð%˜e C¨ H™oò %ó Gð%ð ‡�×Ñ˜¢Ó-ð%˜cò %ó .ð%òò8
+òò2òòòòB"ð ‡�×Ñ˜ò #;ó <ñ0ó<ð0ð ‡�×Ñ˜ò #;ó <ñ1ó<ð1ð ‡�×Ñ˜ò #;ó <ñ%ó<ð%ð ‡�×Ñ˜ò #;ó <ñ%ó<ð%ò;ð ‡�×ÑÐ/ò 2Qó Rñ-ó	Rð-ð ‡�×Ñ˜ò #;ó <ñ6ó<ð6ð ‡�×Ñ˜ò #;ó <ñ"ó<ð"ð2 ‡�×ÑÐ/ò 2Só TñSóTðSòAò5ð4 ‡�×Ñ˜ò #;ó <ñó<ðð ‡�×Ñ˜ò #;ó <ñ2ó<ð2ò2ð ‡�×ÑÐ/ò 2Kó LñóLðð ‡�×Ñ˜ò #;ó <ñó<ðð ‡�×Ñ˜ò #;ó <ñ	2ó<ð	2ò2ð ‡�×ÑÐ/ò 2Kó LñóLðò
€ð ‡�×ÑÐ3°^ÓDñ
ó Eð
ò€ð ‡�×ÑÐ5°~ÓFñó Gðò* ò"ò%òò	ò€
ð ‡�×ÑÐ/°Ó<ñ%ó =ð%ð$ ˆE�Q�C˜!˜�:ÐØ�˜�s˜Q˜C�jÐ!Ø	ˆ9˜�s˜Q˜C�jÐ!Ø�	˜Q ˜F Q¨ FÐ+Ð,ØˆkšI¢yÐ1Ð2Ø!ØØˆgš	¢9Ð-Ð.ð	Ð ð ‡�×ÑÐ7Ð9RÓSñó Tðò,*ð& ‡�×ÑÐ<òMóNñ
%óNð
%ð ‡�×Ñ˜'ò %>ó ?ñ%ó?ð%ð" ‡�×Ñ˜'ò %>ó ?ñ0ó?ð0ò€ð ‡�×ÑÐ/°Ó@ñ	ó Að	ð ‡�×ÑÐ/°Ó@ñ
ó Að
òÐ ð ‡�×ÑÐ*Ð,EÓFñ
ó Gð
ò
Ð ð ‡�×ÑÐ*Ð,?Ó@ñ-ó Að-ò* ð ˜ØÐ&Ð(;Ø˜ ! X R§X¡X¨e£_Ð5Ø˜i¨¨H¨B¯H©H°WÓ,=Ð>ØÐ0ØÐ-Ð/CØÐ.Ð0@Ø��x�r—x‘x “Ð'Ð)AØ 	¨6°8°2·8±8¸E³?ÐCØ˜Y¨°°·±¸$³Ð@Ø ð€ð ‡�×ÑÐ1°?ÓCñ	"ó Dð	"ð ‡�×ÑÐ1°?ÓCñ	"ó Dð	"ò;ò!Ð ð ‡�×ÑÐ/Ð1NÓOñHó PðHò"
5ð ‡�×ÑÐ/Ð1NÓOñ%ó Pð%ò%ð ‡�×ÑÐ/Ð1NÓOñ	(ó Pð	(ò(ð ‡�×ÑÐ/Ð1NÓOñ)ó Pð)ð ‡�×ÑÐ/Ð1NÓOñ)ó Pð)ò	Iò	IòAò7ò&=ò Kò	!ò!ð0 €B‡I�IˆeÓ×Ñ˜VÓ$€ÙˆaƒL€ð Øá
ˆ1ˆa�Ó˜ÐØ‰ˆa��DÓÐÙ
ˆ1ˆa�Ó™˜a  A›Ð'Ù
ˆ4��rÓ˜AÐØ‰ˆd‹ÐØ€Kàˆ€VˆQ€KØˆˆAˆ€KØ€R‡X�Xˆq�!ˆfÓ‘u˜Q “~Ð&Ù
ˆ1ƒXˆxˆr�x‰xš	Ó"Ð#à€R‡X�Xˆq�!ˆfÓ�x�r—x‘x  A Ó'Ð(ð#€ð( ‡�×ÑÒ*ÀDÖ,I¸S¨a°°Cª[Ò,IÓJØ‡�×Ññ!ó ó Kð!ð
 €B‡I�IˆiÓ× Ñ  Ó+€ÙˆaƒL€ð Øà‰ˆa�‹�QÐÙ
ˆ1ˆdƒ^�Q™˜a›Ð!Ù
ˆ1ƒX‰u�Q˜˜1‹~™u Q¨›~Ð.Ù
ˆ4��rÓ™E $›K©¨q°!°Q«Ð8ØàˆˆAˆ‘�a“ÐØ€R‡X�Xˆq�!ˆfÓ‘u˜Q “~ qÐ)Ø€R‡X�Xˆq�!ˆfÓ‘u˜Q “~¨ sÐ+à€R‡X�Xˆq�!ˆfÓ‘u˜Q “~ x r§x¡x°°A°Ó'7Ð8Øˆˆ�‰�!�Q�Ó˜(˜"Ÿ(™( A q 6Ó*Ð+Ø€R‡X�Xˆq�!ˆfÓ�x�r—x‘x  A Ó'¨Ð+Ø€R‡X�Xˆq�!ˆfÓ�x�r—x‘x  A Ó'¨!¨Ð-ð%€ð* ‡�×ÑÒ*ÀDÖ,I¸S¨a°°Cª[Ò,IÓJØ‡�×Ññ!ó ó Kð!ð
 ‡�×ÑØÙ)¨2¯8©8±[ÐAÚ%ð ó ð
 ‡�×ÑÐ"5ÐÓ6ñ!ó 7óð!ð €B‡I�IÐÓ ×(Ñ(¨Ó9€ÙˆaƒL€ð Ø ØØ$à‘E˜$  4Ó(¨!¨Q±°d¸DÀ$Ó0GÈÐKÐLØ™e A t¨TÓ2±E¸$ÀÀdÓ4KÈQÐPQÐSTÐUÐVØ˜q ! Q©¨a°°tÓ(<¹eÀDÈ$ÐPTÓ>UÐVÐWØ‘U˜1˜a Ó&©¨d°D¸$Ó(?ÀÀAÀqÐIÐJàÙ	ˆt�Q˜Ó	¢	ª9Ð5º	Â9Ð7MÙ	ˆt�T˜4Ó	  !ð	%ðð %Ù	ˆt�Q˜Ó	¢	ª9Ð5º	Â9Ð7MØ	
‰E�$˜˜dÓ#ð	%ðð  Ù	ˆt�Q˜Ó	šyª)±U¸4ÀÀtÓ5LÈaÐPðð 4Ø	
‰E�!�Q˜‹N˜A¢	˜{¨a¨S°1°#¸°s¨OÐ<ðð #Ù	ˆt�Q˜Ó	™u Q¨¨1›~¨q²9°+ÀÀÀaÀSÈ1È#¸ÐOðð Ú
ˆ˜�s˜Q˜C ! �o q©%°°1°a«.¹%ÀÀaÈÓ:NÐOðð )Ú
ˆ‘e˜A˜q !“n¡e¨D°!°TÓ&:¸AÀÀÀaÀSÈ1È#¸ÐOðð ,Ù	ˆt�Q˜Ó	¢	ª9Ð5º	Â9Ð7MÙ	ˆt�T˜4Ó	  !ð	%ðð ;Ù	ˆq�!�Q‹˜˜A¢	˜{¨a¨S°1°#¸°s¨OÐ<ððQ+€ðZ ‡�×ÑÒ0ÐRV×2WÁwÀsÈB°A°q¸"¸c²?Ó2WÓXØ‡�×Ññ@ó ó Yð@ò
+ó6!ùòK -Jùò> -JùóH 3Xs   Ý-n4
ä'n9
í6n>