
    \h1                         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  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  SSKJr  SSKJr  SSKJr  \r S r!S r"S r#S r$S r%S r&S r'g)z4Tests for the subfield problem and allied problems.     )AlgebraicNumberIpiRational)S)exp)sqrt)MPQ)is_isomorphism_possiblefield_isomorphism_pslqfield_isomorphismprimitive_elementto_number_field)QQ)IsomorphismFailed)Poly)CRootOf)raises)xc                  z  ^^ [        [        5      m[        [        [        S5      -  5      m[        [        UU4S j5        [        [        S5      5      m[        [        S5      5      m[        [        S5      5      n [        [        S5      [        S5      -   5      n[        [        S5      [        S5      -   [        S5      -   5      n[        TT5      SS/:X  d   e[        TT5      b   e[        TU 5      b   e[        TU5      [        SS5      S[        SS5      * S/:X  d   e[        TU5      [        SS5      S[        SS5      * S[        S	S
5      S/:X  d   e[        TT5      b   e[        TT5      SS/:X  d   e[        TU 5      b   e[        TU5      [        SS5      * S[        SS5      S/:X  d   e[        TU5      [        SS5      * S[        SS5      S[        SS5      * S[        SS5      S/:X  d   e[        U T5      b   e[        U T5      b   e[        X 5      SS/:X  d   e[        X5      b   e[        X5      [        SS5      S[        SS5      * S[        SS5      S[        SS5      * S/:X  d   e[        UT5      b   e[        UT5      b   e[        X5      b   e[        X5      SS/:X  d   e[        X5      [        SS5      * S[        SS5      S[        SS5      * S[        SS5      S/:X  d   e[        UT5      b   e[        UT5      b   e[        X 5      b   e[        X!5      b   e[        X"5      SS/:X  d   e[        S[        S5      -  S[        S5      -  -   S-
  5      n[        X25      [        SS5      S[        SS5      * S[        SS
5      S[        SS
5      * S/:X  d   eg )N   c                     > [        T T5      $ )N)r   abs   d/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/numberfields/tests/test_subfield.py<lambda>-test_field_isomorphism_pslq.<locals>.<lambda>   s    (>q!(D             r   	   P   ;         i  C   i@  i)     i9  G   iy  i  i%           i[  i  )r   r   r	   r   NotImplementedErrorr   Q)cdefr   r   s       @@r   test_field_isomorphism_pslqr5      s   A$q'	"A
 DEQ AQ AQ AQ$q')*AQ$q')DG34A!!Q'Aq6111!!Q'///!!Q'///!!Q'AaGQ1a!+DDDD!	1Ar(A!QxAb"Iq9: : : "!Q'///!!Q'Aq6111!!Q'///!!Q'Qq!WHa2q1+EEEE!!Q'Q	3. -Ab#JAc3K<Ac2J,C C C C "!Q'///!!Q'///!!'Aq6111!!'///!!'A	3-Qr3ZKAc3KQsBZK,D D D D "!Q'///!!Q'///!!'///!!'Aq6111!!'Q	3. -Ab#JAc3K<Ac2J,C C C C "!Q'///!!Q'///!!'///!!'///!!'Aq6111$q'	Ad1gI-12A!	Ar(A#r
{Aqbz1qbzk2NO O Or   c                     [        S[        S5      5      S/:X  d   e[        [        [        S5      -  [        [        S5      -  S-  5      SS/:X  d   e[        [        * [        S5      -  [        [        S5      -  S-  5      SS/:X  d   e[        [        [        S5      -  [        * [        S5      -  S-  5      SS/:X  d   e[        [        * [        S5      -  [        * [        S5      -  S-  5      SS/:X  d   e[        S[        -  [        S5      -  S-  S[        -  [        S5      -  S-  5      [        SS5      S/:X  d   e[        S[        -  [        S5      -  S-  S[        -  [        S5      -  S-  5      [        S	S5      S/:X  d   e[        S[        -  [        S5      -  S-  S
[        -  [        S5      -  S-  5      [        S	S5      S/:X  d   e[        S[        -  [        S5      -  S-  S
[        -  [        S5      -  S-  5      [        SS5      S/:X  d   e[        S[        -  [        S5      -  S-  S-   S[        -  [        S5      -  S-  5      [        SS5      S/:X  d   e[        S[        -  [        S5      -  S-  S-   S[        -  [        S5      -  S-  5      [        S	S5      S/:X  d   e[        S[        -  [        S5      -  S-  S-   S
[        -  [        S5      -  S-  5      [        S	S5      S/:X  d   e[        S[        -  [        S5      -  S-  S-   S
[        -  [        S5      -  S-  5      [        SS5      S/:X  d   e[	        [        S5      [        S5      -   5      n [	        [        S5      * [        S5      -   5      n[	        [        S5      [        S5      -
  5      n[	        [        S5      * [        S5      -
  5      n[
        R                  [
        R                  [        SS5      [
        R                  /n[        SS5      [
        R                  [        SS5      [
        R                  /n[	        [        S5      5      n[        X`5      SL d   e[        Xa5      SL d   e[        Xb5      SL d   e[        Xc5      SL d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[	        [        S5      * 5      n[        X`5      SL d   e[        Xa5      SL d   e[        Xb5      SL d   e[        Xc5      SL d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[
        R                  [
        R                  [        SS5      [
        R                  /n[        SS5      [
        R                  [        SS5      [
        R                  /n[	        [        S5      5      n[        X`5      SL d   e[        Xa5      SL d   e[        Xb5      SL d   e[        Xc5      SL d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[	        [        S5      * 5      n[        X`5      SL d   e[        Xa5      SL d   e[        Xb5      SL d   e[        Xc5      SL d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[        SS5      [
        R                  [        SS5      [        S5      * /n[        SS5      [
        R                  [        SS5      [        S5      * /n[	        S[        S5      -  S-
  5      n[        X`5      SL d   e[        Xa5      SL d   e[        Xb5      SL d   e[        Xc5      SL d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U:X  d   e[        XcSS9U:X  d   e[	        S[        S5      -  S[        S5      -  -   S-   5      n[
        R                  [
        R                  [        S
S5      [
        R                  /n[        S
S5      [
        R                  [        SS5      [
        R                  /n[        SS5      [
        R                  [        SS5      [
        R                  /n	[        SS5      [
        R                  [        SS5      [
        R                  /n
[        X`5      SL d   e[        Xa5      SL d   e[        Xb5      SL d   e[        Xc5      SL d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U	:X  d   e[        XcSS9U
:X  d   e[        X`SS9U:X  d   e[        XaSS9U:X  d   e[        XbSS9U	:X  d   e[        XcSS9U
:X  d   e[	        [        S5      5      n[	        [        S5      5      n[	        [        S5      5      n[        Xk5      SL d   e[        X5      SL d   e[        X5      SL d   e[        [        S5      [        S5      SS9b   e[        [        S5      [        S5      SS9b   e[        [        S5      [        S5      SS9b   e[        [        S5      [        S5      SS9b   e[	        [        S5      5      n[	        S[        S5      S-  -  5      n[        Xk5      SL d   e[        Xk5      b   eg )Nr   r    r   r!   r,      #   ir.      r#   T)fastFir'   ir+   !   r"   1   i)
r   r	   r   r   r   r   HalfZeror   One)pqrs
pos_coeffs
neg_coeffsr   pos_1_coeffsneg_5_coeffspos_5_coeffsneg_1_coeffsr   r1   s                r   test_field_isomorphismrN   N   s/   QQ(QC///aQi47151a@@@aRQZ4715"a@@@aQi!DGA62q'AAAaRQZ!DGA6Aq'AAAac$q'k!mQqSa[];!RRS?TTTTRT$q'\!^QqSa[];R@PRS?TTTTac$q'k!mRT$q'\!^<"bAQST@UUUURT$q'\!^RT$q'\!^<(1b/ST@UUUU	!DGAAaCQKM+08B.DE E E
1T!WQQqSa[],08R0@"/EF F F 	!DGABqDaLN,08R0@"/EF F F
1T!WQRT$q'\!^-2:1b/20FG G G 	a47*+Aa47*+Aa47*+Aa47*+A661668B?AFF;J2q/1668Aq>166BJQ A"1(D000"1(D000"1(D000"1(D000Q-;;;Q-;;;Q-;;;Q-;;;Q.*<<<Q.*<<<Q.*<<<Q.*<<<a!A"1(D000"1(D000"1(D000"1(D000Q-;;;Q-;;;Q-;;;Q-;;;Q.*<<<Q.*<<<Q.*<<<Q.*<<<661668C#3QVV<J2q/1668B?AFFCJQ A"1(D000"1(D000"1(D000"1(D000Q-;;;Q-;;;Q-;;;Q-;;;Q.*<<<Q.*<<<Q.*<<<Q.*<<<a!A"1(D000"1(D000"1(D000"1(D000Q-;;;Q-;;;Q-;;;Q-;;;Q.*<<<Q.*<<<Q.*<<<Q.*<<<Aq>1668C+;adUCJ2q/1668B?QqTEBJ$q'	A&A"1(D000"1(D000"1(D000"1(D000Q-;;;Q-;;;Q-;;;Q-;;;Q.*<<<Q.*<<<Q.*<<<Q.*<<<$q'	Ad1gI-12AVVQVVXb!_aee<LROQVVXb!_aeeDLa^QVVXc1-=quuELROQVVXa^QUUCL"1(D000"1(D000"1(D000"1(D000Q-===Q-===Q-===Q-===Q.,>>>Q.,>>>Q.,>>>Q.,>>>Q AQ AQ A"1(D000"1(D000"1(E111T!Wd1gD9AAAT!Wd1gD9AAAT!Wd1gE:BBBT!Wd1gE:BBBQ AadQh(A"1(E111Q"***r   c            
         [        [        S5      /[        5      [        S-  S-
  S/4:X  d   e[        [        S5      [        S5      /[        5      [        S-  S[        S-  -  -
  S-   SS/4:X  d   e[        [        S5      /[        SS9[        [        S-  S-
  SS	9S/4:X  d   e[        [        S5      [        S5      /[        SS9[        [        S-  S[        S-  -  -
  S-   SS	9SS/4:X  d   e[        [        S5      /[        SS
9[        S-  S-
  S/SS//4:X  d   e[        [        S5      [        S5      /[        SS
9[        S-  S[        S-  -  -
  S-   SS/[	        SS5      S[	        SS5      * S/[	        SS5      * S[	        SS5      S//4:X  d   e[        [        S5      /[        SSS9[        [        S-  S-
  SS	9S/SS//4:X  d   e[        [        S5      [        S5      /[        SSS9[        [        S-  S[        S-  -  -
  S-   SS	9SS/[	        SS5      S[	        SS5      * S/[	        SS5      * S[	        SS5      S//4:X  d   e[        [        S5      /SS9[        [        S-  S-
  5      S/4:X  d   e[        [        S 5        [        [        S 5        [        [        S[        S5      -  S-   5      -  [        [        S[        S5      -  S-   5      -  p[        X[        /[        5      [        S-  S[        S-  -  -   S-   / SQ4:X  d   e[        [        S5      S/[        5      [        S-  S-
  SS/4:X  d   e[        S[        S5      /[        5      [        S-  S-
  SS/4:X  d   e[        [        S5      S/[        SS
9[        S-  S-
  SS/[        SS5      [        SS5      // /4:X  d   e[        S[        S5      /[        SS
9[        S-  S-
  SS// [        SS5      [        SS5      //4:X  d   eg )Nr    r"   r      
   Tpolysr   domainexr   r#   r'   )rW   rS   c                       [        / [        SS9$ )NFrV   r   r    r   r   r   (test_primitive_element.<locals>.<lambda>  s    0Q5Ar   c                       [        / [        SS9$ )NTrV   rY   rZ   r   r   r   r[     s    0Q4@r   r7   r8   )r"   r   r   )	r   r	   r   r   r0   r   
ValueErrorr   r
   r   s     r   test_primitive_elementr^      s`   d1gY*q!tax!o===	a$q'A#$a4"QT'>A#51v">? ? ? d1gY641qQU;VYZX[:\\\\d	Gt%)-adR1Wnq.@)NQRTUPV(WX X X 	a	1#$a4!8aSAq6(";< < <d1gtAw/t<	
A1a4!	aVqAwAaG8Q&?	
1aCQr1XqB" &# 	$$ $ $ 	a	1T+/3AqD1HT/JQCSTVWRXQY.Z[ [ [d1gtAw/t4H	adR1Wnq 	.A!Aq'1qAwh	
:Awh1R8Q'9) 	** * * d1gYd3QTAX7LLLL
:AB
:@A T!DG)a-  !DDGa$8"8qaAY*q!ta1f}q/@).LLLLd1gq\1-!Q$(QF1CCCCaa\1-!Q$(QF1CCCCd1gq\161a4!8aVsSTUVxY\]^_`YaNbdfMg:hhhhaa\161a4!8aVbSVWXYZS[]`abcd]eRfMg:hhhhr   c            	         [        [        S5      5      [        [        S5      5      :X  d   e[        [        S5      [        S5      /5      [        [        S5      [        S5      -   5      :X  d   e[        [        S5      [        S5      -   [        R                  [        R
                  [        SS5      [        R
                  /5      n [        [        S5      [        S5      [        S5      -   5      U :X  d   e[        [        S5      [        [        S5      [        S5      -   5      5      U :X  d   e[        [        S 5        g )Nr    r   r;   c                  >    [        [        S5      [        S5      5      $ )Nr    r   )r   r	   rZ   r   r   r   &test_to_number_field.<locals>.<lambda>$  s    od1gtAw&Gr   )	r   r	   r   r   rA   rB   r   r   r   )r   s    r   test_to_number_fieldrb     s    47#tAw'????	a$q'.tAwa/@AB B B 	Q$q')AFFAFFHROQVV+TUA47DGd1g$56!;;;47ODGd1g4E$FG1LLL
GHr   c                      [        [        S5      [        S5      [        S5      -   5      n [        [        S5      [        S5      [        S5      -   5      n[        X5      SS/:X  d   eg )Nr    r   r,   r"   r   )r   r	   r   r   s     r   test_issue_22561rd   '  sS    Qa47!23AQa47!23AQ"q!f,,,r   c                      [        [        S-  [        S-  -   [        S-  -   [        -   S-   S5      n U R                  5         [        S[        -  [
        -  S-  5      n[        X5      SS/:X  d   eg )NrP   r   r    r"   r<   r,   r   )r   r   _resetr   r   r   r   r   s     r   test_issue_22736rg   -  sb    1q!tad"Q&*B/AHHJAaCF1HAQ"q!f,,,r   c                     [        S[        S-  -  S[        S-  -  -
  S[        -  -   S-
  S5      [        S[        S-  -  S[        S-  -  -
  S[        -  -   S-
  S5      p[        X/SS9S   R                  5       S   S:X  d   e[        X/SSS	9S   R                  5       S   S:X  d   e[        R
                  " U 5      [        R
                  " U5      p2UR                  U5      nUR                  R                  5       S   S:X  d   e[        [        [        US
9[        [        [        US
9-   [        S[        -  [        US
9:X  d   eg )Nr@   r   r       r"   r   TrR   )rS   rW   rT   )	r   r   r   	primitiver   algebraic_fieldunifymodr   )r   r   f1f2f3s        r   test_issue_27798rq   4  s5   2ad7R1W$r!t+a/3WR1Wr!Q$w=NQSTUQU=UXY=Y[\5]qaV403==?BaGGGaV4D9!<FFHKqPPP"B$6$6q$9	"B66a A%%%1R 41R#88D1aPR<SSSSr   N)(__doc__sympy.core.numbersr   r   r   r   sympy.core.singletonr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr	   sympy.external.gmpyr
   !sympy.polys.numberfields.subfieldr   r   r   r   r   sympy.polys.domainsr   sympy.polys.polyerrorsr   sympy.polys.polytoolsr   sympy.polys.rootoftoolsr   sympy.testing.pytestr   	sympy.abcr   r0   r5   rN   r^   rb   rd   rg   rq   rZ   r   r   <module>r      sh    : A A " 6 9 #  # 4 & + ' 1Ohe+P!iH
I--	Tr   