
    3j%                     \    S SK r S SKJr  S SKJrJrJr  Sr " S S5      rS r	S r
S	 rS
 rg)    N)EinopsError)AnonymousAxisParsedExpression	_ellipsiszAlex Rogozhnikovc                   (    \ rS rSrS\4S jrS rSrg)AnonymousAxisPlaceholder	   valuec                 R    Xl         [        U R                   [        5      (       d   eg N)r
   
isinstanceint)selfr
   s     S/home/wildlama/miniconda3/lib/python3.13/site-packages/einops/tests/test_parsing.py__init__!AnonymousAxisPlaceholder.__init__
   s    
$**c****    c                 b    [        U[        5      =(       a    U R                  UR                  :H  $ r   )r   r   r
   )r   others     r   __eq__AnonymousAxisPlaceholder.__eq__   s!    %/MDJJ%++4MMr   )r
   N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__ r   r   r   r   	   s    +c +Nr   r   c                      [        S5      [        S5      pX:w  d   e[        S5      [        S5      p2X:X  a  X:X  d   eX:w  a  X:w  d   eU SU/USU/:X  d   eg )N2      )r   r   )abcds       r   test_anonymous_axesr&      sf    }S1q6M6#A&(@(Cq6af6afq!9Aq	!!!r   c                      S H   n [         R                  " U 5      (       a  M    e   SSSSSSS[        4 H   n [         R                  " U 5      (       d  M    e   g )	N)r"   r#   hdxh1zzi9123somelongnameAlex	camelCaseu_n_d_e_r_scoreunreasonablyLongAxisName 2b12_startWithUnderscoreendWithUnderscore__z...)r   check_axis_namer   )names    r   test_elementary_axis_namer:      s`      //5555  T4!79MsTY[de#33D9999 fr   c                     [        S5        [        R                  " [        5         [        S5        S S S 5        [        R                  " [        5         [        S5        S S S 5        [        R                  " [        5         [        S5        S S S 5        [        S5        [        R                  " [        5         [        S5        S S S 5        [        R                  " [        5         [        S5        S S S 5        [        R                  " [        5         [        S5        S S S 5        [        R                  " [        5         [        S	5        S S S 5        [        S
5        [        R                  " [        5         [        S5        S S S 5        [        R                  " [        5         [        S5        S S S 5        [        R                  " [        5         [        S5        S S S 5        [        R                  " [        5         [        S5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNw= f! , (       d  f       GN[= f! , (       d  f       GN?= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nz... a b c dz... a b c d ...z... a b c (d ...)z(... a) b c (d ...)z(a) b c (d ...)z(a)) b c (d ...)z(a b c (d ...)z(a) (()) b c (d ...)z(a) ((b c) (d ...))u&   camelCase under_scored cApiTaLs ß ...1a_prez...prezpre...)r   pytestraisesr   r   r   r   test_invalid_expressionsr@   0   s   ]#	{	#*+ 
$	{	#,- 
$	{	#./ 
$ &'	{	#+, 
$	{	#)* 
$	{	#/0 
$	{	#./ 
$ =>	{	# 
$	{	#  
$	{	#" 
$	{	#" 
$	#5 
$	#	#	#	#	#
 
$	#	#	#	#	#	#	#
 
$	#	#	#	#	#	#	#s   HH/I;I)I%I7J	>J,J-J>K
H,/
H>
I
I"%
I47
J	
J
J*-
J;>
K
Kc            	         [        S5      n U R                  1 Sk:X  d   eU R                  S/S/S/S//:X  d   eU R                  (       a   eU R                  (       a   e[        S5      n U R                  [        5       :X  d   eU R                  / / / / /:X  d   eU R                  (       a   eU R                  (       a   e[        S5      n U R                  [        5       :X  d   eU R                  / / / / /:X  d   eU R                  (       a   eU R                  (       a   e[        n[        S	5      n [        U R                  5      S
:X  a,  U R                   Vs1 s H  o"R                  iM     sn1 Sk:X  d   eU R                  U" S5      /U" S
5      U" S5      //:X  d   eU R                  (       d   eU R                  (       a   e[        S5      n [        U R                  5      S:X  a,  U R                   Vs1 s H  o"R                  iM     snSS1:X  d   eU R                  U" S5      // U" S5      // /:X  d   e[        S5      n [        U R                  5      S:X  d   eU R                  R                  S[        SS15      R                  5       S:X  d   eU R                  S/[        S/U" S5      /SU" S5      //:X  d   eU R                  (       d   eU R                  (       d   eU R                  (       a   e[        S5      n [        U R                  5      S:X  d   eU R                  R                  S[        SS15      R                  5       S:X  d   eU R                  S[        SU" S5      /S/U" S5      //:X  d   eU R                  (       d   eU R                  (       d   eU R                  (       d   eg s  snf s  snf )Nza1  b1   c1    d1>   a1b1c1d1rB   rC   rD   rE   z() () () ()z1 1 1 ()z5 (3 4)r!   >   r!         rG   rF   z5 1 (1 4) 1r    zname1 ... a1 12 (name2 14)   name1name2      z(name1 ... a1 12) name2 14)r   identifierscompositionhas_non_unitary_anonymous_axeshas_ellipsissetr   lenr
   
differencer   __len__has_ellipsis_parenthesized)parsedaapis      r   test_parse_expressionrY   Q   s   12F!99994&4&4&4&!AAAA4444""""m,F&&&"b"b!11114444""""j)F&&&"b"b!11114444""""
"Ci(Fv!!"a'f>P>P,Q>PWW>P,QU^,^^^3q6(SVSV,<!====0000""""m,Fv!!"a'f>P>P,Q>PWW>P,QVWYZU[,[[[3q6(BQ"!====:;Fv!!"a'''(('9dG)LMUUW[\\\\7)YR	GUXY[U\K]!^^^^00000000:;Fv!!"a'''(('9dG)LMUUW[\\\\7ItSW"EySVWYSZR[!\\\\0000,,,,/ -R -Rs   O;O)r>   einopsr   einops.parsingr   r   r   
__author__r   r&   r:   r@   rY   r   r   r   <module>r]      s7      E E
N N":*#B--r   