
    Цi                        S r SSKJr  SSKJrJrJrJr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JrJr  SS
KJrJrJrJrJ r J!r!J"r"J#r#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/J0r0  SSK1J2r2  SSK3J4r4  SSK5J6r6  SSK7J8r8  SSK9J:r:  SSK;J<r<J=r=J>r>J?r?J@r@  SSKAJBrBJCrC  SSKDJErE  \R                  " \" S5      \" S5      5      rGS rHS rIS rJS rKS rLS rMS rNS  rOS! rPS" rQS# rRS$ rSS% rTS& rUS' rVS( rWS) rXS* rYS+ rZS, r[S- r\S. r]S/ r^S0 r_S1 r`S2 raS3 rbS4 rcS5 rdS6 reS7 rfS8 rgS9 rhS: riS; rjS< rkS= rlS> rmS? rnS@ roSA rpSB rqSC rrSD rsSE rtSF ruSG rvSH rwSI rxSJ rySK rzgL)MzPTests for classes defining properties of ground domains, e.g. ZZ, QQ, ZZ[x] ...     )GROUND_TYPES)	AlgebraicNumberEFloatIIntegerRationaloopi_illegal)S)exp)sqrt)sin)Poly)xyz)ZZQQRRCCFFGFEXEXRAWZZ_gmpy	ZZ_pythonQQ_gmpy	QQ_python)AlgebraicField)ZZ_IQQ_I)PolynomialRing)	RealField)field_isomorphism)ring)cyclotomic_poly)field)FiniteExtension)UnificationFailedGeneratorsErrorCoercionFailedNotInvertibleDomainError)raiseswarns_deprecated_sympy)product      c                 $    U R                  U5      $ Nunify)K0K1s     e/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/sympy/polys/domains/tests/test_domains.pyr8   r8   )   s    88B<    c                     ^ ^ [        S5      m [        S5      m[        T T 5      T :X  d   e[        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S	 j5        [        [        U 4S
 j5        [        [        U 4S j5        [        [        U 4S j5        [        TT5      T:X  d   e[        [        U U4S j5        [        [        U U4S j5        [        [        U U4S j5        [        [        U 4S j5        [        [        [        5      [        :X  d   e[        [        [
        5      [
        :X  d   e[        [        [        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        [           5      [        [           :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        5      [        :X  d   e[        [        U 4S j5        [        [
        [        5      [
        :X  d   e[        [
        [
        5      [
        :X  d   e[        [
        [        5      [        :X  d   e[        [
        [        5      [        :X  d   e[        [
        [        5      [        :X  d   e[        [
        [        [           5      [
        [           :X  d   e[        [
        [        R                  " [        5      5      [
        R                  " [        5      :X  d   e[        [
        [        5      [        :X  d   e[        [        U 4S j5        [        [        [        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [
        5      [        :X  d   e[        [        [        5      [
        R                  " [        [!        S5      [!        S5      5      :X  d   e[        [        [        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        [           5      [        [           :X  d   e[        [        [        [           5      [        [           :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        5      [        :X  d   e[        [        U 4S j5        [        [        [        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [
        5      [        :X  d   e[        [        [        5      [
        R                  " [        [!        S5      [!        S5      5      :X  d   e[        [        [        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        [           5      [        [           :X  d   e[        [        [        [           5      [        [           :X  d   e[        [        [
        [           5      [        [           :X  d   e[        [        [        [           5      [        [           :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [
        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        5      [        :X  d   e[        [        U 4S j5        [        [        [        5      [        :X  d   e[        [        [
        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        [           5      [        [           :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        5      [        :X  d   e[        [           R                  [        R                  " ["        5      5      [        R                  " [        ["        5      :X  d   e[        [        U 4S j5        [        [        [        5      [        :X  d   e[        [        [
        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        [           5      [        [           :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        5      [        :X  d   e[        [        U 4S j5        [        [        [           [        5      [        [           :X  d   e[        [        [           [
        5      [
        [           :X  d   e[        [        [           [        5      [        [           :X  d   e[        [        [           [        5      [        [           :X  d   e[        [        [           [        5      [        [           :X  d   e[        [        [           [        [           5      [        [           :X  d   e[        [        [           [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [           [        5      [        :X  d   e[        [        U 4S j5        [        [        R                  " [        5      [        5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [
        5      [
        R                  " [        5      :X  d   e[        [        R                  " [        5      [        5      [        R                  [        5      :X  d   e[        [        R                  " [        5      [        5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        [           5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        5      [        :X  d   e[        [        U 4S j5        [        [        [        5      [        :X  d   e[        [        [
        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        5      [        :X  d   e[        [        [        [           5      [        :X  d   e[        [        [        R                  " [        5      5      [        :X  d   e[        [        [        5      [        :X  d   eg )Nr4      c                  $   > [        T [        5      $ r6   r8   r   F3s   r;   <lambda>#test_Domain_unify.<locals>.<lambda>1       eBmr<   c                  $   > [        T [        5      $ r6   r8   r   rA   s   r;   rC   rD   2   rE   r<   c                  $   > [        T [        5      $ r6   r8   r"   rA   s   r;   rC   rD   3       eBor<   c                  $   > [        T [        5      $ r6   r8   r#   rA   s   r;   rC   rD   4   rJ   r<   c                  $   > [        T [        5      $ r6   )r8   ALGrA   s   r;   rC   rD   5   s    eBnr<   c                  $   > [        T [        5      $ r6   r8   r   rA   s   r;   rC   rD   6   rE   r<   c                  $   > [        T [        5      $ r6   r8   r   rA   s   r;   rC   rD   7   rE   r<   c                  2   > [        T [        [           5      $ r6   r8   r   r   rA   s   r;   rC   rD   8   s    eB1&6r<   c                  L   > [        T [        R                  " [        5      5      $ r6   r8   r   
frac_fieldr   rA   s   r;   rC   rD   9   s    eBa0@&Ar<   c                  $   > [        T [        5      $ r6   r8   r   rA   s   r;   rC   rD   :   rE   r<   c                     > [        TT 5      $ r6   r7   rB   F5s   r;   rC   rD   =   s    eBmr<   c                  *   > [        TT [           5      $ r6   )r8   r   r[   s   r;   rC   rD   >   s    eB1&6r<   c                  B   > [        TT R                  [        5      5      $ r6   )r8   rW   r   r[   s   r;   rC   rD   ?   s    eBa0@&Ar<   c                  $   > [        [        T 5      $ r6   r@   rA   s   r;   rC   rD   A       eBmr<   c                  $   > [        [        T 5      $ r6   rG   rA   s   r;   rC   rD   K   r`   r<   c                  $   > [        [        T 5      $ r6   rI   rA   s   r;   rC   rD   U       eD"or<   r3   c                  $   > [        [        T 5      $ r6   rL   rA   s   r;   rC   rD   b   rc   r<   c                  $   > [        [        T 5      $ r6   rP   rA   s   r;   rC   rD   s   r`   r<   c                  $   > [        [        T 5      $ r6   rR   rA   s   r;   rC   rD   ~   r`   r<   c                  2   > [        [        [           T 5      $ r6   rT   rA   s   r;   rC   rD      s    eBqE2&6r<   c                  L   > [        [        R                  " [        5      T 5      $ r6   rV   rA   s   r;   rC   rD      s    eBMM!,<b&Ar<   c                  $   > [        [        T 5      $ r6   rY   rA   s   r;   rC   rD      r`   r<   )r   r8   r0   r+   r   r   rN   r   r   r   rW   r   r"   r#   algebraic_fieldr   r   r   r[   s   @@r;   test_Domain_unifyrk   ,   s'
   	AB	ABR=B
34
34
56
56
45
34
34
67
AB
34R=B
34
67
AB
34R=BR=BS>S   R=BR=BRUr!u$$$R]]1%&"--*::::R=B
34R=BR=BS>S   R=BR=BRUr!u$$$R]]1%&"--*::::R=B
56r?d"""t$$$r?d"""sr11!T!Wd1gFFFFr?b   r?b   r!ua(((tAw47***r}}Q'(DOOA,>>>>tq)*dooa.@@@@r?b   
56r?d"""t$$$r?d"""sr11!T!Wd1gFFFFr?b   r?b   r!ua(((tAw47***r!ua(((tAw47***r}}Q'(DOOA,>>>>tq)*dooa.@@@@r}}Q'(DOOA,>>>>tq)*dooa.@@@@r?b   
34R=BR=BS>RR=BR=BRUr!u$$$R]]1%&"--*::::R=Ba5;;r}}Q'(BMM!Q,????
34R=BR=BS>RR=BR=BRUr!u$$$R]]1%&"--*::::R=B
67Ar!u$$$Ar!u$$$AA&&&Ar!u$$$Ar!u$$$A1"Q%'''Aa()R]]1-====Ar!!!
ABq!2&"--*::::q!2&"--*::::q!3'3>>!+<<<<q!2&"--*::::q!2&"--*::::q!2a5)R]]1-====q!2==#34a8HHHHq!2&",,,
34R=BR=BS>RR=BR=BRUr!!!R]]1%&",,,R=Br<   c                  D   [        [        R                  " [        5      [        5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        5      [        R                  " [        5      :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        [
        5      [        5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        5      [        R                  " [        [
        5      :X  d   e[        [        [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        5      [        R                  " [        5      :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        [
        5      [        5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        5      [        R                  " [        [
        5      :X  d   e[        [        [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        5      [        R                  " [        [
        5      5      [        R                  " [        [
        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   e[        [        R                  " [        [
        5      [        R                  " [        [        5      5      [        R                  " [        [
        [        5      :X  d   eg r6   )r8   r   	poly_ringr   r   r   rW   r    r<   r;   test_Domain_unify_compositero      s   a"%a888a"%a888a"%a888a"%a888R\\!_%a888R\\!_%a888R\\!_%a888R\\!_%a888a#R(BLLA,>>>>a#R(BLLA,>>>>a#R(BLLA,>>>>a#R(BLLA,>>>>R\\!Q'(BLLA,>>>>R\\!Q'(BLLA,>>>>R\\!Q'(BLLA,>>>>R\\!Q'(BLLA,>>>>q!2&"--*::::q!2&"--*::::q!2&"--*::::q!2&"--*::::R]]1%&"--*::::R]]1%&"--*::::R]]1%&"--*::::R]]1%&"--*::::q!$b)R]]1a-@@@@q!$b)R]]1a-@@@@q!$b)R]]1a-@@@@q!$b)R]]1a-@@@@R]]1a()R]]1a-@@@@R]]1a()R]]1a-@@@@R]]1a()R]]1a-@@@@R]]1a()R]]1a-@@@@a",,q/2bll1oEEEa",,q/2bll1oEEEa",,q/2bll1oEEEa",,q/2bll1oEEEa#R\\!_5a9KKKKa#R\\!_5a9KKKKa#R\\!_5a9KKKKa#R\\!_5a9KKKKa",,q!"45a9KKKKa",,q!"45a9KKKKa",,q!"45a9KKKKa",,q!"45a9KKKKa#R\\!Q%78BLLAq<QQQQa#R\\!Q%78BLLAq<QQQQa#R\\!Q%78BLLAq<QQQQa#R\\!Q%78BLLAq<QQQQq!2==#34a8HHHHq!2==#34a8HHHHq!2==#34a8HHHHq!2==#34a8HHHHq!$bmmA&672==A;NNNNq!$bmmA&672==A;NNNNq!$bmmA&672==A;NNNNq!$bmmA&672==A;NNNNq!2==A#672==A;NNNNq!2==A#672==A;NNNNq!2==A#672==A;NNNNq!2==A#672==A;NNNNq!$bmmAq&9:bmmAqRS>TTTTq!$bmmAq&9:bmmAqRS>TTTTq!$bmmAq&9:bmmAqRS>TTTTq!$bmmAq&9:bmmAqRS>TTTTa"--"23r}}Q7GGGGa"--"23r}}Q7GGGGa"--"23r}}Q7GGGGa"--"23r}}Q7GGGGa#R]]1%56"--1:MMMMa#R]]1%56"--1:MMMMa#R]]1%56"--1:MMMMa#R]]1%56"--1:MMMMa"--1"56"--1:MMMMa"--1"56"--1:MMMMa"--1"56"--1:MMMMa"--1"56"--1:MMMMa#R]]1a%89R]]1aQR=SSSSa#R]]1a%89R]]1aQR=SSSSa#R]]1a%89R]]1aQR=SSSSa#R]]1a%89R]]1aQR=SSSSq!2<<?3r}}Q7GGGGq!2<<?3r}}Q7GGGGq!2<<?3r}}Q7GGGGq!2<<?3r}}Q7GGGGq!$bll1o6"--1:MMMMq!$bll1o6"--1:MMMMq!$bll1o6"--1:MMMMq!$bll1o6"--1:MMMMq!2<<1#56"--1:MMMMq!2<<1#56"--1:MMMMq!2<<1#56"--1:MMMMq!2<<1#56"--1:MMMMq!$bll1a&89R]]1aQR=SSSSq!$bll1a&89R]]1aQR=SSSSq!$bll1a&89R]]1aQR=SSSSq!$bll1a&89R]]1aQR=SSSSr<   c                     [         R                  " [        S5      5      n [         R                  " [        S5      5      n[         R                  " [        S5      [        S5      5      nU R                  U5      U:X  d   eU R                  U [        [
        4   5      U [        [
        4   :X  d   eU [        [
        4   R                  U 5      U [        [
        4   :X  d   eU R                  U R                  [        [
        5      5      U R                  [        [
        5      :X  d   eU R                  [        [
        5      R                  U 5      U R                  [        [
        5      :X  d   eU R                  U[        [
        4   5      U[        [
        4   :X  d   eU [        [
        4   R                  U5      U[        [
        4   :X  d   eU R                  UR                  [        [
        5      5      UR                  [        [
        5      :X  d   eU R                  [        [
        5      R                  U5      UR                  [        [
        5      :X  d   eg )Nr>      )r   rj   r   r8   r   r   rW   )sqrt5sqrt7sqrt57s      r;   test_Domain_unify_algebraicru     s   tAw'EtAw'EQa1F;;u''';;uQT{#uQT{222A;U#uQT{222;;u''1-.%2B2B1a2HHHHAq!''.%2B2B1a2HHHH;;uQT{#vad|333A;U#vad|333;;u''1-.&2C2CAq2IIIIAq!''.&2C2CAq2IIIIr<   c            	      x
   [        [        [        S-  S-
  [        [        S95      n [        [        [        S-  S-
  [        [        S95      n[        [        [        S-  S-
  [        [        [
           S95      n[        [        [        S-  S-
  [        [        [
           S95      nU R                  U 5      U :X  d   eUR                  U5      U:X  d   eUR                  U5      U:X  d   eUR                  U5      U:X  d   eU R                  [        5      U :X  d   eU R                  [        5      U:X  d   eUR                  [        5      U:X  d   eUR                  [        5      U:X  d   eU R                  [        [
           5      U:X  d   eU R                  [        [
           5      U:X  d   eUR                  [        [
           5      U:X  d   eUR                  [        [
           5      U:X  d   eUR                  [        5      U:X  d   eUR                  [        5      U:X  d   eUR                  [        5      U:X  d   eUR                  [        5      U:X  d   eUR                  [        [
           5      U:X  d   eUR                  [        [
           5      U:X  d   eUR                  [        [
           5      U:X  d   eUR                  [        [
           5      U:X  d   e[        [        [        S-  S-
  [        [        [
           S95      nUR                  [        5      U:X  d   eUR                  [        [           5      U:X  d   eUR                  [        [
           5      U:X  d   eUR                  [        [        [
        4   5      U:X  d   e[        [        [        S-  S-
  [        [        [
        [        4   S95      nUR                  [        [           5      U:X  d   eUR                  [        [        [        4   5      U:X  d   eUR                  [        [
        [        4   5      U:X  d   eUR                  [        [        [
        [        4   5      U:X  d   e[        [        [        S-  S-
  [        [        S95      n[        [        [
        S-  S-
  [
        [        S95      n[        [        [
        S-  S-
  [
        US95      nUR                  U5      U:X  d   eUR                  U5      U:X  d   eUR                  U5      U:X  d   eUR                  U5      U:X  d   eg )Nr3   domain)r*   r   r   r   r   r   r8   r   )	KxZZKxQQKxZZyKxQQyKKzKxKyKxys	            r;   !test_Domain_unify_FiniteExtensionr   2  s'   41q!B78D41q!B78DDA1RU;<EDA1RU;<E::dt###::dt###;;u&&&;;u&&&::b>T!!!::b>T!!!::b>T!!!::b>T!!!::be%%%::be%%%::be%%%::be%%%;;r?e###;;r?e###;;r?e###;;r?e###;;r!u&&&;;r!u&&&;;r!u&&&;;r!u&&&QTAXqA78A772;!772a5>Q772a5>Q772ad8!!!	adQh"QT(;	<B772a5>R772ad8"""772ad8"""772aAg;2%%%	adQh"5	6B	adQh"5	6B
$q!tax26
7C88B<288B<288B<388B<3r<   c                  H    [        [        S 5        [        [        S 5        g )Nc                  d    [         [        [        4   R                  [         [        [        45      $ r6   )r   r   r   unify_with_symbolsr   rn   r<   r;   rC   0test_Domain_unify_with_symbols.<locals>.<lambda>f  s    bAh&A&A"q!f&Mr<   c                  f    [         R                  " [         [        [        4   [        [        45      $ r6   )r   r   r   r   r   rn   r<   r;   rC   r   g  s    b&;&;Bq!tHq!f&Mr<   )r0   r+   rn   r<   r;   test_Domain_unify_with_symbolsr   e  s    
MN
MNr<   c                     S[         ;   SL d   eS[        ;   SL d   eS[        ;   SL d   eS[        ;   SL d   eS[        ;   SL d   eS[
        ;   SL d   eS[        [        [        4   ;   SL d   eS[        [        [        4   ;   SL d   eS[        [        [        4   ;   SL d   eS[         ;   SL d   eS[        ;   SL d   eS[        ;   SL d   eS[        ;   SL d   eS[        ;   SL d   eS[
        ;   SL d   eS[        [        [        4   ;   SL d   eS[        [        [        4   ;   SL d   eS[        [        [        4   ;   SL d   eS[         ;   SL d   eS[        ;   SL d   eS[        ;   SL d   eS[        ;   SL d   eS[        ;   SL d   eS[
        ;   SL d   eS[        [        [        4   ;   SL d   eS[        [        [        4   ;   SL d   eS[        [        [        4   ;   SL d   e[        SS5      [         ;   SL d   e[        SS5      [        ;   SL d   e[        SS5      [        ;   SL d   e[        SS5      [        ;   SL d   e[        SS5      [        ;   SL d   e[        SS5      [
        ;   SL d   e[        SS5      [        [        [        4   ;   SL d   e[        SS5      [        [        [        4   ;   SL d   e[        SS5      [        [        [        4   ;   SL d   e[        SS	5      [         ;   SL d   e[        SS	5      [        ;   SL d   e[        SS	5      [        ;   SL d   e[        SS	5      [        ;   SL d   e[        SS	5      [        ;   SL d   e[        SS	5      [
        ;   SL d   e[        SS	5      [        [        [        4   ;   SL d   e[        SS	5      [        [        [        4   ;   SL d   e[        SS	5      [        [        [        4   ;   SL d   eS
[         ;   SL d   eS
[        ;   SL d   eS
[        ;   SL d   eS
[        ;   SL d   eS
[        ;   SL d   eS
[
        ;   SL d   eS
[        [        [        4   ;   SL d   eS
[        [        [        4   ;   SL d   eS
[        [        [        4   ;   SL d   eS[         ;   SL d   eS[        ;   SL d   eS[        ;   SL d   eS[        ;   SL d   eS[        ;   SL d   eS[
        ;   SL d   eS[        [        [        4   ;   SL d   eS[        [        [        4   ;   SL d   eS[        [        [        4   ;   SL d   e[        [
        ;   SL d   e[        [        [        [        4   ;   SL d   e[        [        [        [        4   ;   SL d   e[        * [        ;   SL d   e[        * [        ;   SL d   e[        * [
        ;   SL d   e[        * [        [        [        4   ;   SL d   e[        * [        [        [        4   ;   SL d   e[        S5      [         ;   SL d   e[        S5      [        ;   SL d   e[        S5      [        ;   SL d   e[        S5      [        ;   SL d   e[        S5      [        ;   SL d   e[        S5      [
        ;   SL d   e[        S5      [        [        [        4   ;   SL d   e[        S5      [        [        [        4   ;   SL d   e[        S5      [        [        [        4   ;   SL d   eS[        S5      -  S-   [         ;   SL d   eS[        S5      -  S-   [        ;   SL d   eS[        S5      -  S-   [        ;   SL d   eS[        S5      -  S-   [        ;   SL d   eS[        S5      -  S-   [        ;   SL d   eS[        S5      -  S-   [
        ;   SL d   eS[        S5      -  S-   [        [        [        4   ;   SL d   eS[        S5      -  S-   [        [        [        4   ;   SL d   eS[        S5      -  S-   [        [        [        4   ;   SL d   e[        S5      [         ;   SL d   e[        S5      [        ;   SL d   e[        S5      [        ;   SL d   e[        S5      [        ;   SL d   e[        S5      [        ;   SL d   e[        S5      [
        ;   SL d   e[        S5      [        [        [        4   ;   SL d   e[        S5      [        [        [        4   ;   SL d   e[        S5      [        [        [        4   ;   SL d   e[        S-  S-   [         ;   SL d   e[        S-  S-   [        ;   SL d   e[        S-  S-   [        ;   SL d   e[        S-  S-   [        ;   SL d   e[        S-  S-   [        ;   SL d   e[        S-  S-   [
        ;   SL d   e[        S-  S-   [        [           ;   SL d   e[        S-  S-   [        [           ;   SL d   e[        S-  S-   [        [           ;   SL d   e[        S-  S-   [        [        [        4   ;   SL d   e[        S-  S-   [        [        [        4   ;   SL d   e[        S-  S-   [        [        [        4   ;   SL d   e[        S-  [        S-  -   [         ;   SL d   e[        S-  [        S-  -   [        ;   SL d   e[        S-  [        S-  -   [        ;   SL d   e[        S-  [        S-  -   [        ;   SL d   e[        S-  [        S-  -   [        ;   SL d   e[        S-  [        S-  -   [
        ;   SL d   e[        S-  [        S-  -   [        [           ;   SL d   e[        S-  [        S-  -   [        [           ;   SL d   e[        S-  [        S-  -   [        [           ;   SL d   e[        S-  [        S-  -   [        [        [        4   ;   SL d   e[        S-  [        S-  -   [        [        [        4   ;   SL d   e[        S-  [        S-  -   [        [        [        4   ;   SL d   e[        SS5      [        -  [        S-   -  [        -
  [        [        [        [        4   ;   SL d   eg )Nr   T   rq   Fr4   r>   g      @Q	@r3      )r   r   r   r   r   rN   r   r   r	   r
   r   r   r   rn   r<   r;   test_Domain__contains__r   i  st   GGGGGHAqDMd"""AqDMd"""AqDMd""""H"H"H"H"H#I$"QT(Nt###"QT(Nt###"QT(Nt###"H"H"H"H"H#I$"QT(Nt###"QT(Nt###"QT(Nt###ROr!d***ROr!e+++ROr!d***ROr!d***ROr!d***ROs"t+++ROr!Q$x'E111ROr!Q$x'D000ROr!Q$x'D000QNb T)))QNb U***QNb T)))QNb T)))QNb T)))QNc!d***QNbAh&5000QNbAh&4///QNbAh&4///2I$2I$2I$2I$2I$3J42ad8O$$$2ad8O$$$2ad8O$$$BJ4BJ5   BJ4BJ4BJ4CKD   Bq!tH&&&Bq!tH%%%Bq!tH%%%#I%"QT(Nu$$$"QT(Nu$$$C2I%C2I%C3J5   C2ad8O%%%C2ad8O%%%GrMd"""GrMe###GrMe###GrMd"""GrMd"""GsNu$$$Gr!Q$xE)))Gr!Q$xE)))Gr!Q$xD(((d1gIMRD(((d1gIMRE)))d1gIMRE)))d1gIMRD(((d1gIMRD(((d1gIMS T)))d1gIMR1X%%///d1gIMR1X%%///d1gIMR1X%$...FbLT!!!FbLU"""FbLU"""FbLT!!!FbLT!!!FcMe###FbAh5(((FbAh5(((FbAh4'''qD1HNt###qD1HNu$$$qD1HNu$$$qD1HNu$$$qD1HNu$$$qD1HO%%%qD1H1$&&&qD1H1$&&&qD1H1$&&&qD1H1a4 T)))qD1H1a4 T)))qD1H1a4 T)))qD1a4K2$&&&qD1a4K2%'''qD1a4K2%'''qD1a4K2%'''qD1a4K2%'''qD1a4K35(((qD1a4K2a5 U***qD1a4K2a5 U***qD1a4K2a5 U***qD1a4K2ad8#,,,qD1a4K2ad8#,,,qD1a4K2ad8#,,,QN1a!e$q(Bq!QwK7EAAAr<   c                     [        SS5      [        -  [        R                  " S[        -  5      ;   SL d   eS[        -  [        R                  " [        5      ;   SL d   e[        S-  [        S-  -   [        R                  " S[        -  S[        -  5      ;   SL d   e[        [        -   [        R                  " S[        -  [        5      ;   SL d   e[        [        -
  [        R                  " [        S[        -  5      ;   SL d   eg )Nr3   r4   r   T)r	   r   r   rW   r   rn   r<   r;   test_issue_14433r     s    QN1ac 22t;;;aC2==##,,,TAqD[R]]1Q3!44===Ur}}QqS!,,555Ur}}Q!,,555r<   c                     [         R                  SL d   e[        R                  SL d   e[         [           R                  SL d   e[        [           R                  SL d   e[         [        [        4   R                  SL d   e[        [        [        4   R                  SL d   e[         R
                  " [        5      R                  SL d   e[        R
                  " [        5      R                  SL d   e[         R
                  " [        [        5      R                  SL d   e[        R
                  " [        [        5      R                  SL d   e[        R                  SL d   e[        R                  SL d   e[        R                  SL d   e[         R                  " 5       [         :X  d   e[        R                  " 5       [         :X  d   e[         [           R                  5       [         [           :X  d   e[        [           R                  5       [        [           :X  d   e[         [        [        4   R                  5       [         [        [        4   :X  d   e[        [        [        4   R                  5       [        [        [        4   :X  d   e[         R
                  " [        5      R                  5       [         [           :X  d   e[        R
                  " [        5      R                  5       [        [           :X  d   e[         R
                  " [        [        5      R                  5       [         [        [        4   :X  d   e[        R
                  " [        [        5      R                  5       [        [        [        4   :X  d   e[        R                  " 5       [        :X  d   e[        R                  " 5       [        :X  d   e[        [        S 5        g )NTFc                  *    [         R                  5       $ r6   )rN   get_ringrn   r<   r;   rC   &test_Domain_get_ring.<locals>.<lambda>  s
    r<   )r   has_assoc_Ringr   r   r   rW   r   r   rN   r   r0   r/   rn   r<   r;   test_Domain_get_ringr     s   $$$$$$a54'''a54'''ad8""d***ad8""d***==**d222==**d222==A--555==A--555%%%%%%&&&;;=B;;=Ba5>>r!u$$$a5>>r!u$$$ad8"QT(***ad8"QT(***==$$&"Q%///==$$&"Q%///==A'')R1X555==A'')R1X555;;=B;;=B
;./r<   c                     [         R                  SL d   e[        R                  SL d   e[        R                  SL d   e[        R                  SL d   e[
        R                  SL d   e[        [           R                  SL d   e[        [           R                  SL d   e[        [        [        4   R                  SL d   e[        [        [        4   R                  SL d   e[         R                  " 5       [         :X  d   e[        R                  " 5       [        :X  d   e[        R                  " 5       [        :X  d   e[        R                  " 5       [        :X  d   e[
        R                  5       [
        :X  d   e[        [           R                  5       [        R                  " [        5      :X  d   e[        [           R                  5       [        R                  " [        5      :X  d   e[        [        [        4   R                  5       [        R                  " [        [        5      :X  d   e[        [        [        4   R                  5       [        R                  " [        [        5      :X  d   eg )NT)
r   has_assoc_Fieldr   r   r   rN   r   r   	get_fieldrW   rn   r<   r;   test_Domain_get_fieldr     s   %%%%%%%%%%%%$&&&a5  D(((a5  D(((ad8##t+++ad8##t+++<<>R<<>R<<>R<<>R==?c!!!a5??a 0000a5??a 0000ad82==A#6666ad82==A#6666r<   c                     [        S5      [        [        [        [        [
        [        [        [           [        [           [        [           [
        [           [        [           /n U  GH  nU  GH  nU[           R                  U5      U[           :X  d   eU[        [        4   R                  U5      U[        [        4   :X  d   eUR                  [        5      R                  U5      UR                  [        5      :X  d   eUR                  [        [        5      R                  U5      UR                  [        [        5      :X  d   eUR                  [        5      R                  U5      UR                  [        5      :X  d   eUR                  [        [        5      R                  U5      UR                  [        [        5      :X  d   eUR                  [        5      R                  U5      UR                  [        5      :X  d   eUR                  [        [        5      R                  U5      UR                  [        [        5      :X  a  GM   e   GM     g )Nr>   )r   r   r   rN   r   r   r   r   r   
set_domainr   rW   old_poly_ringold_frac_field)domsD1D2s      r;   test_Domain_set_domainr   5  s   qE2r3BBqE2a5"Q%A1NDBa5##B'2a5000ad8&&r*bAh666==#..r2bmmA6FFFF==A&11"5q!9LLLL##A&11"59I9I!9LLLL##Aq)44R8B<L<LQPQ<RRRR$$Q'2226":K:KA:NNNN$$Q*55b9R=N=NqRS=TTTT  r<   c                  ^   [        S5      [        [        [        [        /n [
        [        /nX-    Hy  nX"[           UR                  [        5      UR                  [        5      UR                  [        5      4 H,  nX ;   a  UR                  SL d   eM  UR                  SL a  M,   e   M{     g )Nr>   TF)r   r   r   rN   r   r   r   r   rW   r   r   is_Exact)exactinexactDRs       r;   test_Domain_is_Exactr   C  s    UBC$E2hG_aD!,,q/1??1+=q?O?OPQ?RRAzzzT)))zzU***	 S r<   c                     [         R                  " 5       [         :X  d   e[        R                  " 5       [        :X  d   e[        R                  " 5       [        :X  d   e[        R                  " 5       [        :X  d   e[
        R                  " 5       [        :X  d   e[        R                  5       [        :X  d   e[        [           R                  5       [        [           :X  d   e[        [           R                  5       [        [           :X  d   e[        [           R                  5       [        [           :X  d   e[
        [           R                  5       [        [           :X  d   e[        [        [        4   R                  5       [        [        [        4   :X  d   e[        [        [        4   R                  5       [        [        [        4   :X  d   e[        [        [        4   R                  5       [        [        [        4   :X  d   e[
        [        [        4   R                  5       [        [        [        4   :X  d   e[        R                  " [        5      R                  5       [        R                  " [        5      :X  d   e[        R                  " [        5      R                  5       [        R                  " [        5      :X  d   e[        R                  " [        5      R                  5       [        R                  " [        5      :X  d   e[
        R                  " [        5      R                  5       [        R                  " [        5      :X  d   e[        R                  " [        [        5      R                  5       [        R                  " [        [        5      :X  d   e[        R                  " [        [        5      R                  5       [        R                  " [        [        5      :X  d   e[        R                  " [        [        5      R                  5       [        R                  " [        [        5      :X  d   e[
        R                  " [        [        5      R                  5       [        R                  " [        [        5      :X  d   e[        R                  " [        5      R                  5       [        R                  " [        5      :X  d   e[        R                  " [        5      R                  5       [        R                  " [        5      :X  d   e[        R                  " [        5      R                  5       [        R                  " [        5      :X  d   e[
        R                  " [        5      R                  5       [        R                  " [        5      :X  d   e[        R                  " [        [        5      R                  5       [        R                  " [        [        5      :X  d   e[        R                  " [        [        5      R                  5       [        R                  " [        [        5      :X  d   e[        R                  " [        [        5      R                  5       [        R                  " [        [        5      :X  d   e[
        R                  " [        [        5      R                  5       [        R                  " [        [        5      :X  d   e[        R                  " [        5      R                  5       [        R                  " [        5      :X  d   e[        R                  " [        5      R                  5       [        R                  " [        5      :X  d   e[        R                  " [        5      R                  5       [        R                  " [        5      :X  d   e[
        R                  " [        5      R                  5       [        R                  " [        5      :X  d   e[        R                  " [        [        5      R                  5       [        R                  " [        [        5      :X  d   e[        R                  " [        [        5      R                  5       [        R                  " [        [        5      :X  d   e[        R                  " [        [        5      R                  5       [        R                  " [        [        5      :X  d   e[
        R                  " [        [        5      R                  5       [        R                  " [        [        5      :X  d   eg r6   )r   	get_exactr   r   r   r   r#   rN   r   r   rW   r   r   rn   r<   r;   test_Domain_get_exactr   N  s   <<>R<<>R<<>R<<>R<<>T!!!==?c!!!a5??1%%%a5??1%%%a5??1%%%a5??Q'''ad82ad8+++ad82ad8+++ad82ad8+++ad841:---==%%'2==+;;;;==%%'2==+;;;;==%%'2==+;;;;==%%'4??1+======A((*bmmAq.AAAA==A((*bmmAq.AAAA==A((*bmmAq.AAAA==A((*dooa.CCCCA((*b.>.>q.AAAAA((*b.>.>q.AAAAA((*b.>.>q.AAAAA((*d.@.@.CCCCAq!++-1A1A!Q1GGGGAq!++-1A1A!Q1GGGGAq!++-1A1A!Q1GGGGAq!++-1C1CAq1IIIIQ))+r/@/@/CCCCQ))+r/@/@/CCCCQ))+r/@/@/CCCCQ))+t/B/B1/EEEEQ",,."2C2CAq2IIIIQ",,."2C2CAq2IIIIQ",,."2C2CAq2IIIIQ",,.$2E2Ea2KKKKr<   c                  v   [        S5      S4[        S5      S4[        S5      S44 Hy  u  pX [           U R                  [        5      U R                  [        5      U R	                  [        5      4 H*  nUR
                  SL d   eUR                  5       U:X  a  M*   e   M{     [        [        [        [        [        4 Hw  nX3[           UR                  [        5      UR                  [        5      UR	                  [        5      4 H*  nUR
                  SL d   eUR                  5       S:X  a  M*   e   My     g )Nr4   r>   rq   FTr   )r   r   rW   r   r   has_CharacteristicZerocharacteristicr   r   r"   r#   rN   )Fcr   r   s       r;   test_Domain_characteristicr   w  s   Q%beQZ"Q%4aD!,,q/1??1+=q?O?OPQ?RRA++u444##%*** S 5 T4$aD!,,q/1??1+=q?O?OPQ?RRA++t333##%*** S %r<   c                  Z   / SQn / SQn/ SQn[         [           [        [           [        R                  " [        5      pTnU  Vs/ s H"  n[         R                  " [        U5      5      PM$     snU:X  d   eU  Vs/ s H"  n[        R                  " [        U5      5      PM$     snU:X  d   eU  Vs/ s H  ocR	                  U" U5      5      PM     snU:X  d   eU  Vs/ s H  odR	                  U" U5      5      PM     snU:X  d   eU  Vs/ s H  oeR	                  U" U5      5      PM     snU:X  d   eUR	                  U" [        5      5      SL d   eUR	                  U" [        5      5      SL d   eUR	                  U" [        5      5      SL d   eg s  snf s  snf s  snf s  snf s  snf )N)r   r   r   r3   )FTFTF)TTFTTFT)r   r   r   rW   is_unit)numsinvringinvfieldZZxQQxQQxfns          r;   test_Domain_is_unitr     s[   D/G.HUBqE2==#3dC'+,t!BJJr!ut,777'+,t!BJJr!ut,888)-.AKKA.'999)-.AKKA.(:::+/04aLLa!40H<<<;;s1v%''';;s1v%'''<<Q D((( -,..0s   )F:)F0 F F#
 F(c            	        ^ S mU4S jn S n[         R                  " [        S5      5      n[         R                  " [        S5      5      n[        [         X#[        [
        [        [        /n[        U5       H6  u  pVXES   H)  nU" U5       H  nU" U5       H  n	U " X5        M     M     M+     M8     [         R                  " S5      [        SS5      :X  d   e[        S	[        5      u  p[        R                  " X-
  5      S
:X  d   e[        R                  " X-
  U
R                  5       5      S
:X  d   e[        R                  " [        SS5      5      [        SS5      :X  d   e[        R                  " [	        SS5      5      [        SS5      :X  d   e[         R                  " [        S5      [        5      [        SS5      :X  d   e[        R                  " [        SS5      [         5      [        S5      :X  d   e[        R                  " [        SS5      [        5      [	        [        SS5      [        SS5      5      :X  d   e[        R                  " [	        [        SS5      [        SS5      5      [        5      [        SS5      :X  d   e[         R                  " [        5      n[        R                  " [        5      n[         [           n[        [           n	XgX/n[        X5       HC  u  pUR                  UR!                  [        5      U5      UR!                  [        5      :X  a  MC   e   UR                  [        SS5      [         5      U" [        SS5      5      :X  d   eg )Nc           
          [        U 5      [        U5      L d   U < SU< SU< SU< SU< 3	5       eX:X  d   U < SU< SU< SU< SU< 3	5       eg )Nz, z:  z -> )type)e1e2r:   K2K3s        r;   check_element*test_Domain_convert.<locals>.check_element  sB    Bx48#Qb"b"b%QQ#xE"b"b"EExr<   c                   > U R                  U5      nT" UR                  U R                  U 5      UR                  XU5        T" UR                  UR                  U5      UR                  XU5        T" UR                  U R                  U 5      UR                  XU5        T" UR                  UR                  U5      UR                  XU5        g r6   )r8   convert_fromonezero)r:   r   r   r   s      r;   check_domains*test_Domain_convert.<locals>.check_domains  s    XXb\boobffb1BFFRRHboobffb1BFFRRHboobggr2BGGRRHboobggr2BGGRRHr<   c           
          U U [            U [           U [         [        4   U R                  [         5      U R                  [        5      U R                  [         [        5      /nU$ r6   )r   r   rW   )r}   domainss     r;   composite_domains.test_Domain_convert.<locals>.composite_domains  sL    aD!A$!Q$LLOQ\\!_all1a.@
 r<   r3   r4   gLoW5l   $7q/ l                                r   r   r   g      ?g      ?   )r   rj   r   r   r#   r"   r   r   	enumerateconvertr'   	to_domainr   rW   r   r2   
from_sympy)r   r   QQ2QQ3r   ir:   r   r   K4r   xrKsKaKbr   s                  @r;   test_Domain_convertr     s   FI 

T!W
%C


T!W
%CCdD"b1D4r(B'++B/B!") 0 ,  ! ::f$46y!zzzzbMEA::bg!###::bgq{{}-222::d1aj!R1X---::d1aj!R1X---??2c7B'2a8333??2a8R(BsG333RT]B/41a"Q(3KKKK??41a"Q(3T:bdmKKK	q	B	q	B	AB	AB
"	B"/r}}Q/4a8HHHH " ??2a8R(Br!QxL888r<   c                  .   [         [        S5      4[        [        SS5      4[        [        SS5      4[        [        SS5      4[        [	        S5      4[
        [        SS5      4[        [        S5      4[        [        S5      4[        [        R                  [        S5      5      4/	n U  Hf  u  p[        [        4 HQ  nUR                  UR                  U5      5      nUR                  X!5      U:X  d   eUR                  XC5      U:X  a  MQ   e   Mh     g )Nr4   r   r3   )r   r   r"   r#   r   r   r   r   rN   r   r   to_sympyr   )elementsr   eEEelems        r;   test_EX_convertr     s     
RU	R!W	tAay	tAay	RU	R!W	RU	a	cnnT!W%&
H e)B==A/D??1(D000>>$+q000  r<   c                     [         R                  " [        5      n [         [           nU R                  [        5      U R                  UR                  [        5      U5      :X  d   eUR                  [        5      UR                  U R                  [        5      U 5      :X  d   e[         R                  " [        [        5      n [         [           nU R                  [        5      U R                  UR                  [        5      U5      :X  d   e[
        R                  " [        [        5      n [         [           nU R                  [        5      U R                  UR                  [        5      U5      :X  d   eg r6   )r   r   r   r   r   r   )r:   r   s     r;   !test_GlobalPolynomialRing_convertr     s    			!	B	AB::a=BJJrzz!}b9999::a=BJJrzz!}b9999			!Q	B	AB::a=BJJrzz!}b9999 
		!Q	B	AB::a=BJJrzz!}b9999r<   c                  z    [        S[        5      u  n [        R                  " 5       U R                  5       :X  d   eg N )r'   r   rm   r   )r   s    r;   test_PolynomialRing__initr     s)    	b"BA<<>Q[[]***r<   c                  z    [        S[        5      u  n [        R                  " 5       U R                  5       :X  d   eg r   )r)   r   rW   r   )r   s    r;   test_FractionField__initr     s)    	r2BA==?akkm+++r<   c                  d   [         R                  " [        5      n U R                  [        SS5      [         5      U R	                  [        SS5      5      :X  d   e[         R                  " [        5      n U R                  [        S5      [        5      U R	                  [        S5      5      :X  d   eg )Nr3   r4   )r   rW   r   r   r   r	   r   r   )r}   s    r;   test_FractionField_convertr     sv    
aA99R1Xr"all8Aq>&BBBB
aA99RUB1<<
#;;;;r<   c                     [         R                  " [        [        [        5      [         [        [        [        4   :X  d   e[         [           R                  [        [        5      [         [        [        [        4   :X  d   e[         R
                  " [        5      R                  [        [        5      [         R
                  " [        [        [        5      :X  d   e[        [        S 5        g )Nc                  B    [         [           R                  [        5      $ r6   )r   r   injectrn   r<   r;   rC   test_inject.<locals>.<lambda>  s    BqELLOr<   )r   r   r   r   r   rW   r0   r,   rn   r<   r;   test_injectr     s    99Q1Aq!G,,,a5<<1Aq!G,,,==""1a(BMM!Q,BBBB
?34r<   c                  0  ^ [         R                  " [        5      [         :X  d   e[         [           R                  [        5      [         :X  d   e[         [        [        4   R                  [        5      [         [           :X  d   e[         R                  " [        5      R                  [        5      [         :X  d   e[         R                  " [        [        5      R                  [        5      [         R                  " [        5      :X  d   e[         [           [           R                  [        5      [         [           :X  d   e[         [           [           R                  [        5      [         [           :X  d   e[         R                  " [        5      [           R                  [        5      [         [           :X  d   e[         R                  " [        5      [           R                  [        5      [         R                  " [        5      :X  d   e[        [        [        S-  S-
  [        [         [           S95      m[        [        [        S-  S-
  [        [         S95      n TR                  [        5      U :X  d   e[        [        U4S j5        g )Nr3   r   rw   c                  .   > T R                  [        5      $ r6   )dropr   )r   s   r;   rC   test_drop.<locals>.<lambda>  s    BGGAJr<   )	r   r   r   r   rW   r*   r   r0   r,   )r}   r   s    @r;   	test_dropr   	  s   771:a5::a=Bad8==r!u$$$==  #r)))==A##A&"--*::::a58==r!u$$$a58==r!u$$$==A##A&"Q%///==A##A&"--*::::	ad1fa16	7BQT!VQr23A771:??
?./r<   c                      [         R                  " / SQ5      n [        S U  5       5      (       d   e[         R                  " / SQ/5      n [        S U S    5       5      (       a  [        U 5      S:X  d   eg )N)r   r3   r4   r   c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr6   r   of_type.0elts     r;   	<genexpr>"test_Domain_map.<locals>.<genexpr>  s     .#3rzz##   #%c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr6   r   r   s     r;   r  r     s     1&3rzz#&r  r   r   )r   mapalllen)seqs    r;   test_Domain_mapr    s^    
&&
C.#.....
&&,
 C1#a&111c#h!mCCmr<   c                     [         [        [        4   [         [        [        4   :H  SL d   e[        [        [        4   [        [        [        4   :H  SL d   e[         [        [        4   [        [        [        4   :H  SL d   e[        [        [        4   [         [        [        4   :H  SL d   e[         R                  " [        [        5      [         R                  " [        [        5      :H  SL d   e[        R                  " [        [        5      [        R                  " [        [        5      :H  SL d   e[         R                  " [        [        5      [        R                  " [        [        5      :H  SL d   e[        R                  " [        [        5      [         R                  " [        [        5      :H  SL d   e[        5       [           [        [           :X  d   eg )NTF)r   r   r   r   rW   r%   r   rn   r<   r;   test_Domain___eq__r  #  sJ   q!tH1a4 T)))q!tH1a4 T)))q!tH1a4 U***q!tH1a4 U***MM!Q2==A#664???MM!Q2==A#664???MM!Q2==A#665@@@MM!Q2==A#665@@@;q>RU"""r<   c                  l   [         R                  " [        S5      5      n U R                  R                  [        [        S-  S-
  5      :X  d   eU R                  [        :X  d   e[        R                  " [        S5      5      n U R                  R                  [        [        S-  S-
  5      :X  d   eU R                  [        :X  d   eU R                  [        S5      5      n U R                  R                  [        [        S-  S[        S-  -  -
  S-   5      :X  d   eU R                  [        :X  d   eg Nr3   r4   r   
   r   )	r   rj   r   extminpolyr   r   domr   )algs    r;   test_Domain__algebraic_fieldr  3  s    


T!W
%C77??d1a4!8n,,,77b==


T!W
%C77??d1a4!8n,,,77b==


d1g
&C77??d1a4"QT'>A#5666677b==r<   c                  B   [        [        S-  S-
  5      n [        [        S-  S-
  5      n[        [        S-  S[        S-  -  -
  S-   5      n[        R                  " U 5      nUR                  R
                  U :X  d   eUR                  [        :X  d   e[        R                  " U 5      nUR                  R
                  U :X  d   eUR                  [        :X  d   eUR                  U5      nUR                  R
                  U:X  d   eUR                  [        :X  d   eg r  )r   r   r   alg_field_from_polyr  r  r  r   )fghr  s       r;   test_Domain_alg_field_from_polyr  A  s    QTAXAQTAXAQTBq!tG^a A

 
 
#C77??a77b==

 
 
#C77??a77b==

!
!!
$C77??a77b==r<   c                      [         R                  " S5      n U R                  R                  [	        [        S5      5      :X  d   eU R                  [        :X  d   e[        R                  " S5      nUR                  R                  [	        [        S5      5      :X  d   eUR                  [        :X  d   eUR                  S5      n[        UR                  U R                  5      c   eUR                  [        :X  d   eg )N   r4   r   )	r   cyclotomic_fieldr  r  r   r(   r  r   r&   )r}   r   r   s      r;   test_Domain_cyclotomic_fieldr  S  s    
BA55==D!4555555B;;
AA55==D!3444455B;;	1AQUUAEE*66655B;;r<   c                     [        S[        5      u  pn[        S[        5      u  p4nUS-  US-  -   US-   -  nUS-  US-  -   S-  nUS-  US-  -   nUR                  5       R	                  X`R                  5       5      b   eUR                  5       R	                  XpR                  5       5      US-  S-  US-  S-  -   :X  d   eUR                  5       R	                  XR                  5       5      US-  US-  -   :X  d   e[        S[
        5      u  pn[        S[
        5      u  p4nUS-  US-  -   US-   -  nUS-  US-  -   S-  nUS-  US-  -   nUR                  5       R	                  X`R                  5       5      b   eUR                  5       R	                  XpR                  5       5      US-  S-  US-  S-  -   :X  d   eUR                  5       R	                  XR                  5       5      US-  US-  -   :X  d   eg )Nx,yr3   r   r   )r)   r   r'   r   from_FractionFieldr   )	r   r   r   r   XYr  r  r  s	            r;   &test_PolynomialRing_from_FractionFieldr%  a  s   5"FA%_FA	
A1q1uA	
A1aA	
A1A;;=++A{{}=EEE;;=++A{{}=Aa!Q$q&PPP;;=++A{{}=A1LLL5"FA%_FA	
A1q1uA	
A1aA	
A1A;;=++A{{}=EEE;;=++A{{}=Aa!Q$q&PPP;;=++A{{}=A1LLLr<   c                     [        S[        5      u  pn[        S[        5      u  p4nSUS-  -  SUS-  -  -   nUS-  S-  US-  S-  -   nUR	                  5       R                  X`R	                  5       5      SUS-  -  SUS-  -  -   :X  d   eUR	                  5       R                  XpR	                  5       5      SUS-  -  SUS-  -  -   S-  :X  d   eg )Nr!  r4   r3   r>      )r'   r   r)   r   r   from_PolynomialRing)r   r   r   r   r#  r$  r  r  s           r;   &test_FractionField_from_PolynomialRingr)  y  s    %_FA5"FA	!Q$1a4A	1QAaA;;=,,Q>!AqD&1QPQT6/QQQ;;=,,Q>1QT6AaQRdF?TVBVVVVr<   c                      [        S5      R                  [        S5      " S5      5      SL d   e[        S5      R                  [        S5      " S5      5      SL d   eg )Nr4   r   Tr>   )r   r   rn   r<   r;   test_FF_of_typer+    sJ     a5==Aq"d***a5==Aq"d***r<   c                      [         [           [        [           :X  a   e[         R                  " [        5      [        R                  " [        5      :X  a   eg r6   )r   r   r   rW   rn   r<   r;   test___eq__r-    s:    !u1~}}Q2==#33333r<   c                     [         R                  " [        R                  5      [         R                  " S5      :X  d   e[         R                  " [        S5      5      [         R                  " S5      :X  d   e[         R                  " [        R
                  5      [         R                  " S5      :X  d   e[         R                  " [        S5      5      [         R                  " S5      :X  d   e[         R                  " [        S5      5      [         R                  " [        S5      R                  5       5      :X  d   eg )Nr   g        r   g      ?)r   r   r   ZerodtypeOner   evalfrn   r<   r;   test_RealField_from_sympyr3    s    ::aff!,,,::af#...::aee+++::af#...::c!f#a&,,.!9999r<   c                  R  ^ ^ [        [        5      [        /-   [        S S  V s/ s H  n [        U 5      PM     sn -   n[        [
        [        [        [        4 HF  mU H=  m T [        :X  a  T[        :X  a  M  T T;  d	   T T45       e[        [        UU 4S j5        M?     MH     g s  sn f )Nr4   c                  &   > T R                  T5      $ r6   )r   )r  r   s   r;   rC   (test_not_in_any_domain.<locals>.<lambda>  s    3;;q>r<   )listr   r   floatr   r   r   r   r   r0   r-   )r   checkr  s   ` @r;   test_not_in_any_domainr:    s    NaS "2A,$(&Qa,$( (EBB#AAv#)C<)!S)<>#9:	  $$(s   B$c                    ^^^ [        S5      n U " S5      nU R                  U5      (       a  US:X  d   eU " S5      nU R                  U5      (       a  US:X  d   eU " S5      nU R                  U5      (       a  US:X  d   eU " S5      nU R                  U5      (       a  US:X  d   eU " S5      nU R                  U5      (       a  US:X  d   eU " U " S5      5      nU R                  U5      (       a  US:X  d   eU " U " S5      5      nU R                  U5      (       a  US:X  d   eU " U " S5      5      nU R                  U5      (       a  US:X  d   eU " U " S5      5      nU R                  U5      (       a  US:X  d   eU " U " S5      5      nU R                  U5      (       a  US:X  d   eU " S5      * nU R                  U5      (       a  US:X  d   eU " S5      * nU R                  U5      (       a  US:X  d   eSU " S5      -   nU R                  U5      (       a  US:X  d   eU " S5      S-   nU R                  U5      (       a  US:X  d   eU " S5      U " S5      -   nU R                  U5      (       a  US:X  d   eU " S5      U " S5      -   nU R                  U5      (       a  US:X  d   eSU " S5      -
  nU R                  U5      (       a  US:X  d   eU " S5      S-
  nU R                  U5      (       a  US:X  d   eU " S5      U " S5      -
  nU R                  U5      (       a  US:X  d   eU " S5      U " S5      -
  nU R                  U5      (       a  US:X  d   eSU " S5      -  nU R                  U5      (       a  US:X  d   eU " S5      S-  nU R                  U5      (       a  US:X  d   eU " S5      U " S5      -  nU R                  U5      (       a  US:X  d   eU " S5      U " S5      -  nU R                  U5      (       a  US:X  d   eSU " S5      -  nU R                  U5      (       a  US:X  d   eU " S5      S-  nU R                  U5      (       a  US:X  d   eU " S5      U " S5      -  nU R                  U5      (       a  US:X  d   eU " S5      U " S5      -  nU R                  U5      (       a  US:X  d   eU " S5      S-  nU R                  U5      (       a  US:X  d   eU " S5      S-  nU R                  U5      (       a  US:X  d   eU " S5      S-  nU R                  U5      (       a  US:X  d   e[        S5      nU" S5      S-  nUR                  U5      (       a  US:X  d   eU" S5      S-  nUR                  U5      (       a  US:X  d   e[        U " S5      5      S	L d   e[        U " S5      5      S
L d   e[        S5      mT" S5      S-  nTR                  U5      (       a  US:X  d   eT" S5      S-  nTR                  U5      (       a  US:X  d   eT" S5      S-  nTR                  U5      (       a  US:X  d   eT" S5      S-  nTR                  U5      (       a  US:X  d   e[        S:w  a(  [	        [
        U4S j5        [	        [
        U4S j5        [	        [        S 5        [	        [        S 5        [        S5       GH0  m[        S5       GH  m[        S:w  a  [        5          T" T5      T" T5      :  TT:  L d   e S S S 5        [        5          T" T5      T" T5      :*  TT:*  L d   e S S S 5        [        5          T" T5      T" T5      :  TT:  L d   e S S S 5        [        5          T" T5      T" T5      :  TT:  L d   e S S S 5        M  [	        [        UUU4S j5        [	        [        UUU4S j5        [	        [        UUU4S j5        [	        [        UUU4S j5        GM     GM3     [        [        S5      5      T:X  d   eT" [        S5      5      T" S5      :X  d   eg ! , (       d  f       GN2= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       GM  = f)Nr4   r   r   r3   r   rq   l    h] l h] FTr>   r   flintc                     > T " S5      S-  $ )Nr   r   rn   r\   s   r;   rC   %test_ModularInteger.<locals>.<lambda>      bebkr<   c                     > T " S5      S-  $ )Nr>   r   rn   r>  s   r;   rC   r?    r@  r<   c                      [        S5      $ Nr   r   rn   r<   r;   rC   r?    s    r!ur<   c                      [        S5      $ )Ng @rD  rn   r<   r;   rC   r?    s    r#wr<   c                  &   > T " T5      T " T5      :  $ r6   rn   r\   n1n2s   r;   rC   r?        "R&2b6/r<   c                  &   > T " T5      T " T5      :*  $ r6   rn   rG  s   r;   rC   r?        "R&BrF*:r<   c                  &   > T " T5      T " T5      :  $ r6   rn   rG  s   r;   rC   r?    rJ  r<   c                  &   > T " T5      T " T5      :  $ r6   rn   rG  s   r;   rC   r?    rL  r<   )r   r   boolr   r0   r.   
ValueErrorranger1   	TypeErrorr   r   )rB   aF7r\   rH  rI  s      @@@r;   test_ModularIntegerrU    sO   	AB
1A::a==Q!V##
1A::a==Q!V##
1A::a==Q!V##
1A::a==Q!V##
1A::a==Q!V##
2a5	A::a==Q!V##
2a5	A::a==Q!V##
2a5	A::a==Q!V##
2a5	A::a==Q!V##
2a5	A::a==Q!V##	AA::a==Q!V##	AA::a==Q!V##	BqE	A::a==Q!V##
1	A::a==Q!V##
11A::a==Q!V##
11A::a==Q!V##	BqE	A::a==Q!V##
1	A::a==Q!V##
11A::a==Q!V##
11A::a==Q!V##	"Q%A::a==Q!V##
1aA::a==Q!V##
1beA::a==Q!V##
1beA::a==Q!V##	"Q%A::a==Q!V##
1aA::a==Q!V##
1beA::a==Q!V##
1beA::a==Q!V##
1qA::a==Q!V##
1qA::a==Q!V##
1qA::a==Q!V##	AB
1|A::a==Q!V##
1}A::a==Q!V##1;%1;$	AB
1A::a==Q!V##
1A::a==Q!V##
1A::a==Q!V##
1A::a==Q!V##w}12}12
:}%
:'Ah(Bw&+-rFRVOb999 .+-rFbf,"(;;; .+-rFRVOb999 .+-rFbf,"(;;; .- y"9:y":;y"9:y":;  $ gaj>Rgaj>RU"""! .-------s0   0`6a
a7a+6
a
a
a(+
a;c                      [        [        SS-  SS-  5      5      S:X  d   e[        [        SS-  S5      5      S:X  d   eg )Nr3   i  r4   i  i d   l   UU*UU*UU*U)intr   rn   r<   r;   test_QQ_intrY    sB    r!T'1d7#$...r!S&!}!????r<   c                      [        S5      S:  d   e[        S5      S:  d   e[        S5      S:  d   e[        S5      S:  d   e[        S5      S:  d   e[        S5      S:  d   eg )Nr   Jz5vIh%<=+=V瞯<#B;Ww'&l7)r   rn   r<   r;   test_RR_doublera  $  sn    d8ee9ue9ue9ue9ue9ur<   c                  2   [        S5      n [        S5      nU R                  S:X  d   eUR                  S:X  d   e[        U 5      S-
  S:  d   e[        U5      S-
  S:  d   e[        UR                  S9nU" U 5      S-
  S:  d   eU" U5      S-
  S:  d   eg )Nz1.01z1.00000000000000000000015   P   r   r[  )prec)r   _precr   r%   )f1f2RR2s      r;   test_RR_Floatrj  -  s    	vB	)	*B88r>>88r>>b6!8eb6!8e

"Cr719ur719ur<   c                     [        S5      R                  S:  d   e[        S5      R                  S:  d   e[        S5      R                  S:  d   e[        S5      R                  S:  d   e[        S5      R                  S:  d   e[        S5      R                  S:  d   e[        S5      R                  S:  d   e[        S	5      R                  S:  d   e[        S
5      R                  S:  d   e[        S5      R                  S:  d   e[        S5      R                  S:  d   e[        S5      R                  S:  d   eg )Nr   r[  r\  r]  r^  r_  r`  y        Q	@y        vIh%<=y        +=y        V瞯<y        #B;y        Ww'&l7)r   realimagrn   r<   r;   test_CC_doublern  :  s
   d8==5   e9>>E!!!e9>>E!!!e9>>E!!!e9>>E!!!e9>>E!!!e9>>E!!!f:??U"""f:??U"""f:??U"""f:??U"""f:??U"""r<   c                  t  ^^ [         R                  n SSU -   SU -
  SSU -  -
  4 Vs/ s H  n[        R                  " U5      PM     snu  p#pE[        R                  " X#5      U:X  d   e[        R                  " X$5      U:X  d   e[        R
                  " X#5      U:X  d   e[        R
                  " X$5      U:X  d   e[        SS5      [        SS5      :w  d   e[        SS5      S:w  d   e[        [        S5      S-  S5      [        S5      S-  :w  d   e[        SS5      R                  5       S:X  d   e[        SS5      R                  5       S:X  d   e[        R                  " [        SS5      5      [        [        SS5      [        S5      5      :X  d   e[        R                  " [        SS5      [        5      [        [        SS5      [        S5      5      :X  d   e[        [        4 GH  mT" SS5      m[        T5      S:X  d   eTR                  5       T:X  d   eTR                  [        5      S:X  d   eTR                  S5      S	:X  d   eTR                  SU -  5      S
:X  d   e[        T5      [        S5      :X  d   eT" SS5      T" SS5      :X  d   eT" SS5      T" SS5      :w  d   eT" SS5      T" S5      :X  d   eTT-   T" SS5      :X  d   eTT-
  T" SS5      :X  d   eST-
  T* S-   s=:X  a  T" SS5      :X  d   e   eST-   TS-   s=:X  a  T" SS5      :X  d   e   eTT-  T" SS5      :X  d   eST-  TS-  s=:X  a  T" SS5      :X  d   e   eTS-  T" SS5      :X  d   eTS-  T:X  d   eTS-  TT-  s=:X  a  T" SS5      :X  d   e   eTS-  TT-  T-  s=:X  a  T" SS5      :X  d   e   eST-  TS-  s=:X  a*  [        [        S5      S-  [        S5      * S-  5      :X  d   e   eTS-  [        SS5      :X  d   eTS-  [        [        S5      S-  S5      :X  d   eTS-  [        S[        S5      S-  5      :X  d   eST-  [        [        S5      S-  [        S5      * S-  5      :X  d   e[        TS5      u  pgSU-  U-   T:X  d   e[        ST5      u  pgTU-  U-   T" SS5      :X  d   e[        [         U4S j5        [        [         U4S j5        [        [         U4S j5        [        [         U4S j5        [        [         U4S j5        [        ["        U4S j5        [        ["        U4S j5        [        ["        U4S j5        [        ["        U4S j5        [        ["        U4S  j5        [        ["        U4S! j5        [        ["        U4S" j5        [        ["        U4S# j5        [        ["        U4S$ j5        [        ["        U4S% j5        TR%                  [        S5      5      T" SS5      :X  d   eTR'                  T" SS5      5      [        S5      :X  d   e[        [(        U4S& j5        TR+                  [,        5      n[/        U[0        5      (       d   eUR2                  T:X  d   e[5        UR6                  5      S:X  a%  UR6                  S   R9                  5       [,        :X  d   eT[        L a\  TR;                  5       n	[/        U	[<        5      (       d   eU	R2                  [        :X  d   eU	R>                  R@                  S   U :X  d   eT" SS5      T" SS5      T" SS5      T" SS5      4 H[  n
TRC                  U
5      S'L d   eTRE                  U
5      S'L d   eTRG                  U
5      S'L d   eTRI                  U
5      S'L a  M[   e   [J        [        [=        [        U 5      /nU[M        5       [O        5       /-  n[P        S(:X  a  U[S        5       [U        5       /-  nU HL  nTR                  U" S5      5      T" SS5      :X  d   eTR                  U" S5      U5      T" SS5      :X  a  ML   e   [        [        4 HN  nTR                  U" SS5      5      T" SS5      :X  d   eTR                  U" SS5      U5      T" SS5      :X  a  MN   e   T[        :X  a  [W        T5      S):X  d   eTS-  T" SS5      :X  d   eST-  T" SS*5      :X  d   eST-  T" SS5      :X  d   eTS-  T" SS5      :X  d   eUT" SS5      :X  d   eUT" SS5      :X  d   eTRY                  5       T:X  d   eTR[                  5       [        :X  d   eGMu  [W        T5      S+:X  d   eTRY                  5       [        :X  d   eTR[                  5       T:X  d   eTS-  T" S[        S5      S-  5      :X  d   eST-  T" [        S,5      S-  [        S-5      * S-  5      :X  d   eST-  T" SS5      :X  d   eTS-  T" SS5      :X  d   eUT" [        S5      S-  [        S5      * S-  5      :X  d	   TU45       eUT" SS5      :X  d   eT" [        S5      S-  [        S5      S-  5      nTR]                  U5      [        SS.5      :X  d   eTR_                  U5      [        S5      :X  a  GM   e   g s  snf )/Nr>   r3   r4   r   r   r   z3 + 4*I)NN)r3   r   )r   r3   )r4   r   r         r      	   r  i,      c                     > T S-  $ rC  rn   qs   r;   rC   'test_gaussian_domains.<locals>.<lambda>|  	    !a%r<   c                     > T S-  $ rC  rn   rx  s   r;   rC   rz  }  r{  r<   c                     > T S-  $ rC  rn   rx  s   r;   rC   rz  ~  s	    !q&r<   c                     > [        T S5      $ rC  divmodrx  s   r;   rC   rz        &A,r<   c                     > [        T S5      $ rC  r  rx  s   r;   rC   rz    r  r<   c                     > T [         -   $ r6   r   rx  s   r;   rC   rz    	    !a%r<   c                     > T [         -
  $ r6   r  rx  s   r;   rC   rz    r  r<   c                     > [         T -   $ r6   r  rx  s   r;   rC   rz    	    !a%r<   c                     > [         T -
  $ r6   r  rx  s   r;   rC   rz    r  r<   c                     > T [         -  $ r6   r  rx  s   r;   rC   rz    r  r<   c                     > [         T -  $ r6   r  rx  s   r;   rC   rz    r  r<   c                     > T [         -  $ r6   r  rx  s   r;   rC   rz    r  r<   c                     > [         T -  $ r6   r  rx  s   r;   rC   rz    r  r<   c                     > T [         -  $ r6   r  rx  s   r;   rC   rz    s	    !q&r<   c                     > [         T -  $ r6   r  rx  s   r;   rC   rz    s	    !q&r<   c                  .   > T R                  [        5      $ r6   )r   r   )Gs   r;   rC   rz    s    q||B'7r<   Fgmpyz
ZZ_I(3, 4)r   z
QQ_I(3, 4)$   0   r  )0r   ImaginaryUnitr"   r   gcdlcmr#   quadrantr   strparent_get_xyr   hashr  r0   ZeroDivisionErrorrR  r   r   r-   r   r   
isinstancer$   rx   r	  gensas_expras_AlgebraicFieldr!   r  argsis_negativeis_positiveis_nonnegativeis_nonpositiver   r   r    r   r   r   reprr   r   numerdenom)r   r   rS  br   dr   rPRAFqir   r}   q2r  ry  s                 @@r;   test_gaussian_domainsr  J  s	   	A,-q1ua!eQ1W+EF+Ea$,,q/+EFJA!88A>Q88A>Q88A>Q88A>Q1:a###1:??!Q?ad1f$$$1: A%%%A;!Q&&&<<1a!T"Q(BqE%::::<<1a"%bAh1)>>>>D\aG1v"""xxzQyy},,,yy|v%%%yy1~'''Aw$v,&&&Aw!Aq'!!!Aw!Aq'!!!Aw!A$1u!Q1u!Q1u!a+1Q8+++++1uA(1a(((((1u"b	!!!1uA)1b)))))Av1a   Av{{AvQ+!B)+++++AvQ1abk111111uR;4!R1Q4#;;;;;;1uQ
"""1uQqT!VQ'''sd1ad1fo%%%sd1Q47QrUF2I....a|sQw!||a|sQw!Aq'!!! -0 -0 .1 "67 "67y-(y-(y-(y-(y-(y-(y-(y-(y.)y.)||AaD!Qq!W,,,zz!Aq'"ad***~78XXa["n----yyA~~277|q RWWQZ%7%7%9Q%>>>9$$&Bb.111199?"?66;;q>Q&&&R8Qq!Wa2h!Q8B==$---==$---##B'5000##B'5000	 9 r>"a01 	IK--6!	79--GA99QqT?a1g---99QqT1%1a000  tA99Qq!W%1a00099Qq!Wa(AaG333  97l***a41Q7?"?q5AaH$$$6Qq!W$$$q5Ab!H$$$!Q<<!Q<<::<1$$$;;=D(((7l***::<4''';;=A%%%a41Q!Q<'''q5AaeBh2r	22226Qq!W$$$q5AaG###!A$r'AaD58,,3qe3,!Q<<1Q461Q46"B772;$q"+---772;$q')))_  Gs    j5c                     [         R                  [        R                  L d   e[         R                  [        R
                  L d   e[        S5      [        R                  " S5      :X  d   e[        S5      R                  [        R
                  L d   e[        S5      [        R
                  L d   eS[        [        [        [        -  -   [        -  5      -  [        SS[        -  -   5      s=:X  a#  S[        [        [        -  -   [        -  -  :w  d   e   eS[        [        [        [        -  -   [        -  5      -  S[        [        [        -  -   [        -  -  s=:X  a  S[        -   :w  d   e   e[         R                  " [        S5      [        5      [         R                  L d   e[        R                  " [        S5      [         5      [        R                  :X  d   e[         R                  " [        R
                  5      [        R
                  L d   e[         R                  " [         R                  5      [        R
                  L d   e[        [        S 5        [         R                   " 5       [         :X  d   e[         R"                  " [        5      [         :X  d   e[        R"                  " [         5      [         :X  d   eg )Nr   r3   c                  .    [         R                  " / 5      $ r6   )r   r   rn   r<   r;   rC   test_EX_EXRAW.<locals>.<lambda>  s    5#3#3B#7r<   )r   r   r   r/  r   r1  r   
Expressionexr   r   r   r   r   r0   r-   r   r8   rn   r<   r;   test_EX_EXRAWr    s   ::99a5BMM!$$$$a588quu8quu RQqS!_1qs7>q1qs7A+>>>>>UA!GQ;1q1Q3wk?=q1u=====beR(EII555??58U+rvv555AEE"aee+++>>%))$---
>78??%%%;;r?e###88E?e###r<   c                      [        S5      [        [        5      [        S5      /n [        U 5      [        S5      [        S5      [        [        5      /:X  d   eg )Nr   r4   )r   r   sorted)r   s    r;   test_EX_orderingr    s@    1r!ube$H(1r!ube4444r<   c                  P   [         [        [        4 HI  n U R                  U " S5      5      U " S5      :X  d   eU R                  U " S5      5      U " S5      :X  a  MI   e   [        [
        4 H  n U R                  [        5      nU R                  U " S5      5      U " S5      :X  d   eU R                  U " S5      U-  5      U* :X  d   eU R                  U " S5      * 5      U " S5      :X  d   eU R                  U " S5      * U-  5      U:X  a  M   e   [         [           n U R                  U " [        S-   5      5      U " S5      :X  d   eU R                  U " [        * S-   5      5      U " S5      :X  d   e[        [           n U R                  U R                  [        [        -  5      5      [	        SS5      :X  d   e[        R                  " [        [        5      n U R                  [        5      nX-  U R                  :X  d   eU R                  U-   XR                  -
  -  U* :X  d   eg )Nr3   r   r   r   r   )r   r   r   canonical_unitr"   r#   r   r   r   rW   r   r   )r}   r   s     r;   test_canonical_unitr    s   "b\!%1---"&!B%///  D\LLO!%1---!Q'A2---1&!B%///1a(A---  	1AAa!eH%1---Aqb1fI&!B%///QAALL1-.$q"+===1A	QA5AEE>>EEAIEE	"qb(((r<   c                      [        [        S5      R                  5       5      S:X  d   e[        [        S5      R                  5       5      S:X  d   eg )Nr3   r   r   )r  r   r  r   rn   r<   r;   test_issue_18278r    s<    r!u||~$&&&r!u||~$&&&r<   c                      [         R                  n SU -   S4 Vs/ s H  n[        R                  " U5      PM     snu  p#[        R                  " U5      S:X  d   e[        R                  " U5      S:X  d   eg s  snf Nr3   r>   F)r   r  r   r   r  r   r   rS  r  s       r;   test_Domain_is_negativer  	  d    	A$%E1:.:aBJJqM:.DA>>!%%%>>!%%% /    A8c                      [         R                  n SU -   S4 Vs/ s H  n[        R                  " U5      PM     snu  p#[        R                  " U5      S:X  d   e[        R                  " U5      S:X  d   eg s  snf r  )r   r  r   r   r  r  s       r;   test_Domain_is_positiver    r  r  c                      [         R                  n SU -   S4 Vs/ s H  n[        R                  " U5      PM     snu  p#[        R                  " U5      S:X  d   e[        R                  " U5      S:X  d   eg s  snf r  )r   r  r   r   r  r  s       r;   test_Domain_is_nonnegativer    h    	A$%E1:.:aBJJqM:.DAQ5(((Q5((( /r  c                      [         R                  n SU -   S4 Vs/ s H  n[        R                  " U5      PM     snu  p#[        R                  " U5      S:X  d   e[        R                  " U5      S:X  d   eg s  snf r  )r   r  r   r   r  r  s       r;   test_Domain_is_nonpositiver    r  r  c                      [         [           n U R                  [        5      nU R                  [        S5      5      US-  :X  d   eU R	                  [        S5      5      US-  :X  d   eg )Nr4   )r   r   r   r   r   )r}   eKs     r;   test_exponential_domainr  %  sV    
1A	
aB<<A27***99SVa'''r<   c                     [         R                  " [        S5      5      n U R                  R                  b   e[        [        S5      SS9n[         R                  " U5      n U R                  R                  R                  S:X  d   e[         R                  " USS9n U R                  R                  R                  S:X  d   e[         R                  " [        S5      [        S5      5      n U R                  R                  b   e[         R                  " U[        S5      5      n U R                  R                  b   e[         R                  " [        S5      [        S5      SS9n U R                  R                  R                  S:X  d   e[         R                  " U5      n U R                  U " / SQ5      5      nUR                  UR                  L d   eg )Nr3   alpha)aliasthetar4   )r   r3   r4   )r   rj   r   r  r  r   name
to_alg_num)kr  betas      r;   test_AlgebraicField_aliasr  ,  sh   
47#A55;; DG73E
5!A55;;w&&& 	50A55;;w&&& 	47DG,A55;; 	5$q'*A55;; 	47DG7;A55;;w&&& 	5!A<<)%D::$$$r<   c                     [         R                  " [        S5      5      SL d   e[         R                  " [        S5      5      [        S5      :X  d   e[         R                  " [        S5      5      SL d   e[         R                  " [        S5      5      b   e[         R                  " [        S5      5      SL d   e[         R                  " [        S5      5      [        S5      :X  d   e[         R                  " [        S5      5      SL d   e[         R                  " [        S5      5      b   e[        R                  " [        SS5      5      SL d   e[        R                  " [        SS5      5      [        S	S5      :X  d   e[        R                  " [        S
S5      5      SL d   e[        R                  " [        S
S5      5      [        S	S5      :X  d   e[        R                  " [        SS5      5      SL d   e[        R                  " [        SS5      5      [        S	S5      :X  d   e[        R                  " [        SS5      5      SL d   e[        R                  " [        SS5      5      b   e[        R                  " [        SS5      5      SL d   e[        R                  " [        SS5      5      b   e[        R                  " [        S5      5      SL d   e[        R                  " [        S5      5      [        S5      :X  d   e[        R                  " [        S5      5      SL d   e[        R                  " [        S5      5      [        S5      :X  d   e[        R                  " [        SS5      5      SL d   e[        R                  " [        SS5      5      b   e[        R                  " [	        S5      5      SL d   e[        R                  " [	        S5      5      [	        S5      :X  d   e[        R                  " [	        S5      5      SL d   e[        R
                  " [        R                  " [	        S5      5      [	        S5      SS9(       d   e[        R                  " [	        S5      5      SL d   e[        R                  " [	        S5      5      [	        S5      :X  d   e[        R                  " [	        S5      5      SL d   e[        R                  " [	        S5      5      b   e[        R                  " [        S5      5      SL d   e[        R
                  " [        R                  " [        S5      5      [        S5      SS9(       d   e[        R                  " [        S5      5      SL d   e[        R                  " [        S5      5      [        S5      :X  d   e[        R                  " [        S5      5      SL d   e[        R                  " [        S5      5      [        SS5      :X  d   e[        R                  " [        SS5      5      SL d   e[        R                  " [        SS5      5      [        SS5      :X  d   e[        R                  " [        SS5      5      SL d   e[        R                  " [        SS5      5      [        SS5      :X  d   e[        S5      n U R                  U " S5      5      SL d   eU R                  U " S5      5      U " S5      :X  d   eU R                  U " S5      5      SL d   eU R                  U " S5      5      U " S5      :X  d   e[        S5      nUR                  U" S5      5      SL d   eUR                  U" S5      5      U" S	5      :X  d   eUR                  U" S	5      5      SL d   eUR                  U" S	5      5      b   eUR                  U" S5      5      SL d   eUR                  U" S5      5      U" S5      :X  d   eg )Nr   Tr3   *   Fr   r   rt  r4      rq  irr     r>   ig      @g      @g;f?r^  )	tolerancer   r   rq   )r   	is_squareexsqrtr   r   almosteqr   r   )F2rT  s     r;   test_exsqrtr  M  s   <<1$&&&99RUr!u$$$<<25(((99RV$$$<<1$&&&99RUr!u$$$<<25(((99RV$$$<<1a!T)))99R1X"Q(***<<2q	"d***99RAY2a8+++<<2r
#t+++99RBZ Bq!H,,,<<2q	"e+++99RAY'''<<1a!U***99R1X&&&<<1$&&&99RUr!u$$$<<1$&&&99RUr!u$$$<<3
#u,,,99RQZ (((<<4!T)))99RX"S')))<<1$&&&;;ryyA',>)?5QQQ<<1$&&&99RUr!u$$$<<25(((99RV$$$<<1$&&&;;ryyA',>)?5QQQ<<1$&&&99RUr!u$$$<<24'''99RV1a(((<<1a!T)))99R1X"Q(***<<2r
#t+++99RBZ Bq"I---	AB<<1$&&&99RUr!u$$$<<1$&&&99RUr!u$$$	AB<<1$&&&99RUr!u$$$<<1%'''99RU###<<1$&&&99RUr!u$$$r<   N){__doc__sympy.external.gmpyr   sympy.core.numbersr   r   r   r   r   r	   r
   r   r   sympy.core.singletonr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   sympy.polys.polytoolsr   	sympy.abcr   r   r   sympy.polys.domainsr   r   r   r   r   r   r   r   r   r   r   r    "sympy.polys.domains.algebraicfieldr!   #sympy.polys.domains.gaussiandomainsr"   r#   "sympy.polys.domains.polynomialringr$   sympy.polys.domains.realfieldr%   !sympy.polys.numberfields.subfieldr&   sympy.polys.ringsr'   sympy.polys.specialpolysr(   sympy.polys.fieldsr)   sympy.polys.agca.extensionsr*   sympy.polys.polyerrorsr+   r,   r-   r.   r/   sympy.testing.pytestr0   r1   	itertoolsr2   rj   rN   r8   rk   ro   ru   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)  r+  r-  r3  r:  rU  rY  ra  rj  rn  r  r  r  r  r  r  r  r  r  r  r  r  rn   r<   r;   <module>r     s   V ,      " 6 9 8 &  # # # # = : = 3 ? " 4 $ 7  @ a$q'*xtwTrJ&1fOIBX60D7,U+&LR+)79t1*:"+
,
<50 D# $M0W+4
:;y#x@

# *D$25
)4'
&&))(%B;%r<   