U
    Š±Ëh‹  ã                   @   s`   d dl 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S )é    )ÚSymmetricGroupÚCyclicGroupÚDihedralGroupÚAlternatingGroupÚAbelianGroupÚ
RubikGroup)Úraisesc                  C   s¦   t dƒ} t|  ¡ ƒ}| jd jdks(t‚t|ƒdks8t‚| jdksFt‚| jdksTt‚| j	dksbt‚|  
¡ dksrt‚t dƒ}| ¡ dksŠt‚t dƒ}| ¡ dks¢t‚d S )Né   r   éx   FTé   é   )r   ÚlistÚgenerateÚ
generatorsÚsizeÚAssertionErrorÚlenÚis_solvableÚ
is_abelianÚis_nilpotentÚis_transitiveÚorder©ÚGÚelementsÚHÚL© r   úO/tmp/pip-unpacked-wheel-6t8vlncq/sympy/combinatorics/tests/test_named_groups.pyÚtest_SymmetricGroup   s    r   c                  C   s–   t dƒ} t|  ¡ ƒ}t|ƒdks$t‚|  ¡  ¡ dks8t‚| jdksFt‚| jdksTt‚| j	dksbt‚t dƒ}| ¡ dkszt‚t dƒ}| ¡ dks’t‚d S )Né
   r   Tr   )
r   r   r   r   r   Zderived_subgroupr   r   r   r   r   r   r   r   Útest_CyclicGroup   s    r!   c                  C   s®   t dƒ} t|  ¡ ƒ}t|ƒdks$t‚|  ¡ dks4t‚| jdksBt‚| jdksPt‚| jdks^t‚t dƒ}| 	¡ dksvt‚t dƒ}| 	¡ dksŽt‚|jdksœt‚|jdksªt‚d S )Né   é   TFr   r   é   )
r   r   r   r   r   r   r   r   r   r   r   r   r   r   Útest_DihedralGroup$   s    r%   c                  C   st   t dƒ} t|  ¡ ƒ}t|ƒdks$t‚dd„ |D ƒdgd ks@t‚t dƒ}| ¡ dksXt‚t dƒ}| ¡ dkspt‚d S )Nr	   é<   c                 S   s   g | ]
}|j ‘qS r   )Zis_even)Ú.0Úpermr   r   r   Ú
<listcomp>8   s     z)test_AlternatingGroup.<locals>.<listcomp>Tr   r   )r   r   r   r   r   r   r   r   r   r   Útest_AlternatingGroup4   s    r*   c                  C   s.   t dddƒ} |  ¡ dkst‚| jdks*t‚d S )Né   é   T)r   r   r   r   )ÚAr   r   r   Útest_AbelianGroup?   s    r.   c                   C   s   t tdd„ ƒ d S )Nc                   S   s   t dƒS )Nr   )r   r   r   r   r   Ú<lambda>F   ó    z!test_RubikGroup.<locals>.<lambda>)r   Ú
ValueErrorr   r   r   r   Útest_RubikGroupE   s    r2   N)Z sympy.combinatorics.named_groupsr   r   r   r   r   r   Zsympy.testing.pytestr   r   r!   r%   r*   r.   r2   r   r   r   r   Ú<module>   s    