
    g(                     &   d Z ddlmZ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mZ ddlmZmZ ddlmZ dd	lmZmZ dd
lmZ d Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*ed             Z+d Z,d Z-d Z.d  Z/d!S )"z Test sparse rational functions.     )fieldsfield	FracFieldFracElement)ring)ZZQQ)lex)raisesXFAIL)symbolsE)Rational)explog)sqrtc                     t          dt          t                    } t          dt          t                    }t          dt          t                    }| j        | j        d         k    sJ | j        | j        d         k    sJ | j        |j        k    sJ | j        |j        k    sJ | j        |j        k    sJ | j        |j        k    sJ d S )Nx,yx,y,zr      )r   r   r
   xgensy)F1F2F3s      Y/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/tests/test_fields.pytest_FracField___init__r      s    	5"c	"	"B	5"c	"	"B	7B	$	$B4271:4271:424<<<<424<<<<424<<<<424<<<<<<    c                  \    t          dt                    \  } }}}t          |           sJ d S Nr   r   r	   hashFr   r   zs       r   test_FracField___hash__r'      s,    w##JAq!Q77NNNNNr   c                  z   t          dt                    d         t          dt                    d         k    sJ t          dt                    d         t          dt                    d         u sJ t          dt                    d         t          dt                    d         k    sJ t          dt                    d         t          dt                    d         usJ t          dt                    d         t          dt                    d         k    sJ t          dt                    d         t          dt                    d         usJ t          dt                    d         t          dt                    d         k    sJ t          dt                    d         t          dt                    d         usJ t          dt                    d         t          dt                    d         k    sJ t          dt                    d         t          dt                    d         usJ d S )Nr   r   r   )r   r	   r    r   r   test_FracField___eq__r*      s   "a E'2$6$6q$99999"a E'2$6$6q$99999"a E'2$6$6q$99999"a gr(:(:1(====="a E'2$6$6q$99999"a gr(:(:1(====="a E%$4$4Q$77777"a eR(8(8(;;;;;A%"4"4Q"77777AeGR&8&8&;;;;;;;r   c                     t          d          } t          t          t          t          |                     t          |           ft          t
                    }|j        \  }}}t          t          |           t          t          |           dz   t          t          |           dz             dz  z             dz  z  t          |           dz   z            ||dz  |dz  z  |z  fk    sJ t          | t          d| z            t          |           | t          dd          z  ft          t
                    }|j        \  }}}}t          | dz
  t          |           z  d| dz  z  z   t          d| z  t          |           dz  z             z  | dz  z            |d|j
        dz  z  |z  |j
        |z  |z  z   d|z  |z  z
  |dz  z  fk    sJ t          | t          |           t          | t          |           z             ft          t
                    }|j        \  }}}t          | dz   | | t          |           z   t          dd          z  z  z  d| t          |           dz  z  z  z
            ||j
        |dz  z  |j
        |z  z
  |dz  z   ||z  z
  |j
        dz  |dz  z  |z  |j
        |dz  z  |z  z   z  fk    sJ d S )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   .   s   A1c#a&&kk3q66*B44A&KAtR#a&&SVVaZ#c!ffqj//!*;;<<a??Q!LMMq!tD!G|B        	1c!A#hhA2a884b#>>AFMAr2rAaCQ<!Q$&AaCAqL(9(99!Q$>??	
QqsAvXb[13r6"9$qtBw.A567 7 7 7 	1c!ffd1s1vv:../S99AJAr31q5Q!c!ff*r!Qxx!7781a#a&&!)m;LLMMBE	ACG#b!e+bf4S!VBE\#BE	#-/ 00 0 0 0 0 0r   c                  h    t          dt                    \  } }}}t          ||z  |z            sJ d S r!   r"   r$   s       r   test_FracElement___hash__r9   A   s9    w##JAq!Q!A;;r   c                      t          dt                    \  } }}}||z  dz  |z  }|                                }||k    sJ d|j        d<   ||k    sJ d S )Nr   r,      )r   r   r   )r   r   copynumer)r%   r   r   r&   fgs         r   test_FracElement_copyr@   E   sa    w##JAq!Q	!AaA	A6666AGI666666r   c                     t          dt                    \  } }}}d|dz  z  |z  ||z  |z  z
  d|dz  z  dz   z  | j        \  }}ddz  z  |z  |z  |z  z
  d|dz  z  dz   z  }|k    sJ                                 |k    sJ t          d          \  }}ddz  z  |z  |z  |z  z
  d|dz  z  dz   z  }|k    sJ                     ||          |k    sJ t	          t
          fd           d S )Nr   r,   r-   r;   r   c                  .                                    S N)as_expr)Xr>   s   r   <lambda>z*test_FracElement_as_expr.<locals>.<lambda>_   s    qyy|| r   )r   r   r   rD   r   
