You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.9 KiB
70 lines
1.9 KiB
from sympy.combinatorics.named_groups import (SymmetricGroup, CyclicGroup,
|
|
DihedralGroup, AlternatingGroup,
|
|
AbelianGroup, RubikGroup)
|
|
from sympy.testing.pytest import raises
|
|
|
|
|
|
def test_SymmetricGroup():
|
|
G = SymmetricGroup(5)
|
|
elements = list(G.generate())
|
|
assert (G.generators[0]).size == 5
|
|
assert len(elements) == 120
|
|
assert G.is_solvable is False
|
|
assert G.is_abelian is False
|
|
assert G.is_nilpotent is False
|
|
assert G.is_transitive() is True
|
|
H = SymmetricGroup(1)
|
|
assert H.order() == 1
|
|
L = SymmetricGroup(2)
|
|
assert L.order() == 2
|
|
|
|
|
|
def test_CyclicGroup():
|
|
G = CyclicGroup(10)
|
|
elements = list(G.generate())
|
|
assert len(elements) == 10
|
|
assert (G.derived_subgroup()).order() == 1
|
|
assert G.is_abelian is True
|
|
assert G.is_solvable is True
|
|
assert G.is_nilpotent is True
|
|
H = CyclicGroup(1)
|
|
assert H.order() == 1
|
|
L = CyclicGroup(2)
|
|
assert L.order() == 2
|
|
|
|
|
|
def test_DihedralGroup():
|
|
G = DihedralGroup(6)
|
|
elements = list(G.generate())
|
|
assert len(elements) == 12
|
|
assert G.is_transitive() is True
|
|
assert G.is_abelian is False
|
|
assert G.is_solvable is True
|
|
assert G.is_nilpotent is False
|
|
H = DihedralGroup(1)
|
|
assert H.order() == 2
|
|
L = DihedralGroup(2)
|
|
assert L.order() == 4
|
|
assert L.is_abelian is True
|
|
assert L.is_nilpotent is True
|
|
|
|
|
|
def test_AlternatingGroup():
|
|
G = AlternatingGroup(5)
|
|
elements = list(G.generate())
|
|
assert len(elements) == 60
|
|
assert [perm.is_even for perm in elements] == [True]*60
|
|
H = AlternatingGroup(1)
|
|
assert H.order() == 1
|
|
L = AlternatingGroup(2)
|
|
assert L.order() == 1
|
|
|
|
|
|
def test_AbelianGroup():
|
|
A = AbelianGroup(3, 3, 3)
|
|
assert A.order() == 27
|
|
assert A.is_abelian is True
|
|
|
|
|
|
def test_RubikGroup():
|
|
raises(ValueError, lambda: RubikGroup(1))
|