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])
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])
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])