o
    *Î®cM	  ã                   @   st   d dl mZmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZmZ d dlmZ dd„ Zd	d
„ Zdd„ ZdS )é    )ÚsymbolsÚLambda)ÚKroneckerDelta)ÚMatrix)ÚFunctionMatrixÚ
MatrixExprÚIdentity)ÚraisesÚwarns)ÚSymPyDeprecationWarningc                     s  t dƒ\‰ ‰‰tddtˆ ˆfdƒƒsJ ‚tddtˆ ˆfdƒƒs!J ‚tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ tt‡ ‡fd	d„ƒ tt‡ ‡fd
d„ƒ tt‡ fdd„ƒ ttdd ttdd„ ƒ W d   ƒ n1 s~w   Y  tt‡ fdd„ƒ tt‡ ‡‡fdd„ƒ tt‡ ‡fdd„ƒ tdddƒtddtˆ ˆfdƒƒks´J ‚tddtƒ} |  ¡ t	dƒ ¡ ksÆJ ‚| j
d  tˆ ˆftˆ ˆƒƒ¡sØJ ‚t dƒ‰tˆˆtˆ ˆfdƒƒséJ ‚t ddd‰tt‡ ‡‡fdd„ƒ t ddd‰tt‡ ‡‡fdd„ƒ d S )Nzi j ké   r   c                      ó   t ddtˆ ˆfdƒƒS )Néÿÿÿÿr   ©r   r   © ©ÚiÚjr   úW/tmp/pip-target-vg8gfxp4/lib/python/sympy/matrices/expressions/tests/test_funcmatrix.pyÚ<lambda>   ó    z*test_funcmatrix_creation.<locals>.<lambda>c                      r   )Nç       @r   r   r   r   r   r   r      r   c                      r   )Nù               @r   r   r   r   r   r   r      r   c                      ó   t ddtˆ ˆfdƒƒS )Nr   r   r   r   r   r   r   r      r   c                      r   )Nr   r   r   r   r   r   r   r      r   c                      r   )Nr   r   r   r   r   r   r   r      r   c                      s   t ddtˆ dƒƒS ©Nr   r   r   r   ©r   r   r   r      s    F)Útest_stacklevelc                   S   s   t dddd„ ƒS )Nr   c                 S   ó   dS ©Nr   r   r   r   r   r   r      ó    z<test_funcmatrix_creation.<locals>.<lambda>.<locals>.<lambda>©r   r   r   r   r   r      ó    c                      s   t ddtˆ fdƒƒS r   r   r   r   r   r   r      s    c                      s   t ddtˆ ˆˆfdƒƒS r   r   r   )r   r   Úkr   r   r      s    c                      s   t ddˆ ˆ ƒS )Nr   r    r   r   r   r   r      r!   zlambda i, j: 0Ún)Úintegerc                      ó   t ˆˆtˆ ˆfdƒƒS r   r   r   ©r   r   r#   r   r   r   &   r   T)Únegativec                      r%   r   r   r   r&   r   r   r   (   r   )r   r   r   r	   Ú
ValueErrorr
   r   r   Úas_explicitr   ÚargsÚdummy_eq)Úmr   )r   r   r"   r#   r   Útest_funcmatrix_creation	   s8   þ
ÿ$r-   c                  C   sª   t dƒ\} }tddt| |f| | ƒƒ}|d dksJ ‚|d dks#J ‚|jdks*J ‚|j|j  kr7dks:J ‚ J ‚t|ƒtdddd	„ ƒksHJ ‚t|| | tƒsSJ ‚d S )
Nzi,jé   )é   r/   r   )r/   r   r   )r.   r.   c                 S   s   | | S ©Nr   r   r   r   r   r   2   s    z!test_funcmatrix.<locals>.<lambda>)	r   r   r   ÚshapeÚrowsÚcolsr   Ú
isinstancer   )r   r   ÚXr   r   r   Útest_funcmatrix+   s    r6   c                  C   s,   t ddtƒ} |  dd„ dd„ ¡| ksJ ‚d S )Nr.   c                 S   r   )NTr   ©Úxr   r   r   r   8   r   z$test_replace_issue.<locals>.<lambda>c                 S   s   | S r0   r   r7   r   r   r   r   8   r   )r   r   Úreplace)r5   r   r   r   Útest_replace_issue6   s    r:   N)Ú
sympy.corer   r   Úsympy.functionsr   Úsympy.matricesr   Úsympy.matrices.expressionsr   r   r   Úsympy.testing.pytestr	   r
   Úsympy.utilities.exceptionsr   r-   r6   r:   r   r   r   r   Ú<module>   s    "