a
    {þdµN  ã                   @   s&  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)Ú	unchanged)ÚInteger)ÚEq)ÚSymbol)ÚS)ÚPermutationÚ
_af_parityÚ_af_rmulÚ	_af_rmulnÚAppliedPermutationÚCycle)ÚsstrÚsreprÚprettyÚlatex)ÚraisesÚwarns_deprecated_sympyÚaT©Úintegerc               	      s&  t tdd„ ƒ tg d¢ƒ‰ ‡ fdd„tˆ jƒD ƒtˆ ƒks>J ‚ˆ ttˆ jƒƒƒtˆ ƒks\J ‚tˆ ddƒƒg d¢ksvJ ‚t t‡ fd	d„ƒ t t‡ fd
d„ƒ tˆ ƒttdƒƒks²J ‚tddtdƒksÈJ ‚ttdƒddtdƒksäJ ‚tddggddtddgdgdggƒksJ ‚t 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snJ ‚tg d¢ƒ}tt	dd„ ˆ | |fD ƒŽ ƒj
}tˆ | |ƒj
|ks°J ‚tˆ | |fƒD ]>\}}}|||fˆ | |fkrâq¾t|||ƒj
|ks¾J ‚q¾ˆ  ¡ ttdƒƒksJ ‚|  ¡ g d¢ks.J ‚tˆ jƒj
ˆ j
ksFJ ‚ˆ jdksVJ ‚| jdksfJ ‚| jdksvJ ‚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s8J ‚| jg d¢dggksRJ ‚ˆ jg d¢g d¢gksnJ ‚ˆ  ¡ }|g d¢ksˆJ ‚tjd d„ |D ƒŽ s¢J ‚tddgƒ ¡ d!gks¾J ‚ˆ d" ˆ ksÐJ ‚| d ttt| jƒƒƒksðJ ‚| d# | d  ksJ ‚| d tg d$¢ƒks"J ‚| d | d |  ks<J ‚| d | d | d  ksZJ ‚tddƒ}tdddƒ}tdƒ}| |d% ksŒJ ‚||  |ks J ‚||d%  ||  ks¼J ‚tddddd&ƒddƒ}ˆ |  ¡   ¡ | ¡ ksðJ ‚ˆ |  ¡  j| ¡ ksJ ‚| ˆ  ¡   ¡ | ¡ ks*J ‚t t‡ fd'd„ƒ ˆ |  ¡   ¡ tdd&dddddƒ ¡ ksjJ ‚ˆ  ¡ |  ¡  dk s„J ‚| ˆ  ¡   ¡ tddd&dƒddƒ ¡ ks²J ‚ˆ |  tt	d(d„ | ˆ fD ƒŽ ƒksÚJ ‚ˆ tg ƒ ˆ ksðJ ‚tg ƒˆ  ˆ ksJ ‚ˆ tddggƒ tg d)¢ƒks*J ‚tddggƒˆ  tg d*¢ƒksNJ ‚ˆ | A }|tg d+¢ƒkslJ ‚|t| ˆ |  ƒks„J ‚| ˆ A }	|	tg d,¢ƒks¢J ‚|	tˆ | ˆ  ƒksºJ ‚t t‡ fd-d„ƒ ˆ  | ¡tddddd&ddƒksðJ ‚|  ˆ ¡tdddd&dddƒksJ ‚ˆ  | ¡|  ˆ ¡ ks0J ‚t t‡ fd.d„ƒ tˆ  ¡ ƒdksXJ ‚|  ¡ h d/£ksnJ ‚ˆ  ¡ g d0¢ks„J ‚|  ¡ g d1¢ksšJ ‚t ˆ  ¡ ¡ˆ ks²J ‚t |  ¡ ¡j
| j
ksÎJ ‚t td2d„ ƒ tttd3d%d%ƒƒƒ ¡ d4ksþJ ‚tg d5¢ƒ}
|
 ¡ dksJ ‚|
j}t|
jƒ|
jkrB|
 ¡ dksFJ ‚|
