
    sg0                        d Z ddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ ddl%m&Z&m'Z' ddl(m)Z)m*Z* ddl+m,Z, ddl-m.Z. dd	l/m0Z0 dd
l1m2Z2m3Z3m4Z4 d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAd ZBd ZCd ZDd ZEd ZFd ZGd ZHd ZId  ZJd! ZKd" ZLd# ZMd$ ZNd% ZOd& ZPd' ZQd( ZRd) ZSd* ZTd+ ZUd, ZVd- ZWd. ZXd/ ZYd0 ZZd1 Z[d2 Z\d3 Z]d4 Z^d5 Z_d6 Z`d7 Zad8 Zby9):zFTests for options manager for :class:`Poly` and public API functions.     )OptionsExpandGensWrtSortOrderFieldGreedyDomainSplitGaussian	ExtensionModulus	SymmetricStrictAutoFracFormalPolysIncludeAllGenSymbolsMethod)lex)FFGFZZQQQQ_IRRCCEX)OptionErrorGeneratorsError)IInteger)Symbol)sqrt)raisesxyzc                     t        t        t        t        fddi      } | j                  t        t        t        fk(  sJ | j
                  t        k(  sJ d| v du sJ | j                  t        t        fdd      }| j                  t        t        t        fk(  sJ | j
                  t        k(  sJ d| v du sJ |j                  t        t        fk(  sJ |j
                  t        k(  sJ d|v du sJ y )Ndomainr   orderFr   )gensr1   T)r   r,   r-   r.   r2   r0   r   clone)optnew_opts     U/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/tests/test_polyoptions.pytest_Options_cloner7      s    
