diff --git a/python/cudf/cudf/core/algorithms.py b/python/cudf/cudf/core/algorithms.py index 0e8e93af88a..4b14b2911fe 100644 --- a/python/cudf/cudf/core/algorithms.py +++ b/python/cudf/cudf/core/algorithms.py @@ -11,7 +11,10 @@ from cudf.core.column import as_column from cudf.core.dtypes import CategoricalDtype from cudf.options import get_option -from cudf.utils.dtypes import can_convert_to_column, cudf_dtype_to_pa_type +from cudf.utils.dtypes import ( + can_convert_to_column, + cudf_dtype_to_pa_type, +) if TYPE_CHECKING: from cudf.core.index import Index diff --git a/python/cudf/cudf/core/column/column.py b/python/cudf/cudf/core/column/column.py index 528b545999a..dd9ac6fdfe3 100644 --- a/python/cudf/cudf/core/column/column.py +++ b/python/cudf/cudf/core/column/column.py @@ -684,7 +684,9 @@ def data_array_view( raise ValueError(f"Unsupported mode: {mode}") else: obj = None - return cuda.as_cuda_array(obj).view(self.dtype) + return cuda.as_cuda_array(obj).view( + getattr(self.dtype, "numpy_dtype", self.dtype) + ) def mask_array_view( self, *, mode: Literal["write", "read"] = "write" @@ -1227,6 +1229,7 @@ def __setitem__(self, key: Any, value: Any) -> None: If ``value`` and ``self`` are of different types, ``value`` is coerced to ``self.dtype``. Assumes ``self`` and ``value`` are index-aligned. """ + # import pdb;pdb.set_trace() value_normalized = self._cast_setitem_value(value) if isinstance(key, slice): out: ColumnBase | None = self._scatter_by_slice( @@ -1633,6 +1636,7 @@ def take( Skip bounds checking if check_bounds is False. Set rows to null for all out of bound indices if nullify is `True`. """ + # import pdb;pdb.set_trace() # Handle zero size if indices.size == 0: return cast(Self, column_empty(row_count=0, dtype=self.dtype)) @@ -1791,6 +1795,7 @@ def can_cast_safely(self, to_dtype: DtypeObj) -> bool: @acquire_spill_lock() def cast(self, dtype: Dtype) -> ColumnBase: + # import pdb;pdb.set_trace() result = type(self).from_pylibcudf( plc.unary.cast( self.to_pylibcudf(mode="read"), dtype_to_pylibcudf_type(dtype) @@ -1802,10 +1807,16 @@ def cast(self, dtype: Dtype) -> ColumnBase: ): result.dtype.precision = dtype.precision # type: ignore[union-attr] if cudf.get_option("mode.pandas_compatible") and result.dtype != dtype: + if self.dtype.kind == "f" and is_pandas_nullable_extension_dtype( + dtype + ): + result = result.set_mask(self.nans_to_nulls().mask) + # result = result.nans_to_nulls() result._dtype = dtype return result def astype(self, dtype: DtypeObj, copy: bool = False) -> ColumnBase: + # import pdb;pdb.set_trace() if self.dtype == dtype: result = self elif len(self) == 0: @@ -2246,15 +2257,19 @@ def _return_sentinel_column(): def copy_if_else( self, other: Self | plc.Scalar, boolean_mask: NumericalColumn ) -> Self: - return type(self).from_pylibcudf( # type: ignore[return-value] - plc.copying.copy_if_else( - self.to_pylibcudf(mode="read"), - other - if isinstance(other, plc.Scalar) - else other.to_pylibcudf(mode="read"), - boolean_mask.to_pylibcudf(mode="read"), + return ( + type(self) + .from_pylibcudf( # type: ignore[return-value] + plc.copying.copy_if_else( + self.to_pylibcudf(mode="read"), + other + if isinstance(other, plc.Scalar) + else other.to_pylibcudf(mode="read"), + boolean_mask.to_pylibcudf(mode="read"), + ) ) - ) + ._with_type_metadata(self.dtype) + ) # type: ignore[return-value] def split_by_offsets( self, offsets: list[int] @@ -2948,7 +2963,9 @@ def as_column( if isinstance(arbitrary, NumpyExtensionArray): # infer_dtype does not handle NumpyExtensionArray arbitrary = np.array(arbitrary, dtype=object) - inferred_dtype = infer_dtype(arbitrary) + inferred_dtype = infer_dtype( + arbitrary, skipna=not cudf.get_option("mode.pandas_compatible") + ) if inferred_dtype in ("mixed-integer", "mixed-integer-float"): raise MixedTypeError("Cannot create column with mixed types") elif dtype is None and inferred_dtype not in ( @@ -2984,6 +3001,14 @@ def as_column( arbitrary, from_pandas=True, ) + if ( + cudf.get_option("mode.pandas_compatible") + and inferred_dtype == "mixed" + and not isinstance( + pyarrow_array.type, (pa.ListType, pa.StructType) + ) + ): + raise MixedTypeError("Cannot create column with mixed types") return as_column( pyarrow_array, dtype=dtype, diff --git a/python/cudf/cudf/core/column/numerical.py b/python/cudf/cudf/core/column/numerical.py index ee266933af6..f1b9e2c1d88 100644 --- a/python/cudf/cudf/core/column/numerical.py +++ b/python/cudf/cudf/core/column/numerical.py @@ -199,6 +199,7 @@ def __invert__(self): return super().__invert__() def _binaryop(self, other: ColumnBinaryOperand, op: str) -> ColumnBase: + # import pdb;pdb.set_trace() int_float_dtype_mapping = { np.int8: np.float32, np.int16: np.float32, @@ -210,12 +211,34 @@ def _binaryop(self, other: ColumnBinaryOperand, op: str) -> ColumnBase: np.uint64: np.float64, np.bool_: np.float32, } + if cudf.get_option("mode.pandas_compatible"): + int_float_dtype_mapping = { + np.int8: np.float64, + np.int16: np.float64, + np.int32: np.float64, + np.int64: np.float64, + np.uint8: np.float64, + np.uint16: np.float64, + np.uint32: np.float64, + np.uint64: np.float64, + np.bool_: np.float64, + } + # if self.dtype.kind == "b": + # if op.strip("_").lstrip("r") in ["pow", "truediv", "floordiv"]: + # # match behavior with non-masked bool dtype + # raise NotImplementedError("Power and division not supported for boolean dtype") + # elif op in ["__sub__", "__rsub__"]: + # # exception message would include "numpy boolean subtract"" + # raise TypeError("Cannot subtract boolean dtype") + # return None out_dtype = None if op in {"__truediv__", "__rtruediv__"}: # Division with integer types results in a suitable float. if truediv_type := int_float_dtype_mapping.get(self.dtype.type): - return self.astype(np.dtype(truediv_type))._binaryop(other, op) + return self.astype( + get_dtype_of_same_kind(self.dtype, np.dtype(truediv_type)) + )._binaryop(other, op) elif op in { "__lt__", "__gt__", @@ -258,6 +281,7 @@ def _binaryop(self, other: ColumnBinaryOperand, op: str) -> ColumnBase: ) if out_dtype is None: + # import pdb;pdb.set_trace() out_dtype = find_common_type((self.dtype, other_cudf_dtype)) if op in {"__mod__", "__floordiv__"}: tmp = self if reflect else other @@ -270,6 +294,10 @@ def _binaryop(self, other: ColumnBinaryOperand, op: str) -> ColumnBase: out_dtype = get_dtype_of_same_kind( out_dtype, np.dtype(np.float64) ) + # elif tmp_dtype.kind == "b": + # out_dtype = get_dtype_of_same_kind( + # out_dtype, np.dtype(np.int8) + # ) if op in {"__and__", "__or__", "__xor__"}: if self.dtype.kind == "f" or other_cudf_dtype.kind == "f": @@ -296,7 +324,19 @@ def _binaryop(self, other: ColumnBinaryOperand, op: str) -> ColumnBase: lhs = pa_scalar_to_plc_scalar(lhs) elif isinstance(rhs, pa.Scalar): rhs = pa_scalar_to_plc_scalar(rhs) - return binaryop.binaryop(lhs, rhs, op, out_dtype) + res = binaryop.binaryop(lhs, rhs, op, out_dtype) + if op in {"__mod__", "__floordiv__"} and tmp_dtype.kind == "b": + res = res.astype( + get_dtype_of_same_kind(out_dtype, np.dtype(np.int8)) + ) + elif ( + op == "INT_POW" + and res.null_count + and not isinstance(rhs, plc.Scalar) + ): + res = res.copy_if_else(lhs, res._get_mask_as_column()) + pass + return res def nans_to_nulls(self: Self) -> Self: # Only floats can contain nan. @@ -338,7 +378,10 @@ def _normalize_binop_operand(self, other: Any) -> pa.Scalar | ColumnBase: # => np.int64 # np.promote_types(np.asarray([0], dtype=np.int64).dtype, np.uint8) # => np.int64 - common_dtype = np.result_type(self.dtype, other) # noqa: TID251 + + common_dtype = np.result_type( + getattr(self.dtype, "numpy_dtype", self.dtype), other + ) if common_dtype.kind in {"b", "i", "u", "f"}: if self.dtype.kind == "b" and not isinstance(other, bool): common_dtype = min_signed_type(other) @@ -405,16 +448,21 @@ def as_decimal_column(self, dtype: DecimalDtype) -> DecimalBaseColumn: return self.cast(dtype=dtype) # type: ignore[return-value] def as_numerical_column(self, dtype: Dtype) -> NumericalColumn: + # import pdb;pdb.set_trace() if dtype == self.dtype: return self if cudf.get_option("mode.pandas_compatible"): if dtype_to_pylibcudf_type(dtype) == dtype_to_pylibcudf_type( self.dtype ): + if self.dtype.kind == "f": + res = self.nans_to_nulls() + else: + res = self # Short-circuit the cast if the dtypes are equivalent # but not the same type object. - self._dtype = dtype - return self + res._dtype = dtype + return res return self.cast(dtype=dtype) # type: ignore[return-value] def all(self, skipna: bool = True) -> bool: diff --git a/python/cudf/cudf/core/dataframe.py b/python/cudf/cudf/core/dataframe.py index 2a92dc50bf3..9d4c7720107 100644 --- a/python/cudf/cudf/core/dataframe.py +++ b/python/cudf/cudf/core/dataframe.py @@ -5748,6 +5748,7 @@ def from_pandas(cls, dataframe, nan_as_null=no_default): 1 1 2 2 3 4 """ + # import pdb;pdb.set_trace() if nan_as_null is no_default: nan_as_null = ( False if cudf.get_option("mode.pandas_compatible") else None @@ -8708,6 +8709,7 @@ def from_pandas(obj, nan_as_null=no_default): >>> type(pmidx) """ + # import pdb;pdb.set_trace() if nan_as_null is no_default: nan_as_null = ( False if cudf.get_option("mode.pandas_compatible") else None diff --git a/python/cudf/cudf/core/series.py b/python/cudf/cudf/core/series.py index 3db176b489d..23213432827 100644 --- a/python/cudf/cudf/core/series.py +++ b/python/cudf/cudf/core/series.py @@ -65,6 +65,7 @@ find_common_type, is_dtype_obj_numeric, is_mixed_with_object_dtype, + is_pandas_nullable_extension_dtype, ) from cudf.utils.performance_tracking import _performance_tracking from cudf.utils.utils import _EQUALITY_OPS, _is_same_name @@ -205,7 +206,9 @@ def __setitem__(self, key, value): # In contrast to Column.__setitem__ (which downcasts the value to # the dtype of the column) here we upcast the series to the # larger data type mimicking pandas - if not (value is None or value is cudf.NA or value is np.nan): + if not (value is None or value is cudf.NA or value is np.nan) and ( + not is_pandas_nullable_extension_dtype(self._frame.dtype) + ): tmp_value = as_column(value) if tmp_value.dtype.kind in "uifb" and not ( self._frame.dtype.kind == "b" @@ -1268,6 +1271,7 @@ def __getitem__(self, arg): @_performance_tracking def __setitem__(self, key, value): + # import pdb;pdb.set_trace() if isinstance(key, slice): self.iloc[key] = value else: @@ -2926,6 +2930,8 @@ def unique(self): """ res = self._column.unique() if cudf.get_option("mode.pandas_compatible"): + if is_pandas_nullable_extension_dtype(self.dtype): + raise NotImplementedError("cudf does not support arrays") return res.values return Series._from_column(res, name=self.name) diff --git a/python/cudf/cudf/pandas/scripts/conftest-patch.py b/python/cudf/cudf/pandas/scripts/conftest-patch.py index 356b49404dc..c36a9609898 100644 --- a/python/cudf/cudf/pandas/scripts/conftest-patch.py +++ b/python/cudf/cudf/pandas/scripts/conftest-patch.py @@ -106,9 +106,6 @@ def pytest_unconfigure(config): "tests/apply/test_frame_apply.py::test_apply_empty_infer_type[python-1-True-mean-index]", "tests/apply/test_frame_apply.py::test_apply_function_runs_once", "tests/apply/test_frame_apply.py::test_apply_raw_function_runs_once[python]", - "tests/apply/test_frame_apply.py::test_mixed_column_raises[max-df0]", - "tests/apply/test_frame_apply.py::test_mixed_column_raises[min-df0]", - "tests/apply/test_frame_apply.py::test_mixed_column_raises[sum-df0]", "tests/apply/test_frame_apply.py::test_nuiscance_columns", "tests/apply/test_frame_apply.py::test_nunique_empty", "tests/apply/test_frame_transform.py::test_transform_listlike[axis='columns'-ops0-names0]", @@ -708,16 +705,10 @@ def pytest_unconfigure(config): "tests/arrays/datetimes/test_constructors.py::test_from_arrow_with_different_units_and_timezones_with[s-s-UTC-UTC-data0]", "tests/arrays/datetimes/test_constructors.py::test_from_arrow_with_different_units_and_timezones_with[us-ms-UTC-Europe/Berlin-data5]", "tests/arrays/datetimes/test_constructors.py::test_from_arrow_with_different_units_and_timezones_with[us-us-US/Eastern-UTC-data2]", - "tests/arrays/floating/test_arithmetic.py::test_cross_type_arithmetic", "tests/arrays/floating/test_astype.py::test_astype_copy", "tests/arrays/floating/test_comparison.py::TestComparisonOps::test_ufunc_with_out[Float32Dtype]", "tests/arrays/floating/test_comparison.py::TestComparisonOps::test_ufunc_with_out[Float64Dtype]", "tests/arrays/floating/test_construction.py::test_floating_array_constructor_copy", - "tests/arrays/floating/test_construction.py::test_series_from_float[Float32Dtype]", - "tests/arrays/floating/test_construction.py::test_series_from_float[Float64Dtype]", - "tests/arrays/floating/test_function.py::test_stat_method[kurtosis-kwargs4]", - "tests/arrays/floating/test_function.py::test_stat_method[sem-kwargs6]", - "tests/arrays/floating/test_function.py::test_stat_method[skew-kwargs5]", "tests/arrays/floating/test_function.py::test_ufuncs_single[absolute]", "tests/arrays/floating/test_function.py::test_ufuncs_single[sign]", "tests/arrays/floating/test_function.py::test_value_counts_empty", @@ -748,26 +739,6 @@ def pytest_unconfigure(config): "tests/arrays/integer/test_arithmetic.py::test_arith_coerce_scalar[UInt8Dtype-__floordiv__]", "tests/arrays/integer/test_arithmetic.py::test_arith_coerce_scalar[UInt8Dtype-__rtruediv__]", "tests/arrays/integer/test_arithmetic.py::test_arith_coerce_scalar[UInt8Dtype-__truediv__]", - "tests/arrays/integer/test_arithmetic.py::test_arithmetic_conversion[__rtruediv__-1.0]", - "tests/arrays/integer/test_arithmetic.py::test_arithmetic_conversion[__rtruediv__-other1]", - "tests/arrays/integer/test_arithmetic.py::test_arithmetic_conversion[__truediv__-1.0]", - "tests/arrays/integer/test_arithmetic.py::test_arithmetic_conversion[__truediv__-other1]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[Int16Dtype-__mul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[Int16Dtype-__rmul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[Int32Dtype-__mul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[Int32Dtype-__rmul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[Int64Dtype-__mul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[Int64Dtype-__rmul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[Int8Dtype-__mul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[Int8Dtype-__rmul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[UInt16Dtype-__mul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[UInt16Dtype-__rmul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[UInt32Dtype-__mul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[UInt32Dtype-__rmul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[UInt64Dtype-__mul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[UInt64Dtype-__rmul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[UInt8Dtype-__mul__]", - "tests/arrays/integer/test_arithmetic.py::test_error_invalid_values[UInt8Dtype-__rmul__]", "tests/arrays/integer/test_arithmetic.py::test_values_multiplying_large_series_by_NA", "tests/arrays/integer/test_comparison.py::TestComparisonOps::test_ufunc_with_out[Int16Dtype]", "tests/arrays/integer/test_comparison.py::TestComparisonOps::test_ufunc_with_out[Int32Dtype]", @@ -777,14 +748,6 @@ def pytest_unconfigure(config): "tests/arrays/integer/test_comparison.py::TestComparisonOps::test_ufunc_with_out[UInt32Dtype]", "tests/arrays/integer/test_comparison.py::TestComparisonOps::test_ufunc_with_out[UInt64Dtype]", "tests/arrays/integer/test_comparison.py::TestComparisonOps::test_ufunc_with_out[UInt8Dtype]", - "tests/arrays/integer/test_construction.py::test_from_dtype_from_float[Int16Dtype]", - "tests/arrays/integer/test_construction.py::test_from_dtype_from_float[Int32Dtype]", - "tests/arrays/integer/test_construction.py::test_from_dtype_from_float[Int64Dtype]", - "tests/arrays/integer/test_construction.py::test_from_dtype_from_float[Int8Dtype]", - "tests/arrays/integer/test_construction.py::test_from_dtype_from_float[UInt16Dtype]", - "tests/arrays/integer/test_construction.py::test_from_dtype_from_float[UInt32Dtype]", - "tests/arrays/integer/test_construction.py::test_from_dtype_from_float[UInt64Dtype]", - "tests/arrays/integer/test_construction.py::test_from_dtype_from_float[UInt8Dtype]", "tests/arrays/integer/test_construction.py::test_integer_array_constructor_copy", "tests/arrays/integer/test_dtypes.py::test_astype[data-Int16Dtype]", "tests/arrays/integer/test_dtypes.py::test_astype[data-Int32Dtype]", @@ -807,7 +770,6 @@ def pytest_unconfigure(config): "tests/arrays/integer/test_function.py::test_ufuncs_single_int[sign]", "tests/arrays/integer/test_function.py::test_value_counts_empty", "tests/arrays/integer/test_function.py::test_value_counts_with_normalize", - "tests/arrays/integer/test_reduction.py::test_dataframe_reductions[kurt-expected9]", "tests/arrays/interval/test_interval.py::TestSetitem::test_set_na[float64]", "tests/arrays/interval/test_interval_pyarrow.py::test_arrow_array", "tests/arrays/interval/test_interval_pyarrow.py::test_arrow_array_missing", @@ -988,12 +950,6 @@ def pytest_unconfigure(config): "tests/arrays/string_/test_string.py::test_arrow_roundtrip[pyarrow-pyarrow_numpy]", "tests/arrays/string_/test_string.py::test_arrow_roundtrip[pyarrow_numpy-pyarrow_numpy]", "tests/arrays/string_/test_string.py::test_arrow_roundtrip[python-pyarrow_numpy]", - "tests/arrays/string_/test_string.py::test_astype_float[pyarrow-Float32]", - "tests/arrays/string_/test_string.py::test_astype_float[pyarrow-Float64]", - "tests/arrays/string_/test_string.py::test_astype_float[pyarrow_numpy-Float32]", - "tests/arrays/string_/test_string.py::test_astype_float[pyarrow_numpy-Float64]", - "tests/arrays/string_/test_string.py::test_astype_float[python-Float32]", - "tests/arrays/string_/test_string.py::test_astype_float[python-Float64]", "tests/arrays/string_/test_string.py::test_astype_roundtrip[pyarrow]", "tests/arrays/string_/test_string.py::test_astype_roundtrip[pyarrow_numpy]", "tests/arrays/string_/test_string.py::test_astype_roundtrip[python]", @@ -2327,7 +2283,6 @@ def pytest_unconfigure(config): "tests/dtypes/test_dtypes.py::test_registry_find[period[D]-expected4]", "tests/dtypes/test_generic.py::test_setattr_warnings", "tests/dtypes/test_inference.py::TestTypeInference::test_date", - "tests/dtypes/test_inference.py::TestTypeInference::test_object_empty[Series-object-nan-False-floating]", "tests/dtypes/test_inference.py::test_is_scipy_sparse[dok]", "tests/dtypes/test_missing.py::test_array_equivalent_series[val5]", "tests/dtypes/test_missing.py::test_array_equivalent_series[val6]", @@ -3447,48 +3402,6 @@ def pytest_unconfigure(config): "tests/extension/test_arrow.py::TestArrowArray::test_setitem_frame_2d_values[uint32]", "tests/extension/test_arrow.py::TestArrowArray::test_setitem_frame_2d_values[uint64]", "tests/extension/test_arrow.py::TestArrowArray::test_setitem_frame_2d_values[uint8]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[bool-full_slice]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[bool-index]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[bool-list(range)]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[bool-list[index]]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[bool-mask]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[bool-null_slice]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[bool-range]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[decimal128(7, 3)-full_slice]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[decimal128(7, 3)-index]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[decimal128(7, 3)-list(range)]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[decimal128(7, 3)-list[index]]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[decimal128(7, 3)-mask]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[decimal128(7, 3)-null_slice]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[decimal128(7, 3)-range]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ms]-full_slice]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ms]-index]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ms]-list(range)]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ms]-list[index]]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ms]-mask]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ms]-null_slice]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ms]-range]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ns]-full_slice]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ns]-index]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ns]-list(range)]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ns]-list[index]]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ns]-mask]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ns]-null_slice]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[ns]-range]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[s]-full_slice]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[s]-index]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[s]-list(range)]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[s]-list[index]]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[s]-mask]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[s]-null_slice]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[s]-range]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[us]-full_slice]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[us]-index]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[us]-list(range)]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[us]-list[index]]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[us]-mask]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[us]-null_slice]", - "tests/extension/test_arrow.py::TestArrowArray::test_setitem_series[duration[us]-range]", "tests/extension/test_arrow.py::TestArrowArray::test_setitem_with_expansion_row[decimal128(7, 3)]", "tests/extension/test_arrow.py::TestArrowArray::test_to_numpy[decimal128(7, 3)]", "tests/extension/test_arrow.py::TestArrowArray::test_to_numpy[double]", @@ -3755,7 +3668,6 @@ def pytest_unconfigure(config): "tests/extension/test_arrow.py::test_describe_numeric_data[pa_type7]", "tests/extension/test_arrow.py::test_describe_numeric_data[pa_type8]", "tests/extension/test_arrow.py::test_describe_numeric_data[pa_type9]", - "tests/extension/test_arrow.py::test_dt_components", "tests/extension/test_arrow.py::test_dt_day_month_name[day_name-Sunday]", "tests/extension/test_arrow.py::test_dt_day_month_name[month_name-January]", "tests/extension/test_arrow.py::test_dt_days_in_month[days_in_month]", @@ -3965,55 +3877,12 @@ def pytest_unconfigure(config): "tests/extension/test_masked.py::TestMaskedArrays::test_argsort_missing[UInt32Dtype]", "tests/extension/test_masked.py::TestMaskedArrays::test_argsort_missing[UInt64Dtype]", "tests/extension/test_masked.py::TestMaskedArrays::test_argsort_missing[UInt8Dtype]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[Int16Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[Int16Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[Int32Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[Int32Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[Int64Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[Int64Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[Int8Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[Int8Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[UInt16Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[UInt16Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[UInt32Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[UInt32Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[UInt64Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[UInt64Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[UInt8Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[UInt8Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[BooleanDtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[Int16Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[Int16Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[Int32Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[Int32Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[Int64Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[Int64Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[Int8Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[Int8Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[UInt16Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[UInt16Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[UInt32Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[UInt32Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[UInt64Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[UInt64Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[UInt8Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[UInt8Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[Int16Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[Int16Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[Int32Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[Int32Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[Int64Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[Int64Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[Int8Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[Int8Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[UInt16Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[UInt16Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[UInt32Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[UInt32Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[UInt64Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[UInt64Dtype-__truediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[UInt8Dtype-__rtruediv__]", - "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[UInt8Dtype-__truediv__]", + "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[Float32Dtype-__floordiv__]", + "tests/extension/test_masked.py::TestMaskedArrays::test_arith_frame_with_scalar[Float64Dtype-__floordiv__]", + "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[Float32Dtype-__floordiv__]", + "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_array[Float64Dtype-__floordiv__]", + "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[Float32Dtype-__floordiv__]", + "tests/extension/test_masked.py::TestMaskedArrays::test_arith_series_with_scalar[Float64Dtype-__floordiv__]", "tests/extension/test_masked.py::TestMaskedArrays::test_astype_own_type[BooleanDtype-False]", "tests/extension/test_masked.py::TestMaskedArrays::test_astype_own_type[Float32Dtype-False]", "tests/extension/test_masked.py::TestMaskedArrays::test_astype_own_type[Float64Dtype-False]", @@ -4224,13 +4093,6 @@ def pytest_unconfigure(config): "tests/extension/test_masked.py::TestMaskedArrays::test_setitem_frame_2d_values[UInt32Dtype]", "tests/extension/test_masked.py::TestMaskedArrays::test_setitem_frame_2d_values[UInt64Dtype]", "tests/extension/test_masked.py::TestMaskedArrays::test_setitem_frame_2d_values[UInt8Dtype]", - "tests/extension/test_masked.py::TestMaskedArrays::test_setitem_series[BooleanDtype-full_slice]", - "tests/extension/test_masked.py::TestMaskedArrays::test_setitem_series[BooleanDtype-index]", - "tests/extension/test_masked.py::TestMaskedArrays::test_setitem_series[BooleanDtype-list(range)]", - "tests/extension/test_masked.py::TestMaskedArrays::test_setitem_series[BooleanDtype-list[index]]", - "tests/extension/test_masked.py::TestMaskedArrays::test_setitem_series[BooleanDtype-mask]", - "tests/extension/test_masked.py::TestMaskedArrays::test_setitem_series[BooleanDtype-null_slice]", - "tests/extension/test_masked.py::TestMaskedArrays::test_setitem_series[BooleanDtype-range]", "tests/extension/test_masked.py::TestMaskedArrays::test_to_numpy[Float32Dtype]", "tests/extension/test_masked.py::TestMaskedArrays::test_to_numpy[Float64Dtype]", "tests/extension/test_masked.py::TestMaskedArrays::test_to_numpy[Int16Dtype]", @@ -4888,7 +4750,6 @@ def pytest_unconfigure(config): "tests/frame/methods/test_astype.py::TestAstype::test_astype_dt64_to_string[Series-None]", "tests/frame/methods/test_astype.py::TestAstype::test_astype_dt64tz", "tests/frame/methods/test_astype.py::TestAstype::test_astype_dt64tz_to_str", - "tests/frame/methods/test_astype.py::TestAstype::test_astype_extension_dtypes_duplicate_col[Int64]", "tests/frame/methods/test_astype.py::TestAstype::test_astype_from_datetimelike_to_object[h-M8]", "tests/frame/methods/test_astype.py::TestAstype::test_astype_from_datetimelike_to_object[h-m8]", "tests/frame/methods/test_astype.py::TestAstype::test_astype_from_datetimelike_to_object[m-M8]", @@ -4949,8 +4810,6 @@ def pytest_unconfigure(config): "tests/frame/methods/test_describe.py::TestDataFrameDescribe::test_describe_datetime_columns", "tests/frame/methods/test_diff.py::TestDataFrameDiff::test_diff_all_int_dtype[int16]", "tests/frame/methods/test_diff.py::TestDataFrameDiff::test_diff_all_int_dtype[int8]", - "tests/frame/methods/test_diff.py::TestDataFrameDiff::test_diff_integer_na[0-expected0]", - "tests/frame/methods/test_diff.py::TestDataFrameDiff::test_diff_integer_na[1-expected1]", "tests/frame/methods/test_dot.py::TestDataFrameDot::test_dot_1d_ndarray", "tests/frame/methods/test_dot.py::TestDataFrameDot::test_dot_2d_ndarray", "tests/frame/methods/test_dot.py::TestDataFrameDot::test_dot_aligns", @@ -5292,22 +5151,6 @@ def pytest_unconfigure(config): "tests/frame/test_arithmetic.py::test_arithmetic_multiindex_align[python]", "tests/frame/test_arithmetic.py::test_bool_frame_mult_float[numexpr]", "tests/frame/test_arithmetic.py::test_bool_frame_mult_float[python]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[numexpr-Int16]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[numexpr-Int32]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[numexpr-Int64]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[numexpr-Int8]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[numexpr-UInt16]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[numexpr-UInt32]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[numexpr-UInt64]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[numexpr-UInt8]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[python-Int16]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[python-Int32]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[python-Int64]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[python-Int8]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[python-UInt16]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[python-UInt32]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[python-UInt64]", - "tests/frame/test_arithmetic.py::test_frame_sub_nullable_int[python-UInt8]", "tests/frame/test_arithmetic.py::test_frame_with_zero_len_series_corner_cases[numexpr]", "tests/frame/test_arithmetic.py::test_frame_with_zero_len_series_corner_cases[python]", "tests/frame/test_arithmetic.py::test_inplace_arithmetic_series_update[numexpr]", @@ -5734,266 +5577,26 @@ def pytest_unconfigure(config): "tests/frame/test_reductions.py::TestEmptyDataFrameReductions::test_df_empty_nullable_min_count_0[sum-UInt8-0-UInt64]", "tests/frame/test_reductions.py::TestNuisanceColumns::test_any_all_categorical_dtype_nuisance_column[all]", "tests/frame/test_reductions.py::TestNuisanceColumns::test_any_all_categorical_dtype_nuisance_column[any]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float32-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Float64-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int16-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int32-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int64-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-Int8-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt16-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt32-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt64-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[False-UInt8-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-0-kurtosis]", "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-2-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-0-kurtosis]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-2-kurtosis]", "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-2-sum]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-0-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-0-kurtosis]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-2-median]", "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-0-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-0-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-0-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-2-kurt]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-2-kurtosis]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt16-2-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-0-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt64-0-median]", "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-2-median]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-2-prod]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-2-product]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-2-sem]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-2-skew]", - "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt8-2-sum]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-UInt32-0-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int8-2-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-2-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-0-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-0-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int64-0-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-0-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int32-2-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Int16-2-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-0-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float32-2-median]", + "tests/frame/test_reductions.py::test_numeric_ea_axis_1[True-Float64-2-median]", "tests/frame/test_reductions.py::test_reduction_axis_none_returns_scalar[Float64-False-mean]", "tests/frame/test_reductions.py::test_reduction_axis_none_returns_scalar[Float64-False-median]", "tests/frame/test_reductions.py::test_reduction_axis_none_returns_scalar[Float64-True-mean]", @@ -6117,10 +5720,7 @@ def pytest_unconfigure(config): "tests/frame/test_stack_unstack.py::TestStackUnstackMultiLevel::test_unstack_unobserved_keys[True]", "tests/frame/test_stack_unstack.py::TestStackUnstackMultiLevel::test_unstack_with_level_has_nan", "tests/frame/test_stack_unstack.py::TestStackUnstackMultiLevel::test_unstack_with_missing_int_cast_to_float", - "tests/frame/test_stack_unstack.py::test_stack_preserves_na[True-Float64-nan]", "tests/frame/test_stack_unstack.py::test_unstack_non_slice_like_blocks", - "tests/frame/test_stack_unstack.py::test_unstack_sort_false[DataFrame-Float64]", - "tests/frame/test_stack_unstack.py::test_unstack_sort_false[Series-Float64]", "tests/frame/test_subclass.py::TestDataFrameSubclassing::test_asof", "tests/frame/test_subclass.py::TestDataFrameSubclassing::test_equals_subclass", "tests/frame/test_subclass.py::TestDataFrameSubclassing::test_frame_subclassing_and_slicing", @@ -7088,9 +6688,7 @@ def pytest_unconfigure(config): "tests/groupby/methods/test_nth.py::test_slice[arg2-expected_rows2]", "tests/groupby/methods/test_nth.py::test_slice[arg3-expected_rows3]", "tests/groupby/methods/test_quantile.py::test_groupby_quantile_NA_float[Float32]", - "tests/groupby/methods/test_quantile.py::test_groupby_quantile_NA_float[Float64]", "tests/groupby/methods/test_quantile.py::test_groupby_quantile_allNA_column[Float32]", - "tests/groupby/methods/test_quantile.py::test_groupby_quantile_allNA_column[Float64]", "tests/groupby/methods/test_quantile.py::test_groupby_quantile_all_na_group_masked[Float32-higher-2-3]", "tests/groupby/methods/test_quantile.py::test_groupby_quantile_all_na_group_masked[Float32-lower-2-2]", "tests/groupby/methods/test_quantile.py::test_groupby_quantile_all_na_group_masked[Float32-nearest-2-2]", @@ -7341,14 +6939,6 @@ def pytest_unconfigure(config): "tests/groupby/test_counting.py::test_count_arrow_string_array[string[pyarrow_numpy]]", "tests/groupby/test_counting.py::test_count_arrow_string_array[string[python]]", "tests/groupby/test_cumulative.py::test_cummin[np.int64]", - "tests/groupby/test_cumulative.py::test_cummin_max_all_nan_column[Float64-cummax]", - "tests/groupby/test_cumulative.py::test_cummin_max_all_nan_column[Float64-cummin]", - "tests/groupby/test_cumulative.py::test_cummin_max_all_nan_column[Int64-cummax]", - "tests/groupby/test_cumulative.py::test_cummin_max_all_nan_column[Int64-cummin]", - "tests/groupby/test_cumulative.py::test_cummin_max_all_nan_column[UInt64-cummax]", - "tests/groupby/test_cumulative.py::test_cummin_max_all_nan_column[UInt64-cummin]", - "tests/groupby/test_cumulative.py::test_cummin_max_all_nan_column[boolean-cummax]", - "tests/groupby/test_cumulative.py::test_cummin_max_all_nan_column[boolean-cummin]", "tests/groupby/test_cumulative.py::test_cython_api2", "tests/groupby/test_cumulative.py::test_groupby_cumprod_nan_influences_other_columns", "tests/groupby/test_cumulative.py::test_numpy_compat[cumprod]", @@ -8647,10 +8237,6 @@ def pytest_unconfigure(config): "tests/indexes/test_base.py::TestIndex::test_empty_fancy_raises[uint32]", "tests/indexes/test_base.py::TestIndex::test_empty_fancy_raises[uint64]", "tests/indexes/test_base.py::TestIndex::test_equals_op_mismatched_multiindex_raises[index0]", - "tests/indexes/test_base.py::TestIndex::test_format_missing[Decimal-vals1]", - "tests/indexes/test_base.py::TestIndex::test_format_missing[NAType-vals1]", - "tests/indexes/test_base.py::TestIndex::test_format_missing[NaTType-vals1]", - "tests/indexes/test_base.py::TestIndex::test_format_missing[NoneType-vals1]", "tests/indexes/test_base.py::TestIndex::test_is_", "tests/indexes/test_base.py::TestIndex::test_isin_level_kwarg_bad_label_raises[bool-dtype-nan]", "tests/indexes/test_base.py::TestIndex::test_isin_level_kwarg_bad_label_raises[categorical-nan]", @@ -8705,17 +8291,7 @@ def pytest_unconfigure(config): "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_float64[NoneType-float32]", "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_float64[NoneType-float64]", "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_float64[NoneType-float]", - "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_object[Decimal-NAType]", - "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_object[Decimal-NaTType]", - "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_object[Decimal-NoneType]", - "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_object[NAType-Decimal]", - "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_object[NAType-NaTType]", - "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_object[NAType-NoneType]", - "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_object[NaTType-Decimal]", - "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_object[NaTType-NAType]", - "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_object[NaTType-NoneType]", "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_object[NoneType-Decimal]", - "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_object[NoneType-NAType]", "tests/indexes/test_base.py::TestIndex::test_isin_nan_common_object[NoneType-NaTType]", "tests/indexes/test_base.py::TestIndex::test_map_defaultdict", "tests/indexes/test_base.py::TestIndex::test_str_attribute_raises[index2]", @@ -9376,7 +8952,6 @@ def pytest_unconfigure(config): "tests/indexing/test_iat.py::test_iat_setitem_item_cache_cleared[iloc]", "tests/indexing/test_iloc.py::TestILocCallable::test_frame_iloc_setitem_callable", "tests/indexing/test_iloc.py::TestILocErrors::test_iloc_getitem_setitem_fancy_exceptions", - "tests/indexing/test_iloc.py::TestILocSeries::test_iloc_nullable_int64_size_1_nan", "tests/indexing/test_iloc.py::TestiLocBaseIndependent::test_identity_slice_returns_new_object", "tests/indexing/test_iloc.py::TestiLocBaseIndependent::test_iloc_getitem_doc_issue", "tests/indexing/test_iloc.py::TestiLocBaseIndependent::test_iloc_getitem_int_single_ea_block_view", @@ -10765,7 +10340,6 @@ def pytest_unconfigure(config): "tests/io/formats/style/test_html.py::test_sticky_levels[one-False-True]", "tests/io/formats/style/test_html.py::test_sticky_levels[one-True-False]", "tests/io/formats/style/test_html.py::test_sticky_levels[one-True-True]", - "tests/io/formats/style/test_matplotlib.py::test_background_gradient_nullable_dtypes", "tests/io/formats/style/test_style.py::TestStyler::test_apply_axis", "tests/io/formats/style/test_style.py::TestStyler::test_caption", "tests/io/formats/style/test_style.py::TestStyler::test_export", @@ -10822,7 +10396,6 @@ def pytest_unconfigure(config): "tests/io/formats/test_to_csv.py::TestToCSV::test_to_csv_different_datetime_formats", "tests/io/formats/test_to_csv.py::TestToCSV::test_to_csv_multi_index", "tests/io/formats/test_to_csv.py::TestToCSV::test_to_csv_na_rep", - "tests/io/formats/test_to_csv.py::TestToCSV::test_to_csv_na_rep_long_string[Int64]", "tests/io/formats/test_to_csv.py::TestToCSV::test_to_csv_with_single_column", "tests/io/formats/test_to_html.py::test_to_html_truncate", "tests/io/formats/test_to_html.py::test_to_html_truncate_multi_index[False-truncate_multi_index_sparse_off]", @@ -10922,26 +10495,6 @@ def pytest_unconfigure(config): "tests/io/json/test_pandas.py::TestPandasContainer::test_index_false_to_json_table[data3]", "tests/io/json/test_pandas.py::TestPandasContainer::test_index_false_to_json_table[data4]", "tests/io/json/test_pandas.py::TestPandasContainer::test_index_false_to_json_table[data5]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[pyarrow-numpy_nullable-columns]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[pyarrow-numpy_nullable-index]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[pyarrow-numpy_nullable-records]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[pyarrow-numpy_nullable-split]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[pyarrow-numpy_nullable-values]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[pyarrow-pyarrow-columns]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[pyarrow-pyarrow-index]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[pyarrow-pyarrow-records]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[pyarrow-pyarrow-split]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[pyarrow-pyarrow-values]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[python-numpy_nullable-columns]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[python-numpy_nullable-index]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[python-numpy_nullable-records]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[python-numpy_nullable-split]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[python-numpy_nullable-values]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[python-pyarrow-columns]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[python-pyarrow-index]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[python-pyarrow-records]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[python-pyarrow-split]", - "tests/io/json/test_pandas.py::TestPandasContainer::test_read_json_dtype_backend[python-pyarrow-values]", "tests/io/json/test_pandas.py::TestPandasContainer::test_read_timezone_information", "tests/io/json/test_pandas.py::TestPandasContainer::test_timedelta", "tests/io/json/test_pandas.py::TestPandasContainer::test_timedelta2", @@ -11070,14 +10623,6 @@ def pytest_unconfigure(config): "tests/io/test_fsspec.py::test_non_fsspec_options", "tests/io/test_fsspec.py::test_read_csv", "tests/io/test_fsspec.py::test_to_csv", - "tests/io/test_html.py::TestReadHtml::test_dtype_backend[pyarrow-numpy_nullable-bs4]", - "tests/io/test_html.py::TestReadHtml::test_dtype_backend[pyarrow-numpy_nullable-lxml]", - "tests/io/test_html.py::TestReadHtml::test_dtype_backend[pyarrow-pyarrow-bs4]", - "tests/io/test_html.py::TestReadHtml::test_dtype_backend[pyarrow-pyarrow-lxml]", - "tests/io/test_html.py::TestReadHtml::test_dtype_backend[python-numpy_nullable-bs4]", - "tests/io/test_html.py::TestReadHtml::test_dtype_backend[python-numpy_nullable-lxml]", - "tests/io/test_html.py::TestReadHtml::test_dtype_backend[python-pyarrow-bs4]", - "tests/io/test_html.py::TestReadHtml::test_dtype_backend[python-pyarrow-lxml]", "tests/io/test_html.py::TestReadHtml::test_extract_links[bs4-header]", "tests/io/test_html.py::TestReadHtml::test_extract_links[lxml-header]", "tests/io/test_orc.py::test_orc_reader_basic", @@ -11115,38 +10660,6 @@ def pytest_unconfigure(config): "tests/io/test_sql.py::test_execute_sql[sqlite_engine_iris]", "tests/io/test_sql.py::test_execute_sql[sqlite_engine_iris]", "tests/io/test_sql.py::test_execute_sql[sqlite_str_iris]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-numpy_nullable-read_sql-sqlite_buildin]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-numpy_nullable-read_sql-sqlite_conn]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-numpy_nullable-read_sql-sqlite_engine]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-numpy_nullable-read_sql-sqlite_str]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-numpy_nullable-read_sql_query-sqlite_buildin]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-numpy_nullable-read_sql_query-sqlite_conn]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-numpy_nullable-read_sql_query-sqlite_engine]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-numpy_nullable-read_sql_query-sqlite_str]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-pyarrow-read_sql-sqlite_buildin]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-pyarrow-read_sql-sqlite_conn]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-pyarrow-read_sql-sqlite_engine]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-pyarrow-read_sql-sqlite_str]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-pyarrow-read_sql_query-sqlite_buildin]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-pyarrow-read_sql_query-sqlite_conn]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-pyarrow-read_sql_query-sqlite_engine]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[pyarrow-pyarrow-read_sql_query-sqlite_str]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-numpy_nullable-read_sql-sqlite_buildin]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-numpy_nullable-read_sql-sqlite_conn]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-numpy_nullable-read_sql-sqlite_engine]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-numpy_nullable-read_sql-sqlite_str]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-numpy_nullable-read_sql_query-sqlite_buildin]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-numpy_nullable-read_sql_query-sqlite_conn]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-numpy_nullable-read_sql_query-sqlite_engine]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-numpy_nullable-read_sql_query-sqlite_str]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-pyarrow-read_sql-sqlite_buildin]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-pyarrow-read_sql-sqlite_conn]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-pyarrow-read_sql-sqlite_engine]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-pyarrow-read_sql-sqlite_str]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-pyarrow-read_sql_query-sqlite_buildin]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-pyarrow-read_sql_query-sqlite_conn]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-pyarrow-read_sql_query-sqlite_engine]", - "tests/io/test_sql.py::test_read_sql_dtype_backend[python-pyarrow-read_sql_query-sqlite_str]", "tests/io/test_sql.py::test_sqlalchemy_integer_mapping[Int16-SMALLINT-sqlite_conn]", "tests/io/test_sql.py::test_sqlalchemy_integer_mapping[Int16-SMALLINT-sqlite_engine]", "tests/io/test_sql.py::test_sqlalchemy_integer_mapping[Int16-SMALLINT-sqlite_str]", @@ -11244,10 +10757,6 @@ def pytest_unconfigure(config): "tests/io/xml/test_xml.py::test_empty_stylesheet[1]", "tests/io/xml/test_xml.py::test_wrong_file_path[etree]", "tests/io/xml/test_xml.py::test_wrong_file_path[lxml]", - "tests/io/xml/test_xml_dtypes.py::test_dtype_nullable_int[etree]", - "tests/io/xml/test_xml_dtypes.py::test_dtype_nullable_int[lxml]", - "tests/io/xml/test_xml_dtypes.py::test_dtypes_with_names[etree]", - "tests/io/xml/test_xml_dtypes.py::test_dtypes_with_names[lxml]", "tests/libs/test_libalgos.py::test_ensure_platform_int", "tests/plotting/frame/test_frame.py::TestDataFramePlots::test_unordered_ts", "tests/plotting/test_boxplot_method.py::TestDataFramePlots::test_boxplot_legacy1_series", @@ -12398,7 +11907,6 @@ def pytest_unconfigure(config): "tests/series/indexing/test_setitem.py::TestCoercionDatetime64TZ::test_int_key[setitem-val1-datetime64[ns, US/Eastern]-None]", "tests/series/indexing/test_setitem.py::TestCoercionDatetime64TZ::test_series_where[val0-datetime64[ns, US/Eastern]-None]", "tests/series/indexing/test_setitem.py::TestCoercionDatetime64TZ::test_series_where[val1-datetime64[ns, US/Eastern]-None]", - "tests/series/indexing/test_setitem.py::TestCoercionFloat32::test_index_putmask[True-object-FutureWarning]", "tests/series/indexing/test_setitem.py::TestCoercionFloat32::test_index_where[True-object-FutureWarning]", "tests/series/indexing/test_setitem.py::TestCoercionFloat32::test_int_key[iloc-(1+1j)-complex128-FutureWarning]", "tests/series/indexing/test_setitem.py::TestCoercionFloat32::test_int_key[iloc-1-float32-None]", @@ -12461,7 +11969,6 @@ def pytest_unconfigure(config): "tests/series/indexing/test_setitem.py::TestCoercionFloat32::test_series_where[val5-float32-None]", "tests/series/indexing/test_setitem.py::TestCoercionFloat32::test_series_where[val7-float32-None]", "tests/series/indexing/test_setitem.py::TestCoercionFloat32::test_series_where[val8-float32-None]", - "tests/series/indexing/test_setitem.py::TestCoercionFloat64::test_index_putmask[True-object-FutureWarning]", "tests/series/indexing/test_setitem.py::TestCoercionFloat64::test_index_where[True-object-FutureWarning]", "tests/series/indexing/test_setitem.py::TestCoercionFloat64::test_int_key[iloc-(1+1j)-complex128-FutureWarning]", "tests/series/indexing/test_setitem.py::TestCoercionFloat64::test_int_key[iloc-1-float64-None]", @@ -12622,8 +12129,6 @@ def pytest_unconfigure(config): "tests/series/indexing/test_setitem.py::TestSeriesNoneCoercion::test_series_where[obj1-expected1-None]", "tests/series/indexing/test_setitem.py::TestSeriesNoneCoercion::test_series_where[obj2-expected2-None]", "tests/series/indexing/test_setitem.py::TestSeriesNoneCoercion::test_series_where[obj3-expected3-None]", - "tests/series/indexing/test_setitem.py::TestSetitemBooleanMask::test_setitem_boolean_nullable_int_types[Float32]", - "tests/series/indexing/test_setitem.py::TestSetitemBooleanMask::test_setitem_boolean_nullable_int_types[Float64]", "tests/series/indexing/test_setitem.py::TestSetitemBooleanMask::test_setitem_boolean_nullable_int_types[Int16]", "tests/series/indexing/test_setitem.py::TestSetitemBooleanMask::test_setitem_boolean_nullable_int_types[Int32]", "tests/series/indexing/test_setitem.py::TestSetitemBooleanMask::test_setitem_boolean_nullable_int_types[Int64]", @@ -12864,7 +12369,6 @@ def pytest_unconfigure(config): "tests/series/indexing/test_setitem.py::TestSetitemDT64IntoInt::test_slice_key[m8[ns]-list-iloc]", "tests/series/indexing/test_setitem.py::TestSetitemDT64IntoInt::test_slice_key[m8[ns]-list-loc]", "tests/series/indexing/test_setitem.py::TestSetitemDT64IntoInt::test_slice_key[m8[ns]-list-setitem]", - "tests/series/indexing/test_setitem.py::TestSetitemDT64Values::test_object_series_setitem_dt64array_exact_match", "tests/series/indexing/test_setitem.py::TestSetitemFloatIntervalWithIntIntervalValues::test_int_key[iloc]", "tests/series/indexing/test_setitem.py::TestSetitemFloatIntervalWithIntIntervalValues::test_int_key[loc]", "tests/series/indexing/test_setitem.py::TestSetitemFloatIntervalWithIntIntervalValues::test_int_key[setitem]", @@ -13190,7 +12694,6 @@ def pytest_unconfigure(config): "tests/series/indexing/test_setitem.py::TestSetitemWithExpansion::test_setitem_enlargement_object_none[Decimal]", "tests/series/indexing/test_setitem.py::TestSetitemWithExpansion::test_setitem_enlargement_object_none[NAType]", "tests/series/indexing/test_setitem.py::TestSetitemWithExpansion::test_setitem_enlargement_object_none[NaTType]", - "tests/series/indexing/test_setitem.py::TestSetitemWithExpansion::test_setitem_enlargement_object_none[NoneType]", "tests/series/indexing/test_setitem.py::TestSetitemWithExpansion::test_setitem_enlargement_object_none[float0]", "tests/series/indexing/test_setitem.py::TestSetitemWithExpansion::test_setitem_enlargement_object_none[float1]", "tests/series/indexing/test_setitem.py::TestSetitemWithExpansion::test_setitem_keep_precision[Float32]", @@ -13266,10 +12769,7 @@ def pytest_unconfigure(config): "tests/series/methods/test_astype.py::TestAstype::test_astype_float_to_uint_negatives_raise[float64-uint64]", "tests/series/methods/test_astype.py::TestAstype::test_astype_float_to_uint_negatives_raise[float64-uint8]", "tests/series/methods/test_astype.py::TestAstype::test_astype_from_float_to_str[float32]", - "tests/series/methods/test_astype.py::TestAstype::test_astype_nan_to_bool", "tests/series/methods/test_astype.py::TestAstype::test_astype_str_cast_td64", - "tests/series/methods/test_astype.py::TestAstype::test_astype_to_str_preserves_na[None-None]", - "tests/series/methods/test_astype.py::TestAstype::test_astype_to_str_preserves_na[value2-]", "tests/series/methods/test_astype.py::TestAstype::test_dt64_series_astype_object", "tests/series/methods/test_astype.py::TestAstype::test_td64_series_astype_object", "tests/series/methods/test_astype.py::TestAstypeCategorical::test_astype_categorical_to_categorical[False-True-None]", @@ -13280,7 +12780,6 @@ def pytest_unconfigure(config): "tests/series/methods/test_astype.py::TestAstypeCategorical::test_astype_int_na_string", "tests/series/methods/test_astype.py::TestAstypeString::test_astype_string_to_extension_dtype_roundtrip[string[pyarrow]-data1-category]", "tests/series/methods/test_astype.py::TestAstypeString::test_astype_string_to_extension_dtype_roundtrip[string[python]-data1-category]", - "tests/series/methods/test_case_when.py::test_case_when_multiple_conditions_replacement_extension_dtype", "tests/series/methods/test_clip.py::TestSeriesClip::test_series_clipping_with_na_values[Float32-Decimal]", "tests/series/methods/test_clip.py::TestSeriesClip::test_series_clipping_with_na_values[Float32-NAType]", "tests/series/methods/test_clip.py::TestSeriesClip::test_series_clipping_with_na_values[Float32-NoneType]", @@ -13626,11 +13125,6 @@ def pytest_unconfigure(config): "tests/series/methods/test_quantile.py::TestSeriesQuantile::test_quantile_dtype_size[UInt8]", "tests/series/methods/test_quantile.py::TestSeriesQuantile::test_quantile_dtypes[Int64]", "tests/series/methods/test_rank.py::TestSeriesRank::test_rank_categorical", - "tests/series/methods/test_rank.py::TestSeriesRank::test_rank_descending[results0-Int64]", - "tests/series/methods/test_rank.py::TestSeriesRank::test_rank_descending[results1-Int64]", - "tests/series/methods/test_rank.py::TestSeriesRank::test_rank_descending[results2-Int64]", - "tests/series/methods/test_rank.py::TestSeriesRank::test_rank_descending[results3-Int64]", - "tests/series/methods/test_rank.py::TestSeriesRank::test_rank_descending[results4-Int64]", "tests/series/methods/test_rank.py::TestSeriesRank::test_rank_tie_methods_on_infs_nans[float64[pyarrow]-na_value3-inf--inf-bottom-average-False]", "tests/series/methods/test_rank.py::TestSeriesRank::test_rank_tie_methods_on_infs_nans[float64[pyarrow]-na_value3-inf--inf-bottom-average-True]", "tests/series/methods/test_rank.py::TestSeriesRank::test_rank_tie_methods_on_infs_nans[float64[pyarrow]-na_value3-inf--inf-bottom-dense-False]", @@ -14436,10 +13930,6 @@ def pytest_unconfigure(config): "tests/tools/test_to_numeric.py::test_signed_downcast[data2-signed]", "tests/tools/test_to_numeric.py::test_str[transform_assert_equal0-data0-exp0]", "tests/tools/test_to_numeric.py::test_str[transform_assert_equal0-data1-exp1]", - "tests/tools/test_to_numeric.py::test_to_numeric_dtype_backend_error[numpy_nullable]", - "tests/tools/test_to_numeric.py::test_to_numeric_dtype_backend_error[pyarrow]", - "tests/tools/test_to_numeric.py::test_to_numeric_from_nullable_string[string[pyarrow]-values4-expected4]", - "tests/tools/test_to_numeric.py::test_to_numeric_from_nullable_string[string[python]-values4-expected4]", "tests/tools/test_to_numeric.py::test_to_numeric_large_float_not_downcast_to_float_32[9876543210.0]", "tests/tools/test_to_timedelta.py::TestTimedeltas::test_to_timedelta_nullable_int64_dtype[None-None]", "tests/tools/test_to_timedelta.py::TestTimedeltas::test_to_timedelta_nullable_int64_dtype[expected_val0-2]", diff --git a/python/cudf/cudf/tests/test_array_ufunc.py b/python/cudf/cudf/tests/test_array_ufunc.py index dfaee0f528f..46420835817 100644 --- a/python/cudf/cudf/tests/test_array_ufunc.py +++ b/python/cudf/cudf/tests/test_array_ufunc.py @@ -214,7 +214,7 @@ def test_ufunc_series(request, ufunc, has_nulls, indexed): for _ in range(ufunc.nin) ] - if has_nulls: + if has_nulls and "power" not in fname: # Converting nullable integer cudf.Series to pandas will produce a # float pd.Series, so instead we replace nulls with an arbitrary # integer value, precompute the mask, and then reapply it afterwards. @@ -243,7 +243,7 @@ def test_ufunc_series(request, ufunc, has_nulls, indexed): e[mask] = np.nan assert_eq(g, e, check_exact=False) else: - if has_nulls: + if has_nulls and "power" not in fname: with expect_warning_if( fname in ( @@ -421,7 +421,7 @@ def test_ufunc_dataframe(request, ufunc, has_nulls, indexed): for _ in range(ufunc.nin) ] - if has_nulls: + if has_nulls and "power" not in fname: # Converting nullable integer cudf.Series to pandas will produce a # float pd.Series, so instead we replace nulls with an arbitrary # integer value, precompute the mask, and then reapply it afterwards. @@ -454,7 +454,7 @@ def test_ufunc_dataframe(request, ufunc, has_nulls, indexed): e[mask] = np.nan assert_eq(g, e, check_exact=False) else: - if has_nulls: + if has_nulls and "power" not in fname: with expect_warning_if( fname in ( diff --git a/python/cudf/cudf/tests/test_dataframe.py b/python/cudf/cudf/tests/test_dataframe.py index a7186abc77b..581aa3a46e4 100644 --- a/python/cudf/cudf/tests/test_dataframe.py +++ b/python/cudf/cudf/tests/test_dataframe.py @@ -9786,9 +9786,10 @@ def test_diff_numeric_dtypes(data, periods): gdf = cudf.DataFrame(data) pdf = gdf.to_pandas() - actual = gdf.diff(periods=periods, axis=0) expected = pdf.diff(periods=periods, axis=0) + actual = gdf.diff(periods=periods, axis=0) + assert_eq( expected, actual, diff --git a/python/cudf/cudf/utils/dtypes.py b/python/cudf/cudf/utils/dtypes.py index 88c51b195e0..c756520f572 100644 --- a/python/cudf/cudf/utils/dtypes.py +++ b/python/cudf/cudf/utils/dtypes.py @@ -8,6 +8,7 @@ import pandas as pd import pyarrow as pa from pandas.api import types as pd_types # noqa: TID251 +from pandas.core.computation.common import result_type_many import pylibcudf as plc @@ -329,7 +330,11 @@ def find_common_type(dtypes: Iterable[DtypeObj]) -> DtypeObj | None: "not supported" ) - common_dtype = np.result_type(*dtypes) # noqa: TID251 + try: + common_dtype = np.result_type(*dtypes) # noqa: TID251 + except TypeError: + common_dtype = result_type_many(*dtypes) + if common_dtype == np.dtype(np.float16): return np.dtype(np.float32) return common_dtype