jrRJ ‚|
js^J ‚tg d6¢ƒ ¡ dksxJ ‚tg d5¢ƒdksŽJ ‚tg d6¢ƒdks¤J ‚tdgƒ}
|
j sºJ ‚tg ƒj!sÊJ ‚tg d7¢ƒ}|d j"sæJ ‚tˆ  ˆ ƒj"súJ ‚ˆ  d" tg d8¢ƒk	sJ ‚|d j" 	s(J ‚ˆ  #¡ d&k	s:J ‚ˆ  $¡ dk	sLJ ‚td&gdgg d9¢gƒ} |  #¡ dk	stJ ‚|  $¡ dk	s†J ‚tg d:¢ƒ‰ tg d;¢ddggƒ} ˆ  %¡ g d<¢k	s¼J ‚|  %¡ g d¢k	sÒJ ‚| %¡ g k	säJ ‚ˆ  &¡ g d=¢k	súJ ‚|  &¡ g d>¢k
sJ ‚t| &¡ ƒj"
s$J ‚ˆ  ¡ dk
s6J ‚tˆ ƒttˆ  #¡ d ˆ  #¡ d? ƒƒ }t|ƒ ¡ dk
srJ ‚ˆ  '¡ d%k
s„J ‚|  ¡ d@k
s–J ‚|  '¡ d%k
s¨J ‚tˆ ˆ  ƒ ¡ dk
sÂJ ‚tˆ ˆ  ƒ '¡ dk
sÜJ ‚ˆ  (¡ d&k
sîJ ‚|  (¡ dAks J ‚ˆ ˆ  (¡  j"sJ ‚ˆ  )¡ d&ks&J ‚|  )¡ dks8J ‚| )¡ dksJJ ‚ˆ  *¡ ddgdgg dB¢dggkspJ ‚|  *¡ dgg dC¢dd&gdggks–J ‚| *¡ dgdgdgdggks¸J ‚ˆ  +¡ dDksÊJ ‚|  +¡ dDksÜJ ‚| +¡ dksîJ ‚ˆ  ,| ¡|  ,ˆ ¡ksJ ‚ˆ  -| ¡ˆ  -| ¡ks"J ‚ˆ  .| ¡ˆ  .| ¡ks<J ‚tg d¢ƒ‰ tg d7¢ƒ} ˆ  ,| ¡d&kshJ ‚ˆ  -| ¡dks|J ‚ˆ  .| ¡dDksJ ‚tg dE¢ƒ‰ t /ddd¡} ˆ  -| ¡dks¾J ‚t t‡ fdFd„ƒ t t‡ fdGd„ƒ t t‡ fdHd„ƒ dId„ tdƒD ƒ}tg d¢ƒ}tdƒD ]¤}t|d dƒD ]Ž}||  0|| ¡t|| || ƒt|| || ƒkkslJ ‚||  0|| ¡r,||  || ¡|ksœJ ‚||  || ¡|ks,J ‚q,qtdƒ}tdd&dƒddƒ}|j1ddiksîJ ‚|j1ddddJœksJ ‚t tdKd„ ƒ t tdLd„ ƒ d S )MNc                   S   s
   t dgƒS )Né   ©r   © r   r   út/var/www/html/stable-diffusion-webui/venv/lib/python3.9/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>   r   z$test_Permutation.<locals>.<listcomp>r   r   ©r   r   r   r   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   r(   r   ©r   r(   r   é   r   r   r)   )r   r   r(   r-   r   r)   )r   r   r   r   r)   r-   r(   c                 S   s   g | ]
}|j ‘qS r   )Ú
array_form©r!   Úwr   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-   c                 S   s   g | ]}t t|Ž ƒ‘qS r   )r   r   )r!   Ztir   r   r   r%   H   r   r2   é   éþÿÿÿ)r(   r   r   r-   r   r   r)   r'   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   )r6   r/   r   r   r   r%   c   r   )r   r(   r   r-   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                      s   ˆ t g ƒA S ©Nr   r   r#   r   r   r   o   r   c                      s   ˆ   tg ƒ¡S r8   )Ú
commutatorr   r   r#   r   r   r   t   r   >   r   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¡S )Nr   r   )r   Úfrom_inversion_vectorr   r   r   r   r      r   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                      s   ˆ   tg ƒ¡S r8   )Úget_adjacency_distancer   r   r#   r   r   r   Ï   r   c                      s   ˆ   tg ƒ¡S r8   )Úget_positional_distancer   r   r#   r   r   r   Ð   r   c                      s   ˆ   tg ƒ¡S r8   )Ú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%   Ó   r   )r   r   r   c                   S   s   t dddS )Nr   r*   r   r   r   r   r   r   â   r   c                   S   s   t g d¢ddS )N©r   r   r   r   r   r*   r   r   r   r   r   r   ã   r   )2r   Ú
ValueErrorr   r7   r+   r6   Ú	TypeErrorÚrandomÚlenr   r.   Úrmulr   ZsupportÚcyclic_formZcardinalityZcyclesr
   Zfull_cyclic_formZtranspositionsÚrankZ_rankr9   ZatomsZinversion_vectorr:   Z
