示例#1
0
    def testMultiplicationOfElements(self):
        a = Element.word("a");
        b = Element.word("b");

        actual = a * b

        self.assertEquals(Element.word("ab"), actual)
示例#2
0
    def testCommutate(self):
        a = Element.word("a")
        b = Element.word("b")

        actual = a.commutate(b)

        self.assertEquals(Element.word("aba^-1b^-1"), actual)
示例#3
0
 def testSolution(self):
     for n in range(1,2):
         word = Solver().solve(n)
         
         letterCount = 0
         for letter in word.letters():
             letterCount += 1
             self.assertEquals(Element.word(""), word.remove(letter))
         self.assertEquals(n, letterCount)
示例#4
0
    def solve(self, n):
        if (n == 1):
            self.index += 1
            return Element.word(string.letters[self.index])
        else:
            floor = n / 2
            ceil = n - floor

            a = self.solve(ceil)
            b = self.solve(floor)
            return a * b.inverse() * a.inverse() * b
示例#5
0
 def testCreationOfElement(self):
     self.assertNotEqual(None, Element.word("a"))
示例#6
0
    def testRemoval(self):
        element = Element.word("aba^-1b^-1");

        actual = element.remove('a')

        self.assertEquals(Element.word(""), actual)
示例#7
0
    def testNormalisation(self):
        element = Element.word("ab^2b^-2a^-1");

        actual = element * element.inverse()

        self.assertEquals(Element.word(""), actual)
示例#8
0
    def testInverseOfElements(self):
        element = Element.word("a^2b^-1");

        actual = element.inverse()

        self.assertEquals(Element.word("ba^-2"), actual)
示例#9
0
 def over(*generators):
     return FreeGroup([Element.word(g) for g in generators])
示例#10
0
 def testGeneratorAccess(self):
     self.assertEquals(Element.word("a"), self.group[0])
     self.assertEquals(Element.word("b"), self.group[1])