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')]
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')]
def test_RunLengthList_copy_copies_non_empty(): r = RunLengthList([(0, 'foo')]) assert r == r.copy() assert not r.items() is r.copy().items()
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)]
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()
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')]
def test_copy_returns_different_lists(): r = RunLengthList([(0, 'foo')]) assert r.items() is not r.copy().items()
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()
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()
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')]
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')]
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()
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()
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')]
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)]