o
    oÇh-  ã                   @   sN  d 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 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mZmZmZmZ ddl m!Z! ddl"m#Z# edƒ\Z$Z%Z&Z'Z(Z)Z*Z+Z,Z-Z.eddd\Z/Z0dd„ Z1dd„ Z2dd„ Z3dd„ Z4dd„ Z5dd„ Z6dd „ Z7d!d"„ Z8d#d$„ Z9d%d&„ Z:d'd(„ Z;d)S )*z@Tests for useful utilities for higher level polynomial classes. é    )ÚMul)ÚIntegerÚpi)ÚEq)ÚS)ÚSymbolÚsymbols)Úexp)Úsqrt)ÚcosÚsin)ÚIntegral)Úraises)Ú_nsortÚ
_sort_gensÚ_unify_gensÚ_analyze_gensÚ_sort_factorsÚparallel_dict_from_exprÚdict_from_expr)ÚPolynomialError)ÚZZzx,y,z,p,q,r,s,t,u,v,wzA,BF)Úcommutativec                  C   s¼   t dƒ} | d | d | d | d g}t| ƒ|ksJ ‚tt| ddd ƒdks(J ‚tdƒtd	ƒtd
ƒ}}}t|||fƒ|||gksDJ ‚tdƒd tdƒd  d }t|gƒ|gks\J ‚d S )NaP  [3/2 + sqrt(-14/3 - 2*(-415/216 + 13*I/12)**(1/3) - 4/sqrt(-7/3 +
    61/(18*(-415/216 + 13*I/12)**(1/3)) + 2*(-415/216 + 13*I/12)**(1/3)) -
    61/(18*(-415/216 + 13*I/12)**(1/3)))/2 - sqrt(-7/3 + 61/(18*(-415/216
    + 13*I/12)**(1/3)) + 2*(-415/216 + 13*I/12)**(1/3))/2, 3/2 - sqrt(-7/3
    + 61/(18*(-415/216 + 13*I/12)**(1/3)) + 2*(-415/216 +
    13*I/12)**(1/3))/2 - sqrt(-14/3 - 2*(-415/216 + 13*I/12)**(1/3) -
    4/sqrt(-7/3 + 61/(18*(-415/216 + 13*I/12)**(1/3)) + 2*(-415/216 +
    13*I/12)**(1/3)) - 61/(18*(-415/216 + 13*I/12)**(1/3)))/2, 3/2 +
    sqrt(-14/3 - 2*(-415/216 + 13*I/12)**(1/3) + 4/sqrt(-7/3 +
    61/(18*(-415/216 + 13*I/12)**(1/3)) + 2*(-415/216 + 13*I/12)**(1/3)) -
    61/(18*(-415/216 + 13*I/12)**(1/3)))/2 + sqrt(-7/3 + 61/(18*(-415/216
    + 13*I/12)**(1/3)) + 2*(-415/216 + 13*I/12)**(1/3))/2, 3/2 + sqrt(-7/3
    + 61/(18*(-415/216 + 13*I/12)**(1/3)) + 2*(-415/216 +
    13*I/12)**(1/3))/2 - sqrt(-14/3 - 2*(-415/216 + 13*I/12)**(1/3) +
    4/sqrt(-7/3 + 61/(18*(-415/216 + 13*I/12)**(1/3)) + 2*(-415/216 +
    13*I/12)**(1/3)) - 61/(18*(-415/216 + 13*I/12)**(1/3)))/2]é   r   éÿÿÿÿéþÿÿÿT)Ú	separatediüÿÿiüÿÿiüÿÿé   )r   r   Úlenr	   r   r   )ÚrÚansÚbÚcÚa© r$   út/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/polys/tests/test_polyutils.pyÚtest__nsort    s   r&   c                  C   sÐ  t g ƒdksJ ‚t tgƒtfksJ ‚t tgƒtfksJ ‚t tgƒtfks&J ‚t ttgƒttfks2J ‚t ttgƒttfks>J ‚t ttgƒttfksJJ ‚t tttgƒtttfksXJ ‚t tttgtdtttfkshJ ‚t tttgtdtttfksxJ ‚t tttgtdtttfksˆJ ‚t tttgddtttfks˜J ‚t tttgddtttfks¨J ‚t tttgddtttfks¸J ‚t tttgddtttfksÈJ ‚t tttgddtttfksØJ ‚t tttgddtttfksèJ ‚t tttgd	dtttfksøJ ‚t tttgd
