o
    GZŽhˆ  ã                   @   s¨   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d„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )é    )Úraises)ÚZZÚQQÚring)ÚPuiseuxRingÚPuiseuxPolyÚpuiseux_ring©ÚxÚyc                  C   sÎ   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s2J ‚| ttgtƒks<J ‚| tdtƒksEJ ‚| tdtƒksNJ ‚| tdtƒksWJ ‚| tks]J ‚t| ƒdkseJ ‚d S )Nr
   r   úx, yzPuiseuxRing((x,), QQ))r   r   r
   Ú
isinstancer   r   r   Ústr)ÚRZpxÚR2Úpx2© r   úM/var/www/auris/lib/python3.10/site-packages/sympy/polys/tests/test_puiseux.pyÚtest_puiseux_ring   s   r   c                  C   sÒ   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s0J ‚|j	| ks7J ‚|j
t| j
|ƒksBJ ‚|jt| j|ƒksMJ ‚|j| j  krZdks]J ‚ J ‚| dd¡dksgJ ‚d S )Nr   é   )r   r   ©é   r   )é   é   )r   é   )r   r   r   ÚdomainÚsymbolsr
   r   ZgensZngensZ	poly_ringÚzeror   ÚoneZ
zero_monomZmonomial_mul©ÚR1Úpx1Zpy1r   r   Úpy2r   r   r   Útest_puiseux_ring_attributes   s    r#   c                  C   sž  t dtƒ\} }}tdtƒ\}}}|ddiƒd| |d  ks J ‚||ƒ|ks(J ‚|dƒ|jks1J ‚|tddƒƒtddƒ|j ksBJ ‚| |¡|ksKJ ‚| |¡|ksTJ ‚| dtdƒi¡d| |d  ksgJ ‚| tddƒdftdƒi¡d|tddƒ  |d  ks„J ‚| d¡d|j ksJ ‚| d¡tdƒks›J ‚t | d¡¡s¥J ‚| 	d¡d|j 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   Z	from_polyÚ	from_dictÚfrom_intZ
domain_newZof_typeZ
ground_newr   r   Úindexr   r   r   r   Útest_puiseux_ring_methods+   s"    "&:r'   c                  C   sÀ   t dtƒ\} }tdtƒ\}}t||ƒ|ksJ ‚|j |ksJ ‚| ¡ | ¡   kr-tks0J ‚ J ‚||ks6J ‚|j|d   krDdksGJ ‚ J ‚||ksMJ ‚|dksSJ ‚|tddƒ |ks^J ‚d S )Nr
   r   r   g       @r   )r   r   r   r   Zas_exprr
   r   )r    r!   r   r   r   r   r   Útest_puiseux_poly?   s   $"r(   c                  C   s  t dtƒ\} }|d d | |d|    kr!| dddœƒks$J ‚ J ‚|tddƒ d |tddƒ   krC| tddƒfdiƒksFJ ‚ J ‚|tddƒ d |tddƒ    krg| tddƒ fdiƒksjJ ‚ J ‚|tddƒ tddƒ |tddƒ   krŒ| tddƒfdiƒksJ ‚ J ‚|tddƒ d |  kr¥| d	diƒks¨J ‚ J ‚|tddƒ |tddƒ  |tddƒ   krÌ| tddƒfdiƒksÏJ ‚ J ‚d| |d  |  krä| d	diƒksçJ ‚ J ‚d|tddƒ  |tddƒ  d  kr| d
diƒks	J ‚ J ‚d S )Nr
   r   r   ©©r   ©éÿÿÿÿr   r   éþÿÿÿé   r*   ©r   )r   r   ©r   r
   r   r   r   Útest_puiseux_poly_normalizationL   s   :DHJ2N0Hr1   c                     sP  t dtƒ\} }| ¡ dgksJ ‚t|ƒdgksJ ‚|d d  ¡ ddgks'J ‚| dddœƒ ¡ ddgks6J ‚| tdd	ƒfdiƒ ¡ tdd	ƒfgksKJ ‚| tdd	ƒ fdiƒ ¡ tdd	ƒ fgksbJ ‚|tdd
