test_testutil.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from sympy.combinatorics.named_groups import SymmetricGroup, AlternatingGroup,\
  2. CyclicGroup
  3. from sympy.combinatorics.testutil import _verify_bsgs, _cmp_perm_lists,\
  4. _naive_list_centralizer, _verify_centralizer,\
  5. _verify_normal_closure
  6. from sympy.combinatorics.permutations import Permutation
  7. from sympy.combinatorics.perm_groups import PermutationGroup
  8. from sympy.core.random import shuffle
  9. def test_cmp_perm_lists():
  10. S = SymmetricGroup(4)
  11. els = list(S.generate_dimino())
  12. other = els[:]
  13. shuffle(other)
  14. assert _cmp_perm_lists(els, other) is True
  15. def test_naive_list_centralizer():
  16. # verified by GAP
  17. S = SymmetricGroup(3)
  18. A = AlternatingGroup(3)
  19. assert _naive_list_centralizer(S, S) == [Permutation([0, 1, 2])]
  20. assert PermutationGroup(_naive_list_centralizer(S, A)).is_subgroup(A)
  21. def test_verify_bsgs():
  22. S = SymmetricGroup(5)
  23. S.schreier_sims()
  24. base = S.base
  25. strong_gens = S.strong_gens
  26. assert _verify_bsgs(S, base, strong_gens) is True
  27. assert _verify_bsgs(S, base[:-1], strong_gens) is False
  28. assert _verify_bsgs(S, base, S.generators) is False
  29. def test_verify_centralizer():
  30. # verified by GAP
  31. S = SymmetricGroup(3)
  32. A = AlternatingGroup(3)
  33. triv = PermutationGroup([Permutation([0, 1, 2])])
  34. assert _verify_centralizer(S, S, centr=triv)
  35. assert _verify_centralizer(S, A, centr=A)
  36. def test_verify_normal_closure():
  37. # verified by GAP
  38. S = SymmetricGroup(3)
  39. A = AlternatingGroup(3)
  40. assert _verify_normal_closure(S, A, closure=A)
  41. S = SymmetricGroup(5)
  42. A = AlternatingGroup(5)
  43. C = CyclicGroup(5)
  44. assert _verify_normal_closure(S, A, closure=A)
  45. assert _verify_normal_closure(S, C, closure=A)