U
    ZÊ¹jÝ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   új/var/www/html/bwave/python/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! 