
    gK                        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lmZmZmZmZmZmZ d dlmZmZ d d	lmZmZmZmZmZm Z  d d
l!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZD d dlEmFZFmGZGmHZHmIZImJZJmKZK d ZLd ZMd ZNd ZOd ZPd ZQd ZRd ZSd ZTd ZUd ZVd ZWd ZXd ZYd ZZd Z[d Z\d Z]d  Z^d! Z_d" Z`d# Zad$ Zbd% Zcd& Zdd' Zed( Zfd) Zgd* Zhd+ Zid,S )-    )AddMul)IRationalpi)evaluate)S)DummySymbolsymbols)coshcothcschsechsinhtanh)rootsqrt)coscotcscsecsintan)powsimp)LTR1TR10TR10iTR11_TR11TR12TR12iTR13TR14TR15TR16TR111TR2TR2iTR3TR4TR5TR6TR7TR8TR9TRmorrie_TR56TRpowerhyper_as_trigfuprocess_common_addends
trig_splitas_f_sign_1)verify_numerically)abcxyzc                      t          dt          t                    z  t          t                    z             dt	          t                    z  dt          t                    z  z   k    sJ d S )N      )r   r   r?   r   r   r        X/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/simplify/tests/test_fu.pytest_TR1rH      sO    qQx#a&& !!Qs1vvX#a&&%8888888rF   c            	         t          t          t                              t          t                    t	          t                    z  k    sJ t          t          t                              t	          t                    t          t                    z  k    sJ t          t          t          t                    t          t                    t	          t                    z  z
                      dk    sJ d S )Nr   )r*   r   r?   r   r   r   rE   rF   rG   test_TR2rJ      s    s1vv;;#a&&Q-''''s1vv;;#a&&Q-''''s3q66CFF3q66M)**++q000000rF   c                  l   t          dt          z  t          t          z  z            dt          z  t          z  k    sJ t          t	          t                    t          t                    z            t          t                    k    sJ t          t	          t                    t	          t                    z  t          t                    z            t          t                    t	          t                    z  k    sJ t          dt	          t                    t          t                    z  z            dt          t                    z  k    sJ t          dt	          t                    t	          t                    z  t          t                    z  z            dt          t                    z  t	          t                    z  k    sJ t          t	          t                    dz  t          t                    dz   z            t	          t                    t          t                    dz   z  dz  k    sJ t          t	          t                    dz  t          t                    dz   z  d          t          t          dz            dz  k    sJ t          t	          d          t          d          dz   z  d          t          t          j                  k    sJ t          t	          d          t          d          dz   z  d          t          d          k    sJ t          t	          d          t          d          dz   z  d          t          d          k    sJ t          t	          d          t          d          dz   z  d          t          dt          j        z            k    sJ t          t          d          dz   t	          d          z  d          dt          t          j                  z  k    sJ t          t          d          dz   t	          d          z  d          dt          d          z  k    sJ t          t          d          dz   t	          d          z  d          dt          d          z  k    sJ t          t          d          dz   t	          d          z  d          dt          dt          j        z            z  k    sJ t          t          d          dz   t           z  t	          d          t          z  z  d          t          t          j                  t          z  k    sJ t          t          d          dz   t           z  t	          d          t          z  z  d          t          d          t          z  k    sJ t          t          d          dz   t           z  t	          d          t          z  z  d          t          d          dz   t           z  t	          d          t          z  z  k    sJ t          t          d          dz   t           z  t	          d          t          z  z  d          t          d          dz   t           z  t	          d          t          z  z  k    sJ t          t          d          dz   t          z  t	          d          t           z  z  d          t          t          j                  t           z  k    sJ t          t          d          dz   t          z  t	          d          t           z  z  d          t          d          t           z  k    sJ t          t          d          dz   t          z  t	          d          t           z  z  d          t          d          dz   t          z  t	          d          t           z  z  k    sJ t          t          d          dz   t          z  t	          d          t           z  z  d          t          d          dz   t          z  t	          d          t           z  z  k    sJ t          dd          } t          t          d          dz   | z  t	          d          |  z  z  d          t          dt          j        z            |  z  k    sJ t          dt          d          dz   | z  t	          d          |  z  z  z  d          t          dt          j        z            | z  k    sJ d S )	NrC   rD   T)half      iinteger)r   r?   r@   r+   r   r   r   r
   Halfr<   r   )rO   s    rG   	test_TR2irS      s   
 1a419!A#))))As1vv#a&&((((As1vvc!ff$%%QA66663q66#a&&=!""aAh....3q66#a&&=Q'())Qs1vvXc!ff_<<<<Aq#a&&1*%&&#a&&#a&&1**=a*?????Aq#a&&1*%D111S1XXaZ????AA
#$///3qv;;>>>>AA
#$///3q669999AA
#$///3q669999AA
#$///3qx==@@@@Q!SVV#$///1S[[=@@@@Q!SVV#$///1SVV8;;;;Q!SVV#$///1SVV8;;;;Q!SVV#$///1S16]]?BBBBQ!r"3q6619,4888CKKNJJJJQ!r"3q6619,4888CFFAIEEEEQ!r"3q6619,4888SVVaZA2<NsSTvvWXy<XXXXXQ!r"3q6619,4888SVVaZA2<NsSTvvWXy<XXXXXQ!aA!,4888CKK1"<MMMMMQ!aA!,4888CFFaRLHHHHQ!aA!,4888SVVaZ!OCPQFFVWUWL<XXXXXQ!aA!,4888SVVaZ!OCPQFFVWUWL<XXXXXT"""A#a&&1*qQ1"-T:::c!AF(mmqb>QQQQQCFFQJ?3q66QB</0t<<<AafHq@PPPPPPPrF   c                     t          t          t          t          t          t          z
  z  z
                      t          t          t          t          z
  z  t          z             k    sJ t          t          dz  t          z             t          t                     k    sJ t          dt          z  dz  t          z             t          t                     k    sJ t          t
          t          t          t          t          fD ]T}  | t          t          dd          z            }t          |          }t          ||          r|j        |j        k    sJ Ut          d          5  t          dt          z  dz            }d d d            n# 1 swxY w Y   |                    dt          z            r(t          |          t          t          dz            k    sJ d S )	NrC            F	         )r,   r   r@   r?   r   r   r   r   r   r   r   r;   funcr	   has)frO   jeqs       rG   test_TR3r`   B   s   s1q!a%y=!!""c!QU)a-&8&88888r!tax==SVVG####r"uQw{Aw&&&&3S#s+ = =Ab!Q  FF!!Q''<AFaf,<,<,<,<,<	%  2b\\              66!B$<<1CGGs2b5zz111111s   'FFFc                  4   dt           dz  t           dz  t           dz  t           dz  fD ]o} t          d          5  t          |           }d d d            n# 1 swxY w Y   t          |t                    r t	          |          t          |           k    sJ pd S )Nr      rM   rV   rC   F)r   r	   r   
