o
    jg“  ã                   @   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   )Úperm1Úperm2Úperm3© r   ú[/var/www/html/zoom/venv/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   ÚbaseÚbasic_orbitsÚbasic_transversalsÚlen)ÚDÚmemberÚnot_member1Únot_member2ÚidentityÚres1Úres2Ú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    Ú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   
ÿÿ


þÿr0   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    r1   r/   ÚresultÚorbitsÚtransversalsÚbase_lenÚiÚelÚjr3   r   r   r   Ú"test_orbits_transversals_from_bsgs;   s(   

"ÿþr<   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    r1   r   r   r#   r2   r3   )ÚAr    r1   r5   r/   r7   r6   r8   r9   r:   r;   r3   r   r   r   Útest_handle_precomputed_bsgsP   s*   

"ÿþr>   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    Údegreer   r   r   Útest_base_orderingf   s   r@   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   Úschreier_sims_incrementalr   r   r   r   )r4   r    r1   Únew_gensr=   r$   r   r   r   Útest_remove_gensl   s   


rD   N)Ú sympy.combinatorics.named_groupsr   r   r   Ú sympy.combinatorics.permutationsr   Úsympy.combinatorics.utilr   r   r   r	   r
   r   r   r   Úsympy.combinatorics.testutilr   r   r,   r.   r0   r<   r>   r@   rD   r   r   r   r   Ú<module>   s    (		