o
    FZŽ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               	      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s;J ‚t t‡ fd	d„ƒ t t‡ fd
d„ƒ tˆ ƒttdƒƒksYJ ‚ˆ  ¡ ˆ ksaJ ‚tˆ ƒˆ ksiJ ‚tddtdƒkstJ ‚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sÄJ ‚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s,J ‚ˆ jdks4J ‚| jdks<J ‚| jdksDJ ‚t| ˆ ƒtg d¢ƒksRJ ‚tˆ | ƒtg d¢ƒks`J ‚tˆ j| jƒg d¢ksnJ ‚ttg d¢ddggƒtg d¢dgdggƒƒjg d¢ddggksJ ‚| 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 ‚ˆ  ¡ }|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s6J ‚tddƒ}tdddƒ}tdƒ}| |d% ksOJ ‚||  |ksYJ ‚||d%  ||  ksgJ ‚tddddd&ƒddƒ}ˆ |  ¡   ¡ | ¡ ksJ ‚ˆ |  ¡  j| ¡ ksJ ‚| ˆ  ¡   ¡ | ¡ ksžJ ‚t t‡ fd'd„ƒ ˆ |  ¡   ¡ tdd&dddddƒ ¡ ks¾J ‚ˆ  ¡ |  ¡  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s0J ‚ˆ | A }|tg d+¢ƒks?J ‚|t| ˆ |  ƒksKJ ‚| ˆ A }	|	tg d,¢ƒksZJ ‚|	tˆ | ˆ  ƒksfJ ‚t t‡ fd-d„ƒ ˆ  | ¡tddddd&ddƒksJ ‚|  ˆ ¡tdddd&dddƒks“J ‚ˆ  | ¡|  ˆ ¡ ks¡J ‚t t‡ fd.d„ƒ t	ˆ  ¡ ƒdksµJ ‚|  ¡ h d/£ksÀJ ‚ˆ  ¡ 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r*|
 ¡ dks,J ‚|
jr2J ‚|
js8J ‚tg d6¢ƒ ¡ dksEJ ‚t g d5¢ƒdksPJ ‚t g d6¢ƒdks[J ‚tdgƒ}
|
j!sfJ ‚tg ƒj"snJ ‚tg d7¢ƒ}|d j#s|J ‚tˆ  ˆ ƒj#s†J ‚ˆ  d" tg d8¢ƒks”J ‚ˆ  $¡ d&ksJ ‚ˆ  %¡ dks¦J ‚td&gdgg d9¢gƒ} |  $¡ dksºJ ‚|  %¡ 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sJ ‚tˆ ƒttˆ  $¡ d ˆ  $¡ d? ƒƒ }t|ƒ ¡ dks9J ‚ˆ  (¡ d%ksBJ ‚|  ¡ d@ksKJ ‚|  (¡ d%ksTJ ‚tˆ ˆ  ƒ ¡ dksaJ ‚tˆ ˆ  ƒ (¡ dksnJ ‚ˆ  )¡ d&kswJ ‚|  )¡ dAks€J ‚ˆ ˆ  )¡  j#sŠJ ‚ˆ  *¡ d&ks“J ‚|  *¡ dksœJ ‚| *¡ dks¥J ‚ˆ  +¡ ddgdgg dB¢dggks¸J ‚|  +¡ 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s4J ‚ˆ  .| ¡dks>J ‚ˆ  /| ¡dDksHJ ‚tg dE¢ƒ‰ t 0d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 ]R}t|d dƒD ]G}||  1|| ¡t|| || ƒt|| || ƒkks¶J ‚||  1|| ¡rÜ||  || ¡|ksÎJ ‚||  || ¡|ksÜJ ‚q–qtdƒ}tdd&dƒddƒ}|j2ddiks÷J ‚|j2d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   úZ/var/www/auris/lib/python3.10/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>   ó    z$test_Permutation.<locals>.<listcomp>r   r   ©r   r   r   r    c                      ó   ˆ dƒS )Néÿÿÿÿr   r   r$   r   r   r      ó    c                      r)   )Né   r   r   r$   r   r   r      r+   é   ©Úsizer    r,   r   ©r   r,   r   é   r    r   r-   )r   r    r,   r1   r   r-   )r   r    r   r   r-   r1   r,   c                 S   s   g | ]}|j ‘qS r   )Ú
array_form©r"   Úwr   r   r   r&   .   s    é   )r   r   r    r-   r,   r1   i°  )r-   r1   r   r   r,   r    r   )r1   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    r1   r-   ))r   r,   ©r   r   )r   r   )r    r-   )r    r1   c                 S   s   g | ]}t t|Ž ƒ‘qS r   )r	   r   )r"   Útir   r   r   r&   K   ó    r6   é   éþÿÿÿ)r,   r   r   r1   r    r   r-   r*   r1   c                      s   ˆ t ttdƒƒƒ S )Né
   )r	   ÚlistÚranger   r$   r   r   r   `   r'   c                 S   ó   g | ]}t |ƒ‘qS r   )r<   r3   r   r   r   r&   f   r'   )r   r,   r   r1   r    r   r-   )r,   r   r   r1   r    r   r-   )r,   r1   r   r-   r   r   r    )r-   r    r1   r   r   r,   r   c                      s   ˆ t g ƒA S ©Nr   r   r$   r   r   r   r   ó    c                      ó   ˆ   tg ƒ¡S r?   )Ú
