
    \h&                        S r SSKJrJrJrJr  SSKJr  SSKJ	r	J
r
  SSKJr  SSKJrJr  SSKJrJr  SSKJr  SS	KJrJr  SS
KJr  S rS rS rS rS rS rS r S r!S r"S r#S r$S r%S r&S r'S r(S r)S r*\S 5       r+S r,S r-S r.S  r/g!)"z Test sparse rational functions.     )fieldsfield	FracFieldFracElement)ring)ZZQQ)lex)raisesXFAIL)symbolsE)Rational)explog)sqrtc                     [        S[        [        5      n [        S[        [        5      n[        S[        [        5      nU R                  U R                  S   :X  d   eU R
                  U R                  S   :X  d   eU R                  UR                  :X  d   eU R
                  UR
                  :X  d   eU R                  UR                  :w  d   eU R
                  UR
                  :w  d   eg )Nx,yx,y,zr      )r   r   r
   xgensy)F1F2F3s      U/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_fields.pytest_FracField___init__r      s    	5"c	"B	5"c	"B	7B	$B442771:442771:44244<<44244<<44244<<44244<<    c                  N    [        S[        5      u  pp#[        U 5      (       d   eg Nr   r   r	   hashFr   r   zs       r   test_FracField___hash__r'      s    w#JA!77N7r   c                     [        S[        5      S   [        S[        5      S   :X  d   e[        S[        5      S   [        S[        5      S   :w  d   e[        S[        5      S   [        S[        5      S   :w  d   e[        S[        5      S   [        S[        5      S   :w  d   e[        S[        5      S   [        S[        5      S   :w  d   eg )Nr   r   r   )r   r	   r    r   r   test_FracField___eq__r*      s    "a E'2$6q$9999"a E'2$6q$9999"a E'2$6q$9999"a E%$4Q$7777A%"4Q"7777r   c                     [        S5      n [        [        [        [        U 5      5      [        U 5      4[        [
        5      nUR                  u  p#n[        [        U 5      [        [        U 5      S-   [        [        U 5      S-   5      S-  -   5      S-  -  [        U 5      S-   -  5      XS-  US-  -  U-  4:X  d   e[        U [        SU -  5      [        U 5      U [        SS5      -  4[        [
        5      nUR                  u  pTpg[        U S-
  [        U 5      -  SU S-  -  -   [        SU -  [        U 5      S-  -   5      -  U S-  -  5      USUR                  S-  -  U-  UR                  U-  U-  -   SU-  U-  -
  US-  -  4:X  d   e[        U [        U 5      [        U [        U 5      -   5      4[        [
        5      nUR                  u  pVn[        U S-   X [        U 5      -   [        SS5      -  -  -  SU [        U 5      S-  -  -  -
  5      XR                  US-  -  UR                  U-  -
  US-  -   Xh-  -
  UR                  S-  US-  -  U-  UR                  US-  -  U-  -   -  4:X  d   eg )Nr   r               )r   r   r   r   r   r
   r   r   r   r	   r   r   )	r   r%   eexexex_lgx3srts	            r   test_sfieldr7   %   sV   A1c#a&k3q6*B4A&&KAR#a&SVaZ#c!fqj/!*;;<a??Q!LM!tD!G|B      	1c!A#hA2a84b#>AFFMA2AaCQ<!Q$&AaCAqL(99!Q$>?	
QqssAvXb[133r6"9$qtBw.A567 7 7 	1c!fd1s1v:./S9AJA31q5Qc!f*r!Qx!7781a#a&!)m;LLMBE	ACCG#b!e+bf4SS!VBE\#BE	#-/ 00 0 0r   c                  X    [        S[        5      u  pp#[        X-  U-  5      (       d   eg r!   r"   r$   s       r   test_FracElement___hash__r9   8   s&    w#JA!A;;;r   c                      [        S[        5      u  pp#X-  S-  U-  nUR                  5       nXE:X  d   eSUR                  S'   XE:w  d   eg )Nr   r,      )r   r   r   )r   r   copynumer)r%   r   r   r&   fgs         r   test_FracElement_copyr@   <   sL    w#JA!	AaA	A6M6AGGI6M6r   c                    ^^ [        S[        5      u  pp#SUS-  -  U-  X-  U-  -
  SUS-  -  S-   -  mU R                  u  mpESTS-  -  U-  TU-  U-  -
  SUS-  -  S-   -  nTU:w  d   eTR                  5       U:X  d   e[        S5      u  mpESTS-  -  U-  TU-  U-  -
  SUS-  -  S-   -  nTU:w  d   eTR                  TXE5      U:X  d   e[	        [
        UU4S j5        g )Nr   r,   r-   r;   r   c                  &   > TR                  T 5      $ N)as_expr)Xr>   s   r   <lambda>*test_FracElement_as_expr.<locals>.<lambda>V   s    qyy|r   )r   r   r   rD   r   
ValueError)	r%   r   r   r&   YZr?   rE   r>   s	          @@r   test_FracElement_as_exprrK   F   s   w#JA!	
1a4ACE	AadFQJ'AiiGAq	
1a4AaCE	AadFQJ'A6M699;!gGAq	
1a4AaCE	AadFQJ'A6M699Q"""
:+,r   c            	      x  ^^ [        S5      u  mp[        TX4[        5      u  mp#nTR                  S5      nUS:X  a  TR	                  U5      (       d   eTR                  [        SS5      5      nUT" S5      S-  :X  a  TR	                  U5      (       d   eTR                  T5      nXR:X  a  TR	                  U5      (       d   eTR                  [        SS5      T-  5      nXR[        SS5      -  :X  a  TR	                  U5      (       d   eTR                  ST-  5      nUSU-  :X  a  TR	                  U5      (       d   eTR                  TU -  U-  5      nXRU-  U-  :X  a  TR	                  U5      (       d   eTR                  TU -  U-  5      nXRU-  U-  :X  a  TR	                  U5      (       d   eTR                  TU -  U-  TU -  -   T-   5      nXRU-  U-  X#-  -   U-   :X  a  TR	                  U5      (       d   eTR                  TU -  U-  TU -  -   T-   TU -  S-   -  5      nXRU-  U-  X#-  -   U-   X#-  S-   -  :X  a  TR	                  U5      (       d   eTR                  TS-  U -  U-  TS-  U S-  -  -   S-   5      nXRS-  U-  U-  US-  US-  -  -   S-   :X  a  TR	                  U5      (       d   e[        [        UU4S j5        [        [        UU4S j5        [        [        ST-     R                  5       R                  ST* -  5      [        5      (       d   e[        [        TS-     R                  5       R                  TS-  5      [        5      (       d   e[        [        [        [        SS5      5         R                  5       R                  [        5      [        5      (       d   eg )	Nr   r   r,   r;   r-   c                  ,   > T R                  ST-  5      $ )Nr-   )	from_exprr%   r   s   r   rF   ,test_FracElement_from_expr.<locals>.<lambda>z   s    q{{1a40r   c                  D   > T R                  ST-  [        S5      -   5      $ )Nr;   r-   )rN   r   rO   s   r   rF   rP   {   s    q{{1Q3a=9r   i)r   r   r   rN   
is_elementr   r   rH   
isinstance	get_fieldconvertr   r   r   )r   r&   rE   rI   rJ   r>   r%   r   s         @@r   test_FracElement_from_exprrV   X   sd   gGAq1y"%JAqQ	AA6all1oo%%	HQN#A!Q;1<<??**	AA6all1oo%%	HQqM!O$A(1a.  Q\\!__44	AaCA!8Q''	AaCEA!A:!,,q//))	AaCEA!A:!,,q//))	AaCEAaCK!O$A!AaALLOO33	QqSUQqS[1_qsQw/0A1Qq137++Q??	AqDF1Hq!tAqDy(1,-A1Qq1a419$q((Q\\!__<<
:01
:9:bAh((*221r7;   bAh((*221r7;   bXa^,-779AA!D   r   c                     [        S5      u  pn[        R                  " X5      nUR                  U5      nU" X-   5      nUR                  UR	                  U5      " X-   5      :X  d   eUR                  R                  5       U" X-   5      /:X  d   eUR                  UR	                  U5      " S5      :X  d   e[        R                  " X5      nUR                  U5      nU" X-   5      nUR                  UR	                  U5      " X-   5      :X  d   eUR                  R                  5       U" X-   5      /:X  d   eUR                  UR	                  U5      " S5      :X  d   eU" U" X-   5      5      nUR                  UR	                  U5      " X-   5      :X  d   eUR                  R                  5       U" X-   5      /:X  d   eUR                  UR	                  U5      " S5      :X  d   eU" U" X-   5      5      nUR                  UR	                  U5      " X-   5      :X  d   eUR                  R                  5       U" X-   5      /:X  d   eUR                  UR	                  U5      " S5      :X  d   eg )Nza b xr   )r   r   
frac_fieldr=   	poly_ringcoeffsdenom)abr   r   r   fracr   F4s           r   test_FracField_nestedr`      s   gGA!	q	B	q	Bae9D::a////::2ae9+---::a++++	a	B	q	Bae9D::a////::2ae9+---::a++++bi=D::a////::2ae9+---::a++++bi=D::a////::2ae9+---::a++++r   c                  "   [        S[        5      u  pnU " S5      SU-  s=:  a  SUS-  -  s=:  a  SUS-  -  :  d   e   eU " S5      SU-  s=::  a  SUS-  -  s=::  a  SUS-  -  ::  d   e   eSU-  SU-  s=:  a   SU-  s=:  a  X!-  s=:  a  SUS-  -  :  d   e   eSU-  SU-  s=::  a   SU-  s=::  a  X!-  s=::  a  SUS-  -  ::  d   e   eSUS-  -  SUS-  -  s=:  a  SU-  s=:  a  U " S5      :  d   e   eSUS-  -  SUS-  -  s=:  a  SU-  s=:  a  U " S5      :  d   e   eSUS-  -  X!-  s=:  a  SU-  s=:  a  SU-  s=:  a
  SU-  :  d   e   eSUS-  -  X!-  s=:  a  SU-  s=:  a  SU-  s=:  a
  SU-  :  d   e   eg )Nr   r   r-   r,   )r   r   )r%   r   r   s      r   test_FracElement__lt_le_gt_ge__rc      s   E2GA!Q4!A#'!Q$'1a4'''''Q41Q3*!AqD&*AadF*****a4!A#*!*ac*AadF*****a41Q3.!A#..!Q$.....QT6AadF'QqS'1Q4'''''QT6Qq!tV*qs*ad*****QT6AC*!A#*!*bd*****QT6QS.AaC.1Q3."Q$.....r   c                  z    [        S[        5      u  pnSU-  S-
  U-  nSU-  S-   U-  nU* U:X  d   eU* U:X  d   eg )Nr   r;   	   rb   )r   r	   )r%   r   r   r>   r?   s        r   test_FracElement___neg__rf      sN    5"FA	
1q!A	A1A27N727N7r   c                  z   [        S[        5      u  pnSU-  SU-  pCX4-   XC-   s=:X  a  X-   X-  -  :X  d   e   eXR                  R                  S   -   U R                  R                  S   U-   s=:X  a
  SU-  :X  d   e   e[        S[        5      u  pnUS-   SU-   :X  d   eU[        SS5      -   [        SS5      U-   s=:X  a  SU-  S-   S-  :X  d   e   e[        S[        5      u  pVn[        SU5      u  pp)n
Xg-  U-   X&U-  -   -  n[        UR                  5      SXg-  S	.:X  d   e[        UR                  5      SXg-  S
.:X  d   e[        S[        5      u  pn[        SU5      u  pp)n
Xg-  U-   X&U-  -   -  n[        UR                  5      SXg-  S	.:X  d   e[        UR                  5      SXg-  S
.:X  d   eg )Nr   r   r   r-   r,   r;   u,vx,y,z,t)r   r   r   r   r   r   r   r   )r   r   r   r   rk   r   r	   r   r   r   dictr=   r[   r%   r   r   r>   r?   FuvuvFxyztr&   tRuvs               r   test_FracElement___add__rv      s   5"FAQ3!q5AE*aeac]*****vv{{1~Q!!3:qs:::::5"FAq5AE>>r!Aw;"Qq'A+4!A#'144444UBHC19c*NEQ	
q1s7A=1AC@@@@=1AC@@@@E2HC19c*NEQ	
q1s7A=1AC@@@@=1AC@@@@r   c                  l   [        S[        5      u  pnSU-  SU-  pCX4-
  U* U-   X-  -  :X  d   eXR                  R                  S   -
  U R                  R                  S   U-
  s=:X  a  S:X  d   e   e[        S[        5      u  pnUS-
  SU-
  * :X  d   eU[        SS5      -
  [        SS5      U-
  * s=:X  a  SU-  S-
  S-  :X  d   e   e[        S[        5      u  pVn[        SU5      u  pp)n
Xg-  U-
  X&U-  -
  -  n[        UR                  5      SXg-  S	.:X  d   e[        UR                  5      SU* U-  S
.:X  d   e[        S[        5      u  pn[        SU5      u  pp)n
Xg-  U-
  X&U-  -
  -  n[        UR                  5      SXg-  S	.:X  d   e[        UR                  5      SU* U-  S
.:X  d   eg )Nr   r   r   r,   r;   rh   ri   rj   rl   rm   ro   s               r   test_FracElement___sub__ry      s   5"FAQ3!q5aR!VacN"""vv{{1~Q!!38q888885"FAq5a!eHr!Aw;BqGaK.7QqS1WaK77777UBHC19c*NEQ	
q1s7A="AC@@@@=1A2a4@@@@E2HC19c*NEQ	
q1s7A="AC@@@@=1A2a4@@@@r   c                     [        S[        5      u  pnSU-  SU-  pCX4-  XC-  s=:X  a  SX-  -  :X  d   e   eXR                  R                  S   -  U R                  R                  S   U-  s=:X  a
  US-  :X  d   e   e[        S[        5      u  pnUS-  SU-  :X  d   eU[        SS5      -  [        SS5      U-  s=:X  a  U[        SS5      -  :X  d   e   e[        S[        5      u  pVn[        SU5      u  pp)n
US-   U-  U-  S-   US-
  U	-  X-  U-  -
  S-
  -  n[        UR                  5      US-   SS	.:X  d   e[        UR                  5      US-
  U* U-  S
S.:X  d   e[        S[        5      u  pn[        SU5      u  pp)n
US-   U-  U-  S-   US-
  U	-  X-  U-  -
  S-
  -  n[        UR                  5      US-   SS	.:X  d   e[        UR                  5      US-
  U* U-  S
S.:X  d   eg )Nr   r   r   r-   r,   r;   rh   ri   )r   r   r   r   rk   rx   ))r   r   r   r   )r   r   r   r   rk   )	r   r	   r   r   r   r   rn   r=   r[   ro   s               r   test_FracElement___mul__r|      s   5"FAQ3!q3!# AC     VV[[^qvv{{1~a/71a4777775"FAQ3!A#::R!W91Q	5Qx1~%555555UBHC19c*NEQ
a%1qAE19qs1u,q01A=1q5BBBB=1q51TVWWWWE2HC19c*NEQ
a%1qAE19qs1u,q01A=1q5BBBB=1q51TVWWWWr   c                    ^ [        S[        5      u  n mnST-  SU-  p2X#-  UT-  :X  d   eTU R                  R                  S   -  U R                  R                  S   T-  s=:X  a  S:X  d   e   e[        S[        5      u  n mnTS-  ST-  :X  d   eT[        SS5      -  [        SS5      T-  S-  s=:X  a  T[        SS5      -  :X  d   e   e[        [        U4S j5        [        [        U4S j5        [        [        U4S	 j5        [        S
[        5      u  pEn[        SU5      u  nmpn	XV-  TU-  -  n[        UR                  5      SXV-  0:X  d   e[        UR                  5      SS0:X  d   eTU-  XV-  -  n[        UR                  5      SS0:X  d   e[        UR                  5      SXV-  0:X  d   e[        S
[        5      u  pn[        SU
5      u  nmpn	XV-  TU-  -  n[        UR                  5      SXV-  0:X  d   e[        UR                  5      SS0:X  d   eTU-  XV-  -  n[        UR                  5      SS0:X  d   e[        UR                  5      SXV-  0:X  d   eg )Nr   r   r   r,   r;   rx   c                     > T S-  $ Nr   r)   r   s   r   rF   .test_FracElement___truediv__.<locals>.<lambda>  s	    acr   c                     > ST T -
  -  $ Nr   r)   r   s   r   rF   r         aQir   c                     > T T T -
  -  $ rC   r)   r   s   r   rF   r     r   r   rh   ri   rk   r{   )r   r	   r   r   r   r   r   ZeroDivisionErrorrn   r=   r[   )r%   r   r>   r?   rp   rq   rr   rs   r&   rt   ru   r   s              @r   test_FracElement___truediv__r     sY   5"FAqQ3!q3!A#::QVV[[^qvv{{1~a/41444445"FAqQ3!A#::R!W9AaR;1Xa^+;;;;;;
k*
/0
/0UBHC19c*NE1Q	
qsA=\13////=\1----	
1qsA=\1----=\13////E2HC19c*NE1Q	
qsA=\13////=\1----	
1qsA=\1----=\13////r   c                    ^ [        S[        5      u  n mnST-  SU-  p2US-  STS-  -  :X  d   eUS-  SUS-  -  :X  d   eX#-  S-  STS-  US-  -  -  :X  d   eX#-  S-  TU-  S-  :X  d   e[        [        U4S j5        g )Nr   r   r,   c                     > T T -
  S-  $ )Nr   r)   r   s   r   rF   *test_FracElement___pow__.<locals>.<lambda>7  s    q1urkr   )r   r	   r   r   )r%   r   r>   r?   r   s       @r   test_FracElement___pow__r   ,  s    5"FAqQ3!qa41QT6>>a41QT6>>C!8q!Q$q!t)}$$$C"91q   
12r   c                      [        S[        5      u  pp#US-  U-   US-   -  R                  U5      SU-  US-   -  :X  d   eg )Nr   r-   r   )r   r   diffr$   s       r   test_FracElement_diffr   9  sH    Wb!HATAXA$$Q'1Q3A;666r   c                     ^ [        S[        5      u  pp#US-  SU-  -   U-  mT" SSS5      nUS:X  a  [        U[        5      (       a   e[	        [
        U4S j5        g )Nr   r-   r,   r   r.   c                     > T " SSS5      $ )Nr   r   r)   )r>   s   r   rF   +test_FracElement___call__.<locals>.<lambda>E  s    a1ajr   )r   r   rS   r   r   r   )r%   r   r   r&   rr>   s        @r   test_FracElement___call__r   >  sZ    Wb!HA	
A!QA	!Q
A6*Q4444
01r   c                     ^^ [        S[        5      u  pnm[        S[        5      S   nUS-  SU-  -   T-  mTR                  US5      SUR                  -  UR                  -  :X  d   e[        [        UU4S j5        g )Nr   zy,zr   r-   r,   c                  (   > T R                  TS5      $ r   )evaluater>   r&   s   r   rF   +test_FracElement_evaluate.<locals>.<lambda>M  s    ajjA&6r   )r   r   r   r   r&   r   r   )r%   r   r   Fyzr>   r&   s       @@r   test_FracElement_evaluater   G  sp    Wb!HA1
r
1
C	
A!QA::aqwsuu},,,
67r   c                     ^^ [        S[        5      u  pnmUS-  SU-  -   T-  mTR                  US5      SU-  T-  :X  d   e[        [        UU4S j5        g )Nr   r-   r,   r   c                  (   > T R                  TS5      $ r   )subsr   s   r   rF   'test_FracElement_subs.<locals>.<lambda>T  s    affQlr   )r   r   r   r   r   )r%   r   r   r>   r&   s      @@r   test_FracElement_subsr   O  sV    Wb!HA1	
A!QA66!Q<1Q3q5   
23r   c                      g rC   r)   r)   r   r   test_FracElement_composer   V  s    r   c                     ^^ [        S5      m[        S[        5      u  mpnTR                  U 5      S:X  d   eTR                  U5      S:X  d   e[	        [
        U4S j5        [	        [
        UU4S j5        g )Nr\   zx y zr   r   c                  &   > T R                  S5      $ r   index)r%   s   r   rF   &test_FracField_index.<locals>.<lambda>_      qwwqzr   c                  &   > T R                  T5      $ rC   r   )r%   r\   s   r   rF   r   `  r   r   )r   r   r	   r   r   rH   )r   r   r&   r%   r\   s      @@r   test_FracField_indexr   Y  s_    Aw#JAqQ771:??771:??
:)*
:)*r   N)0__doc__sympy.polys.fieldsr   r   r   r   sympy.polys.ringsr   sympy.polys.domainsr   r	   sympy.polys.orderingsr
   sympy.testing.pytestr   r   
sympy.corer   r   sympy.core.numbersr   &sympy.functions.elementary.exponentialr   r   (sympy.functions.elementary.miscellaneousr   r   r'   r*   r7   r9   r@   rK   rV   r`   rc   rf   rv   ry   r|   r   r   r   r   r   r   r   r   r)   r   r   <module>r      s    & D D " & % . ! ' = 9
80&-$*Z,6/A4A4X4$0L37
 2 284		r   