isinstancer-   )rO   r_   s     rG   test_TR4rd   Q   s    Ar!tRT2a4( 9 9e__ 	 	QB	 	 	 	 	 	 	 	 	 	 	 	 	 	 	"c""8s2ww#a&&'8'8'8'8'89 9s   AA	A	c                     d } t          t          t                    dz  t          t          | dd          t          t                    t          t                    dz   dz   z  k    sJ t          t          t                    dz  t          t          | dd          t          t                    dz  k    sJ t          t          t                    dz  t          t          | dd          t          t                    dz   dz   dz  k    sJ t          t          t                    dz  t          t          | dd	          t          t                    dz  k    sJ t          t          t                    d
z  t          t          | dd	          t          t                    dz   dz   dz  k    sJ t          t          t                    t          z  t          t          | dd	          t          t                    t          z  k    sJ t          t          t                    dt          z  dz   z  t          t          | dd	          t          t                    dt          z  dz   z  k    sJ d S )Nc                     d| z
  S NrD   rE   r?   s    rG   <lambda>ztest__TR56.<locals>.<lambda>Y   s
    !a% rF   rV   rM   FrC   rD   
   rb   T   )Tr   r?   r   r   )hs    rG   
test__TR56rn   X   s   ASVVQYS!Q..#a&&3q6619*q.2IIIIISVVRZc1a//3q662:====SVVQYS!Q..CFFAI:>A2EEEEESVVQYS!Q--Q::::SVVQYS!R..CFFAI:>A2EEEEE SVVQYS!Q--Q::::SVVacAgS!Q55Q!A#'9JJJJJJJrF   c                     t          t          t                    dz            t          t                    dz   dz   k    sJ t          t          t                    dz            t          t                    dz  k    sJ t          t          t                    dz            t          t                    dz   dz   dz  k    sJ d S NrC   rD   rM   )r.   r   r?   r   rE   rF   rG   test_TR5rr   e       s1vvqy>>c!ffaiZ!^++++s1vvrz??c!ffrl****s1vvqy>>s1vvqyj1nq0000000rF   c                     t          t          t                    dz            t          t                    dz   dz   k    sJ t          t          t                    dz            t          t                    dz  k    sJ t          t          t                    dz            t          t                    dz   dz   dz  k    sJ d S rp   )r/   r   r?   r   rE   rF   rG   test_TR6ru   k   rs   rF   c                  P   t          t          t                    dz            t          dt          z            dz  t          j        z   k    sJ t          t          t                    dz  dz             t          dt          z            dz  t          dd          z   k    sJ d S )NrC   rD   rV   )r0   r   r?   r
   rR   r   rE   rF   rG   test_TR7rw   q   s    s1vvqy>>S1XXaZ!&00000s1vvqy1}QqS!hq!nn!<<<<<<<rF   c            
         t          t          d          t          d          z            t          d          dz  t          d          dz  z   k    sJ t          t          d          t          d          z            t          d          dz  t          d          dz  z   k    sJ t          t          d          t          d          z            t          d           dz  t          d          dz  z   k    sJ t          t          d          t          d          z  t          d          z            t          d          dz  t          d          dz  z
  t          d          dz  z   k    sJ t          t          d          t          d          z  t          d          z  t          d          z            t          d          dz  t          d          dz  z   t          d          dz  z   t          d          dz  z   t          d	          dz  z   t          d          dz  z   t          dd          z   k    sJ t          t          d          t          d          z  t          d          z  t          d          z  t          d          z            t          d          dz  t          d          dz  z   dt          d          z  d
z  z   t          d
          d
z  z   t          d          dz  z   t          d	          d
z  z   t          d          d
z  z   t          d          d
z  z   t          dd
          z   t          d          dz  z   k    sJ t          t          t          t          dd          z            dz  t          t          t          dd          z            dz  z  d
