def test_init_with_duplicate_index_raises_value_error(values, index): with pytest.raises(ValueError): Series(values, index=index)
def test_init_with_index_but_no_values_sets_values_to_nan(index): series = Series(index=index) assert all(value is nan for value in series)
def test_series_creation_without_index_creates_default_index(): s = Series([10, 20, 30]) assert s.index == [0, 1, 2]
def test_init_with_duplicate_index_raises_value_error(values, index): with pytest.raises(ValueError): Series(values, index=index) @pytest.mark.parametrize(["index"], [([10, 20, 30],), (["a", "b", "c"],)]) def test_init_with_index_but_no_values_sets_values_to_nan(index): series = Series(index=index) assert all(value is nan for value in series) @pytest.mark.parametrize( ["series", "expected_min"], [ (Series([10, 20, 30]), 10), (Series([0, 0, 0]), 0), (Series([10, 50, -100, 7]), -100), ], ) def test_min(series, expected_min): assert series.min() == expected_min @pytest.mark.parametrize( ["series", "expected_max"], [ (Series([10, 20, 30]), 30), (Series([0, 0, 0]), 0), (Series([10, 50, -100, 7]), 50), ],
def test_series_correctly_casts_to_list(values): assert list(Series(values)) == values
def test_series_len_is_correct(values): assert len(Series(values)) == len(values)
def test_series_creation_with_non_iterable_value_creates_one_element_series(): s = Series(100) assert s.eq(Series([100]))
def test_repr_is_correct(series, expected_repr): assert repr(series) == expected_repr and Series(repr(series)).eq(series)
def test_series_creation_with_length_mismatched_index_raises_value_error(): with pytest.raises(ValueError): Series([10, 20, 30], index=[0, 1])
def test_series_creation_with_index_sets_index_correctly(): index = [1, 2, 3] s = Series([10, 20, 30], index=index) assert s.index == index
@pytest.mark.parametrize(["values"], [[[100, 200, 300]], [[]]]) def test_series_correctly_casts_to_list(values): assert list(Series(values)) == values @pytest.mark.parametrize(["values"], [[[100, 200, 300]], [[]]]) def test_series_len_is_correct(values): assert len(Series(values)) == len(values) @pytest.mark.parametrize( ["left_series", "right_series", "expected_result"], [ (Series([10, 20]), Series([10, 20]), True), (Series(), Series(), True), (Series([10, 20]), Series([20, 10]), False), (Series([10, 20], index=[0, 1]), Series([10, 20], index=[1, 2 ]), False), ], ) def test_series_eq_is_correct(left_series, right_series, expected_result): assert left_series.eq(right_series) is expected_result @pytest.mark.parametrize( ["series", "op", "scalar", "expected_series"], [ (Series([100, 200]), operator.add, 1, Series([101, 201])), (Series([100, 200]), operator.sub, 10, Series([90, 190])),