o
    GZhX%                     @   sp  d dl Z d dlZd dlmZ d dlmZ 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mZ d d	lmZ d d
lmZ d dlmZmZ ejdejejejej ej!gejde dfed ggd fedggdfgdd Z"ejdg dejdeddfeedfede ffde e e feddfeddfedd feddfeddfedd fedd fed!d"fed#d$fed%d&feeeefd'eeeffed ee  fgd(d) Z#d*d+ Z$d,d- Z%ejdg d.ejdeddfed#d$fgd/d0 Z&d1d2 Z'd3d4 Z(d5d6 Z)d7d8 Z*d9d: Z+d;d< Z,d=d> Z-d?d@ Z.dS )A    N)I)Rational)Symbolsymbols)sqrt)Poly)Matrixeyeones)xyz)raises)NonSquareMatrixError)	factorialsubfactorialmethodzM, sol      c                 C   s   | ||ksJ d S N r   MZsolr   r   T/var/www/auris/lib/python3.10/site-packages/sympy/matrices/tests/test_determinant.pytest_eval_determinant   s   r   )	domain-gebareiss	berkowitzbirdlaplaceZlu))   )   r!   ))r   r   r   r   r!      )r   r&      ))r&   r   r   )r(   r   r(   r!   r   r(   r   r   r   r   r&      i)r   r!   r&   r+   )r   r'      r"   )	   
                     )r&   r!   r   r   r   r   r&   r!   r   r   r   r   r&   r!   r   r   r   r   r&   r!   )r!   r   r   r   r&   i  ))r&   r   r   r   )r(   r   r   r   r)   r*   <   ))r   r   r   r   )r   r   r   r   )r.   r/   r0   r   r2   )r7   r8   r9   r:   )r   r   r   r   r&      ))r   r   r   r!   r1   )r!   r   r   r   r+   )r!   r   r   r$   r&   )r&   r!   r$   r   r"   )r   r   r   r   r'   i))r#   r!   r&   r+   r   )r   r&   r+   r   )r   r!   r    r+   r   )r   r!   r&   r(   r   )r   r!   r&   r+   r$   i-  ))r!   r-   r$   r&   r!   )r   r   r   r   r   )r(   r   r-   r   r!   )r    r(   r+   r   r&   )r   r   r   r   r   {   )r   r   r   c                 C      |j | d|ks
J d S Nr   detr   r   r   r   test_determinant   s   8rD   c                     sT   t d  fdd} | d dksJ | d dksJ | d dks(J d S )Nac                    s   t  fddt D S )Nc                    s$   g | ]  fd dt D qS )c                    s   g | ]}|   qS r   r   ).0i)rE   jr   r   
<listcomp>Z   s    zAtest_issue_13835.<locals>.<lambda>.<locals>.<listcomp>.<listcomp>)range)rF   )rE   n)rH   r   rI   Z   s    z6test_issue_13835.<locals>.<lambda>.<locals>.<listcomp>)r   rJ   rK   rE   rL   r   <lambda>Z   s    z"test_issue_13835.<locals>.<lambda>r   r   r'   r-   )r   rC   )r   r   rM   r   test_issue_13835X   s
   rO   c               
   C   s   t ddt dt dgdt dddt gdt dddt  dt gddt dt ddt  gg} |  }tt| }| |td   dksKJ d S )Nr   r/   r   r!   r+   )	r   r   Z	eigenvalsrandomchoicelistkeysr	   rC   )r   ZevZtest_evr   r   r   test_issue_14517a   s    rT   )ZbareisZdet_luZdet_LUZBareisZBAREISSZ	BERKOWITZZLUc                 C   r?   r@   rB   r   r   r   r   test_legacy_detm   s   rU   c                 C      t | | dd S )Nc                 S   s   t | |kS r   )intrG   rH   r   r   r   rN          z!eye_Determinant.<locals>.<lambda>r   rL   r   r   r   eye_Determinant      r[   c                 C   rV   )Nc                 S   s   dS Nr   r   rX   r   r   r   rN      s    z#zeros_Determinant.<locals>.<lambda>rZ   rL   r   r   r   zeros_Determinant   r\   r^   c                     sN  t ddg d tt fdd td} td}|  dks!J | dks)J td}t ddg  t ddd	g}t ddg d
}t ddg d}t dd|ddddd	ddddddddddgddlm}m	}m
}m}	m}
m} t dd||	|
d||dd|g	}t dd|dd|	|d|
||g	}t dd|d dd||d d|||d g	}  dksJ | d	ksJ | dksJ | dksJ  d| d ksJ jddd| d ksJ jddd| d ksJ jddd| d ksJ | || | ksJ | || | ksJ | dksJ ttfdd d S )Nr!   r&   r   r!   r&   r+   r   r'   c                            S r   rB   r   rM   r   r   rN          ztest_det.<locals>.<lambda>r   r   r   r   r,   )	r   r!   r&   r+   r   r'   r-   r"   r"   r+   r'   r-   r.   r/   r0   r1   r3   r4   )rG   rH   klmrK   r$   r(      r   rA   r   r   c                      s    j ddS )Ntest)Z
iszerofuncrB   r   er   r   rN      rY   )r   r   r   r^   r[   rC   r   	sympy.abcrG   rH   rb   rc   rd   rK   
ValueError)r   Zeyr   bcdrG   rH   rb   rc   rd   rK   fghr   rE   rh   r   test_det   s<   " *rr   c                  C   s  t g dg dg dg} |  dksJ tddD ]@}t|| t||j   kr4t|ks7J  J t||t|  t||t| j   krWt|ksZJ  J qtd\}}}}}t |||||g} |  | j   kr|| | | | ksJ  J d S )Nr%   r+   r   r'   r-   r"   r.   i  r   r1   za_1 a_2 a_3 a_4 a_5)	r   ZperrJ   r
   Tr   r	   r   r   )r   rG   Za1Za2a3Za4Za5r   r   r   test_permanent   s   6H:rw   c                     s*  t d} tdd| ddddddddd	d
