56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
|
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)
|