From 5a695d99377142abd476244b48aff4e0a30f4b15 Mon Sep 17 00:00:00 2001 From: Debian Science Team Date: Tue, 12 Jan 2021 21:06:04 +0000 Subject: [PATCH] Fix or skip tests that assume the wrong endianness This is a bug in the tests not pandas itself - the expected values explicitly specify little-endian Author: Rebecca N. Palmer Forwarded: no Gbp-Pq: Name tests_dont_assume_endian.patch --- pandas/tests/arrays/boolean/test_astype.py | 3 ++- pandas/tests/arrays/boolean/test_construction.py | 3 ++- pandas/tests/arrays/integer/test_dtypes.py | 3 ++- pandas/tests/frame/methods/test_to_records.py | 4 ++++ pandas/tests/io/parser/test_c_parser_only.py | 2 +- pandas/tests/scalar/timedelta/test_arithmetic.py | 2 +- 6 files changed, 12 insertions(+), 5 deletions(-) diff --git a/pandas/tests/arrays/boolean/test_astype.py b/pandas/tests/arrays/boolean/test_astype.py index 57cec702..fb4c8566 100644 --- a/pandas/tests/arrays/boolean/test_astype.py +++ b/pandas/tests/arrays/boolean/test_astype.py @@ -3,6 +3,7 @@ import pytest import pandas as pd import pandas._testing as tm +from pandas.compat import is_platform_little_endian def test_astype(): @@ -20,7 +21,7 @@ def test_astype(): tm.assert_numpy_array_equal(result, expected) result = arr.astype("str") - expected = np.array(["True", "False", ""], dtype=""], dtype="U5") tm.assert_numpy_array_equal(result, expected) # no missing values diff --git a/pandas/tests/arrays/boolean/test_construction.py b/pandas/tests/arrays/boolean/test_construction.py index 2f5c6130..106dc355 100644 --- a/pandas/tests/arrays/boolean/test_construction.py +++ b/pandas/tests/arrays/boolean/test_construction.py @@ -5,6 +5,7 @@ import pandas as pd import pandas._testing as tm from pandas.arrays import BooleanArray from pandas.core.arrays.boolean import coerce_to_array +from pandas.compat import is_platform_little_endian @pytest.fixture @@ -278,7 +279,7 @@ def test_to_numpy(box): arr = con([True, False, None], dtype="boolean") result = arr.to_numpy(dtype="str") - expected = np.array([True, False, pd.NA], dtype="U5") tm.assert_numpy_array_equal(result, expected) # no missing values -> can convert to bool, otherwise raises diff --git a/pandas/tests/arrays/integer/test_dtypes.py b/pandas/tests/arrays/integer/test_dtypes.py index 67efa4cb..914dfe71 100644 --- a/pandas/tests/arrays/integer/test_dtypes.py +++ b/pandas/tests/arrays/integer/test_dtypes.py @@ -2,6 +2,7 @@ import numpy as np import pytest from pandas.core.dtypes.generic import ABCIndexClass +from pandas.compat import is_platform_little_endian import pandas as pd import pandas._testing as tm @@ -275,7 +276,7 @@ def test_to_numpy_na_raises(dtype): def test_astype_str(): a = pd.array([1, 2, None], dtype="Int64") - expected = np.array(["1", "2", ""], dtype=""], dtype="U21") tm.assert_numpy_array_equal(a.astype(str), expected) tm.assert_numpy_array_equal(a.astype("str"), expected) diff --git a/pandas/tests/frame/methods/test_to_records.py b/pandas/tests/frame/methods/test_to_records.py index d9c999c9..14777117 100644 --- a/pandas/tests/frame/methods/test_to_records.py +++ b/pandas/tests/frame/methods/test_to_records.py @@ -12,6 +12,7 @@ from pandas import ( date_range, ) import pandas._testing as tm +from pandas.compat import is_platform_little_endian class TestDataFrameToRecords: @@ -257,6 +258,7 @@ class TestDataFrameToRecords: ), ], ) + @pytest.mark.xfail(condition=not is_platform_little_endian(),reason="expected values assume little-endian",strict=False) def test_to_records_dtype(self, kwargs, expected): # see GH#18146 df = DataFrame({"A": [1, 2], "B": [0.2, 1.5], "C": ["a", "bc"]}) @@ -330,11 +332,13 @@ class TestDataFrameToRecords: ), ], ) + @pytest.mark.xfail(condition=not is_platform_little_endian(),reason="expected values assume little-endian",strict=False) def test_to_records_dtype_mi(self, df, kwargs, expected): # see GH#18146 result = df.to_records(**kwargs) tm.assert_almost_equal(result, expected) + @pytest.mark.xfail(condition=not is_platform_little_endian(),reason="expected values assume little-endian",strict=False) def test_to_records_dict_like(self): # see GH#18146 class DictLike: diff --git a/pandas/tests/io/parser/test_c_parser_only.py b/pandas/tests/io/parser/test_c_parser_only.py index d76d0190..fb9b0b3f 100644 --- a/pandas/tests/io/parser/test_c_parser_only.py +++ b/pandas/tests/io/parser/test_c_parser_only.py @@ -129,7 +129,7 @@ nan 2 "the dtype timedelta64 is not supported for parsing", dict(dtype={"A": "timedelta64", "B": "float64"}), ), - ("the dtype ]U8 is not supported for parsing", dict(dtype={"A": "U8"})), ], ids=["dt64-0", "dt64-1", "td64", "]m8\[ns\]'\) and dtype\('[<>]m8\[ns\]'\)" ) with pytest.raises(TypeError, match=msg): td * other -- 2.30.2