
    oVhd`                         d dl mZmZ d dlmZmZmZmZmZm	Z	 d dl
mZmZ d dlmZmZ d Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zed        Zd Zd Zy)    )PermutationPerm)perm_af_direct_product	dummy_sgsriemann_bsgsget_symmetric_group_sgscanonicalizebsgs_direct_product)canonicalize_naivegraph_certificate)skipXFAILc                      g dg dg} ddgg}t        | |d      g dg dg dgk(  sJ g dg dg} g dg}g d	g d
g dgsJ y )N   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   r   )r   r   r   r   r   r         )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   )gens1gens2s     Y/home/dcms/DCMS/lib/python3.12/site-packages/sympy/combinatorics/tests/test_tensor_can.pytest_perm_af_direct_productr      s[    	"EUGE!%27IK]_q6rrrrM*EKE$&>@XYYY    c                     t        ddgdd      } | g dgk(  sJ t        g ddd      } |  t        d      dd	       t        d      dd
        t        d      dd      d	d
      fD cg c]  }|j                   c}k(  sJ t        g ddd      } |  t        dd	      dd       t        dd
      dd        t        d      dd      d	d
      fD cg c]  }|j                   c}k(  sJ y c c}w c c}w )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r      	   r   r   )r   r   _array_form)axs     r   test_dummy_sgsr'      s   1Q%AA)Q"Aa1wtAwq|Q!Qq) 1     	)Q"Aa1Qa1QQ!Qq) 1    	s   (C-C2c            	         t        d      dg t        d      dd      gfk(  sJ t        dd      dg t        dd      dd      gfk(  sJ t        d      ddg t        d      dd       t        d      dd      gfk(  sJ t        dd      ddg t        dd      dd       t        dd      dd      gfk(  sJ t        d      g d t        d      dd       t        d      dd       t        d      dd      gfk(  sJ t        dd      g d t        dd      dd       t        dd      dd       t        dd      dd      gfk(  sJ y )Nr   r   r   r   r   )r   r   r   r   )r   r    r   r   test_get_symmetric_group_sgsr*      s   "1%1#Aq0C/D)EEEE"1a(aS3C;q3CAa3H2I,JJJJ"1%1Q%.+a.12E~{ST~VWXYGZ1[)\\\\"1a(aU5E[15Ea5JL\KXYZ[L\]^_`La4b,cccc"1%'NKN1Q4GUVXYZ[I\^l^ijk^lmnop^q3r)ssss"1a(W7G{1Q7G!7LN^kZ[\]N^_`abNceuepqrsteuvwxyez6{,||||r   c            
         t        d      \  } }ddg}t        g d      }t        ||d| |ddf| |ddf      }|g dk(  sJ t        ||d| |dd f      }|g dk(  sJ t        ||d| |ddf| |ddf      }|g dk(  sJ t        g d      }g }| |ddfx}}t        ||d||      }|g dk(  sJ t        g d      }t        ||d||      }|g dk(  sJ t        d      \  }}ddg}t        g d      }t        ||d||ddf      }|g d	k(  sJ t        ||d||ddf      }|g d	k(  sJ t        g d
      }t        ||d||ddf      }|g dk(  sJ ddg}t        g d      }t        ||d||ddf||ddf      }|g dk(  sJ t        ||d||ddf||ddf      }|g dk(  sJ t        d      \  } }t        d      \  }}t        g d      }g d}||ddf}| |ddfx}}	t        ||d|||	      }|g d	k(  sJ t        g d      }g d}g t        t        t	        d                  gddf}t        ||d|||	      }|g dk(  sJ g t        t        t	        d                  gddfx}}g d}t        g d      }t        ||d||      }|g d	k(  sJ t        g d      }t        ||d||      }|g dk(  sJ g t        t        t	        d                  gddfx}x}}	g d}t        g d      }t        ||d|||	      }|g dk(  sJ ||ddf}g t        t        t	        d                  gddfx}}	g d}t        g d      }t        ||d|||	      }|g dk(  sJ ||ddfx}}	g t        t        t	        d                  gddf}g d}t        g d      }t        ||d|||	      }|g dk(  sJ ||ddf}g t        t        t	        d                  gddf}t        dd      \  }
}|
|ddf}	g d}t        g d      }t        ||d|||	      }|g dk(  sJ y )Nr   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   )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   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   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	   listrange)base1r   dummiesgcant0t1base2r   t2base2agens2as               r   test_canonicalize_no_slot_symr?   #   s)    +1-LE5!fGIA
q'1uU1Q&7%a9J
KC)
q'1ueQ&=
>C) q'1uU1Q&7%a9J
KC) 	IAGeQ""B
q'1b"
-C)IA
q'1b"
-C)
 +1-LE5eGM"A
q'1ueQ&:
;C$$$$
q'1ueQ&:
;C$$$$M"A
q'1ueQ&:
;C$$$$
 eGM"A
q'1uU1Q&7%a9J
KC-
q'1uU1Q&7%a9J
KC- +1-LE5*1-LE5M"AG
1	BeQ""B
q'1b"b
1C$$$$
 	M"AG
{4a>*+Q	2B
q'1b"b
1C- KU1X/0!Q77BGM"A
q'1b"
-C$$$$ 	M"A
q'1b"
-C- T%(^45q!<<B<bG%&A
q'1b"b
1C#### a	BKU1X/0!Q77BG%&A
q'1b"b
1C#### U1QB
{4a>*+Q	2BG%&A
q'1b"b
1C#### q!	B
{4a>*+Q	2B,Q2NFF
&!Q	BG%&A
q'1b"b
1C####r   c            	      
   t        d      \  } }t        d      \  }}t        dd      \  }}t        g d      }t        |g d| |ddf      }|t        t	        d            k(  sJ t        g d      }t        |g d| |ddf      }|g dk(  sJ t        g d      }t        |g d||ddf      }|g d	k(  sJ t        g d      }t        |g d||ddf      }|g d
k(  sJ t        g d      }t        |g d||ddf      }|g d	k(  sJ y )Nr   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r,   r    r.   )r   r   r   r   r   r   r2   )r5   r   r;   r   r=   r>   r7   r8   s           r   test_canonicalize_no_dummiesrA      s5   *1-LE5*1-LE5,Q2NFF
 	K A
q"a%1!5
6C$uQx.   
 	K A
q"a%1!5
6C+
 	M"A
q"a%1!5
6C-
 	M"A
q"a%1!5
6C- 	M"A
q"a%1!5
6C-r   c                     t        g d      } t        | t        t        d            d g t        t        t        d                  gddg      }|g dk(  sJ t        g d      } t        | t        t        d            d g t        t        t        d                  gddg      }|g dk(  sJ t        g d	      } t        | t        t        d            d g t        t        t        d                  gddg      }|g d
k(  sJ t        g d      } t        | t        t        d            d g t        t        t        d                  gddg      }|g dk(  sJ y )Nr/   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   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         rI   )r   r   r   r   r   r   r   r   r"   rG   rD   rF   rC   rH   rE   r#   rI   rJ   )r   r	   r3   r4   )r7   r8   s     r   test_no_metric_symmetryrK      s<    	M"A
q$uQx.$k$uQx.6Q5RTUWX0Y
ZC- 	)*A q$uQx.$k$uQx.6Q5RTUWX0Y
ZC0000 	)*A
q$uQx.$k$uQx.6Q5RTUWX0Y
ZC''''ABA
q$uRy/4"{4a>7R6SUVXY1Z
[C????r   c            	      t    t        g d      } ddgg}t        | |d gg t        d      gddf      }|g dk(  sJ y )Nr1   r   r   r   )r   r   r   r   r   r   )r   r	   )r7   r6   r8   s      r   test_canonical_freerM      sI    
 	M"A!ugG
q'D6BQ0@!Q+G
HC/!!!r   c            
         t        d      \  } }t        dd      \  }}t        d      \  }}t        d      \  }}t        dd      \  }}	t        dd      \  }
}t        g d      }t        |ddgd| |ddf      }|t        t	        d            k(  sJ t        g d      }t        |t        t	        d            d| |ddf      }|t        t	        d	            k(  sJ t        g d      }t        |t        t	        d            d| |ddf      }|dk(  sJ t        |t        t	        d            d| |ddf      }|dk(  sJ t        g d
      }t        |t        t	        dd            d||ddf      }|g dk(  sJ t        g d      }t        |t        t	        dd            d||ddf||ddf      }|g dk(  sJ t        g d      }t        |t        t	        dd            d||ddf      }|g dk(  sJ t        g d      }t        |t        t	        dd            d||ddf      }|g dk(  sJ t        g d      }t        |t        t	        d	            d||ddf||	ddf      }|dk(  sJ t        |t        t	        d	            d||ddf||	ddf      }|g dk(  sJ t        |t        t	        d	            d||ddf||	ddf      }|g dk(  sJ t        |t        t	        d	            d ||ddf||	ddf      }|g dk(  sJ t        g d      }||	dd f}| |dd f}|
|dd f}t        |t        t	        dd            d|||      }|g dk(  sJ ||	dd f}t        g d      }t        |t        t	        dd	            d|||      }|g dk(  sJ t        g d      }t        | |||	      \  }}t        | || |      \  }}||ddf}||ddf}t        |t        t	        d            t        t	        dd            gddg||      }|g dk(  sJ y )Nr   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   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   r   r   r   r   r   r   r   )rD   r   r"   r   r   r#   r   rG   r   r   r   r   rC   rF   rC   )r   r   r   r   r   r"   r   r   rD   r   r#   rG   rC   rF   )
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   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   )
r   r   r   r   r   r   r   r   r"   r#   )
r   r   r   r   r   r   r   r   r"   r#   )r"   rG   r   r#   rF   r   r   rD   r   r   r   rC   r   r   rE   rH   rE   )r   r   r"   r   rD   rC   r   r   r   rG   r   r#   r   rF   rH   rE   )r   r   r	   r3   r4   r   r
   )r5   r   base1agens1ar;   r   base3gens3r=   r>   base3agens3ar7   r8   can1r9   r:   r<   base_fgens_fbase_Agens_As                         r   test_canonicalize1rZ      s   *1-LE5,Q2NFF*1-LE5*1-LE5,Q2NFF,Q2NFF 	IA
q1a&!eUAq%9
:C$uQx.    	%&A
q$uQx.!eUAq-A
BC$uQx.    	%&A
q$uQx.!eUAq-A
BC!8O8aeAhUE1a4HID199 	%&A
q$uQqz*Aua/C
DC#### 	%&A
q$uQqz*AeAa/@5qQRBS
TC#### 	%&A
q$uQqz*Aua/C
DC#### 	9:A
q$uQr{+Qq!0D
EC7777 	)*A
q$uQx.!eU1Q-?&PQRSAT
UC!8O8
 q$uQx.!eU1Q-?&PQRSAT
UC****
 q$uQx.!eU1Q-?&PQRSAT
UC**** q$uQx.$a0BVFSTUVDW
XC'''' 	%&A
&!T	"B
4	 B
&!T	"B
q$uQ{+QB
;C#### &!T	"B)*A
q$uQ{+QB
;C'''' 	ABA(vvFNFF(ueDNFF
&!Q	B
&!Q	B
q4a>4a+=>AB
OC????r   c                     t         \  } }t        g d      }t        |t        t	        dd            d| |ddf      }|g dk(  sJ t        |t        t	        dd            dddgt        g d      t        g d      gddf      }|g dk(  sJ 	 t        g d	      }t        |t        t	        d
            d| |ddf      }|g dk(  sJ t        |t        t	        d
            dddgt        g d      t        g d      gddf      }|g dk(  sJ t        g d      }t        |t        t	        d            d| |ddf      }|g dk(  sJ y )Nr0   r   r   r   r   r.   r   )r   r   r   r   r   r   )   r   r   rD   rC   r"   r   rG   rH   r   rJ         r   rF   r#   r   rE      r   rI      r            rb   r   )r   r   r   r   r   r   r"   rD   r   r   rC   rE   r#   rG   rI   r`   rF   rH   ra   r_   rJ   r]   r^   r\   rb   rc   )*r   r   r   r   r   r   r#   rG   r"   rD   rF   rH   rC   rE   rJ   r]   rI   r`   r^   r\   ra   r_   rc      rb                  !   #       "   %   '   $   &   r   r   (   )   rr   rD   )*r   r   r   r   r   r   r"   rD   r   r   rC   rE   r#   rG   rI   r`   rF   rH   ra   r_   rJ   r]   rb   re   r^   r\   rh   ri   rc   rd   rl   rm   rf   rg   rp   rq   rj   rk   rn   ro   rr   rs   )r   r   r	   r3   r4   basergensrr7   r8   s       r   test_riemann_invariantsrw     sj   LE5 	M"A
