Ë
    øÿæi¨(  ã            	       ó^  — d dl Z d dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mZ ej                  j                  «       Zd„ Zdefd„Zdefd„Z G d„ d	«      Zdd
„Ze j*                   G d„ d«      «       Z edd«       edd«       edd«       edd«       edd«       edd«      gZd„ Zd„ Zd„ Zy)é    N)ÚEinopsErrorÚasnumpyÚpackÚunpack)Úcollect_test_backendsc                 óê   — t        | |«      \  }}t        | ||«      }t        |«      t        | «      k(  sJ ‚t        || «      D ]/  \  }}t	        j
                  t        |«      t        |«      «      rŒ/J ‚ y ©N)r   r   ÚlenÚzipÚnpÚallcloser   )ÚxsÚpatternÚxÚpsÚunpackedÚaÚbs          ún/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/einops/tests/test_packing.pyÚpack_unpackr      sg   € Ü��WÓ�E€A€rÜ�b˜"˜gÓ&€HÜˆx‹=œC ›GÒ#Ð#Ð#Ü�H˜bÖ!‰ˆˆ1Ü�{‰{œ7 1›:¤w¨q£zÕ2Ð2Ð2ñ "ó    r   c                 ó”   — t        | ||«      }t        ||¬«      \  }}t        j                  t	        |«      t	        | «      «      sJ ‚|S ©N)r   )r   r   r   r   r   )r   r   r   r   ÚpackedÚps2s         r   Úunpack_and_packr      sA   € Ü�a˜˜WÓ%€HÜ�x¨Ô1�K€FˆCä�;‰;”w˜v“¬°«
Ô3Ð3Ð3Ø€Or   c                 óÌ  — t        «       }t        «       }|5  t        | ||«      }t        ||¬«      \  }}d d d «       |5  t        | «      }t        |||«      }	t        |	|¬«      \  }
}d d d «       t	        |j
                  «      t	        |j
                  «      k(  sJ ‚|j
                  �y t        j                  t        «      t        | «      «      sJ ‚t        j                  t        
«      t        | «      «      sJ ‚t        «      t        	«      k(  sJ ‚t        ||	«      D ]&  \  }}t        j                  t        |«      |«      rŒ&J ‚ y # 1 sw Y   �ŒxY w# 1 sw Y   ŒóxY wr   )
ÚCaptureExceptionr   r   r   ÚtypeÚ	exceptionr   r   r
   r   )r   r   r   Úcapturer_backendÚcapturer_numpyr   r   r   Úx_npÚunpacked_npÚ	packed_npÚps3r   r   s                 r   Úunpack_and_pack_against_numpyr'      s0  € Ü'Ó)ÐÜ%Ó'€Nâ	Ü˜!˜R Ó)ˆÜ˜8¨WÔ5‰ˆ�÷ 
