o
    oÇhŠ8  ã                   @   s  d Z ddlmZ ddlmZ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mZ dd	„ eƒ D ƒ\ZZZZZZ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 d!„ Z%d"d#„ Z&d$d%„ Z'd&d'„ Z(d(d)„ Z)d*d+„ Z*d,d-„ Z+d.d/„ Z,d0S )1z:Tests for OO layer of several polynomial representations. é    )Úsqrt)ÚZZÚQQ)ÚDMPÚDMFÚANP)ÚCoercionFailedÚExactQuotientFailedÚNotInvertible)Úf_polys)ÚraisesÚwarns_deprecated_sympyc                 C   s   g | ]}|  ¡ ‘qS © )Úto_dense)Ú.0Úfr   r   úv/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/polys/tests/test_polyclasses.pyÚ
<listcomp>   ó    r   c                  C   s  t tdƒgg tdƒtdƒtdƒgtdƒggtƒ} | jddgdggks$J ‚| jtks+J ‚| jdks2J ‚t tdƒtdƒgtdƒggtdƒ} | jddgdggksOJ ‚| jtksVJ ‚| jdks]J ‚t  tdƒtdƒdœdt¡} | jddgdggkswJ ‚| jtks~J ‚| jdks…J ‚d S )Nr   é   é   é   ©)r   r   ©r   r   )r   r   Ú_repÚdomÚlevÚ	from_dict©r   r   r   r   Útest_DMP___init__   s   0"r   c                  C   sL   t g d¢tƒ} tƒ  | jg d¢ksJ ‚W d   ƒ d S 1 sw   Y  d S )N©r   r   r   )r   r   r   Úrepr   r   r   r   Útest_DMP_rep_deprecation!   s   "ÿr"   c                   C   s$  t tdƒtdƒgtdƒggtƒt tdƒtdƒgtdƒggtƒks"J ‚t tdƒtdƒgtdƒggtƒt tdƒtdƒgtdƒggtƒksDJ ‚t tdƒtdƒgtdƒggtƒt tdƒtdƒgtdƒggtƒksfJ ‚t tdƒgggtƒt tdƒggtƒks{J ‚t tdƒggtƒt tdƒgggtƒksJ ‚d S )Nr   r   r   )r   r   r   r   r   r   r   Útest_DMP___eq__(   s   ÿÿÿ*.r#   c                   C   s:   t tg gtƒƒdu sJ ‚t ttdƒggtƒƒdu sJ ‚d S ©NFr   T)Úboolr   r   r   r   r   r   Útest_DMP___bool__5   s   "r&   c                  C   sl   t tdƒgg tdƒgg tdƒggtƒ} |  ¡ ddddœksJ ‚|  ¡ t d¡t d¡t d¡dœks4J ‚d S )Nr   r   é   ))é   r   ©r   r   r   )r   r   Úto_dictÚto_sympy_dictÚto_sympyr   r   r   r   Útest_DMP_to_dict:   s   &
ÿÿÿr-   c                   C   sÔ  t g gtƒjdu sJ ‚t tdƒggtƒjdu sJ ‚t tdƒggtƒjdu s'J ‚t tdƒggtƒjdu s5J ‚t tdƒggtƒjdu sCJ ‚t tdƒgtdƒgtdƒggtƒjdu sYJ ‚t tdƒgtdƒtdƒgtdƒtdƒggtƒjdu suJ ‚t tdƒgtdƒtdƒgtdƒtdƒtdƒggtƒjdu s”J ‚t tdƒtdƒgtdƒggtƒjdu s©J ‚t tdƒtdƒgtdƒggtƒjdu s¾J ‚t tdƒtdƒgtdƒggtƒjdu sÓJ ‚t tdƒtdƒgtdƒggtƒjdu sèJ ‚d S )	NTr   Fr   r   r   r(   é   )r   r   Úis_zeroÚis_oneÚ	is_groundÚis_sqfÚis_monicÚis_primitiver   r   r   r   Útest_DMP_propertiesD   s   ,8>***.r5   c                     s²  t tdƒgtdƒtdƒggtƒ‰ ˆ  d¡t tdƒgtdƒtdƒggtƒks'J ‚ˆ  d¡t tdƒgtdƒtdƒggtƒks>J ‚tt‡ fdd„ƒ t tdƒggtƒ‰ t tdƒggtƒ‰ˆ  ¡ ˆksaJ ‚tˆ ƒˆksiJ ‚ˆ ¡ ˆ ksqJ ‚ˆ ˆ ksxJ ‚t g gtƒ} ˆ  ˆ¡| ks‡J ‚ˆ ˆ | ksJ ‚ˆˆ  | ks—J ‚ˆ d | ksŸJ ‚dˆ  | ks§J ‚t td	ƒggtƒ} ˆ  	ˆ¡| ks¹J ‚ˆ ˆ | ksÁJ ‚ˆˆ  |  ksÊJ ‚ˆ d | ksÒJ ‚dˆ  |  ksÛJ ‚t td
ƒggtƒ} ˆ  
ˆ¡| ksíJ ‚ˆ ˆ | ksõJ ‚ˆˆ  | ksýJ ‚ˆ d | ksJ ‚dˆ  | ksJ ‚t tdƒggtƒ} ˆ  ¡ | ks!J ‚ˆ  d¡| ks+J ‚ˆ d | ks4J ‚tt‡ fdd„ƒ t tdƒgg tdƒtdƒtdƒggtƒ‰ t tdƒgtdƒtdƒggtƒ‰t tdƒgtdƒtdƒggtƒ}t tdƒtdƒtdƒggtƒ}ˆ  ˆ¡||fksŒJ ‚ˆ  ˆ¡|ks–J ‚ˆ  ˆ¡|ks J ‚tt‡ ‡fdd„ƒ t tdƒgg tdƒtdƒtdƒggtƒ‰ t tdƒgtdƒtdƒggtƒ‰t tdƒgtdƒtdƒggtƒ}t tdƒtdƒtdƒggtƒ}ˆ  ˆ¡||fksùJ ‚ˆ  ˆ¡|ksJ ‚ˆ  ˆ¡|ksJ ‚tˆ ˆƒ||fksJ ‚ˆ ˆ |ks"J ‚ˆ ˆ |ks+J ‚tt‡ ‡fdd„ƒ t tdƒtdƒtdƒgtƒ‰ t tdƒtdƒgtƒ‰t g tƒ}ˆ }t tdƒtdƒgtƒ}t g tƒ}ˆ  ˆ¡||fksqJ ‚ˆ  ˆ¡|ks{J ‚ˆ  ˆ¡|ks…J ‚tˆ ˆƒ||fks‘J ‚ˆ ˆ |ksšJ ‚ˆ ˆ |ks£J ‚tt‡ ‡fdd„ƒ ˆ  ˆ¡||fks¹J ‚ˆ  ˆ¡|ksÃJ ‚ˆ  ˆ¡|ksÍJ ‚ˆ  ˆ¡|ks×J ‚d S )Nr   r   r(   r   c                      ó
   ˆ   d¡S )Nr   )Úexquo_groundr   r   r   r   Ú<lambda>^   ó   
 z&test_DMP_arithmetics.<locals>.<lambda>éûÿÿÿé   éöÿÿÿiçÿÿÿé   c                      r6   )NÚx)Úpowr   r   r   r   r8   ‡   r9   éþÿÿÿr'   c                      ó
   ˆ   ˆ¡S ©N)Úpexquor   ©r   Úgr   r   r8   “   r9   éÿÿÿÿc                      rA   rB   ©Úexquor   rD   r   r   r8   £   r9   c                      rA   rB   rG   r   rD   r   r   r8   ¶   r9   )r   r   Ú
