Spaces:
Running
Running
from sympy.combinatorics.named_groups import SymmetricGroup, AlternatingGroup,\ | |
CyclicGroup | |
from sympy.combinatorics.testutil import _verify_bsgs, _cmp_perm_lists,\ | |
_naive_list_centralizer, _verify_centralizer,\ | |
_verify_normal_closure | |
from sympy.combinatorics.permutations import Permutation | |
from sympy.combinatorics.perm_groups import PermutationGroup | |
from sympy.core.random import shuffle | |
def test_cmp_perm_lists(): | |
S = SymmetricGroup(4) | |
els = list(S.generate_dimino()) | |
other = els[:] | |
shuffle(other) | |
assert _cmp_perm_lists(els, other) is True | |
def test_naive_list_centralizer(): | |
# verified by GAP | |
S = SymmetricGroup(3) | |
A = AlternatingGroup(3) | |
assert _naive_list_centralizer(S, S) == [Permutation([0, 1, 2])] | |
assert PermutationGroup(_naive_list_centralizer(S, A)).is_subgroup(A) | |
def test_verify_bsgs(): | |
S = SymmetricGroup(5) | |
S.schreier_sims() | |
base = S.base | |
strong_gens = S.strong_gens | |
assert _verify_bsgs(S, base, strong_gens) is True | |
assert _verify_bsgs(S, base[:-1], strong_gens) is False | |
assert _verify_bsgs(S, base, S.generators) is False | |
def test_verify_centralizer(): | |
# verified by GAP | |
S = SymmetricGroup(3) | |
A = AlternatingGroup(3) | |
triv = PermutationGroup([Permutation([0, 1, 2])]) | |
assert _verify_centralizer(S, S, centr=triv) | |
assert _verify_centralizer(S, A, centr=A) | |
def test_verify_normal_closure(): | |
# verified by GAP | |
S = SymmetricGroup(3) | |
A = AlternatingGroup(3) | |
assert _verify_normal_closure(S, A, closure=A) | |
S = SymmetricGroup(5) | |
A = AlternatingGroup(5) | |
C = CyclicGroup(5) | |
assert _verify_normal_closure(S, A, closure=A) | |
assert _verify_normal_closure(S, C, closure=A) | |