t          t          dz            dz  z  z            t          dd          k    sJ d S )NrC   rV   rN   rD   rM   rb   rj   rk               rW   @   )r1   r   r   r   r   rE   rF   rG   test_TR8r~   v   sQ   s1vvc!ff}QCFF1H!44444s1vvc!ff}QCFF1H!44444s1vvc!ff}#a&&SVVAX!55555s1vvc!ff}SVV#$$Aq3q66!8(;c!ffQh(FFFFFs1vvc!ff}SVV#CFF*++Aq3r7719s1vvax'#a&&(2SWWQY>Aq	Aq>>	"" " " " s1vvc!ff}SVV#CFF*3q66122B	CFF1HqQx{*SWWRZ7#a&&(BB
	WWRZ	 "%b''"*	-/72	?ADQ	JJ J J J s2hq!nn$%%q(RA->)?)?)BBBs2a4yyRS|OTUUYabcegYhYhhhhhhhrF   c            	         t           j        } d| z  }t          |           | k    sJ t          t          d          t          d          z             dt          |           z  t          |          z  k    sJ t          t          d          t          d          z
            dt	          |           z  t	          |          z  k    sJ t          t	          d          t	          d          z
            dt	          |           z  t          |          z  k    sJ t          t	          d          t	          d          z             dt	          |          z  t          |           z  k    sJ t          t          d          dt	          d          z  z   dt	          d          z  z             t          d          dt	          |          z  t          |           z  z   k    sJ t          t          d          t          d          z   dt          d          z  t          d          z  z             dt          d          z  t          d          z  k    sJ t          t          d          t          d          z   t          d          z  dz  t          d          z             dt          d          z  t          d          z  k    sJ t          t          d          t          d          z   t          d          z   t          d          z             dt          t           j                  z  t          d          z  t          t          dd                    z  k    sJ t          t          d          t          d          t          d          z  z             t          d          t          d          t          d          z  z   k    sJ t          t          t                     t          t          t          z            z             dt	          t          t          z  dz  t          dz  z
            z  t	          t          t          z  dz  t          dz  z             z  k    sJ t          t	          t                     t	          t          t          z            z             dt	          t          t          z  dz  t          dz  z
            z  t          t          t          z  dz  t          dz  z             z  k    sJ t          t                    }t	          t                    }d	D ]	}||f||ft          t                    t          t          t          z            ft	          t                    t	          t          t          z            ffD ]} t          ||           }t          d
 |D              }t          |          }| d         j
        | d         j
        k    r+t          ||                    d                    r)|j        s"| d         j
        | d         j
        k    r||k    rJ d S )NrV   rD   rC   rq   rM   rN   rb   rX   )rD   rD   )rD   )r   rD   )r   r   c                      g | ]}t          | S rE   r   .0ais     rG   
<listcomp>ztest_TR9.<locals>.<listcomp>       ///BsBx///rF   r   Ttrig)r
   rR   r2   r   r   r   r@   r?   zipr   r[   r;   expandis_Add)r<   r=   r>   ssiargsexts           rG   test_TR9r      s   	A	!Aq66Q;;;;s1vvA1SVV8CFF?2222s1vvA1SVV8CFF?2222s1vvA2c!ff9SVV#33333s1vvA1SVV8CFF?2222s1vv#a&& 1SVV8+,,A3q66#a&&0HHHHHs1vvA3q66#a&&011Qs1vvXc!ff_DDDDAQQ')CFF233qQxAFFFFs1vvAQ'#a&&011	#af++c!ffS!Q0001 1 1 1s1vvAs1vv%&&#a&&3q66#a&&=*@@@@@AwQqS!""bQqSUQqS[)9)9&9#ac!eack:J:J&JJJJJAwQqS!""aAaCEAaCK(8(8&8QqSUQqS[9I9I&IIIIIAAAA2 7 7a&1a&3q663qs88"4s1vvs1Q3xx6HI 	7 	7Ar1::D//$///0BBA!	QqTY..&r1888+>+>?? /CD8 /Q49!	))bAgggg	77 7rF   c                  $   t          t          t          t          z                       t	          t                     t	          t                    z  t          t                    t          t                    z  z   k    sJ t          t	          t          t          z                       t	          t                    t          t                    z  t	          t                    t          t                    z  z   k    sJ t          t	          t          t          z   t
          z                       t	          t                     t	          t                    z  t          t                    t          t                    z  z   t	          t
                    z  t	          t                    t          t                    z  t	          t                    t          t                    z  z   t          t
                    z  z   k    sJ t          t          t          t          z   t
          z                       t	          t                     t	          t                    z  t          t                    t          t                    z  z   t          t
                    z  t	          t                    t          t                    z  t	          t                    t          t                    z  z   t	          t
                    z  z
  k    sJ d S N)r   r   r<   r=   r   r>   rE   rF   rG   	test_TR10r      s   AE

Aws1vv~As1vv=====AE

s1vvc!ff}s1vvc!ff}<<<<<AEAI
a&&Q#a&&Q-	'Q/	QAQA	&A.	// / / / AEAI
a&&Q#a&&Q-	'Q/	QAQA	&A.	// / / / / /rF   c            	         t          t          d          t          d          z  t          d          t          d          z  z             t          d          k    sJ t          t          d          t          d          z  t          d          t          d          z  z
            t          d          k    sJ t          t          d          t          d          z  t          d          t          d          z  z
            t          d          k    sJ t          t          d          t          d          z  t          d          t          d          z  z             t          d          k    sJ t          t          d          t          d          z  t          d          t          d          z  z   dz             t          d          dz   k    sJ t          t          d          t          d          z  t          d          t          d          z  z   t          d          z             t          d          t          d          z   k    sJ t          dt          d          z  t          d          z  dt          d          z  t          d          z  z   t          d          z             dt          d          z  t          d          z   k    sJ t          t          d          t          d          z  t          d          t          d          t          d          z  t          d          t          d          z  z   z  z             t          d          k    sJ t          d          t          d          z  t          d          t          d          t          d          z  t          d          t          d          z  z   z  z   t          d          z  t          d          t          d          z  z   } t          |           t          |                                           cxk    rt          d          k    sn J t          t	          d          t          t
                    z  t
          z  t	          d          t          t
                    z  t
          z  z             dt	          d          z  t
          z  t          t
          t          dz  z             z  k    sJ t          t          t
                    t	          d          z  t          t
                    t	          d          z  z   t          t
                    t	          d          z  dz  z   t          t
                    t	          d          z  dz  z             dt	          d          z  t          t
          t          dz  z             z  dz  k    sJ t          t          t
                    t	          d          z  t          t
                    t	          d          z  z   t          t                    t	          d          z  dz  z   t          t                    t	          d          z  dz  z             t	          d          t          t
          t          dz  z             z  dz  t	          d          t          t          t          dz  z             z  dz  z   k    sJ t          t          t
                    t	          d          t          t
                    z  z   dt	          d          z  t          t
          t          dz  z             z  z             dt          t
                    z  k    sJ t          t          t
                    t	          d          t          t
                    z  z   dt	          d          z  t          t
          t          dz  z             z  z   dt          t
                    z  z             dt	          d          z  t          t
          t          dz  z             z  k    sJ t          t          d          t          d          z  t          d          t          d          z  z             t          d          t          d          z  t          d          t          d          z  z   k    sJ t          d	d
          }t          t	          d          t          t
                    z  |z  t	          d          t          t
                    z  |z  z             dt	          d          z  t          t
          t          dz  z             z  |z  k    sJ t          t
                    }t          t
                    }t          t                    }t          t                    }dD ]m}||z  ||z  f||z  ||z  ffD ]V}t          ||          }t          d |D              }	t          |	          }
