o
    K+ i%                     @   s^   d dl Z d dlmZ d dlmZmZmZ dZG dd dZdd Z	d	d
 Z
dd Zdd ZdS )    N)EinopsError)ParsedExpressionAnonymousAxis	_ellipsiszAlex Rogozhnikovc                   @   s"   e Zd ZdefddZdd ZdS )AnonymousAxisPlaceholdervaluec                 C   s   || _ t| j tsJ d S N)r   
isinstanceint)selfr    r   e/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/einops/tests/test_parsing.py__init__
   s   z!AnonymousAxisPlaceholder.__init__c                 C   s   t |to
| j|jkS r   )r	   r   r   )r   otherr   r   r   __eq__   s   zAnonymousAxisPlaceholder.__eq__N)__name__
__module____qualname__r
   r   r   r   r   r   r   r   	   s    r   c                  C   st   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s8J d S )N2      )r   r   )abcdr   r   r   test_anonymous_axes   s   r   c                  C   sD   dD ]	} t | sJ qdddddddtfD ]	} t | rJ qd S )	N)r   r   hZdxZh1zzZi9123ZsomelongnameZAlexZ	camelCaseZu_n_d_e_r_scoreZunreasonablyLongAxisName Z2bZ12Z_startWithUnderscoreZendWithUnderscore__z...)r   Zcheck_axis_namer   )namer   r   r   test_elementary_axis_name   s
   r!   c                   C   sH  t d tt t d W d    n1 sw   Y  tt t d W d    n1 s1w   Y  tt t d W d    n1 sJw   Y  t d tt t d W d    n1 sgw   Y  tt t d W d    n1 sw   Y  tt t d W d    n1 sw   Y  tt t d	 W d    n1 sw   Y  t d
 tt t d W d    n1 sw   Y  tt t d W d    n1 sw   Y  tt t d W d    n	1 sw   Y  tt t d W d    d S 1 s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 ß ...Z1a_prez...prezpre...)r   pytestZraisesr   r   r   r   r   test_invalid_expressions0   sH   










$r$   c                  C   s  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s2J | jg g g g gks=J | jrBJ | jrGJ t d} | jt ksSJ | jg g g g gks^J | jrcJ | jrhJ t}t d	} t| jd
krdd | jD h dksJ | j|dg|d
|dggksJ | jsJ | jrJ t d} t| jdkrdd | jD ddhksJ | j|dgg |dgg gksJ t d} t| jdksJ | jdt	ddh
 dksJ | jdgt	dg|dgd|dggksJ | 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sAJ | jsGJ | jsMJ | jsSJ d S )Nza1  b1   c1    d1>   d1c1a1b1r'   r(   r&   r%   z() () () ()z1 1 1 ()z5 (3 4)r   c                 S      h | ]}|j qS r   r   .0ir   r   r   	<setcomp>g       z(test_parse_expression.<locals>.<setcomp>>   r         r1   r0   z5 1 (1 4) 1r   c                 S   r)   r   r*   r+   r   r   r   r.   m   r/   zname1 ... a1 12 (name2 14)   Zname1Zname2      z(name1 ... a1 12) name2 14)r   ZidentifiersZcompositionZhas_non_unitary_anonymous_axesZhas_ellipsissetr   len
differencer   __len__Zhas_ellipsis_parenthesized)parsedZaapr   r   r   test_parse_expressionQ   sL   





*$

*" *"*r:   )r#   Zeinopsr   Zeinops.parsingr   r   r   
__author__r   r   r!   r$   r:   r   r   r   r   <module>   s    		!