U
    9%e                     @   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   s   t dddddddgdgd	gd
gg} t ddddddgddd	d
gg}t dddddgdddd	d
gg}t| dksttt|dkstt|dkstd S )Nr                           	   TF)r   r   AssertionError)Zperm1Zperm2Zperm3 r   b/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/combinatorics/tests/test_util.pytest_check_cycles_alt_sym   s    $  r   c                  C   s  t d} |   tdddddg}tdddddg}tdddddg}tdddddg}t|| j| j| j}t|| j| j| j}t|| j| j| j}|d |kst|d t| jd kst|d |kst|d t| jd kst|d |kst|d dks
td S )Nr   r   r   r   r   r   )	r   schreier_simsr   r   baseZbasic_orbitsZbasic_transversalsr   len)DmemberZnot_member1Znot_member2identityZres1Zres2Zres3r   r   r   
test_strip   s    r"   c               	   C   s   dddg} t ddddgt ddddgt ddddgt ddddgg}t| ||t ddddgt ddddgt ddddggt ddddgt ddddgggkstd S )Nr   r   r   r   )r   r   r   )r   Zgensr   r   r   test_distribute_gens_by_base&   s    
 
r#   c                  C   sp   t dddgt dddgt dddggt dddggg} t| t dddgt dddgt dddggksltd S )Nr   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|tt|D ]$}
|| |	 ||
 ||
 kstqq\qPd}t|D ]}|t|| 9 }q| 	 |kstd S )Nr   r   r   )
r   r   r   strong_gensr   r
   r   ranger   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@t|d }|d }t|}t|D ]\}|| D ]N}	|| |	 || |	kstt|D ]$}
|| |	 ||
 ||
 kstqqlq`d}t|D ]}|t|| 9 }q| 	 |kstd S )Nr   r   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   s2   dddg} d}t | |dddddddgks.td S )	Nr   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ks2ttd}| \}}t||}t|||dksdttd}| \}}t||}t|||dkstd S )N
   Tr   r   )r   Zschreier_sims_incrementalr   r   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   (		