
    !Sh%                     d    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dS )    N)EinopsError)ParsedExpressionAnonymousAxis	_ellipsiszAlex Rogozhnikovc                        e Zd ZdefdZd ZdS )AnonymousAxisPlaceholdervaluec                 L    || _         t          | j         t                    sJ d S N)r	   
isinstanceint)selfr	   s     _/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/einops/tests/test_parsing.py__init__z!AnonymousAxisPlaceholder.__init__
   s'    
$*c*******    c                 L    t          |t                    o| j        |j        k    S r   )r   r   r	   )r   others     r   __eq__zAnonymousAxisPlaceholder.__eq__   s     %//MDJ%+4MMr   N)__name__
__module____qualname__r   r   r    r   r   r   r   	   sC        +c + + + +N N N N Nr   r   c                      t          d          t          d          }} | |k    sJ t          d          t          d          }}| |k    r||k    sJ | |k    r||k    sJ | d|g|d|gk    sJ d S )N2      )r   r   )abcds       r   test_anonymous_axesr!      s    }S11qA6666#A&&(@(C(CqA66a1fff66a1fffq!9Aq	!!!!!!r   c                      dD ]} t          j        |           sJ dddddddt          fD ]} t          j        |           rJ d S )	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      sw     6 6  /555555T4!79MsTY[de : :#3D999999: :r   c                     t          d           t          j        t                    5  t          d           d d d            n# 1 swxY w Y   t          j        t                    5  t          d           d d d            n# 1 swxY w Y   t          j        t                    5  t          d           d d d            n# 1 swxY w Y   t          d           t          j        t                    5  t          d           d d d            n# 1 swxY w Y   t          j        t                    5  t          d           d d d            n# 1 swxY w Y   t          j        t                    5  t          d           d d d            n# 1 swxY w Y   t          j        t                    5  t          d	           d d d            n# 1 swxY w Y   t          d
           t          j        t                    5  t          d           d d d            n# 1 swxY w Y   t          j        t                    5  t          d           d d d            n# 1 swxY w Y   t          j        t                    5  t          d           d d d            n# 1 swxY w Y   t          j        t                    5  t          d           d d d            d S # 1 swxY w Y   d S )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   s9   ]###	{	#	# , ,*+++, , , , , , , , , , , , , , ,	{	#	# . .,---. . . . . . . . . . . . . . .	{	#	# 0 0.///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 &'''	{	#	# - -+,,,- - - - - - - - - - - - - - -	{	#	# + +)***+ + + + + + + + + + + + + + +	{	#	# 1 1/0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1	{	#	# 0 0.///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 =>>>	{	#	#                	{	#	# ! !   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	{	#	# # #"""# # # # # # # # # # # # # # #	{	#	# # #"""# # # # # # # # # # # # # # # # # #s   AA	A	)BB	B	)CC	C	8DDD8EEE8FFF8GGGH##H'*H'I##I'*I'J##J'*J'K$$K(+K(c            	      D   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d | j        D             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d | j        D             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                            dt          ddh          
                                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                            dt          ddh          
                                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 d S )Nza1  b1   c1    d1>   a1b1c1d1r=   r>   r?   r@   z() () () ()z1 1 1 ()z5 (3 4)r   c                     h | ]	}|j         
S r   r	   .0is     r   	<setcomp>z(test_parse_expression.<locals>.<setcomp>g       ,Q,Q,QQW,Q,Q,Qr   >   r         rI   rH   z5 1 (1 4) 1r   c                     h | ]	}|j         
S r   rB   rC   s     r   rF   z(test_parse_expression.<locals>.<setcomp>m   rG   r   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   len
differencer   __len__has_ellipsis_parenthesized)parsedaaps     r   test_parse_expressionr[   Q   s   122F!9!9!999994&4&4&4&!AAAAA4444""""m,,F&&&&"b"b!111114444""""j))F&&&&"b"b!111114444""""
"Ci((Fv!""a'',Q,Qf>P,Q,Q,QU^U^U^,^,^,^^33q66(SSVVSSVV,<!=====0000""""m,,Fv!""a'',Q,Qf>P,Q,Q,QVWYZU[,[,[,[[33q66(BQ"!=====:;;Fv!""a''''(('9dG)LMMUUWW[\\\\\7)YR	GUXUXY[U\U\K]!^^^^^00000000:;;Fv!""a''''(('9dG)LMMUUWW[\\\\\7ItSSWW"EySVSVWYSZSZR[!\\\\\0000,,,,,,r   )r9   einopsr   einops.parsingr   r   r   
__author__r   r!   r5   r;   r[   r   r   r   <module>r_      s           E E E E E E E E E E
N N N N N N N N" " ": : :*# # #B-- -- -- -- --r   