inversionsZparityÚ_cyclic_formZis_oddZis_evenr	   Zis_SingletonZis_EmptyÚis_IdentityÚmaxÚminZascentsZdescentsÚ	signatureÚorderÚlengthÚrunsÚindexrE   rC   rD   ÚjosephusZcommutes_withZcycle_structure)ÚqÚrZansr   ÚbÚcÚtÚIZpqZqpÚsÚ_ÚbigZidenr"   Újr   r#   r   Útest_Permutation   sX   $.(ÿ
ÿþ
 
..($$$$ÿ
"$
&&&""ÿ
$rd   c                     sœ   G dd„ dt ƒ‰ ˆ g d¢ƒ} t g d¢ƒ‰| ˆks4J ‚tt‡fdd„ƒ ddg| ddgƒks^J ‚t| ˆ ƒˆ ksrJ ‚tˆ|  ƒt ks†J ‚‡ 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                    s^   zt ƒ j|Ž W S  ty    Y n0 z|d }‡ fdd„|D ƒW S  tyX   tdƒ‚Y n0 d S )Nr   c                    s   g | ]}ˆ j | ‘qS r   )Ú_array_form)r!   rc   ©Úselfr   r   r%   ñ   r   zTtest_Permutation_subclassing.<locals>.CustomPermutation.__call__.<locals>.<listcomp>zunrecognized argument)ÚsuperÚ__call__rJ   )rg   r"   Zperm_obj©Ú	__class__rf   r   ri   é   s    z@test_Permutation_subclassing.<locals>.CustomPermutation.__call__c                    s*   t |tƒr|  ¡ | ¡ kS tƒ  |¡S d S r8   )Ú
isinstancer   Z_hashable_contentrh   Ú__eq__)rg   Úotherrj   r   r   rm   õ   s    
z>test_Permutation_subclassing.<locals>.CustomPermutation.__eq__c                    s
   t ƒ  ¡ S r8   )rh   Ú__hash__rf   rj   r   r   ro   û   s    z@test_Permutation_subclassing.<locals>.CustomPermutation.__hash__)Ú__name__Ú
__module__Ú__qualname__ri   rm   ro   Ú__classcell__r   r   rj   r   ÚCustomPermutationè   s   rt   ©r   r   r   r   c                      s   ˆ ddgƒS ©Nr   r   r   r   )rZ   r   r   r     r   z.test_Permutation_subclassing.<locals>.<lambda>r   r   r   c                      s<   t ƒ d t ƒ d< ˆ t ƒ d< tƒ  t ƒ d t ƒ d< t ƒ d= d S )Nr   Z__Perm)Úglobalsrd   r   )rt   r   r   Úwrapped_test_Permutation	  s
    
