U
    ZÊ¹j“  ã                   @   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s„t‚t|ƒdks”t‚d S )Nr   é   é   é   é   é   é   é   é   é	   TF)r   r   ÚAssertionError)Zperm1Zperm2Zperm3© r   úb/var/www/html/bwave/python/venv/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s¤t‚|d t| jƒd ks¾t‚|d |ksÎt‚|d t| jƒd ksèt‚|d |ksøt‚|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s¤t‚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s„t‚q„q\qPd}t|ƒD ]}|t|| ƒ9 }qº|  	¡ |ksàt‚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sŒt‚t|ƒD ]$}
|| |	 ||
 ƒ||
 ks”t‚q”qlq`d}t|ƒD ]}|t|| ƒ9 }qÊ|  	¡ |ksðt‚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s–t‚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   (		