q$uQ{+Qq!0D
EC-
q$uQ{+Q!Q+m:TVaboVp9qstvw0x
yC- 	YZA
q$uRy/1ueQ.B
CCWWWW q$uRy/11vM8RT_`mTn7oqrtu.v
wCWWWW  J  	KA
q$uRy/1ueR.C
DC  H  H  H  Hr   c            	         t        d       t        \  } }t        g d      }t        |t	        t        d            d| |ddf      }|g dk(  sJ t        g d      }t        |t	        t        d            d| |d	df      }|g d
k(  sJ y )Nztakes too much time)2rJ   ,   rG   r   r   r]   r\   rH   rq   r   rc   rd   +   rp   r_   rE   r"   ri   rs   ra   r   rD   rC   rh   r`   r   rf   rF   rn   *   rj   r   r#   rg   rb   re   ro   r   rm   /   rl   r   r^   rr   rk   .   -   rI   0   1   r   r   rC   )2r   r   r   r   r   r   r"   rD   r   r   rC   rE   r#   rG   rI   r`   rF   rH   ra   r_   rJ   r]   rb   re   r^   r\   rh   ri   rc   rd   rl   rm   rf   rg   rp   rq   rj   rk   rr   r{   rn   ro   ry   r}   rs   rz   r~   r|   r   r   )Rr   r   r   r   r   r"   rD   rC   rE   rI   r`   ra   r]   r_   rb   re   r   r^   rh   ri   rl   rm   rp   rq   rr   r{   ry   r}   rF   r   2   4   rH   r   6   8   rJ   rj   rs   :   r#   r\   <   >   rf   rk   ?   @   r   r~   B   D   rc   rn   r|   9   rG   rg   E   F   rd   ro   5   H   r   ;   I   J   7   =   C   L   rz   A   K   N   3   G   M   O   P   Q   r   ra   )Rr   r   r   r   r   r"   rD   rC   r   rE   rI   r`   r   ra   r_   rb   r   re   rh   ri   r#   rH   rl   rm   rG   rp   r\   rq   rF   rr   r{   ry   rJ   ro   rf   r}   r]   r   rz   r   r^   r~   r   r   rc   r   rj   r   rd   r   r   r   rg   r   r   r   rk   r   r|   r   rn   r   r   r   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r	   r3   r4   rt   s       r   test_riemann_invariants1r     s    	LE5  S  	TA
q$uRy/1ueR.C
DC  Q  Q  Q  Q  V  	WA
q$uRy/1ueR.C
DC  T  T  T  Tr   c            
         t         \  } }t        d      \  }}t        d      \  }}t        dd      \  }}t        g d      }t        |t	        t        dd            d| |ddf      }	|	dk(  sJ t        g d      }t        |t	        t        dd            d| |ddf      }	|	g dk(  sJ t        g d      }t        |t	        t        dd	            d| |ddf      }	|	g d
