
    gN                     ,   d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZmZmZmZmZ d d	lmZmZmZmZ d d
lmZmZ ej8                  Z e
dd      Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-y)    )permutations)copy)	unchanged)Integer)Eq)Symbol)S)Permutation
_af_parity_af_rmul	_af_rmulnAppliedPermutationCycle)sstrsreprprettylatex)raiseswarns_deprecated_sympyaTintegerc                      t        t        d        t        g d      t        j                        D  cg c]
  }  |        c} t              k(  sJ  t        t        j                                    t              k(  sJ t         dd            g dk(  sJ t        t        fd       t        t        fd       t              t        t        d            k(  sJ j                         k(  sJ t              k(  sJ t        d	      t        d
      k(  sJ t        t        d
      d	      t        d      k(  sJ t        ddggd	      t        ddgdgd
gg      k(  sJ t        j                  d      t        ddg      t        ddg      fv sJ t        g d      t        dgg dg      }t        h      dk(  sJ t        g d      }t        t        ||fD cg c]  }|j                   c}       j                  }t        ||      j                  |k(  sJ t        ||f      D ].  \  }}}|||f||fk(  rt        |||      j                  |k7  r.J  j                         t        t        d            k(  sJ |j                         g dk(  sJ t        j                        j                  j                  k(  sJ j                   dk(  sJ |j                   dk(  sJ |j"                  dk(  sJ t        |      t        g d      k(  sJ t        |      t        g d      k(  sJ t%        j                  |j                        g dk(  sJ t        t        g dddgg      t        g ddgd
gg            j                  g ddd
ggk(  sJ |j                  g dk(  sJ |j                  g dgk(  sJ |j&                  g ddggk(  sJ j                  g dg dgk(  sJ j)                         }|g dk(  sJ t        j                  |D 	cg c]  }	t        t+        |	        c}	 sJ t        ddg      j)                         dgk(  sJ dz  k(  sJ |dz  t        t        t        |j                                    k(  sJ |dz  |dz   k(  sJ |dz  t        g d      k(  sJ |d
z  |dz  |z  k(  sJ |dz  |dz  |dz  z  k(  sJ t        dd
      }t        ddd
      }t        d
      }
| |d z  k(  sJ || z  |
k(  sJ ||d z  z  || z  k(  sJ  t        ddd
dd!      dd      }|j-                         z   j-                         |j-                         k(  sJ |j-                         z   j.                  |j-                         k(  sJ |j-                         z   j-                         |j-                         k(  sJ t        t        fd"       |j-                         z
  j-                         t        dd!d
dddd      j-                         k(  sJ j-                         |j-                         z
  dk  sJ |j-                         z
  j-                          t        ddd!d      d
d      j-                         k(  sJ |z  t        t        |fD cg c]  }t        |       c}       k(  sJ t        g       z  k(  sJ t        g       z  k(  sJ t        ddgg      z  t        g d#      k(  sJ t        ddgg      z  t        g d$      k(  sJ |z  }|t        g d%      k(  sJ |t        ||       k(  sJ |z  }|t        g d&      k(  sJ |t        |       k(  sJ t        t        fd'       j1                  |      t        ddd
dd!dd      k(  sJ |j1                        t        dddd!dd
d      k(  sJ j1                  |      |j1                         k(  sJ t        t        fd(       t        j3                               dk(  sJ |j3                         h d)k(  sJ j5                         g d*k(  sJ |j5                         g d+k(  sJ t        j6                  j5                               k(  sJ t        j6                  |j5                               j                  |j                  k(  sJ t        t        d,        t        t        t        d-d d                   j9                         d.k(  sJ t        g d/      }|j;                         dk(  sJ |j                  }t        |j<                        |j                  k7  r|j;                         dk(  sJ |j>                  rJ |j@                  sJ t        g d0      j;                         dk(  sJ tC        g d/      dk(  sJ tC        g d0      dk(  sJ t        dg      }|jD                  sJ t        g       jF                  sJ t        g d1      }|dz  jH                  sJ t               jH                  sJ  dz  t        g d2      k(  sJ jK                         d!k(  sJ jM                         dk(  sJ t        d!gdgg d3g      }|jK                         dk(  sJ |jM                         dk(  sJ t        g d4      t        g d5ddgg      }jO                         g d6k(  sJ |jO                         g dk(  sJ |jO                         g k(  sJ jQ                         g d7k(  sJ |jQ                         g d8k(  sJ t        |jQ                               jH                  sJ j9                         dk(  sJ t              t        t        jK                         dz   jK                         d9z               z   }t        |      j9                         dk(  sJ jS                         d k(  sJ |j9                         d:k(  sJ |jS                         d k(  sJ t               j9                         dk(  sJ t               jS                         dk(  sJ jU                         d!k(  sJ |jU                         d;k(  sJ jU                         z  jH                  sJ jW                         d!k(  sJ |jW                         dk(  sJ |jW                         dk(  sJ jY                         ddgdgg d<dggk(  sJ |jY                         dgg d=dd!gdggk(  sJ |jY                         d
gdgdgdggk(  sJ j[                         d>k(  sJ |j[                         d>k(  sJ |j[                         d
k(  sJ j]                  |      |j]                        k(  sJ j_                  |      j_                  |      k(  sJ ja                  |      ja                  |      k(  sJ t        g d      t        g d1      }j]                  |      d!k(  sJ j_                  |      d
k(  sJ ja                  |      d>k(  sJ t        g d?      t        jb                  ddd      }j_                  |      d
k(  sJ t        t        fd@       t        t        fdA       t        t        fdB       t        d      D  cg c]  } t        jd                  d|        }} t        g d      }t        d      D ]  } t        | dz   d      D ]  }||    jg                  ||         t        ||    ||         t        ||   ||          k(  k(  sJ ||    jg                  ||         sZ||    j1                  ||         |k(  sJ ||   j1                  ||          |k(  rJ   t        d
      } t        dd!d
      dd      }|jh                  ddik(  sJ |jh                  ddddCk(  sJ t        t        dD        t        t        dE        y c c} w c c}w c c}	w c c}w c c} w )FNc                      t        dg      S )N   r
        `/var/www/openai/venv/lib/python3.12/site-packages/sympy/combinatorics/tests/test_permutations.py<lambda>z"test_Permutation.<locals>.<lambda>   s    {A3/r   r   r         r   r"   r   r"   r   r#   c                        d      S )Nr   ps   r   r    z"test_Permutation.<locals>.<lambda>   s	    aer   c                        d      S )N   r   r'   s   r   r    z"test_Permutation.<locals>.<lambda>   s	    adr      sizer#   r*   r   r"   r*   r      r#   r   r+   )r   r#   r*   r/   r"   r+   )r   r#   r"   r   r+   r/   r*      )r   r"   r#   r+   r*   r/   i  )r+   r/   r   r"   r*   r#   r   )r/   r*   r#   r   r"   r+   r   )r   r"   r#   )r   r"   r+   )r   r+   r"   )r#   r   r+   r*   r   r/   r"   )r   r"   r   r*   )r#   r/   r+   ))r   r*   r   r   )r   r"   )r#   r+   )r#   r/   r1      )r*   r   r   r/   r#   r"   r+   r&   r/   c                  D     t        t        t        d                  z   S )N
   )r
   listranger'   s   r   r    z"test_Permutation.<locals>.<lambda>`   s    a+d59o">>r   )r"   r*   r   r/   r#   r   r+   )r*   r"   r   r/   r#   r   r+   )r*   r/   r   r+   r   r"   r#   )r+   r#   r/   r"   r   r*   r   c                        t        g       z  S Nr   r'   s   r   r    z"test_Permutation.<locals>.<lambda>r   s    q;r?2r   c                  8     j                  t        g             S r9   )
commutatorr
   r'   s   r   r    z"test_Permutation.<locals>.<lambda>w   s    q||KO<r   >   r   r   r"   r#   r+   r*   r/   )r"   r+   r   r#   r   r   )r#   r   r"   r"   r   r   c                  0    t        j                  ddg      S )Nr   r"   )r
   from_inversion_vectorr   r   r   r    z"test_Permutation.<locals>.<lambda>   s    {@@!QHr   i  iB )r   r+   r   r#   r"   r   r   r+   r#   r"   r#   r"   r   r   )r*   r"   r   r+   r/   r   r#   r   r   r"   r#   r+   r   r*   r"   r   r#   r/   r+   r   r"   r#   r*   r/   )r   r#   r+   )r   r"   r*   )r   r#   r*         r5   )r   r#   r/   )r"   r#   r*      )r   r#   r   r"   r+   c                  8     j                  t        g             S r9   )get_adjacency_distancer
   r'   s   r   r    z"test_Permutation.<locals>.<lambda>   s    q77BHr   c                  8     j                  t        g             S r9   )get_positional_distancer
   r'   s   r   r    z"test_Permutation.<locals>.<lambda>       q88RIr   c                  8     j                  t        g             S r9   )get_precedence_distancer
   r'   s   r   r    z"test_Permutation.<locals>.<lambda>   rJ   r   )r"   r#   r   c                      t        dd      S )Nr#   r,   r   r   r   r   r    z"test_Permutation.<locals>.<lambda>   s    {115r   c                       t        g dd      S )Nr   r"   r   r#   r#   r,   r   r   r   r   r    z"test_Permutation.<locals>.<lambda>   s    {<a@r   )5r   
ValueErrorr
   r7   r-   r6   	TypeErrorr   randomlenr   
array_formrmulr   supportcyclic_formcardinalitycyclesr   full_cyclic_formtranspositionsr   rank_rankr;   atomsinversion_vectorr=   
inversionsparity_cyclic_formis_oddis_evenr   is_Singletonis_Emptyis_Identitymaxminascentsdescents	signatureorderlengthrunsindexrL   rG   rI   josephusunrank_nonlexcommutes_withcycle_structure)iqrwansr   bcttiIpqqps_bigidenjr(   s                     @r   test_Permutationr      s   
:/0L!A-(-QAaD-(DG333T%- !T!W,,,!Q=L(((
9m$
9l#7d58n$$$668q==7a<<A+a.000{1~A.+a.@@@Axa(K!Q!qc8J,KKKKa [!Q%8+q!f:M$NNNN)*AaS,-.A1v;!)*A
iAq	!B	1!,,	!BC
D
O
OC1a=##s***  Aq	*1aq!9Aq	!Aq!}''3... +
 99;$uQx.(((99;,,,,q}}%00ALL@@@==D   ==D   88q==1:%:;;;;1:%:;;;;ALL!,,/   YA/0YaS1244?K	QF   <<0000==/0000"4qc!::::==\95555	A8888D"k%*5DEEE1v--/F8;;;b5A::a4;tE!&&M23333b5QTE>>a4;45555a41a46>>a41a419AqAAq!AAA2B;;aR4199QU7ad??
$+aAq!
$Q
*CL CHHJ...L388:---L CHHJ...
9>?L K1aAq!$D$I$I$KKKK668affh"""L $;K1a$;Aq$A$F$F$HHHHQ3+iAq6)B6a$q'6)BCDDDD[_!!!r?1!!![1a&""k2G&HHHHAx "k2G&HHHH	
QB23333aQB	
QB23333aQB
:23<<?k!Q1aA>>>><<?k!Q1aA>>>><<?q||A....
:<=qwwy>Q779----#5555#5555,,Q-?-?-ABaGGG,,Q-?-?-ABMM<<  
:HItE#r2./0;;=GGGO$A88:??	Aq~~!&&(QXXZ1_<<xx<999'..0A555o&!+++o&!+++QCA>>>r?####L!AqDA;""""B8{#89999557a<<557a<<aS1#/0A557a<<557a<<)*A_q!f-.A99;)###99;)###99;"::<9$$$::<9$$$qzz|$0000<<>Q
q'Dquuw{AEEGcM:;
;Cs&&(A---;;=B<<>R;;=BA2;!!#q(((A2;  "a'''779>>779??	N''''88:??88:??88:??668AY4444668YA4444668aS1#s++++779>>779>>779>>$$Q'1+D+DQ+GGGG##A&!*B*B1*EEEE$$Q'1+D+DQ+GGGGL!AL!A$$Q'1,,,##A&!+++$$Q'1,,,O$AQ1%A##A&!+++
:HI
:IJ
:IJ27(;(Q	"	"1a	((A;|$D1Xq1uaAQ4%%ad+adAaD!T!A$!%557 7 7t!!!A$'tqt,444tqt,444 !  	AAAq!Q"AA&&&A! 2222
:56
:@A[ ), "C: E6 *C^ 	<s"   A@>0AA.AA<AA5AAc                      G d dt                g d      } t        g d      | k(  sJ t        t        fd       ddg | ddg      k(  sJ t        | z        k(  sJ t        | z        t         k(  sJ fd} |        y )	Nc                   2     e Zd Z fdZ fdZ fdZ xZS )7test_Permutation_subclassing.<locals>.CustomPermutationc                     	 t        |   | S # t        $ r Y nw xY w	 |d   }|D cg c]  }| j                  |    c}S c c}w # t        $ r t        d      w xY w)Nr   zunrecognized argument)super__call__rQ   _array_form)selfru   perm_objr   	__class__s       r   r   z@test_Permutation_subclassing.<locals>.CustomPermutation.__call__   sv    w'++ 9Q45=>X((+X>>> 9 7889s'    		A AA A Ac                     t        |t              r!| j                         |j                         k(  S t        |   |      S r9   )
isinstancer
   _hashable_contentr   __eq__)r   otherr   s     r   r   z>test_Permutation_subclassing.<locals>.CustomPermutation.__eq__   s9    %---/53J3J3LLLw~e,,r   c                      t         |          S r9   )r   __hash__)r   r   s    r   r   z@test_Permutation_subclassing.<locals>.CustomPermutation.__hash__   s    7#%%r   )__name__
__module____qualname__r   r   r   __classcell__)r   s   @r   CustomPermutationr      s    
	9	-	& 	&r   r   r   r"   r#   r   c                        ddg      S Nr   r"   r   )rv   s   r   r    z.test_Permutation_subclassing.<locals>.<lambda>  s    aAir   r"   r#   r   c                      t               d   t               d<    t               d<   t                t               d   t               d<   t               d= y )Nr
   __Perm)globalsr   )r   s   r   wrapped_test_Permutationz>test_Permutation_subclassing.<locals>.wrapped_test_Permutation  sE    %i6	(#4	- #*9X#6	- Ihr   )r
   r   rQ   type)r(   r   r   rv   s     @@r   test_Permutation_subclassingr      s    &K &, 	,'AL!A6M6
9'(q6Q1vYA;++++A;+%%%  r   c                      t        j                  ddd      t        g d      k(  sJ t        j                  ddd      j                  sJ y )Nr+   r/   r   )r#   r   r   r"   r*   r+   r*   )r
   rq   rg   r   r   r   test_josephusr     sC    1a(K8J,KKKK1a(4444r   c                  b   t        j                  dd      j                         dk(  sJ t        j                  dd      } | j                         dk(  sJ | j                         }|j                         dk(  sJ t        j                  dd      j                         dk(  sJ t        j                  dd      j                  sJ t        j                  dd      } | j                         dk(  sJ | j
                  g d	k(  sJ | j                         J t        g d
      } t        g dddgg      }t        d      D cg c]"  }t        j                  d|      j
                  $ }}|g dg dg dg dg dgk(  sJ |D cg c]  }t        |      j                          c}t        t        d            k(  sJ t        g d      j                         t        g d      k(  sJ |j                         dk(  sJ | j                         dk(  sJ t        ddg      j                         dk(  sJ t        t        t        d                  }|}g }g }t        d      D ]D  }|j                  |       |j                  |       |j                         }|j                         }F ||cxk(  rJ  J |D ch c]  }t        |       c}|D ch c]  }t        |       c}k(  sJ t        g d      } t        dgdgg dg      }| j                         dk(  sJ |j                         dk(  sJ t        g       j                         dk(  sJ | j                         }	|	dk(  sJ t        j                  dd      | k(  sJ |j                         }
|
dk(  sJ t        j                  dd      t        |j
                        k(  sJ t        d      D cg c]"  }t        j                  d|      j
                  $ }}|g dg dg d g d!g d"g d#g dg d$g d%g dg d&g d'g d(g d)g d*g d+g d	g d,g dg d-g d.g d/g dg dgk(  sJ d}t        |d         }t        d|dz         D ]  }|t        ||         z  } t        j                  ||d d0   D cg c]  }t        |       c} }||k(  sJ g }t        ddg      } t        d      D ]B  }|j                  | j
                         | j!                         } | 1|j                  d         n |ddgddgd gk(  sJ t        g d      j!                         t        g d       k(  sJ |D cg c]  }t        |      j                          c}t        t        d            k(  sJ y c c}w c c}w c c}w c c}w c c}w c c}w c c}w )1Nr*   r5            r   r+      r?   rA   rB   r!   r   r   r#   r"   r   r#   r   r"   )r#   r   r   r"   )r#   r   r"   r   i  i=  r   r#   r/   r.   r@   i  if  i@  r0   )      r   )r#   r"   r   r   )r   r#   r   r"   rO   )r"   r#   r   r   )r"   r   r#   r   )r"   r   r   r#   )r   r#   r"   r   )r   r   r#   r"   )r   r   r"   r#   )r"   r   r#   r   )r"   r#   r   r   )r#   r   r   r"   )r"   r   r   r#   r   r"   r#   r   r$   r#   r   r"   r   )r   r#   r"   r   r&   )r
   
unrank_lexr\   next_lexrg   rT   r7   unrank_trotterjohnsonrank_trotterjohnsonr6   next_trotterjohnsonappendtuplerank_nonlexrr   rmul_with_afnext_nonlex)r(   p1rv   ru   r   parz   ltjprankqrankNhp2oks                  r   test_rankingr     sQ   !!!R(--/2555r3'A668s??	
B779!!"c*//1S888!!"a(4444q"%A668r>><<<'''::<)*A_q!f-.AEJ1XNX	*	*1a	0	;	;XAN|\ <   <=>AbKO//1A>$uQx.PPP|$88:L!" " "   "d***  "d***1v224999DqN#A	A
A	B1X	
		!JJL!!#	 
 >>> aE!Ha r$:r!U1Xr$::::)*AaS1#/0A668t668s??r?&&(A---MMOED==$$Q-222MMOEB;;$$Q+{1<</HHHH=B2YGY	"	"1a	(	3	3YAGlL,lL,lL,lL,lL,@ @ @ @ 	A	QqT	B1ac]AaD!! 		!	!AaeeH#EHqKNH#E	FB8O8	BQFA1X
		!,,MMO9IIdO  1a&1a&$''''|$002k,6OOOO456AbKO'')A6$uRy/IIIw 	O ?" !$: 	H $F 7s*    'V V8VV'V"V' V,c            	         g dg dc} t        |       g dk(  sJ t        | t        t        d                  g dk(  sJ t	        t        |       t                    j                  g dk(  sJ t        g d      } ddt        j                  |       t        g d      k(  sJ t        j                  |       t        g d      k(  sJ t        t        fd       d	}d
}t        |      D cg c]"  }t        j                  ||      j                  $ } }t        t        |            }t        |      D ]&  }t        || |         }t        | d |dz     }||k(  r&J  y c c}w )Nr$   r   r   r+   r   r   r?   c                  0    t        j                         S r9   )r
   rU   )rz   r{   s   r   r    ztest_mul.<locals>.<lambda>s  s    k..q!4r   r/   rE   r   )
r   r   r6   r7   rU   r
   rT   r   rQ   rr   )r   nmru   r   h2rz   r{   s         @@r   test_mulr   h  sJ   DAqAq>\)))Q4a>*l:::AA/::lJJJL!AAAAq!$L(AAAAAq![%>>>>
945	A	A=B1XFX	"	"1a	(	3	3XAFU1XA1XQ!&1q5	"Bww  	Gs   7'E)c                     t        ddg      } | j                  J t        |       | k(  sJ | j                  g dddggk(  sJ | j                  g dk(  sJ t        d      } | j                  J | j                  g dk(  sJ t        dg      t        d      k(  sJ t        dgdgg      t        d	      cxk(  rt        ddgf      k(  sJ  J t        dd
gg      t        g d      k(  sJ t        dgdd
gg      t        g d      k(  sJ t        dgdd
ggd      t        g d      k(  sJ t        dgdd
ggd      t        g d      k(  sJ t        ddgdd
gg      t        ddd
      k(  sJ t        g d      t        g d      k(  sJ t        d      j	                  d      g dk(  sJ t        d      j	                  d      g k(  sJ  t        d      dd
      j	                  d      g dk(  sJ  t        d      dd
      j	                         g dk(  sJ t        t        d        t        t        d        t        t        d        t        t        d        t        dd      t        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*   c                       t        ddgdg      S Nr   r"   r   r   r   r   r   r    ztest_args.<locals>.<lambda>  s    {Aq6A37r   c                       t        ddgdg      S r   r   r   r   r   r    ztest_args.<locals>.<lambda>  s    {QFA;7r   c                      t        g d      S )N)r   r   r   r   r   r   r   r    ztest_args.<locals>.<lambda>  s	    {95r   c                       t        ddgd      S )Nr+   r*   r5   r,   r   r   r   r   r    ztest_args.<locals>.<lambda>  s    {Aq6;r   )r   r   r"   r#   r*   r+   )r
   rb   rW   r   r6   r   rP   r'   s    r   	test_argsr     s   \6*+A>>!!!q>Q==\Aq62222==....L!A>>!!!==L(((s{51111aSz"k.&A "UQCL!" " " " "Ax K	$::::aV}%_)EEEEaV}1-_1MMMM
q!fA"-.@"AB B BAA'(K1a,@@@@r"k)&<<<<q>q!_444q>r"b(((;q>!Q$$R(I555;q>!Q$$&*<<<<
:78
:78
:56
:;<q!,> ????r   c            	      4   t        t                     dk(  sJ t        t        dd            t        dd      k(  sJ t        dd      j                         t        dd      k(  sJ t        t        ddd            g dk(  sJ  t        dd      dd      t        ddd      k(  sJ   t        dd      dd      dd       t        ddd      dd      k(  sJ t	         t        dd      dddd            j
                  sJ t        ddd             t        t        d	        t        dd      j                         g d
k(  sJ t        dd      j                  d      g dk(  sJ t        d      j                  d      ddgk(  sJ t        d      j                  d      g dk(  sJ t	        t        dd      d      t	        g d      k(  sJ t         t        dd      dd            dk(  sJ t        t        dd            dk(  sJ t        t	        t        t        d                        t               k(  sJ t        dd      j                         g d
k(  sJ t        dd      j                  d      g dk(  sJ t               j                  dk(  sJ t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t	        ddgddggd      } t	        t        |             | k(  sJ y )N()r   r"   r#   r   r+   r*   r   c                  2    t               j                         S r9   )r   r6   r   r   r   r    ztest_Cycle.<locals>.<lambda>  s    uw||~r   r   r$   r/   r   r   r"   r#   r+   r*   r,   z
(1 2)(4 5)(1 2)c                      t        d      S )N)r   r"   r   r   r   r   r    ztest_Cycle.<locals>.<lambda>  s    uV}r   c                      t        ddd      S r   r   r   r   r   r    ztest_Cycle.<locals>.<lambda>  s    uQ1~r   c                       t        dd      i z  S r   r   r   r   r   r    ztest_Cycle.<locals>.<lambda>  s    eAqk"nr   c                  &    t        d      t           S Nr+   )r   r   r   r   r   r    ztest_Cycle.<locals>.<lambda>  s    uQx{r   c                      t        ddd      S )Nr"   r#   r   r   r   r   r    ztest_Cycle.<locals>.<lambda>  s    uQAr   )strr   r   r6   r
   rW   r   rP   r7   r-   rQ   r'   s    r   
test_Cycler     s   uw<4qa+++1:??a
***aA<///5A;q!aA...;5A;q!Q"neAq!nQ&::::{uQ{1aA./;;KU1a^K;
:-.A;***A;A,...8==1v%%%8==1111uQ{+L!" " "{uQ{1a !\111uQ{w&&&T%(^,-888A;***A;A,...7<<1
:,-
:-.
9,-
:*+
:./ 	aVaV$1-AuQx A%%%r   c                      t        j                  d       t        d      ddd      k(  sJ t        j                  dd         t        d      dd      dd      k(  sJ y )	NSymPyr+   r   r   r#   c                 "    | j                         S r9   )lowerxs    r   r    z$test_from_sequence.<locals>.<lambda>  s
    AGGIr   )keyr"   )r
   from_sequencer   r   r   test_from_sequencer     sc    $$W-Q1a1HHHH$$W2EFAq!Q"# # #r   c                      t        ddd        j                  d      t        dddd      k(  sJ  j                  d      t        dddd      k(  sJ  j                  d       k(  sJ t        t         fd         t        ddd      dd      dd	        j                  d      t        ddd      k(  sJ t        t         fd
       y )Nr   r   r"   r*   r,   r+   r#   c                  &     j                  d      S )Nr"   resizer'   s   r   r    ztest_resize.<locals>.<lambda>      qxx{r   r/   c                  &     j                  d      S r   r   r'   s   r   r    ztest_resize.<locals>.<lambda>  r   r   )r
   r   r   rP   r'   s   @r   test_resizer     s    Aq!A88A;+aAA666688A;+aAA666688A;!
:*+"Aq!Q"1a(A88A;+aA....
:*+r   c                      t        g d      } t        |       dk(  sJ t        |       dk(  sJ t               }t        |      dk(  sJ t        |      dk(  sJ t        g d      }t        |      dk(  sJ y )Nr   zPermutation(1, 2)r   zPermutation()r   rO   zPermutation(3)(0, 1, 2))r
   reprr   )r   r   p3s      r   test_printing_cyclicr     sw    	Y	B8****r7g	B8&&&r7d??	\	"B80000r   c                  h   t        g d      } t        | d      dk(  sJ t        | d      dk(  sJ t        g d      }t        |d      dk(  sJ t        |d      dk(  sJ t        g d      }t        |d      dk(  sJ t        |d      dk(  sJ t        g d	      }t        |d      d
k(  sJ y )Nr   F)perm_cycliczPermutation([], size=6)r   zPermutation([0, 1, 2])r   zPermutation([0, 2, 1]))r   r   r#   r"   r+   r*   r/   r0   z!Permutation([0, 1, 3, 2], size=8))r
   r   r   )r   r   r   p4s       r   test_printing_non_cyclicr     s    	'	(B'+DDDD&*CCCC	Y	B'+CCCC&*BBBB	Y	B'+CCCC&*BBBB	-	.B'+NNNNr   c                     t        ddd      } 	 dt         _        t               5  t        |       dk(  sJ 	 d d d        t               5  t	        |       dk(  sJ 	 d d d        t               5  t        |       dk(  sJ 	 d d d        t               5  t        |       dk(  sJ 	 d d d        dt         _        t               5  t        |       d	k(  sJ 	 d d d        t               5  t	        |       d	k(  sJ 	 d d d        t               5  t        | d
      dk(  sJ 	 d d d        t               5  t        |       dk(  sJ 	 d d d        d t         _        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   kxY w# d t         _        w xY w)Nr   r   r"   Tz(0 1 2)zPermutation(0, 1, 2)z\left( 0\; 1\; 2\right)FzPermutation([1, 2, 0]))use_unicodez/0 1 2\
\1 2 0/z4\begin{pmatrix} 0 & 1 & 2 \\ 1 & 2 & 0 \end{pmatrix})r
   print_cyclicr   r   r   r   r   r'   s    r   test_deprecated_print_cyclicr    sr   Aq!A(#' #%7i''' &#%85555 &#%!9	))) &#%89999 & $) #%76666 &#%87777 &#%!/3GGGG &#%8GH H H & $( ) &%%%%%%% &%%%%%%% $( s   F5 EF5 E F5 ,E->F5 E9"F5 ?FF5 #F5F5 FF5 -F)?F5 EF5  E*%F5 -E62F5 9F>F5 F
F5 FF5 F&"F5 )F2.F5 5Gc                     t        ddd      } t        ddd      }t        | |      t        j                  u sJ t        ddd      }t        | |      t        j                  u sJ t        dddd      }t        t        | |      sJ t        dddd      }t        t        | |      sJ t               }t        t        |d      sJ t        t        d|      sJ y )Nr   r   r"   r+   r,   )r
   r   r	   truefalser   )r   rz   r{   deru   s         r   test_permutation_equalityr    s    Aq!AAq!Aa8qvvAq!Aa8qwwAq!!$ARAAq!!$ARAARARAr   c                  p    t        dd      } t        dd      }| |k(  sJ t        |       dk(  sJ | |k(  sJ y )Nr   r"   zCycle(1, 2))r   r   )c1c2s     r   test_issue_17661r    s@    	qB	qB8O88}$$$8O8r   c                      t        d      t        ddd        j                  d      dk(  sJ t         j                  d      t              sJ  j                        t               k(  sJ t               j                  d      dk(  sJ t        dd      t        t         fd       t        dd	      t        t         fd
       y )Nr   r   r   r"   Fr   c                  &     j                        S r9   applyr(   r   s   r   r    z(test_permutation_apply.<locals>.<lambda>)      
r   T)negativec                  &     j                        S r9   r  r  s   r   r    z(test_permutation_apply.<locals>.<lambda>+  r  r   )	r   r
   r  r   r   r   subsr   NotImplementedErrorr  s   @@r   test_permutation_applyr     s    sAAq!A771:??aggaj'***771:+Aq1111a#((A.!333sE"A
 23sT"A
 23r   c                      t        d      t        ddd      } t        t        fd       t	        | dd      dk(  sJ t	        | dd      j
                  t        k(  sJ y )	Nr   r   r   r"   c                      t        d       S )Nr   )r   r   s   r   r    z)test_AppliedPermutation.<locals>.<lambda>1  s    1)Q?r   T)evaluateF)r   r
   r   rP   r   r   r  s    @r   test_AppliedPermutationr  .  s`    sAAq!A
:?@aT2a777aU3==  r   N).	itertoolsr   r   sympy.core.exprr   sympy.core.numbersr   sympy.core.relationalr   sympy.core.symbolr   sympy.core.singletonr	    sympy.combinatorics.permutationsr
   r   r   r   r   r   sympy.printingr   r   r   r   sympy.testing.pytestr   r   rU   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r   r   <module>r%     s    "  % & $ $ "L L 5 5 ? 
3RBj+\5
JJZ.@B&@#	,1O(6"4r   