o
    oÇhI4  ã                   @   sÐ   d dl 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
 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d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd S )!é    )ÚI)Úsymbols)Úraises)ÚMatrixÚzerosÚeye)ÚSymbol)ÚRational)Úsqrt)Úsimplify)Úxc                     sP  t 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‡ 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„ƒ ˆ  ddd¡tg d¢g d¢g d¢gƒksJ ‚ˆ  ddd¡tg d¢g d¢g d¢gƒks¥J ‚ˆ jddddtg d¢g d¢g d¢gƒks¼J ‚ˆ jddddtg d¢g d¢g d¢gƒksÓJ ‚ˆ  ddd¡tg d¢g d¢g d¢gƒkséJ ‚ˆ jddddtg d¢g d¢g d¢gƒksJ ‚ˆ jddddtg d¢g d¢g d¢gƒksJ ‚ˆ  dddd¡tg d¢g d¢g d¢gƒks1J ‚ˆ jddddd tg d¢g d¢g d¢gƒksJJ ‚ˆ jddddd!tg d¢g d¢g d¢gƒkscJ ‚td"ddgd# ƒ} |  ddd¡td"ddgd# ƒksJ ‚|  ddd¡td"ddgd# ƒks’J ‚|  dddd¡td"ddgd# ƒks¦J ‚d S )$Né   c                      ó
   ˆ   d¡S ©NÚabc©Úelementary_row_op© ©Úer   úx/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/matrices/tests/test_reductions.pyÚ<lambda>   ó   
 ztest_row_op.<locals>.<lambda>c                      ó   ˆ   ¡ S ©Nr   r   r   r   r   r      ó    c                      ó   ˆ j ddddS )Nún->kné   ©ÚrowÚkr   r   r   r   r   r      ó    c                      ó   ˆ j ddddS )Nr   éûÿÿÿr   r   r   r   r   r   r   r      r"   c                      r#   )Nún<->mé   r   ©Úrow1Úrow2r   r   r   r   r   r      r"   c                      r#   )Nr%   r   r&   r'   r   r   r   r   r   r      r"   c                      r#   )Nr%   r$   r&   r'   r   r   r   r   r   r      r"   c                      r#   )Nr%   r&   r$   r'   r   r   r   r   r   r      r"   c                      ó   ˆ j dddddS ©Nún->n+kmr&   r   ©r(   r)   r!   r   r   r   r   r   r      ó    c                      ó   ˆ j dddddS )Nr,   r   r&   r-   r   r   r   r   r   r      r.   c                      ó   ˆ j dddddS )Nr,   r$   r&   r   r-   r   r   r   r   r   r      r.   c                      r0   )Nr,   r&   r$   r   r-   r   r   r   r   r   r      r.   c                      ó   ˆ j dddddS 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'   )r    r)   r,   )r&   r   r   )r    r!   r)   )r(   r!   r)   é   é   )r   r   Ú
