コード例 #1
0
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
コード例 #2
0
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)