a
    kº”h“  ã                   @   s˜   d dl mZmZmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZ d dlm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 )é    )ÚSymmetricGroupÚDihedralGroupÚAlternatingGroup)ÚPermutation)Ú_check_cycles_alt_symÚ_stripÚ_distribute_gens_by_baseÚ_strong_gens_from_distrÚ_orbits_transversals_from_bsgsÚ_handle_precomputed_bsgsÚ_base_orderingÚ_remove_gens)Ú_verify_bsgsc                  C   sv   t g d¢dgdgdggƒ} t g d¢g d¢gƒ}t g d¢g d¢gƒ}t| ƒd	u sRJ ‚t|ƒd
u sbJ ‚t|ƒd
u srJ ‚d S )N)r   é   é   é   é   é   é   é   é   é	   )r   r   r   r   r   r   )r   r   r   r   ©r   r   r   r   r   )r   r   r   r   r   TF)r   r   )Zperm1Zperm2Zperm3© r   úQ/var/www/auris/lib/python3.9/site-packages/sympy/combinatorics/tests/test_util.pyÚtest_check_cycles_alt_sym   s    r   c                  C   sô   t dƒ} |  ¡  tg d¢ƒ}tg d¢ƒ}tg d¢ƒ}tg d¢ƒ}t|| j| j| jƒ}t|| j| j| jƒ}t|| j| j| jƒ}|d |ksŒJ ‚|d t| jƒd ks¦J ‚|d |ks¶J ‚|d t| jƒd ksÐJ ‚|d |ksàJ ‚|d 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   )r   Úschreier_simsr   r   ÚbaseZbasic_orbitsZbasic_transversalsÚlen)ÚDÚmemberZnot_member1Znot_member2ÚidentityZres1Zres2Zres3r   r   r   Ú
test_strip   s    r"   c                  C   s‚   g d¢} t g d¢ƒt g d¢ƒt g d¢ƒt g d¢ƒg}t| |ƒ|t g d¢ƒt g d¢ƒt g d¢ƒgt g d¢ƒt g d¢ƒggks~J ‚d S )N)r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   )r   Zgensr   r   r   Útest_distribute_gens_by_base&   s    ÿ



þ

ÿür#   c                  C   sb   t g d¢ƒt g d¢ƒt g d¢ƒgt g d¢ƒgg} t| ƒt g d¢ƒt g d¢ƒt g d¢ƒgks^J ‚d S )N)r   r   r   )r   r   r   )r   r   r   )r   r	   )Ústrong_gens_distrr   r   r   Útest_strong_gens_from_distr2   s    
ÿÿ


þÿr%   c                  C   sä   t dƒ} |  ¡  | j}| j}t||ƒ}t||ƒ}|d }|d }t|ƒ}t|ƒD ]\}|| D ]N}	|| |	 || ƒ|	ks|J ‚t|ƒD ]$}
|| |	 ||
 ƒ||
 ks„J ‚q„q\qPd}t|ƒD ]}|t|| ƒ9 }qº|  ¡ |ksàJ ‚d S )Nr   r   r   )	r   r   r   Ústrong_gensr   r
   r   ÚrangeÚorder)ÚSr   r&   r$   ÚresultÚorbitsÚtransversalsÚbase_lenÚiÚelÚjr(   r   r   r   Ú"test_orbits_transversals_from_bsgs;   s$    

&r1   c                  C   sô   t dƒ} |  ¡  | j}| j}t||ƒ}t||ƒ}||d ks@J ‚|d }|d }t|ƒ}t|ƒD ]\}|| D ]N}	|| |	 || ƒ|	ksŒJ ‚t|ƒD ]$}
|| |	 ||
 ƒ||
 ks”J ‚q”qlq`d}t|ƒD ]}|t|| ƒ9 }qÊ|  ¡ |ksðJ ‚d S )Nr   r   r   r   )	r   r   r   r&   r   r   r   r'   r(   )ÚAr   r&   r*   r$   r,   r+   r-   r.   r/   r0   r(   r   r   r   Útest_handle_precomputed_bsgsP   s&    

&r3   c                  C   s&   g d¢} d}t | |ƒg d¢ks"J ‚d S )N)r   r   r   r   )r   r   r   r   r   r   r   )r   )r   Zdegreer   r   r   Útest_base_orderingf   s    r4   c                  C   sš   t dƒ} |  ¡ \}}t||ƒ}t| ||ƒdu s2J ‚tdƒ}| ¡ \}}t||ƒ}t|||ƒdu sdJ ‚tdƒ}| ¡ \}}t||ƒ}t|||ƒdu s–J ‚d S )Né
   Tr   r   )r   Zschreier_sims_incrementalr   r   r   r   )r)   r   r&   Znew_gensr2   r   r   r   r   Útest_remove_gensl   s    


r6   N)Z sympy.combinatorics.named_groupsr   r   r   Z sympy.combinatorics.permutationsr   Zsympy.combinatorics.utilr   r   r   r	   r
   r   r   r   Zsympy.combinatorics.testutilr   r   r"   r#   r%   r1   r3   r4   r6   r   r   r   r   Ú<module>   s   (		