dtttfks	J ‚t tttgddtttfksJ ‚t tttgddtttfks+J ‚t tttgddtttfks<J ‚t tttgtdgdtttfksOJ ‚t tttgtdgdtttfksbJ ‚t tttgtdgdtttfksuJ ‚t tttgtdgdtttfksˆJ ‚t tttgddgdtttfks›J ‚t tttgddgdtttfks®J ‚t tttgddgdtttfksÁJ ‚t tttgddgdtttfksÔJ ‚t tttgddtttfksåJ ‚t tttgddtttfksöJ ‚t tttgddtttfksJ ‚t tttgdddtttfksJ ‚t tttgdddtttfks+J ‚t tttgdddtttfks=J ‚tdƒ} t | gƒ| fksLJ ‚t t| gƒt| fksYJ ‚tdƒ}t |ƒ|ksfJ ‚d S )Nr$   )ÚwrtÚxÚpÚqzx,qzq,xzp,qzq,pzx, qzq, xzp, qzq, pz	x > p > q)Úsortz	p > x > qz	p > q > xzq > p)r'   r+   zq > xzp > xz
1z x0,x1,x2,x10,x11,x12,x20,x21,x22)r   r(   r)   r*   r   r   )Ún1ÚXr$   r$   r%   Útest__sort_gens<   sR             """"&&&&&&&&"""$$$r.   c                   C   sä  t g g ƒdks	J ‚t tgtgƒtfksJ ‚t tgtgƒtfks!J ‚t ttgtgƒttfks/J ‚t tgttgƒttfks=J ‚t ttgttgƒttfksLJ ‚t ttgttgƒttfks[J ‚t tgtgƒttfkshJ ‚t tgtgƒttfksuJ ‚t tgttgƒttfksƒJ ‚t ttgtgƒttfks‘J ‚t tttgtttgƒtttfks£J ‚t tttgtttgƒtttfksµJ ‚t tttgtttgƒtttfksÇJ ‚t tttgtttgƒtttfksÙJ ‚t tttgtttttgƒttttttfksðJ ‚d S )Nr$   )r   r(   ÚyÚzÚtr)   r*   r$   r$   r$   r%   Útest__unify_gensw   s    $$$$2r2   c                   C   sx   t tttfƒtttfksJ ‚t tttgƒtttfksJ ‚t tttgfƒtttfks+J ‚t tttffƒtttfks:J ‚d S ©N)r   r(   r/   r0   r$   r$   r$   r%   Útest__analyze_gens‘   s   "r4   c                  C   sˆ  t g ddg ks
J ‚t g ddg ksJ ‚g d¢ddgdgg} dgddgg d¢g}t | dd|ks2J ‚ddgg d¢ddgdgg} dgddgddgg d¢g}t | dd|ksVJ ‚ddgg d¢ddgdgg} dgddgddgg d¢g}t | dd|kszJ ‚g d¢dfddgdfdgdfg} dgdfddgdfg d¢dfg}t | dd|ks¤J ‚ddgdfg d¢dfddgdfdgdfg} dgdfddgdfddgdfg d¢dfg}t | dd|ksØJ ‚ddgdfg d¢dfddgdfdgdfg} dgdfddgdfddgdfg d¢dfg}t | dd|ksJ ‚ddgdfg d¢dfddgdfdgdfg} dgdfddgdfddgdfg d¢dfg}t | dd|ksBJ ‚d S )NT)ÚmultipleF)r   r   é   r   r   )r   )ÚFÚGr$   r$   r%   Útest__sort_factors™   s.     ******r9   c                   C   s  t tdƒtfddtdƒitffksJ ‚t tdƒttfddtdƒittffks*J ‚t tdƒtttfddtdƒitttffksBJ ‚t tdƒtfddtdƒitffksVJ ‚t tdƒttfddtdƒittffkslJ ‚t tdƒtttfddtdƒitttffks„J ‚t tdƒt tfddtdƒitffksšJ ‚t tdƒt ttfddtdƒittffks²J ‚t tdƒt tttfdd	tdƒitttffksÌJ ‚t tdƒtd
  tfddtdƒitffksäJ ‚t tdƒtd
  t ttfddtdƒittffksJ ‚t tdƒtd
  t td  tttfddtdƒitttffks$J ‚t tdt  dt  tfdtdƒdt dt  dœtffksFJ ‚t tdt  dt  ttfdtdƒtdƒdt dœttffksiJ ‚t tdt  dt  tttfdtdƒtdƒtdƒdœtttffksŽJ ‚t tt dt t  dt t  tfdtdt  dt t dœtffks¶J ‚t tt dt t  dt t  ttfdtdƒdt dt dœttffksßJ ‚t tt dt t  dt t  tttfdtdƒtdƒtdƒdœtttffks