ò 
Ü�q‹zˆÜ˜T 2 wÓ/ˆÜ˜k°7Ô;‰ˆ	�3÷ 
ô
 �×(Ñ(Ó)¬TÐ2B×2LÑ2LÓ-MÒMÐMÐMØ×ÑÐ+àô �{‰{œ7 6›?¬G°A«JÔ7Ð7Ð7Ü�{‰{œ7 9Ó-¬w°q«zÔ:Ð:Ð:Ü�8‹}¤ KÓ 0Ò0Ð0Ð0Ü˜ +Ö.‰DˆAˆqÜ—;‘;œw q›z¨1Õ-Ð-Ð-ñ /÷% 
Ñ	ú÷ 
ˆús   —E¿)EÅEÅE#c                   ó   — e Zd Zd„ Zd„ Zy)r   c                 ó   — d | _         y r	   ©r    ©Úselfs    r   Ú	__enter__zCaptureException.__enter__8   s	   € Øˆ�r   c                 ó   — || _         y)NTr*   )r,   Úexc_typeÚexc_valÚexc_tbs       r   Ú__exit__zCaptureException.__exit__;   s   € Ø ˆŒØr   N)Ú__name__Ú
__module__Ú__qualname__r-   r2   © r   r   r   r   7   s   „ òór   r   c           	      óþ  — d„ }d„ } |d| |«      \  }}} || |d«      } |t        j                  |||gd¬«      t        |||gd«      d   «        |t        j                  |||gd	¬«      t        |||gd
«      d   «        |t        j                  |||gd¬«      t        |||gd«      d   «        |t        j                  |||gd	¬«      t        |||gd«      d   «        |t        j                  |||gd¬«      t        |||gd«      d   «       t         j                  d d …d d …d f   } |t        j                  ||   ||   ||   |gd¬«      t        ||||gd«      d   «       t        j                  t        «      5  t        ||||gd«       d d d «       t        |||gd«       t        j                  t        «      5  t        ||||gd«       d d d «       t        j                  t        «      5  t        ||||gd«       d d d «       t        j                  t        «      5  t        ||||gd«       d d d «       t        j                  t        «      5  t        ||||gd«       d d d «       t        j                  t        «      5  t        ||||gd«       d d d «       t        ||||gd«       y # 1 sw Y   �Œ$xY w# 1 sw Y   ŒïxY w# 1 sw Y   ŒÉxY w# 1 sw Y   Œ£xY w# 1 sw Y   Œ}xY w# 1 sw Y   ŒWxY w)Nc                  ó,   — t         j                  | «      S r	   )ÚrngÚrandom)Úshapes    r   Úrandz test_numpy_trivial.<locals>.randA   s   € Ü�z‰z˜%Ó Ð r   c                 ó¤   — | j                   |j                   k(  sJ ‚| j                  |j                  k(  sJ ‚t        j                  | |k(  «      sJ ‚y r	   )Údtyper;   r   Úall)r   r   s     r   Úcheckz!test_numpy_trivial.<locals>.checkD   sB   € Ø�w‰w˜!Ÿ'™'Ò!Ð!Ð!Ø�w‰w˜!Ÿ'™'Ò!Ð!Ð!Ü�v‰v�a˜1‘fŒ~Ð‰~r   é   é    é   )Úaxiszh w *r   é   zh * wz* h wzh *z* wzh w nonexisting_axis *z"some_name_for_H some_name_for_w1 *zh _w *zh_ w *z1h_ w *z1 w *zh h *zh H *)r   Ústackr   ÚconcatenateÚ	index_expÚpytestÚraisesr   )	ÚHÚWr<   r@   ÚrÚgr   Ú
embeddingsÚis	            r   Útest_numpy_trivialrQ   @   sµ  € ò!òñ
 �1�a˜‹m�G€A€qˆ!Ù�a˜˜B“€Já	Ü
�‰�!�Q˜� Ô#Üˆa��AˆY˜Ó  Ñ#ôñ 
Ü
�‰�!�Q˜� Ô#Üˆa��AˆY˜Ó  Ñ#ôñ 
Ü
�‰�!�Q˜� Ô#Üˆa��AˆY˜Ó  Ñ#ôñ
 
Ü
�‰˜˜1˜a�y qÔ)Üˆa��AˆY˜Ó˜qÑ!ôñ 
Ü
�‰˜˜1˜a�y qÔ)Üˆa��AˆY˜Ó˜qÑ!ôô
 	�‰’Qš˜4�ZÑ €AÙ	Ü
�‰˜˜!™˜a ™d A a¡D¨*Ð5¸AÔ>Üˆa��A�zÐ" GÓ,¨QÑ/ôô
 
