a
    kº”h­9  ã                   @   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,d0d1„ Z-d2S )3z: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 © )Zto_dense)Ú.0Úfr   r   úP/var/www/auris/lib/python3.9/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sHJ ‚| jtksVJ ‚| jdksdJ ‚t tdƒtdƒgtdƒggtdƒ} | jddgdggksžJ ‚| jtks¬J ‚| jdksºJ ‚t  tdƒtdƒdœdt¡} | jddgdggksîJ ‚| jtksüJ ‚| jdksJ ‚d S )Nr   é   é   é   ©)r   r   ©r   r   )r   r   Z_repÚdomÚlevÚ	from_dict©r   r   r   r   Útest_DMP___init__   s    0"r   c                  C   sJ   t g d¢tƒ} tƒ " | jg d¢ks(J ‚W d   ƒ n1 s<0    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sDJ ‚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sÌJ ‚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s"J ‚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 s6J ‚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shJ ‚d S )Nr   r   é   ))é   r   ©r   r   r   )r   r   Úto_dictZto_sympy_dictZ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 s2J ‚t tdƒggtƒjdu sNJ ‚t tdƒggtƒjdu sjJ ‚t tdƒggtƒjdu s†J ‚t tdƒgtdƒgtdƒggtƒjdu s²J ‚t tdƒgtdƒtdƒgtdƒtdƒggtƒjdu sêJ ‚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 sVJ ‚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_oneZ	is_groundZis_sqfZis_monicÚis_primitiver   r   r   r   Útest_DMP_propertiesD   s    ,8@,,,r.   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sNJ ‚ˆ  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sÂJ ‚tˆ ƒˆksÒJ ‚ˆ ¡ ˆ ksâJ ‚ˆ ˆ ksðJ ‚t g gtƒ} ˆ  ˆ¡| ksJ ‚ˆ ˆ | ks"J ‚ˆˆ  | ks4J ‚ˆ d | ksFJ ‚dˆ  | ksXJ ‚t td	ƒ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s8J ‚t tdƒggtƒ} ˆ  ¡ | ks\J ‚ˆ  d¡| kspJ ‚ˆ d | 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s2J ‚ˆ  ˆ¡|ksFJ ‚ˆ  ˆ¡|ksZJ ‚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s4J ‚tˆ ˆƒ||fksLJ ‚ˆ ˆ |ks^J ‚ˆ ˆ |kspJ ‚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süJ ‚ˆ  ˆ¡|ksJ ‚ˆ  ˆ¡|ks$J ‚tˆ ˆƒ||fks<J ‚ˆ ˆ |ksNJ ‚ˆ ˆ |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                      s
   ˆ   d¡S )Nr   )Zexquo_groundr   r   r   r   Ú<lambda>^   r   z&test_DMP_arithmetics.<locals>.<lambda>éûÿÿÿé   éöÿÿÿiçÿÿÿé   c                      s
   ˆ   d¡S )NÚx)Úpowr   r   r   r   r/   ‡   r   éþÿÿÿr%   c                      s
   ˆ   ˆ¡S ©N)Úpexquor   ©r   Úgr   r   r/   “   r   éÿÿÿÿc                      s
   ˆ   ˆ¡S r7   ©Zexquor   r9   r   r   r/   £   r   c                      s
   ˆ   ˆ¡S r7   r<   r   r9   r   r   r/   ¶   r   )r   r   Z
