U
    L?hh                     @   s   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 d d	lmZ d d
lmZ dd Zdd Zdd ZdS )    )symbols)Function)Matrix)zeros)simplify)MatrixSolve)lambdify)NumPyPrinter)skip)import_modulec                  C   s2   t ddtd} t ddtd}tt| | d S )N   za:9   zb:3)r   r   hashr   )Ab r   W/var/www/html/venv/lib/python3.8/site-packages/sympy/codegen/tests/test_matrix_nodes.pytest_matrix_solve_issue_24862   s    r   c                     s   t d  fddt dtdD \} }}}}}t| |g||gg}t||g}||}|| | ||  }	t| |	 tddkstt|| | t||  }
t|| |
kstd S )Nqc                 3   s   | ]}| V  qd S Nr   .0fr   r   r   	<genexpr>   s    z5test_matrix_solve_derivative_exact.<locals>.<genexpr>a11 a12 a21 a22 b1 b2cls   r   )	r   r   r   LUsolvediffr   r   AssertionErrorr   )a11a12a21a22b1b2r   r   Zx_luZdxdq_luZdxdq_msr   r   r   "test_matrix_solve_derivative_exact   s    


$ $r(   c                     s  t d} | std td  fddtdtdD \}}}}}}t||g||gg}t||g}|| }	| d| d	| d
| d| d| d|d|d|d|d|d|di}
t|
  \}}t	|| }| j
t||td| t||	td|  d S )Nnumpyznumpy not installed.r   c                 3   s   | ]}| V  qd S r   r   r   r   r   r   r   &   s    z5test_matrix_solve_derivative_numpy.<locals>.<genexpr>r   r   g?g333333?g?g      ?g?g?g?g333333?   g@g      @)printer)r   r
   r   r   r   r   r    zipitemsr   ZtestingZassert_allcloser   r	   )npr"   r#   r$   r%   r&   r'   r   r   Zdx_lusubspZp_valsZdx_smr   r   r   "test_matrix_solve_derivative_numpy!   sH    

                r1   N)Zsympy.core.symbolr   Zsympy.core.functionr   Zsympy.matrices.denser   r   Zsympy.simplify.simplifyr   Zsympy.codegen.matrix_nodesr   Zsympy.utilities.lambdifyr   Zsympy.printing.numpyr	   Zsympy.testing.pytestr
   Zsympy.externalr   r   r(   r1   r   r   r   r   <module>   s   