
    ,Vh%                         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ZddZdd	Zdd
ZddZej                   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       Zy)z2
Directly tests various parser utility functions.
    )AnyTupleN)	get_shape
get_symbolparse_einsum_input)build_arrays_from_tuplesreturnc                      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 y )N   ci@ u   𱕀i  u   i   u   i  u   )r        L/home/dcms/DCMS/lib/python3.12/site-packages/opt_einsum/tests/test_parser.pytest_get_symbolr      s`    a=Cf---e(((e(((e(((r   c                  p    d} t        g d      }t        | g|      \  }}}|| k(  sJ |dk(  sJ ||k(  sJ y )Nab,bc,cdr      r      )r      ad)r   r   )eqopsinput_subscriptsoutput_subscriptoperandss        r   test_parse_einsum_inputr      sS    	B
"#;
<C3ErjCj3Q0&r!!!t###s??r   c                      d} t        g d      }t        j                  t              5  t	        | g|d      }d d d        y # 1 sw Y   y xY w)Nr   r   Tshapes)r   pytestraises
ValueErrorr   )r   r   _s      r   $test_parse_einsum_input_shapes_errorr'      sE    	B
"#;
<C	z	" 8zSz$78 8 8s   AAc                  b    d} g d}t        | g|d      \  }}}|| k(  sJ |dk(  sJ ||k(  sJ y )Nr   r   Tr!   r   r   r   r"   r   r   r   s        r   test_parse_einsum_input_shapesr+   '   sR    	B%F3ErmFm\`3a0&r!!!t###Xr   c                  b    d} ddg}t        | g|d      \  }}}|dk(  sJ |dk(  sJ ||k(  sJ y )Nz...a,abr   r   Tr!   zda,abdbr)   r*   s        r   test_parse_with_ellisisr.   0   sW    	BfF3ErmFm\`3a0&w&&&t###Xr   zarray, shaper   )   )r   )r   r   r   )r/   r/   r/   r/   r   abcdefbAr      ATg      @y      @        arrayshapec                 $    t        |       |k(  sJ y )N)r   )r4   r5   s     r   test_get_shapesr7   9   s    " Uu$$$r   )r	   N)__doc__typingr   r   r#   opt_einsum.parserr   r   r   opt_einsum.testingr   r   r   r'   r+   r.   markparametrizeintr7   r   r   r   <module>r?      s      G G 7)8 
d
Q	VH:,)_
	 /2	b		r
	r
	
B	b		2 %3 %uSz %d %! %r   