1a)h-
.C881ay   ::sNu$$$ii!Q%89G881ay   ::sNu$$$<<Aq6!!!>>Rw4'''    c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr      c                  4    t        j                  t              S N)r   
preprocessr,    r8   r6   <lambda>z(test_Expand_preprocess.<locals>.<lambda>-        1 1! 4 r8   )r   r=   r*   r$   r>   r8   r6   test_Expand_preprocessrA   &   q    U#u,,,T"d***Q5(((Q4'''
;45r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )NexpandT)r   postprocessr4   s    r6   test_Expand_postprocessrG   0   -    T
C
s8T""""r8   c                  ~    t        j                  d      dk(  sJ t        j                  t        t        t        f      t        t        t        fk(  sJ t        j                  t        t        t        ff      t        t        t        fk(  sJ t        dd       t        t        d        t        t         fd       y )Nr<   r>   aF)commutativec                  J    t        j                  t        t        t        f      S r<   r   r=   r,   r-   r>   r8   r6   r?   z&test_Gens_preprocess.<locals>.<lambda>>   s    DOOQ1I$> r8   c                  D    t        j                  t        t         f      S r<   rM   rJ   s   r6   r?   z&test_Gens_preprocess.<locals>.<lambda>?   s    DOOQ1I$> r8   )r   r=   r,   r-   r.   r(   r*   r%   rO   s   @r6   test_Gens_preprocessrP   7   s    ??7#r)))??Aq!9%!Q222??Q1I<(Q1I555s&A
?>?
?>?r8   c                  p    dt         t        fi} t        j                  |        | dt         t        fik(  sJ y )Nr2   )r,   r-   r   rE   rF   s    r6   test_Gens_postprocessrR   B   s5    Aq6
CS6Aq6""""r8   c                     t        j                  t              dgk(  sJ t        j                  d      g k(  sJ t        j                  d      g k(  sJ t        j                  d      ddgk(  sJ t        j                  d      ddgk(  sJ t        j                  d      ddgk(  sJ t        j                  d      ddgk(  sJ t        j                  d	      ddgk(  sJ t        j                  d
      ddgk(  sJ t        j                  t        t        g      ddgk(  sJ t	        t
        d        t	        t
        d        y )Nr,     zx,yr-   zx yzx, yzx , yz x, yz x,  yc                  ,    t        j                  d      S )N,r   r=   r>   r8   r6   r?   z%test_Wrt_preprocess.<locals>.<lambda>U   s    s 3 r8   c                  ,    t        j                  d      S Nr   rX   r>   r8   r6   r?   z%test_Wrt_preprocess.<locals>.<lambda>V   s    q 1 r8   )r   r=   r,   r-   r*   r$   r>   r8   r6   test_Wrt_preprocessr[   I   s    >>!%%%>>"###>>#"$$$>>% S#J...>>% S#J...>>&!c3Z///>>'"sCj000>>'"sCj000>>(#Sz111>>1a&!c3Z///
;34
;12r8   c                  L    ddgi} t        j                  |        | ddgik(  sJ y )Nwrtr,   )r   rE   rF   s    r6   test_Wrt_postprocessr^   Y   s-    3%.COOC53%.   r8   c                  d   t        j                  t        t        t        g      g dk(  sJ t        j                  t        t        t        f      g dk(  sJ t        j                  d      g dk(  sJ t        j                  d      g dk(  sJ t        t        d        t        t        d        y )Nr+   z	x > y > zzx>y>zc                  ,    t        j                  d      S rZ   )r   r=   r>   r8   r6   r?   z&test_Sort_preprocess.<locals>.<lambda>g   s     2 r8   c                  J    t        j                  t        t        t        h      S r<   )r   r=   r,   r-   r.   r>   r8   r6   r?   z&test_Sort_preprocess.<locals>.<lambda>h   s    Aq	 : r8   )r   r=   r,   r-   r.   r*   r$   r>   r8   r6   test_Sort_preprocessrb   `   s    ??Aq!9%888??Aq!9%888??;'?:::??7#666
;23
;:;r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )Nsortzx > y)r   rE   rF   s    r6   test_Sort_postprocessre   k   s-    7
CS67####r8   c                  @    t        j                  d      t        k(  sJ y )Nr   )r   r=   r   r>   r8   r6   test_Order_preprocessrg   r   s    E"c)))r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )Nr1   T)r   rE   rF   s    r6   test_Order_postprocessri   v   +    D/C	c7D/!!!r8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr   r:   c                  4    t        j                  t              S r<   )r	   r=   r,   r>   r8   r6   r?   z'test_Field_preprocess.<locals>.<lambda>        0 0 3 r8   )r	   r=   r*   r$   r>   r8   r6   test_Field_preprocessrn   }   q    E"e+++D!T)))A%'''A$&&&
;34r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )NfieldT)r	   rE   rF   s    r6   test_Field_postprocessrr      rj   r8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr   r:   c                  4    t        j                  t              S r<   )r
   r=   r,   r>   r8   r6   r?   z(test_Greedy_preprocess.<locals>.<lambda>   r@   r8   )r
   r=   r*   r$   r>   r8   r6   test_Greedy_preprocessru      rB   r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )NgreedyT)r
   rE   rF   s    r6   test_Greedy_postprocessrx      rH   r8   c                     t        j                  t              t        k(  sJ t        j                  t              t        k(  sJ t        j                  t              t        k(  sJ t        j                  t        d            t        d      k(  sJ t        j                  t        t        t        f         t        t        t        f   k(  sJ t        j                  d      t        k(  sJ t        j                  d      t        k(  sJ t        j                  d      t        k(  sJ t        j                  d      t        k(  sJ t        j                  d      t        k(  sJ t        j                  d      t        d      k(  sJ t        j                  d	      t        d      k(  sJ t        t        d
        t        j                  d      t        t           k(  sJ t        j                  d      t        t           k(  sJ t        j                  d      t        t           k(  sJ t        j                  d      t        t           k(  sJ t        j                  d      t        t           k(  sJ t        j                  d      t        t           k(  sJ t        j                  d      t        t           k(  sJ t        j                  d      t        t           k(  sJ t        j                  d      t        t        t        f   k(  sJ t        j                  d      t        t        t        f   k(  sJ t        j                  d      t        t        t        f   k(  sJ t        j                  d      t        t        t        f   k(  sJ t        j                  d      t        t        t        f   k(  sJ t        j                  d      t        t        t        f   k(  sJ t        j                  d      t        t        t        f   k(  sJ t        j                  d      t        t        t        f   k(  sJ t        t        d        t        j                  d      t        j                  t              k(  sJ t        j                  d      t        j                  t              k(  sJ t        j                  d      t        j                  t              k(  sJ t        j                  d      t        j                  t              k(  sJ t        j                  d       t        j                  t        t              k(  sJ t        j                  d!      t        j                  t        t              k(  sJ t        j                  d"      t        j                  t        t              k(  sJ t        j                  d#      t        j                  t        t              k(  sJ t        j                  d$      t        j                  t              k(  sJ t        j                  d%      t        j                  t              k(  sJ t        j                  d&      t        j                  t!        d      t              k(  sJ t        j                  d'      t        j                  t!        d      t              k(  sJ t        t        d(        y ))N   ZQr   r   r#   zFF(23)   zGF(23)c                  ,    t        j                  d      S )NzZ[]r   r=   r>   r8   r6   r?   z(test_Domain_preprocess.<locals>.<lambda>        1 1% 8 r8   zZ[x]zQ[x]zR[x]zC[x]zZZ[x]zQQ[x]zRR[x]zCC[x]zZ[x,y]zQ[x,y]zR[x,y]zC[x,y]zZZ[x,y]zQQ[x,y]zRR[x,y]zCC[x,y]c                  ,    t        j                  d      S )NzZ()r   r>   r8   r6   r?   z(test_Domain_preprocess.<locals>.<lambda>   r   r8   zZ(x)zQ(x)zZZ(x)zQQ(x)zZ(x,y)zQ(x,y)zZZ(x,y)zQQ(x,y)zQ<I>zQQ<I>zQ<sqrt(2), I>zQQ<sqrt(2), I>c                  ,    t        j                  d      S )Nabcr   r>   r8   r6   r?   z(test_Domain_preprocess.<locals>.<lambda>   r   r8   )r   r=   r   r   r#   r   r,   r-   r   r*   r$   r!   r"   
frac_fieldalgebraic_fieldr&   r)   r>   r8   r6   test_Domain_preprocessr      s   R B&&&R B&&&R B&&&RU#r!u,,,R1X&"QT(222S!R'''S!R'''T"b(((T"b(((T"b(((X&"R&000X&"R&000
;89V$1---V$1---V$1---V$1---W%A...W%A...W%A...W%A...X&"QT(222X&"QT(222X&"QT(222X&"QT(222Y'2ad8333Y'2ad8333Y'2ad8333Y'2ad8333
;89V$a(8888V$a(8888W%q)9999W%q)9999X&"--1*====X&"--1*====Y'2==A+>>>>Y'2==A+>>>>V$(:(:1(====W%););A)>>>>_-1C1CDGQ1OOOO//Q;< < < ;89r8   c                  j    t        t        d        t        t        d        t        t        d        y )Nc                  h    t        j                  t        t        ft        t        t
        f   d      S )Nr2   r0   )r   rE   r,   r-   r   r.   r>   r8   r6   r?   z)test_Domain_postprocess.<locals>.<lambda>   s'    F$6$6A1X8 %  r8   c                  :    t        j                  dt        d      S )Nr>   r   r   rE   r#   r>   r8   r6   r?   z)test_Domain_postprocess.<locals>.<lambda>   s    F$6$68 % r8   c                  8    t        j                  dt        i      S )Nr0   r   r>   r8   r6   r?   z)test_Domain_postprocess.<locals>.<lambda>   s    F$6$6"~$F r8   )r*   r%   r>   r8   r6   test_Domain_postprocessr      s-    
?   ! ?  
?FGr8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr   r:   c                  4    t        j                  t              S r<   )r   r=   r,   r>   r8   r6   r?   z'test_Split_preprocess.<locals>.<lambda>   rm   r8   )r   r=   r*   r$   r>   r8   r6   test_Split_preprocessr      ro   r8   c                  &    t        t        d        y )Nc                  0    t        j                  ddi      S )NsplitT)r   rE   r>   r8   r6   r?   z(test_Split_postprocess.<locals>.<lambda>   s    (9(97D/(J r8   )r*   NotImplementedErrorr>   r8   r6   test_Split_postprocessr      s    
 JKr8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr   r:   c                  4    t        j                  t              S r<   )r   r=   r,   r>   r8   r6   r?   z*test_Gaussian_preprocess.<locals>.<lambda>   s     3 3A 6 r8   )r   r=   r*   r$   r>   r8   r6   test_Gaussian_preprocessr      sq    u%...t$,,,q!U***q!T)))
;67r8   c                  R    ddi} t        j                  |        | dt        dk(  sJ y )NgaussianT)r   r0   )r   rE   r    rF   s    r6   test_Gaussian_postprocessr      s7    t
C   r8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  g       J t        j                  t        d            t        d      hk(  sJ t        j                  t        d      g      t        d      hk(  sJ t        j                  t        d      t        g      t        d      t        hk(  sJ t	        t
        d        t	        t
        d        y )NTr:   rz   c                  ,    t        j                  d      S )NFr   r=   r>   r8   r6   r?   z+test_Extension_preprocess.<locals>.<lambda>  s    	 4 4U ; r8   c                  ,    t        j                  d      S rZ   r   r>   r8   r6   r?   z+test_Extension_preprocess.<locals>.<lambda>  s    	 4 4Q 7 r8   )r   r=   r)   r&   r*   r$   r>   r8   r6   test_Extension_preprocessr   
  s    %---"d***#+++Q(T!WI555a	*tAwi777a!-$q'1===
;;<
;78r8   c                      dt        d      hi} t        j                  |        | t        d      ht        j                  t        d            dk(  sJ ddi} t        j                  |        | ddik(  sJ y )N	extensionrz   )r   r0   T)r)   r   rE   r   r   rF   s    r6   test_Extension_postprocessr     s    a	
"C#1gY$$T!W-   
 
C#;%%%%r8   c                      t        j                  d      dk(  sJ t        j                  t        d            dk(  sJ t        t        d        t        t        d        y )Nr}   c                  ,    t        j                  d      S rZ   )r   r=   r>   r8   r6   r?   z)test_Modulus_preprocess.<locals>.<lambda>,  s     2 21 5 r8   c                  4    t        j                  t              S r<   )r   r=   r,   r>   r8   r6   r?   z)test_Modulus_preprocess.<locals>.<lambda>-       2 21 5 r8   )r   r=   r'   r*   r$   r>   r8   r6   test_Modulus_preprocessr   (  sN    b!R'''gbk*b000
;56
;56r8   c                      ddi} t        j                  |        | dt        d      dk(  sJ ddd} t        j                  |        | dt        dd      ddk(  sJ y )Nmodulus   )r   r0   F)r   	symmetric)r   r0   r   )r   rE   r   rF   s    r6   test_Modulus_postprocessr   0  sz    a.CQ%   
 e
,CQ,   r8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr   r:   c                  4    t        j                  t              S r<   )r   r=   r,   r>   r8   r6   r?   z+test_Symmetric_preprocess.<locals>.<lambda>J  s    	 4 4Q 7 r8   )r   r=   r*   r$   r>   r8   r6   test_Symmetric_preprocessr   C  sq    &%///%---"e+++"d***
;78r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )Nr   T)r   rE   rF   s    r6   test_Symmetric_postprocessr   M  s-    
C#;%%%%r8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr   r:   c                  4    t        j                  t              S r<   )r   r=   r,   r>   r8   r6   r?   z(test_Strict_preprocess.<locals>.<lambda>[  r@   r8   )r   r=   r*   r$   r>   r8   r6   test_Strict_preprocessr   T  rB   r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )NstrictT)r   rE   rF   s    r6   test_Strict_postprocessr   ^  rH   r8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr   r:   c                  4    t        j                  t              S r<   )r   r=   r,   r>   r8   r6   r?   z&test_Auto_preprocess.<locals>.<lambda>l       2 r8   )r   r=   r*   r$   r>   r8   r6   test_Auto_preprocessr   e  i    ??5!U***??4 D(((??1&&&??1%%%
;23r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )NautoT)r   rE   rF   s    r6   test_Auto_postprocessr   o  +    4.CS64.   r8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr   r:   c                  4    t        j                  t              S r<   )r   r=   r,   r>   r8   r6   r?   z&test_Frac_preprocess.<locals>.<lambda>}  r   r8   )r   r=   r*   r$   r>   r8   r6   test_Frac_preprocessr   v  r   r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )NfracT)r   rE   rF   s    r6   test_Frac_postprocessr     r   r8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr   r:   c                  4    t        j                  t              S r<   )r   r=   r,   r>   r8   r6   r?   z(test_Formal_preprocess.<locals>.<lambda>  r@   r8   )r   r=   r*   r$   r>   r8   r6   test_Formal_preprocessr     rB   r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )NformalT)r   rE   rF   s    r6   test_Formal_postprocessr     rH   r8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr   r:   c                  4    t        j                  t              S r<   )r   r=   r,   r>   r8   r6   r?   z'test_Polys_preprocess.<locals>.<lambda>  rm   r8   )r   r=   r*   r$   r>   r8   r6   test_Polys_preprocessr     ro   r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )NpolysT)r   rE   rF   s    r6   test_Polys_postprocessr     rj   r8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr   r:   c                  4    t        j                  t              S r<   )r   r=   r,   r>   r8   r6   r?   z)test_Include_preprocess.<locals>.<lambda>  r   r8   )r   r=   r*   r$   r>   r8   r6   test_Include_preprocessr     sq    e$---d#t+++a E)))a D(((
;56r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )NincludeT)r   rE   rF   s    r6   test_Include_postprocessr     s-    d
C9d####r8   c                      t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        j                  d      du sJ t        t        d        y )NFTr   r:   c                  4    t        j                  t              S r<   )r   r=   r,   r>   r8   r6   r?   z%test_All_preprocess.<locals>.<lambda>  s    q 1 r8   )r   r=   r*   r$   r>   r8   r6   test_All_preprocessr     si    >>% E)))>>$4'''>>!%%%>>!$$$
;12r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )NallT)r   rE   rF   s    r6   test_All_postprocessr     s)    $-COOC5$-r8   c                  X    dt         i} t        j                  |        | dt         ik(  sJ y )Ngen)r,   r   rE   rF   s    r6   test_Gen_postprocessr     s)    !*COOC5!*r8   c                  &    t        t        d        y )Nc                  4    t        j                  t              S r<   )r   r=   r,   r>   r8   r6   r?   z)test_Symbols_preprocess.<locals>.<lambda>  r   r8   r*   r$   r>   r8   r6   test_Symbols_preprocessr         
;56r8   c                      dt         t        t        gi} t        j                  |        | dt         t        t        gik(  sJ y )Nsymbols)r,   r-   r.   r   rE   rF   s    r6   test_Symbols_postprocessr     s9    q!Qi
 C9q!Qi((((r8   c                  &    t        t        d        y )Nc                  ,    t        j                  d      S )N
   )r   r=   r>   r8   r6   r?   z(test_Method_preprocess.<locals>.<lambda>  s     1 1" 5 r8   r   r>   r8   r6   test_Method_preprocessr     r   r8   c                  H    ddi} t        j                  |        | ddik(  sJ y )Nmethodf5b)r   rE   rF   s    r6   test_Method_postprocessr     s-    U
C
s8U####r8   N)c__doc__sympy.polys.polyoptionsr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.polys.orderingsr   sympy.polys.domainsr   r   r   r   r    r!   r"   r#   sympy.polys.polyerrorsr$   r%   sympy.core.numbersr&   r'   sympy.core.symbolr(   (sympy.functions.elementary.miscellaneousr)   sympy.testing.pytestr*   	sympy.abcr,   r-   r.   r7   rA   rG   rP   rR   r[   r^   rb   re   rg   ri   rn   rr   ru   rx   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   r   r   r>   r8   r6   <module>r      s8   L= = = = = = =
 & @ @ @ ? + $ 9 '  ($6#@#3 !<$*"5"6#=:@H5L89&7&9&6#4!4!6#5"7$3 7)7$r8   