o
    *Ī®c/  ć                   @   sD  d dl mZ d dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d dlmZmZmZ d dlmZ d dlm Z  d dl!m"Z"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& Z0d'd( Z1d)d* Z2d+d, Z3d-S ).é    )ŚMul)ŚIŚRationalŚpi)ŚPow)ŚS)ŚSymbol)ŚexpŚlog)Śsqrt)ŚcosŚsin)ŚO)Śexpand_numer)ŚexpandŚexpand_multinomialŚexpand_power_base)Śraises)Śverify_numerically)ŚxŚyŚzc                   C   sØ   dt td  d jddddt td   t td d  ks"J dt td  dt td   jdddt td  t td  t td t td   ksRJ d S )Né   é   é   F)r
   é   )r
   r   r   © r   r   śC/tmp/pip-target-vg8gfxp4/lib/python/sympy/core/tests/test_expand.pyŚtest_expand_no_log   s   ’"’ ’2’r   c                   C   sL   dt  ddt  d   jdddt  dt  d  t dt  d   ks$J d S )Nr   r   F©Śmultinomial)r   r   r   r   r   r   Śtest_expand_no_multinomial   s   "’r!   c                  C   s   t t d } |  ” ddt  t t d  td   ksJ | jddt t d ks*J t t d } |  ” ddt  t  t dt  t t  t d  td   ksPJ | jddt t d ks^J t t d t t d  } |  ” ddt  t t d  td   ksJ | jddt t d ksJ d S )	Néž’’’r   r   Fr   éż’’’r   éü’’’©r   r   r   )Śexprr   r   r   Ś#test_expand_negative_integer_powers   s   ,@, r'   c                  C   s¼  t ddd} t ddd}t ddd}t d}t d}t dd	d
}t dd	d}t dd	d}t dd	d}t ddd}	|| |   ” ||  ||  ksJJ || |   ” | | ||  ks\J | | d  ” | d | |  ||   |d  ksvJ | | d  ” | d | |d |   | |d   || d   | d  |d  | | |   ||  |  ks¬J ||  | | d  d  ” |d |  |d  |  ksČJ ||  | | d  d jdd|d | | | d  d  ksčJ ||  | | d  d  ” |d | |d  | d   ksJ ||  | | d  d jd	d|d |  |d  | d  ks(J ||  | d  ” |d |  | |  | ksAJ ||  d  ” |d | d  ksTJ ||  | |  ” || | | |  kskJ ||  || | |  d   |  ” || | | |  |d  |  |  ksJ | | | | d   ” dks£J ||  |  ” || | |  ks¶J ||  | | d  d  ” |d |  |d  |  ksÓJ ||  | |  | |  d  ” |d |  | | |d   | |d   |  | | d  ksJ ||  | |  | |  d  ” | |d  | d  |d  | d  |d  | d  |d  ks3J || |  | | d  |  ” || ||  | | |  |  ksVJ ||| |  |  ” || ||d   ||d   ksuJ tt|d| | |ddtddd}
|
 ” | | |  | ksJ t|| | |   ” t|||  | |  ks±J t| |  ” t| | ksÄJ td| |d  d|d  | |d   ksŽJ td| | ||  d||  | ||   | ||   ksJ td| | | d| ||  | |  ksJ td| |	 | d| | |	 |  ks3J tt| | t| | ksDJ ttd| | tdt| |  ks\J d S )NŚAF©ŚcommutativeŚBŚCŚaŚbŚiT)ŚintegerŚn©ŚnegativeŚmŚp)Śpolarr   r   é’’’’©Śdeep©Śforcer   r"   ©Śevaluate)r   r   r   r   r   r   )r(   r+   r,   r-   r.   r/   r1   r4   r5   ŚnpŚer   r   r   Śtest_expand_non_commutative+   sf   $$4<’’
’

