U
    ZÊ¹j-  ã                   @   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)Zcommutativec                  C   s¼   t dƒ} | d | d | d | d g}t| ƒ|ks4t‚tt| dd�d ƒdksPt‚tdƒtd	ƒtd
ƒ  }}}t|||fƒ|||gksˆt‚tdƒd tdƒd  d }t|gƒ|gks¸t‚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   ÚAssertionErrorÚlenr	   r   r   )ÚrZansÚbÚcÚa© r#   ú_/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/polys/tests/test_polyutils.pyÚtest__nsort    s    r%   c                  C   sà  t g ƒdkst‚t tgƒtfks$t‚t tgƒtfks8t‚t tgƒtfksLt‚t ttgƒttfksdt‚t ttgƒttfks|t‚t ttgƒttfks”t‚t tttgƒtttfks°t‚t tttgtd�tttfksÐt‚t tttgtd�tttfksðt‚t tttgtd�tttfk�st‚t tttgdd�tttfk�s4t‚t tttgdd�tttfk�sVt‚t tttgdd�tttfk�sxt‚t tttgdd�tttfk�sšt‚t tttgdd�tttfk�s¼t‚t tttgdd�tttfk�sÞt‚t tttgd	d�tttfk�s t‚t tttgd
d�tttfk�s"t‚t tttgdd�tttfk�sDt‚t tttgdd�tttfk�sft‚t tttgdd�tttfk�sˆt‚t tttgtdgd�tttfk�s®t‚t tttgtdgd�tttfk�sÔt‚t tttgtdgd�tttfk�sút‚t tttgtdgd�tttfk�s t‚t tttgddgd�tttfk�sFt‚t tttgddgd�tttfk�slt‚t tttgddgd�tttfk�s’t‚t tttgddgd�tttfk�s¸t‚t tttgdd�tttfk�sÚt‚t tttgdd�tttfk�süt‚t tttgdd�tttfk�st‚t tttgddd�tttfk�sBt‚t tttgddd�tttfk�sft‚t tttgddd�tttfk�sŠt‚tdƒ} t | gƒ| fk�s¨t‚t t| gƒt| fk�sÂt‚tdƒ}t |ƒ|k�sÜt‚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   r   )Zn1ÚXr#   r#   r$   Útest__sort_gens<   sR      """"""""""""&&&&&&&&"""$$$r,   c                   C   sò  t g g ƒdkst‚t tgtgƒtfks*t‚t tgtgƒtfksBt‚t ttgtgƒttfks^t‚t tgttgƒttfkszt‚t ttgttgƒttfks˜t‚t ttgttgƒttfks¶t‚t tgtgƒttfksÐt‚t tgtgƒttfksêt‚t tgttgƒttfk�st‚t ttgtgƒttfk�s&t‚t tttgtttgƒtttfk�sLt‚t tttgtttgƒtttfk�srt‚t tttgtttgƒtttfk�s˜t‚t tttgtttgƒtttfk�s¾t‚t tttgtttttgƒttttttfk�sît‚d S )Nr#   )r   r   r'   ÚyÚzÚtr(   r)   r#   r#   r#   r$   Útest__unify_gensw   s     &&&&r0   c                   C   sx   t tttfƒtttfkst‚t tttgƒtttfks8t‚t tttgfƒtttfksVt‚t tttffƒtttfkstt‚d S ©N)r   r'   r-   r.   r   r#   r#   r#   r$   Útest__analyze_gens‘   s    r2   c                  C   sª  t g dd�g kst‚t g dd�g ks(t‚dddgddgdgg} dgddgdddgg}t | dd�|ksht‚ddgdddgddgdgg} dgddgddgdddgg}t | dd�|ks´t‚ddgdddgddgdgg} dgddgddgdddgg}t | dd�|k�st‚dddgdfddgdfdgdfg} dgdfddgdfdddgdfg}t | dd�|k�s\t‚ddgdfdddg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dddgdfg}t | dd�|k�sÊt‚ddgdfdddg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dddgdfg}t | dd�|k�s8t‚ddgdfdddg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dddgdfg}t | dd�|k�s¦t‚d S )NT)ZmultipleFr   r   é   )r   r   )ÚFÚGr#   r#   r$   Útest__sort_factors™   s.    "",,,,,,r6   c                   C   sš  t tdƒtfd�dtdƒitffks(t‚t tdƒttfd�dtdƒittffksTt‚t tdƒtttfd�dtdƒitttffks„t‚t tdƒtfd�dtdƒitffks¬t‚t tdƒttfd�dtdƒittffksØt‚t tdƒtttfd�dtdƒitttffk�s
t‚t tdƒt tfd�dtdƒitffk�s8t‚t tdƒt ttfd�dtdƒittffk�sjt‚t tdƒt tttfd�d	tdƒitttffk�s t‚t tdƒtd
  tfd�dtdƒitffk�sÒt‚t tdƒtd
  t ttfd�dtdƒittffk�st‚t tdƒtd
  t td  tttfd�dtdƒitttffk�sRt‚t tdt  dt  tfd�tdƒdt dt  dœtffk�s–t‚t tdt  dt  ttfd�tdƒtdƒdt dœttffk�sÜt‚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&t‚t tt dt t  dt t  tfd�tdt  dt t dœtffk�svt‚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Èt‚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t‚t dt t tfd�ddt itffk�sLt‚t tttddfƒt ƒdddœttttddfƒffk�sˆt‚ttdd„ ƒ d S )Né   ©Zgens©r   ©r   r   ©r   r   r   iïÿÿÿ©r   ©r   r   ©r   r   r   é   )r?   )r?   r   é   )r?   r   r@   r   r3   r   ©r<   r9   )r=   ©r   r   r:   )r>   )r   r   r   ©r   r   r   )©r   r   r=   rB   )©r   r   r   )r   r   r   )r   r   r   )rB   r=   c                   S   s   t dt t ttfd�S )Nr   r8   )r   r-   r'   r#   r#   r#   r$   Ú<lambda>ñ   ó    z.test__dict_from_expr_if_gens.<locals>.<lambda>)	r   r   r'   r   r-   r.   r   r   r   r#   r#   r#   r$   Útest__dict_from_expr_if_gensÁ   sæ     ÿÿ ÿÿ ÿÿ ÿÿ ÿÿÿÿÿ

 ÿÿ

 ÿÿ