mul_groundÚ
quo_groundr   r	   ÚabsÚnegÚaddÚsubÚmulÚsqrr?   Ú	TypeErrorÚpdivÚpquoÚpremÚdivÚquoÚremÚdivmodrC   )ÚhÚqÚrÚpqÚprr   rD   r   Útest_DMP_arithmeticsX   sŠ    ..(  (  

r^   c                     sô  t tdƒgtdƒtdƒgtdƒtdƒtdƒggtƒ‰ t tdƒgtdƒtdƒggtƒ} t tdƒggtƒ}ˆ  ¡ dks;J ‚ˆ  ¡ dksCJ ‚ˆ  ¡ dksKJ ‚ˆ  ¡ tdƒksUJ ‚ˆ  ¡ tdƒks_J ‚ˆ  dd¡tdƒkskJ ‚tt	‡ fdd„ƒ ˆ  
¡ dks|J ‚ˆ  ¡ dks„J ‚t tdƒgtdƒtdƒggtƒ}ˆ jddd|ksŸJ ‚ˆ jddd|ksªJ ‚tt	‡ fd	d„ƒ t tdƒtdƒtdƒgtƒ}t tdƒtdƒtdƒgtƒ}ˆ jddd
|ksÚJ ‚ˆ jddd
|ksåJ ‚ˆ  d¡ d¡tdƒksóJ ‚ˆ  | ¡| | |fksÿJ ‚ˆ  | ¡| ks	J ‚ˆ  | ¡ˆ ksJ ‚t tdƒtdƒtdƒggtƒ}t tdƒtddƒtddƒggtƒ}| ¡ |ks<J ‚dˆ   ¡ tdƒksIJ ‚dˆ   ¡ tdƒˆ fksXJ ‚t tddƒtdƒgtƒ‰ t tddƒtdƒgtƒ} ˆ  | ¡ˆ j| dd  kr™t tdƒtdƒgtƒt tdƒtdƒgtƒfksœJ ‚ J ‚ˆ j| ddtdƒtdƒt tdƒtdƒgtƒt tdƒtdƒgtƒfksÂJ ‚t tdƒgtdƒgtdƒgtdƒgtdƒgtdƒggtƒ‰ ˆ  d¡t tdƒgtdƒgg tdƒgtdƒgg gtƒksþJ ‚t ttƒ‰ ˆ  ¡ ˆ  ksJ ‚ˆ  ¡ tdƒˆ  dfgfksJ ‚t tdƒgg g tdƒggtƒ‰ t tdƒtdƒgg g gtƒ} t tdƒtdƒtdƒggtƒ}t tdƒtdƒtdƒtdƒgtƒ}ˆ  | ¡ˆ | |gkshJ ‚ˆ  | ¡|ksrJ ‚t tdƒtdƒtdƒtdƒgtƒ‰ ˆ  ¡ dksŒJ ‚t tdƒtdƒgtƒ‰ t tdƒtdƒtdƒgtƒ} t tddƒtdƒgtƒ}t tddƒgtƒ}t tdƒgtƒ}ˆ  | ¡||fksÎJ ‚ˆ  | ¡|||fksÛJ ‚ˆ  | ¡|ksåJ ‚t tdƒgtdƒgtdƒggtƒ‰ tt ‡ fdd„ƒ tt ‡ fd d„ƒ tt ‡ fd!d„ƒ t t !g d"¢¡tƒ‰ t tdƒtdƒtdƒtd#ƒtdƒgtƒ} t tdƒtdƒtdƒtdƒgtƒ}|  "|¡ˆ ksJJ ‚ˆ  #¡ | |gksUJ ‚t tdƒgtdƒgtdƒggtƒ‰ tt ‡ fd$d„ƒ tt ‡ fd%d„ƒ d S )&Nr   r   r   )r   r   c                      s   ˆ   dd¡S )Nr   r>   )Únthr   r   r   r   r8   Ë   s    z(test_DMP_functionality.<locals>.<lambda>r(   ©ÚmÚjc                      s   ˆ j dddS )Nr>   r   r`   )Údiffr   r   r   r   r8   Õ   s    )Úarb   é-   é   r;   r   é	   é   T)Úincludeé   Fr.   rF   i£  éá   r=   ióÿÿÿipÒÿÿiðÿÿÿé    é   c                      ó
   ˆ   ˆ ¡S rB   )Ú
