
    geI                        d dl mZ d dlmZ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mZ d d
lmZ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%m&Z&m'Z' d dl(m)Z) d dlm*Z+ d dl"m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAd ZBd ZCd ZDd ZEd  ZFd! ZGd" ZHd# ZId$ ZJd% ZKd& ZLd' ZMd( ZNd) ZOd* ZPd+ ZQd, ZRd- ZSd.S )/    )Add)
DerivativeFunctiondiff)Mul)IRational)Pow)S)SymbolWildsymbols)Abs)explog)rootsqrt)cossin)factor)O)collectcollect_constfractionradsimprcollect)	unchanged)_unevaluated_Mul)_unevaluated_Addcollect_sqrtfraction_expandcollect_abs)raises)xyzabcdc            
      X5   t          d          } t          d          }t          d          }t          d          }t          t          d| z                      t          d          dfk    sJ t          dd| z   z            dt          d          z   k    sJ t          d| |z   z            t          d           t          d          z   k    sJ t          t          dd| z   |z   z                      t          d           t          d          z   dz   dfk    sJ t          t          d| |z   |z   z                      t          d	           dt          d          z  z   dt          d          z  z   d
fk    sJ t          t          dd| z   |z   |z   z                      dt          d          z  dt          d          z  z
  dt          d          z  z
  dt          d          z  z
  dt          d	          z  z   dz   dt          d          z  z   dt          d          z  z   dfk    sJ t          t          d| |z   |z   |z   z                      dt          d          z  dt          d          z  z
  dt          d          z  z
  dt          d          z  z
  dt          d          z  z   dt          d          z  z   dt          d	          z  z   d t          d          z  z   d!fk    sJ t          dd| dz  z   |dz  z   |z   |z   z            }t          d"|z  j                  d#k    sJ t          d|z            d|z  k    sJ t          d|z  d$%                                          d| dz  z   |dz  z   |z   |z   k    sJ t          d| dz  z            t          d          dz  k    sJ t          d| t          z  |z   |z   |z   z            d&t          d          z  t          dz  z  d&t          d          z  t          dz  z  z
  d&t          d          z  t          dz  z  z
  d&t          d          z  t          dz  z  z
  d't          d          z  t          dz  z  z
  d&t          d	          z  t          dz  z  z   d&t          d          z  t          dz  z  z   d&t          d          z  t          dz  z  z   d(t          d          z  t          dz  z  z
  d)t          d          z  t          dz  z  z   d*t          d          z  t          dz  z  z   d+t          d          z  t          dz  z  z   d,t          d          z  t          dz  z  z
  d-t          d          z  t          dz  z  z
  d&t          d	          z  t          dz  z  z
  d.t          d          z  t          dz  z  z   d/t          d          z  t          dz  z  z
  d0t          d          z  t          dz  z  z
  d1t          d          z  t          dz  z  z
  d2t          d          z  t          dz  z  z   d3t          d          z  t          z  z
  dt          d	          z  t          z  z
  d4t          d          z  t          z  z   d5t          d          z  t          z  z   d6t          d          z  z
  d7t          d          z  z   d8t          d          z  z   d9t          d          z  z   d#t          d&z  z  d:t          dz  z  z
  d;t          dz  z  z   d<t          dz  z  z
  d=z   z  k    sJ t          d| t          z  | t          z  z   |z   |z   z            t          d          t          z  t          t          z   dz  z  dt          d          z  t          z  z
  t          d          t          z  z   t          d          t          z  t          t          z   dz  z  z   dt          d          z  t          z  z
  t          d          t          z  z   t          d          t          t          z   dz  z  z
  t          d          t          t          z   dz  z  z
  dt          d          z  z
  dt          d          z  z   dt          dz  z  d&t          dz  z  t          z  z   d
