public void IdentityIsNormalSubgroup() { IGroup group = new SymmetricGroup(3); IGroup id = new GeneratedGroup(Element.CreateIdentity(3)); Assert.IsTrue(GroupUtilities.IsNormalSubgroup(id, group)); }
public void GetSubnormalGroups() { IGroup group = new SymmetricGroup(3); IEnumerable <IGroup> normalsg = GroupUtilities.GetNormalSubgroups(group); Assert.IsTrue(normalsg.Count() >= 2); }
public void GetSubnormalGroups() { IGroup group = new SymmetricGroup(3); IEnumerable<IGroup> normalsg = GroupUtilities.GetNormalSubgroups(group); Assert.IsTrue(normalsg.Count() >= 2); }
public void SymmetricAreNotCyclic() { for (int k = 3; k <= 5; k++) { IGroup group = new SymmetricGroup(k); Assert.IsFalse(GroupUtilities.IsCyclic(group)); } }
public void MultiplyBeIdempotent() { IGroup group = new SymmetricGroup(3); IGroup group2 = GroupUtilities.Multiply(group, group); Assert.AreEqual(group.Order, group2.Order); }
public void GroupAndIdentityAreSubnormalGroups() { IGroup group = new SymmetricGroup(3); IGroup id = new GeneratedGroup(Element.CreateIdentity(3)); GroupUtilities.IsNormalSubgroup(group, group); GroupUtilities.IsNormalSubgroup(id, group); }
public void GetSubgroupsOfSymetricGroupThree() { IGroup group = new SymmetricGroup(3); IEnumerable<IGroup> subgroups = GroupUtilities.GetSubgroups(group); Assert.IsNotNull(subgroups); Assert.AreEqual(6, subgroups.Count()); }
public void GetSubgroupsOfMinimalGroup() { IGroup group = new SymmetricGroup(2); IEnumerable<IGroup> subgroups = GroupUtilities.GetSubgroups(group); Assert.IsNotNull(subgroups); Assert.AreEqual(2, subgroups.Count()); }
public void SymetricGroupSizeFourAreEqualToSymetrycGroup() { GeneratedGroup group = new GeneratedGroup(Element.CreateSwap(4), Element.CreateRotation(4)); SymmetricGroup group2 = new SymmetricGroup(4); Assert.AreEqual(group.Order, group2.Order); Assert.AreEqual(group.GetHashCode(), group2.GetHashCode()); Assert.AreEqual(group, group2); }
public void GetSubgroupsOfMinimalGroup() { IGroup group = new SymmetricGroup(2); IEnumerable <IGroup> subgroups = GroupUtilities.GetSubgroups(group); Assert.IsNotNull(subgroups); Assert.AreEqual(2, subgroups.Count()); }
public void GetSubgroupsOfSymetricGroupFour() { IGroup group = new SymmetricGroup(4); IEnumerable <IGroup> subgroups = GroupUtilities.GetSubgroups(group); Assert.IsNotNull(subgroups); Assert.AreEqual(30, subgroups.Count()); }
public void SubgroupsIncludesIdentityAndTotalGroup() { IGroup group = new SymmetricGroup(3); IGroup id = new GeneratedGroup(Element.CreateIdentity(3)); IEnumerable <IGroup> subgroups = GroupUtilities.GetSubgroups(group); Assert.IsTrue(subgroups.Contains(id)); Assert.IsTrue(subgroups.Contains(group)); }
public void CalculateSymmetricGroupTable() { IGroup group = new SymmetricGroup(3); OperationTable table = new OperationTable(group.Elements); table.Calculate(); foreach (IElement left in group.Elements) foreach (IElement right in group.Elements) Assert.AreEqual(left.Multiply(right), table.GetValue(left, right)); }
public void MultiplyGenerateSymmetricGroup() { IGroup group1 = new GeneratedGroup(Element.CreateRotation(4)); IGroup group2 = new GeneratedGroup(Element.CreateSwap(4)); IGroup group3 = GroupUtilities.Multiply(group1, group2); Assert.AreEqual(24, group3.Order); IGroup symm = new SymmetricGroup(4); Assert.IsTrue(GroupUtilities.AreEqual(group3, symm)); Assert.IsTrue(group3.Equals(symm)); }
private static void TestSn(uint size, int count, string expectedElements, string expectedSubgroups) { var @group = new SymmetricGroup(size); Assert.AreEqual(count, @group.Count()); var builder = new StringBuilder(); @group.ForEach(element => builder.Append(element).Append('\n')); Assert.AreEqual(expectedElements, builder.ToString()); builder.Clear(); var gen = GeneratorFactory.Create(@group); gen.Generate().OrderBy(subgroup => subgroup.Order).ForEach(subgroup => builder.Append(subgroup).Append('\n')); Assert.AreEqual(expectedSubgroups, builder.ToString()); }
public void CalculateSymmetricGroupTable() { IGroup group = new SymmetricGroup(3); OperationTable table = new OperationTable(group.Elements); table.Calculate(); foreach (IElement left in group.Elements) { foreach (IElement right in group.Elements) { Assert.AreEqual(left.Multiply(right), table.GetValue(left, right)); } } }
public void GroupIsNormalSubgroup() { IGroup group = new SymmetricGroup(3); Assert.IsTrue(GroupUtilities.IsNormalSubgroup(group, group)); }
public void SubgroupsIncludesIdentityAndTotalGroup() { IGroup group = new SymmetricGroup(3); IGroup id = new GeneratedGroup(Element.CreateIdentity(3)); IEnumerable<IGroup> subgroups = GroupUtilities.GetSubgroups(group); Assert.IsTrue(subgroups.Contains(id)); Assert.IsTrue(subgroups.Contains(group)); }