k(  sJ t        |t	        t        dd	            d| |ddf      }
|	|
k(  sJ t        g d      }t        |t	        t        d            d| |ddf||ddf      }	|	g dk(  sJ t        g d      }t        |t	        t        dd            d| |ddf      }	|	g dk(  sJ t        ||||      \  }}t	        t        dd            }t        g d      }t        ||d||ddf      }	|	g dk(  sJ t        ||||      \  }}t	        t        dd            }t        g d      }t        ||d||ddf      }	|	g dk(  sJ t	        t        dd            t	        t        dd            g}ddg}t        |||||ddf      }	|	g dk(  sJ ddg}t        |||||ddf      }	|	g dk(  sJ y )Nr   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   r   r   r#   r"   )rC   rD   r   r   r"   r   r   r   rF   r   r   r   r#   rG   rE   rH   rE   r   )r   r   r   r   r   r"   rD   rC   r   r#   r   rG   r   rF   rH   rE   )rD   r   r   r   r"   rG   r   r   r   r   r   r#   rC   rF   r   rC   )r   r   r   r"   r   r   r   rD   r   r   r#   rG   rC   rF   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   rD   r   rG   r"   r   r#   r   r   r   r   rC   rF   )r   r   r   r   r   r"   rD   r   r   rG   r   r#   rC   rF   )r   r   r"   r   r   rD   r   r   r#   r   r   rG   rC   rF   )r   r   r"   r   r   rD   r   r   r#   r   r   rG   rF   rC   )r   r   r   r	   r3   r4   r   r
   )ru   rv   r5   r   r;   r   r=   r>   r7   r8   rU   basegensr6   syms                  r   test_riemann_productsr     s   LE5*1-LE5*1-LE5,Q2NFF 	M"A
