U
    L?hÝN  ã                   @   s2  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jZe
dddZdd„ Zdd„ Zdd„ Z dd„ Z!dd„ Z"dd„ Z#dd„ Z$dd„ Z%dd„ Z&d d!„ Z'd"d#„ Z(d$d%„ Z)d&d'„ Z*d(d)„ Z+d*d+„ Z,d,d-„ Z-d.S )/é    )Ú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               	      sR  t tdd„ ƒ tddddgƒ‰ ‡ fdd„tˆ jƒD ƒtˆ ƒksBt‚ˆ ttˆ jƒƒƒtˆ ƒks`t‚tˆ ddƒƒddddgks~t‚t t‡ fd	d„ƒ t t‡ fd
d„ƒ tˆ ƒttdƒƒksºt‚ˆ  ¡ ˆ ksÊt‚tˆ ƒˆ ksÚt‚tddtdƒksðt‚ttdƒddtdƒkst‚tddggddtddgdgdggƒks<t‚t 	d¡tddgƒtddgƒfksdt‚tdddddddgƒ‰ tdgddddddggƒ} t
ˆ ˆ hƒdksªt‚tdddddddgƒ}ttdd„ ˆ | |fD ƒŽ ƒj}tˆ | |ƒj|ksöt‚tˆ | |fƒD ]>\}}}|||fˆ | |fkr(qt|||ƒj|kst‚qˆ  ¡ ttdƒƒks^t‚|  ¡ ddddddgks|t‚tˆ jƒjˆ jks”t‚ˆ jdks¤t‚| jdks´t‚| jdksÄt‚t| ˆ ƒtdddddddgƒksêt‚tˆ | ƒtdddddddgƒkst‚tˆ j| jƒdddddddgks6t‚ttdddgddggƒtdddgdgdggƒƒjdddgddggks€t‚| jdddddddgksžt‚| jddddddggks¼t‚| jddddddgdggksÞt‚ˆ jddddgdddggks t‚ˆ  ¡ }|dddddgks t‚tjdd„ |D ƒŽ s:t‚tddgƒ ¡ dgksVt‚ˆ d ˆ ksht‚| d ttt| jƒƒƒksˆt‚| d | d  ks t‚| d tdddddddgƒksÄt‚| d | d |  ksÞt‚| d | d | d  ksüt‚tddƒ}tdddƒ}tdƒ}| |d ks.t‚||  |ksBt‚||d  ||  ks^t‚tdddddƒddƒ}ˆ |  ¡   ¡ | ¡ ks’t‚ˆ |  ¡  j| ¡ ks®t‚| ˆ  ¡   ¡ | ¡ ksÌt‚t t‡ fdd„ƒ ˆ |  ¡   ¡ tdddddddƒ ¡ kst‚ˆ  ¡ |  ¡  dk s&t‚| ˆ  ¡   ¡ tddddƒddƒ ¡ ksTt‚ˆ |  ttdd„ | ˆ fD ƒŽ ƒks|t‚ˆ tg ƒ ˆ ks’t‚tg ƒˆ  ˆ ks¨t‚ˆ tddggƒ tdddddddgƒksÖt‚tddggƒˆ  tdddddddgƒkst‚ˆ | A }|tdddddddgƒks,t‚|t| ˆ |  ƒksDt‚| ˆ A }	|	tdddddddgƒkslt‚|	tˆ | ˆ  ƒks„t‚t t‡ fdd„ƒ ˆ  | ¡tdddddddƒksºt‚|  ˆ ¡tdddddddƒksÞt‚ˆ  | ¡|  ˆ ¡ ksút‚t t‡ fdd„ƒ t
ˆ  ¡ ƒdks"t‚|  ¡ dddddddhksBt‚ˆ  ¡ ddddddgks`t‚|  ¡ ddddddgks~t‚t ˆ  ¡ ¡ˆ ks–t‚t |  ¡ ¡j| jks²t‚t tdd„ ƒ tttd ddƒƒƒ ¡ d!ksât‚tdddddgƒ}
|
 ¡ dk	st‚|
