Path: blob/main/py-polars/tests/unit/interop/numpy/test_array_method.py
6939 views
import numpy as np1import pytest2from numpy.testing import assert_array_equal34import polars as pl567def test_series_array_method_copy_false() -> None:8s = pl.Series([1, 2, None])9with pytest.raises(RuntimeError, match="copy not allowed"):10s.__array__(copy=False)1112result = s.__array__(copy=None)13expected = np.array([1.0, 2.0, np.nan])14assert_array_equal(result, expected)151617@pytest.mark.parametrize("copy", [True, False])18def test_series_array_method_copy_zero_copy(copy: bool) -> None:19s = pl.Series([1, 2, 3])20result = s.__array__(copy=copy)2122assert result.flags.writeable is copy232425def test_df_array_method() -> None:26df = pl.DataFrame({"a": [1, 2, 3], "b": [1.0, 2.0, 3.0]})2728out_array = np.asarray(df, order="F")29expected_array = np.array([[1.0, 1.0], [2.0, 2.0], [3.0, 3.0]], dtype=np.float64)30assert_array_equal(out_array, expected_array)31assert out_array.flags["F_CONTIGUOUS"] is True3233out_array = np.asarray(df, dtype=np.uint8, order="C")34expected_array = np.array([[1, 1], [2, 2], [3, 3]], dtype=np.uint8)35assert_array_equal(out_array, expected_array)36assert out_array.flags["C_CONTIGUOUS"] is True373839