o
    FZŽ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J ‚t|ƒdksJ ‚| jdu s#J ‚| jdu s*J ‚| jdu s1J ‚|  	¡ du s9J ‚t dƒ}| 
¡ dksEJ ‚t dƒ}| 
¡ dksQJ ‚d S )Né   r   éx   FTé   é   )r   ÚlistÚgenerateÚ
generatorsÚsizeÚlenÚis_solvableÚ
is_abelianÚis_nilpotentÚis_transitiveÚorder©ÚGÚelementsÚHÚL© r   úZ/var/www/auris/lib/python3.10/site-packages/sympy/combinatorics/tests/test_named_groups.pyÚtest_SymmetricGroup   s   r   c                  C   s–   t dƒ} t|  ¡ ƒ}t|ƒdksJ ‚|  ¡  ¡ dksJ ‚| jdu s#J ‚| jdu s*J ‚| jdu s1J ‚t dƒ}| ¡ dks=J ‚t dƒ}| ¡ dksIJ ‚d S )Né
   r   Tr   )	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J ‚|  ¡ du sJ ‚| jdu s!J ‚| jdu s(J ‚| jdu s/J ‚t dƒ}| ¡ dks;J ‚t dƒ}| ¡ dksGJ ‚|jdu sNJ ‚|jdu sUJ ‚d S )Né   é   TFr   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J ‚dd„ |D ƒdgd ks J ‚t dƒ}| ¡ dks,J ‚t dƒ}| ¡ dks8J ‚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   Útest_AlternatingGroup4   s   r)   c                  C   s.   t dddƒ} |  ¡ dksJ ‚| jdu sJ ‚d S )Né   é   T)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   s    z!test_RubikGroup.<locals>.<lambda>)r   Ú
ValueErrorr   r   r   r   Útest_RubikGroupE   s   r0   N)Z sympy.combinatorics.named_groupsr   r   r   r   r   r   Zsympy.testing.pytestr   r   r    r$   r)   r-   r0   r   r   r   r   Ú<module>   s     