j}t
|
jƒ|
jk	r,|
 ¡ dk	s0t‚|
j	r<t‚|
j 	sHt‚tdddddgƒ ¡ dk	sht‚t!dddddgƒdk	s„t‚t!dddddgƒdk	s t‚tdgƒ}
|
j"	s¶t‚tg ƒj#	sÆt‚tddddgƒ}|d j$	sæt‚tˆ  ˆ ƒj$	sút‚ˆ  d tdddddddgƒk
s t‚ˆ  %¡ dk
s2t‚ˆ  &¡ dk
sDt‚tdgdgdddddggƒ} |  %¡ dk
srt‚|  &¡ dk
s„t‚tdddddddgƒ‰ tdddddgddggƒ} ˆ  '¡ dddgk
sÌt‚|  '¡ dddgk
sät‚| '¡ g k
söt‚ˆ  (¡ dddgkst‚|  (¡ dddgks&t‚t| (¡ ƒj$s:t‚ˆ  ¡ dksLt‚tˆ ƒttˆ  %¡ d ˆ  %¡ d" ƒƒ }t|ƒ ¡ dksˆt‚ˆ  )¡ dksšt‚|  ¡ d#ks¬t‚|  )¡ dks¾t‚tˆ ˆ  ƒ ¡ dksØt‚tˆ ˆ  ƒ )¡ dksòt‚ˆ  *¡ dkst‚|  *¡ d$kst‚ˆ ˆ  *¡  j$s*t‚ˆ  +¡ dks<t‚|  +¡ dksNt‚| +¡ dks`t‚ˆ  ,¡ ddgdgdddgdggksˆt‚|  ,¡ dgdddgddgdggks°t‚| ,¡ dgdgdgdggksÒt‚ˆ  -¡ d%ksät‚|  -¡ d%ksöt‚| -¡ dkst‚ˆ  .| ¡|  .ˆ ¡ks"t‚ˆ  /| ¡ˆ  /| ¡ks<t‚ˆ  0| ¡ˆ  0| ¡ksVt‚tddddgƒ‰ tddddgƒ} ˆ  .| ¡dksŠt‚ˆ  /| ¡dksžt‚ˆ  0| ¡d%ks²t‚tdddddgƒ‰ t 1ddd¡} ˆ  /| ¡dksæt‚t t‡ fd&d„ƒ t t‡ fd'd„ƒ t t‡ fd(d„ƒ d)d„ tdƒD ƒ}tddddgƒ}tdƒD ]¤}t|d dƒD ]Ž}||  2|| ¡t|| || ƒt|| || ƒkks˜t‚||  2|| ¡rX||  || ¡|ksÈt‚||  || ¡|ksXt‚qXqFtdƒ}tdddƒddƒ}|j3ddikst‚|j3dddd*œks2t‚t td+d„ ƒ t td,d„ ƒ d S )-Nc                   S   s
   t dgƒS )Né   ©r	   © r   r   ú]/var/www/html/venv/lib/python3.8/site-packages/sympy/combinatorics/tests/test_permutations.pyÚ<lambda>   ó    z"test_Permutation.<locals>.<lambda>r   r   é   é   c                    s   g | ]}ˆ |ƒ‘qS r   r   ©Ú.0Úi©Úpr   r   Ú
<listcomp>   s     z$test_Permutation.<locals>.<listcomp>c                      s   ˆ dƒS )Néÿÿÿÿr   r   r#   r   r   r      r   c                      s   ˆ dƒS )Né   r   r   r#   r   r   r      r   é   ©Úsizer'   é   c                 S   s   g | ]
}|j ‘qS r   )Ú
array_form©r!   Úwr   r   r   r%   .   s     é   i°  )r   r'   )r   r   )r   r   )r   r(   )r   r+   c                 S   s   g | ]}t t|Ž ƒ‘qS r   )r	   r   )r!   Útir   r   r   r%   K   s     é   éþÿÿÿr&   c                      s   ˆ t ttdƒƒƒ S )Né
   )r	   ÚlistÚranger   r#   r   r   r   `   r   c                 S   s   g | ]}t |ƒ‘qS r   )r4   r-   r   r   r   r%   f   s     c                      s   ˆ t g ƒA S ©Nr   r   r#   r   r   r   r   r   c                      s   ˆ   tg ƒ¡S r6   )Ú