|	|
                    d          z
  s|
j        rJ Wnt          t
                    }t          t
                    }t          t          dz            }t          t          dz            }dD ]m}||z  ||z  f||z  ||z  ffD ]V}t          ||          }t          d |D              }	t          |	          }
|	|
                    d          z
  s|
j        rJ Wnd S )NrD   rV   rC   rM   rW   rN   rb   rX   AFcommutativer   c                      g | ]}t          | S rE   r   r   s     rG   r   ztest_TR10i.<locals>.<listcomp>   r   rF   Tr   c                      g | ]}t          | S rE   r   r   s     rG   r   ztest_TR10i.<locals>.<listcomp>   r   rF   )r    r   r   r   r   r?   r   r@   r   r   r   r   )r_   r   r>   r   rm   rr   argsir   r   r   s              rG   
test_TR10ir      s   QAQA.//3q669999QAQA.//3q669999QAQA.//3q669999QAQA.//3q669999QAQA.233s1vvzAAAAQAQA.Q788CFFSVVOKKKK3q66#a&&1SVV8CFF?2SVV;<<	#a&&3q66   QAQQAQA)F!GGHHA   
a&&Q-#a&&As1vvAs1vv%' '(+A
/14QA
?B99biikk**4444c!ff444444aQ!DGGCFFN1$4455	$q''	!CBqDMM!" " " "QQ#a&&a.0FF477N1"1vvd1gg~a/0 1 145d1ggIc!bd(mm4KA4MN N N NQQ#a&&a.0FF477N1"1vvd1gg~a/0 1 1QA1Ha$q''#a"Q$h--"7"99: : : : Q$q''#a&&.(1T!WW9SRT]]+BBCCqQxOOOOQ$q''#a&&.(d1ggIc!bd(mm#$&'Ah/ 0 034T!WW9SRT]]3JK K K KQAQA.//As1vvAs1vv%& & & & 	s&&&AaQ!DGGCFFN1$4455	$q''	#a"Q$h--!" " " " 	AAAAAAAA2 > >sAaCj1Q3!*- 	> 	>Er5>>D//$///0Bb		AQXX4X000=AH====		> 	AAAABqD		ABqD		A2 > >sAaCj1Q3!*- 	> 	>Er5>>D//$///0Bb		AQXX4X000=AH====		>> >rF   c            	         t          t          dt          z                      dt          t                    z  t          t                    z  k    sJ t          t          dt          z                      dt          t                    dz   t          t                    dz  z   t          t                    z  t          t                    z  z  k    sJ t          t          t          t	          dd          z                      dt          t          dz            dz   t          t          dz            dz  z   t          t          dz            z  t          t          dz            z  z  k    sJ t          t          dt          z                      t          t                    dz   t          t                    dz  z   k    sJ t          t          dt          z                      t          t                    dz   t          t                    dz  z   dz  dt          t                    dz  z  t          t                    dz  z  z
  k    sJ t          t          d                    t          d          k    sJ t          t          t
          t	          dd          z            t
          t	          dd          z            t          t
          t	          dd          z            dz   t          t
          t	          dd          z            dz  z   k    sJ t          t          d          d          t          d          dz   t          d          dz  z   k    sJ t          t          d          d          t          d          k    sJ t          t          t                    t          t          dz            z  t          dz            dt          t          dz            z  k    sJ d S )NrC   rM   rV   rW   rb   )r!   r   r?   r   r   r   rE   rF   rG   	test_TR11r      s   AaC>>Qs1vvXc!ff_,,,,AaC>>Q#a&&!)c!ffai!7Q ?A FGGGGGAhq!nn$%%&&	S1XXq[L3qs88Q;&AaC0QqS9:; ; ; ; AaC>>c!ffaiZ#a&&!)33333AaC>>