commutatorr	   r   r$   r   r   r   w   ó    >   r   r   r   r    r-   r,   r1   )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   ‚   rC   iô  iBé )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,   r   r   r    r1   r-   ©r   r   r    r,   r1   )r   r    r-   )r   r   r,   )r   r    r,   é‚   é   r;   )r   r    r1   )r   r    r,   é   )r   r    r   r   r-   c                      rA   r?   )Úget_adjacency_distancer	   r   r$   r   r   r   Ñ   rC   c                      rA   r?   )Úget_positional_distancer	   r   r$   r   r   r   Ò   rC   c                      rA   r?   )Úget_precedence_distancer	   r   r$   r   r   r   Ó   rC   c                 S   s   g | ]}t  d |¡‘qS ©r-   )r	   Úunrank_nonlexr!   r   r   r   r&   Õ   r8   )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   å   ó    )3r   Ú
ValueErrorr	   r=   r/   r<   Ú	TypeErrorr   ÚrandomÚlenr   r2   Úrmulr   ZsupportÚcyclic_formZcardinalityZcyclesr   Zfull_cyclic_formZtranspositionsÚrankZ_rankrB   ZatomsZinversion_vectorrD   Z
inversionsZparityÚ_cyclic_formZis_oddZis_evenr
   Zis_SingletonZis_EmptyÚis_IdentityÚmaxÚminZascentsZdescentsÚ	signatureÚorderÚlengthÚrunsÚindexrO   rM   rN   ÚjosephusZcommutes_withZcycle_structure)ÚqÚrZansr   ÚbÚcÚtÚIZpqZqpÚsÚ_ÚbigZidenr#   Újr   r$   r   Útest_Permutation   s`  $,&
ÿÿ
þ 
..($$$$
ÿ"$
&&&""
ÿ€ûro   c                     sœ   G dd„ dt ƒ‰ ˆ g d¢ƒ} t g d¢ƒ‰| ˆksJ ‚tt‡fdd„ƒ ddg| ddgƒks/J ‚t| ˆ ƒˆ ks9J ‚tˆ|  ƒt ksCJ ‚‡ 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                    sV   zt ƒ j|Ž W S  ty   Y nw z|d }‡ fdd„|D ƒW S  ty*   tdƒ‚w )Nr   c                    s   g | ]}ˆ j | ‘qS r   )Ú_array_form)r"   rn   ©Úselfr   r   r&   ó   s    zTtest_Permutation_subclassing.<locals>.CustomPermutation.__call__.<locals>.<listcomp>zunrecognized argument)ÚsuperÚ__call__rU   )rr   r#   Zperm_obj©Ú	__class__rq   r   rt   ë   s   ÿÿz@test_Permutation_subclassing.<locals>.CustomPermutation.__call__c                    s&   t |tƒr|  ¡ | ¡ kS tƒ  |¡S r?   )Ú
isinstancer	   Z_hashable_contentrs   Ú__eq__)rr   Úotherru   r   r   rx   ÷   s   
z>test_Permutation_subclassing.<locals>.CustomPermutation.__eq__c                    ó
   t ƒ  ¡ S r?   )rs   Ú__hash__rq   ru   r   r   r{   ý   s   
z@test_Permutation_subclassing.<locals>.CustomPermutation.__hash__)Ú__name__Ú
__module__Ú__qualname__rt   rx   r{   Ú__classcell__r   r   ru   r   ÚCustomPermutationê   s    r€   ©r   r   r    r   c                      s   ˆ ddgƒS ©Nr   r   r   r   )re   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)Úglobalsro   r   )r€   r   r   Úwrapped_test_Permutation  s
   
