Ë
    âQ(hÎq  ã                   ó‚  — d dl Zd dlmZ d dlZd dlmZ d dlmZ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d„ Zej8                  j;                  dg d¢«      defd„«       Zej8                  j;                  d e g d¢g d¢«      «      de!eef   fd„«       Z"ej8                  j;                  dg d¢«      defd„«       Z#d„ Z$d„ Z%d„ Z&d „ Z'd!„ Z(d"„ Z)d#„ Z*d$„ Z+ej8                  j;                  d%g d&¢«      d'„ «       Z,ej8                  j;                  d%g d&¢«      d(„ «       Z-ej8                  j;                  d%g d&¢«      d)„ «       Z.ej8                  j;                  d%g d&¢«      d*„ «       Z/d+„ Z0ej8                  j;                  d,g d-¢«      d.„ «       Z1ej8                  j;                  d%g d&¢«      d/„ «       Z2ej8                  j;                  d%g d&¢«      d0„ «       Z3ej8                  j;                  d1g d2¢«      d3„ «       Z4d4„ Z5d5„ Z6ej8                  j;                  d%g d&¢«      d6„ «       Z7ej8                  j;                  d%g d&¢«      d7„ «       Z8d8„ Z9ej8                  j;                  d9g d:¢«      d;„ «       Z:ej8                  j;                  d%g d&¢«      d<„ «       Z;ej8                  j;                  d%g d&¢«      d=„ «       Z<d>„ Z=ej8                  j;                  d9g d:¢«      d?„ «       Z>g d@¢Z?ej8                  j;                  dAe?«      dB„ «       Z@g dC¢ZAej8                  j;                  dDeA«      dE„ «       ZBdF„ ZCdG„ ZDdH„ ZEdI„ ZFdJ„ ZGg dK¢ZHej8                  j;                  d9eH«      dL„ «       ZIdMdNdOg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ZJej8                  j;                  d^eJ«      d_„ «       ZKd`„ ZLej8                  j;                  dag db¢«      dc„ «       ZMej8                  j;                  d%g dd¢«      de„ «       ZNej8                  j;                  d%g dd¢«      df„ «       ZOy)gé    N)Úassert_equal)Ú
