a
    kº”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sFJ ‚||ksRJ ‚| tdtƒksdJ ‚| ttgtƒksxJ ‚| 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)ÚRZpxÚR2Úpx2© r   úL/var/www/auris/lib/python3.9/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sRJ ‚|jdks`J ‚|j	| ksnJ ‚|j
t| j
|ƒks„J ‚|jt| j|ƒksšJ ‚|j| j  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   ZgensZngensZ	poly_ringZzeror   ÚoneZ
zero_monomZmonomial_mul©ÚR1Úpx1Zpy1r   r   Z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sPJ ‚|dƒ|jksbJ ‚|tddƒƒtddƒ|j ks„J ‚| |¡|ks–J ‚| |¡|ks¨J ‚| dtdƒi¡d| |d  ksÎJ ‚| tddƒdftdƒi¡d|tddƒ  |d  ks
J ‚| d¡d|j ks$J ‚| d¡tdƒks<J ‚t | d¡¡sRJ ‚| 	d¡d|j kslJ ‚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rXtks^n J ‚||ksjJ ‚|j|d   kr„dksŠn J ‚||ks–J ‚|dks¢J ‚|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sFn J ‚|tddƒ d |tddƒ   kr‚| tddƒfdiƒksˆn J ‚|tddƒ d |tddƒ    krÈ| tddƒ fdiƒksÎn J ‚|tddƒ tddƒ |tddƒ   kr| tddƒfdiƒksn J ‚|tddƒ d |  krH| d	diƒksNn J ‚|tddƒ |tddƒ  |tddƒ   kr˜| tddƒfdiƒksžn J ‚d| |d  |  krÊ| d	diƒksÐn J ‚d|tddƒ  |tddƒ  d  kr| d
diƒksn J ‚d S )Nr
   r   r   ©©r   ©éÿÿÿÿr   r   éþÿÿÿé   r(   ©r   )r   r   ©r   r
   r   r   r   Útest_puiseux_poly_normalizationL   s    8BFL4P2r/   c                     sV  t dtƒ\} }| ¡ dgks J ‚t|ƒdgks2J ‚|d d  ¡ ddgksNJ ‚| dddœƒ ¡ ddgkslJ ‚| 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
ƒ ‰ ˆ tdd
ƒf dksêJ ‚tt‡ fdd„ƒ ˆ  ¡ tdd
ƒfdiksJ ‚| ˆ  ¡ ƒˆ ks0J ‚t tdd
ƒfdi| ¡ˆ ksRJ ‚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"   r.   r   r1   r   Útest_puiseux_poly_monomsX   s    *.r8   c                  C   s”   t dtƒ\} }t|ƒdksJ ‚t|tddƒ ƒdks8J ‚td| ƒdksLJ ‚td|d  d ƒdkshJ ‚t| jƒdkszJ ‚td| j ƒdksJ ‚d S )	Nr
   r   r   zx**(1/2)zx**(-1)z
1 + 2*x**2Ú1Ú2)r   r   Úreprr   r.   r   r   r   Útest_puiseux_poly_reprh   s    r<   c                  C   sÜ  t dtƒ\} }d| | |d|    kr<| dddœƒksBn J ‚td| | ƒdksZJ ‚d| d|  d|   kr†| ddiƒksŒn J ‚td| d|  ƒdks¨J ‚|tddƒ |tddƒ  d|tddƒ    krò| tddƒfdiƒksøn 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sdJ ‚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r®| ddtddƒfdiƒks´n J ‚td| |tddƒ  ƒ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   r;   r.   r   r   r   Útest_puiseux_poly_unifyr   s    42P*B*0 N2Vr=   c                     sh  t dtƒ\} ‰ t dtƒ\}‰ˆ d d }|
 |ks6J ‚| dˆ d  ksLJ ‚|| d|   krtdˆ d  d kszn J ‚|d d|   kržˆ d d ks¤n J ‚|tddƒ tddƒ|   krÚˆ d tddƒ ksàn J ‚|| dksðJ ‚|d d|   krˆ d ksn J ‚|tddƒ tddƒ |   krVˆ d tddƒ ks\n J ‚d| | d   kr„ˆ d  ksŠn J ‚tddƒ| | tddƒ   krÈˆ d  tddƒ ksÎn J ‚|| ˆ d dˆ d   d ksôJ ‚|d d|   kr|ksn J ‚d| |d   krFdˆ d  d ksLn J ‚|tddƒ tddƒ|   krtddƒˆ d  tddƒ ks–n 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   r3   —   r4   z(test_puiseux_poly_arit.<locals>.<lambda>c                      s   ˆ ˆ S r>   r   r   r	   r   r   r3   ˜   r4   c                      s   ˆ ˆ S r>   r   r   r	   r   r   r3   ™   r4   c                      s   ˆ d  S r>   r   r   ©r
   r   r   r3   š   r4   c                      s   ˆ d  S r>   r   r   r?   r   r   r3   ›   r4   c                      s   ˆ d  S r>   r   r   r?   r   r   r3   œ   r4   c                      s   d ˆ  S r>   r   r   r?   r   r   r3      r4   c                      s   d ˆ  S r>   r   r   r?   r   r   r3   ž   r4   c                      s   d ˆ  S r>   r   r   r?   r   r   r3   Ÿ   r4   )r   r   r   Ú
ValueErrorÚ	TypeError)r   r   r2   r   r	   r   Útest_puiseux_poly_arit„   s6    .*<*B.D&&2J&rB   c                     s¨  t dtƒ\} ‰t dtƒ\}‰ˆd d ‰ ˆ d ˆ ks8J ‚ˆ tddƒ dˆ    krfdˆd  d ksln J ‚ˆ ˆ ˆdˆ    kr–| dddœƒksœn J ‚dˆ dˆd    krÄ| ddiƒksÊn J ‚tddƒˆ tddƒˆd    kr0ddˆ    kr0dˆ d   kr0| dtddƒiƒks6n 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   r1   r   r   r3   «   r4   z'test_puiseux_poly_div.<locals>.<lambda>c                      s   ˆ d ˆ d  S ©Nr   r   r   r   r?   r   r   r3   ¬   r4   c                      s   ˆ d ˆ d  S )Nr   r   r   r?   r   r   r3   ­   r4   c                      s   ˆ ˆ S r>   r   r   r	   r   r   r3   ®   r4   c                      s   ˆ d  S r>   r   r   r?   r   r   r3   ¯   r4   c                      s   d ˆ  S r>   r   r   r?   r   r   r3   °   r4   )r   r   r   ÚZeroDivisionErrorr@   rA   )r   r   r   )r2   r
   r   r   Útest_puiseux_poly_div¢   s    40.lrE   c                     sb  t dtƒ\} ‰ t dtƒ\}‰ˆ d d  kr<| ddiƒksBn J ‚ˆ d ˆ   krb| ddiƒkshn J ‚ˆ d ˆ ˆ    krŒ| ddiƒks’n J ‚ˆ tddƒ | tddƒfdiƒks¸J ‚ˆ d dˆ    krÜ| d	diƒksân J ‚ˆ tddƒ  dˆ tddƒ    kr&| tddƒ fdiƒks,n 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˜n J ‚dˆ d  dˆ d
    krÈ| ddiƒksÎn J ‚dˆd  dˆd
    krþ|ddiƒksn 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   r0   r*   r)   r+   )r+   c                      s   ˆ d  S r>   r   r   r?   r   r   r3   ¿   r4   z'test_puiseux_poly_pow.<locals>.<lambda>c                      s   ˆ d d S )Nr   r*   r   r   r?   r   r   r3   À   r4   c                      s   ˆ d t ddƒ S rC   ©r   r   r?   r   r   r3   Á   r4   c                      s   dˆ  t ddƒ S )Nr   r   rF   r   r?   r   r   r3   Â   r4   c                      s   dˆ  d S )Nr   r*   r   r   )Úxzr   r   r3   Ã   r4   )r   r   r   r   rA   r@   )r   ZRzr   )r
   rG   r   Útest_puiseux_poly_pow³   s     &&*&*Jl66rH   c                  C   sò   t dtƒ\} }}|d d  |¡d| ks.J ‚|d d  |¡dksHJ ‚|d |d   |¡d| ksjJ ‚|tddƒ |tddƒ   |¡tddƒ|tddƒ   ksªJ ‚|| tddƒ  |¡tddƒ|tddƒ  |tddƒ   ksîJ ‚d S )Nr   r   r   r   )r   r   Údiff)r   r
   r   r   r   r   Útest_puiseux_poly_diffÆ   s    "@rJ   N)Zsympy.testing.pytestr   Zsympyr   r   r   Zsympy.polys.puiseuxr   r   r   Z	sympy.abcr
   r   r   r!   r%   r&   r/   r8   r<   r=   rB   rE   rH   rJ   r   r   r   r   Ú<module>   s   