’8@>B2&.N"&:6
’:
’F>$6&4F40"4r@   c                  C   sÄ  t t tdd } | d  ” | ksJ | d  ” t |  t|   ks#J | d  ” t d |  dt  t |   td |   ks?J d| d   ” d|  ksMJ d| d   ” dt |  t|    ksaJ d| d   ” dt d |  dt  t |   td |    ksJ t t tdd } | d  ” | ksJ | d  ” | d ks J | d  ” t |  t|   ks°J | d  ” t | d  t| d   ksÄJ | d  ” t d |  dt  t |   td |   ksąJ d S )Nr   r   r   é   r   é   )r   r   ŚRr   )r-   r   r   r   Śtest_expand_radicals\   s    8(@ (<rD   c                   C   s¤   t t d jddt d td  ksJ t tdt  d jddt d dtd td   ks2J t td  jddtd ksBJ ttdd  ttdd  d S )	Né   ©Śmodulusr   é
   r   c                   S   s   t t d jddS )NrE   r   rF   r%   r   r   r   r   Ś<lambda>u   ó    z%test_expand_modulus.<locals>.<lambda>c                   S   s   t t d jt dS )NrE   rF   r%   r   r   r   r   rI   v   rJ   )r   r   r   r   r   Ś
ValueErrorr   r   r   r   Śtest_expand_modulusp   s
   (< rL   c                   C   s   t tt t  dtt t    ” t d t t  t tt t   ks$J t tt t  dt tt t     ” t d t d t  t tt t   ksLJ d S )Nr   r   r   )r   r   r   r   r   r   r   r   Śtest_issue_5743y   s   ’’"’’’&’rM   c                  C   sä   t tt t t td  ddtt td  td t  ks J t tt t t td  ddtt td  ttd   ks@J t tt t t td  ddttt  td t  ks^J td d t } t| dd| kspJ d S )	Nr   T)Śfracr   )Śnumer)ŚdenomFr   )r   r   r   r   ©Śeqr   r   r   Śtest_expand_frac   s   ’’’rS   c                  C   s   t  tdt  t d  dttdd   tt  } | jdds#J t  tdt  t d  dttdd  tt  } | jddsEJ d S )Nr#   r   r   r   T)Ścomplex)r   r	   r   r   r   r   r   rC   rQ   r   r   r   Śtest_issue_6121   s   64rU   c                   C   s  t tt t d td td  td  ksJ t tt t t js%J t tt t t ddtt tt  tt  ks?J t ttt d  d td td  td  ksYJ t ttt d t t jsjJ t ttt d t t ddttt d t tt  ksJ t ttt d t t ddttd td  t t ksŖJ t ttd tdt ksŗJ t tttt d tdt tdt  ksŌJ t ttt t tt d tdtt t  tdt  ksöJ t ttt t tt d dddtdtt  tt  tdt  ksJ t tttt t js.J t tttt t ddttt ttt  ksKJ d S )	Nr   Tr:   r   r   é   r8   )r9   r;   )r   r   r   r   Śis_Powr   r	   r   r   r   r   Śtest_expand_power_base   sJ   044"’’’’ 4’’’’’"
’ ’’rX   c                  C   sö  t d} t ddd}t d}td}| | | }||| |  ks"J | ” | |  ||  tdks4J | | | |  }|| | d ksFJ | ” d|  | | d  |d  ksZJ | | | | td  }|| | d	 kspJ | ” d	| | d  d	|  |d   | d	  |d	  ksJ | ” d	| | d  d	|  |d   | d	  |d	  ks¬J | | | |  ||  }|| | | |  ||  ksČJ | ” d|  | | || d   || d   ||d   | |d   ||d   | |d   ksśJ | td
 | }|d
|  d ksJ | ” d
d|   d| d   d| d	   d| d   | d  ks0J | | | | | |  }|d|  | | | |  ksMJ | ” d|  d|  d|  d|  |  ||  | |  | d  |d  ksvJ t d}t|| d
 }| |dd”|d  }| ” d
