o
    jgh                     @   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   ]/var/www/html/zoom/venv/lib/python3.10/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sNJ t|| | t||  }
t|| |
kslJ d S )Nqc                 3       | ]}| V  qd S Nr   .0fr   r   r   	<genexpr>       
z5test_matrix_solve_derivative_exact.<locals>.<genexpr>a11 a12 a21 a22 b1 b2cls   r   )r   r   r   LUsolvediffr   r   r   )a11a12a21a22b1b2r   r   x_ludxdq_lu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   r   r   r   r   r   r   r   r   &   r   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   testingassert_allcloser   r	   )npr#   r$   r%   r&   r'   r(   r   r   dx_lusubspp_valsdx_smr   r   r   "test_matrix_solve_derivative_numpy!   s(   

r:   N)sympy.core.symbolr   sympy.core.functionr   sympy.matrices.denser   r   sympy.simplify.simplifyr   sympy.codegen.matrix_nodesr   sympy.utilities.lambdifyr   sympy.printing.numpyr	   sympy.testing.pytestr
   sympy.externalr   r   r,   r:   r   r   r   r   <module>   s    