z>test_Permutation_subclassing.<locals>.wrapped_test_Permutation)r   r   rJ   Útype)r$   rx   r   )rt   rZ   r   Útest_Permutation_subclassingæ   s    rz   c                   C   s6   t  ddd¡t g d¢ƒksJ ‚t  ddd¡js2J ‚d S )Nr)   r-   r   )r   r   r   r   r(   r)   r(   )r   rY   rQ   r   r   r   r   Útest_josephus  s    r{   c                  C   sž  t  dd¡ ¡ dksJ ‚t  dd¡} |  ¡ dks4J ‚|  ¡ }| ¡ dksLJ ‚t  dd¡ ¡ dksdJ ‚t  dd¡jsvJ ‚t  dd¡} |  ¡ dks’J ‚| jg d	¢ks¤J ‚|  ¡ d u s´J ‚t g d
¢ƒ} t g d¢ddggƒ}dd„ tdƒD ƒ}|g d¢g d¢g d¢g d¢g d¢gksJ ‚dd„ |D ƒttdƒƒks2J ‚t g d¢ƒ ¡ t g d¢ƒksTJ ‚| 	¡ dksfJ ‚|  	¡ dksxJ ‚t ddgƒ 	¡ dks’J ‚t ttdƒƒƒ}|}g }g }tdƒD ]*}| 
|¡ | 
|¡ | ¡ }| ¡ }q¶||  krúd u s n J ‚dd„ |D ƒdd„ |D ƒks"J ‚t g d¢ƒ} t dgdgg d¢gƒ}|  ¡ dksVJ ‚| ¡ dkshJ ‚t g ƒ ¡ dks~J ‚|  ¡ }|dks”J ‚t  d d¡| ksªJ ‚| ¡ }	|	d!ksÀJ ‚t  d d!¡t |jƒksÜJ ‚d"d„ td#ƒ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 d0¢g d1¢g d	¢g d2¢g d¢g d3¢g d4¢g d5¢g d¢g d¢gksŒJ ‚d}
t |d ƒ}td|
d ƒD ]}|t || ƒ }qªt jd6d„ ||
d d7… D ƒŽ }||ksîJ ‚g }t ddgƒ} tdƒD ]4}| 
| j¡ |  ¡ } | d u r| 
d ¡  q<q|ddgddgd gksXJ ‚t g d%¢ƒ ¡ t g d&¢ƒkszJ ‚d8d„ |D ƒttd#ƒƒksšJ ‚d S )9Nr(   r5   é   éá   éâ   r   r)   é   r<   r>   r?   c                 S   s   g | ]}t  d |¡j‘qS rF   )r   Zunrank_trotterjohnsonr.   r    r   r   r   r%   (  r   z test_ranking.<locals>.<listcomp>r   ©r   r   r   r   ©r   r   r   r   )r   r   r   r   )r   r   r   r   c                 S   s   g | ]}t |ƒ ¡ ‘qS r   )r   Úrank_trotterjohnson©r!   Úpar   r   r   r%   +  r   ië  i=  r   r   r-   c                 S   s   h | ]}t |ƒ’qS r   )Útuple)r!   r   r   r   r   Ú	<setcomp><  r   ztest_ranking.<locals>.<setcomp>r,   r=   i¬  if  i@  r1   é)   c                 S   s   g | ]}t  d |¡j‘qS rF   ©r   rG   r.   r    r   r   r   r%   J  r   é   ru   )r   r   r   r   )r   r   r   r   rH   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   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                 S   s   g | ]}t |ƒ‘qS r   r   )r!   Úhr   r   r   r%   V  r   r'   c                 S   s   g | ]}t |ƒ ¡ ‘qS r   )r   Úrank_nonlexrƒ   r   r   r   r%   c  r   )r   Z
unrank_lexrO   Znext_lexrQ   r.   r7   r6   Znext_trotterjohnsonr‚   Úappendr   rG   Zrmul_with_afZnext_nonlex)r$   Úp1rZ   r   r\   ÚlZtjr"   ZprankZqrankÚNÚp2Úokr   r   r   Útest_ranking  sŽ    ÿ 
ÿ


"û


