
    oVh                     z    d dl mZmZmZmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZmZ d dlmZ d dlmZ d Zd Zd	 Zy
)    )ObjectMorphismIdentityMorphismNamedMorphismCompositeMorphismDiagramCategory)Class)raises)DictTuple)EmptySet)	FiniteSetc                    	
 t        d      t        d      	t        d      } t        d      }t        	d      

j                  k(  sJ 
j                  	k(  sJ 
t        	d      k(  sJ t	              t	        	      }j                  k(  sJ j                  k(  sJ t	              k(  sJ |k7  sJ t        	| d      j
                  dk(  sJ 
k7  sJ t        	| d      k(  sJ t        	| d      k7  sJ 
t        
      k(  sJ j                  
      }|j                  k(  sJ |j                  | k(  sJ |j                  t        
      k(  sJ 
z  |k(  sJ t        
      |k(  sJ t        
z        
z  k(  sJ t        | |d      }|z  }|z  
z  }||z  |k(  sJ |
z  |k(  sJ t        
|      |k(  sJ |j                  d      }t        |t              sJ |j
                  dk(  sJ |j                  k(  sJ |j                  |k(  sJ 
z  
k(  sJ |
z  
k(  sJ z  k(  sJ t              k(  sJ t        t        
fd	       t        t        
fd
       t        t        fd       t        t        
fd       t        t        fd       t        t        
fd       t        t        	fd       t        t        	fd       y )NABCDfghuc                       z  S N )r   r   s   W/home/dcms/DCMS/lib/python3.12/site-packages/sympy/categories/tests/test_baseclasses.py<lambda>z test_morphisms.<locals>.<lambda>J   s    q1u     c                  &     j                  d       S r   composer   s   r   r   z test_morphisms.<locals>.<lambda>L   s    aiio r   c                  &     j                  d       S r   r    id_As   r   r   z test_morphisms.<locals>.<lambda>M   s    dll40 r   c                       d z  S r   r   r"   s   r   r   z test_morphisms.<locals>.<lambda>N   s    a$h r   c                       d z  S r   r   r$   s   r   r   z test_morphisms.<locals>.<lambda>O   s    dTk r   c                      t         d d      S )N   )r   r"   s   r   r   z test_morphisms.<locals>.<lambda>Q   s    /4; r   c                      t         d      S N )r   r   r   s   r   r   z test_morphisms.<locals>.<lambda>S   s    }Q26 r   c                      t               S r   )r   r-   s   r   r   z test_morphisms.<locals>.<lambda>T   s    A r   )r   r   domaincodomainr   namer   r!   
componentsr   flatten
isinstancer   
ValueError	TypeErrorNotImplementedError)r   r   id_Bkr   pr   u2r   r   r   r   r%   s           @@@@@r   test_morphismsr<      s   sAsAsAsA 	aC A88q==::??aC(((( ADAD;;!==A#A&&&&4<< 	aC A66S==6M6aC((((aC(((( !!$$$$			!A88q==::??<<5A;&&&q5A::Q"a'''QU#q1u,,, 	aC A	AA	A	Aq5A::q5A::Q1%*** 
3Bb-(((77c>>99>>;;! t8q==!8q==$;$T"d*** :}%
9-.
901
9&'
9)*
9;<
:67
 67r   c            	      	   t        d      t        d      } t        d      }t        | d      }t        | |d      }t              }t        |       }t        }t	        |g      }|j
                  t        |       k(  sJ |j                  |       t        |      |fk(  sJ |j                        t        |      |fk(  sJ |j                  | |       t        |      |fk(  sJ |t	        ||g      k(  sJ |t	        ||g      k(  sJ t	        ||g      }|j                  |      d   }	|j
                  t        | |      k(  sJ ||z  |j                  j                         v sJ |	t        ||z        k(  sJ t	        |g      }
||
k(  sJ ||k7  sJ t        |      t        |
      k(  sJ t	        |di      }
||
k7  sJ t	        ||g||z  di      j                  t        ||z  t        d      i      k(  sJ j                  |      t        ||z        t        ||z        fk(  sJ t	        ||g||z  g      j                  |      t        ||z        t        ||z        fk(  sJ t	        |ddg|di      j                  ||z     t        d      k(  sJ t	        |g|g      j                  t        i       k(  sJ t	               j                  t        i       k(  sJ j                  t        i       k(  sJ j
                  |k(  sJ t	        t        |t        dd      |di            j                  ||z     t        d      k(  sJ t	        ||z  g      |j                  v sJ |j                  v sJ t	        ||g||z  di      t	        |g      }j                  |      sJ |j                        rJ t	        t        | d	      g      j                  |      rJ |j                        rJ t	        ||g||z  dd
gi      }j                  |      rJ |j                        rJ t	        |di      t	        |di      }j                  |      rJ |j                        rJ t	        ||g|d||z  di      j                  t        |             }|t	        |g|di      k(  sJ t        t         fd       t        t         fd       y )Nr   r   r   r   r   r   uniqueisomorphismzf'	somethingbloohbleeh
veryuniquec                  L    j                  t         t        d                  S )Nr   )subdiagram_from_objectsr   r   )r   ds   r   r   ztest_diagram.<locals>.<lambda>   s"    q881#;:   r   c                  0    t        t               di      S )Nr>   )r   r   )r   s   r   r   ztest_diagram.<locals>.<lambda>   s    w(8(;X'FG r   )r   r   r   r   r   objectsr   hompremiseskeyshashconclusionsr   is_subdiagramrE   r   r5   )r   r   r   r   r%   r8   emptyd1d2homACd11r   rF   s              @@r   test_diagramrT   W   s   sAsAsAaC AaC AADADE 
!B::1a(((66!Q<IaL%000066!Q<IdOU333366!Q<IdOU3333$####!Q    
!QBFF1aLOE::1a++++q5BKK$$&&&&Ia!e$$$$ 1#,C998O88tCy   
1h-
 C99 	AQ)*A==D!a%8)<!=>>>> 55A;9QU+Yq1u-=>>>>AQ A55A;9QU+Yq1u-=>>>> 	X}-q(;<A::a!e	( 3333 	aSA==DH$$$ 		A::b!!!==DH$$$99 	a8];QIJKA::a!e	( 3333 	QA

??

?? 	AQ)*A	!B??2"""q!T*+,Ar""""""	!Q!a%(K!89	:Br""""""GA	!W	Br""""""AHa!e\:;A	
	"	"9Q?	3B!q(m,,,,
:   :GHr   c                     t        d      } t        d      }t        d      }t        | |d      }t        ||d      }t        ||g      }t        |g      }|j                  |j                  z  }t	        d|||g      }|j
                  dk(  sJ |j                  t        |      k(  sJ |j                  t        ||      k(  sJ t        t        d        y )	Nr   r   r   r   r   K)commutative_diagramsc                      t        d      S r+   )r	   r   r   r   r   ztest_category.<locals>.<lambda>   s
    x| r   )r   r   r   rH   r	   r1   r
   rW   r   r   r5   )	r   r   r   r   r   rP   rQ   rH   rV   s	            r   test_categoryrY      s    sAsAsAaC AaC A	!QB	!Bjj2::%GgRH=A66S==99g&&&!!Yr2%6666
:+,r   N)sympy.categoriesr   r   r   r   r   r   r	   sympy.categories.baseclassesr
   sympy.testing.pytestr   sympy.core.containersr   r   
sympy.setsr   sympy.sets.setsr   r<   rT   rY   r   r   r   <module>r`      s9   1 1 1 / ' /  %I8XdIN-r   