dddddg}tg ddd|  d d|  d d|  d gdd|  d d|  d d|  d gdd|  d d|  d|  d gg}| |ksZJ |jdd|ksdJ |jdd|ksnJ |jdd|ksxJ |jd d|ksJ tddg d! tt fd"d# d S )$Nr   r+   r   r!   r&   r   r'   r-   r.   r/   r0   r1   r3   r4   )r+   r+   r   L   D   r"   r=   re         0   H   r   rA   r   r   r   r_   c                      r`   r   )adjugater   rM   r   r   rN      ra   ztest_adjugate.<locals>.<lambda>)r   r   r   r   r   )r   rh   Zadjr   rM   r   test_adjugate   s"   """r   c                  C   sZ  t } tddg d}tddg d}| tdksJ ||tdd| dd | dd | d	d
 gks8J tddtddddgksHJ tddtddddgksWJ | |ks_J tdtd	 kskJ tg dg dg dg}|	 tg dg dg dgksJ tg dg dg dg}|	 tg dg dg dgksJ d S )Nr   r&   r%   )r&   r+   r   r4   '      4   r3   r   r!   r   )r   r&   r!   )r!   r'   r&   )r!   r&   r'   )   r   )r!   r&   )r    r   r   rs   rt   )r    r'   r    )r'   r   r'   )
r   r   Znormr   projectZzerosr
   copyr	   cofactor_matrix)Rv1v2rf   r   r   r   	test_util   s"   8 r   c                     sJ  t d} tdd| ddddddddd	d
dddddgt| ddgg dg dg}tg ddd|  d d|  d d|  d gdd|  d d|  d d|  gdd|  d d|  d d|  d gg}t| ddgg dg dg}dd|ksxJ d d |ksJ ddd!|  d ksJ ddd|  d ksJ  |ksJ jd"d#|ksJ jd$d#|ksJ jd%d#|ksJ jd&d#|ksJ ttfd'd( ttfd)d( ttfd*d( tddg d+  ddtddggksJ ttd,d(  tt fd-d( tt fd.d( tt fd/d( d S )0Nr   r+   r   r!   r&   r   r'   r-   r.   r/   r0   r1   r3   r4   )r!   r.   r0   )r1   r3   r4   )r+   ry   r|   r   rx   rz   r{   r}   r~   r=   r   r"   r   r   re   r   rs   )r!   r.   r/   r$   ir   rA   r   r   r   c                           ddS Nr+   r   cofactorr   rg   r   r   rN      rY   z*test_cofactor_and_minors.<locals>.<lambda>c                      r   r   minorr   rg   r   r   rN      rY   c                      r   r   )minor_submatrixr   rg   r   r   rN      rY   r_   c                   S   s   t ddg ddS r]   )r   r   r   r   r   r   rN      s   c                           ddS r]   r   r   rM   r   r   rN     rY   c                      r   r]   r   r   rM   r   r   rN     rY   c                      r`   r   )r   r   rM   r   r   rN     ra   )	r   r   r   r   r   r   r   rj   r   )r   rd   cmsubr   rq   r   test_cofactor_and_minors   sL   """ r   c            	      C   s  t dt d} }t dt d}}ddlm}m}m} tddg d}td| t| d	 d | ks6J td|t|d	 d |ksHJ | t| d d
| d   d|   | ks_J t	t
dd  tddg d}| t| d | ks{J tddg d}| t| d d| d   d| d   d|   d | ksJ tdd| dd||d|||g	}| t|d | | | |d   || | ||  | |    | | |  |ksJ d S )Nr   r   r   tr   )rE   rk   rl   r&   )	r   r!   r&   r+   r   r'   r-   r"   r.   r   r5   r!      c                   S   s   t dgdgg S )Nr   r!   )r   charpolyr   r   r   r   rN     s    ztest_charpoly.<locals>.<lambda>r+   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )-   r   r   r   r      r   r   r   r   W   r   r   r   r   r1      ik"  i i| )r   ri   rE   rk   rl   r   r[   r   r   r   r   )	r   r   r   r   rE   rk   rl   rd   rK   r   r   r   test_charpoly  s   $$.>Zr   )/rP   ZpytestZsympy.core.numbersr   r   Zsympy.core.symbolr   r   Z(sympy.functions.elementary.miscellaneousr   Zsympy.polys.polytoolsr   Zsympy.matricesr   r	   r
   ri   r   r   r   Zsympy.testing.pytestr   Zsympy.matrices.exceptionsr   Z(sympy.functions.combinatorial.factorialsr   r   markZparametrizeZ_eval_det_bareissZ_eval_det_berkowitzZ_eval_det_birdZ_eval_det_laplaceZ_eval_det_lur   rD   rO   rT   rU   r[   r^   rr   rw   r   r   r   r   r   r   r   r   <module>   s    

5	$*