Skip to content

Commit

Permalink
Added tests/docstrings for the new functions in testutil.py
Browse files Browse the repository at this point in the history
  • Loading branch information
Aleksandar Makelov committed Aug 18, 2012
1 parent 2ec4d27 commit babfccb
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 2 deletions.
41 changes: 39 additions & 2 deletions sympy/combinatorics/tests/test_testutil.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
from sympy.combinatorics.named_groups import SymmetricGroup
from sympy.combinatorics.testutil import _verify_bsgs
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 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) == 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)) == A

def test_verify_bsgs():
S = SymmetricGroup(5)
Expand All @@ -11,3 +30,21 @@ def test_verify_bsgs():
assert _verify_bsgs(S, base[:-1], strong_gens) == False
assert _verify_bsgs(S, base, S.generators) == 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)
21 changes: 21 additions & 0 deletions sympy/combinatorics/testutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,27 @@ def _verify_centralizer(group, arg, centr=None):

def _verify_normal_closure(group, arg, closure=None):
from sympy.combinatorics.perm_groups import PermutationGroup
"""
Verify the normal closure of a subgroup/subset/element in a group.
This is used to test sympy.combinatorics.perm_groups.PermutationGroup.normal_closure
Examples
========
>>> from sympy.combinatorics.named_groups import SymmetricGroup, AlternatingGroup
>>> from sympy.combinatorics.testutil import _verify_normal_closure
>>> S = SymmetricGroup(3)
>>> A = AlternatingGroup(3)
>>> _verify_normal_closure(S, A, closure=A)
True
See Also
========
sympy.combinatorics.perm_groups.PermutationGroup.normal_closure
"""
if closure is None:
closure = group.normal_closure(arg)
conjugates = []
Expand Down

0 comments on commit babfccb

Please sign in to comment.