
    sh                     `    S r SSKJr  SSKJr  SSKJrJr  SSKJ	r	  SSK
Jr  S rS rS	 rS
 rg)zTests for homomorphisms.    )S)QQxyhomomorphism)raisesc                  
   [         R                  " [        5      n [        [	        U R                  S5      U R                  S5      S/5      5      S:X  d   e[        [	        U R                  S5      U R                  S5      SS/5      5      S:X  d   e[        [	        U R                  S5      U R                  S5      [        //-  S/5      5      S:X  d   e[        U R                  S5      R                  5       5      S:X  d   eg )N   r   z$Matrix([[0]]) : QQ[x]**1 -> QQ[x]**1   z^Matrix([                       
[0, 0], : QQ[x]**2 -> QQ[x]**2
[0, 0]])                       z*Matrix([[0]]) : QQ[x]**1 -> QQ[x]**1/<[x]>z'Matrix(0, 0, []) : QQ[x]**0 -> QQ[x]**0)r   old_poly_ringr   strr	   free_moduleidentity_hom)Rs    }/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/sympy/polys/agca/tests/test_homomorphisms.pytest_printingr   
   s    
A|AMM!,ammA.>DE./ / /|AMM!,ammA.>AGHjk k k|AMM!,ammA.>1#.FLM45 5 5q}}Q,,./3\\\\    c            	      Z  ^^^ [         R                  " [        5      R                  S5      n [         R                  " [        5      R                  S5      nU R	                  5       m[        X SS[        //5      m[        X SS/S/5      n[        X/ SQ/ SQ/5      mTT:X  d   eTT:w  d   eTT:w  d   eTU R	                  5       :g  SL d   eST-  TS-  s=:X  a  [        X SS/SS//5      :X  d   e   eTS-  [        X [        R                  S/S[        R                  //5      :X  d   eTT-   [        X SS/S[        S-   //5      :X  d   eTT-
  [        X SS/SS[        -
  //5      :X  d   eTT-  Ts=:X  a
  TT-  :X  d   e   eUT-  [        X SSS//5      :X  d   eTU-  [        X SS/5      :X  d   eTT-  T:X  d   eT" SS/5      SS/:X  d   eT" SS/5      SS[        -  /:X  d   eTR                  U R                  [        [        /5      5      " [        [        /5      T" [        [        /5      :X  d   eUR                  U R                  SS/5      5      nU" SS/5      U" SS/5      :X  d   eUR                  UR                  R                  [        S/5      5      " [        S/5      U" [        S/5      :X  d   e[        [        UU4S	 j5        [        [        U4S
 j5        [        [        UU4S j5        [        [        U4S j5        [        [        UU4S j5        g )Nr      r   r   r   r   r   r   r   r   Fc                     > T T-  $ N )fgs   r   <lambda>!test_operations.<locals>.<lambda>1   	    acr   c                     > T S-   $ Nr   r   r   s   r   r    r!   2   	    a!er   c                     > T T-   $ r   r   r   is   r   r    r!   3   r&   r   c                     > T S-
  $ r$   r   r%   s   r   r    r!   4   r&   r   c                     > T T-  $ r   r   r(   s   r   r    r!   5   r"   r   )r   r   r   r   r   r	   r   Halfrestrict_domain	submodulequotient_domaindomainr
   	TypeError)FGhh1r   r   r)   s       @@@r   test_operationsr6      s   
''*A
''*A	AQA1v;'AQQFA;'AQIy12A6M66M66M6!!e+++Q3!A#=aaVaV,<======Q3,qqvvqkAqvv;%?@@@@q5LAAE
';<<<<q5LAQU'<====Q3!?qs???Q3,qa!Q[1111Q3,qaV,,,,Q3!8O8aV9AaV9AaC   Q[[!Q011a&9Q1vYFFF	
		1;;1v.	/Bq!f:Aq6"""bii111a&9:Aq6BaAiOOO
9k"
9m$
9m$
9m$
9k"r   c                    ^^^^	^
^ [         R                  " [        5      R                  S5      m[         R                  " [        5      R                  S5      mTR	                  / SQ5      n TU -  nUR	                  / SQ5      nSS/SS/SS//m[        TTT5      m
[        UTT5      nT
R                  U 5      U:X  d   e[        [        UU
4S j5        UR                  U5      [        UTT5      :X  d   e[        [        UU
4S	 j5        [        [        UU
4S
 j5        [        [        UU
4S j5        / SQ/ SQ/ SQ/nTXU4 H#  nUR                  5       [        XUU5      :X  a  M#   e   U R                  5       [        U TU5      :X  d   eUR                  5       [        X!U5      :X  d   eUR                  5       [        TX5      :X  d   eUR                  5       [        UR                  X$5      :X  d   e " S S5      m " U4S jS5      m	[        [        UU	U4S j5        [        [        UU	U4S j5        [        [        UU4S j5        [        [        UU4S j5        g )Nr   r   )r   r   r   r   r   r   r   c                  H   > TR                  T R                  / SQ5      5      $ )Nr   )r/   r.   r2   r4   s   r   r    test_creation.<locals>.<lambda>C   s    q00Y1GHr   c                  &   > TR                  T 5      $ r   )r-   r3   r4   s   r   r    r:   E   s    q003r   c                  H   > TR                  T R                  SS/5      5      $ )Nr   r   )restrict_codomainr.   r<   s   r   r    r:   F   s    q221;;1v3FGr   c                  &   > TR                  T 5      $ r   )quotient_codomainr9   s   r   r    r:   G   s    q2215r   r   )r   r   r   c                       \ rS rSrSS jrSrg)test_creation.<locals>.convQ   Nc                     U $ r   r   r   s     r   convert#test_creation.<locals>.conv.convertR   s    Hr   r   r   )__name__
__module____qualname____firstlineno__rE   __static_attributes__r   r   r   convrB   Q   s    	r   rL   c                   ,   > \ rS rSr Y " 5       rS rSrg)test_creation.<locals>.dummyU   c                      g r   r   )argss    r   r.   &test_creation.<locals>.dummy.submoduleX   s    r   r   N)rG   rH   rI   rJ   	containerr.   rK   )rL   s   r   dummyrN   U   s    F		r   rT   c                  (   > [        T" 5       T T5      $ r   r   )r3   rT   matrixs   r   r    r:   Z   s    l57Av>r   c                  (   > [        T T" 5       T5      $ r   r   )r2   rT   rV   s   r   r    r:   [   s    l1egv>r   c                  v   > [        [        R                  " [        [        5      R                  S5      T T5      $ )Nr   )r	   r   r   r   r   r   )r3   rV   s   r   r    r:   ]   s(    L)9)9!Q)?)K)KA)NPQSYZr   c                  "   > [        T TSS/5      $ )Nr   r   )r2   r3   s   r   r    r:   ^   s    |Aq1a&9r   )r   r   r   r   r.   r	   r/   r
   
ValueErrorr-   r   inclusion_homquotient_hombaser1   )SMQSQh2imMr2   r3   rL   rT   r4   rV   s         @@@@@@r   test_creationrd   8   s   
''*A
''*A	
Y	B	BA	
Y	B!fq!fr2h'FQ6"A	aF	#BR B&&&
:HIb!\"a%@@@@
:34
:GH
:56
Y		*B^~~<b#9999 b!R!8888bR!8888>>|Aq5555??RWWb ====  
 9>?
9>?
Z\
:9:r   c                  6   [         R                  " [        [        5      n U R	                  S5      n[        X[        S/[        S//5      nUR                  5       UR                  [        * [        /5      :X  d   eUR                  5       UR                  [        S/[        S/5      :X  d   eUR                  5       (       a   eUR                  5       (       a   eUR                  UR                  5       5      R                  5       (       d   eUR                  UR                  SS/5      5      R                  5       (       d   eUR                  UR                  5       5      R                  UR                  5       5      R                  5       (       d   e[         R                  " [        [        S[        4S[        44S9[        S-  S-   /-  nUR	                  S5      n[        X[        S/[        [        S-   //5      nUR                  5       (       d   eg )Nr   r   r   lexilex)order)r   r   r   r   r   r	   kernelr.   imageis_injectiveis_surjectiver>   r-   r/   is_isomorphism)r   r2   r4   R2s       r   test_propertiesro   a   s   
AA	aAQQFQF+,A88:qb!W----779QFQF3333~~    qwwy)779999Q[[!Q01>>@@@@	
%%aggi01AB B B 
		!QqzFA;&?	@AqD1H:	MB
qAQQFQAJ/0Ar   N)__doc__sympy.core.singletonr   !sympy.polys.domains.rationalfieldr   	sympy.abcr   r   sympy.polys.agcar	   sympy.testing.pytestr
   r   r6   rd   ro   r   r   r   <module>rv      s.     " 0  ) '	] #F&;Rr   