o
    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   )perm1perm2perm3 r   Y/var/www/html/ai/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    (		