
    Xh                         d dl mZ d dlmZmZmZ d dlmZmZm	Z	 d dl
mZmZ d Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd ZdS )    )raises)ZZQQring)PuiseuxRingPuiseuxPolypuiseux_ringxyc                  L   t          dt                    \  } }t          t          gt                    \  }}t          | t                    sJ t          |t
                    sJ | |k    sJ ||k    sJ | t	          dt                    k    sJ | t	          t          gt                    k    sJ | t	          dt                    k    sJ | t	          dt                    k    sJ | t	          dt                    k    sJ | t          k    sJ t          |           dk    sJ d S )Nr   r   x, yzPuiseuxRing((x,), QQ))r	   r   r   
isinstancer   r   r   str)RpxR2px2s       p/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/sympy/polys/tests/test_puiseux.pytest_puiseux_ringr      s$   b!!EArA3##GBa%%%%%b+&&&&&77779999C$$$$$$QC$$$$$$C$$$$$$C$$$$$$FB''''''7777q66,,,,,,,    c                      t          dt                    \  } }}t          dt                    \  }}}|j        t          k    sJ |j        t
          t          fk    sJ |j        ||fk    sJ |j        dk    sJ |j	        | k    sJ |j
        t          | j
        |          k    sJ |j        t          | j        |          k    sJ |j        | j        cxk    rdk    sn J |                    dd          dk    sJ d S )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   ##LBS++LBS9????:!Q7sCj    8q====<27k"'2......6[,,,,,,=BM3333V333333??66**f444444r   c                     t          dt                    \  } }}t          dt                    \  }}} |ddi          d|z  |dz  z  k    sJ  ||          |k    sJ  |d          |j        k    sJ  |t          dd                    t          dd          |j        z  k    sJ |                    |          |k    sJ |                    |          |k    sJ |                    dt          d          i          d|z  |dz  z  k    sJ |                    t          dd          dft          d          i          d|t          dd          z  z  |dz  z  k    sJ |                    d          d|j        z  k    sJ |                    d          t          d          k    sJ t          j        |                    d                    sJ |	                    d          d|j        z  k    sJ t          |	                    d          t                    sJ |                    |          dk    sJ |                    |          dk    sJ d S )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   +   sQ   ##LBS++LBS2vqk??aeCFl****2c77c>>>>2a55BF????2b1gg;;"Qq''"&.((((<<####<<####<<A((AcE#q&L8888<<"Qq''1r!uu-..!CAaL.a2GGGGG;;q>>QrvX%%%%==r!uu$$$$:bmmA&&'''''==qx''''bmmA&&4444488C==A88C==Ar   c                     t          dt                    \  } }t          dt                    \  }}t          ||          |k    sJ |j         |k    sJ |                                |                                cxk    rt
          k    sn J ||k    sJ |j        |dz  cxk    rdk    sn J ||k    sJ |dk    sJ |t          dd          z  |k    sJ d S )Nr   r   r   g       @r   )r   r   r	   r   as_exprr   r%   )r)   r*   r   r   s       r   test_puiseux_polyr9   ?   s    3mmGB3##GBsB3&&&&8r>>>>;;==CKKMM....Q......#::::6S!V    q      #::::#::::1Q<3r   c                     t          dt                    \  } }|dz  dz   |z  |d|z  z   cxk    r | ddd          k    sn J |t          dd          z  dz  |t          dd          z  cxk    r  | t          dd          fdi          k    sn J |t          dd          z  dz  |t          dd           z  cxk    r! | t          dd           fdi          k    sn J |t          dd          z  t          dd          z  |t          dd          z  cxk    r  | t          dd          fdi          k    sn J |t          dd          z  dz  |cxk    r | d	di          k    sn J |t          dd          z  |t          dd          z  z  |t          dd          z  cxk    r  | t          dd          fdi          k    sn J d|z  |dz  z  |cxk    r | d	di          k    sn J d|t          dd          z  z  |t          dd          z  z  dcxk    r | d