commutatorr	   r   r#   r   r   r   w   r   c                   S   s   t  ddg¡S )Nr   r   )r	   Úfrom_inversion_vectorr   r   r   r   r   ‚   r   iô  iBé é‚   é   r3   é   c                      s   ˆ   tg ƒ¡S r6   )Úget_adjacency_distancer	   r   r#   r   r   r   Ñ   r   c                      s   ˆ   tg ƒ¡S r6   )Úget_positional_distancer	   r   r#   r   r   r   Ò   r   c                      s   ˆ   tg ƒ¡S r6   )Úget_precedence_distancer	   r   r#   r   r   r   Ó   r   c                 S   s   g | ]}t  d |¡‘qS ©r(   )r	   Úunrank_nonlexr    r   r   r   r%   Õ   s     )r   r   r   c                   S   s   t dddS )Nr   r)   r   r   r   r   r   r   ä   r   c                   S   s   t ddddgddS )Nr   r   r   r   r)   r   r   r   r   r   r   å   r   )4r   Ú
ValueErrorr	   r5   r*   r4   ÚAssertionErrorÚ	TypeErrorr   ÚrandomÚlenr   r,   Úrmulr   ZsupportÚcyclic_formZcardinalityZcyclesr   Zfull_cyclic_formZtranspositionsÚrankZ_rankr7   ZatomsZinversion_vectorr8   Z
inversionsZparityÚ_cyclic_formZis_oddZis_evenr
   Zis_SingletonZis_EmptyÚis_IdentityÚmaxÚminZascentsZdescentsÚ	signatureÚorderÚlengthÚrunsÚindexr>   r<   r=   ÚjosephusZcommutes_withZcycle_structure)ÚqÚrZansr   ÚbÚcÚtÚIZpqZqpÚsÚ_ÚbigZidenr"   Újr   r#   r   Útest_Permutation   sZ   $.(&&ÿ
ÿþ
"" $
..(..  $$ ÿ
"$ 
&&((""ÿ
$r]   c                     s¤   G dd„ dt ƒ‰ ˆ ddddgƒ} t ddddgƒ‰| ˆks<t‚tt‡fdd„ƒ ddg| ddgƒksft‚t| ˆ ƒˆ kszt‚tˆ|  ƒt ksŽt‚‡ fd	d
„}|ƒ  d S )Nc                       s4   e Zd Z‡ fdd„Z‡ fdd„Z‡ fdd„Z‡  ZS )z7test_Permutation_subclassing.<locals>.CustomPermutationc                    sb   zt ƒ j|Ž W S  tk
r"   Y nX z|d }‡ fdd„|D ƒW S  tk
r\   tdƒ‚Y nX d S )Nr   c                    s   g | ]}ˆ j | ‘qS r   )Ú_array_form)r!   r\   ©Úselfr   r   r%   ó   s     zTtest_Permutation_subclassing.<locals>.CustomPermutation.__call__.<locals>.<listcomp>zunrecognized argument)ÚsuperÚ__call__rC   )r`   r"   Zperm_obj©Ú	__class__r_   r   rb   ë   s    z@test_Permutation_subclassing.<locals>.CustomPermutation.__call__c                    s*   t |tƒr|  ¡ | ¡ kS tƒ  |¡S d S r6   )Ú
isinstancer	   Z_hashable_contentra   Ú__eq__)r`   Úotherrc   r   r   rf   ÷   s    
z>test_Permutation_subclassing.<locals>.CustomPermutation.__eq__c                    s
   t ƒ  ¡ S r6   )ra   Ú__hash__r_   rc   r   r   rh   ý   s    z@test_Permutation_subclassing.<locals>.CustomPermutation.__hash__)Ú__name__Ú
