o
    2h%                     @   s   d Z ddlmZmZ ddlZddlmZmZmZ ddl	m
Z
 d$ddZd$d	d
Zd$ddZd$ddZd$ddZejddgdgddgdgddgddgggggdgddgggggdgddgddgddgddgddgddggd ed!ee ddfd"d#ZdS )%z2
Directly tests various parser utility functions.
    )AnyTupleN)	get_shape
get_symbolparse_einsum_input)build_arrays_from_tuplesreturnc                   C   sT   t ddksJ t ddksJ t ddksJ t ddks J t d	d
ks(J d S )N   ci@ u   𱕀i  u   i   u   i  u   )r    r   r   W/var/www/html/chatgem/venv/lib/python3.10/site-packages/opt_einsum/tests/test_parser.pytest_get_symbol   s
   r   c                  C   sL   d} t g d}t| g|\}}}|| ksJ |dksJ ||ks$J d S )Nab,bc,cdr	      r      )r      ad)r   r   )eqopsinput_subscriptsoutput_subscriptoperandsr   r   r   test_parse_einsum_input   s   r   c                  C   sR   d} t g d}tt t| g|dd}W d    d S 1 s"w   Y  d S )Nr   r   Tshapes)r   pytestraises
ValueErrorr   )r   r   _r   r   r   $test_parse_einsum_input_shapes_error   s
   "r"   c                  C   sL   d} g d}t | g|dd\}}}|| ksJ |dksJ ||ks$J d S )Nr   r   Tr   r   r   r   r   r   r   r   r   r   r   test_parse_einsum_input_shapes'      r%   c                  C   sL   d} ddg}t | g|dd\}}}|dksJ |dksJ ||ks$J d S )Nz...a,abr   r   Tr   zda,abdbr#   r$   r   r   r   test_parse_with_ellisis0   r&   r(   zarray, shaper   )   )r	   )r   r   r	   )r)   r)   r)   r)   r	   abcdefbAr      ATg      @y      @        arrayshapec                 C   s   t | |ksJ d S )N)r   )r.   r/   r   r   r   test_get_shapes9   s   r0   )r   N)__doc__typingr   r   r   opt_einsum.parserr   r   r   opt_einsum.testingr   r   r   r"   r%   r(   markparametrizeintr0   r   r   r   r   <module>   s4    

	
	

		
 