ƒ ‰ ˆ tdd
ƒf dksuJ ‚tt‡ fdd„ƒ ˆ  ¡ tdd
ƒfdiksŒJ ‚| ˆ  ¡ ƒˆ ks–J ‚t tdd
ƒfdi| ¡ˆ ks¦J ‚d S )Nr
   r*   r   r   ©r   r/   r)   r+   r   r   c                      s   ˆ d S )Nr*   r   r   ©Úpr   r   Ú<lambda>b   ó    z*test_puiseux_poly_monoms.<locals>.<lambda>)	r   r   ZmonomsÚlistr   ÚKeyErrorÚto_dictr   r$   r0   r   r3   r   Útest_puiseux_poly_monomsX   s   *.$r:   c                  C   s”   t dtƒ\} }t|ƒdksJ ‚t|tddƒ ƒdksJ ‚td| ƒdks&J ‚td|d  d ƒdks4J ‚t| jƒdks=J ‚td| j ƒdksHJ ‚d S )	Nr
   r   r   zx**(1/2)zx**(-1)z
1 + 2*x**2Ú1Ú2)r   r   Úreprr   r0   r   r   r   Útest_puiseux_poly_reprh   s   r>   c                  C   sÚ  t dtƒ\} }d| | |d|    kr| dddœƒks"J ‚ J ‚td| | ƒdks.J ‚d| d|  d|   krE| ddiƒksHJ ‚ J ‚td| d|  ƒdksVJ ‚|tddƒ |tddƒ  d|tddƒ    kr|| tddƒfdiƒksJ ‚ J ‚t|tddƒ |tddƒ  ƒdks“J ‚|tddƒ |tdd	ƒ  | tddƒfdtdd	ƒfdiƒks³J ‚t|tddƒ |tdd	ƒ  ƒd
ksÇJ ‚||tddƒ  | ddtddƒfdiƒksÞJ ‚t||tddƒ  ƒdksíJ ‚d|tddƒ  d|tdd	ƒ   | tddƒ fdtdd	ƒ fdiƒksJ ‚td|tddƒ  d|tdd	ƒ   ƒdks-J ‚d| |tddƒ  |tddƒ d|    krV| ddtddƒfdiƒksYJ ‚ J ‚td| |tddƒ  ƒdkskJ ‚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   r=   r0   r   r   r   Útest_puiseux_poly_unifyr   s   64R(@(.N2X(r?   c                     sj  t dtƒ\} ‰ t dtƒ\}‰ˆ d d }|
 |ksJ ‚| dˆ d  ks&J ‚|| d|   kr;dˆ d  d ks>J ‚ J ‚|d d|   krQˆ d d ksTJ ‚ J ‚|tddƒ tddƒ|   krpˆ d tddƒ kssJ ‚ J ‚|| dks{J ‚|d d|   krŒˆ d ksJ ‚ J ‚|tddƒ tddƒ |   kr¬ˆ d tddƒ ks¯J ‚ J ‚d| | d   krÂˆ d  ksÅJ ‚ J ‚tddƒ| | tddƒ   krãˆ d  tddƒ ksæJ ‚ J ‚|| ˆ d dˆ d   d ksøJ ‚|d d|   kr	|ksJ ‚ J ‚d| |d   kr#dˆ d  d ks&J ‚ J ‚|tddƒ tddƒ|   krItddƒˆ d  tddƒ ksLJ ‚ J ‚ˆ tddƒ ˆ tddƒ  ˆ ks_J ‚tt‡ ‡fd	d
„ƒ tt‡ ‡fdd
„ƒ tt‡ ‡fdd
„ƒ tt‡ fdd
„ƒ tt‡ fdd
„ƒ tt‡ fdd
„ƒ tt‡ fdd
„ƒ tt‡ fdd
„ƒ tt‡ fdd
„ƒ d S )Nr
   r   r   r   r,   r   r   r   c                      s   ˆ ˆ S ©Nr   r   r	   r   r   r5   —   r6   z(test_puiseux_poly_arit.<locals>.<lambda>c                      s   ˆ ˆ S r@   r   r   r	   r   r   r5   ˜   r6   c                      s   ˆ ˆ S r@   r   r   r	   r   r   r5   ™   r6   c                      s   ˆ d  S r@   r   r   ©r
   r   r   r5   š   r6   c                      s   ˆ d  S r@   r   r   rA   r   r   r5   ›   r6   c                      s   ˆ d  S r@   r   r   rA   r   r   r5   œ   r6   c                      s   d ˆ  S r@   r   r   rA   r   r   r5      r6   c                      s   d ˆ  S r@   r   r   rA   r   r   r5   ž   r6   c                      s   d ˆ  S r@   r   r   rA   r   r   r5   Ÿ   r6   )r   r   r   Ú