z>test_Permutation_subclassing.<locals>.wrapped_test_Permutation)r	   r   rU   Útype)r%   r„   r   )r€   re   r   Útest_Permutation_subclassingè   s   
r†   c                   C   s6   t  ddd¡t g d¢ƒksJ ‚t  ddd¡jsJ ‚d S )Nr-   r1   r   )r    r   r   r   r,   r-   r,   )r	   rd   r\   r   r   r   r   Útest_josephus  s   r‡   c                  C   sŒ  t  dd¡ ¡ dksJ ‚t  dd¡} |  ¡ dksJ ‚|  ¡ }| ¡ dks&J ‚t  dd¡ ¡ dks2J ‚t  dd¡js;J ‚t  dd¡} |  ¡ dksIJ ‚| jg d	¢ksRJ ‚|  ¡ d u sZJ ‚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s—J ‚t g d¢ƒ ¡ t g d¢ƒks§J ‚| 	¡ dks¯J ‚|  	¡ dks·J ‚t ddgƒ 	¡ dksÃJ ‚t ttdƒƒƒ}|}g }g }tdƒD ]}| 
|¡ | 
|¡ | ¡ }| ¡ }qÕ||  krõd u søJ ‚ J ‚dd„ |D ƒdd„ |D ƒks	J ‚t g d¢ƒ} t dgdgg d¢gƒ}|  ¡ dks#J ‚| ¡ dks,J ‚t g ƒ ¡ dks7J ‚|  ¡ }|dksBJ ‚t  d d¡| ksMJ ‚| ¡ }	|	d!ksXJ ‚t  d d!¡t |jƒksfJ ‚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 ]}| 
| j¡ |  ¡ } | d u r| 
d ¡  nqû|ddgddgd gks#J ‚t g d%¢ƒ ¡ t g d&¢ƒks4J ‚d8d„ |D ƒttd#ƒƒksDJ ‚d S )9Nr,   r;   é   éá   éâ   r   r-   é   rF   rH   rI   c                 S   ó   g | ]	}t  d |¡j‘qS rP   )r	   Zunrank_trotterjohnsonr2   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   ó   g | ]}t |ƒ ¡ ‘qS r   )r	   Úrank_trotterjohnson©r"   Úpar   r   r   r&   -  r8   ië  i=  r   r    r1   c                 S   s   h | ]}t |ƒ’qS r   )Útuple)r"   r   r   r   r   Ú	<setcomp>>  r'   ztest_ranking.<locals>.<setcomp>r0   rG   i¬  if  i@  r5   é)   c                 S   rŒ   rP   ©r	   rQ   r2   r!   r   r   r   r&   L  r   é   r   )r    r   r   r   )r   r    r   r   rR   )r   r    r   r   )r   r   r    r   )r   r   r   r    )r   r    r   r   )r   r   r    r   )r   r   r   r    )r   r   r    r   )r   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   r>   r   r   )r"   Úhr   r   r   r&   X  r'   r*   c                 S   r   r   )r	   Úrank_nonlexr’   r   r   r   r&   e  r8   )r	   Z
unrank_lexrZ   Znext_lexr\   r2   r=   r<   Znext_trotterjohnsonr‘   Úappendrœ   rQ   Zrmul_with_afZnext_nonlex)r%   Úp1re   r   rg   Ú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s$J ‚tt| ƒtˆ ƒƒjg d¢ks4J ‚tg d¢ƒ} d‰ d‰t | ˆ ˆ¡tg d¢ƒksMJ ‚t | ˆ¡tg d¢ƒks[J ‚tt‡ ‡fdd	„ƒ d
‰d}‡fdd„t|ƒD ƒ} ttˆƒƒ}t|ƒD ]}t || | ƒ}t| d |d … Ž }||ks—J ‚q~d S )Nr(   rŽ   r™   r-   rš   r   rF   c                      s   t  ˆ ˆ¡S r?   )r	   rX   r   )rg   rh   r   r   r   s  r@   ztest_mul.<locals>.<lambda>r1   rL   c                    s   g | ]	}t  ˆ |¡j‘qS r   r—   r!   )Únr   r   r&   w  r   ztest_mul.<locals>.<listcomp>r   )	r   r   r<   r=   rX   r	   r2   r   rU   )r   Úmr›   r#   Zh2r   )rg   rh   r¤   r   Útest_mulh  s&     ýr¦   c                  C   s^  t ddgƒ} | jd u sJ ‚t | ƒ| ksJ ‚| jg d¢ddggks"J ‚| jg d¢ks+J ‚t dƒ} | jd u s6J ‚| jg d¢ks?J ‚t dgƒt dƒksJJ ‚t dgdggƒt d	ƒ  krbt ddgfƒkseJ ‚ J ‚t dd
ggƒt g d¢ƒkstJ ‚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s˜J ‚t dgdd
ggd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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s-J ‚d S )Nr   )r-   r,   r-   r,   )r    r   r   r   r,   r-   r   ©r   r   )r§   )r   r   ©r   r   r   rE   r.   r1   )r   r   r-   r    r   r,   r    ©r   r   r   rG   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   –  rS   ztest_args.<locals>.<lambda>c                   S   s   t ddgdgƒS rª   r   r   r   r   r   r   ˜  rS   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,   r;   r.   r   r   r   r   r   r   ›  rS   )r   r   r   r    r,   r-   )r	   r[   rY   rp   r<   r   rT   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s%J ‚ttdddƒƒg d¢ks3J ‚tddƒddƒtdddƒksCJ ‚tddƒddƒddƒtdddƒddƒksYJ ‚ttddƒddddƒƒjsnJ tdddƒƒ‚ttd	d
„ ƒ tddƒ ¡ g d¢ks‚J ‚tddƒ d¡g d¢ksJ ‚tdƒ d¡ddgksJ ‚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sAJ ‚d S )Nú()r   r   r    r   r-   r,   r   c                   S   rz   r?   )r   r<   r   r   r   r   r   ¨  r   ztest_Cycle.<locals>.<lambda>r¨   r(   r1   ©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 r‚   r¯   r   r   r   r   r   ¶  r@   c                   S   s   t ddƒi  S r‚   r¯   r   r   r   r   r   ·  rC   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   r   r<   r	   rY   r   rT   r=   r/   rU   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s$J ‚d S )
NZSymPyr-   r   r   r    c                 S   s   |   ¡ S r?   )Ú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s$J ‚ˆ  d¡ˆ ks-J ‚tt‡ fdd	„ƒ t dddƒddƒdd
ƒ‰ ˆ  d¡t dddƒksOJ ‚tt‡ fdd	„ƒ d S )Nr   r   r   r,   r.   r-   r    c                      ó
   ˆ   d¡S )Nr   ©Úresizer   r$   r   r   r   Ë  r   ztest_resize.<locals>.<lambda>r1   c                      r¹   r°   rº   r   r$   r   r   r   Ï  r   )r	   r»   r   rT   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s!J ‚t|ƒdks)J ‚t g d¢ƒ}t|ƒdks7J ‚d S )Nr¨   zPermutation(1, 2)r®   zPermutation()r¬   rR   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sJ ‚t g d¢ƒ}t|dddks*J ‚t|dddks4J ‚t g d¢ƒ}t|dddksDJ ‚t|dddksNJ ‚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,   r1   r5   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 s w   Y  tƒ  t| ƒdks1J ‚W d   ƒ n1 s;w   Y  tƒ  t| ƒdksLJ ‚W d   ƒ n1 sVw   Y  tƒ  t| ƒdksgJ ‚W d   ƒ n1 sqw   Y  dt _tƒ  t| ƒd	ks…J ‚W d   ƒ n1 sw   Y  tƒ  t| ƒd	ks J ‚W d   ƒ n1 sªw   Y  tƒ  t| dd
