
    \h                         S SK JrJrJr  S SKJr  S SKJrJrJ	r	J
r
JrJrJrJr  S SKJr  S rS rS rS rS	 rS
 rS rS rg)    )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                      [        / SQS/S/S//5      n [        / SQ/ SQ/5      n[        / SQ/ SQ/5      n[        U 5      S	L d   e[        U5      S
L d   e[        U5      S
L d   eg )N)r                           	   )r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   )r   r   r   r   r   TF)r   r   )perm1perm2perm3s      [/var/www/auris/envauris/lib/python3.13/site-packages/sympy/combinatorics/tests/test_util.pytest_check_cycles_alt_symr      st    .aS1#>?E+\:;E/:;E '4/// '5000 '5000    c                     [        S5      n U R                  5         [        / SQ5      n[        / SQ5      n[        / SQ5      n[        / SQ5      n[        XR                  U R
                  U R                  5      n[        X R                  U R
                  U R                  5      n[        X0R                  U R
                  U R                  5      nUS   U:X  d   eUS   [        U R                  5      S-   :X  d   eUS   U:X  d   eUS   [        U R                  5      S-   :X  d   eUS   U:w  d   eUS   S:X  d   eg )	Nr   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   r   r   r   )r   schreier_simsr   r   basebasic_orbitsbasic_transversalslen)Dmembernot_member1not_member2identityres1res2res3s           r   
test_stripr/      s   aAOO)Fo.Ko.K?+H&&&!..!2F2FGD+vvq~~q7K7KLD+vvq~~q7K7KLD7h7c!&&kAo%%%7k!!!7c!&&kAo%%%7h7a<<r    c                     / SQn [        / SQ5      [        / SQ5      [        / SQ5      [        / SQ5      /n[        X5      U[        / SQ5      [        / SQ5      [        / SQ5      /[        / SQ5      [        / SQ5      //:X  d   eg )N)r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r	   )r#   genss     r   test_distribute_gens_by_baser2   &   s    D%{<'@|$k,&?AD#D/D4?4M3>|3L3>|3L4N 5@4M3>|3L4N	4O O O Or    c                      [        / SQ5      [        / SQ5      [        / SQ5      /[        / SQ5      //n [        U 5      [        / SQ5      [        / SQ5      [        / SQ5      /:X  d   eg )N)r   r   r   )r   r   r   )r   r   r   )r   r
   )strong_gens_distrs    r   test_strong_gens_from_distrr5   2   sg    %i0+i2Hi(*,7	,B+CE"#45	Y		Y		Y		!! ! !r    c                     [        S5      n U R                  5         U R                  nU R                  n[	        X5      n[        X5      nUS   nUS   n[        U5      n[        U5       HL  nXX    HA  n	Xh   U	   " X   5      U	:X  d   e[        U5       H  n
Xh   U	   " X   5      X   :X  a  M   e   MC     MN     Sn[        U5       H  nU[        XX   5      -  nM     U R                  5       U:X  d   eg )Nr   r   r   )	r   r"   r#   strong_gensr	   r   r&   rangeorder)Sr#   r7   r4   resultorbitstransversalsbase_lenieljr9   s               r   "test_orbits_transversals_from_bsgsrB   ;   s    qAOO66D--K0C+DDFAYF!9L4yH8_)B?2&tw/25551X#r*473tw>>>   
 E8_VY 779r    c                     [        S5      n U R                  5         U R                  nU R                  n[	        X5      n[        X5      nXCS   :X  d   eUS   nUS   n[        U5      n[        U5       HL  nXh    HA  n	XX   U	   " X   5      U	:X  d   e[        U5       H  n
XX   U	   " X   5      X   :X  a  M   e   MC     MN     Sn[        U5       H  nU[        Xh   5      -  nM     U R                  5       U:X  d   eg )Nr   r   r   r   )	r   r"   r#   r7   r   r	   r&   r8   r9   )Ar#   r7   r;   r4   r=   r<   r>   r?   r@   rA   r9   s               r   test_handle_precomputed_bsgsrE   P   s   AOO66D--K%d8F0Cq	)))!9LAYF4yH8_)B?2&tw/25551X#r*473tw>>>   
 E8_VY 779r    c                  6    / SQn Sn[        X5      / SQ:X  d   eg )N)r   r   r   r   )r   r   r   r   r   r   r   )r   )r#   degrees     r   test_base_orderingrH   f   s     DF$'+@@@@r    c                  Z   [        S5      n U R                  5       u  p[        X5      n[        XU5      SL d   e[	        S5      nUR                  5       u  p[        X5      n[        XAU5      SL d   e[        S5      nUR                  5       u  p[        X5      n[        XQU5      SL d   eg )N
   Tr   r   )r   schreier_sims_incrementalr   r   r   r   )r:   r#   r7   new_gensrD   r'   s         r   test_remove_gensrM   l   s    rA335DD.H*d222A335DD.H*d222aA335DD.H*d222r    N) sympy.combinatorics.named_groupsr   r   r    sympy.combinatorics.permutationsr   sympy.combinatorics.utilr   r   r	   r
   r   r   r   r   sympy.combinatorics.testutilr   r   r/   r2   r5   rB   rE   rH   rM    r    r   <module>rS      sP     8   61$	O!*,A3r    