U
    	Ç-e-  ã                   @   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#   úa/var/www/html/Darija-Ai-Train/env/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