ValueErrorr   r   ©Úar   r   r   Útest_row_op   ó8   ,,..,00022&&,r<   c                     sP  t 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‡ 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„ƒ ˆ  ddd¡tg d¢g d¢g d¢gƒksJ ‚ˆ  ddd¡tg d¢g d¢g d¢gƒks¥J ‚ˆ jddddtg d¢g d¢g d¢gƒks¼J ‚ˆ jddddtg d¢g d¢g d¢gƒksÓJ ‚ˆ  ddd¡tg d¢g d¢g d¢gƒkséJ ‚ˆ jddddtg d¢g d¢g d¢gƒksJ ‚ˆ jddddtg d¢g d¢g d¢gƒksJ ‚ˆ  dddd¡tg d¢g d¢g d¢gƒks1J ‚ˆ jddddd tg d¢g d¢g d¢gƒksJJ ‚ˆ jddddd!tg d¢g d¢g d¢gƒkscJ ‚td"ddgd# ƒ} |  ddd¡td"ddgd# ƒksJ ‚|  ddd¡td"ddgd# ƒks’J ‚|  dddd¡td"ddgd# ƒks¦J ‚d S )$Nr   c                      r   r   ©Úelementary_col_opr   r   r   r   r   4   r   ztest_col_op.<locals>.<lambda>c                      r   r   r>   r   r   r   r   r   5   r   c                      r   )Nr   r   ©Úcolr!   r>   r   r   r   r   r   6   r"   c                      r#   )Nr   r$   r   r@   r>   r   r   r   r   r   7   r"   c                      r#   )Nr%   r&   r   ©Úcol1Úcol2r>   r   r   r   r   r   8   r"   c                      r#   )Nr%   r   r&   rB   r>   r   r   r   r   r   9   r"   c                      r#   )Nr%   r$   r&   rB   r>   r   r   r   r   r   :   r"   c                      r#   )Nr%   r&   r$   rB   r>   r   r   r   r   r   ;   r"   c                      r*   ©Nr,   r&   r   ©rC   rD   r!   r>   r   r   r   r   r   <   r.   c                      r/   )Nr,   r   r&   rF   r>   r   r   r   r   r   =   r.   c                      r0   )Nr,   r$   r&   r   rF   r>   r   r   r   r   r   >   r.   c                      r0   )Nr,   r&   r$   r   rF   r>   r   r   r   r   r   ?   r.   c                      r1   rE   r>   r   r   r   r   r   @   r.   r   r   r   r2   r3   r4   r&   r5   r6   r@   )rC   r!   r%   rB   )rA   rD   r,   )r   r&   r   )rA   r!   rD   )rC   r!   rD   r7   r8   )r   r   r9   r?   r   r:   r   r   r   Útest_col_op1   r=   rG   c                  C   sÌ   t dƒ} tdƒ}| jsJ ‚|jsJ ‚tddg ƒ}|jsJ ‚tddg d¢ƒ}|js*J ‚tddg d¢ƒ}|jr7J ‚tdƒ}tdd|ddgƒ}|jsIJ ‚tdd||dgƒ}|jrWJ ‚tddg d¢ƒ}|jrdJ ‚d S )	Nr   r   r7   )r   r7   r&   r   r   r8   )r   r   r8   r   r7   r&   r   r&   ©	r   r   r   r&   r7   r   r   r   r   )r   r   Ú
is_echelonr   r   )ÚzroÚidentr;   r   r   r   r   Útest_is_echelonU   s"   