block_diag)Ú	coo_arrayÚrandom_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      úY/var/www/skyplay_api_hub/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_constructorr1      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_shaper7   7   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   r3   ©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_shaperD   K   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_constructorrG   g   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%   ©rF   s    r   Útest_1d_tuple_constructorrK   n   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   r<   r3   )r   r"   r#   r   rI   rJ   s    r   Ú$test_1d_tuple_constructor_with_shaperM   t   sH   € Ü
�a˜�U˜a ˜U˜HÐ%¨TÔ
2€CØ�9‰9˜ÒÐÐÜ�—‘“¤§¡ªÓ 6Õ7r   c                  óö   — t        d«      } t        j                  t        d¬«      5  d| d<   d d d «       t        j                  t        d¬«      5  | dd d …f    d d d «       y # 1 sw Y   Œ7xY w# 1 sw Y   y xY w)N)r   r   z3'coo_array' object does not support item assignmentr:   r   ©r   r   z''coo_array' object is not subscriptabler   )r   r@   rA   Ú	TypeError)Úcoo_2ds    r   Útest_non_subscriptabilityrR   y   su   € Ü�vÓ€Fä	�‰”yØSô
Uñ àˆˆt‰÷ô 
�‰”yØFô
Hñ àˆq’!ˆtŠ÷ð ÷	ð ú÷ð ús   §A#Á
A/Á#A,Á/A8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
@r3   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   r=   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%   r@   rA   rB   )Úarr1dÚcol_vecÚrow_vecÚarr2dÚflatÚ	to_3d_arrs         r   Útest_reshaperk   ”   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   rc   rd   r!   r   )r   r   Únnz©re   rh   s     r   Útest_nnzro   ¹   s_   € Ü’iÓ €EØ�;‰;˜$ÒÐÐØ�9‰9˜Š>Ðˆ>ä’y¢)Ð,Ó-€EØ�;‰;˜&Ò Ð Ð Ø�9‰9˜Š>Ð‰>r   c            	      óv  — 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	                  «       t        j                  ddgddgdd	gg«      «       y )
Nr`   r   rc   rd   r   r   r   r   r   )r   ÚTr   r   r   r   r%   rn   s     r   Útest_transposerr   Ã   s�   € Ü’iÓ ×"Ñ"€EØ�;‰;˜$ÒÐÐÜ�—‘“¤"§(¡(ª9Ó"5Ô6ä’y¢)Ð,Ó-×/Ñ/€EØ�;‰;˜&Ò Ð Ð Ü�—‘“¤"§(¡(¨Q°¨F°Q¸°F¸QÀ¸FÐ+CÓ"DÕEr   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   rc   rd   ©r   r   r!   ú"axes don't match matrix dimensionsr:   úrepeated axis in transpose©r   r   )
r   Ú	transposer   r   r   r   r%   r@   rA   rB   rn   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   r@   rA   rB   rJ   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Útolilr@   rA   rB   ÚtocooÚtocsrÚtodokr   r   )rF   Ú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“   ÚdenrF   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   rm   r   r   r   r%   Úsum_duplicates)re   r,   Ú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   rm   Úcount_nonzeror   r   r   r%   Úeliminate_zerosr‚   rƒ   )re   s    r   Útest_eliminate_zerosr¬   1  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ÚexprF   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º   G  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½   P  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%   rq   r   r°   r   )rš   Úotherr´   rF   s       r   Útest_1d_matmul_multivectorrÁ   Y  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   rq   r   r   Úlist)rš   rh   r´   rF   r²   r³   re   s          r   Útest_2d_matmul_multivectorrÄ   b  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%   r@   rA   rB   r   Údiagonal)rš   s    r   Útest_1d_diagonalrÇ   ƒ  sD   € Ü
�(‰(’>Ó
"€CÜ	�‰”zÐ)KÔ	Lñ "Ü�#‹×ÑÔ!÷"÷ "ñ "ús   ³AÁAr   )rt   ©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_arrrF   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Ð   rF   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$   r3   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   r3   )r   r   r   r   )r@   rA   rB   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é   r,   Ú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ë   rm   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                  «       «       y )Nrå   ræ   rç   r?   )
r   r&   rê   r   rë   r   rq   r{   r   r   )r   ré   rÐ   rí   Ú	trans_arrs        r   Útest_nd_transposerô   Ò  so   € ô �)‰)×
Ñ
 Ó
)€Cä
�u c¨s¼#Ô
>€CØ�k‰k‹m�o‰o€GØ—‘“€IØ�?‰?˜e¡D b D™kÒ)Ð)Ð)Ü�˜)×+Ñ+Ó-Õ.r   )r   Ú	axis_perm))r   rt   )r!   rw   ))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ç   ru   )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)
Nrx   r:   r`   rw   ru   ry   rc   rd   rz   )r@   rA   rB   r   r{   rC   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   rm   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´   rF   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  %  ó|   € ä�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ç   z6(Incompatible|inconsistent) shapes|cannot be broadcastr:   ©r   r&   rê   r   rë   r@   rA   rB   ©r  r  ré   Úarr_aÚarr_bs        r   Ú+test_nd_add_sparse_with_inconsistent_shapesr  .  sf   € ô �)‰)×
Ñ
 Ó
)€Cä˜'¨C°SÄÔD€EÜ˜'¨C°SÄÔD€EÜ	�‰”zØUô
Wñ à�Š÷÷ ñ úó   Á!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  ;  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  H  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   V  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ç   r9   r:   r  r  s        r   Ú+test_nd_sub_sparse_with_inconsistent_shapesr"  _  sc   € ô �)‰)×
Ñ
 Ó
)€Cä˜'¨C°SÄÔD€EÜ˜'¨C°SÄÔD€EÜ	�‰”zÐ)>Ô	?ñ Ø�Š÷÷ ñ úr  )	)©r   r   r   r    ©r    ©rO   rt   ))r   r   r   r   r#   )r#   ©)r   r   r   r   rt   )©r   r    r   r   r   ©r   r   )©r   r    r$  ©r)  )r    r   )r   r=   )r<   r<   )Ú	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Ã   )	r+  r,  ré   r  r  r  r  r´   rF   s	            r   Útest_nd_matmul_vectorr/  v  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   )r0  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<   r1  r*  )Ú
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   r.  )	r2  r3  ré   r  r  r  r  r´   rF   s	            r   Útest_nd_matmulr8  ’  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æ   r6  )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ë   r@   rA   rB   r   )ré   r  r  Úsp_zs       r   Ú.test_nd_matmul_sparse_with_inconsistent_arraysr;  ¨  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´   rF   s       r   Útest_dot_1d_1dr@  ¹  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   r=  r   r   r   )r>  r?  rF   r´   s       r   Útest_dot_sparse_scalarrB  Ã  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   r@   rA   rB   r=  )r  r  s     r   Ú!test_dot_with_inconsistent_shapesrD  Ë  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   r@   rA   rP   r=  Ú	tensordot)r  s    r   Útest_matmul_dot_not_implementedrG  Ò  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   r(  )©r   r   r   r   rÈ   )r$  ©r   r   r    r   )rJ  )r   r   ))r   r    rK  )rH  ©r   r   r   r   )©r   r#   r   )r   r    r   r   r   )©r   r    r   r   rL  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 r5  )	r   r&   rê   r   rë   r=  r   r   rÃ   )r  r  ré   r  r  r´   rF   s          r   Útest_dot_ndrP  å  s±   € ä
�)‰)×
Ñ
 Ó
)€Cä˜¨#¸CÄsÔK€EÜ˜¨#¸CÄsÔK€Eä
�&‰&�—‘“ %§-¡-£/Ó
2€Cà
�)‰)�E—M‘M“OÓ
$€CÜ��cÔØ
�)‰)”D˜Ÿ™›Ó)Ó
*€CÜ��cÔà
�)‰)�EÓ
€CÜ�—‘“ Õ$r   rH  rI  r   rJ  rÈ   r   r$  rK  rN  rL  rM  )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  rv   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æ   r6  ru   )r   r&   rê   r   rë   rF  r   r   rÃ   r°   r   )r  r  rv   ré   r  r  r´   rF   s           r   Útest_tensordotrR    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æ   r6  )r   r   r   r   z*sizes of the corresponding axes must matchr:   ru   )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ë   r@   rA   rB   rF  )ré   r  r  rv   s       r   Ú test_tensordot_with_invalid_argsrT    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    )r=   )r   r   ))r   r$  )r>   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 r5  )	r   r&   rê   r   rë   Ú_broadcast_toÚbroadcast_tor   r   )rU  rV  ré   rÐ   rF   r´   s         r   Útest_broadcast_torZ  +  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æ   r6  r   )r   r&   rê   r   rë   r   Úprodr   rW   Úranger   r   r   )
r   ré   r  r  Ú
num_slicesÚreshaped_arrayÚiÚmatricesr´   rF   s
             r   Útest_block_diagrb  9  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 r5  )	r   r&   rê   r   rë   r	   r   r   r   )r   ré   r  rF   s       r   Útest_extract_block_diagrd  L  sO   € ô �)‰)×
