
    \h                     F   S r SSKJrJrJrJr  SSKJr  SSKJ	r	  SSK
JrJrJrJrJr  SSKJr  SSKJr  SSKJrJr  SS	KJr  SS
KJr  SSKJrJr  SSKJr  SSK J!r!  SSK"J#r#J$r$  SSK%J&r&J'r'J(r(J)r)J*r*  S r+S r,S r-S r.S r/S r0S r1S r2S r3S r4S r5\$S 5       r6S r7S r8g)zOTests for algorithms for partial fraction decomposition of rational
functions.     )apart_undetermined_coeffsapart
apart_listassemble_partfrac_list)Expr)Lambda)EIRationalpi	all_close)Eq)S)DummySymbol)sqrt)Matrix)Polyfactor)together)RootSum)raisesXFAIL)xyabcc                     [        S5      S:X  d   e[        S[        5      S:X  d   e[        S-  S-   [        S-   -  S[        S-   -  [        -   S-
  p[        U SS9U:X  d   e[        U SS9U:X  d   eS[        S-   -  [        S-   -  SS[        -   -  SS[        -   -  -
  p[        U SS9U:X  d   e[        U SS9U:X  d   eS[        S-   -  [        S-   -  SS[        -   -  S-  SS[        -   -  S-  -   p[        U SS9U:X  d   e[        U SS9U:X  d   e[        [        [        -  S-   [        [        -
  -  [        S-
  -  [        5      S[        -
  [        [        -  -   [        [        -  -   [        [        -  S-   [        S-
  -  [        [        -
  -  -   :X  d   e[        [	        [        S-  S-   [        S-   -  [        5      [        5      [	        [        S-
  S[        S-   -  -   [        5      :X  d   e[        [        S-  [
        5      [        S-  :X  d   e[        [
        -   S[        -  [
        -
  -  [        S	S5      [
        -  S[        -  [
        -
  -  [        R                  -   p[        U [        SS9U:X  d   e[        U [        SS9U:X  d   e[        [
        -   S[        -  [
        -
  -  S	[        -  S[        -  [
        -
  -  S-
  p[        U [
        SS9U:X  d   e[        U [
        SS9U:X  d   e[        [        S
 5        g )N      FfullT         c                  @    [        S[        S-   -  [        S-   -  5      $ )Nr    r!   )r   r   r        W/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_partfrac.py<lambda>test_apart.<locals>.<lambda>=   s    aQiQ.?(@r*   )r   r   r	   r   r   r   r   r   Halfr   NotImplementedErrorfgs     r+   
test_apartr3      s   8q==A;!qD1Hq1uq!a%y1}q0q1$$$!###a!e9a!eaQi!QU)3q1$$$!###a!e9a!eb!a%jlQAYq[8q1$$$!###!A#'AF#QU+Q/	A"qsadQha0!b&99: : : QTAXA&*A."QUQAY5F2JJJJ1a=AaCaC!A#'?HQN1,acAg6?qAE"a'''AD!Q&&&aC!A#'?AaC1qMA-qAE"a'''AD!Q&&&
 @Ar*   c            	         [        SSS 5      n [        U 5      [        S[        -  S[        S-   -  -
  [        S-   S-  /SS[        -  -  [        R                  [        S-   -  -
  S[        S-   -  S[        S-   -  -
  //5      :X  d   eg )Nr!   c                 4    S[         U -   S-   -  [         U-   -  $ )Nr    )r   )ijs     r+   r,   #test_apart_matrix.<locals>.<lambda>A   s    !QUQY-Q"7r*   r    )r   r   r   r   r.   )Ms    r+   test_apart_matrixr;   @   s    q!78A8v	
1q!a%y1q5B-(	
AaCAFFQU#	#QAYAE%:;    r*   c                     [         [        S-  -  S[        -  S[         -  [        -  -   [        S-  -  -   S[        -  [        -  [         S-  -
  [         [        S-  -  -   [        S-  -  -   S[         -  [        -  S[        -  [        S-  -  -   [        -  -   [        S-  -
  n [         S-  [        S-  -  S[         -  [        -  S[        -  [         S-  -  -   [        S-  -  -   S[         -  [        -  [        -  [        S-  -   [         S-  [        S-  -  -   [        S-  -  -   S[        -  [        S-  -  S[         -  [        -  [        S-  -  -   [        -  -   [        S-  [        S-  -  -   n[	        X-  [        5      S[         -  S[        [        -   S-  -  -
  [        S-  [         [         [        -  [        -   S-  -  -  -
  :X  d   e[	        S[        [         -   [        [        -   -  [        [        -   -  -  [        5      S[         [        -
  [        [        -
  -  [        [        -   -  -  S[         [        -
  [        [        -
  -  [        [        -   -  -  -
  S[         [        -
  [         [        -
  -  [         [        -   -  -  -   :X  d   eg )Nr&   r!   r'   r9   r    )r   r   r   r   r   r0   s     r+   test_apart_symbolicr=   I   s   	!Q$!A#!A+q!t##qs1uq!t|a1f'<ad&BB	Aa!A#ad(	A	 !1	%A	1QT	QqSUQqSAX%q!t++qs1uQwA~	1QT	0a4/ 	Q3q!t8ac!eAqDj0!3	467d1a4i	@A a=AaC!QUQJ,.Aq!A#'A~1FFFFFQUQUOQU+,a0	AEAE?AE"#a!a%!a%!a%)@&AA	AEAE?AE"#	$$ $ $r*   c                     ^ SSK Jm  U4S jn [        S-  S-   S-  [        S-
  S-  [        S-   S-  -  [        S-  * S[        -  -   S-   -  [        S-  S[        -  -   S-
  -  -  nSU " [        [        S5      -
  S-   5      -  SU " [        [        S5      -
  S-
  5      -  -
  SU " [        S-   [        S5      -   5      -  -   SU " [        S-
  [        S5      -   5      -  -
  SU " [        S-   S-  5      -  -   SU " [        S-
  S-  5      -  -   nX4$ )Nr   )Mulc                    > T" SU SS9$ )Nr!   F)evaluater)   )exprr?   s    r+   mul2%_make_extension_example.<locals>.mul2Y   s    1dU++r*   r!   r    r'   )
sympy.corer?   r   r   )rC   r1   r2   r?   s      @r+   _make_extension_examplerF   V   s   , Q$(QQ
AEA:-1uqs{Q?A!aP	QA	
4DGa 	 	
4DGa 	 
!	
4AQ 	 
! 
4AQ 	 
! 
4Q
		

 
4Q
	
A 4Kr*   c                     S[         S-  S-   -  n [        [         [        -   -  [        [         [        -
  -  -
  n[        U [        S9U:X  d   e[        U SS9U:X  d   e[         [         S-
  [         [        -   -  -  n [        [	        [        U 5      5      R                  5       5      U :X  d   e[        5       u  pSSKJn  U" S5         [        U [         [        S5      1S9U:X  d   e S S S 5        g ! , (       d  f       g = f)Nr!   r    	extensionT)gaussianr   )dotprodsimp)
r   r
   r   r   r   expandrF   sympy.matricesrK   r   )r1   r2   rK   s      r+   test_apart_extensionrN   g   s    	1a4!8A	1q5	Aq1uIAa A%%%T"a'''	AEAE?A(58$++-.!333"$DA +	T	Qd1gY/1444 
		s    C00
C>c                  Z    [        5       u  p[        U [        [        S5      1S9U:X  d   eg )Nr!   rH   )rF   r   r   r   r0   s     r+   test_apart_extension_xfailrP   z   s)    "$DAA$q'+q000r*   c                  |   S[         S-  S-   -  n [        U SS9U :X  d   e[        U SS9R                  [        [         S-  S-   [	        [
        [
        [         [
        -
  -  5      SS9* S-  5      (       d   eS[         S-  [         -   S-   -  n [        U SS9U :X  d   e[        U SS9R                  [        [         S-  [         -   S-   [	        [
        [
        S-  [        SS	5      -  [
        [        S
S	5      -  -
  [        SS	5      -   [         [
        -
  -  5      SS95      (       d   eS[         S-  S-   -  n [        U SS9[        SS5      [         S-  S[         S-  -  -
  S[         -  -   S-
  [         S-  [         S-  -
  [         S-  -   [         -
  S-   -  -  [        SS5      [         S-   -  -   :X  d   e[        U SS9R                  [        [         S-  [         S-  -
  [         S-  -   [         -
  S-   [	        [
        [
        [         [
        -
  -  5      SS9* S-  [        SS5      [         S-   -  -   5      (       d   eg )Nr    r!   Fr"   T)autor'         	   r&   r$   r%   )r   r   dummy_eqr   r   r   r   )r1   s    r+   test_apart_fullrW      sS   	1a4!8A1$$$''	A6!QAY/e	<<Q>@ @ @ @ 	
1a4!8a<A1$$$''1q1q1a4B'!HQO*;;hq"oMPQTUPUVW^c	ef f f f 	
1a4!8A	"aAqD1QT6MAaC/!3adQTkAqD6H	
77  	QNQU+	,, , , ''	A1q!t#a'!+q!QU)5
* 	**+	,/71~A.F	GH H H Hr*   c                  r   S[         S-  -  S[         S-  -  -   S[         -  -   S-   S[         S-  -  S	[         S-  -  -   S
[         S-  -  -   S[         -  -   S-   -  n S[         S-   -  S[         S-   -  -   S[         S-   -  -   S[         S-   -  -   n[        U SS9R                  5       n[        X!SSS9(       d   eg )NgV/;>r'   gO6rZ>r!   gJm?g(\µ?g=r&   g6->gak?gv>?g      ?g	,`@g{@@g=?gX7@g``@G?gp"fD@g*u?gV	0@Tr"   gMbP?gh㈵>)rtolatol)r   r   evalfr   )r1   expectedf_aparts      r+   test_apart_full_floatsr^      s     	AqD #6q!t#;;
a
	 "'	( 	QT!$71$<<
ad
"	#%5a%7	8:=	>		A 	!../
A/
0	1
Q!11
2	3 Q!11
2	3  AD!'')G WT===r*   c                     [        S[        -  S-
  5      n [        [        S-  [        S-  -
  [        S-  -
  [        S-  -   S[        S-  -  -
  S[        -  -   S-
  5      n[        S-  * [        S-  -
  [        S-  -
  S	-   [        S-  [        S-  -
  S[        -  -
  S-   -  S[        S-
  -  -   n[        X5      U:X  d   e[        S[        S
S9n [        [        [        -   [        [        -   -  [        S
S9nS[        [        -
  [        [        -   -  -  S[        [        -
  [        [        -   -  -  -
  n[        X5      U:X  d   eg )Nr!   r'   rU      rS   r$   r       r&   zZZ[a,b]domain)r   r   r   r   r   )pqrs      r+   test_apart_undetermined_coeffsrg      s   QqS1WAQTAqD[1a4!Q$&1a4/!A#59:A
Q$A1	q	 1a4!Q$;1#4q#89Aq1uIEA$Q*a///Q)$Aa!ea!e_a	2A	AEAE?a!a%!a%11A$Q*a///r*   c                    ^ SSK Jn   U4S jm[        S5      [        S5      [        S5      p2n[        S5      nS[        -  S	[        S	-  -  -
  S
[        S	-  -  S[        -  -
  -  n[        U[        U " S5      S9nS[        [        S	S
5      [        SS9[        US	-
  USS9[        US	5      [        XD* [        -   5      S4/4nT" Xg5      (       d   e[        S	[        S	-  S	-
  -  [        U " S5      S9nS[        S[        SS9[        US	-  S	-
  USS9[        XDS	-  5      [        XD* [        -   5      S4/4nT" Xg5      (       d   eS[        S-  S	[        S-  -  -
  S	[        S
-  -  -
  S[        S	-  -  -   [        -   S	-
  -  n[        U[        U " S5      S9nS[        S[        SS9[        US	-
  USS9[        US5      [        XD* [        -   5      S4[        US	-  S-
  USS9[        USU-  S-
  5      [        XD* [        -   5      S	4[        US-   USS9[        US5      [        XD* [        -   5      S4/4nT" Xg5      (       d   eg )Nr   )numbered_symbolsc                    > [        U 5      [        [        4;   a  [        U4S j[	        X5       5       5      $ X:H  =(       d    U R                  U5      $ )Nc              3   8   >#    U  H  u  pT" X5      v   M     g 7f)Nr)   ).0r6   r7   rV   s      r+   	<genexpr>4test_apart_list.<locals>.dummy_eq.<locals>.<genexpr>   s     <)$!x~~)s   )typelisttupleallziprV   )r6   r7   rV   s     r+   rV   !test_apart_list.<locals>.dummy_eq   s=    7tUm#<#a)<<<v&A&r*   w0w1w2r   r9   r!   r'   rS   w)dummiesr%   QQrb   ZZr    $   r$   r&   )	sympy.utilities.iterablesri   r   r   r   r   r   r   r   )	ri   ru   rv   rw   _ar1   gotansrV   s	           @r+   test_apart_listr      sT   :'
 vd|VD\BB	sB	A!Q$1QT6AaC<(A
Q#3C#8
9CtHQNAd3
rAvr$
'Ar378KQ	OPRCC
Q1QZ,<S,A
BCd1a%b!eaiD)Ira4r37Q)  (! "C C
adQq!tVma1f$qAv-1A56A
Q#3C#8
9Cd1a%
rAvr$
'Ar378KQ	O	b!eaiD	)6"beai+@&SSTWBUWXY	b1fb	&r2r378KQO	QRC Cr*   c            	      p   S[         S-  S[         S-  -  -
  S[         S-  -  -
  S[         S-  -  -   [         -   S-
  -  n [        U 5      n[        U5      S[         S-   -  S[         S-   S-  -  -
  S[         S-
  S-  -  -
  S[         S-
  -  -   :X  d   e[        S	5      nS[	        S
[         SS9[        S5      [        S5      * /[        X"S-  5      [        X"* [         -   5      S4/4n[        U5      S[        S5      [         [        S5      -   -  -  S[        S5      [         [        S5      -
  -  -  -   :X  d   eg )Nr|   r$   r!   r&   r'   r~   r    rU   r   r   r{   rb   r%   )r   r   r   r   r   r   r   )r1   pfdr   s      r+   test_assemble_partfrac_listr      s3   
adQq!tVma1f$qAv-1A56A
Q-C!#&"a!e*q!a%!|*CaQQR
l*RUVXY\]X]U^*^^^^c
Ad1a%$q'47();VAs^VTUWY\]W]M^`a(b'c
dC!#&"d1gq47{.C*Dq$q'STW[\]W^S^J_G`*````r*   c                       " S S[         5      n [        [        [        [        -  -   -  nSS[        -   -  n[        X" U5      -   5      X " U5      -   :X  d   e[        X" U5      -  5      X " U5      -  :X  d   eg )Nc                       \ rS rSrSrSrg)3test_noncommutative_pseudomultivariate.<locals>.foo   Fr)   N__name__
__module____qualname____firstlineno__is_commutative__static_attributes__r)   r*   r+   foor          r*   r   r    r   r   r   r   r   er   s      r+   &test_noncommutative_pseudomultivariater      sq    d 	1qs7A	1q5	ASVCF
***3q6?aAh&&&r*   c                       " S S[         5      n [        [        [        [        -  -   -  nSS[        -   -  n[        X" 5       -   5      X " 5       -   :X  d   eg )Nc                       \ rS rSrSrSrg) test_noncommutative.<locals>.foo   Fr)   Nr   r)   r*   r+   r   r      r   r*   r   r    r   r   s      r+   test_noncommutativer      sK    d 	1qs7A	1q5	ASUq35y(((r*   c                     [        S[        -  [        S-  S-   -  [        S-
  S[        S-  S-   -  -  -
  SS[        S-   -  -  -   S[        -  -
  5      S[        -  S-   [        S-  S-   -  S-  S[        S-   -  S-  -   S[        -  -
  :X  d   eg )Nr!   r    r'   )r   r   r)   r*   r+   test_issue_5798r      s    	!QTAX!a%!QTAX,//!QAY-?!A#EG	
1q1a4!8QAE1,qs23 3 3r*   N)9__doc__sympy.polys.partfracr   r   r   r   sympy.core.exprr   sympy.core.functionr   sympy.core.numbersr	   r
   r   r   r   sympy.core.relationalr   sympy.core.singletonr   sympy.core.symbolr   r   (sympy.functions.elementary.miscellaneousr   sympy.matrices.denser   sympy.polys.polytoolsr   r   sympy.polys.rationaltoolsr   sympy.polys.rootoftoolsr   sympy.testing.pytestr   r   	sympy.abcr   r   r   r   r   r3   r;   r=   rF   rN   rP   rW   r^   rg   r   r   r   r   r   r)   r*   r+   <module>r      s     ! & > > $ " - 9 ' 0 . + . # #$BN
$"5&1
H0>.0>a ' ')3r*   