def test_row_reading_word(): t = Tableau() assert t.row_reading_word() == tuple() assert t == Tableau.from_row_reading_word(t.row_reading_word()) t = Tableau({(1, 1): 1, (1, 2): 3, (1, 3): 4, (2, 1): 2}) assert t.row_reading_word() == (2, 1, 3, 4) u = Tableau.from_row_reading_word(t.row_reading_word()) assert t == u
def dual_equivalence(tab, i): word = tab.row_reading_word() subword = tuple(a for a in word if a in [i - 1, i, i + 1]) if subword in [(i, i + 1, i - 1), (i - 1, i + 1, i)]: word = tuple(a + (1 if a == i - 1 else -1 if a == i else 0) for a in word) elif subword in [(i, i - 1, i + 1), (i + 1, i - 1, i)]: word = tuple(a + (1 if a == i else -1 if a == i + 1 else 0) for a in word) else: assert subword in [(i - 1, i, i + 1), (i + 1, i, i - 1)] return Tableau.from_row_reading_word(word)