mul_groundZ
quo_groundr   r	   ÚabsÚnegÚaddÚsubÚmulZsqrr5   Ú	TypeErrorZpdivZpquoZpremÚdivÚquoÚremÚdivmodr8   )ÚhÚqÚrZpqÚprr   r9   r   Útest_DMP_arithmeticsX   sŠ     ..(  (  

rK   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svJ ‚ˆ  ¡ dks†J ‚ˆ  ¡ dks–J ‚ˆ  ¡ tdƒksªJ ‚ˆ  ¡ tdƒks¾J ‚ˆ  dd¡tdƒksÖJ ‚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sBJ ‚ˆ jddd|ksZJ ‚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s4J ‚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s J ‚dˆ   ¡ tdƒˆ fks¾J ‚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sDn J ‚ˆ j| ddtdƒtdƒt tdƒtdƒgtƒt tdƒtdƒgtƒfksJ ‚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sHJ ‚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sÜJ ‚ˆ  | ¡|ksðJ ‚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s J ‚ˆ  #¡ | |g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„ƒ d S )&Nr   r   r   )r   r   c                      s   ˆ   dd¡S )Nr   r4   )Únthr   r   r   r   r/   Ë   r   z(test_DMP_functionality.<locals>.<lambda>r&   ©ÚmÚjc                      s   ˆ j dddS )Nr4   r   rM   )Údiffr   r   r   r   r/   Õ   r   )ÚarO   é-   é   r1   r   é	   é   T)Úincludeé   Fr*   r;   i£  éá   r3   ióÿÿÿipÒÿÿiðÿÿÿé    é   c                      s
   ˆ   ˆ ¡S r7   )Ú
half_gcdexr   r   r   r   r/     r   c                      s
   ˆ   ˆ ¡S r7   )Úgcdexr   r   r   r   r/     r   c                      s
   ˆ   ˆ ¡S r7   )Úinvertr   r   r   r   r/      r   )r   r   é   r   é–   r   iô  r   iq  r6   r   r2   rT   r6   c                      s   ˆ   ¡ S r7   )Ú	decomposer   r   r   r   r/   +  r   c                      s   ˆ   ¡ S r7   )Zsturmr   r   r   r   r/   ,  r   )$r   r   ZdegreeZdegree_listZtotal_degreeZLCZTCrL   r   rB   Zmax_normZl1_normrP   ÚevalZ	cofactorsÚgcdÚlcmr   ZmonicÚcontentÚ	primitiveÚcancelÚtruncÚf_4Zsqf_partZsqf_listZsubresultantsZ	resultantZdiscriminantr[   r\   r]   Ú
ValueErrorÚmapZcomposer`   )r:   rG   ÚuÚvrI   ÚsÚtr   r   r   Útest_DMP_functionality¾   s”    4  "þü:>
""""(""ro   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stJ ‚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&   r1   r*   rU   r%   rT   é
   é   é   é   é   é   rZ   é   é   é   r^   rW   é   é   r3   r   )r   r   Úexclude)r   ÚJr   r   r   Útest_DMP_exclude/  s    @,""ÿr}   c                  C   sJ  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sPJ ‚| jdks^J ‚| jtkslJ ‚t ddgdggg d¢gftdƒ} | 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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s2J ‚| jtksBJ ‚t dgdggd
gdggftƒ} | jdgdggksxJ ‚| jdgd	ggksJ ‚| 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sHJ ‚| jdggks\J ‚| jdkslJ ‚| jtks|J ‚t dtdƒ} | j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gdggtƒ} | j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gg g d¢dggtƒ} | jddgdggksbJ ‚| jdggksvJ ‚| 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sJJ ‚| jtdƒgtdƒ ggkslJ ‚| jdks|J ‚| 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sèJ ‚| jtdƒgtdƒ ggks
J ‚| 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   r;   r6   éüÿÿÿéýÿÿÿr&   rv   r   r1   rU   rt   ru   r^   c                   S   s   t dgdggftƒS ©Nr   ©r   r   r   r   r   r   r/   Ž  r   z"test_DMF__init__.<locals>.<lambda>c                   S   s   t dgg ftƒS r€   r   r   r   r   r   r/     r   )
r   r   ÚnumZdenr   r   r   r   ri   Ú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 s2J ‚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 sDJ ‚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+   r,   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sDn 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¸n J ‚| | ¡||    krÖ|ksÜn J ‚t dgddggddgg gftƒ}|  |¡| |   kr|ks$n J ‚t dggddgg gftƒ}|  |¡| |   kr`|ksfn J ‚| | ¡||    krˆ|ksŽn J ‚t ddggdgg gftƒ}|  |¡| |   krÊ|ksÐn J ‚t dggdgg g g gftƒ}|  d¡| d   kr|ksn J ‚t dggg d	¢gftƒ}| d¡|d   krN|ksTn J ‚t ddggdggftƒ}| d¡|d   krŽ|ks”n J ‚d S )
NrU   i÷ÿÿÿiùÿÿÿrT   r   r   r;   r   )r   r   r   r   )r   r   r>   r?   r@   rA   rD   r5   )r   r:   rG   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sNJ ‚| ¡ t dƒt dƒt dƒgkspJ ‚|jt ks~J ‚t dƒt dƒdœ} t dƒt dƒdœ‰ t| ˆ t ƒ}| ¡ t dƒt dƒgksÊJ ‚| ¡ t dƒt dƒt dƒgksìJ ‚|jt ksúJ ‚tdˆ t ƒ}| ¡ t dƒgksJ ‚| ¡ t dƒt dƒt dƒgksBJ ‚|jt ksRJ ‚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 r7   )r   Zof_type)r   rQ   r   r   r   Ú	<genexpr>ä  r   z$test_ANP___init__.<locals>.<genexpr>c                      s   t tdƒgˆ tƒS )Nr   )r   r   r   r   ©Úmodr   r   r/   æ  r   z#test_ANP___init__.<locals>.<lambda>)r   r   Zto_listZ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 sdJ ‚| | kdu stJ ‚| |kdu s„J ‚| |kdu s”J ‚t tdƒtdƒgtdƒtdƒtdƒgtƒ}| |kdu sÎJ ‚| |kdu sÞJ ‚d S )Nr   r   r   TF)r   r   )rQ   Ú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 sZJ ‚d S )Nr   r   FT)r#   r   r   r   r   r   r   Útest_ANP___bool__ù  s    *r   c                  C   sŠ   t dƒt dƒt dƒg} tt dƒg| t ƒjdu s2J ‚tt dƒg| t ƒjdu sNJ ‚tt dƒg| t ƒjdu sjJ ‚tt dƒg| t ƒjdu s†J ‚d S )Nr   r   TFr   )r   r   r+   r,   r‰   r   r   r   Útest_ANP_propertiesþ  s
    r   c                     st  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rŠˆksn J ‚tt dƒt dƒt dƒg| t ƒ‰ˆ  |¡ˆ |   krÌˆksÒn J ‚| ˆ ¡|ˆ    krðˆksön J ‚tt dƒt dƒt dƒg| t ƒ‰ˆ  |¡ˆ |   kr6ˆks<n J ‚tt dƒt dƒt dƒg| t ƒ‰| ˆ ¡|ˆ    kr|ˆks‚n J ‚tt dƒt dƒt dƒg| t ƒ‰ˆ  |¡ˆ |   krÂˆksÈn J ‚| ˆ ¡|ˆ    krêˆksðn J ‚tt ddƒt d	dƒt d