ValueErrorÚ	TypeError)r   r   r4   r   r	   r   Útest_puiseux_poly_arit„   s6   0,>(@,B$(4L&rD   c                     s¨  t dtƒ\} ‰t dtƒ\}‰ˆd d ‰ ˆ d ˆ ksJ ‚ˆ tddƒ dˆ    kr4dˆd  d ks7J ‚ J ‚ˆ ˆ ˆdˆ    krM| dddœƒksPJ ‚ J ‚dˆ dˆd    kre| ddiƒkshJ ‚ J ‚tddƒˆ tddƒˆd    kr˜ddˆ    kr˜dˆ d   kr˜| dtddƒiƒks›J ‚ J ‚tt‡ fdd	„ƒ tt‡fd
d	„ƒ tt‡fdd	„ƒ tt‡‡fdd	„ƒ tt‡fdd	„ƒ tt‡fdd	„ƒ d S )Nr
   r   r   r   r,   r)   r+   c                      s   ˆ d S )Nr   r   r   r3   r   r   r5   «   r6   z'test_puiseux_poly_div.<locals>.<lambda>c                      s   ˆ d ˆ d  S ©Nr   r   r   r   rA   r   r   r5   ¬   ó    c                      s   ˆ d ˆ d  S )Nr   r   r   rA   r   r   r5   ­   rF   c                      s   ˆ ˆ S r@   r   r   r	   r   r   r5   ®   r6   c                      s   ˆ d  S r@   r   r   rA   r   r   r5   ¯   r6   c                      s   d ˆ  S r@   r   r   rA   r   r   r5   °   r6   )r   r   r   ÚZeroDivisionErrorrB   rC   )r   r   r   )r4   r
   r   r   Útest_puiseux_poly_div¢   s   620frH   c                     s`  t dtƒ\} ‰ t dtƒ\}‰ˆ d d  kr| ddiƒks"J ‚ J ‚ˆ d ˆ   kr3| ddiƒks6J ‚ J ‚ˆ d ˆ ˆ    krI| ddiƒksLJ ‚ J ‚ˆ tddƒ | tddƒfdiƒks_J ‚ˆ d dˆ    krr| d	diƒksuJ ‚ J ‚ˆ tddƒ  dˆ tddƒ    kr–| tddƒ fdiƒks™J ‚ J ‚dˆ  d ddˆ     krÉtddƒˆ    krÉtddƒˆ d    krÉ| d	tddƒiƒksÌJ ‚ J ‚dˆ d  dˆ d
    krã| ddiƒksæJ ‚ J ‚dˆd  dˆd
    krþ|ddiƒksJ ‚ J ‚tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡fdd„ƒ d S )Nr
   r   r   r/   r*   r   r2   r,   r+   r-   )r-   c                      s   ˆ d  S r@   r   r   rA   r   r   r5   ¿   r6   z'test_puiseux_poly_pow.<locals>.<lambda>c                      s   ˆ d d S )Nr   r,   r   r   rA   r   r   r5   À   ó    c                      s   ˆ d t ddƒ S rE   ©r   r   rA   r   r   r5   Á   ó    c                      s   dˆ  t ddƒ S )Nr   r   rJ   r   rA   r   r   r5   Â   rK   c                      s   dˆ  d S )Nr   r,   r   r   )Úxzr   r   r5   Ã   rI   )r   r   r   r   rC   rB   )r   ZRzr   )r
   rL   r   Útest_puiseux_poly_pow³   s    ((,&,Hf46rM   c                  C   sò   t dtƒ\} }}|d d  |¡d| ksJ ‚|d d  |¡dks$J ‚|d |d   |¡d| ks5J ‚|tddƒ |tddƒ   |¡tddƒ|tddƒ   ksUJ ‚|| tddƒ  |¡tddƒ|tddƒ  |tddƒ   kswJ ‚d S )Nr   r   r   r   )r   r   Údiff)r   r
   r   r   r   r   Útest_puiseux_poly_diffÆ   s   "@HrO   N)Zsympy.testing.pytestr   Zsympyr   r   r   Zsympy.polys.puiseuxr   r   r   Z	sympy.abcr
   r   r   r#   r'   r(   r1   r:   r>   r?   rD   rH   rM   rO   r   r   r   r   Ú<module>   s    