q$uQqz*Aua/C
DC!8O8 	M"A
q$uQ{+Qq!0D
EC- 	)*A
q$uQqz*Aua/C
DC''''aeAaj!11ueQ6JKD$;; 	;<A
q$uRy/1eAa/@E%PQRSCT
UCHHHH 	56A
q$uQr{+Qq!0D
EC@@@@ %UE66BJD$5A;G%&A
q'1tT1a&8
9C****$ %UE5%@JD$5B< G9:A
q'1tT1a&8
9C@@@@E!QK $uQr{"34Ga&C
q'3tQ(:
;C@@@@ a&C
q'3tQ(:
;C@@@@r   c                     dd l fd} g dg dg dg dg dg dg d	g d
dg dg dg dg dg dg dg dg dd}t              }t        |      }||k7  sJ  | d      }t        |      }||k(  sJ g dg dg dg dg dg dg dg dg dg dd
g dg dg dg d g d!g d"g d#g d$g d%g d&d
}t              }t        |      }||k7  sJ  | d'      }t        |      }||k(  sJ y )(Nr   c                     t        t        |             }j                  |       i }j                         D ]  \  }}|D cg c]  }||   	 c}|||   <     |S c c}w )N)r3   r4   shuffleitems)	sizer7   pg1akvig1randoms	          r   randomize_graphz/test_graph_certificate.<locals>.randomize_graph  sa    tqHHJ 	*DAq'()!1)C!I	*
 *s   A)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   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   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   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   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   rD   )r   r   )r   g2c1c2r   c1ar   r   s         @@r   test_graph_certificater     s!     9yYS\ajox	yB9yYS\ajox	yB	2	B	2	B8O8
!R
 C
C
 C99l|Q]bns  EQ  Vb  gs  
tBl|Q]bns  EQ  Vb  gs  
tB	2	B	2	B8O8
"b
!C
C
 C99r   N) sympy.combinatorics.permutationsr   r   sympy.combinatorics.tensor_canr   r   r   r   r	   r
   sympy.combinatorics.testutilr   r   sympy.testing.pytestr   r   r   r'   r*   r?   rA   rK   rM   rZ   rw   r   r   r   r)   r   r   <module>r      sv    >N N N ,Z	}F$R$ L@@"G@T#HL 	T 	TXAtr   