di          k    sn J d S )Nr   r   r   r   r   r      r<   r   )r	   r   r   r   s     r   test_puiseux_poly_normalizationrC   L   s   R  DAqqD1H>Q1W>>>>1*=*=(>(>>>>>>>r!AwwJ?aAaj>>>>AA1Qz1o,>,>>>>>>>r!AwwJ"b1ggXEEEE!!r!Awwh[!4D2E2EEEEEEEr!AwwJAa Ar!BxxKFFFF11r!Bxxk15E3F3FFFFFFFr!AwwJ?a////11dAY<<//////b1gg:2a77
"aAajFFFFAA1Qz1o4F4FFFFFFFQ3A:****aaq	ll******Q1QZ<!R!WW*$9999QQay\\99999999r   c                     t          dt                    \  } } |j                    dgk    sJ t          |          dgk    sJ |dz  dz                                   ddgk    sJ  | ddd                                          ddgk    sJ  | t          dd	          fdi                                          t          dd	          fgk    sJ  | t          dd	           fdi                                          t          dd	           fgk    sJ |t          dd
          z  t          dd
          f         dk    sJ t	          t
          fd                                           t          dd
          fdik    sJ  |                                           k    sJ t          j        t          dd
          fdi|           k    sJ d S )Nr   r<   r   r   r   rA   r;   r=   r   r   c                       d         S )Nr<    ps   r   <lambda>z*test_puiseux_poly_monoms.<locals>.<lambda>b   s    QtW r   )	r	   r   monomslistr   KeyErrorto_dictr   r0   )r   r   rI   s     @r   test_puiseux_poly_monomsrO   X   s   R  DAq18::$77tfqD1H4,....1Aa  !!((**tUm;;;;1r!Awwj!_$$&&BqGG:,666611Qxk1%%''b1ggXK=8888	2a77
Ab1ggZ=A
8____%%%99;;BqGG:q/))))1QYY[[>>Q 2a77*a!44999999r   c                     t          dt                    \  } }t          |          dk    sJ t          |t          dd          z            dk    sJ t          d|z            dk    sJ t          d|dz  z  dz             dk    sJ t          | j                  dk    sJ t          d| j        z            dk    sJ d S )	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_reprrT   h   s    R  DAq77c>>>>2a77
z))))!99	!!!!!Q$
|++++;;#!%==Cr   c            	         t          dt                    \  } }d|z  |z   |d|z  z   cxk    r | ddd          k    sn J t          d|z  |z             dk    sJ d|z  d|z  z   d|z  cxk    r | ddi          k    sn J t          d|z  d|z  z             dk    sJ |t          dd          z  |t          dd          z  z   d|t          dd          z  z  cxk    r  | t          dd          fdi          k    sn J t          |t          dd          z  |t          dd          z  z             dk    sJ |t          dd          z  |t          dd	          z  z    | t          dd          fdt          dd	          fdi          k    sJ t          |t          dd          z  |t          dd	          z  z             d
k    sJ ||t          dd          z  z    | ddt          dd          fdi          k    sJ t          ||t          dd          z  z             dk    sJ d|t          dd          z  z  d|t          dd	          z  z  z    | t          dd           fdt          dd	           fdi          k    sJ t          d|t          dd          z  z  d|t          dd	          z  z  z             dk    sJ d|z  |t          dd          z  z   |t          dd          z  d|z  z   cxk    r" | ddt          dd          fdi          k    sn J t          d|z  |t          dd          z  z             dk    sJ d S )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   rS   rB   s     r   test_puiseux_poly_unifyrV   r   s   R  DAqQ37a!A#g7777!A#6#6!7!7777777!a==M))))Q319!,,,,qq%}},,,,,,!ac	??k))))b1gg:2a77
"a2a77
lHHHHaa"Qq''Q6H6HHHHHHH2a77
Q1QZ'((L8888b1gg:2a77
"aa"Qq''QAa
A(F&G&GGGGG2a77
Q1QZ'((,AAAAAq"Qq''z>QQa"Qq''Q7888888Ar!AwwJ>1111Q1QZ<!Ar!AwwJ,&!!r!Awwh[!r!Awwh[!,L*M*MMMMM!R!WW*qBqGG|+,,0GGGGGQ3BqGGq"Qq''zAaC/OOOO11eQAa
A5N3O3OOOOOOO!aAaj !!%9999999r   c                     t          dt                    \  } t          dt                    \  }dz  dz   }|
 |k    sJ | ddz  z
  k    sJ ||z   d|z  cxk    rddz  z  dz   k    sn J |dz   d|z   cxk    rdz  dz   k    sn J |t          dd          z   t          dd          |z   cxk    rdz  t          dd          z   k    sn J ||z
  dk    sJ |dz
  d|z   cxk    r	dz  k    sn J |t          dd          z
  t          dd           |z   cxk    rdz  t          dd          z   k    sn J d|z
  | dz   cxk    r