a&&!)c!ffai	!#aA	k#a&&!)&;;< < < < A<<3q66!!!!Bx1~~%&&8Aq>>(9::s2hqRSnnCT?U?UWX?X>X[^_abjklnobpbp_p[q[qst[t>tttttA??s1vvqyj3q661944444A??c!ff$$$$As1Q3xx1%%3qs88333333rF   c            	         t          t          t          dz            t          dt          z            z  t          t          dz            z  t          t          dz            t          t          dz            z  z            dt          t          dz            z  t          t          dz            z  t          dt          z            z  k    sJ t          t          t          dz            t          dt          z            z  t          t          dz            z  t          t          dz            t          t          dz            z  z                        t          t          t          dz            t          t          dz            z            dt          t          dz            z  k    sJ t          t          t          dz            t          t          dz            z            ddt          t          dz            z  z  k    sJ t          t          dt          z            t          t          dz            z  t          t          dz            z            t          dt          z            dt          t          dz            z  z  k    s\J t          t          dt          z            t          t          dz            z  t          t          dz            z                        t          t          t                    t          t          dz            z            dt          t          dz            z  k    sJ d S )NrV   rC   rM   rb   rk   rD   )r"   r   r?   r   rE   rF   rG   
test__TR11r      sa   QqS#ac(("3qs88+S1XXc!A#hh->?@@	#ac((
3qs88C!HH$% % %%*3qs88C!HH+<S1XX+Es1Q3xxPSTUVWTWPXPXGX+Y%Z%Z% % %QqS#ac(("##qQqSz1111QqS#ac(("##q!C!HH*~5555QqS#ac(("3qs88+,,AaC!C!HH*0EEEEuSQRSTQTXXVYZ[\]Z]V^V^M^_bcdefcf_g_gMgGhGhEEEQAaC!!Qs1Q3xxZ//////rF   c                     t          t          t          t          z                       t          t                    t          t                    z   t          t                     t          t                    z  dz   z  k    sJ t          t          t          t          z   t          z                       t          t                    t          t                    t          t                    z   t          t                     t          t                    z  dz   z  z   dt          t                    t          t                    z   t          t                    z  t          t                     t          t                    z  dz   z  z
  z  k    sJ t          t          t          t          z                      t          t          t          z            k    sJ d S rg   )r#   r   r?   r@   rA   rE   rF   rG   	test_TR12r      s/   AE

AQ3q66'#a&&.12DEEEEEAEAI	Q3q66CFF?c!ffWSVV^a%78	8	SVVc!ff_c!ff$s1vvgc!ffnq&899	;; ; ; ; AaC>>S1XX%%%%%%rF   c                     t          t          d          t          d          z            t          d           t          d          z  t          d          t          d          z  z
  dz   k    sJ t          t          d          t          d          z            dt          d          t          d          z  z   t          d          t          d          z  z   k    sJ t          t          d          t          d          z  t          d          z            t          d           t          d          z  t          d          t          d          z  z
  dz   t          d          z  k    sJ t          t          d          t          d          z  t          d          z            t          d           t          d          z  dz   t          d          t          d          z  z
  t          d          z  k    sJ d S )NrV   rC   rN   rD   )r%   r   r   rE   rF   rG   	test_TR13r     s   As1vv3q66'#a&&.3q66#a&&="@1"DDDDDAs1vv!c!ffSVVm"3c!ffSVVm"CCCCCAs1vvc!ff$%%
a&&Q#a&&Q-	'!	+SVV34 4 4 4As1vvc!ff$%%
a&&Q!	c!ffSVVm	+SVV34 4 4 4 4 4rF   c                  ~    t          t          t                    t          t                    z             dk    sJ d S NrC   )r   r   r?   r   rE   rF   rG   test_Lr     s1    SVVc!ff_""""""rF   c                     t          t          d          dz  t          d          dz  z   t          t          dz            z             t	          dd          k    sJ t          t          d          t          t                    z  t          d          t          t                    z  z             dt          d          z  t          t          t          dz  z             z  k    sJ t          t                    dz  t          t                    dz  z
  t          t                    dz  z   dt          t                    dz  z  z   } t          |           t          t                    dz  dt          t                    dz  z  z
  dz   k    sJ t          t          j	        t          dt          z            dz  z
            t          t                    dz  k    sJ t          t          t                    t          t                    t          t                    z
  z  t          t                    t          t                    t          t                    z   z  z             t          d          t          t          t          z   t          dz  z             z  k    sJ t          t          d          t          t                    z  dz  t          t                    dz  z             t          t          t          dz  z             k    sJ t          dt          dt          z            dz  dz  z
  t          t                    dz  z
  t          t                    dz  z
            t          t                    dz   t          t                    dz  z   k    sJ t          t          t          t	          dd          z                      t          t          dz            k    sJ t          t          t          dz            t          t          t	          dd          z            z  t          t          t	          dd          z            z  t          t          t	          dd          z            z            t	          dd	          k    sJ t          t          t          t	          d
d          z            t          t          t	          dd          z            z   t          d          t          t          t	          dd          z            z  t          t          t	          d
d          z            z  z
            t          d           k    sJ t          t          d          t          d          z            t          d          t          d          z  k    sJ t          d t          d          D              }t          |          t          d          dt          d          z  z  k    sJ t          t          t                    t          t          t                    dz            z             t          t                    t          t          t                    dz            z   k    sJ t          dt          t                    dz  z  dt          t                    z  z   dt          d          z  t          t                    dz  z  z   dt          d          z  t          t                    z  z   t          dt          z            dz   z            d
t          t                    z  dt          d          z  t          t                    z  z   k    sJ d S )N2   rC   rb   rV   rM   rD   rX      rz   rW   rN   c                 2    g | ]}t          d |z            S rC   r   r   rO   s     rG   r   ztest_fu.<locals>.<listcomp>/  s"    ...qQT...rF   rj   i   i#   )r7   r   r   r   r   r   r?   r@   r
   rR   r<   r=   r   r   range)r_   exprs     rG   test_fur     s   c"ggqj3r77A:%BqD		122hq!nnDDDDd1ggc!ffntAwws1vv~-..!DGG)CBqDMM2IIIII 
