
    g                         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 Zd Zd Zd Zd	 Zd
 Zd Z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                      t          g ddgdgdgg          } t          g dg dg          }t          g dg dg          }t          |           d	u sJ t          |          d
u sJ t          |          d
u sJ d S )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/html/ai-engine/env/lib/python3.11/site-packages/sympy/combinatorics/tests/test_util.pytest_check_cycles_alt_symr      s    ...aS1#>??E+++\\\:;;E///:;;E ''4//// ''50000 ''5000000    c                     t          d          } |                                  t          g d          }t          g d          }t          g d          }t          g d          }t          || j        | j        | j                  }t          || j        | j        | j                  }t          || j        | j        | j                  }|d         |k    sJ |d         t          | j                  dz   k    sJ |d         |k    sJ |d         t          | j                  dz   k    sJ |d         |k    sJ |d         dk    sJ d S )	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/      sG   aAOO))Fooo..Kooo..K???++H&!&!.!2FGGD+qvq~q7KLLD+qvq~q7KLLD7h7c!&kkAo%%%%7k!!!!7c!&kkAo%%%%7h7a<<<<<<r    c                  d   g d} t          g d          t          g d          t          g d          t          g d          g}t          | |          |t          g d          t          g d          t          g d          gt          g d          t          g d          ggk    sJ d S )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    99D%%{<<<'@'@|||$$k,,,&?&?AD#D$//D4?4M4M3>|||3L3L3>|||3L3L4N 5@4M4M3>|||3L3L4N	4O O O O O O Or    c                     t          g d          t          g d          t          g d          gt          g d          gg} t          |           t          g d          t          g d          t          g d          gk    sJ d S )N)r   r   r   )r   r   r   )r   r   r   )r   r
   )strong_gens_distrs    r   test_strong_gens_from_distrr5   2   s    %iii00+iii2H2Hiii((*,7			,B,B+CE"#455	YYY			YYY			YYY			!! ! ! ! ! !r    c                  h   t          d          } |                                  | j        }| j        }t	          ||          }t          ||          }|d         }|d         }t          |          }t          |          D ]k}||         D ]`}	 ||         |	         ||                   |	k    sJ t          |          D ]+}
 ||         |	         ||
                   ||
         k    sJ ,ald}t          |          D ]}|t          ||                   z  }|                                 |k    sJ d S )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   ;   sY   qAOO6D-K0{CC+D2CDDFAYF!9L4yyH8__ ? ?) 	? 	?B&<?2&tAw//255551XX ? ?*|Ar*4733tAw>>>>>?	? E8__    VAY7799r    c                     t          d          } |                                  | j        }| j        }t	          ||          }t          ||          }||d         k    sJ |d         }|d         }t          |          }t          |          D ]k}||         D ]`}	 ||         |	         ||                   |	k    sJ t          |          D ]+}
 ||         |	         ||
                   ||
         k    sJ ,ald}t          |          D ]}|t          ||                   z  }|                                 |k    sJ d S )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   sm   AOO6D-K%dK88F0{CCq	))))!9LAYF4yyH8__ ? ?) 	? 	?B&<?2&tAw//255551XX ? ?*|Ar*4733tAw>>>>>?	? E8__    VAY7799r    c                  B    g d} d}t          | |          g dk    sJ d S )N)r   r   r   r   )r   r   r   r   r   r   r   )r   )r#   degrees     r   test_base_orderingrH   f   s8    99DF$''+@+@+@@@@@@@r    c                     t          d          } |                                 \  }}t          ||          }t          | ||          du sJ t	          d          }|                                \  }}t          ||          }t          |||          du sJ t          d          }|                                \  }}t          ||          }t          |||          du sJ d S )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5D+D+..H4**d2222A3355D+D+..H4**d2222aA3355D+D+..H4**d222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      sI            8 8 8 8 8 8                    6 5 5 5 5 51 1 1  $	O 	O 	O! ! !  *  ,A A A3 3 3 3 3r    