
    \h                         S SK Jr  S SKJrJrJr  S SKJrJrJ	r	  S SK
JrJr  S rS rS rS rS	 rS
 rS rS rS rS rS rS rg)    )raises)ZZQQring)PuiseuxRingPuiseuxPolypuiseux_ringxyc                     [        S[        5      u  p[        [        /[        5      u  p#[        U [        5      (       d   e[        U[
        5      (       d   eX:X  d   eX:X  d   eU [	        S[        5      :X  d   eU [	        [        /[        5      :X  d   eU [	        S[        5      :w  d   eU [	        S[        5      :w  d   eU [	        S[        5      :w  d   eU [        :w  d   e[        U 5      S:X  d   eg )Nr   r   x, yzPuiseuxRing((x,), QQ))r	   r   r   
isinstancer   r   r   str)RpxR2px2s       V/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_puiseux.pytest_puiseux_ringr      s    b!EAA3#GBa%%%%b+&&&&7N799C$$$$QC$$$$C$$$$C$$$$FB''''7N7q6,,,,    c                  6   [        S[        5      u  pn[        S[        5      u  p4nUR                  [        :X  d   eUR                  [
        [        4:X  d   eUR                  XE4:X  d   eUR                  S:X  d   eUR                  U :X  d   eUR                  [        U R                  U5      :X  d   eUR                  [        U R                  U5      :X  d   eUR                  U R                  s=:X  a  S:X  d   e   eUR                  SS5      S:X  d   eg )Nr      )r   r      r   )      )r      )r   r   r	   domainsymbolsr   r   gensngens	poly_ringzeror   one
zero_monommonomial_mulR1px1py1r   r   py2s         r   test_puiseux_ring_attributesr-      s    #LBS+LBS99??::!Q77sj   88q==<<277k"''2....66[,,,,==BMM3V33333??66*f444r   c                  6   [        S[        5      u  pn[        S[        5      u  p4nU" SS05      SU-  US-  -  :X  d   eU" U5      U:X  d   eU" S5      UR                  :X  d   eU" [        SS5      5      [        SS5      UR                  -  :X  d   eUR	                  U5      U:X  d   eUR	                  U5      U:w  d   eUR                  S[        S5      05      SU-  US-  -  :X  d   eUR                  [        SS5      S4[        S5      05      SU[        SS5      -  -  US-  -  :X  d   eUR                  S5      SUR                  -  :X  d   eUR                  S5      [        S5      :X  d   e[        R                  " UR                  S5      5      (       d   eUR                  S5      SUR                  -  :X  d   e[        UR                  S5      [        5      (       d   eUR                  U5      S:X  d   eUR                  U5      S:X  d   eg )Nr   r   r   r   r   r   )r   r   r	   r%   	from_poly	from_dictfrom_int
domain_newof_type
ground_newr   r   indexr(   s         r   test_puiseux_ring_methodsr6   +   s   #LBS+LBSvqk?aeCFl***c7c>>a5BFF??b1g;"Qq'"&&.(((<<###<<###<<A(AcE#q&L888<<"Qq'1r!u-.!CAaL.a2GGGG;;q>QrvvX%%%==r!u$$$::bmmA&''''==qx'''bmmA&444488C=A88C=Ar   c                     [        S[        5      u  p[        S[        5      u  p#[        X5      U:X  d   eUR                   U:X  d   eUR	                  5       UR	                  5       s=:X  a  [
        :X  d   e   eX:w  d   eUR                  US-  s=:X  a  S:X  d   e   eX1:X  d   eUS:w  d   eU[        SS5      -  U:w  d   eg )Nr   r   r   g       @r   )r   r   r	   r   as_exprr   r%   )r)   r*   r   r   s       r   test_puiseux_polyr9   ?   s    3mGB3#GBs3&&&88r>>;;=CKKM.Q.....::66S!V q     ::#::1Q<3r   c                     [        S[        5      u  pUS-  S-   U-  USU-  -   s=:X  a  U " SSS.5      :X  d   e   eU[        SS5      -  S-  U[        SS5      -  s=:X  a  U " [        SS5      4S05      :X  d   e   eU[        SS5      -  S-  U[        SS5      * -  s=:X  a  U " [        SS5      * 4S05      :X  d   e   eU[        SS5      -  [        SS5      -  U[        SS5      -  s=:X  a  U " [        SS5      4S05      :X  d   e   eU[        SS5      -  S-  Us=:X  a  U " S	S05      :X  d   e   eU[        SS5      -  U[        SS5      -  -  U[        SS5      -  s=:X  a  U " [        SS5      4S05      :X  d   e   eSU-  US-  -  Us=:X  a  U " S	S05      :X  d   e   eSU[        SS5      -  -  U[        SS5      -  -  Ss=:X  a  U " S
S05      :X  d   e   eg )Nr   r   r   r   r   r      r<   r   )r	   r   r   r   s     r   test_puiseux_poly_normalizationrC   L   s   R DAqD1H>Q1W>1*=(>>>>>>r!AwJ?aAaj>A1Qz1o,>>>>>>r!AwJ"b1gXE!r!Awh[!4D2EEEEEEr!AwJAa Ar!BxKF1r!Bxk15E3FFFFFFr!AwJ?a/1dAY</////b1g:2a7
"aAajFA1Qz1o4FFFFFFQ3A:*aq	l*****Q1QZ<!R!W*$9Qay\99999r   c                    ^ [        S[        5      u  pUR                  " 5       S/:X  d   e[        U5      S/:X  d   eUS-  S-   R                  5       SS/:X  d   eU " SSS.5      R                  5       SS/:X  d   eU " [        SS	5      4S05      R                  5       [        SS	5      4/:X  d   eU " [        SS	5      * 4S05      R                  5       [        SS	5      * 4/:X  d   eU[        SS
5      -  mT[        SS
5      4   S:X  d   e[	        [
        U4S j5        TR                  5       [        SS
5      4S0:X  d   eU " TR                  5       5      T:X  d   e[        R                  " [        SS
5      4S0U 5      T:X  d   eg )Nr   r<   r   r   r   rA   r;   r=   r   r   c                     > T S   $ )Nr<    ps   r   <lambda>*test_puiseux_poly_monoms.<locals>.<lambda>b   s	    QtWr   )	r	   r   monomslistr   KeyErrorto_dictr   r0   )r   r   rI   s     @r   test_puiseux_poly_monomsrP   X   s~   R DA88:$7tfqD1H4,...Aa !((*tUm;;;r!Awj!_$$&BqG:,6661Qxk1%%'b1gXK=888	2a7
Ab1gZ=A
8_%99;BqG:q/)))QYY[>Q  2a7*a!4999r   c                  T   [        S[        5      u  p[        U5      S:X  d   e[        U[        SS5      -  5      S:X  d   e[        SU-  5      S:X  d   e[        SUS-  -  S-   5      S:X  d   e[        U R                  5      S:X  d   e[        SU R                  -  5      S:X  d   eg )	Nr   r   r   zx**(1/2)zx**(-1)z
1 + 2*x**212)r	   r   reprr%   rB   s     r   test_puiseux_poly_reprrU   h   s    R DA7c>>2a7
z)))!9	!!!!Q$
|+++;#!%%=Cr   c            	         [        S[        5      u  pSU-  U-   USU-  -   s=:X  a  U " SSS.5      :X  d   e   e[        SU-  U-   5      S:X  d   eSU-  SU-  -   SU-  s=:X  a  U " SS05      :X  d   e   e[        SU-  SU-  -   5      S:X  d   eU[        SS5      -  U[        SS5      -  -   SU[        SS5      -  -  s=:X  a  U " [        SS5      4S05      :X  d   e   e[        U[        SS5      -  U[        SS5      -  -   5      S:X  d   eU[        SS5      -  U[        SS	5      -  -   U " [        SS5      4S[        SS	5      4S05      :X  d   e[        U[        SS5      -  U[        SS	5      -  -   5      S
:X  d   eX[        SS5      -  -   U " SS[        SS5      4S05      :X  d   e[        X[        SS5      -  -   5      S:X  d   eSU[        SS5      -  -  SU[        SS	5      -  -  -   U " [        SS5      * 4S[        SS	5      * 4S05      :X  d   e[        SU[        SS5      -  -  SU[        SS	5      -  -  -   5      S:X  d   eSU-  U[        SS5      -  -   U[        SS5      -  SU-  -   s=:X  a  U " SS[        SS5      4S05      :X  d   e   e[        SU-  U[        SS5      -  -   5      S:X  d   eg )Nr   r   r;   zx**(-1) + xr   r=   z	2*x**(-1)z
2*x**(1/2)r   zx**(1/3) + x**(1/2)r<   zx**(1/2) + xzx**(-1/2) + x**(-1/3)zx**(-1) + x**(1/2))r	   r   rT   rB   s     r   test_puiseux_poly_unifyrW   r   s   R DAQ37a!A#g7!A#6!777777!a=M)))Q319!,q%},,,,,!ac	?k)))b1g:2a7
"a2a7
lHa"Qq'Q6HHHHHH2a7
Q1QZ'(L888b1g:2a7
"a"Qq'QAa
A(F&GGGG2a7
Q1QZ'(,AAAA"Qq'z>Qa"Qq'Q78888r!AwJ>111Q1QZ<!Ar!AwJ,&!r!Awh[!r!Awh[!,L*MMMM!R!W*qBqG|+,0GGGGQ3BqGq"Qq'zAaC/O1eQAa
A5N3OOOOOO!aAaj !%9999r   c                    ^^ [        S[        5      u  n m[        S[        5      u  nmTS-  S-   nU7U:X  d   eU* STS-  -
  :X  d   eX"-   SU-  s=:X  a  STS-  -  S-   :X  d   e   eUS-   SU-   s=:X  a  TS-  S-   :X  d   e   eU[        SS5      -   [        SS5      U-   s=:X  a  TS-  [        SS5      -   :X  d   e   eX"-
  S:X  d   eUS-
  SU-   s=:X  a
  TS-  :X  d   e   eU[        SS5      -
  [        SS5      * U-   s=:X  a  TS-  [        SS5      -   :X  d   e   eSU-
  U* S-   s=:X  a  TS-  * :X  d   e   e[        SS5      U-
  U* [        SS5      -   s=:X  a  TS-  * [        SS5      -
  :X  d   e   eX"-  TS-  STS-  -  -   S-   :X  d   eUS-  SU-  s=:X  a  U:X  d   e   eSU-  US-  s=:X  a  STS-  -  S-   :X  d   e   eU[        SS5      -  [        SS5      U-  s=:X  a$  [        SS5      TS-  -  [        SS5      -   :X  d   e   eT[        SS5      -  T[        SS5      -  -  T:X  d   e[        [        UU4S	 j5        [        [        UU4S
 j5        [        [        UU4S j5        [        [        U4S j5        [        [        U4S j5        [        [        U4S j5        [        [        U4S j5        [        [        U4S j5        [        [        U4S j5        g )Nr   r   r   r   r>   r   r   r   c                     > T T-   $ NrG   r
   s   r   rJ   (test_puiseux_poly_arit.<locals>.<lambda>   	    q1ur   c                     > T T-
  $ rZ   rG   r
   s   r   rJ   r[      r\   r   c                     > T T-  $ rZ   rG   r
   s   r   rJ   r[      r\   r   c                     > T S -   $ rZ   rG   r   s   r   rJ   r[      	    a$hr   c                     > T S -
  $ rZ   rG   r`   s   r   rJ   r[      ra   r   c                     > T S -  $ rZ   rG   r`   s   r   rJ   r[      ra   r   c                     > S T -   $ rZ   rG   r`   s   r   rJ   r[      	    dQhr   c                     > S T -
  $ rZ   rG   r`   s   r   rJ   r[      re   r   c                     > S T -  $ rZ   rG   r`   s   r   rJ   r[      re   r   )r	   r   r   
ValueError	TypeErrorr   r   rI   r   r   s      @@r   test_puiseux_poly_aritrk      s   R DAqb!EB	1qA27N72ad??5AaC%1QT6A:%%%%%q5AE%QTAX%%%%%r!Aw;"Qq'A+7A1Q777775A::q5BF"ad"""""r!Aw;2a7(Q,8!Q$Aa.88888q5QBF#q!te#####a7Q;1"r!Aw,91a4%"Qq'/999995AqD1QT6MA%%%%q5AEQq5AE'Qq!tVaZ'''''r!Aw;"Qq'A+?AaA1Q)??????b1g:2a7
"a'''
:}%
:}%
:}%
9&'
9&'
9&'
9&'
9&'
9&'r   c                    ^^^ [        S[        5      u  n m[        S[        5      u  nmTS-  S-
  mTS-  T:X  d   eT[        SS5      -  ST-  s=:X  a  STS-  -  S-
  :X  d   e   eTT-  TST-  -
  s=:X  a  U " SSS.5      :X  d   e   eST-  STS-  -  s=:X  a  U " SS05      :X  d   e   e[        SS5      T-  [        SS5      TS-  -  s=:X  a3  SST-  -  s=:X  a&  ST-  S-  s=:X  a  U " S[        SS5      05      :X  d   e   e[        [        U4S j5        [        [        U4S	 j5        [        [        U4S
 j5        [        [        UU4S j5        [        [
        U4S j5        [        [
        U4S j5        g )Nr   r   r   r   r>   r;   r=   c                     > T S-  $ )Nr   rG   rH   s   r   rJ   'test_puiseux_poly_div.<locals>.<lambda>   s	    a!er   c                     > T S-   T S-   -  $ Nr   r   rG   r`   s   r   rJ   rn          A!a%0r   c                     > T S-   T S-   -  $ )Nr   rG   r`   s   r   rJ   rn      rq   r   c                     > T T-  $ rZ   rG   r
   s   r   rJ   rn      r\   r   c                     > T S -  $ rZ   rG   r`   s   r   rJ   rn      ra   r   c                     > S T -  $ rZ   rG   r`   s   r   rJ   rn      re   r   )r	   r   r   ZeroDivisionErrorrh   ri   rj   s     @@@r   test_puiseux_poly_divrw      sk   R DAqb!EB	1qAq5A::r!Aw;!A#+1a4!+++++q5A!G6q"!5666666q5AaeG,q%},,,,,a7Q;"Qq'!R%-R1ac7Rac!eRq%AaAQ?RRRRRR
m,
:01
:01
:}%
9&'
9&'r   c                  6  ^^ [        S[        5      u  n m[        S[        5      u  nmTS-  Ss=:X  a  U " SS05      :X  d   e   eTS-  Ts=:X  a  U " SS05      :X  d   e   eTS-  TT-  s=:X  a  U " SS05      :X  d   e   eT[        SS5      -  U " [        SS5      4S05      :X  d   eTS-  ST-  s=:X  a  U " S	S05      :X  d   e   eT[        SS5      * -  ST[        SS5      -  -  s=:X  a  U " [        SS5      * 4S05      :X  d   e   eST-  S-  SST-  -  s=:X  aD  [        SS5      T-  s=:X  a0  [        SS5      TS-  -  s=:X  a  U " S	[        SS5      05      :X  d   e   eSTS-  -  STS
-  -  s=:X  a  U " SS05      :X  d   e   eSTS-  -  STS
-  -  s=:X  a  U" SS05      :X  d   e   e[        [        U4S j5        [        [
        U4S j5        [        [
        U4S j5        [        [
        U4S j5        [        [
        U4S j5        g )Nr   r   r   rA   r<   r   rE   r>   r=   r?   )r?   c                     > T S -  $ rZ   rG   r`   s   r   rJ   'test_puiseux_poly_pow.<locals>.<lambda>   s	    agr   c                     > T S-   S-  $ )Nr   r>   rG   r`   s   r   rJ   rz      s    A{r   c                  (   > T S-   [        SS5      -  $ rp   r   r`   s   r   rJ   rz      s    A1Q/r   c                  (   > ST -  [        SS5      -  $ )Nr   r   r}   r`   s   r   rJ   rz      s    !b1g~r   c                     > ST -  S-  $ )Nr   r>   rG   )xzs   r   rJ   rz      s    "rzr   )r	   r   r   r   ri   rh   )r   Rzr   r   s     @@r   test_puiseux_poly_powr      s#   R DAq#r"FBa41$4)$$$$$a41$4)$$$$$a41Q3&!T1I,&&&&&b1g:R!WJ?++++b5AaC(1eQZ=(((((r!Awh;!Ar!AwJ,=!r!Awh[!,<*======aC"91Q3T2a719T1Q2TE2aPQ7CSATTTTTTQT6Qq"uW-5!*-----RU7aBh0"eQZ.00000
9o&
:*+
:/0
:-.
:)*r   c                  *   [        S[        5      u  pnUS-  S-   R                  U5      SU-  :X  d   eUS-  S-   R                  U5      S:X  d   eUS-  US-  -   R                  U5      SU-  :X  d   eU[        SS5      -  U[        SS5      -  -   R                  U5      [        SS5      U[        SS5      * -  -  :X  d   eX-  [        SS5      -  R                  U5      [        SS5      U[        SS5      -  -  U[        SS5      * -  -  :X  d   eg )Nr   r   r   r   )r	   r   diff)r   r   r   s      r   test_puiseux_poly_diffr      s   62&GA!qD1H??11$$$qD1H??1"""qD1a4Ka AaC'''r!AwJBqG#))!,1QBqG80CCCCS2a7N  #r!Awq"Qq'z'9!b1gX+'EEEEr   N)sympy.testing.pytestr   sympyr   r   r   sympy.polys.puiseuxr   r   r	   	sympy.abcr   r   r   r-   r6   r9   rC   rP   rU   rW   rk   rw   r   r   rG   r   r   <module>r      sV   
 (   F F - 5(
	::  :$(<("+&Fr   