t          dz  z  t          dz  z  z   d$t          dz  z  z
  d&t          z  t          dz  z  z   d-t          z  t          z  z
  dt          dz  z  z   d$t          dz  z  z
  d&z   z  k    sJ t          d| t          z  | t          z  z   | t          z  z   | t          z  z   z            t          d          dt          z  dt          z  z   dt          z  z   dt          z  z   z  k    sJ t          dd| t          z  z   | t          z  z   | t          z  z   | t          z  z   z            t          d          t          z  t          d          t          z  z   t          d          t          z  z   t          d          t          z  z   dz
  dt          dz  z  dt          z  t          z  z   dt          z  t          z  z   dt          z  t          z  z   dt          dz  z  z   dt          z  t          z  z   dt          z  t          z  z   dt          dz  z  z   dt          z  t          z  z   dt          dz  z  z   dz
  z  k    sJ t          t          dz  t          z
  t          t          t                    z
  z            t          t                    t          z   k    sJ t          t          dz  t          z
   t          t          t                    z
  z            t          t                    t          z    k    sJ t          ddt          z
  t          t          z  z   z            t           t          z  dz   t          z   t          dz  dt          z  z
  dz   z  k    sJ t          dt           t          z   t          t          t                    z
  z  z            t           t          t                    z
  t          t          z
  t          dz  t          z
  z  z  k    sJ ddt          d          z  z   t          z  dt          z  dt          t                    z  z
  z  }t          |          t          ddt          d          z  z   z  dt          z  dt          t                    z  z
  z  k    sJ t          d|z            d>t          z  d?t          d          z  t          z  z   d?t          t                    z  z
  d?t          d          z  t          t                    z  z   d?t          z  d?t          dz  z  d?t          z  z
  z  z  k    sJ t          dddt          d          z   z  z             t          t          j        dt          d          z   d@A          dz   k    sJ t!          dBd@C          }t          t          dz  t          d          t          dz  z  z   t          d          t          z  |z  z
            t          dz  t          d          t          dz  z  z   t          d          t          z  |z  z
  k    sJ t          dt          ddt          d          z  z             z            t          d           t          d          z   k    sJ t          dt          ddt          d          z  z             dz  z            t          d           t          d          z   dz   k    sJ t          t          dt          t                    z                      t          t                    t          fk    sJ t          t          dt          dt          z  dz             z                      t          dt          z  dz             dt          z  dz   fk    sJ t          t          dt          dt          dz   z            z                      t          dt          z  dz             dt          z  dz   fk    sJ t          dD          }t          |                                          dEdt#          dd          z  z  ddt#          dd          z  z  z
  dz   dt          d          z  z   k    sJ t          dt          d           dz  t          j        z
  t          d           dz  t          j        z
  dz  z   z            dk    sJ dFt          d          z  t          t          d          dz             z  t          d&t          d          z  d-z             z  dGt          d          z  t          dHt          d          z  d-z             z  t          t          d           dz             z  z
  d2t          d          z  t          dHt          d          z  d-z             z  t          t          d           dz             z  z
  d2t          d          z  t          t          d           dz             z  t          d&t          d          z  d-z             z  z   d2t          d          z  t          dHt          d          z  d-z             z  t          t          d          dz             z  z   d2t          d          z  t          t          d           dz             z  t          d&t          d          z  d-z             z  z   d2t          d          z  t          dHt          d          z  d-z             z  t          t          d          dz             z  z   dIdJt          d          z  z
  d
t          d          z  t          t          d          dz             z  d(t          d          z  t          t          d           dz             z  z   dz  z   z  }t          |          t          j        u sJ dt          t          d          dz  dt          d          z  z   dt          d          z  z   dt          d          z  z             z  dz   }t          |          t          t          d          dt          d          z  z   dKt          d          z  z   dLt          d          z  z              dMt          dL          z  dNt          dO          z  z
  dPt          d          z  z
  dQt          d          z  z
  dRt          d          z  z   dSz   dTt          d          z  z   dUt          dK          z  z   z  dVz  dz   k    sJ t          d          t          d          z
  }t          d|dz  z            t          d          t          d          z   dz  k    sJ t          d| dz  z            t          d          t          d          z   dz   k    sJ t          d| t          z  z            | t           z  k    sJ t          d|t          z  z            t          d          t          d          z   t          z  k    sJ t          t'          ddt          d          z
  z  t                               ddt          z  z  dt          d          z   dt          z  z  z  k    sJ t)          ddt          d          z   z            }t          |          t)          t          d           dz             k    sJ t          |dz            t)          t          d           dz             dz  k    sJ t          d|z            dt)          t          d           dz             z  k    sJ t          d|z            dt)          t          d           dz             z  k    sJ t          t          |t          t                    z                      t          t                    t)          t          d           dz             z  t          fk    sJ dt          d          z   }	t          t          |	z  d@W          t           t          d           dz   z  k    sJ t          t          t          |	z   z  d@W          t          t          dz   t          d          z   z  k    sJ t          t          t          |	z   z  |	z  d@W          t           t          d           dz   z  t          dz   t          d          z   z  k    sJ t          t                    t          t                    z  }t          |          t+          t          t                    t          t                    dt          z            k    sJ t          |d@W          |k    sJ t          t          t                    t          t                    dz  z            t+          t          t                    t          t          dz            dt          dz  z            k    sJ t          t                    t          dz  z  }t          |          |k    sJ d S )XN                           i
         7   =      ]   .   5   G   i*      "   F         i      >         l   N>A      )	max_terms         T   d   t   H   (   i  i  i.     x   i  R   b   v   ;   i'  i  i  i8  i  i  i	   FevaluateAcommutativezE-(2 + 2*sqrt(2) + 4*2**(1/4))/(1 + 2**(3/4) + 3*2**(1/4) + 3*sqrt(2))iih  ii`si      #   i)Ni    i i i iW ivs iW~ iM)symbolic)r   r   r   lenargsexpandr'   r(   r)   r*   r%   r$   r   r   r   Halfr   r	   NaNr   r   umul)
r2r3r5r7r&   er_   eqbasers
             ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/simplify/tests/test_radsimp.pytest_radsimprv      s   	aB	aB	aB	aBGAbDMM""tAwwl22221a"f:
T!WW   1b2g;	a477   GAq2v{O,,--
q''DGG	a	#$ $ $ $GArBw|,--..
r((QtAwwY	477	*B/0 0 0 0GAq2v{R/01122	T"XX488	#baj	02d1gg:	=488	K

QZ
T!WW*
%&(	*+ + + + GArBw|b012233	T"XXDGG	#bbk	1CQK	?"T#YY,	N
d1gg+
488
$&)$q''k
236	89 9 9 9 	1r!t8bd?R'",-..A&q(.//255551Q3<<1Q31Q3"%%%,,..!bd(RT/B2F2KKKKK1bd8Q	   1bdRi"nr)*++	
4771a4!DGG)AqD.	(1T!WW9QT>	9Ad1ggIadN	JDGGAqD
T"XX:ad?
+-.tBxxZ1_
=?@bz!Q$
O
T#YY,q!t

 ajAo
.03DGGAqD0@
A 	DGGAqD
 d2hh;q!t+
, /1bk!Q$.>
? 	
$r((
1a4	
 d1gg+ad*	
+ .1a[A-=	
>
 	DGGAqD

 tAww;q!t+
,
 /2$s))mAqD.@
A 	DGGA
 488A
& )+488A
6 9;488A
F 	DII
 477

# &)a[
1 47tAww;
? BDAqDAqDB19B#AqDyB)+/B0	1	2 	2 	2 	2 1bdRTkB&+,--	aAEA:	$q''	!	+d2hhqj	847719a	G
F < 
$q''	!
"2hhqj
)+/77AEA:+=
>@DQ	J
I A
$q''	
d1ggI
&()!Q$1a4(9Bq!tGAqDL(H
1a4)A#ad()T!V)$&'1f)-/1!Q$w)79:);	<= = = =
 1bdRTkBqD(2a4/011Q1qsQqS1Q3&'( ( ( (1a"Q$hAo1,r!t3455	aT!WWQY	a	*T!WWQY	6	:Qq!tVac!e^	!A>!A>!Q$>!"1Q>')*1Q>/121a4>8:;A#a%>@BCAqD&>IKL>M 	NO O O O AqD1Hq477{+,,Q!   QTAX;DGG,--
q''A+   1a!eack?##
AA1qs
Q'( ( ( (1rAvDGG,-..
d1ggQA*+, , , ,	
QtAwwY1Q3477?+A1::A$q''	M*AaC!DGG)O<<<<<1Q3<<	A$q''	!	aQi	'!DGG)DGG*;	;ac1QT6	!D ? 	    1q!d1gg+&''AFBaL5111A56 6 6 6'''A1a4$q''!Q$,&a1455	1tAwwq!t|d1ggaik)* * * *1T!a$q''k/***++Qx$q''/AAAAA1T!a$q''k/**A--..T!WWHtAww4F3J2JJJJJ GAd1ggI&&''DGGQ<7777GAd1Q37mmO,,--$qsQw--1q1IIIIIGAd1a!e9oo-..//D1qMM1Q373KKKKK 	
 2 	3 	3A1::"QA%6"61hq!nn;L9L"Lq"PSTUYZ[U\U\S\"\\\\\ 1tAwwhqj16)d1ggXaZ!&-@1,DDEFF!KKKK 
d1ggd477Q;''	'QtAwwY^(<(<	<DGGDDGGb)))$Qx!|*<*<<
=DHHT"T!WW*r/***4a1+=+==
> 	DGGD$q''A&&&tAd1ggIN';';;
< 	DGGDDGGb)))$tAww{*;*;;	
<
 	DHHT477(Q,'''QtAwwY^(<(<<
= 	DHHT"T!WW*r/***4Q!+<+<<
= @FT!WW@488Da1$5$55
488D$q''A&&&')*+@+	,  2;;!% 	
$tAwwqy1T!WW9$qay01T!WW9<
=
==AA1::	d1gg477
"RQZ/
477
 
 
 	tBxx''$s))*;;gd2hh>NN
$r((
$T!WW_-/679@b9IJR	 %	% ()	)* * * * 77T!WWD1T1W9$q''DGG"3a!777771teaZ<  d1ggQ&7!%;$;;;;;1teaZ<  dUqbM11111T1W9$q''DGG"3a!7777742Q<(1"--..2A,DGGqQRs?S2SSSSS 	Aq477{OA1::d1ggX\******1Q3<<3Qx!|,,Q.....1Q3<<1S$q''A.......1Q3<<1S$q''A.......GAd1ggI&&''DGGCa
OO,CQ+GGGGG 	
DGGA1Q3'''A2Qx!|+<<<<<1a!e9u---AEDGGO1DDDDD1a!e9Q;///	
T!WWHqL1q5477?+, , , , 
aaB2;;$tAwwQ15555552&&&",,,, 477477A:%&&$tAwwQT

AadF*K*KKKKK 
aAB2;;"    c                  <   t          dd          \  } }t          | dz  |dz  z
            }| t          |z  z   |z
  | t          |z  z   |z   z  }t          |          t           | t          |z  z   t          | dz  |dz  z
            z
  dz  z  d| z  |z  z  k    sJ d S )Nzc pTpositiver,   )r   r   r   r   )r)   psr(   s       ru   test_radsimp_issue_3214r}      s    54(((DAqQTAqD[A	
QqS1q1Q3w{#A1::!Q1WtAqD1a4K'8'881<<ac!eDDDDDDDrw   c                     t          d          \  } }}}t          d|           dk    sJ t          | || z  z   |           | d|z   z  k    sJ t          | | dz  z   |           | | dz  z   k    sJ t          | dz  || dz  z  z   |           | dz  d|z   z  k    sJ t          | dz  || z  z   |           | |z  | dz  z   k    sJ t          d| dz  z  || dz  z  z   d| z  |z  z   | g          | dz  d|z   z  d| z  |z  z   k    sJ t          d| dz  z  || dz  z  z   d| z  |z  z   |g          d| dz  z  || dz  d| z  z   z  z   k    sJ t          d|z   | z   dz                                  |           d|z   dz                                  | dd|z   dz  z                                  z  z   | dz  dd|z   dz  z                                  z  z   | dz  dd|z   z                                  z  z   | dz  z   k    sJ | |z   }t          ||j                  |k    sJ t          | t	          |           z  t          |           |z  z   t          |           dz  z   d| z  z   | d          | t	          |           z  d| z  z   |dz   t          |           z  z   k    sJ t          | t	          |           z  t          |           |z  z   t          |           dz  z   d| z  z   || z  z   || z  t	          |           z  z   | d          | t	          |           z  |dz   z  d|z   | z  z   |dz   t          |           z  z   k    sJ dS )	zCollect with respect to Symbolx,y,z,nr0   r,   r-   r3   r2   Nexact)r   r   ri   free_symbolsr   r   )r$   r%   r&   nexprs        ru   test_collect_1r      s   ##JAq!Q1a==AA!GQ  AQK////A1Ha!!QAX----AqD1QT6M1&&1a4!a%.8888AqD1Q3J##qsQTz1111AadFQq!tVOac!e+aS22adAElQqSU6JJJJJAadFQq!tVOac!e+aS22a1fq!Q$1*~6MMMMMa!eai!^++--q11q1uqj5H5H5J5J	1a!eaZ<


!
!!6"$%qD!QUQJ,)>)>)@)@$@6A	1aQi!!!6"$%qD6) ) ) ) ) q5D4*++t33331SVV8c!ffQh&Q1AaC7$ 
 
 
s1vvX!^q1uc!ffn,- - - -1SVV8c!ffQh&Q1AaC7!A#=	!CFF
T
 
 
s1vvXq1uQ	)QUCFFN:; ; ; ; ; ;rw   c                  ^   t          d          \  } }}t          | t          |          t          |          z   z  |t          |          t          |          z   z  z   t          |          t          |          z             | |z   t          |          t          |          z   z  k    sJ dS )zCollect with respect to a sumza,b,xN)r   r   r   r   )r'   r(   r$   s      ru   test_collect_2r      s    gGAq!1c!ffs1vvo&CFFSVVO)<<AQ USVVc!ff_56 6 6 6 6 6rw   c                     t          d          \  } }}t          d          }t          d          \  }}}}t          | dz  ||z  z   |           ||t          dd          z
  z  k    sJ t          d||dz  z  z   ||z            d||dz  z  z   k    sJ t          ||z  | |z  |z  z   ||z            ||z  d| z   z  k    sJ t          d||z  z   | |z  |z  z   ||z            d||z  d| z   z  z   k    sJ t          | |z   ||          z  || ||          z  z  z   | ||          z            || |z   z   ||          z  k    sJ t          | |z  t	          |          z  ||t	          |          z  z  z   |t	          |          z            || |z   z  t	          |          z  k    sJ t          | |dz  z  t	          |          dz  z  ||t	          |          z  dz  z  z   |t	          |          z            |dz  t	          |          dz  z  | |z   z  k    sJ t          ||z  |z  | |z  |z  |z  z   ||z  |z            d| z   |z  |z  |z  k    sJ dS )z!Collect with respect to a productza,b,cfr   rN   r0   r,   N)r   r   r   r	   r   )r'   r(   r)   r   r$   r%   r&   r   s           ru   test_collect_3r      s   gGAq!A##JAq!QA2a4!A#:r""aXa^^);&<<<<<A1a4L!A#''1q!Q$x<7777AaC!A#a%K1%%1a!e4444A!Gac!eOQqS))Q1a!e_<<<<1Q3qqtt8a11Q44j(!AAaDD&11QAYqqtt^CCCC1Q3s1vv:1SVV8,aAh771a!e9SVV;KKKKK1QT6#a&&!)#a3q66Ao5qQx@@	1SVVQYA    1Q3q51Q3q57?AaCE**q1uaik!m;;;;;;rw   c                     t          d          \  } }}}t          | ||z  z  |||z  z  z   ||z            ||z  | |z   z  k    sJ t          | |d|z  z  z  ||d|z  z  z  z   ||z            |d|z  z  | |z   z  k    sJ dS )zCollect with respect to a powerza,b,c,xr,   Nr   r   )r'   r(   r)   r$   s       ru   test_collect_4r      s    ##JAq!Q1QT6AadF?AqD))QT1q5\99991Q1X:!ac(
*AqD11Q1Xq1u5EEEEEEErw   c                     t          d          \  } }}}}t          |dz  |dz  z  |||dz  z  dz  z  z   |z   | |z  z   ||dz  z  |g          |d| z   |dz  |dz  z  z   z  |dz  |dz  z  z   |d| z   z  |dz  |dz  z  d|z   z  z   fv sJ t          d||z   z   ||z   dz  z                                   ||g          d|z   |dd|z  z   z  z   |dz  z   |dz  z   k    sJ dS )zCollect with respect to a tuplez	a,x,y,z,nr,   r3   r0   N)r   r   ri   )r'   r$   r%   r&   r   s        ru   test_collect_5r      sU   K((MAq!Q1a419q!AqD&1},q01Q361a4DD	1q51a4191QT	)	1q5	AqDAIq1u%%I( ( ( ( ( AQK1q51*,4466q6 !eaQqSk1AqD81a4?@ @ @ @ @ @rw   c                      t          d          } t          | dz  | dz  dz   z  | dz  d          | dz           | dz  dz   k    sJ dS )z-Unevaluated collect with respect to a productr'   r,   r0   Fr]   Nr   )r'   s    ru   test_collect_pr19431r      sX    A1a4A?AqD5999!Q$?AqD1HMMMMMMrw   c            	         t           } t          d          }t          d          \  }}} |  ||          |          } |  ||          ||          }t          ||z  ||z  z   |          ||z   |z  k    sJ t          | | ||          z  | | ||          z  z   |          ||z    | ||          z  k    sJ t          ||z  ||z  z   |          ||z    | ||          z  k    sJ t          d ||          z  d|z  z   |          d ||          z  d|z  z   k    sJ t           ||           ||          t	           ||          |          z  z   |t	           ||          |          z   ||          z  z    ||                              |                    | ||          z   ||          z    |  ||          |          z   ||          z   k    sJ t           ||           ||          t	           ||          |          z  z   |t	           ||          |          z   ||          z  z    ||                              |          d          | ||          z   ||          z    |  ||          |          z   ||          z   k    sJ t          d ||          z  d ||          z  t	           ||          |          z  z   |t	           ||          |          z   ||          z  z    ||                              |          d          d ||          z  | ||          z  z    |  ||          |          z  d ||          z  z   k    sJ d||z  z   |z    ||          z  }t          |                                |          || ||          z  d ||          z  z   z  d ||          z  z   k    sJ d S )Nr   x,a,br.   r-   Tr   r0   )r   r   r   r   r   ri   )Dr   r$   r'   r(   fxfxxrq   s           ru   test_collect_Dr      s,   AAgGAq!	
11Q44B
!AAaDD!Q--C1R4!B$;##Arz11111QQr1XX:!!B((
*B//AE11R883CCCCC1S51S5="%%!a%2q)999991QQqTT6AbD="%%11Q44!B$666611Q44!!A$$tAAaDD!}},,qaaddAqqtt/CCQQqTTYYq\\RR	
11Q44!!A$$!!A$$

"QQqTT)* * * *11Q44!!A$$tAAaDD!}},,qaaddAqqtt/CCQQqTTYYq\\Y]^^^	
11Q44!!A$$!!A$$

"QQqTT)* * * *1QQqTT6AaaddF4!a==001T!!A$$]]?11Q443GG1ST]abbb	
11Q44!AAaDD&!!AAaDD!**$q1v-. . . .	
QrTB!A188::r""b!AAaDD&1QQqTT6/&:QqqttV&CCCCCCCrw   c                  X   t           t          z   dz   dz                                  } t          | t                     t          dz  dt          dz  z  z   dt          z  z   t           dz  z   t           dz  dt          z  dz   z  z   t           dt          dz  z  dt          z  z   dz   z  z   dz   k    sJ t          | t           t                    t           dz  dt           dz  z  t          dz   z  z   dt           z  t          dz   dz  z  z   t          dz   dz  z   k    sJ t          | t           d          t
          j        t          dz  dt          dz  z  z   dt          z  z   dz   t           dt          dz  z  dt          z  z   dz   t           dz  dt          z  dz   t           dz  dik    sJ t          | t           t          d          t
          j        t          dz   dz  t           dt          dz   dz  z  t           dz  t          t          d          t          dz             t           dz  dik    sJ d S )Nr0   r-   r,   r2   Fr]   )r$   r'   ri   r   r   r   Onerl   )r   s    ru   test_collect_funcr     s   
a%!)a!!A1a==AqD1QT6MAaC/!Q$6AqsQwG	1QT6AaC<! ! ! ! ! !1a  AqD1QT61q5>$9AaCQ
N$J	
Q
%     1a%(((	q!ta1f}qs"Q&	1QT6AaC<!QT1Q37	1a-     1a%000	Az1aQ
l	1d1Q44QAq5* * * * * * *rw   c                      t          d          \  } }}}t          |||z  z   ||dz  z  z   t          |dz            z   |          |d|z   |dz  z   t          |dz            z   z  k    sJ t          |||z  z   |dz  z   t          |dz            z   |          |d|z   t          |dz            z   z  |dz  z   t          |dz            z   k    sJ | |z  ||z  z   t          |dz  z  z   t          |dz  z  z   t          |dz            z   }|| |z   z  |dz  t          t          z   z  z   t          |dz            z   }t          ||          |k    sJ t          ||d          |k    sJ t          | |z                                 |dd          }t          |t          |           t          |           g          t          |           t          |                              |dd          z  t          |           t          |                              |dd          z  z   k    sJ t          |t          |           t          |           gd          t          |           t          |                              |dd                                          z  t          |           t          |                              |dd                                          z  z   t          |dz            z   k    sJ d S )	Nza,b,x,tr,   r-   r0   F)distribute_order_termr   r6   )	r   r   r   r)   r*   r   seriesr   removeO)r'   r(   r$   tr   gs         ru   test_collect_orderr      s   ##JAq!Q1qs7Qq!tV#a1gg-q11QA1qAww8N5OOOOO1qs7QT>AadGG+Q//	1q51QT77?ad"Qq!tWW,- - - - 	
!ac	AadFQq!tV#a1gg-A	1q5	AqD!a%L 1QT77*A1a==A1au555::::AE

!Q##A1s1vvs1vv&''As1vv}}Q2&&&QAaB0G0G)GGH H H H1s1vvs1vv&eDDDAs1vv}}Q2&&..000As1vv}}Q2&&..000	134QU88	<< < < < < <rw   c                     t          t          dz  t          z  t          t          z  z   t          z   t          z   t          t          z   z  t                    t          t          dt          z   t          dz  z   z  z   t          t          z   z  k    sJ t          t          t          dz   t          dz   z             t                    t          t          dz   t          dz   z             k    sJ d S )Nr,   r0   )r   r$   r%   r   r&    rw   ru   test_rcollectr   6  s    QT!Vac\A%)AE2A66	
QA1	A&' ' ' 'DAEAE?+,,a00DAEAE?9K4L4LLLLLLLrw   c                      t           } t          d          }t          d          \  }}} |  ||          ||          }t          ||z  ||z  z   |          ||z   |z  k    sJ d S )Nr   r   )r   r   r   r   )r   r   r$   r'   r(   r   s         ru   test_collect_D_0r   <  ss    AAgGAq!
!AAaDD!Q--C1S51S5=#&&1q5#+555555rw   c                  T   t          d          \  } }}}t          d          }t          d          }t          d          }t           ||          |  ||          z  z    ||                    d| z    ||          z  k    sJ t           |||          |  |||          z  z    ||                     |||          |  |||          z  z   k    sJ t           |||          |  |||          z  z    |||                    d| z    |||          z  k    sJ t           |||          |  |||          z  z    |||                     |||          |  |||          z  z   k    sJ t           |||          |  |||          z  z    |||                    d| z    |||          z  k    sJ t          | |dz   |z  z  |dz   |z  z   ||z            d| z   |dz   |z  z  k    sJ t          | |dz   |z  z  |dz   |z  z   ||z            | |dz   |z  z  |dz   |z  z   k    sJ t          | |dz   |z  z  |dz   |z  z   |dz   |z            d| z   |dz   |z  z  k    sJ t          | |dz   |z  z  |dz   |z  z   ||z            d| z   |dz   |z  z  k    sJ dS )z4Collect with respect to functions with Wild argumentza b x yr   z.1z.2r0   N)r   r   r   r   )r'   r(   r$   r%   r   w1w2s          ru   test_collect_Wildr   E  s/   ##JAq!QA	dB	dB11Q44!AAaDD&=!!B%%((QUAAaDDL888811Q77QqqAwwY&"..!!Aq''Aaa1ggI2EEEEE11Q77QqqAwwY&"b		22q1uaa1ggoEEEE11Q77QqqAwwY&"b		22aa1gg!!Aq''	6IIIII11Q77QqqAwwY&"b		22q1uaa1ggoEEEE1a!eaZ<1q51*,b!e44QQ
8JJJJJ1a!eaZ<1q51*,b!e44	1q51*Az!" " " "1a!eaZ<1q51*,q1urk::	
QQ
   1a!eaZ<1q51*,b"f55!a%!a%!9KKKKKKKrw   c            	      T   t          dt          d          z  dt          z  t          d          z  z             ddt          d          z  t          z  t          d          z   z  k    sJ t          dt          d          z  dt          z  t          d          z  z   t          d                    dt          d          z  dt          z  t          d          z  z   k    sJ t          t          d          dt          d          z   z  t          d          z   t          t          d          z  z             t          d          t          dz   t          d          z   z  t          d          z   k    sJ t          dt          z  dt          z  z   dz   d          t          dt          z  dt          z  z   dz             cxk    r=t          t          j        t          dt          t          z   d          d          k    sn J t          t           t          z
            t          dt          t          z   d          k    sJ t          dt          z  dt          z  z
  dt          z  z
  d          t          dt          t          z
  t          z
  d          k    sJ t          dt          z  dt          z  z
  dt          z  z
  d	          t          dt          z  t          d	t          t          z   d                    k    sJ t          d
dt          d          z  z             t          z  t          dt          d          z             t          z  z   dz  } t          | dz             dt          t          d          dz             z  t          d          t          z  t          z   z  dz   k    sJ t          t          t          z   t          dz  z   t          dz  z             t          t          z   t          t          j        t          t          z   d          z   k    sJ d S )Nr,   r-   r3   r.   r0   Fr]   r1   rb   r8   )r   r   r'   r$   r%   r   r   r   r   r&   r   r    r(   rj   rr   s    ru   test_collect_constr   X  s   477QqSa[011	1T!WW9Q;a !" " " "477QqSa[0$q''::	$q''	AaCQK       a!d1gg+.a81T!WW9DEEQQa!DGG+, , , , 1qsQ**acAaCi!m$$B B B BAE3q!a%%0005AAAB B B B B B !a  CAEE$B$B$BBBBB1qsQqS!,,Aq1uqy5)))* * * *1qsQqS"--1c"a!ee<<<==> > > > rAd1ggI~

q
 4DGG#4#4Q#6
6	9BQ	$tAww{

T!WWQY]+a/0 0 0 0 Q1qs*++q1us161q5SX7Y7Y7Y/YYYYYYYrw   c                  <   t          d          }  | t                                        t                    } | t                    |z    | t                    |z  z   }t          |t	          d                     | t                    |dz   z  |z   k    sJ  | t                     | t                    |z  z   t          |z   | t                    z  z   }t          ||          t           | t                    z   | t                    z   |z   | t                    z   k    sJ t          | | t                              t          |z  |z   dz    | t                    z  k    sJ  | t                    |z    | t                    |z  z   }t          | | t                    |g           | t                    d|z   z  |z   k    sJ t          || | t                    g          |d | t                    z   z   | t                    z   k    sJ d S )Nr   wr0   )r   r$   r   r   r   )r   r   rq   s      ru   test_issue_13143r   t  s   A	
11B	!r	AAaDDGA1d3ii  AAaDD"q&MB$66666	!qqttBw2aadd"A1b>>a!fqqttmR/!!A$$666661aadd"r	Aqqtt33333	!r	AAaDDGA1qqttRj!!QQqTT1r6]R%777771r11Q44j!!RQQqTT]QQqTT%9999999rw   c                     t          t          t          dt          z  z  z  t          t          dt          z  z  z  z   t          t          z            t          t          z   t          t          z  dz  z  k    sJ t          t          ddt          z  z  z  t          ddt          z  z  z  z   dt          z            t          t          z   dt          z  dz  z  k    sJ d S )Ng       @r,   )r   r'   r%   r$   r(   r   rw   ru   test_issue_6097r     s    1QQZ<!AAJ,.155!a%!Q$9LLLLL1QQZ<!AAJ,.155!a%!Q$9LLLLLLLrw   c                  L   t           t          z   t          z  t           z  } |                     d          t          |           cxk    r&t           t          z  t          dz  z   t           z  k    sn J |                                 t          t          dz  t           z  z   k    sJ d S )NT)fracr,   )r$   r%   ri   r!   r   s    ru   test_fraction_expandr     s    
a%1B99$9?2#6#6HHHH1Q3A:q.HHHHHH99;;!ad1f*$$$$$$rw   c                     t          t          d          \  } }}t          dd          }t          t          j                  dk    sJ t          |           | dfk    sJ t          d| z            d| fk    sJ t          | |z            | |fk    sJ t          | dz            | dfk    sJ t          | |z  |z            | |z  |fk    sJ t          | ||z  z            | ||z  fk    sJ t          d|dz  z            d|dz  fk    sJ t          | |dz  z            | |dz  fk    sJ t          | dz  dz   |z            | dz  dz   |fk    sJ t          | |dz   z  |dz  z            | |dz   z  |dz  fk    sJ t          t          |            d	
          t          |            dfk    sJ t          d| |z   z  dz  d	
          dt          d| |z   d          fk    sJ t          | |z  |z            | |z  |fk    sJ t          | |dz  z  |z            | |dz  z  |fk    sJ t          dd	          }t          t          |                    dt          |           fk    sJ t          t          |                     t          |           dfk    sJ t          dd	          }t          t          |           t          |          z  d	
          t          |           t          |          z  dfk    sJ t          ddt          j        d          }t          |          dk    sJ t          |d	
          t          ddd          dfk    sJ t          ddt          j        t          j        t          ddd          d          }t          |          dk    sJ t          |d	
          t          ddd          t          dddd          fk    sJ d S )Nxyzr_   Fr`   )r0   r,   r0   r,   r/   Tr   r]   r1   r   )negativer{   ry   )r0   r3   )
mapr   r   r   rj   r   r   r   r   r
   )r$   r%   r&   r_   r   r{   ms          ru   test_fractionr     sY   &%  GAq!s&&&AAFv%%%%A;;1a&    AaC==QF""""AaC==QF""""AaC==QF""""AaCE??qsAh&&&&AqsGAaC((((AadF1a4y((((AadF1a4y((((QTAXqL!!adQh]2222Aq1uIadN##1q5	1a4'88888CGG4(((S!WWaL8888QAYM...1c!QUe6T6T6T2UUUUUAaCE??qsAh&&&&AaeGAI1QU7A,....d###ACFF3r77|++++CGGaR!,,,,d###ACGGCFFN$///CGGCFFNA3FFFFFAq!&5)))AA;;&    AT"""s1a%'@'@'@!&DDDDDAq!&!&#ae"<"<"<uMMMAA;;&    AT"""A&&&Aq!e(D(D(DEF F F F F Frw   c                      t          d          \  } }}}}|dz  |z  || dz  z  z   |z                                  }t          || dz  |z  |g          |k    sJ d S )NzaA Re a b Dr-   )r   ri   r   )aARer'   r(   r   rq   s         ru   test_issue_5615r     sq    m,,OBAq!
Q$q&1RU7
B	&&((A1r1uRxm$$))))))rw   c                     ddl m} m} ddlm}  |  |ddd          j         j        j        }t           ||          	                                          dk    sJ t           |t          |                              dk    sJ d S )Nr   )PolygonRegularPolygon)denom)r   r   r0   r.   g-q=)sympy.geometry.polygonr   r   sympy.simplify.radsimpr   verticescentroidr$   absr   r   )r   r   r   r$   s       ru   test_issue_5933r     s    @@@@@@@@,,,,,,1--67@BAuuQxxzz||u$$$$uuWQZZ  !!E))))))rw   c                  j   t          dd          \  t          d          \  } }t          t          fd           t          | |z  || dz   z  z             | |z  || dz   z  z   k    sJ t          | |z  || dz   z  z   z  z   z  z   |          |d| z  dz   z  z  z   z  z   k    sJ d S )Nza bFr`   zx yc                  6    t           z   z  z              S )N)r   )r'   r(   s   ru   <lambda>z"test_issue_14608.<locals>.<lambda>  s    71Q319a#8#8 rw   r0   r,   )r   r#   AttributeErrorr   )r$   r%   r'   r(   s     @@ru   test_issue_14608r     s    5e,,,DAq5>>DAq
>888889991Q3AaC=!$$!a1g55551Q3AaC=1Q3&1,a00AqsQwK!A#4E!4KKKKKKKrw   c            	         t          t                    t          t                    z   } t          |           | k    sJ t	          t
          t          t                    t          t                              sJ t          t          t          z            }t          |t                    sJ t          t          t                    t          t                    z            |k    sJ t          dt          t          t                    t          t                    z            z             dt          |          z   k    sJ t          dd          }t          |t          d|z
            z            j
        du sJ d S )Nr0   r{   Try   )r   r$   r%   r"   r   r   r   
isinstancer   r   is_commutative)r|   ansr{   s      ru   test_collect_absr     s$   AQAq>>QS#a&&#a&&)))))
ac((Cc3s1vvc!ff}%%,,,,q3s1vvc!ff}---..!c#hh,>>>> 	sT"""AqQqSz""1T999999rw   c                      t          dt          z  dz            } t          | t          t                              | k    sJ d S )Nr-   r3   )r   r$   r   r   s    ru   test_issue_19149r     s<    	QqSUB2s1vv"$$$$$$rw   c                      t          d          \  } }| dz  |dz   z  dd|z  z   | z  z   }t          || dz  d| z  fd          }|| dz  |dz   d| z  dd|z  z   ik    sJ d S )Nza, br,   r0   r/   Fr]   r   )r'   r(   r   	collecteds       ru   test_issue_19719r     s    6??DAqa41q5>Q1WaK'Dq!tQqSkE:::IAq1uac1qs73333333rw   c                  Z   t          dt          t          t          dz            z   z            dt          t          t          dz            z   z  k    sJ t          dt          t          t          dz            z
  z            dt          t          t          dz            z
  z  k    sJ d S )Nr0   r,   )r   r$   r   r   rw   ru   test_issue_21355r     s    1a$q!t**n%&&!Qad^*<<<<<1a$q!t**n%&&!Qad^*<<<<<<<rw   N)Tsympy.core.addr   sympy.core.functionr   r   r   sympy.core.mulr   sympy.core.numbersr   r	   sympy.core.powerr
   sympy.core.singletonr   sympy.core.symbolr   r   r   $sympy.functions.elementary.complexesr   &sympy.functions.elementary.exponentialr   r   (sympy.functions.elementary.miscellaneousr   r   (sympy.functions.elementary.trigonometricr   r   sympy.polys.polytoolsr   sympy.series.orderr   r   r   r   r   r   r   sympy.core.exprr   r   rl   r   r    r!   r"   sympy.testing.pytestr#   	sympy.abcr$   r%   r&   r'   r(   r)   r*   rv   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rw   ru   <module>r      s         < < < < < < < < < <       , , , , , , , ,             " " " " " " 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 = = = = = = = = A A A A A A A A ? ? ? ? ? ? ? ? ( ( ( ( ( (             X X X X X X X X X X X X X X % % % % % % 3 3 3 3 3 30 0 0 0 0 0 0 0 0 0 0 0 ' ' ' ' ' ' ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )G G GTE E E; ; ;06 6 6< < <*F F F@ @ @N N ND D D,* * *&< < <,M M M6 6 6L L L&Z Z Z8: : :M M M
% % %(F (F (FV* * ** * *L L L: : :% % %4 4 4= = = = =rw   