QSVVQY	Q	*Qs1vvqy[	8Bb66SVVQY3q6619,q00000afs1Q3xxz!""c!ffai////c!ffc!ffs1vvo&QQ#a&&)AABBQAEBqDL!!!" " " " d1ggc!ffnQQ)**c!bd(mm;;;;a#ac((A+a-#a&&!)+c!ffai788	Q
SVVQY    c"Xa^^#$$%%RU3333c"Q$iiBx1~~-...s2hq!nn3D/E/EEc"XVWYZ^^J[F\F\\]]aijkmoapapppppBx2#b!R&8"9"99DGGC8TUWY??HZD[D[<[\_`bcklmoqcrcr`r\s\s<ssu u	a    c!ffSVVmAs1vv----..E"II.../Dd88s4yy$s1vv+..... c!fftCFFAI&''3q66DQOO+CCCCCs3q6619}r#a&&y(1T!WW9SVVQY+>>4773q66AQQUXYZ[\Y\U]U]`aUacdd	#a&&1T!WW9SVV##$ $ $ $ $ $rF   c                  t   t          t          t                    t          t                    z  d           t	          t                    k    sJ t          t          t                    t          t                    z  d           t          t                    t          t                    z  k    sJ d S )Nc                       | j                     S r   	count_opsrh   s    rG   ri   z test_objective.<locals>.<lambda>:  s    {q{}} rF   )measurec                 "     | j                      S r   r   rh   s    rG   ri   z test_objective.<locals>.<lambda><  s    ~ rF   )r7   r   r?   r   r   rE   rF   rG   test_objectiver   9  s    c!ffSVVm%<%<===FF   c!ffSVVm%=%=>>>FF3q66M     rF   c                  X    d } t          t          g dddi| d d          dk    sJ d S )Nc                 2    t          d | j        D              S )Nc                     g | ]
}||d z  z  S r   rE   r   s     rG   r   zAtest_process_common_addends.<locals>.<lambda>.<locals>.<listcomp>C  s     222aQqS222rF   )r   r   rh   s    rG   ri   z-test_process_common_addends.<locals>.<lambda>C  s    322162223 rF   )rD   rC   rV   rM   r	   Fc                     | dz  S r   rE   rh   s    rG   ri   z-test_process_common_addends.<locals>.<lambda>E  s
    qs rF   )key2key1rb   )r8   r   )dos    rG   test_process_common_addendsr   @  sa     
4	3B!#|||"De"D"Db]( ( (+DE E E E E ErF   c                     t          t          t                    t          t                              dddt          t          dfk    sJ t          dt          t                    z  dt          t                    z            dddt          t          dfk    sJ t          t          t                    t	          t                    z  t          t                    t	          t                    z            t	          t                    ddt          t          dfk    sJ t          t          t                    t          d           t	          t                    z  d          dddt          t          dz  d	fk    sJ t          t          t                    t	          t                    d          t          d          ddt          t          d
z  d	fk    sJ t          t          t                    t	          t                     d          t          d          ddt          t          d
z  d	fk    sJ t          t          d          t          t                    z  t          d           t	          t                    z  d          dt          d          z  ddt          t          dz  d	fk    sJ t          t          d           t          t                    z  t          d           t	          t                    z  d          dt          d          z  ddt          t          dz  d	fk    sJ t          t          t                    t          d          z  t	          t                    t          d          z  d          t          d          dz  ddt          t          dz  d	fk    sJ t          t          d           t          t                    z  t	          t                    z  t          d           t	          t                    z  t	          t                    z  d          dt          d          z  t	          t                    z  ddt          t          dz  d	fk    sJ t          t          t                    t	          t                              J t          t          t                    t	          t                              J t          dt          t                    z  t	          t                               J t          t          t                    t          d           t	          t                    z            J t          t          t                    t          t                    z  t	          t                    t	          t                    z            J t          t          t                    t          t                    z  t	          t                    t	          t                    z            J t          t          d           t          t                    z  t          d          t	          t                    z  t	          t                    z  d          	 J t          t          d          t          t                    z  t          d          d          J t          t          d          t          t          d          z  t	          d          t          d          z  d          J t          t          d          t          d          z  t          d          t	          d          z  d          J d S )NrD   TrC   rq   r   rV   )tworb   FrM   rN   rW   )	r9   r   r?   r@   r   r   r   rA   r   rE   rF   rG   test_trig_splitr   H  s   c!ffc!ff%%!Q1a)>>>>>aAh3q66	**q!RAt.DDDDDc!ffSVVmSVVCFF]33	QAq!T"# # # # c!fftAwwhs1vvo4888	
Ar1bdE"# # # #c!ffc!ff$///	a!Q2a4'( ( ( (c!ffs1vvg4000	a!RBqD%() ) ) )d1ggc!ffntAwwhs1vvo4@@@	
477Ar1bdE*+ + + +tAwwhs1vvoQxADAAA	DGGQ1bdE*+ + + +c!ffT!WWnc!ffT!WWn$???	aAq!RT5)* * * *tAwwhs1vvoc!ff,!WWHSVVOCFF". . .	DGGCFF	Aq!RT512 2 2 2 c!ffc!ff%%---c!ffc!ff%%---aAhQ((000c!fftAwwhs1vvo..666c!ffSVVmSVVCFF]33;;;c!ffSVVmSVVCFF]33;;;tAwwhs1vvotAwws1vv~c!ff'<$GGG   d1ggd1ggos1vv4888@@@d1ggd1ajj(#a&&Q-TBBBJJJc!ffSVVmSVVCFF]===EEEEErF   c            	      \   t          dt          d t          d          D              z            dt          d          z  t          d          z  t	          d          z  t	          d          z  t	          d          z  dt          d	          z  t          d
          z  z  k    sJ t          t
                    t
          k    sJ t          dt
          z            dt
          z  k    sJ t	          t          dz            t	          t          t          dd          z            z  t	          t          t          dd          z            z  } t          t          |                     t          dd          k    sJ t          d t          d	d          D              } t          t          t          |                               t          d	d          k    sJ t	          t
                    t	          t
          dz            z  }t          |          |k    sJ t	          t
          dz            t          t
          dz            z  t	          t
                    d
z  z  }t          |          t          dt
          z            t	          t
                    dz  z  dz  k    sJ d S )NrW   c                 ,    g | ]}t          |          S rE   r   r   s     rG   r   z!test_TRmorrie.<locals>.<listcomp>m  s    666qCFF666rF   rj   r|   rz   rN   rX   r}   rD   rV   rC   rM   r   rk   c                 H    g | ]}t          d |z  t          z  dz             S )rC      )r   r   r   s     rG   r   z!test_TRmorrie.<locals>.<listcomp>s  s*    444!c!Q$r'"*oo444rF   r   i   )