ValueError)	r%   r   r   r&   YZr?   rE   r>   s	          @@r   test_FracElement_as_exprrJ   O   s?   w##JAq!Q	
1a4AaCE	AadFQJ'AiGAq!	
1a4AaCE	AadFQJ'A666699;;!gGAq!	
1a4AaCE	AadFQJ'A666699Q1""""
:+++++,,,,,r   c            	      j   t          d          \  } }t          | |ft                    \  }}}                    d          }|dk    rt	          |j                  sJ                     t          dd                    }| d          dz  k    rt	          |j                  sJ                               }||k    rt	          |j                  sJ                     t          dd          z            }||t          dd          z  k    rt	          |j                  sJ                     dz            }|d|z  k    rt	          |j                  sJ                     | z  |z            }|||z  |z  k    rt	          |j                  sJ                     | z  |z            }|||z  |z  k    rt	          |j                  sJ                     | z  |z  | z  z   z             }|||z  |z  ||z  z   |z   k    rt	          |j                  sJ                     | z  |z  | z  z   z   | z  dz   z            }|||z  |z  ||z  z   |z   ||z  dz   z  k    rt	          |j                  sJ                     dz  | z  |z  dz  | dz  z  z   dz             }||dz  |z  |z  |dz  |dz  z  z   dz   k    rt	          |j                  sJ t          t          fd           t          t          fd           t	          t          dz           	                                
                    d z            t                    sJ t	          t          dz           	                                
                    dz            t                    sJ t	          t          t          t          dd                             	                                
                    t                    t                    sJ d S )	Nr   r   r,   r;   r-   c                  4                          dz            S )Nr-   )	from_exprr%   r   s   r   rF   z,test_FracElement_from_expr.<locals>.<lambda>   s    q{{1a400 r   c                  T                          dz  t          d          z             S )Nr;   r-   )rM   r   rN   s   r   rF   z,test_FracElement_from_expr.<locals>.<lambda>   s!    q{{1Q3a=99 r   i)r   r   r   rM   
isinstancedtyper   r   rG   	get_fieldconvertr   r   r   )r   r&   rE   rH   rI   r>   r%   r   s         @@r   test_FracElement_from_exprrT   a   s7   gGAq!1ay"%%JAq!Q	AA66jAG,,666	HQNN##A!Q;;:a11;;;	AA66jAG,,666	HQqMM!O$$A(1a..   Z17%;%;   	AaCA!88
1ag..888	AaCEA!A::*Q00:::	AaCEA!A::*Q00:::	AaCEAaCK!O$$A!A!aJq!'$:$:	QqSUQqS[1_qsQw/00A1Q1q1Q37+++
1ag0F0F+++	AqDF1Hq!tAqDy(1,--A1Qq1a419$q(((Z17-C-C(((
:00000111
:99999:::bAh((**221r7;;    bAh((**221r7;;    bXa^^,,-7799AA!DD      r   c                  p   t          d          \  } }}t          j        | |          }|                    |          } || |z             }|j         |                    |          | |z             k    sJ |j                                         || |z             gk    sJ |j         |                    |          d          k    sJ t          j        | |          }|                    |          } || |z             }|j         |                    |          | |z             k    sJ |j                                         || |z             gk    sJ |j         |                    |          d          k    sJ  | || |z                       }|j         |                    |          | |z             k    sJ |j                                         || |z             gk    sJ |j         |                    |          d          k    sJ  | || |z                       }|j         |                    |          | |z             k    sJ |j                                         || |z             gk    sJ |j         |                    |          d          k    sJ d S )Nza b xr   )r   r   
frac_fieldr=   	poly_ringcoeffsdenom)abr   r   r   fracr   F4s           r   test_FracField_nestedr^      s   gGAq!	q!		B	q		B2a!e99D:aQ//////:22a!e99+----:a++++++	a		B	q		B2a!e99D:aQ//////:22a!e99+----:a++++++2bbQii==D:aQ//////:22a!e99+----:a++++++2bbQii==D:aQ//////:22a!e99+----:a++++++++r   c                  @   t          dt                    \  } }} | d          d|z  cxk     rd|dz  z  cxk     rd|dz  z  k     sn J  | d          d|z  cxk    rd|dz  z  cxk    rd|dz  z  k    sn J d|z  d|z  cxk     r d|z  cxk     r||z  cxk     rd|dz  z  k     sn J d|z  d|z  cxk    r d|z  cxk    r||z  cxk    rd|dz  z  k    sn J d|dz  z  d|dz  z  cxk    rd|z  cxk    r | d          k    sn J d|dz  z  d|dz  z  cxk    rd|z  cxk    r | d          k    sn J d|dz  z  ||z  cxk    rd|z  cxk    rd|z  cxk    r	d|z  k    sn J d|dz  z  ||z  cxk    rd|z  cxk    rd|z  cxk    r	d|z  k    sn J d S )Nr   r   r-   r,   )r   r   )r%   r   r   s      r   test_FracElement__lt_le_gt_ge__ra      s   E2GAq!1Q44!A#''''!Q$''''1a4''''''1Q441Q3****!AqD&****AadF******a4!A#****!****ac****AadF******a41Q3....!A#....1....!Q$......QT6AadF''''QqS''''11Q44''''''QT6Qq!tV****qs****aadd******QT6AaC****!A#****!****bd******QT6QqS....AaC....1Q3...."Q$........r   c                      t          dt                    \  } }}d|z  dz
  |z  }d|z  dz   |z  }| |k    sJ | |k    sJ d S )Nr   r;   	   r`   )r   r	   )r%   r   r   r>   r?   s        r   test_FracElement___neg__rd      s[    5"FAq	
1q!A	A1A277772777777r   c                     t          dt                    \  } }}d|z  d|z  }}||z   ||z   cxk    r||z   ||z  z  k    sn J || j        j        d         z   | j        j        d         |z   cxk    r	d|z  k    sn J t          dt                    \  } }}|dz   d|z   k    sJ |t          dd          z   t          dd          |z   cxk    rd|z  dz   dz  k    sn J t          dt                    \  }}}t          d|          \  }}}}	}
||z  |z   |||z  z   z  }t          |j                  d||z  d	k    sJ t          |j                  d||z  d
k    sJ t          dt                    \  }}}t          d|          \  }}}}	}
||z  |z   |||z  z   z  }t          |j                  d||z  d	k    sJ t          |j                  d||z  d
k    sJ d S )Nr   r   r   r-   r,   r;   u,vx,y,z,t)r   r   r   r   r   r   r   r   )r   r   r   r   ri   r   r	   r   r   r   dictr=   rY   r%   r   r   r>   r?   FuvuvFxyztr&   tRuvs               r   test_FracElement___add__rt      s?   5"FAqQ3!qAq5AE****a!eac]******qv{1~Q!!3::::qs::::::5"FAqq5AE>>>>r!Aww;"Qq''A+4444!A#'1444444UBHC19c**NE1Qq	
1q1qs7A==1AaC@@@@@@==1AaC@@@@@@E2HC19c**NE1Qq	
1q1qs7A==1AaC@@@@@@==1AaC@@@@@@@@r   c                     t          dt                    \  } }}d|z  d|z  }}||z
  | |z   ||z  z  k    sJ || j        j        d         z
  | j        j        d         |z
  cxk    rdk    sn J t          dt                    \  } }}|dz
  d|z
   k    sJ |t          dd          z
  t          dd          |z
   cxk    rd|z  dz
  dz  k    sn J t          dt                    \  }}}t          d|          \  }}}}	}
||z  |z
  |||z  z
  z  }t          |j                  d||z  d	k    sJ t          |j                  d| |z  d
k    sJ t          dt                    \  }}}t          d|          \  }}}}	}
||z  |z
  |||z  z
  z  }t          |j                  d||z  d	k    sJ t          |j                  d| |z  d
k    sJ d S )Nr   r   r   r,   r;   rf   rg   rh   rj   rk   rm   s               r   test_FracElement___sub__rw      s1   5"FAqQ3!qAq5aR!VacN""""qv{1~Q!!38888q8888885"FAqq5a!eHr!Aww;BqGGaK.7777QqS1WaK777777UBHC19c**NE1Qq	
1q1qs7A=="AaC@@@@@@==1A2a4@@@@@@E2HC19c**NE1Qq	
1q1qs7A=="AaC@@@@@@==1A2a4@@@@@@@@r   c                  ,   t          dt                    \  } }}d|z  d|z  }}||z  ||z  cxk    rd||z  z  k    sn J || j        j        d         z  | j        j        d         |z  cxk    r	|dz  k    sn J t          dt                    \  } }}|dz  d|z  k    sJ |t          dd          z  t          dd          |z  cxk    r|t          dd          z  k    sn J t          dt                    \  }}}t          d|          \  }}}}	}
|dz   |z  |z  dz   |dz
  |	z  |
|z  |z  z
  dz
  z  }t          |j                  |dz   dd	k    sJ t          |j                  |dz
  | |z  d
dk    sJ t          dt                    \  }}}t          d|          \  }}}}	}
|dz   |z  |z  dz   |dz
  |	z  |
|z  |z  z
  dz
  z  }t          |j                  |dz   dd	k    sJ t          |j                  |dz
  | |z  d
dk    sJ d S )Nr   r   r   r-   r,   r;   rf   rg   )r   r   r   r   ri   rv   ))r   r   r   r   )r   r   r   r   ri   )	r   r	   r   r   r   r   rl   r=   rY   rm   s               r   test_FracElement___mul__rz      s   5"FAqQ3!qAQ3!A#    AaC      QV[^qv{1~a/77771a47777775"FAqQ3!A#::::R!WW91Q	5555Qx1~~%5555555UBHC19c**NE1Qq
a%1qAE19qs1u,q01A==1q5BBBBBB==1q51TVWWWWWWE2HC19c**NE1Qq
a%1qAE19qs1u,q01A==1q5BBBBBB==1q51TVWWWWWWWWr   c                  0   t          dt                    \  } }dz  d|z  }}||z  |z  k    sJ | j        j        d         z  | j        j        d         z  cxk    rdk    sn J t          dt                    \  } }dz  dz  k    sJ t          dd          z  t          dd          z  dz  cxk    rt          dd          z  k    sn J t          t          fd           t          t          fd           t          t          fd	           t          d
t                    \  }}}t          d|          \  }}}}	||z  |z  z  }t          |j	                  d||z  ik    sJ t          |j
                  ddik    sJ |z  ||z  z  }t          |j	                  ddik    sJ t          |j
                  d||z  ik    sJ t          d
t                    \  }
}}t          d|
          \  }}}}	||z  |z  z  }t          |j	                  d||z  ik    sJ t          |j
                  ddik    sJ |z  ||z  z  }t          |j	                  ddik    sJ t          |j
                  d||z  ik    sJ d S )Nr   r   r   r,   r;   rv   c                       dz  S Nr   r)   r   s   r   rF   z.test_FracElement___truediv__.<locals>.<lambda>  s    ac r   c                      d  z
  z  S Nr   r)   r~   s   r   rF   z.test_FracElement___truediv__.<locals>.<lambda>      aQi r   c                         z
  z  S rC   r)   r~   s   r   rF   z.test_FracElement___truediv__.<locals>.<lambda>  r   r   rf   rg   ri   ry   )r   r	   r   r   r   r   r   ZeroDivisionErrorrl   r=   rY   )r%   r   r>   r?   rn   ro   rp   rq   r&   rr   rs   r   s              @r   test_FracElement___truediv__r     s   5"FAqQ3!qAQ3!A#::::QV[^qv{1~a/444414444445"FAqQ3!A#::::R!WW9AaR;;;;1Xa^^+;;;;;;;
kkkk***
////000
////000UBHC19c**NE1Qq	
1qsA==\1Q3/////==\1-----	
1qsA==\1-----==\1Q3/////E2HC19c**NE1Qq	
1qsA==\1Q3/////==\1-----	
1qsA==\1-----==\1Q3///////r   c                     t          dt                    \  } }dz  d|z  }}|dz  ddz  z  k    sJ |dz  d|dz  z  k    sJ ||z  dz  ddz  |dz  z  z  k    sJ ||z  dz  |z  dz  k    sJ t          t          fd           d S )Nr   r   r,   c                        z
  dz  S )Nr   r)   r~   s   r   rF   z*test_FracElement___pow__.<locals>.<lambda>@  s    q1urk r   )r   r	   r   r   )r%   r   r>   r?   r   s       @r   test_FracElement___pow__r   5  s    5"FAqQ3!qAa41QT6>>>>a41QT6>>>>aC!8q!Q$q!t)}$$$$aC"91q    
111122222r   c                      t          dt                    \  } }}}|dz  |z   |dz   z                      |          d|z  |dz   z  k    sJ d S )Nr   r-   r   )r   r   diffr$   s       r   test_FracElement_diffr   B  s[    Wb!!HAq1TAXA$$Q''1Q3A;666666r   c                      t          dt                    \  } }}}|dz  d|z  z   |z   ddd          }|dk    rt          |t                    rJ t	          t
          fd           d S )Nr   r-   r,   r   r.   c                        ddd          S )Nr   r   r)   )r>   s   r   rF   z+test_FracElement___call__.<locals>.<lambda>N  s    aa1ajj r   )r   r   rP   r   r   r   )r%   r   r   r&   rr>   s        @r   test_FracElement___call__r   G  s|    Wb!!HAq1	
A!QA	!Q

A66*Q44666
000011111r   c                     t          dt                    \  } }}t          dt                    d         }|dz  d|z  z   z                      |d          d|j        z  |j        z  k    sJ t          t          fd           d S )Nr   zy,zr   r-   r,   c                  0                          d          S r}   )evaluater>   r&   s   r   rF   z+test_FracElement_evaluate.<locals>.<lambda>V  s    ajjA&6&6 r   )r   r   r   r   r&   r   r   )r%   r   r   Fyzr>   r&   s       @@r   test_FracElement_evaluater   P  s    Wb!!HAq1
r

1
C	
A!QA::aqwsu},,,,
6666677777r   c                      t          dt                    \  } }}|dz  d|z  z   z                      |d          d|z  z  k    sJ t          t          fd           d S )Nr   r-   r,   r   c                  0                          d          S r}   )subsr   s   r   rF   z'test_FracElement_subs.<locals>.<lambda>]  s    affQll r   )r   r   r   r   r   )r%   r   r   r>   r&   s      @@r   test_FracElement_subsr   X  sy    Wb!!HAq1	
A!QA66!Q<<1Q3q5    
2222233333r   c                      d S rC   r)   r)   r   r   test_FracElement_composer   _  s    Dr   c                  *   t          d          t          dt                    \  } }}                    |           dk    sJ                     |          dk    sJ t	          t
          fd           t	          t
          fd           d S )NrZ   zx y zr   r   c                  .                          d          S r   index)r%   s   r   rF   z&test_FracField_index.<locals>.<lambda>h      qwwqzz r   c                  .                                    S rC   r   )r%   rZ   s   r   rF   z&test_FracField_index.<locals>.<lambda>i  r   r   )r   r   r	   r   r   rG   )r   r   r&   r%   rZ   s      @@r   test_FracField_indexr   b  s    Aw##JAq!Q771::????771::????
:))))***
:)))))***Dr   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@   rJ   rT   r^   ra   rd   rt   rw   rz   r   r   r   r   r   r   r   r   r)   r   r   <module>r      sB   & & D D D D D D D D D D D D " " " " " " & & & & & & & & % % % % % % . . . . . . . . ! ! ! ! ! ! ! ! ' ' ' ' ' ' = = = = = = = = 9 9 9 9 9 9
 
 
  < < < 0 0 0&    - - -$* * *Z, , ,6/ / /  A A A4A A A4X X X4$0 $0 $0L3 3 37 7 7
 2 2 28 8 84 4 4	 	 		 	 	 	 	r   