o
    FZŽ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 s)J ‚t|ƒd
u s1J ‚t|ƒd
u s9J ‚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   úR/var/www/auris/lib/python3.10/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sFJ ‚|d t| jƒd ksSJ ‚|d |ks[J ‚|d t| jƒd kshJ ‚|d |kspJ ‚|d dksxJ ‚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 ]'}	|| |	 || ƒ|	ks>J ‚t|ƒD ]}
|| |	 ||
 ƒ||
 ksTJ ‚qBq.q(d}t|ƒD ]
}|t|| ƒ9 }q]|  ¡ |kspJ ‚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 ]'}	|| |	 || ƒ|	ksFJ ‚t|ƒD ]}
|| |	 ||
 ƒ||
 ks\J ‚qJq6q0d}t|ƒD ]
}|t|| ƒ9 }qe|  ¡ |ksxJ ‚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 sJ ‚tdƒ}| ¡ \}}t||ƒ}t|||ƒdu s2J ‚tdƒ}| ¡ \}}t||ƒ}t|||ƒdu sKJ ‚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    (		