dks½J ‚W d   ƒ n1 sÇw   Y  tƒ  t| ƒdksØJ ‚W d   ƒ n1 sâw   Y  W d t _d S W d t _d S d t _w )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ì  sB   ÿÿÿÿÿÿÿ
ÿÿ
ü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 s&J ‚t ddddd}tt| |ƒs6J ‚t ddddd}tt| |ƒsFJ ‚t ƒ }tt|dƒsQJ ‚ttd|ƒsYJ ‚d S )Nr   r   r   r-   r.   )r	   r   r   ÚtrueÚfalser   )r   rg   rh   Ú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sJ ‚| |ksJ ‚d S )Nr   r   zCycle(1, 2))r   r½   )Ú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s)J ‚tˆ ˆƒ ˆd¡dks6J ‚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 r?   ©Úapplyr   ©r%   r¶   r   r   r   )  r   z(test_permutation_apply.<locals>.<lambda>T)Únegativec                      rÊ   r?   rË   r   rÍ   r   r   r   +  r   )	r   r	   rÌ   rw   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s*J ‚d S )
Nr¶   r   r   r   c                      s
   t dˆ ƒS )Nr©   )r   r   rµ   r   r   r   1  r   z)test_AppliedPermutation.<locals>.<lambda>T)ÚevaluateF)r   r	   r   rT   r   rv   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   rX   r   ro   r†   r‡   r£   r¦   r«   r³   r¸   r¼   r¿   rÀ   rÁ   rÆ   rÉ   rÑ   rÓ   r   r   r   r   Ú<module>   s:      V.M! 