def test_ranges_by_ids():
    rl = RangedList(10, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    assert [(1, 2, 1), (2, 3, 2), (3, 4, 3), (7, 8, 7), (4, 5, 4)] == \
        list(rl.iter_ranges_by_ids((1, 2, 3, 7, 4)))
    rl[6] = "foo"
    assert [(1, 2, 1), (2, 3, 2), (3, 4, 3), (7, 8, 7), (4, 5, 4)] == \
        list(rl.iter_ranges_by_ids((1, 2, 3, 7, 4)))
    rl[3] = "foo"
    assert [(1, 2, 1), (2, 3, 2), (3, 4, "foo"), (7, 8, 7), (4, 5, 4)] == \
        list(rl.iter_ranges_by_ids((1, 2, 3, 7, 4)))
def test_ranges_by_ids():
    rl = RangedList(size=10, value="a", key="alpha")
    assert [(1, 4, "a"), (7, 8, "a"), (4, 5, "a")] == \
        list(rl.iter_ranges_by_ids((1, 2, 3, 7, 4)))
    rl[6] = "foo"
    assert [(1, 4, "a"), (7, 8, "a"), (4, 5, "foo")] == \
        list(rl.iter_ranges_by_ids((1, 2, 3, 7, 4)))
    rl[3] = "foo"
    assert [(1, 3, "a"), (3, 4, "foo"), (7, 8, "a"), (4, 5, "a")] == \
        list(rl.iter_ranges_by_ids((1, 2, 3, 7, 4)))