
    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y)    )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 y )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      X/var/www/openai/venv/lib/python3.12/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                  z   t        d      } | j                          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   |k7  sJ |d   dk(  sJ y )	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+qvvq~~q7K7KLD+qvvq~~q7K7KLD7h7c!&&kAo%%%7k!!!7c!&&kAo%%%7h7a<<r    c                     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 y )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                      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 y )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                     t        d      } | j                          | j                  }| j                  }t	        ||      }t        ||      }|d   }|d   }t        |      }t        |      D ]K  }||   D ]A  }	 ||   |	   ||         |	k(  sJ t        |      D ]  }
 ||   |	   ||
         ||
   k(  rJ  C M d}t        |      D ]  }|t        ||         z  } | j                         |k(  sJ y )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+D2CDFAYF!9L4yH8_)B&<?2&tAw/25551X*|Ar*473tAw>>>   
 E8_VAY 779r    c                     t        d      } | j                          | j                  }| j                  }t	        ||      }t        ||      }||d   k(  sJ |d   }|d   }t        |      }t        |      D ]K  }||   D ]A  }	 ||   |	   ||         |	k(  sJ t        |      D ]  }
 ||   |	   ||
         ||
   k(  rJ  C M d}t        |      D ]  }|t        ||         z  } | j                         |k(  sJ y )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%dK8F0{Cq	)))!9LAYF4yH8_)B&<?2&tAw/25551X*|Ar*473tAw>>>   
 E8_VAY 779r    c                  6    g d} d}t        | |      g dk(  sJ y )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                  f   t        d      } | j                         \  }}t        ||      }t        | ||      du sJ t	        d      }|j                         \  }}t        ||      }t        |||      du sJ t        d      }|j                         \  }}t        ||      }t        |||      du sJ y )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4*d222A335D+D+.H4*d222aA335D+D+.H4*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    