J ‚t dt t tfdddt itffks!J ‚t tttddfƒt ƒdddœttttddfƒffks?J ‚ttdd„ ƒ d S )Né   ©Úgens©r   ©r   r   ©r   r   r   iïÿÿÿ©r   ©r   r   ©r   r   r   é   )rC   )rC   r   é   )rC   r   rD   r   r6   r   ©r@   r=   )rA   ©r   r   r>   )rB   )r   r   r   ©r   r   r   )©r   r   rA   rF   )©r   r   r   )r   r   r   )r   r   r   )rF   rA   c                   S   s   t dt t ttfdS )Nr   r;   )r   r/   r(   r$   r$   r$   r%   Ú<lambda>ñ   s    z.test__dict_from_expr_if_gens.<locals>.<lambda>)r   r   r(   r/   r0   r   r   r   r$   r$   r$   r%   Útest__dict_from_expr_if_gensÁ   sÊ   
ÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿ
ÿ
ÿ
ÿ ÿÿÿ
ÿ(
ÿ*
ÿ,ÿÿÿ
ÿ.ÿrK   c                  C   st  t tdƒƒdtdƒidfksJ ‚t tƒdtdƒitffksJ ‚t tƒdtdƒitffks.J ‚t tt ƒdtdƒittffks@J ‚t tt ƒtdƒtdƒdœttffksUJ ‚t tdƒƒdtdƒitdƒffkshJ ‚t tdƒdd	dtdƒidfkszJ ‚t tt tt d
dtitffksJ ‚t tt tt d
dtitffks J ‚t dtdƒ t t t d dddittttdƒffks¾J ‚t dtdƒ t t t ddddtdƒ itttffksÝJ ‚t dtdƒ t t t ddddtdƒ itttffksüJ ‚ttƒttƒ ttƒttƒ  ttƒttƒ  ttƒttƒ  } t | ƒdddddœttƒttƒttƒttƒffks8J ‚d S )Nr:   r$   r@   r   rH   )rA   rF   r   F)Úgreedy)Údomainr6   )Ú	extension)r   r   r   r   T)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   )Úfr$   r$   r%   Útest__dict_from_expr_no_gensô   st    $ÿÿ&$&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@
ÿÿrP   c                   C   sZ   t tdt  dt  tdƒgtfdtdƒdt dt  dœdtdƒigtffks+J ‚d S )Nr   r6   rC   r;   r   rE   r=   )r   r(   r/   r0   r   r$   r$   r$   r%   Ú%test__parallel_dict_from_expr_if_gens  s   $*ÿrQ   c                   C   s²   t tt tdƒgƒdtdƒidtdƒigttffksJ ‚t tt dt tdƒgƒdtdƒidtdƒidtdƒigtttffksAJ ‚t tttd d	d
fƒddigtffksWJ ‚d S )Nr6   rH   r   r>   r   rI   rG   r?   F)Úevaluate)r6   )r   r(   r/   r   r0   r   r$   r$   r$   r%   Ú%test__parallel_dict_from_expr_no_gens  s   ÿÿÿÿÿÿrS   c                   C   s`   t ttdƒttd dƒgƒtdƒ tdƒdœtdƒ tdƒdœgtffks'J ‚ttdd„ ƒ d S )Nr   r   ©r=   r@   )r=   )r   c                   S   s   t tt tt  gƒS r3   )r   ÚAÚBr$   r$   r$   r%   rJ   %  s    z.test_parallel_dict_from_expr.<locals>.<lambda>)r   r   r(   r   r   r   r$   r$   r$   r%   Útest_parallel_dict_from_expr!  s   ÿÿÿÿrW   c                   C   sL   t ttdƒƒtdƒ tdƒdœtffksJ ‚ttdd„ ƒ ttdd„ ƒ d S )Nr   rT   c                   S   s   t tt tt  ƒS r3   )r   rU   rV   r$   r$   r$   r%   rJ   +  s    z%test_dict_from_expr.<locals>.<lambda>c                   S   s
   t tjƒS r3   )r   r   Útruer$   r$   r$   r%   rJ   ,  s   
 )r   r   r(   r   r   r   r$   r$   r$   r%   Útest_dict_from_expr(  s
   ÿrY   N)<Ú__doc__Úsympy.core.mulr   Úsympy.core.numbersr   r   Úsympy.core.relationalr   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Ú&sympy.functions.elementary.exponentialr	   Ú(sympy.functions.elementary.miscellaneousr
   Ú(sympy.functions.elementary.trigonometricr   r   Úsympy.integrals.integralsr   Úsympy.testing.pytestr   Úsympy.polys.polyutilsr   r   r   r   r   r   r   Úsympy.polys.polyerrorsr   Úsympy.polys.domainsr   r(   r/   r0   r)   r*   r   Úsr1   ÚuÚvÚwrU   rV   r&   r.   r2   r4   r9   rK   rP   rQ   rS   rW   rY   r$   r$   r$   r%   Ú<module>   s6    $
;(3
