a
    kh                     @   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.J | tdd ksHJ |jdksVJ |j|j	 |ksjJ t
||kszJ |d |td ksJ t|t}t|tsJ t| tsJ |t|ksJ |j|j	 |ksJ tttt }|jtt ksJ |jt| t| s J |tt ts:J |j|j	 |ksPJ tt| tsdJ t| jdksxJ tddd}|| jd	ksJ tt|jtt| }|jdksJ tt|tt|j }|jd
ksJ t| tgttgg}tt|}t|tsJ |jt| t| s.J |j|ks>J | |tksVJ | tt| ttgttttggksJ |j|j	 |ksJ t|t}| |ksJ |tdjd
ksJ || jttfksJ tdtt}|j| | }t|tsJ |j	d |ks(J |jttfks<J || }|jttfksXJ tdd t}tdd t}||ksJ d S )Nx   c                 S   s   | d S )Nr    r   r   r   ]/var/www/auris/lib/python3.9/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
isinstanceZ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"J tt} | d tt d ksDJ d S )Nr   )r   r   r   r   afr   r   r   test_applyfunc_entryS   s    

r1   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~J d S )
Nr   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   r   )r   r   r   as_explicitr   r/   r   r   r   test_applyfunc_as_explicit\   s    
   r3   c                  C   s&   t t} | jt jts"J d S r   )r*   r   r   r&   r%   r/   r   r   r   test_applyfunc_transposef   s    
r4   c                  C   s^   t ddd} tttd }| t}t|ts2J | |}t|tsJJ |d|  ksZJ d S )Nr   r   r   )r	   r   r   r   r   r   r   r
   )r   r,   r#   r   r   r    test_applyfunc_shape_11_matricesl   s    

r5   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*   r2   r   r   r'   r(   r)   r.   r1   r3   r4   r5   r   r   r   r   <module>   s&   <	