r3   r   r   r   r   r?   r   r   r1   r,   )er_   s     rG   test_TRmorrier   l  s!   Ac66E"II6667788	#b''	#b''#a&& Q'A.3q66	#a&&0@AB B B BA;;!AaC==AaCBqD		#b!Q'(((RA->)?)??Ax{{xA....44uQ||4445As8A;;  HQ$6$66666	QAaCBB<<2	QqS#ac((	3q6619	$BB<<3qs88CFFAI-a///////rF   c            	      T   t          dt          t                    dz  z            dt          t                    dz  z  k    sJ t          t          t                    dz  t          t          dz            dz  z            dt          t                    z  dz  t          dt          z            dz  z   t          t                     dz  t          dt          z            dz  z   t	          dd          z   z  k    sJ t          dd          D ]} t          t          t                    | z  t          t          t                    | z                      sJ t          t          t                    | z  t          t          t                    | z                      sJ d S )NrD   rC   rV   rM   rk   )r5   r   r?   r   r   r   r;   )ks    rG   test_TRpowerr   }  sX   1SVVQY;1SVVQY;....3q6619S1XXq[())	
3q66!c!A#hhqj	 CFF719s1Q3xxz#9HQNN#JKL L L L1a[[ A A!#a&&!)WSVVQY-?-?@@@@@!#a&&!)WSVVQY-?-?@@@@@@A ArF   c                  p
   ddl m} m} t          t                    dz  t          t                    dz  z   }t          |          \  }} |t          |                    t          dt          z            k    sJ t          t          t          t          z                       \  }} |t          |                    t          t                    t          t                    z   t          t                    t          t                    z  dz   z  k    sJ t                      } | t          t                    |          t          t          t          |z            z  k    sJ  | t          t                    |          t          t          t          |z            z  k    sJ  | t          t                    |          t!          t          |z            t          z  k    sJ  | t          t                    |          t#          t          |z            k    sJ  | t%          t                    |          t'          t          |z            k    sJ  | t)          t                    |          t+          t          |z            t          z  k    sJ t          t
          t          t          t$          t(          fD ].} |t,                    } | | ||          |          |k    sJ / |t#          t          t          z  t.          z             t                    t          t          t.          t          z  z             k    sJ  |t          t          t          z  t.          z             t                    t          t          t.          t          z  z             t          z  k    sJ  |t          t          t          z  t.          z             t                    t          t          t.          t          z  z             t          z  k    sJ  |t!          t          t          z  t.          z             t                    t          t          t.          t          z  z             t          z  k    sJ  |t'          t          t          z  t.          z             t                    t%          t          t.          t          z  z             k    sJ  |t+          t          t          z  t.          z             t                    t)          t          t.          t          z  z             t          z  k    sJ d S )Nr   )_osborne	_osborneirC   rD   )sympy.simplify.fur   r   r   r?   r   r6   r7   r   r@   r#   r   r   r   r   r   r   r   r   r   r   r   r   rA   )	r   r   r_   r   r]   r   dr[   rm   s	            rG   test_hyper_as_trigr     s   55555555	a!d1ggqj	 BDAq1RUU88tAaCyy    a!e%%DAq1T!WW::$q''DGG+d1ggd1ggo.ABBBBBA8DGGQ1S1XX:----8DGGQ1S1XX:----8DGGQ3qs88A:----8DGGQ3qs88++++8DGGQ3qs88++++8DGGQ3qs88A:----tT4t4 1 1DHHy!Q++q00000 9S1q\\1%%a!A#g66669S1q\\1%%a!A#gq88889S1q\\1%%a!A#gq88889S1q\\1%%a!A#gq88889S1q\\1%%a!A#g66669S1q\\1%%a!A#gq888888rF   c                     d t           t          t          fD             \  } }}t          | |z   |  |z  dz   z            t	          t           t          z             k    sJ t          | |z   | |z  dz
  z            t	          t           t          z              k    sJ t          |  |z
  | |z  dz
  z            t	          t           t          z             k    sJ | |z   |  |z  dz   dz  z  d| z  d|z  z
  z  d| |z  dz
  z  z  }t          |                                          dt	          t           t          z             z  t	          t           t          z             z  t	          t                     t	          t                    z   dz
  z  dz  k    sJ t          t	          t                    t          t                    z            t	          t                    t          t                    z  k    sJ | t          d          z   |  |z  dz   z  }t          |          |k    sJ | |z   dz   dz  |  |z  dz   z  }t          |          |k    sJ | |  |z  dz   z  }t          |          |k    sJ | |z   t           dz   z                                  dz  | |z  dz
  z  }t          |          t           dz   dz   t	          t           t          z             z  k    sJ d S )Nc                 ,    g | ]}t          |          S rE   )r   r   s     rG   r   ztest_TR12i.<locals>.<listcomp>  s    ,,,Q#a&&,,,rF   rD   rC   rV   )	r<   r=   r>   r$   r   r   r?   r   r   )tatbtcr_   s       rG   