�‰”{Õ	#Üˆa��A�zÐ"Ð$<Ô=÷ 
$ô 	ˆ!ˆQ�ˆÐ8Ô9ä	�‰”{Õ	#Üˆa��A�zÐ" HÔ-÷ 
$ä	�‰”{Õ	#Üˆa��A�zÐ" HÔ-÷ 
$ä	�‰”{Õ	#Üˆa��A�zÐ" IÔ.÷ 
$ä	�‰”{Õ	#Üˆa��A�zÐ" GÔ,÷ 
$ä	�‰”{Õ	#Üˆa��A�zÐ" GÔ,÷ 
$ô 	ˆ!ˆQ��:Ð	 Õ(÷! 
$Ñ	#ú÷
 
$Ð	#úç	#Ð	#úç	#Ð	#úç	#Ð	#úç	#Ð	#úsH   ÆJ6ÇKÇ6KÈ(KÉK'ÊK3Ê6K ËKËKËK$Ë'K0Ë3K<c                   óL   — e Zd ZU ej                  edf   ed<   eed<   d„ Zd„ Z	y)ÚUnpackTestCase.r;   r   c                 óT   — | j                   j                  «       j                  d«      S )NÚ*)r   ÚsplitÚindexr+   s    r   ÚdimzUnpackTestCase.dim€   s    € Ø�|‰|×!Ñ!Ó#×)Ñ)¨#Ó.Ð.r   c                 óH   — | j                   | j                  «          dk(  sJ ‚y )Né   )r;   rX   r+   s    r   Ú	selfcheckzUnpackTestCase.selfcheckƒ   s   € Ø�z‰z˜$Ÿ(™(›*Ñ%¨Ò*Ð*Ñ*r   N)
r3   r4   r5   ÚtypingÚTupleÚintÚ__annotations__ÚstrrX   r[   r6   r   r   rS   rS   {   s$   … à�<‰<˜˜S˜Ñ!Ó!ØƒLò/ó+r   rS   )rZ   rU   )rZ   é   z* seven)ra   rZ   zseven *)rZ   rA   é   z* three four)rb   rZ   rA   zfour * three)rA   rb   rZ   zthree four *c            	      ó`  ‡— t         D �]£  } | j                  }| j                  }t        j	                  |«      Št        ‰dgdgdgg|«       t        j                  t        «      5  t        ‰dgdgdgg|dz   «       d d d «       t        j                  t        «      5  t        ‰dgdgdgg|«       d d d «       t        j                  t        «      5  t        ‰dgdgdgg|«       d d d «       t        ‰dgdgdgg|«       t        ‰dgdgdgg|«       t        ‰dgdgdgg|«       t        ‰dgdgdgg|«      \  }}}|j                  | j                  «          dk(  sJ ‚t        j                  t        «      5  t        ‰dgdgdgg|«       d d d «       t        j                  t        «      5  t        ‰dgdgdgg|«       d d d «       t        ‰ddgddgddgg|«      }t        ˆfd	„|D «       «      sJ ‚t        ‰ddgddgddgg|«      }t        ˆfd
„|D «       «      sJ ‚t        ‰ddgddgddgg|«      }t        ˆfd„|D «       «      sJ ‚t        j                  t        «      5  t        ‰ddgdgdgg|«       d d d «       t        j                  t        «      5  t        ‰ddgdgddgg|«       d d d «       t        j                  t        «      5  t        ‰ddgdgddgg|«       d d d «       t        j                  t        «      5  t        ‰ddgddgdgg|«       d d d «       t        j                  t        «      5  t        ‰ddgddgdgg|«       d d d «       t        ‰dgdgdgg|«       t        ‰dgdgdgg|«       t        ‰dgdgdgg|«       t        ‰ddgddgg|«       �Œ¦ y # 1 sw Y   �Œ6xY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒæxY w# 1 sw Y   �ŒLxY w# 1 sw Y   �Œ$xY w# 1 sw Y   �ŒwxY w# 1 sw Y   �ŒMxY w# 1 sw Y   �Œ#xY w# 1 sw Y   ŒøxY w# 1 sw Y   ŒÍxY w)NrC   rE   z non_existent_axisrb   éÿÿÿÿrA   r   rZ   c              3   óz   •K  — | ]2  }t        |j                  «      t        ‰j                  «      d z   k(  –— Œ4 y­w©rE   N©r
   r;   ©Ú.0rM   r   s     €r   Ú	<genexpr>z.test_pack_unpack_with_numpy.<locals>.<genexpr>µ   ó,   øè ø€ Ð@¹R¸”3�q—w‘w“<¤3 q§w¡w£<°!Ñ#3Õ3¹Rùó   ƒ8;c              3   óz   •K  — | ]2  }t        |j                  «      t        ‰j                  «      d z   k(  –— Œ4 y­wrf   rg   rh   s     €r   rj   z.test_pack_unpack_with_numpy.<locals>.<genexpr>·   rk   rl   c              3   óz   •K  — | ]2  }t        |j                  «      t        ‰j                  «      d z   k(  –— Œ4 y­wrf   rg   rh   s     €r   rj   z.test_pack_unpack_with_numpy.<locals>.<genexpr>¹   rk   rl   )Úcasesr;   r   r9   r:   r   rI   rJ   r   rX   r   r?   )Úcaser;   r   Ú_ÚlastÚrsr   s         @r   Útest_pack_unpack_with_numpyrt   “   sí  ø€ ÷ �ˆØ—
‘
ˆØ—,‘,ˆä�J‰J�uÓˆä˜˜Q˜C !  q c˜?¨GÔ4ä�]‰]œ;Õ'Ü˜A   a S¨1¨#˜°Ð:NÑ0NÔO÷ (ä�]‰]œ;Õ'Ü˜A   a S¨1¨#˜°Ô8÷ (ä�]‰]œ;Õ'Ü˜A   a S¨1¨#˜°Ô8÷ (ô 	˜˜Q˜C !  r dÐ+¨WÔ5Ü˜˜Q˜C " ¨ sÐ+¨WÔ5Ü˜˜R˜D 1 #¨ sÐ+¨WÔ5Ü$ Q¨!¨¨q¨c°B°4Ð(8¸'ÓB‰
ˆˆ1ˆdØ�z‰z˜$Ÿ(™(›*Ñ%¨Ò*Ð*Ð*ä�]‰]œ;Õ'Ü�1˜�s˜Q˜C " Ð&¨Ô0÷ (ô
 �]‰]œ;Õ'Ü�1˜�t˜a˜S 1 #Ð&¨Ô0÷ (ô ˜Q ! Q ¨!¨Q¨°"°a°Ð 9¸7ÓCˆÜÓ@¹RÓ@Ô@Ð@Ð@Ü˜Q ! Q ¨!¨R¨°1°a°&Ð 9¸7ÓCˆÜÓ@¹RÓ@Ô@Ð@Ð@Ü˜Q ! R ¨1¨a¨&°1°a°&Ð 9¸7ÓCˆÜÓ@¹RÓ@Ô@Ð@Ð@ô �]‰]œ;Õ'Ü�1˜˜A�w   a SÐ)¨7Ô3÷ (ä�]‰]œ;Õ'Ü�1˜˜1�v ˜s Q¨ GÐ,¨gÔ6÷ (ô �]‰]œ;Õ'Ü�1˜˜1�v ˜s Q¨ GÐ,¨gÔ6÷ (ä�]‰]œ;Õ'Ü�1˜˜1�v  2˜w¨¨Ð,¨gÔ6÷ (ä�]‰]œ;Õ'Ü�1˜˜2�w  A ¨¨Ð,¨gÔ6÷ (ô 	˜˜Q˜C !  r dÐ+¨WÔ5Ü˜˜Q˜C " ¨ sÐ+¨WÔ5Ü˜˜R˜D 1 #¨ sÐ+¨WÔ5ô 	˜˜Q ˜G a¨ VÐ,¨gÖ6ñs ÷ (Ñ'úç'Ñ'úç'Ñ'ú÷ (Ñ'ú÷
 (Ñ'ú÷ (Ñ'úç'Ñ'ú÷ (Ñ'úç'Ð'úç'Ð'úsx   Á%N0ÂN=ÃO
Å9OÆ.O$É'O1ÊO>ËPÌPÍP$Î0N:	Î=O	Ï
O	ÏO!	Ï$O.	Ï1O;	Ï>P	ÐP	ÐP!	Ð$P-	c            
      óN  — t        dd¬«      D �]!  } t        d| j                  › �«       d}t        D �]ú  }t        }|j
                  }|j                  }t        j                  |«      }| j                  |«      } ||dgdgdgg|«       t        j                  t        «      5  t        |dgdgdgg|«       d d d «       t        j                  t        «      5  t        |dgdgdgg|«       d d d «        ||dgdgdgg|«        ||dgdgdgg|«        ||dgdgdgg|«       t        j                  t        «      5  t        |dgdgdgg|«       d d d «       t        j                  t        «      5  t        |dgdgd	gg|«       d d d «        ||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|«       t        j                  t        «      5  t        |ddgdgd	gg|«       d d d «       t        j                  t        «      5  t        |ddgdgd	dgg|«       d d d «       t        j                  t        «      5  t        |ddgdgd
dgg|«       d d d «       t        j                  t        «      5  t        |ddgd
dgdgg|«       d d d «       t        j                  t        «      5  t        |d
dgddgdgg|«       d d d «       |s�Œ« ||dgd
gdgg|«        ||dgd	gdgg|«        ||dgdgd	gg|«        ||dgd	gdgg|«        ||ddgdd	gg|«       �Œý �Œ$ y # 1 sw Y   �ŒxY w# 1 sw Y   �ŒWxY w# 1 sw Y   �ŒÿxY w# 1 sw Y   �Œ×xY w# 1 sw Y   �ŒuxY w# 1 sw Y   �ŒKxY w# 1 sw Y   �Œ!xY w# 1 sw Y   ŒöxY w# 1 sw Y   ŒËxY w)NF)ÚsymbolicÚlayersztest packing against numpy for TrC   rE   rb   rd   rZ   rA   r   )r   ÚprintÚframework_namero   r'   r;   r   r9   r:   Ú
from_numpyrI   rJ   r   r   )ÚbackendÚcheck_zero_lenrp   r   r;   r   r   s          r   Útest_pack_unpack_against_numpyr}   Ò   sœ  € Ü(°%À×FÐFˆÜÐ/°×0FÑ0FÐ/GÐHÔIØˆç�EˆDÜ;ˆOØ—J‘JˆEØ—l‘lˆGä—
‘
˜5Ó!ˆAØ×"Ñ" 1Ó%ˆAá˜A   a S¨1¨#˜°Ô8ä—‘œ{Õ+Ü�q˜A˜3   a S˜/¨7Ô3÷ ,ô —‘œ{Õ+Ü�q˜A˜3   a S˜/¨7Ô3÷ ,ñ ˜A   a S¨2¨$Ð/°Ô9Ù˜A   b T¨A¨3Ð/°Ô9Ù˜A   q c¨A¨3Ð/°Ô9ô —‘œ{Õ+Ü�q˜A˜3   b TÐ*¨GÔ4÷ ,ô
 —‘œ{Õ+Ü�q˜B˜4 !  q cÐ*¨GÔ4÷ ,ñ ˜A  A ¨¨A¨°°Q°Ð8¸'ÔBÙ˜A  A ¨¨B¨°!°Q°Ð8¸'ÔBÙ˜A  B ¨!¨Q¨°!°Q°Ð8¸'ÔBô —‘œ{Õ+Ü�q˜B ˜7 Q C¨!¨Ð-¨wÔ7÷ ,ä—‘œ{Õ+Ü�q˜A˜q˜6 A 3¨¨B¨Ð0°'Ô:÷ ,ô —‘œ{Õ+Ü�q˜A˜q˜6 A 3¨¨B¨Ð0°'Ô:÷ ,ä—‘œ{Õ+Ü�q˜A˜q˜6 A r 7¨Q¨CÐ0°'Ô:÷ ,ä—‘œ{Õ+Ü�q˜A˜r˜7 Q¨ F¨Q¨CÐ0°'Ô:÷ ,ó á  Q C¨!¨¨r¨dÐ#3°WÔ=Ù  Q C¨!¨¨r¨dÐ#3°WÔ=Ù  Q C¨"¨°¨sÐ#3°WÔ=Ù  R D¨1¨#°¨sÐ#3°WÔ=ñ    Q¨ G¨a°¨VÐ#4°gÖ>òq ñ	 G÷ ,Ñ+ú÷ ,Ñ+ú÷ ,Ñ+ú÷
 ,Ñ+ú÷ ,Ñ+úç+Ñ+ú÷ ,Ñ+úç+Ð+úç+Ð+úsl   Â#L4ÃMÄ=MÅ2MÇ M(ÈM5ÉNÊNÊ;NÌ4L>ÍMÍMÍM%Í(M2Í5M?ÎNÎNÎN$c            
      ó`  — dd l } ddlm} | j                  dk  rt	        j
                  «        t        D �]k  }|j                  }|j                  }t        j                  |«      }| j                  |«      }dgdgdggdgdgdggdgdgddggddgg d¢dggfD ]²  }t        |||«      }|j                  |||«      }	t        ||	«      D ]/  \  }
}t        j                  |
|j!                  |dz   «      «      rŒ/J ‚ t#        ||«      \  }}|j#                  |	|«      \  }}||k(  sJ ‚t        j                  ||j!                  |«      «      rŒ²J ‚ ddggdgd	ggdgd	gdggdgddggdgd	gddggfD ]1  }t	        j$                  t&        «      5  t        |||«       d d d «       Œ3 �Œn y # 1 sw Y   ŒAxY w)
Nr   )Ú	array_apiz2.0.0rC   rE   rd   rA   )rE   rE   rE   rZ   )ÚnumpyÚeinopsr   Ú__version__rI   Úskipro   r;   r   r9   r:   Úfrom_dlpackr   r   r   r   r   r   rJ   r   )ÚxpÚAArp   r;   r   r#   Úx_xpr   Ú
x_np_splitÚ
x_xp_splitr   r   Úx_agg_npÚps1Úx_agg_xpr   s                   r   Útest_pack_unpack_array_apir�     sÉ  € Ûå&à	‡~�~˜ÒÜ�‰Œç�ˆØ—
‘
ˆØ—,‘,ˆÜ�z‰z˜%Ó ˆØ�~‰~˜dÓ#ˆð ˆS�1�#˜�sˆOØˆS�1�#˜�tÐØˆS�1�#˜˜A�wÐØ�ˆV’Y  Ð%ó	
ˆBô    b¨'Ó2ˆJØŸ™ 4¨¨WÓ5ˆJÜ˜J¨
Ö3‘��1Ü—{‘{ 1 b§j¡j°°Q±Ó&7Õ8Ð8Ð8ð 4ô ! ¨WÓ5‰MˆH�cØŸG™G J°Ó8‰MˆH�cØ˜#’:Ð�:Ü—;‘;˜x¨¯©°HÓ)=Õ>Ð>Ð>ð
ð" �ˆVˆHØˆS�1�#ˆJØˆS�1�#˜�tÐØˆS�1�a�&ˆMØˆS�1�#˜˜A�wÐó
ˆBô —‘œ{Õ+Ü�t˜R Ô)÷ ,Ð+ò
ñ- ÷: ,Ð+ús   ÆF$Æ$F-)é   é   )Údataclassesr\   r€   r   rI   r�   r   r   r   r   Úeinops.testsr   r:   Údefault_rngr9   r   r`   r   r'   r   rQ   Ú	dataclassrS   ro   rt   r}   r�   r6   r   r   Ú<module>r”      sÎ   ðÛ Û ã Û ç 5Ó 5Ý .à‡i�i×ÑÓ€ò3ð Có ð.°#ó .÷4ñ ó8)ðv ×Ñ÷+ð +ó ð+ñ �4˜ÓÙ�6˜9Ó%Ù�6˜9Ó%Ù�9˜nÓ-Ù�9˜nÓ-Ù�9˜nÓ-ð		€ò<7ò~=?ó@&*r   