o
    *ήc
                     @   s   d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZmZ d dlmZ dd Zd	d
 ZdS )    )Symbol)MatrixSymbol)permutedimstensorcontractiontensordiagonaltensorproduct)ImmutableDenseNDimArray)	ZeroArrayOneArrayArraySymbolArrayTensorProductPermuteDimsArrayDiagonalArrayContractionArrayAdd)raisesc                     s  t ddd tdddksJ tddd tdd tdD dddks+J tdtdddf t	t
 fd	d
 t	t
fdd
 t	t
fdd
 tdd} tdd}t| |}t|tshJ | t|  | kswJ t| d}t|tsJ | | d | d  | d  ksJ t| d}t|tsJ | t| d | d | d gksJ t| ddg}t|tsJ | t|  ddgksJ d S )N         c                 S   s   g | ]}d qS )    ).0ir   r   \/tmp/pip-target-vg8gfxp4/lib/python/sympy/tensor/array/expressions/tests/test_as_explicit.py
<listcomp>       z/test_array_as_explicit_call.<locals>.<listcomp>   kXc                      s      S )N)as_explicitr   )r   r   r   <lambda>   s    z-test_array_as_explicit_call.<locals>.<lambda>c                      s   t  dd S )Nr   r   )r	   r   r   r   r   r   r       r   c                      s   t d d S )Nr   )r
   r   r   r!   r   r   r       r   A)r   r   Br   r   r   r   r   r   r   r   r   r   )r	   r   r   zerosr
   rangereshaper   r   r   
ValueErrorr   
isinstancer   r   r   r   r   r   r   )r"   r#   texprr   )r   r   r   test_array_as_explicit_call
   s*   "4



$
&"r.   c                  C   sD  t ddd} t ddd}t| |}t|tsJ | t|  | ks'J t| d}t|ts3J | | d | d  | d  ksEJ t| d}t|tsQJ | t	| d | d | d gksdJ t
| dd	g}t|tsrJ | t
|  dd	gksJ tt| |t|| }| |jd	  |jd   ksJ d S )
Nr"   r   r#   r$   r%   r&   r'   r   r   )r   r   r,   r   r   r   r   r   r   r   r   r   r   args)r"   r#   r-   exprr   r   r   $test_array_as_explicit_matrix_symbol)   s    

$
&,r1   N)sympy.core.symbolr   "sympy.matrices.expressions.matexprr   sympy.tensor.array.arrayopr   r   r   r   #sympy.tensor.array.dense_ndim_arrayr   0sympy.tensor.array.expressions.array_expressionsr	   r
   r   r   r   r   r   r   sympy.testing.pytestr   r.   r1   r   r   r   r   <module>   s    (