"r”   c                     s4  g d¢g d¢ } ‰ t | ˆ ƒg d¢ks(J ‚t| ˆ ttdƒƒƒg d¢ksHJ ‚tt| ƒtˆ ƒƒjg d¢kshJ ‚tg d¢ƒ} d‰ d‰t | ˆ ˆ¡tg d¢ƒksšJ ‚t | ˆ¡tg d¢ƒks¶J ‚tt‡ ‡fdd	„ƒ d
‰d}‡fdd„t|ƒD ƒ} ttˆƒƒ}t|ƒD ]2}t || | ƒ}t| d |d … Ž }||ksüJ ‚qüd S )Nr&   r€   rŠ   r)   r‹   ru   r<   c                      s   t  ˆ ˆ¡S r8   )r   rM   r   )r\   r]   r   r   r   q  r   ztest_mul.<locals>.<lambda>r-   rB   c                    s   g | ]}t  ˆ |¡j‘qS r   rˆ   r    )Únr   r   r%   u  r   ztest_mul.<locals>.<listcomp>r   )	r
   r   r6   r7   rM   r   r.   r   rJ   )r   ÚmrŒ   r"   Úh2r   )r\   r]   r•   r   Útest_mulf  s$      r˜   c                  C   sl  t ddgƒ} | jd u sJ ‚t | ƒ| ks*J ‚| jg d¢ddggksDJ ‚| jg d¢ksVJ ‚t dƒ} | jd u slJ ‚| jg d¢ks~J ‚t dgƒt dƒks”J ‚t dgdggƒt d	ƒ  krÂt ddgfƒksÈn 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dt g d¢ƒks2J ‚t dgdd
ggddt g d¢ƒksZJ ‚t ddgdd
ggƒt ddd
ƒks€J ‚t g ddt g d¢ƒksžJ ‚t dƒ d¡g d¢ksºJ ‚t dƒ d¡g ksÒJ ‚t dƒdd
ƒ d¡g d¢ksôJ ‚t dƒdd
ƒ ¡ g d¢ksJ ‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ t ddƒt g d¢ƒkshJ ‚d S )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                   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 g d¢ƒS )N)r   r   r   r   r   r   r   r   r   ˜  r   c                   S   s   t ddgddS )Nr)   r(   r5   r*   r   r   r   r   r   r   ™  r   )r   r   r   r   r(   r)   )r   rP   rN   re   r6   r   rI   r#   r   r   r   Ú	test_args}  s>    ÿ$(ÿ
ÿ
&" r   c                  C   sš  t tƒ ƒdksJ ‚ttddƒƒtddƒks.J ‚tddƒ ¡ tddƒksJJ ‚ttdddƒƒg d¢ksfJ ‚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	d
„ ƒ tddƒ ¡ g d¢ksJ ‚tddƒ d¡g d¢ks$J ‚tdƒ d¡ddgks@J ‚tdƒ d¡g d¢ks\J ‚ttd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ƒ ¡ g d¢ksòJ ‚tddƒ d¡g d¢ksJ ‚tƒ j	dks"J ‚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–J ‚d S )Nú()r   r   r   r   r)   r(   r   c                   S   s
   t ƒ  ¡ S r8   )r   r6   r   r   r   r   r   ¦  r   ztest_Cycle.<locals>.<lambda>rš   r&   r-   ©r   r   r   r   r)   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 rv   r¡   r   r   r   r   r   ´  r   c                   S   s   t ddƒi  S rv   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   Úcopyr6   r   rN   r   rI   r7   r+   rJ   r#   r   r   r   Ú
test_Cyclež  s8     ,*
ÿ
 r¦   c                   C   sL   t  d¡t dƒdddƒksJ ‚t jddd„ dt dƒdd	ƒddƒksHJ ‚d S )