__module__Ú__qualname__rb   rf   rh   Ú__classcell__r   r   rc   r   ÚCustomPermutationê   s   rm   r   r   r   r   c                      s   ˆ ddgƒS ©Nr   r   r   r   )rS   r   r   r     r   z.test_Permutation_subclassing.<locals>.<lambda>c                      s<   t ƒ d t ƒ d< ˆ t ƒ d< tƒ  t ƒ d t ƒ d< t ƒ d= d S )Nr	   Z__Perm)Úglobalsr]   r   )rm   r   r   Úwrapped_test_Permutation  s
    
z>test_Permutation_subclassing.<locals>.wrapped_test_Permutation)r	   rB   r   rC   Útype)r$   rp   r   )rm   rS   r   Útest_Permutation_subclassingè   s    rr   c                   C   s>   t  ddd¡t ddddddgƒks&t‚t  ddd¡js:t‚d S )Nr(   r+   r   r   r   r   r'   )r	   rR   rB   rJ   r   r   r   r   Útest_josephus  s    &rs   c                  C   sF  t  dd¡ ¡ dkst‚t  dd¡} |  ¡ dks4t‚|  ¡ }| ¡ dksLt‚t  dd¡ ¡ dksdt‚t  dd¡jsvt‚t  dd¡} |  ¡ dks’t‚| jd	d
ddgks¨t‚|  ¡ d ks¸t‚t ddd
dd	ddgƒ} t dd
d	ddgddggƒ}dd„ tdƒD ƒ}|ddd
d	gddd	d
gdd	dd
gd	ddd
gd	dd
dggks:t‚dd„ |D ƒttdƒƒksZt‚t ddd
d	gƒ 	¡ t ddd	d
gƒks„t‚| 
¡ dks–t‚|  
¡ dks¨t‚t ddgƒ 
¡ dksÂt‚t ttd	ƒƒƒ}|}g }g }tdƒD ]*}| |¡ | |¡ | ¡ }| 	¡ }qæ||  kr*d ks0n t‚dd„ |D ƒdd„ |D ƒksRt‚t d
dddd	ddgƒ} t dgdgddd
d	dggƒ}|  ¡ dks–t‚| ¡ dks¨t‚t g ƒ ¡ dks¾t‚|  ¡ }|dksÔt‚t  dd¡| ksêt‚| ¡ }	|	dks t‚t  dd¡t |jƒkst‚dd„ tdƒD ƒ}|dd
d	dgd	d
ddgdd	dd
gdd
dd	gd
d	ddgd
dd	dgd	ddd
gd
ddd	gdd	d
dgd	dd
dgddd	d
gddd
d	gd
dd	dgd
d	ddgd	ddd
gd
ddd	gd	d
ddgdd
d	dgdd	dd
gdd
dd	gd	dd
dgdd	d
dgddd	d
gddd
d	ggks,t‚d}
t |d ƒ}td|
d ƒD ]}|t || ƒ }qJt jdd„ ||
d d… D ƒŽ }||ksŽt‚g }t ddgƒ} td	ƒD ]4}| | j¡ |  ¡ } | d kr¦| d ¡  qÜq¦|ddgddgd gksøt‚t d	d
ddgƒ ¡ t dd	dd
gƒks"t‚dd„ |D ƒttdƒƒksBt‚d S )Nr'   r3   é   éá   éâ   r   r(   é   r   r   r   r+   c                 S   s   g | ]}t  d |¡j‘qS r?   )r	   Zunrank_trotterjohnsonr,   r    r   r   r   r%   *  s     z test_ranking.<locals>.<listcomp>c                 S   s   g | ]}t |ƒ ¡ ‘qS r   )r	   Úrank_trotterjohnson©r!   Úpar   r   r   r%   -  s     ië  i=  c                 S   s   h | ]}t |ƒ’qS r   )Útuple)r!   r   r   r   r   Ú	<setcomp>>  s     ztest_ranking.<locals>.<setcomp>i¬  if  i@  r/   é)   c                 S   s   g | ]}t  d |¡j‘qS r?   ©r	   r@   r,   r    r   r   r   r%   L  s     é   c                 S   s   g | ]}t |ƒ‘qS r   r   )r!   Úhr   r   r   r%   X  s     r&   c                 S   s   g | ]}t |ƒ ¡ ‘qS r   )r	   Úrank_nonlexry   r   r   r   r%   e  s     )r	   Z
unrank_lexrH   rB   Znext_lexrJ   r,   r5   r4   Znext_trotterjohnsonrx   Úappendr   r@   Zrmul_with_afZnext_nonlex)r$   Úp1rS   r   rU   ÚlZtjr"   ZprankZqrankÚNÚp2Úokr   r   r   Útest_ranking  s¸    &ÿ
ÿ ÿ