Ñ
 Ó
)€CÜ˜ s¸ÄCÔH€DÜ
œk¨$Ó/°Ó
7€Cä�—‘“ §¡£Õ/r   )PÚnumpyr   Únumpy.testingr   r@   Úscipy.linalgr   Úscipy.sparser   r   Ú_coor   r	   r   r1   r7   rD   rG   rK   rM   rR   r^   rk   ro   rr   r|   rˆ   r’   ÚmarkÚparametrizerë   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_shapesr/  Úmat_mat_shapesr8  r;  r@  rB  rD  rG  Ú
dot_shapesrP  Útensordot_shapes_and_axesrR  rT  rZ  rb  rd  rC   r   r   ú<module>rr     sh  ðÛ Ý &Û Ý #ß 0ß 3ò<òRò@)ò(+ò80ò5ò8ò
	ò#ò "òJòFòAò ò 3ð ‡�×Ñ˜¢Ó0ð%˜ò %ó 1ð%ð ‡�×Ñ˜¡¢L²,Ó ?Ó@ð%˜e C¨ H™oò %ó Að%ð ‡�×Ñ˜¢Ó-ð%˜cò %ó .ð%òò8
+òò2òòòòB"ð ‡�×Ñ˜ò #;ó <ñ0ó<ð0ð ‡�×Ñ˜ò #;ó <ñ1ó<ð1ð ‡�×Ñ˜ò #;ó <ñ%ó<ð%ð ‡�×Ñ˜ò #;ó <ñ%ó<ð%ò;ð ‡�×ÑÐ/ò 2Qó Rñ-ó	Rð-ð ‡�×Ñ˜ò #;ó <ñ6ó<ð6ð ‡�×Ñ˜ò #;ó <ñ/ó<ð/ð ‡�×ÑÐ/ò 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ó?ñ0r   