NZSymPyr)   r   r   r   c                 S   s   |   ¡ S r8   )Úlower©Úxr   r   r   r   À  r   z$test_from_sequence.<locals>.<lambda>)Úkeyr   )r   Zfrom_sequencer   r   r   r   Útest_from_sequence¾  s    ÿr«   c                      s´   t dddƒ‰ ˆ  d¡t dddddks*J ‚ˆ  d¡t dddddksHJ ‚ˆ  d¡ˆ ksZJ ‚tt‡ fdd	„ƒ t dddƒddƒdd
ƒ‰ ˆ  d¡t dddƒksžJ ‚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­   r   rI   r   r   r#   r   Útest_resizeÄ  s    r®   c                  C   sr   t g d¢ƒ} t| ƒdksJ ‚t| ƒdks,J ‚t ƒ }t|ƒdksBJ ‚t|ƒdksRJ ‚t g d¢ƒ}t|ƒdksnJ ‚d S )Nrš   zPermutation(1, 2)r    zPermutation()rž   rH   zPermutation(3)(0, 1, 2))r   Úreprr¤   )r   r’   Úp3r   r   r   Útest_printing_cyclicÐ  s    r±   c                  C   sÀ   t g d¢ƒ} t| dddks J ‚t| dddks4J ‚t g d¢ƒ}t|dddksTJ ‚t|dddkshJ ‚t g d¢ƒ}t|dddksˆJ ‚t|dddksœJ ‚t g d	¢ƒ}t|ddd
ks¼J ‚d S )NrŸ   F)Zperm_cycliczPermutation([], size=6)r›   zPermutation([0, 1, 2])rš   zPermutation([0, 2, 1]))r   r   r   r   r)   r(   r-   r1   z!Permutation([0, 1, 3, 2], size=8))r   r   r   )r   r’   r°   Zp4r   r   r   Útest_printing_non_cyclicÛ  s    r²   c                  C   sö  t dddƒ} zÚdt _tƒ   t| ƒdks.J ‚W d   ƒ n1 sB0    Y  tƒ   t| ƒdksdJ ‚W d   ƒ n1 sx0    Y  tƒ   t| ƒdksšJ ‚W d   ƒ n1 s®0    Y  tƒ   t| ƒdksÐJ ‚W d   ƒ n1 sä0    Y  dt _tƒ " t| ƒd	ksJ ‚W d   ƒ n1 s$0    Y  tƒ " t| ƒd	ksHJ ‚W d   ƒ n1 s^0    Y  tƒ & t| dd
dks†J ‚W d   ƒ n1 sœ0    Y  tƒ " t| ƒdksÀJ ‚W d   ƒ n1 sÖ0    Y  W d t _nd t _0 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   r   r   r   r#   r   r   r   Útest_deprecated_print_cyclicê  s.    ....226ÿ,r³   c                  C   s¶   t dddƒ} t dddƒ}t| |ƒtju s,J ‚t dddƒ}t| |ƒtju sLJ ‚t ddddd}tt| |ƒslJ ‚t ddddd}tt| |ƒsŒJ ‚t ƒ }tt|dƒs¢J ‚ttd|ƒs²J ‚d S )Nr   r   r   r)   r*   )r   r   r   ÚtrueÚfalser   )r   r\   r]   ÚdÚer"   r   r   r   Útest_permutation_equality  s    r¸   c                  C   s@   t ddƒ} t ddƒ}| |ks J ‚t| ƒdks0J ‚| |ks<J ‚d S )Nr   r   zCycle(1, 2))r   r¯   )Zc1Úc2r   r   r   Útest_issue_17661  s
    

rº   c                      s°   t dƒ‰tdddƒ‰ ˆ  d¡dks&J ‚tˆ  d¡tƒs:J ‚ˆ  ˆ¡tˆ ˆƒksRJ ‚tˆ ˆƒ ˆd¡dkslJ ‚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 r8   ©Úapplyr   ©r$   r©   r   r   r   '  r   z(test_permutation_apply.<locals>.<lambda>T)Únegativec                      s
   ˆ   ˆ¡S r8   r»   r   r½   r   r   r   )  r   )	r   r   r¼   rl   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<J ‚t| dd	djtksTJ ‚d S )
Nr©   r   r   r   c                      s
   t dˆ ƒS )Nr›   )r   r   r¨   r   r   r   /  r   z)test_AppliedPermutation.<locals>.<lambda>T)ÚevaluateF)r   r   r   rI   r   rk   r#   r   r¨   r   Útest_AppliedPermutation,  s    ÿrÃ   N)-Ú	itertoolsr   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   rM   r   rd   rz   r{   r”   r˜   r   r¦   r«   r®   r±   r²   r³   r¸   rº   rÁ   rÃ   r   r   r   r   Ú<module>   s6     U.M! 