
    'i%                     \    d dl Z d dlmZ d dlmZmZmZ dZ G d d      Zd Z	d Z
d	 Zd
 Zy)    N)EinopsError)AnonymousAxisParsedExpression	_ellipsiszAlex Rogozhnikovc                       e Zd ZdefdZd Zy)AnonymousAxisPlaceholdervaluec                 J    || _         t        | j                   t              sJ y N)r	   
isinstanceint)selfr	   s     S/var/www/stems/demucs_env/lib/python3.12/site-packages/einops/tests/test_parsing.py__init__z!AnonymousAxisPlaceholder.__init__
   s    
$**c***    c                 X    t        |t              xr | j                  |j                  k(  S r   )r   r   r	   )r   others     r   __eq__zAnonymousAxisPlaceholder.__eq__   s!    %/MDJJ%++4MMr   N)__name__
__module____qualname__r   r   r    r   r   r   r   	   s    +c +Nr   r   c                      t        d      t        d      }} | |k7  sJ t        d      t        d      }}| |k(  r||k(  sJ | |k7  r||k7  sJ | d|g|d|gk(  sJ y )N2      )r   r   )abcds       r   test_anonymous_axesr!      st    }S1qA6M6#A&(@(CqA6a1f6a1fq!9Aq	!!!r   c                      dD ]  } t        j                  |       rJ  dddddddt        fD ]  } t        j                  |       sJ  y )	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_namer5      sc     6  //5556  T4!79MsTY[de :#33D999:r   c                  :   t        d       t        j                  t              5  t        d       d d d        t        j                  t              5  t        d       d d d        t        j                  t              5  t        d       d d d        t        d       t        j                  t              5  t        d       d d d        t        j                  t              5  t        d       d d d        t        j                  t              5  t        d       d d d        t        j                  t              5  t        d	       d d d        t        d
       t        j                  t              5  t        d       d d d        t        j                  t              5  t        d       d d d        t        j                  t              5  t        d       d d d        t        j                  t              5  t        d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   XxY w# 1 sw Y   8x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)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./0 &'	{	# -+,-	{	# +)*+	{	# 1/01	{	# 0./0 =>	{	# 	{	# ! !	{	# #"#	{	# #"# #5, ,. .0 0
- -+ +1 10 0
 ! !# ## #s   HH?H,7H9$II>I 6I-#I9J=JHH),H69III I*-I69JJJc            	         t        d      } | j                  h dk(  sJ | j                  dgdgdgdggk(  sJ | j                  rJ | j                  rJ t        d      } | j                  t               k(  sJ | j                  g g g g gk(  sJ | j                  rJ | j                  rJ t        d      } | j                  t               k(  sJ | j                  g g g g gk(  sJ | j                  rJ | j                  rJ t        }t        d	      } t        | j                        d
k(  r)| j                  D ch c]  }|j                   c}h dk(  sJ | j                   |d      g |d
       |d      ggk(  sJ | j                  sJ | j                  rJ t        d      } t        | j                        dk(  r)| j                  D ch c]  }|j                   c}ddhk(  sJ | j                   |d      gg  |d      gg gk(  sJ t        d      } t        | j                        dk(  sJ | j                  j                  dt        ddh      j                         dk(  sJ | j                  dgt        dg |d      gd |d      ggk(  sJ | j                  sJ | j                  sJ | j                  rJ t        d      } t        | j                        dk(  sJ | j                  j                  dt        ddh      j                         dk(  sJ | j                  dt        d |d      gdg |d      ggk(  sJ | j                  sJ | j                  sJ | j                  sJ y c c}w c c}w )Nza1  b1   c1    d1>   a1b1c1d1r=   r>   r?   r@   z() () () ()z1 1 1 ()z5 (3 4)r   >   r         rB   rA   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_expressionrT   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QWW,QU^,^^^3q6(SVSV,<!====0000""""m,Fv!!"a'f>P>P,QQWW,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   5M'M,)r9   einopsr   einops.parsingr   r   r   
__author__r   r!   r5   r;   rT   r   r   r   <module>rX      s7      E E
N N":*#B--r   