test_TR12ir     s   ,,1a),,,JBB"r'RCFQJ'((CAJJ6666"r'BrEAI&''CAJJ;66662#(RUQY'((CAJJ6666
r'RCFQJ?	"BrEAbDL	11beai=	AB
3q1u::c!a%jj #a&&3q66/A"56q89 9 9 9QA3q66#a&&=0000
s1vv+B
	#B99????
r'A+	B3r6A:	&B99????	bSVaZB99????Ga!e
$
$
&
&	*BrEAI	6B99!a%!CAJJ.......rF   c                  	   t          t                    dz
  t          t                    dz   z  } t          t                    dz   }t          |           |k    sJ t          d| z            d|z  k    sJ t          t          t                    dz
  dz  t          t                    dz   dz  z            |dz  k    sJ t          t          t                    dz
  dz  t          t                    dz   dz  z            |dz  t          t                    dz   z  k    sJ t          t          t                    dz
  dz  t          t                    dz   dz  z            |dz  t          t                    dz
  z  k    sJ t          t                    dz
  t          z  t          t                    dz   t          z  z  } t          |           | k    sJ t          t                    dz
  t          z  t          t                    dz   z  } t          |           | k    sJ t          t                    dz
  dz  t          t                    dz   z  } t          |           | k    sJ t          dd          }t          t          t                    dz
  |z  t          t                    dz   |z  z            ||z  k    sJ t          t          t                    dz
  |z  t          t                    dz   |z  z            t          t                    dz   |z  k    sJ t          t                    dz
  |dz   z  t          t                    dz   |z  z  } t          |           t          t                    dz
  ||z  z  | fv sJ t          t          t                    dz
  t          t                    dz   z            t          t                    dz   k    sJ t          t                    dz   t          t                    dz
  z  }t          t                    dz
  dz  t          t                    dz   z  }dt          t                    dz
  z  dt          t                    dz   z  z  }t          ||z  |z  t          dz
  z            dt          dz
  t          t                    dz  z  t          t                    dz  z  z  k    sJ d S )	NrD   rC   rV   rO   TrP   irM   )r   r?   r   r&   r@   r   r   )r_   ansrO   p1p2p3s         rG   	test_TR14r     s   
a&&1*s1vvz	"Bq6619*C88s????"::3Q!aQ!a/00CF::::Q!aQ!a/00CFCFFQJ4GGGGGQ!aQ!a/00CFCFFQJ4GGGGG
a&&1*q#a&&1*q	(B88r>>>>
a&&1*q#a&&1*	%B88r>>>>
a&&1*q#a&&1*	%B88r>>>>T"""AQ!aQ!a/00CF::::Q!aQ!a/00c!ffaiZ!OCCCC
a&&1*A	A
Q	.B88Q!S!V+R00000Q!c!ffqj)**s1vvqyj8888
a&&1*s1vvz	"B
a&&1*aQ!	$B
SVVaZ.1c!ffqj>	*B2b!a% !!S1q5#a&&!)*;CFFAI*E%FFFFFFFrF   c                     t          ddt          t                    dz  z  z
            t          t                    dz   k    sJ t	          ddt          t                    dz  z  z
            t          t                    dz   k    sJ t          ddt          t                    dz  z  z
            dt          t                    dz  z
  k    sJ d S )NrD   rC   )r'   r   r?   r   r(   r   r   r)   rE   rF   rG   test_TR15_16_17r     s    Ac!ffaiK  SVVQYJ....Ac!ffaiK  SVVQYJ....Qs1vvqy[!!QQ]222222rF   c                  b   t          t          dz             dt          dfk    sJ t          t          dz
            dt          dfk    sJ t          t           dz             dt          dfk    sJ t          t           dz
            dt          dfk    sJ t          dt          z  dz             dt          dfk    sJ t          t          t          z  t          z
            t          t          dfk    sJ t          t           t          z  t          z             t           t          dfk    sJ d S )NrD   r   rC   )r:   r?   r@   rE   rF   rG   test_as_f_sign_1r     s   q1u!Q****q1u!Q++++rAv2q"+----rAv2q!*,,,,qsQwAq!9,,,,qsQwAq":----r!tax  aRBK//////rF   c                  X   t          dd          } t          dd          }t          dt          t                    z  t	          t                    z  |z  | z            t	          dt          z            |z  | z  k    sJ t          t          d          t          d          z  |z  | z            t          d           t          d          z  t          d          t          d          z  z
  dz   |z  | z  k    sJ dt          t                    z  t	          t                    z  |z  | z  t          t                    dz  z                                   t	          dt          z            |z  | z  t          dt          z            dz  z   t          j	        dz  z   k    sJ d S )	Nr   Fr   BrC   rV   rN   rD   )
r   r1   r   r?   r   r%   r   simplifyr
   One)r   r   s     rG   test_issue_25590r     s_   s&&&As&&&AqQxAq "##s1Q3xxz!|3333As1vva!""Aws1vv~As1vv'E'I1&LQ&NNNNN c!ffHSVVOAa#a&&!)+55773qs88A:a<#aPQc((ST*;TWXW\]^W^;^^^^^^^rF   N)jsympy.core.addr   sympy.core.mulr   sympy.core.numbersr   r   r   sympy.core.parametersr	   sympy.core.singletonr
   sympy.core.symbolr   r   r   %sympy.functions.elementary.hyperbolicr   r   r   r   r   r   (sympy.functions.elementary.miscellaneousr   r   (sympy.functions.elementary.trigonometricr   r   r   r   r   r   sympy.simplify.powsimpr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   rl   r5   r6   r7   r8   r9   r:   sympy.core.randomr;   	sympy.abcr<   r=   r>   r?   r@   rA   rH   rJ   rS   r`   rd   rn   rr   ru   rw   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rE   rF   rG   <module>r      s               0 0 0 0 0 0 0 0 0 0 * * * * * * " " " " " " 6 6 6 6 6 6 6 6 6 6 V V V V V V V V V V V V V V V V A A A A A A A A S S S S S S S S S S S S S S S S * * * * * *                                                               
 1 0 0 0 0 0 & & & & & & & & & & & & & & & &9 9 91 1 1!Q !Q !QH2 2 29 9 9
K 
K 
K1 1 11 1 1= = =
i i i7 7 78/ / /4> 4> 4>n4 4 4$0 0 0& & &4 4 4# # ##$ #$ #$L  E E E!F !F !FH0 0 0"A A A9 9 9</ / /&G G G83 3 30 0 0	_ 	_ 	_ 	_ 	_rF   