half_gcdexr   r   r   r   r8     r9   c                      rn   rB   )Úgcdexr   r   r   r   r8     r9   c                      rn   rB   )Úinvertr   r   r   r   r8      r9   )r   r   é   r   é–   r   iô  r   iq  r@   r   r<   rg   r@   c                      ó   ˆ   ¡ S rB   )Ú	decomposer   r   r   r   r8   +  ó    c                      rt   rB   )Ústurmr   r   r   r   r8   ,  rv   )$r   r   ÚdegreeÚdegree_listÚtotal_degreeÚLCÚTCr_   r   rQ   Úmax_normÚl1_normrc   ÚevalÚ	cofactorsÚgcdÚlcmr   ÚmonicÚcontentÚ	primitiveÚcancelÚtruncÚf_4Úsqf_partÚsqf_listÚsubresultantsÚ	resultantÚdiscriminantro   rp   rq   Ú
ValueErrorÚmapÚcomposeru   )rE   rY   ÚuÚvr[   ÚsÚtr   r   r   Útest_DMP_functionality¾   s”   4  "þü:>
""""(""r•   c                  C   sÄ   t dƒggg ggggggggggggggggggggggggg} g d¢}t| t ƒ ¡ |tt dƒt dƒgt ƒfks:J ‚tt dƒgt dƒt dƒggt ƒ ¡ g tt dƒgt dƒt dƒggt ƒfks`J ‚d S )Nr   )r   r   r   r   r(   r;   r.   rh   r'   rg   é
   é   é   é   é   é   rm   é   é   é   rr   rj   é   é   r=   r   )r   r   Úexclude)r   ÚJr   r   r   Útest_DMP_exclude/  s   @,""ÿr£   c                  C   s4  t dgg g d¢dggg d¢gftƒ} | jddgdggksJ ‚| jg d¢gks(J ‚| jdks/J ‚| jtks6J ‚t ddgdggg d¢gftdƒ} | jddgdggksRJ ‚| jg d¢gks\J ‚| jdkscJ ‚| jtksjJ ‚t dgdggdgd	ggftƒ} | jdgdggks„J ‚| jdgd	ggksJ ‚| jdks–J ‚| jtksJ ‚t dgdggd
gdggftƒ} | jdgdggks·J ‚| jdgd	ggksÂJ ‚| jdksÉJ ‚| jtksÐJ ‚t dgdggd
gdggftƒ} | jdgdggksêJ ‚| jdgd	ggksõJ ‚| jdksüJ ‚| jtksJ ‚t g gd
gdggftƒ} | jg gksJ ‚| jdggks#J ‚| jdks+J ‚| jtks3J ‚t dtdƒ} | jdggksCJ ‚| jdggksMJ ‚| jdksUJ ‚| jtks]J ‚t dgdggtƒ} | jdgdggksrJ ‚| jdggks|J ‚| jdks„J ‚| jtksŒJ ‚t dgg g d¢dggtƒ} | jddgdggks¦J ‚| jdggks°J ‚| jdks¸J ‚| jtksÀJ ‚t dddœtdƒ} | jddgdggksÖJ ‚| jdggksàJ ‚| jdksèJ ‚| jtksðJ ‚t tdƒgtdƒggtdƒ gtdƒggftƒ} | jtdƒ gtdƒ ggksJ ‚| jtdƒgtdƒ ggks+J ‚| jdks3J ‚| jtks;J ‚t tddƒgtddƒggtddƒ gtddƒggftƒ} | jtdƒ gtdƒ ggksiJ ‚| jtdƒgtdƒ ggkszJ ‚| jdks‚J ‚| jtksŠJ ‚ttdd„ ƒ tt	dd„ ƒ d S )Nr   )r   r   r   r   r    r   r   rF   r@   éüÿÿÿéýÿÿÿr(   rœ   r   r;   rh   rš   r›   rr   c                   S   s   t dgdggftƒS ©Nr   ©r   r   r   r   r   r   r8   Ž  r   z"test_DMF__init__.<locals>.<lambda>c                   S   s   t dgg ftƒS r¦   r§   r   r   r   r   r8     s    )
r   r   ÚnumÚdenr   r   r   r   rŽ   ÚZeroDivisionErrorr   r   r   r   Útest_DMF__init__9  s|   $ 0$"8$"r«   c                   C   s6   t tg gtƒƒdu sJ ‚t tdggtƒƒdu sJ ‚d S r$   )r%   r   r   r   r   r   r   Útest_DMF__bool__’  s   r¬   c                   C   s€   t g gtƒjdu sJ ‚t g gtƒjdu sJ ‚t dggtƒjdu s"J ‚t dggtƒjdu s.J ‚t dggdggftƒjdu s>J ‚d S )NTFr   r   )r   r   r/   r0   r   r   r   r   Útest_DMF_properties—  s
   $r­   c                  C   sœ  t dgdggtƒ} t dgdggtƒ}|  ¡ |    kr |ks#J ‚ J ‚t dggdgg gftƒ} t dggddggftƒ}t dgddggddgg gftƒ}|  |¡| |   kr[|ks^J ‚ J ‚| | ¡||    krn|ksqJ ‚ J ‚t dgddggddgg gftƒ}|  |¡| |   kr‘|ks”J ‚ J ‚t dggddgg gftƒ}|  |¡| |   kr±|ks´J ‚ J ‚| | ¡||    krÄ|ksÇJ ‚ J ‚t ddggdgg gftƒ}|  |¡| |   krä|ksçJ ‚ J ‚t dggdgg g g gftƒ}|  d¡| d   kr|ks
J ‚ J ‚t dggg d	¢gftƒ}| d¡|d   kr(|ks+J ‚ J ‚t ddggdggftƒ}| d¡|d   krI|ksLJ ‚ J ‚d S )
Nrh   i÷ÿÿÿiùÿÿÿrg   r   r   rF   r   )r   r   r   r   )r   r   rL   rM   rN   rO   rV   r?   )r   rE   rY   r   r   r   Útest_DMF_arithmetics¡  s*   " && &&&&**.r®   c                     sŒ  t dƒt dƒg} t dƒt dƒt dƒg‰ t| ˆ t ƒ}| ¡ t dƒt dƒgks'J ‚| ¡ t dƒt dƒt dƒgks8J ‚|jt ks?J ‚t dƒt dƒdœ} t dƒt dƒdœ‰ t| ˆ t ƒ}| ¡ t dƒt dƒgkseJ ‚| ¡ t dƒt dƒt dƒgksvJ ‚|jt ks}J ‚tdˆ t ƒ}| ¡ t dƒgksŽJ ‚| ¡ t dƒt dƒt dƒgksŸJ ‚|jt ks¦J ‚tddgˆ t ƒ}tdd„ | ¡ D ƒƒs»J ‚tt‡ fdd	„ƒ d S )
Nr   r   )r   r   r)   g      à?c                 s   s    | ]}t  |¡V  qd S rB   )r   Úof_type)r   rd   r   r   r   Ú	<genexpr>ä  s   € z$test_ANP___init__.<locals>.<genexpr>c                      s   t tdƒgˆ tƒS )Nr   )r   r   r   r   ©Úmodr   r   r8   æ  s    z#test_ANP___init__.<locals>.<lambda>)r   r   Úto_listÚmod_to_listr   Úallr   r   )r!   r   r   r±   r   Útest_ANP___init__É  s&   """r¶   c                  C   sâ   t tdƒtdƒgtdƒtdƒtdƒgtƒ} t tdƒtdƒgtdƒtdƒtdƒgtƒ}| | kdu s2J ‚| | kdu s:J ‚| |kdu sBJ ‚| |kdu sJJ ‚t tdƒtdƒgtdƒtdƒtdƒgtƒ}| |kdu sgJ ‚| |kdu soJ ‚d S )Nr   r   r   TF)r   r   )rd   Úbr   r   r   Útest_ANP___eq__é  s   ***r¸   c                   C   s^   t tg tdƒtdƒtdƒgtƒƒdu sJ ‚t ttdƒgtdƒtdƒtdƒgtƒƒdu s-J ‚d S )Nr   r   FT)r%   r   r   r   r   r   r   Útest_ANP___bool__ù  s   *4r¹   c                  C   sŠ   t dƒt dƒt dƒg} tt dƒg| t ƒjdu sJ ‚tt dƒg| t ƒjdu s'J ‚tt dƒg| t ƒjdu s5J ‚tt dƒg| t ƒjdu sCJ ‚d S )Nr   r   TFr   )r   r   r/   r0   r±   r   r   r   Útest_ANP_propertiesþ  s
    rº   c                     s|  t dƒt dƒt dƒt dƒg} tt dƒt dƒt dƒg| t ƒ‰ tt dƒt dƒg| t ƒ}tt dƒt dƒt dƒg| t ƒ‰ˆ  ¡ ˆ    krFˆksIJ ‚ J ‚tt dƒt dƒt dƒg| t ƒ‰ˆ  |¡ˆ |   krhˆkskJ ‚ J ‚| ˆ ¡|ˆ    kr{ˆks~J ‚ J ‚tt dƒt dƒt dƒg| t ƒ‰ˆ  |¡ˆ |   krˆks J ‚ J ‚tt dƒt dƒt dƒg| t ƒ‰| ˆ ¡|ˆ    kr¿ˆksÂJ ‚ J ‚tt dƒt dƒt dƒg| t ƒ‰ˆ  |¡ˆ |   kráˆksäJ ‚ J ‚| ˆ ¡|ˆ    krôˆks÷J ‚ J ‚tt ddƒt d	dƒt d
dƒg| t ƒ‰ˆ  d¡ˆ d   krtd| t ƒks"J ‚ J ‚ˆ  d¡ˆ d   kr4ˆ ks7J ‚ J ‚ˆ  d¡ˆ d   krIˆksLJ ‚ J ‚ˆ  ˆ ¡ˆ  ˆ  d¡¡  krpˆ ˆ d    krptd| t ƒkssJ ‚ J ‚tg g d¢t ƒ‰ˆ  |¡}ˆ  	|¡\}}||  krœˆ  krœˆ | ksŸJ ‚ J ‚t
t‡ ‡fdd„ƒ t
t‡ ‡fdd„ƒ |ˆ | ks¼J ‚d S )Nr   r   r@   r   rF   r   r.   é+   rg   r;   )r   r   r   r@   c                      rA   rB   )rU   r   ©rd   Úcr   r   r8   4  r9   z&test_ANP_arithmetics.<locals>.<lambda>c                      rA   rB   )rW   r   r¼   r   r   r8   5  r9   )r   r   rL   rM   rN   rO   r?   rV   rW   rU   r   r
   )r²   r·   Úr1rZ   Úr2r   r¼   r   Útest_ANP_arithmetics  s6   "&&&&&&$2**N
0rÀ   c                  C   s  t dƒt dƒt dƒg} tdƒtdƒtdƒg}ttdƒg|tƒ}tt dƒg| t ƒ}| |¡d tks3J ‚| |¡d tks>J ‚| |¡d tksIJ ‚| |¡d t ksTJ ‚| |¡d tks_J ‚| |¡d tksjJ ‚| |¡d tksuJ ‚| |¡d t ks€J ‚d S )Nr   r   r@   rF   )r   r   r   ÚunifyÚ	unify_ANP)Úmod_zÚmod_qrd   r·   r   r   r   Útest_ANP_unify=  s   rÅ   N)-Ú__doc__Ú(sympy.functions.elementary.miscellaneousr   Úsympy.polys.domainsr   r   Úsympy.polys.polyclassesr   r   r   Úsympy.polys.polyerrorsr   r	   r
   Úsympy.polys.specialpolysr   Úsympy.testing.pytestr   r   Úf_0Úf_1Úf_2Úf_3rˆ   Úf_5Úf_6r   r"   r#   r&   r-   r5   r^   r•   r£   r«   r¬   r­   r®   r¶   r¸   r¹   rº   rÀ   rÅ   r   r   r   r   Ú<module>   s6    
fq
Y
( 
5