dƒg| t ƒ‰ˆ  d¡ˆ d   kr>td| t ƒksDn J ‚ˆ  d¡ˆ d   krfˆ ksln J ‚ˆ  d¡ˆ d   krŽˆks”n J ‚ˆ  ˆ ¡ˆ  ˆ  d¡¡  krÚˆ ˆ d    krÚtd| t ƒksàn J ‚tg g d¢t ƒ‰ˆ  |¡}ˆ  	|¡\}}||  kr0ˆ  kr0ˆ | ks6n J ‚t
t‡ ‡fdd„ƒ t
t‡ ‡fdd„ƒ |ˆ | kspJ ‚d S )Nr   r   r6   r   r;   r   r*   é+   rT   r1   )r   r   r   r6   c                      s
   ˆ   ˆ¡S r7   )rC   r   ©rQ   Úcr   r   r/   4  r   z&test_ANP_arithmetics.<locals>.<lambda>c                      s
   ˆ   ˆ¡S r7   )rE   r   r’   r   r   r/   5  r   )r   r   r>   r?   r@   rA   r5   rD   rE   rC   r   r
   )rŠ   r   Zr1rH   Zr2r   r’   r   Útest_ANP_arithmetics  s6     $$(((($0((L
.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sfJ ‚| |¡d tks|J ‚| |¡d tks’J ‚| |¡d t ks¨J ‚| |¡d tks¾J ‚| |¡d tksÔJ ‚| |¡d tksêJ ‚| |¡d t ksJ ‚d S )Nr   r   r6   r;   )r   r   r   ZunifyZ	unify_ANP)Zmod_zZmod_qrQ   r   r   r   r   Útest_ANP_unify=  s    r•   c                  C   s\   ddl m}  | dƒ}t |¡}|dƒ}| ¡ \}}|dks>J ‚||ksJJ ‚|jdu sXJ ‚d S )Nr   )ÚSymbolr4   F)Zsympyr–   r   Zold_poly_ringre   r-   )r–   r4   ZR_oldZzero_poly_oldZcont_oldZprim_oldr   r   r   Útest_zero_polyO  s    
r—   N).Ú__doc__Z(sympy.functions.elementary.miscellaneousr   Zsympy.polys.domainsr   r   Zsympy.polys.polyclassesr   r   r   Zsympy.polys.polyerrorsr   r	   r
   Zsympy.polys.specialpolysr   Zsympy.testing.pytestr   r   Zf_0Zf_1Zf_2Zf_3rh   Zf_5Zf_6r   r    r!   r$   r)   r.   rK   ro   r}   r„   r…   r†   r‡   rŒ   rŽ   r   r   r”   r•   r—   r   r   r   r   Ú<module>   s6   
fq
Y
( 
5