dz   k    sn J t          dd          |z
  | t          dd          z   cxk    rdz   t          dd          z
  k    sn J ||z  dz  ddz  z  z   dz   k    sJ |dz  d|z  cxk    r|k    sn J d|z  |dz  cxk    rddz  z  dz   k    sn J |t          dd          z  t          dd          |z  cxk    r+t          dd          dz  z  t          dd          z   k    sn J t          dd          z  t          dd          z  z  k    sJ t          t          fd	           t          t          fd
           t          t          fd           t          t          fd           t          t          fd           t          t          fd           t          t          fd           t          t          fd           t          t          fd           d S )Nr   r   r   r   r>   r   r   r   c                       z   S NrG   r
   s   r   rJ   z(test_puiseux_poly_arit.<locals>.<lambda>       q1u r   c                       z
  S rY   rG   r
   s   r   rJ   z(test_puiseux_poly_arit.<locals>.<lambda>   rZ   r   c                       z  S rY   rG   r
   s   r   rJ   z(test_puiseux_poly_arit.<locals>.<lambda>   rZ   r   c                       d z   S rY   rG   r   s   r   rJ   z(test_puiseux_poly_arit.<locals>.<lambda>       a$h r   c                       d z
  S rY   rG   r^   s   r   rJ   z(test_puiseux_poly_arit.<locals>.<lambda>   r_   r   c                       d z  S rY   rG   r^   s   r   rJ   z(test_puiseux_poly_arit.<locals>.<lambda>   r_   r   c                      d  z   S rY   rG   r^   s   r   rJ   z(test_puiseux_poly_arit.<locals>.<lambda>       dQh r   c                      d  z
  S rY   rG   r^   s   r   rJ   z(test_puiseux_poly_arit.<locals>.<lambda>   rc   r   c                      d  z  S rY   rG   r^   s   r   rJ   z(test_puiseux_poly_arit.<locals>.<lambda>   rc   r   )r	   r   r   
ValueError	TypeErrorr   r   rI   r   r   s      @@r   test_puiseux_poly_aritri      s1   R  DAqb!!EB	1qA277772ad????q5AaC%%%%1QT6A:%%%%%%q5AE%%%%QTAX%%%%%%r!Aww;"Qq''A+7777A1Q777777q5A::::q5BF""""ad""""""r!Aww;2a77(Q,8888!Q$Aa.888888q5QBF####q!te######a77Q;1"r!Aww,99991a4%"Qq''/999999q5AqD1QT6MA%%%%%q5AEQq5AE''''Qq!tVaZ''''''r!Aww;"Qq''A+????AaA1Q)???????b1gg:2a77
"a''''
:}}}}}%%%
:}}}}}%%%
:}}}}}%%%
9&&&&'''
9&&&&'''
9&&&&'''
9&&&&'''
9&&&&'''
9&&&&'''''r   c                  x   t          dt                    \  } t          dt                    \  }dz  dz
  dz  k    sJ t          dd          z  dz  cxk    rddz  z  dz
  k    sn J z  dz  z
  cxk    r | ddd          k    sn J dz  ddz  z  cxk    r | ddi          k    sn J t          dd          z  t          dd          dz  z  cxk    r9ddz  z  cxk    r,dz  dz  cxk    r | dt          dd          i          k    sn J t          t          fd           t          t          fd	           t          t          fd
           t          t          fd           t          t
          fd           t          t
          fd           d S )Nr   r   r   r   r>   r;   r=   c                       dz  S )Nr   rG   rH   s   r   rJ   z'test_puiseux_poly_div.<locals>.<lambda>   s    a!e r   c                       dz    dz   z  S Nr   r   rG   r^   s   r   rJ   z'test_puiseux_poly_div.<locals>.<lambda>       A!a%0 r   c                       dz    dz   z  S )Nr   rG   r^   s   r   rJ   z'test_puiseux_poly_div.<locals>.<lambda>   rn   r   c                       z  S rY   rG   r
   s   r   rJ   z'test_puiseux_poly_div.<locals>.<lambda>   rZ   r   c                       d z  S rY   rG   r^   s   r   rJ   z'test_puiseux_poly_div.<locals>.<lambda>   r_   r   c                      d  z  S rY   rG   r^   s   r   rJ   z'test_puiseux_poly_div.<locals>.<lambda>   rc   r   )r	   r   r   ZeroDivisionErrorrf   rg   rh   s     @@@r   test_puiseux_poly_divrt      s+   R  DAqb!!EB	1qAq5A::::r!Aww;!A#++++1a4!++++++q5A!G6666qq"!5!566666666q5AaeG,,,,qq%}},,,,,,a77Q;"Qq''!R%-RRRR1ac7RRRRac!eRRRRqq%AaAQ?R?RRRRRRR
mmmm,,,
:0000111
:0000111
:}}}}}%%%
9&&&&'''
9&&&&'''''r   c                     t          dt                    \  } t          dt                    \  }dz  dcxk    r | ddi          k    sn J dz  cxk    r | ddi          k    sn J dz  z  cxk    r | ddi          k    sn J t          dd          z   | t          dd          fdi          k    sJ dz  dz  cxk    r | d	di          k    sn J t          dd           z  dt          dd          z  z  cxk    r! | t          dd           fdi          k    sn J dz  dz  ddz  z  cxk    rRt          dd          z  cxk    r:t          dd          dz  z  cxk    r | d	t          dd          i          k    sn J ddz  z  dd
z  z  cxk    r | ddi          k    sn J ddz  z  dd
z  z  cxk    r |ddi          k    sn J t          t          fd           t          t
          fd           t          t
          fd           t          t
          fd           t          t
          fd           d S )Nr   r   r   rA   r<   r   rE   r>   r=   r?   )r?   c                       d z  S rY   rG   r^   s   r   rJ   z'test_puiseux_poly_pow.<locals>.<lambda>   s    ag r   c                       dz   dz  S )Nr   r>   rG   r^   s   r   rJ   z'test_puiseux_poly_pow.<locals>.<lambda>   s    A{ r   c                  0     dz   t          dd          z  S rm   r   r^   s   r   rJ   z'test_puiseux_poly_pow.<locals>.<lambda>   s    A1Q/ r   c                  0    d z  t          dd          z  S )Nr   r   ry   r^   s   r   rJ   z'test_puiseux_poly_pow.<locals>.<lambda>   s    !b1gg~ r   c                      d z  dz  S )Nr   r>   rG   )xzs   r   rJ   z'test_puiseux_poly_pow.<locals>.<lambda>   s    "rz r   )r	   r   r   r   rg   rf   )r   Rzr   r|   s     @@r   test_puiseux_poly_powr~      s$   R  DAq#r""FBa41$$$$4)$$$$$$a41$$$$4)$$$$$$a41Q3&&&&!!T1I,,&&&&&&b1gg:R!WWJ?++++++b5AaC((((11eQZ==((((((r!Awwh;!Ar!AwwJ,====!!r!Awwh[!,<*=*=======aC"91Q3TTTT2a7719TTTT1Q2TTTTE2aPQ77CSATATTTTTTTQT6Qq"uW----5!*------RU7aBh0000""eQZ..000000
9oooo&&&
:****+++
:////000
:----...
:))))*****r   c                     t          dt                    \  } }}|dz  dz                       |          d|z  k    sJ |dz  dz                       |          dk    sJ |dz  |dz  z                       |          d|z  k    sJ |t          dd          z  |t          dd          z  z                       |          t          dd          |t          dd           z  z  k    sJ ||z  t          dd          z                      |          t          dd          |t          dd          z  z  |t          dd           z  z  k    sJ d S )Nr   r   r   r   )r	   r   diff)r   r   r   s      r   test_puiseux_poly_diffr      sL   62&&GAq!qD1H??11$$$$qD1H??1""""qD1a4Ka  AaC''''r!AwwJBqGG#))!,,1QBqGG80CCCCCqS2a77N  ##r!Awwq"Qq''z'9!b1ggX+'EEEEEEEr   N)sympy.testing.pytestr   sympyr   r   r   sympy.polys.puiseuxr   r   r	   	sympy.abcr   r   r   r-   r6   r9   rC   rO   rT   rV   ri   rt   r~   r   rG   r   r   <module>r      s0  
 ( ' ' ' ' '           F F F F F F F F F F        - - - 5 5 5  (
 
 
	: 	: 	:: : :      : : :$( ( (<( ( ("+ + +&F F F F Fr   