"
 
 
 
 

 
 
 
 

 
 
 
 

 
 
 
 

 
 
 
û


*rˆ   c                     sX  ddddgddddg } ‰ t | ˆ ƒddddgks4t‚t| ˆ ttdƒƒƒddddgksXt‚tt| ƒtˆ ƒƒjddddgks|t‚tddddgƒ} d‰ d‰t | ˆ ˆ¡tddddgƒks¶t‚t | ˆ¡tddddgƒksÖt‚tt	‡ ‡fdd	„ƒ d
‰d}‡fdd„t|ƒD ƒ} ttˆƒƒ}t|ƒD ]6}t || | ƒ}t| d |d … Ž }||kst‚qd S )Nr   r   r   r   r(   )r   r   r   r   )r   r   r   r   c                      s   t  ˆ ˆ¡S r6   )r	   rF   r   )rU   rV   r   r   r   s  r   ztest_mul.<locals>.<lambda>r+   r;   c                    s   g | ]}t  ˆ |¡j‘qS r   r~   r    )Únr   r   r%   w  s     ztest_mul.<locals>.<listcomp>)
r   rB   r   r4   r5   rF   r	   r,   r   rC   )r   Úmr€   r"   Zh2r   )rU   rV   r‰   r   Útest_mulh  s$    $$" r‹   c                  C   s¬  t ddgƒ} | jd kst‚t | ƒ| ks*t‚| jddddgddggksHt‚| jddddddgksbt‚t dƒ} | jd ksxt‚| jddddgksŽt‚t dgƒt d	ƒks¤t‚t dgdggƒt d
ƒ  krÒt d	dgfƒksØn t‚t ddggƒt dddgƒksøt‚t dgddggƒt dddddgƒks"t‚t dgddggddt dddddgƒksPt‚t dgddggddt ddddddgƒks€t‚t ddgddggƒt dddƒks¦t‚t g ddt dddgƒksÆt‚t dƒ d¡dddddgksèt‚t dƒ d¡g ks t‚t dƒddƒ d¡dddgks$t‚t dƒddƒ ¡ ddddddgksLt‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t ddƒt ddddddgƒks¨t‚d S )N)r   r   r   r   )r(   r'   r   r   r   r   r(   r'   ©r   )rŒ   )r   r)   r+   r&   c                   S   s   t ddgdgƒS ©Nr   r   r   r   r   r   r   r   r   –  r   ztest_args.<locals>.<lambda>c                   S   s   t ddgdgƒS r   r   r   r   r   r   r   ˜  r   c                   S   s   t dddgƒS )Nr   r   r   r   r   r   r   r   š  r   c                   S   s   t ddgddS )Nr(   r'   r3   r)   r   r   r   r   r   r   ›  r   )r	   rI   rB   rG   r^   r4   r   rA   r#   r   r   r   Ú	test_args  s@    ÿ *. ÿÿ
& "$(rŽ   c                  C   s¶  t tƒ ƒdkst‚ttddƒƒtddƒks.t‚tddƒ ¡ tddƒksJt‚ttdddƒƒddddgksjt‚tddƒddƒtdddƒksŠt‚tddƒddƒddƒtdddƒddƒks¶t‚ttddƒddddƒƒjsàttdddƒƒ‚ttdd	„ ƒ tddƒ ¡ dddgkst‚tddƒ d¡ddddgks.t‚tdƒ d¡ddgksJt‚tdƒ d
¡ddddddgksnt‚ttddƒddtddddgƒks–t‚t tddƒddƒƒdks´t‚t tddƒƒdksÌt‚tttt	dƒƒƒƒtƒ ksìt‚tddƒ ¡ dddgks
t‚tddƒ d¡ddddgks,t‚tƒ j
dks>t‚ttdd	„ ƒ ttdd	„ ƒ ttdd	„ ƒ ttdd	„ ƒ ttdd	„ ƒ tddgddggdd} tt| ƒƒ| ks²t‚d S )Nú()r   r   r   r   r(   r'   c                   S   s
   t ƒ  ¡ S r6   )r   r4   r   r   r   r   r   ¨  r   ztest_Cycle.<locals>.<lambda>r+   r)   z
