
    g
                     z    d Z ddlmZmZmZmZ ddlmZ ddlm	Z	m
Z
mZ d Zd ZdZi Zer e ee       Zd Zd	 Zy
)z*Test groups defined by the galois module.     )S4TransitiveSubgroupsS5TransitiveSubgroupsS6TransitiveSubgroupsfind_transitive_subgroups_of_S6)is_isomorphic)SymmetricGroupAlternatingGroupCyclicGroupc                     t         j                  j                         } t        d      }| j	                  |      sJ | j
                  dk(  sJ | j                         sJ | j                         dk(  sJ | j                  rJ y )N   )	r   Vget_perm_groupr	   is_subgroupdegreeis_transitiveorder	is_cyclic)GA4s     Z/var/www/openai/venv/lib/python3.12/site-packages/sympy/combinatorics/tests/test_galois.pytest_four_groupr      sr    ..0A	!	B==88q==??779>>{{?{    c                  (   t         j                  j                         } t        d      }t	        d      }| j                  |      sJ | j                  |      rJ | j                  dk(  sJ | j                         sJ | j                         dk(  sJ y )N      )	r   M20r   r   r	   r   r   r   r   )r   S5A5s      r   test_M20r      s    !!002A		B	!	B==}}R   88q==??779??r   Fc                 d    | j                         g}t        r|j                  t        |           |S )N)r   INCLUDE_SEARCH_REPSappendS6_randomized)nameverss     r   get_versions_of_S6_subgroupr&   +   s,    !"DM$'(Kr   c                     t         } t        d      }| j                  ddt        d      df| j                  ddt        d      df| j                  ddddf| j                  ddddf| j                  ddddf| j                  dddt        d	      f| j                  ddt        d	      df| j                  ddddf| j                  dd
ddf| j                  dd
ddf| j                  ddddf| j                  ddddf| j                   ddddf| j"                  ddddf| j$                  ddddf| j&                  ddddffD ]  \  }}}}}t)        |      D ]p  }|j+                         sJ |j,                  dk(  sJ |j/                  |      |u sJ |j1                         |k(  sJ |rt3        ||      sJ |sct3        ||      spJ   y)zQ
    Test enough characteristics to distinguish all 16 transitive subgroups.
       FN      T      r   $   0   <   H   x   ih  i  )r   r	   C6r
   S3r   D6r   G18A4xC2S4mS4pG36mG36pS4xC2PSL2F5G72PGL2F5A6S6r&   r   r   r   r   r   )tsr?   r$   altr   is_isomnot_isomr   s           r   test_S6_transitive_subgroupsrE   2   s    
B	!	B	EaQ6	Ea!2D9	ERt,	DRt,	ERt,	ER~a'89	ER!2D9	DRt,	ERt,	DRt,	ERt,	DRt,	ERt,	ECt,	DCt,	ECt,!0+c5'8$ -T2A??$$$88q= ===$+++779%%%$Q000(H555 3%0r   N)__doc__sympy.combinatorics.galoisr   r   r   r   !sympy.combinatorics.homomorphismsr    sympy.combinatorics.named_groupsr   r	   r
   r   r   r!   r#   listr&   rE    r   r   <module>rL      sU    0  < 
  3T:O5PQM 6r   