rL   c                     sÄ  t dƒ‰ tdƒ} ˆ  ¡ ˆ ksJ ‚|  ¡ | ksJ ‚tddg ƒ‰ ˆ  ¡ ˆ ks&J ‚tdddgƒ‰ ˆ  ¡ ˆ ks5J ‚‡fdd„}tddg d¢ƒ‰ tdgdgdggƒg}‡ fd	d
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjscJ ‚|ˆ ||ƒ tddg d¢ƒ‰ g }‡ fdd
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjsˆJ ‚|ˆ ||ƒ tddg d¢ƒ‰ ttddƒgdgdggƒttddƒgdgdggƒg}‡ fdd
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjsÅJ ‚|ˆ ||ƒ tddg d¢ƒ‰ tdgdgdggƒg}‡ fdd
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjsóJ ‚|ˆ ||ƒ tddg d¢ƒ‰ tdgdgdggƒtdgdgdggƒg}‡ fdd
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjs+J ‚|ˆ ||ƒ tddg d¢ƒ‰ tdgdgdggƒg}‡ fdd
„tˆ jƒD ƒ}ˆ  ¡ ‰ˆjsZJ ‚|ˆ ||ƒ d S )Nr   r   r&   r   c                    sb   |D ]}t dd„ ˆ | D ƒƒsJ ‚q|D ]}t dd„ |D ƒƒs.t dd„ ˆ | ¡  D ƒƒr.J ‚qd S )Nc                 s   ó    | ]}|j V  qd S r   ©Úis_zero©Ú.0Útr   r   r   Ú	<genexpr>†   ó   € zCtest_echelon_form.<locals>.verify_row_null_space.<locals>.<genexpr>c                 s   rM   r   rN   rP   r   r   r   rS   ˆ   rT   c                 s   rM   r   rN   rP   r   r   r   rS   ‰   rT   )ÚallÚ	transpose)ÚmatÚrowsÚnullsÚv)Ú	a_echelonr   r   Úverify_row_null_space„   s   €þz0test_echelon_form.<locals>.verify_row_null_space©	r&   r7   r   é   r   r8   é   é   é	   éþÿÿÿc                    ó   g | ]
}ˆ |d d …f ‘qS r   r   ©rQ   Úir:   r   r   Ú
<listcomp>   ó    z%test_echelon_form.<locals>.<listcomp>)	r&   r7   r   r^   r   r8   r_   r`   r`   c                    rc   r   r   rd   r:   r   r   rf   ˜   rg   )	r7   r&   r   r   r   r   r7   r&   r   éÿÿÿÿr7   éýÿÿÿc                    rc   r   r   rd   r:   r   r   rf   ¦   rg   )	r7   r&   r   r   r   r   r&   r&   r   c                    rc   r   r   rd   r:   r   r   rf   ±   rg   )	r   r   r   r   r7   r7   r   r&   r&   c                    rc   r   r   rd   r:   r   r   rf   ¿   rg   )r7   r7   r   r   r   r   c                    rc   r   r   rd   r:   r   r   rf   É   rg   )r   r   Úechelon_formr   ÚrangerX   rI   r	   )r   r\   rY   rX   r   )r;   r[   r   Útest_echelon_formp   sš   ý


ý
ýü
ý
ýýüýrl   c               
   C   sH  t ddg ƒ} | jdd| ksJ ‚t dddgƒ} t dddgƒ}| jdd|jdd  kr1| ks4J ‚ J ‚t ddg d¢ƒ}|jddt dgdgdggƒksNJ ‚t ddg d¢ƒ}|jddt g d¢gƒkseJ ‚t ddg d¢ƒ}|jddt g d	¢g d
¢g d¢gƒks‚J ‚t ddg d¢ƒ}t ddg d¢ƒ}t ddg d¢ƒ}t ddg d¢ƒ}|jdd|jdd  krÇ|jdd  krÇ|jdd  krÇ|ksÊJ ‚ J ‚tdƒ} tdƒ}| jdd| ksÜJ ‚|jdd|ksæJ ‚t g d¢g d¢g d¢g d¢gƒ}| ¡ \}}|t g d¢g d¢g d¢g d¢gƒksJ ‚|dksJ ‚t tddƒtddƒddgg d¢g d¢g d¢gƒ}|jddt dddtddƒgdddtd dƒgdddtd!dƒgg d"¢gƒksXJ ‚td#ƒ}t dd|ddt|ƒ|dgƒ}t|jddddt|ƒ| d  |tddƒ  |  dddt|ƒ| d  gƒD ]\}	}
t|	|
 ƒj	s J ‚q’d S )$Nr   F)Úpivotsr&   r   r   )r&   r7   r   r]   )r&   r   rh   ©r   r&   r7   )r   r   r   )	r&   r7   r   r&   r7   r   r&   r7   r   )	r&   r7   r   r   r   r   r   r   r   rH   )	r   r   r   r   r   r   r&   r7   r   )r   r   r&   r7   r7   r$   r   )rh   r   r7   r7   r&   iùÿÿÿr   )r   r   rb   ri   ri   r`   r$   )rh   r   r   rh   rb   r&   r   )r&   r$   r   r   r&   r&   rh   )r   r   r&   r   r   rh   r&   )r   r   r   r&   r&   rb   r&   )r   r   r   r   r   r   r   )r   r7   r   é   r7   )r^   r   r8   r_   )r`   ra   é
   é   )é   é   é   é   i´ÿÿÿé   r$   éî   ©r   r   r   r   r   )
r   Úrrefr   r   r	   r   r
   Úzipr   rO   )r   r;   ÚbÚcÚdÚzrW   Úpivot_offsetsr   re   Újr   r   r   Ú	test_rrefÏ   s„   ,$ý