(1 2)(4 5)ú(1 2)c                   S   s   t dƒS )N)r   r   ©r   r   r   r   r   r   µ  r   c                   S   s   t dddƒS rn   r‘   r   r   r   r   r   ¶  r   c                   S   s   t ddƒi  S rn   r‘   r   r   r   r   r   ·  r   c                   S   s   t dƒt S ©Nr(   )r   r   r   r   r   r   r   ¸  r   c                   S   s   t dddƒS )Nr   éüÿÿÿr   r‘   r   r   r   r   r   ¹  r   )Ústrr   rB   r   r4   r	   rG   r   rA   r5   r*   rC   r#   r   r   r   Ú
test_Cycle   s8      ,*"$ÿ
 "r•   c                   C   sL   t  d¡t dƒdddƒkst‚t jddd„ dt dƒdd	ƒddƒksHt‚d S )
NZSymPyr(   r   r   r   c                 S   s   |   ¡ S r6   )Úlower©Úxr   r   r   r   Â  r   z$test_from_sequence.<locals>.<lambda>)Úkeyr   )r	   Zfrom_sequencerB   r   r   r   r   Útest_from_sequenceÀ  s    ÿrš   c                      s´   t dddƒ‰ ˆ  d¡t dddddks*t‚ˆ  d¡t dddddksHt‚ˆ  d¡ˆ ksZt‚tt‡ fdd	„ƒ t dddƒddƒdd
ƒ‰ ˆ  d¡t dddƒksžt‚tt‡ fdd	„ƒ d S )Nr   r   r   r'   r)   r(   r   c                      s
   ˆ   d¡S )Nr   ©Úresizer   r#   r   r   r   Ë  r   ztest_resize.<locals>.<lambda>r+   c                      s
   ˆ   d¡S r’   r›   r   r#   r   r   r   Ï  r   )r	   rœ   rB   r   rA   r   r   r#   r   Útest_resizeÆ  s    r   c                  C   sx   t dddgƒ} t| ƒdkst‚t| ƒdks.t‚t ƒ }t|ƒdksDt‚t|ƒdksTt‚t ddddgƒ}t|ƒd	kstt‚d S )
