Beispiel #1
0
    def test_flip_pathsuccess(self):
        """
        Should return True if condP1 and condP2
        and successfully flip word.
        """
        bw_0 = BraidWord([1, 2, 1])
        bw_1 = BraidWord([1, 1, 2])  # Check wrapping around
        bw_2 = BraidWord([-1, -2, -1])
        self.assertTrue(bw_0.flip(0))
        self.assertTrue(bw_1.flip(1))
        self.assertTrue(bw_2.flip(0))

        # Word modifications
        self.assertEqual(bw_0.word, [2, 1, 2])
        self.assertEqual(bw_1.word, [2, 2, 1])
        self.assertEqual(bw_2.word, [-2, -1, -2])

        # genCount modifications
        self.assertEqual(bw_0.genCount, [1, 2])
        self.assertEqual(bw_1.genCount, [1, 2])
        self.assertEqual(bw_2.genCount, [1, 2])
Beispiel #2
0
 def test_flip_pathfail_1(self):
     """Should return False if
     ~condP2:
     abs(l[index] - l[(index+1) % len(l)]) != 1
     and should not modify word.
     """
     bw = BraidWord([1, 3, 1])
     # NOTE condP1 holds (refer to test_flip_pathfail_0)
     self.assertFalse(bw.flip(0))
     # (No) Word modification
     self.assertEqual(bw.word, [1, 3, 1])
     # (No) genCount modification
     self.assertEqual(bw.genCount, [2, 0, 1])
Beispiel #3
0
 def test_flip_pathfail_0(self):
     """Should return False if
     ~condP1:
     ( l[index] != l[(index+2) % len(l)] )
     and should not modify word.
     """
     bw = BraidWord([1, 2, 3])
     # NOTE condP2 holds (refer to test_flip_pathfail_1)
     self.assertFalse(bw.flip(0))
     # (No) Word modification
     self.assertEqual(bw.word, [1, 2, 3])
     # (No) genCount modification
     self.assertEqual(bw.genCount, [1, 1, 1])