ÿ
þ
ýýüüýü(ÿÿýr   c                  C   s¢   t dƒ\} }}}tddgddgddgddggƒ}t| |||gƒ}| |¡tddgddgddgddggƒtd| | gd| d |d  g| g|ggƒfksOJ ‚d S )Nza b c dr   r&   r7   r   r^   rb   )r   r   Úrref_rhs)r;   r{   r|   r}   ÚAÚBr   r   r   Útest_rref_rhs  s     
üüür…   c                     sþ   t g d¢g d¢g d¢g d¢g d¢g d¢gƒ‰ ˆ jddd	d
} ˆ jdd	ddd}ˆ jdd	dd}| d	d d …f t g d¢gƒks@J ‚|d	d d …f t g d¢gƒksQJ ‚|d	d d …f t g d¢gƒksbJ ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ d S )N)r   r^   rh   r&   )ra   rr   ri   r   )r   r7   r&   r   )r7   r   r   rb   )r   r   r   r$   )r`   ru   r   r8   r%   r7   r   r'   r,   r   éüÿÿÿr-   r   r   )r   r   r   rt   )é   é   r   rr   c                      r#   )Nr%   r7   r8   r'   r   r   ©ÚCr   r   r   0  r"   z"test_issue_17827.<locals>.<lambda>c                      r#   )Nr   r_   r7   r   r   r   r‰   r   r   r   1  r"   c                      r0   )Nr,   rh   r   r7   r-   r   r   r‰   r   r   r   2  r.   )r   r   r   r9   )ÚDÚEÚFr   r‰   r   Útest_issue_17827  s"   ú	"""rŽ   c                  C   sj   t ddgtddt  ggƒ} |  ¡ dksJ ‚t ddtddƒƒ}| ¡ dks'J ‚tdƒ}| ¡ dks3J ‚d S )Nr&   r7   r   rp   r   )r   r   Úrankrk   r   )ÚmÚnÚpr   r   r   Ú	test_rank4  s   r“   c                  C   s¸   t dƒ\} }}}}}}}}}	}
}t| || |
 ||
 dg||||
 ||
 dg||||
 ||
 dg||||
 ||
 dg||	d| | ||
  d|	 | |	|
  dggƒ}| ¡ dksZJ ‚d S )Nz/a_x a_y b_x b_y c_x c_y d_x d_y e_x e_y t_0 t_1r   r&   r7   r^   )r   r   r   )ÚaxÚayÚbxÚbyÚcxÚcyÚdxÚdyÚexÚeyÚt0Út1ÚMr   r   r   Útest_issue_11434<  s   ÿ,ür¡   c               	   C   sð   t dƒ\} }td|  dddgd|  d|  d ddgdd|  d|  | d dgdd| | dggƒ}tdddd| d | |    gdddd| | |    gdddd| |   gg d	¢gƒ}d
}| ¡ \}}t|| ƒt|jŽ kspJ ‚||ksvJ ‚d S )Nz
nu, lambdari   r&   r   r   rb   r7   rh   rx   rn   )r   r   ry   r   r   Úshape)ÚnuÚlambrƒ   Úexpected_reducedÚexpected_pivotsÚreducedrm   r   r   r   Útest_rank_regression_from_soF  s   ýýr¨   c                  C   sn   t g d¢g d¢g d¢g d¢gƒ} | t  d¡t  }| ¡ dks!J ‚|d  ¡ dks+J ‚|d  ¡ dks5J ‚d S )N)r&   r&   r&   r   )rb   rh   r   rh   )r   r   rh   rh   )r   r   r7   r&   r^   r   r7   )r   r   r   r   )rƒ   r„   r   r   r   Útest_issue_15872Z  s
    r©   N)Úsympy.core.numbersr   Úsympy.core.symbolr   Úsympy.testing.pytestr   Úsympy.matricesr   r   r   r   r	   Ú(sympy.functions.elementary.miscellaneousr
   Úsympy.simplify.simplifyr   Ú	sympy.abcr   r<   rG   rL   rl   r   r…   rŽ   r“   r¡   r¨   r©   r   r   r   r   Ú<module>   s(    $$_A