Nr   r   r   zPermutation(1, 2)r   zPermutation()r   r   zPermutation(3)(0, 1, 2))r	   ÚreprrB   r”   )rƒ   r†   Úp3r   r   r   Útest_printing_cyclicÒ  s    r    c               	   C   sØ   t ddddddgƒ} t| ddd	ks(t‚t| ddd	ks<t‚t dddgƒ}t|ddd
ks^t‚t|ddd
ksrt‚t dddgƒ}t|dddks”t‚t|dddks¨t‚t ddddddddgƒ}t|dddksÔt‚d S )Nr   r   r   r   r(   r'   F)Zperm_cycliczPermutation([], size=6)zPermutation([0, 1, 2])zPermutation([0, 2, 1])r+   r/   z!Permutation([0, 1, 3, 2], size=8))r	   r   rB   r   )rƒ   r†   rŸ   Zp4r   r   r   Útest_printing_non_cyclicÝ  s    r¡   c               	   C   sD  t dddƒ} z(dt _tƒ  t| ƒdks.t‚W 5 Q R X tƒ  t| ƒdksPt‚W 5 Q R X tƒ  t| ƒdksrt‚W 5 Q R X tƒ  t| ƒdks”t‚W 5 Q R X dt _tƒ  t| ƒd	ks¼t‚W 5 Q R X tƒ  t| ƒd	ksÞt‚W 5 Q R X tƒ  t| dd
dkst‚W 5 Q R X tƒ  t| ƒdks*t‚W 5 Q R X W 5 d t _X d S )Nr   r   r   Tz(0 1 2)zPermutation(0, 1, 2)z\left( 0\; 1\; 2\right)FzPermutation([1, 2, 0]))Zuse_unicodez/0 1 2\
\1 2 0/z4\begin{pmatrix} 0 & 1 & 2 \\ 1 & 2 & 0 \end{pmatrix})r	   Zprint_cyclicr   r   rB   r   r   r   r#   r   r   r   Útest_deprecated_print_cyclicì  s.     ÿr¢   c                  C   s¶   t dddƒ} t dddƒ}t| |ƒtjks,t‚t dddƒ}t| |ƒtjksLt‚t ddddd}tt| |ƒslt‚t ddddd}tt| |ƒsŒt‚t ƒ }tt|dƒs¢t‚ttd|ƒs²t‚d S )Nr   r   r   r(   r)   )r	   r   r   ÚtruerB   Úfalser   )r   rU   rV   ÚdÚer"   r   r   r   Útest_permutation_equality  s    r§   c                  C   s@   t ddƒ} t ddƒ}| |ks t‚t| ƒdks0t‚| |ks<t‚d S )Nr   r   zCycle(1, 2))r   rB   rž   )Úc1Úc2r   r   r   Útest_issue_17661  s
    

rª   c                      s°   t dƒ‰tdddƒ‰ ˆ  d¡dks&t‚tˆ  d¡tƒs:t‚ˆ  ˆ¡tˆ ˆƒksRt‚tˆ ˆƒ ˆd¡dkslt‚t ddd‰tt	‡ ‡fdd„ƒ t dd	d
‰tt	‡ ‡fdd„ƒ d S )Nr˜   r   r   r   Fr   c                      s
   ˆ   ˆ¡S r6   ©Úapplyr   ©r$   r˜   r   r   r   )  r   z(test_permutation_apply.<locals>.<lambda>T)Únegativec                      s
   ˆ   ˆ¡S r6   r«   r   r­   r   r   r   +  r   )
r   r	   r¬   rB   re   r   r   Úsubsr   ÚNotImplementedErrorr   r   r­   r   Útest_permutation_apply   s    r±   c                     sX   t dƒ‰ tdddƒ} tt‡ fdd„ƒ t| ddddks<t‚t| dd	djtksTt‚d S )
Nr˜   r   r   r   c                      s
   t dˆ ƒS )N)r   r   r   )r   r   r—   r   r   r   1  r   z)test_AppliedPermutation.<locals>.<lambda>T)ÚevaluateF)r   r	   r   rA   r   rB   rd   r#   r   r—   r   Útest_AppliedPermutation.  s    ÿr³   N).Ú	itertoolsr   r   Zsympy.core.exprr   Zsympy.core.numbersr   Zsympy.core.relationalr   Zsympy.core.symbolr   Zsympy.core.singletonr   Z sympy.combinatorics.permutationsr	   r
   r   r   r   r   Zsympy.printingr   r   r   r   Zsympy.testing.pytestr   r   rF   r   r]   rr   rs   rˆ   r‹   rŽ   r•   rš   r   r    r¡   r¢   r§   rª   r±   r³   r   r   r   r   Ú<module>   s8     V.M! 