Exemple #1
0
def test_blank_between_second_argument_None_blanks_to_end():
    rl = RunLengthList([(0, 'foo'), (2, 'bar'), (4, 'baz')])
    rl.blank_between(1, None)
    assert rl.items() == [(0, 'foo')]
Exemple #2
0
def test_change_between_changes_to_end_if_second_argument_None():
    rl = RunLengthList([(0, 'foo'), (2, 'bar'), (4, 'baz')])
    rl.change_between(1, None, 'qux')
    assert rl.items() == [(0, 'foo'), (1, 'qux')]
Exemple #3
0
def test_RunLengthList_copy_copies_non_empty():
    r = RunLengthList([(0, 'foo')])
    assert r == r.copy()
    assert not r.items() is r.copy().items()
Exemple #4
0
def test_add_change_works_on_top_of_existing_colour_definition():
    rl = RunLengthList([(0, 'foo'), (2, +20)])
    rl.add_change(2, -20)  #deliberately try and get it to the left
    assert rl.items() == [(0, 'foo'), (2, -20)]
Exemple #5
0
def test_RunLengthList_insertion_normalisation():
    r1 = RunLengthList([(0, 'foo'), (1, 'bar')])
    r2 = RunLengthList([(0, 'foo'), (1, 'bar')])
    r1.insert_list_at(1, 2, r2)
    assert r1.items() == [(0, 'foo'), (2, 'bar')], r1.items()
Exemple #6
0
def test_inserted_list_gets_chopped_if_not_enough_length():
    r1 = RunLengthList([(0, 'foo'), (1, 'bar')])
    r2 = RunLengthList([(0, 'baz'), (2, 'qux')])
    r1.insert_list_at(1, 1, r2)
    assert r1.items() == [(0, 'foo'), (1, 'baz'), (2, 'bar')]
Exemple #7
0
def test_copy_returns_different_lists():
    r = RunLengthList([(0, 'foo')])
    assert r.items() is not r.copy().items()
Exemple #8
0
def test_RunLengthList_insertion():
    r1 = RunLengthList([(0, 'foo'), (2, 'qux')])
    r2 = RunLengthList([(0, 'bar'), (2, 'baz')])
    r1.insert_list_at(1, 3, r2)
    assert r1.items() == [(0, 'foo'), (1, 'bar'), (3, 'baz'), (4, 'foo'),
                          (5, 'qux')], r1.items()
Exemple #9
0
def test_RunLengthList_blank_between():
    c = RunLengthList([(0, 'FOO'), (2, 'BAR'), (3, 'BAZ'), (4, 'QUX')])
    c.blank_between(2, 3)
    assert c.items() == [(0, 'FOO'), (3, 'BAZ'), (4, 'QUX')], c.items()
Exemple #10
0
def test_RunLengthList_add_change_normalises_afterwards():
    r = RunLengthList([(0, 'foo')])
    r.add_change(2, 'foo')
    r.add_change(1, 'bar')
    assert r.items() == [(0, 'foo'), (1, 'bar')]
Exemple #11
0
def test_RunlengthList_index_adjust_negative_adjustment_normalises():
    c = RunLengthList([(0, 'f'), (2, 'o'), (3, 'b')])
    c.index_adjust(1, -2)
    assert c.items() == [(0, 'f'), (1, 'b')]
Exemple #12
0
def test_RunLengthList_index_adjust_index_collision():
    c = RunLengthList([(0, 1), (3, 2)])
    c.index_adjust(3, 2)
    assert c.items() == [(0, 1), (5, 2)], c.items()
Exemple #13
0
def test_RunLengthList_index_adjust():
    c = RunLengthList([(0, 1), (3, 2), (6, 3)])
    c.index_adjust(2, 2)
    assert c.items() == [(0, 1), (5, 2), (8, 3)], c.items()
Exemple #14
0
def test_RunLengthList_add_change_already_got_index():
    c = RunLengthList([(0, 'foo'), (3, 'bar')])
    c.add_change(3, 'baz')
    assert c.items() == [(0, 'foo'), (3, 'baz')]
Exemple #15
0
def test_RunLengthList_add_change():
    c = RunLengthList([(0, 1), (3, 2)])
    c.add_change(1, 3)
    assert c.items() == [(0, 1), (1, 3), (3, 2)]