o
    ohX%                     @   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   Msolr   r   y/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/matrices/tests/test_determinant.pytest_eval_determinant   s   r   )	domain-gebareiss	berkowitzbirdlaplace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   )r0   r1   r2   r   r4   )r9   r:   r;   r<   )r   r   r   r   r(      ))r   r   r   r#   r3   )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   8rF   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)rG   jr   r   
<listcomp>Z   s    zAtest_issue_13835.<locals>.<lambda>.<locals>.<listcomp>.<listcomp>)range)rH   )rG   n)rJ   r   rK   Z   s    z6test_issue_13835.<locals>.<lambda>.<locals>.<listcomp>)r   rL   rM   rG   rN   r   <lambda>Z   s    z"test_issue_13835.<locals>.<lambda>r   r   r)   r/   )r   rE   )r   r   rO   r   test_issue_13835X   s
   rQ   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   r1   r   r#   r-   )	r   r   	eigenvalsrandomchoicelistkeysr	   rE   )r   evtest_evr   r   r   test_issue_14517a   s    rY   )bareisdet_ludet_LUBareisBAREISS	BERKOWITZLUc                 C   rA   rB   rD   r   r   r   r   test_legacy_detm   s   ra   c                 C      t | | dd S )Nc                 S   s   t | |kS r   )intrI   rJ   r   r   r   rP          z!eye_Determinant.<locals>.<lambda>r   rN   r   r   r   eye_Determinant      rg   c                 C   rb   )Nc                 S   s   dS Nr   r   rd   r   r   r   rP      s    z#zeros_Determinant.<locals>.<lambda>rf   rN   r   r   r   zeros_Determinant   rh   rj   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   rD   r   rO   r   r   rP          ztest_det.<locals>.<lambda>r   r   r   r   r.   )	r   r#   r(   r-   r   r)   r/   r$   r$   r-   r)   r/   r0   r1   r2   r3   r5   r6   )rI   rJ   klmrM   r&   r*      r   rC   r   r   c                      s    j ddS )Ntest)
iszerofuncrD   r   er   r   rP      re   )r   r   r   rj   rg   rE   r   	sympy.abcrI   rJ   rn   ro   rp   rM   
ValueError)r   eyr   bcdrI   rJ   rn   ro   rp   rM   fghr   rG   ru   r   test_det   s<   " *r   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$   r0   i  r   r3   za_1 a_2 a_3 a_4 a_5)	r   perrL   r
   Tr   r	   r   r   )r   rI   a1a2a3a4a5r   r   r   test_permanent   s   6H:r   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/   r0   r1   r2   r3   r5   r6   )r-   r-   r   L   D   r$   r?   rq         0   H   r   rC   r   r   r    rk   c                      rl   r   )adjugater   rO   r   r   rP      rm   ztest_adjugate.<locals>.<lambda>)r   r   r   r   r   )r   ru   adjr   rO   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   r6   '      4   r5   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   normr   projectzerosr
   copyr	   cofactor_matrix)Rv1v2rr   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/   r0   r1   r2   r3   r5   r6   )r#   r0   r2   )r3   r5   r6   )r-   r   r   r   r   r   r   r   r   r?   r   r$   r   r   rq   r   r   )r#   r0   r1   r&   ir   rC   r   r   r    c                           ddS Nr-   r   cofactorr   rt   r   r   rP      re   z*test_cofactor_and_minors.<locals>.<lambda>c                      r   r   minorr   rt   r   r   rP      re   c                      r   r   )minor_submatrixr   rt   r   r   rP      re   rk   c                   S   s   t ddg ddS ri   )r   r   r   r   r   r   rP      s   c                           ddS ri   r   r   rO   r   r   rP     re   c                      r   ri   r   r   rO   r   r   rP     re   c                      rl   r   )r   r   rO   r   r   rP     rm   )	r   r   r   r   r   r   r   rw   r   )r   rp   cmsubr   r   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   )rG   ry   rz   r(   )	r   r#   r(   r-   r   r)   r/   r$   r0   r   r7   r#      c                   S   s   t dgdgg S )Nr   r#   )r   charpolyr   r   r   r   rP     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   r3      ik"  i i| )r   rv   rG   ry   rz   r   rg   r   r   r   r   )	r   r   r   r   rG   ry   rz   rp   rM   r   r   r   test_charpoly  s   $$.>Zr   )/rS   pytestsympy.core.numbersr   r   sympy.core.symbolr   r   (sympy.functions.elementary.miscellaneousr   sympy.polys.polytoolsr   sympy.matricesr   r	   r
   rv   r   r   r   sympy.testing.pytestr   sympy.matrices.exceptionsr   (sympy.functions.combinatorial.factorialsr   r   markparametrize_eval_det_bareiss_eval_det_berkowitz_eval_det_bird_eval_det_laplace_eval_det_lur   rF   rQ   rY   ra   rg   rj   r   r   r   r   r   r   r   r   r   r   <module>   s    

5	$*