test_named_groups.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. from sympy.combinatorics.named_groups import (SymmetricGroup, CyclicGroup,
  2. DihedralGroup, AlternatingGroup,
  3. AbelianGroup, RubikGroup)
  4. from sympy.testing.pytest import raises
  5. def test_SymmetricGroup():
  6. G = SymmetricGroup(5)
  7. elements = list(G.generate())
  8. assert (G.generators[0]).size == 5
  9. assert len(elements) == 120
  10. assert G.is_solvable is False
  11. assert G.is_abelian is False
  12. assert G.is_nilpotent is False
  13. assert G.is_transitive() is True
  14. H = SymmetricGroup(1)
  15. assert H.order() == 1
  16. L = SymmetricGroup(2)
  17. assert L.order() == 2
  18. def test_CyclicGroup():
  19. G = CyclicGroup(10)
  20. elements = list(G.generate())
  21. assert len(elements) == 10
  22. assert (G.derived_subgroup()).order() == 1
  23. assert G.is_abelian is True
  24. assert G.is_solvable is True
  25. assert G.is_nilpotent is True
  26. H = CyclicGroup(1)
  27. assert H.order() == 1
  28. L = CyclicGroup(2)
  29. assert L.order() == 2
  30. def test_DihedralGroup():
  31. G = DihedralGroup(6)
  32. elements = list(G.generate())
  33. assert len(elements) == 12
  34. assert G.is_transitive() is True
  35. assert G.is_abelian is False
  36. assert G.is_solvable is True
  37. assert G.is_nilpotent is False
  38. H = DihedralGroup(1)
  39. assert H.order() == 2
  40. L = DihedralGroup(2)
  41. assert L.order() == 4
  42. assert L.is_abelian is True
  43. assert L.is_nilpotent is True
  44. def test_AlternatingGroup():
  45. G = AlternatingGroup(5)
  46. elements = list(G.generate())
  47. assert len(elements) == 60
  48. assert [perm.is_even for perm in elements] == [True]*60
  49. H = AlternatingGroup(1)
  50. assert H.order() == 1
  51. L = AlternatingGroup(2)
  52. assert L.order() == 1
  53. def test_AbelianGroup():
  54. A = AbelianGroup(3, 3, 3)
  55. assert A.order() == 27
  56. assert A.is_abelian is True
  57. def test_RubikGroup():
  58. raises(ValueError, lambda: RubikGroup(1))