ÿÿÿÿ
 ÿÿ
 ÿÿ
  ÿÿ
ÿ
ÿ
 ÿ ÿÿÿ
(ÿ
*ÿ
,ÿ ÿÿÿ
. ÿrH   c                  C   s~  t tdƒƒdtdƒidfks t‚t tƒdtdƒitffks>t‚t tƒdtdƒitffks\t‚t tt ƒdtdƒittffks€t‚t tt ƒtdƒtdƒdœttffksªt‚t tdƒƒdtdƒitdƒffksÐt‚t tdƒdd	�dtdƒidfksôt‚t tt tt d
�dtitffk�st‚t tt tt d
�dtitffk�sDt‚t dtdƒ t t t d d�ddittttdƒffk�s‚t‚t dtdƒ t t t dd�ddtdƒ itttffk�sÂt‚t dtdƒ t t t dd�ddtdƒ itttffk�st‚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�szt‚d S )Nr7   r#   r<   r   rD   )r=   rB   r   F)Zgreedy)Údomainr3   )Ú	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   r   )Úfr#   r#   r$   Útest__dict_from_expr_no_gensô   sv     $ÿÿ&$((ÿÿÿÿÿÿ
ÿÿÿÿÿÿ
ÿÿÿÿÿÿ
@
 ÿÿrL   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sVt‚d S )Nr   r3   r?   r8   r   rA   r9   )r   r'   r-   r.   r   r   r#   r#   r#   r$   Ú%test__parallel_dict_from_expr_if_gens  s    $*ÿrM   c                   C   s²   t tt tdƒgƒdtdƒidtdƒigttffks8t‚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s‚t‚t tttd d	d
�fƒddigtffks®t‚d S )Nr3   rD   r   r:   r   rE   rC   r;   F)Úevaluate)r3   )r   r'   r-   r   r   r.   r   r#   r#   r#   r$   Ú%test__parallel_dict_from_expr_no_gens  s     ÿÿ
 
ÿÿÿÿrO   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sNt‚ttdd„ ƒ d S )Nr   r   ©r9   r<   )r9   )r   c                   S   s   t tt tt  gƒS r1   )r   ÚAÚBr#   r#   r#   r$   rF   %  rG   z.test_parallel_dict_from_expr.<locals>.<lambda>)r   r   r'   r   r   r   r   r#   r#   r#   r$   Útest_parallel_dict_from_expr!  s     ÿÿÿÿrS   c                   C   sL   t ttdƒƒtdƒ tdƒdœtffks,t‚ttdd„ ƒ ttdd„ ƒ d S )Nr   rP   c                   S   s   t tt tt  ƒS r1   )r   rQ   rR   r#   r#   r#   r$   rF   +  rG   z%test_dict_from_expr.<locals>.<lambda>c                   S   s
   t tjƒS r1   )r   r   Útruer#   r#   r#   r$   rF   ,  rG   )r   r   r'   r   r   r   r   r#   r#   r#   r$   Útest_dict_from_expr(  s
    ÿrU   N)<Ú__doc__Zsympy.core.mulr   Zsympy.core.numbersr   r   Zsympy.core.relationalr   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z&sympy.functions.elementary.exponentialr	   Z(sympy.functions.elementary.miscellaneousr
   Z(sympy.functions.elementary.trigonometricr   r   Zsympy.integrals.integralsr   Zsympy.testing.pytestr   Zsympy.polys.polyutilsr   r   r   r   r   r   r   Zsympy.polys.polyerrorsr   Zsympy.polys.domainsr   r'   r-   r.   r(   r)   r   Úsr/   ÚuÚvÚwrQ   rR   r%   r,   r0   r2   r6   rH   rL   rM   rO   rS   rU   r#   r#   r#   r$   Ú<module>   s4   $
;(3
