
    Nj%                     \    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     j/Users/ahmed/devFolder/Ultron/claude-voice/.venv/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      sZ      //555  T4!79MsTY[de#33D999 f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 
$	{	#./ 
$ =>	{	# 
$	{	#  
$	{	#" 
$	{	#" 
$	#5 
$	#	#	#	#	#
 
$	#	#	#	#	#	#	#
 
$	#	#	#	#	#	#	#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>PQWW>P,QU^,^^^3q6(SVSV,<!====0000""""m,Fv!!"a'f>P>P,Q>PQWW>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   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   