U
    -e                     @   s   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ ed
ddZedddZedZed
eeZe Zed\ZZZZdd Zdd Zdd Zdd Z dd Z!dS )    )symbolsDummy)ElementwiseApplyFunction)Lambda)exp)sin)Matrix)MatrixSymbol)MatMul)simplifyX   Ykzx y z tc                  C   s  t d} t| | d }t|t}t|ts.t| tdd ksHt|jdksVt|j	|j
 |ksjtt||kszt|d |td kstt|t}t|tstt| tst|t|kst|j	|j
 |ksttttt }|jtt kst|jt| t| s t|tt ts:t|j	|j
 |ksPttt| tsdtt| jdksxttddd}|| jd	ksttt|jtt| }|jdksttt|tt|j }|jd
kstt| tgttgg}tt|}t|tst|jt| t| s.t|j|ks>t| |tksVt| tt| ttgttttggkst|j	|j
 |kstt|t}| |kst|tdjd
kst|| jttfksttdtt}|j| | }t|tst|j
d |ks(t|jttfks<t|| }|jttfksXttdd t}tdd t}||kstd S )Nx   c                 S   s   | d S )Nr    r   r   r   p/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/matrices/expressions/tests/test_applyfunc.py<lambda>       z'test_applyfunc_matrix.<locals>.<lambda>)r   r   r   r   Zr   )r   r   r   r   M   c                 S   s   | d S )Nr   r   r   r   r   r   r   N   r   c                 S   s   | S Nr   r   r   r   r   r   O   r   )r   r   r   Xd
isinstanceAssertionErrorZdoit	applyfuncshapefuncargsr   r   r   r   exprfunctiondummy_eqr
   r	   Tr   yztr   Xksubsr   )r   doubler$   r   r   Zexpr2Zexpr3expr1r   r   r   test_applyfunc_matrix   sb    


2
r/   c                  C   sH   t t} | d tt d ks"ttt} | d tt d ksDtd S )Nr   )r   r    r   r   r   afr   r   r   test_applyfunc_entryS   s    

r2   c               	   C   s   t t} |  ttt d tt d tt d gtt d tt d tt d gtt d tt d tt d	 ggks~td S )
Nr   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   r   )r   r    r   as_explicitr   r   r0   r   r   r   test_applyfunc_as_explicit\   s    
   r4   c                  C   s&   t t} | jt jts"td S r   )r+   r    r   r'   r&   r   r0   r   r   r   test_applyfunc_transposef   s    
r5   c                  C   s^   t ddd} tttd }| t}t|ts2t| |}t|tsJt|d|  ksZtd S )Nr   r   r   )	r	   r   r   r    r   r   r   r   r
   )r   r-   r$   r   r   r    test_applyfunc_shape_11_matricesl   s    

r6   N)"Zsympy.core.symbolr   r   Z$sympy.matrices.expressions.applyfuncr   Zsympy.core.functionr   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.trigonometricr   Zsympy.matrices.denser   Z"sympy.matrices.expressions.matexprr	   Z!sympy.matrices.expressions.matmulr
   Zsympy.simplify.simplifyr   r   r   r   r+   r3   r   r   r(   r)   r*   r/   r2   r4   r5   r6   r   r   r   r   <module>   s&   <	