|d d  t|d  ks¢J |tt  |tt   |t  }|jddd||t |t  |t |t    t|t |t  |t |t     ksąJ |jdddd||tt  |tt    t|tt  |tt     ksJ ||td
 d   }|jdd|d |td
 d   ks&J |tt  t }|jdddd|t tt t  |t |t  t fv sMJ dt t  ” dt tt  ks`J t ddd}t|  ” j	sqJ t| jddt
t| ksJ dt | t  ” dt |t  tt  ksJ dt | | t  ” dt |t  |t t  ks¹J dt | | t jdddt |t  |t  tt  ksŚJ dt | t  t  ” dt tt  |t  t t  ksūJ dt | t  | t  ” dt tt  |t  | t t  ks J t ddd}t ddd}d| t | t  ” dt | t  |t t  ksJJ d| t | | t  ” dt | t  | t  | t t  kspJ td| | tdt|  t| ksJ t|t d jddt| tt t|tt  d t|d ttd  dt| tt t| tt  t|d ttd   fv sŌJ t d}d
}	td
dD ]	}
|	||
  }	qß|	 ” }	|	 d|d  ”słJ d S )Nr-   r.   T©ŚpositiveŚcrA   r   r   r   r   rH   r   r   rV   F)Ś	power_expŚ
power_base)r\   r]   r9   r8   )r]   Śmulr9   r5   r:   r1   r2   r4   r"   )Śtrigé   iSé   )r   rC   r   r	   Śnseriesr   r   r   r   rW   r   r   r   r   ŚrangeŚhas)r-   r.   r[   r5   r?   r   Śsr1   r4   ŚWr/   r   r   r   Śtest_expand_arit«   s   $(<< dF"R* ’’"’’’*’’’&$2:BBJ<L0$Ržrg   c                  C   st   t dddd} |  ” dksJ t dddt dd} |  ” dt ks#J t dtdddd} |  ” tddks8J d S )Nr   r   Fr<   rV   r   )r   r   r   rC   )r?   r   r   r   Śtest_expand_mulš   s   rh   c                  C   s   t d} t d}| | d }| ” | d |d  d|  |  ks"J ddd|    d }| ” dd| d   d|   ks>J d| |  }| ” d|  d|  ksRJ t dd	d
}t dd	d
}d||   ” d||  ksnJ || |   ” || |  ks~J dS )zTest for Pow.expand()r-   r.   r   r   é	   r   é   r(   Fr)   r+   N)r   r   )r-   r.   r5   r(   r+   r   r   r   Śtest_power_expandś   s   ($ $rk   c                  C   s>  ddt   } | t  |  d  d|  t   }t|dt d dt   d  dt d dt     dt  d   ks8J dt  d }tdt |  d t d t d dt d   dt d   dt   d  dt  t d dt   d   d kstJ tdtt  |  d dt t t d dt   d   t d dt  t  td  t d dt d   dt d   dt   d   d ksøJ tddd	}d| d }tdt |  d t d dd|  d|d   d|d   |d   dt  dd|  |d    d ksśJ tdtt  |  d t t dd|  |d   d t d dt  t  td  dd|  d|d   d|d   |d    d ks?J tdtt  |  d t t dd|  |d   d t d dt  t  td  dd|  d|d   d|d   |d   d  t d dt d  t  dt  td   td  dd|  d
|d   d|d   d
|d   d|d   |d    d ksĄJ tt d |d d  ddd}t|t d dt   d dd|  d|d   d|d   |d   ksöJ t|d d ddd}t|dd|  d|d   d|d   |d  ksJ dd }dtjfD ] }dtddfD ]}t	ddD ]} |||| sBJ q7q0q'tt d t
| d ddt   t d  t
| kseJ tt d t
| d ddt   dt d   t d  t
| ksJ tdt t d  ddt t   ksJ d S )Nr7   r   r   r   r   rV   r(   Fr)   ra   é   rA   r<   c                 S   s   | t |  | }t|t|S )N)r   r   r   )r-   r.   r1   r?   r   r   r   Śok0  s   z!test_issues_5919_6830.<locals>.oké   )r   r   r   r   r   r   r   ŚHalfrC   rc   r   )r1   r   r5   r(   rR   rm   r-   r.   r   r   r   Śtest_issues_5919_6830  s   FR’8*’’’R’8*’’
’B
’
’’’8
’
’
’
’’’ž
’>
’:’’
’&
’.rp   c                  C   sD   t ddd} tt| d t| d d  dtd  dks J d S )NŚtTrY   r   r   r   )r   r   r
   )rq   r   r   r   Śtest_expand_log@  s   8rr   N)4Śsympy.core.mulr   Śsympy.core.numbersr   r   rC   r   Śsympy.core.powerr   Śsympy.core.singletonr   Śsympy.core.symbolr   Ś&sympy.functions.elementary.exponentialr	   r
   Ś(sympy.functions.elementary.miscellaneousr   Ś(sympy.functions.elementary.trigonometricr   r   Śsympy.series.orderr   Śsympy.simplify.radsimpr   Śsympy.core.functionr   r   r   Śsympy.testing.pytestr   Śsympy.core.randomr   Ś	sympy.abcr   r   r   r   r!   r'   r@   rD   rL   rM   rS   rU   rX   rg   rh   rk   rp   rr   r   r   r   r   Ś<module>   s:    1	E
3