def test_get_values_bad_lists(): rl = RangedList(value=range(10)) with pytest.raises(TypeError): rl.get_values([2, -1, 4]) with pytest.raises(TypeError): rl.get_values([2, 12, 4]) with pytest.raises(TypeError): rl.get_values([2, True]) with pytest.raises(TypeError): rl.get_values([2, "True"])
def test_get_values_list(): rl = RangedList(value=range(10)) assert [2, 6, 4] == rl.get_values([2, 6, 4])
def test_get_values_mask(): rl = RangedList(value=["a", "b", "c", "d", "e"]) assert ["a", "c", "e"] == rl.get_values([True, False, True, False, True]) assert ["a", "c", "e"] == rl.get_values([True, False, True, False, True, True]) assert ["a", "c"] == rl.get_values([True, False, True, False])
def test_get_values_complex_slice(): rl = RangedList(value=range(10)) assert [2, 4, 6] == rl.get_values(slice(-8, -3, 2))
def test_get_values_all(): rl = RangedList(value=[1, 2, 3]) assert [1, 2, 3] == rl.get_values()
def test_bad_selector(): rl = RangedList(size=5, value=[0, 1, 2, 3, 4], key="alpha") with pytest.raises(TypeError): rl.get_values(34.23)
def test_negative_id(): rl = RangedList(size=5, value=[0, 1, 2, 3, 4], key="alpha") assert rl.get_values(-2) == [3] rl[-2] = 13 assert rl[3] == 13 assert rl[-2] == 13
def test_slice_by_selector(): rl = RangedList(size=5, value=[0, 1, 2, 3, 4], key="alpha") assert rl.get_values(slice(2, 3)) == [2] assert rl.get_values(slice(2, 4)) == [2, 3]