Skip to content

Commit 0ad7fa7

Browse files
Test formatting platform (#8719)
* Test formatting platform * Default is float64 * Try to differentiate between OS-dependant and independant dtypes for CI safety * wip * fixed tests * forgot one test --------- Co-authored-by: Maximilian Roos <[email protected]>
1 parent 97c8c18 commit 0ad7fa7

File tree

3 files changed

+225
-138
lines changed

3 files changed

+225
-138
lines changed

xarray/tests/test_dataarray.py

Lines changed: 14 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,6 @@
7171
pytest.mark.filterwarnings("error:All-NaN (slice|axis) encountered"),
7272
]
7373

74-
ON_WINDOWS = sys.platform == "win32"
75-
7674

7775
class TestDataArray:
7876
@pytest.fixture(autouse=True)
@@ -87,121 +85,55 @@ def setup(self):
8785
self.mindex = pd.MultiIndex.from_product(
8886
[["a", "b"], [1, 2]], names=("level_1", "level_2")
8987
)
90-
self.mda = DataArray([0, 1, 2, 3], coords={"x": self.mindex}, dims="x")
88+
self.mda = DataArray([0, 1, 2, 3], coords={"x": self.mindex}, dims="x").astype(
89+
np.uint64
90+
)
9191

92-
@pytest.mark.skipif(
93-
ON_WINDOWS,
94-
reason="Default numpy's dtypes vary according to OS",
95-
)
9692
def test_repr(self) -> None:
9793
v = Variable(["time", "x"], [[1, 2, 3], [4, 5, 6]], {"foo": "bar"})
98-
coords = {"x": np.arange(3, dtype=np.int64), "other": np.int64(0)}
94+
v = v.astype(np.uint64)
95+
coords = {"x": np.arange(3, dtype=np.uint64), "other": np.uint64(0)}
9996
data_array = DataArray(v, coords, name="my_variable")
10097
expected = dedent(
10198
"""\
10299
<xarray.DataArray 'my_variable' (time: 2, x: 3)> Size: 48B
103100
array([[1, 2, 3],
104-
[4, 5, 6]])
105-
Coordinates:
106-
* x (x) int64 24B 0 1 2
107-
other int64 8B 0
108-
Dimensions without coordinates: time
109-
Attributes:
110-
foo: bar"""
111-
)
112-
assert expected == repr(data_array)
113-
114-
@pytest.mark.skipif(
115-
not ON_WINDOWS,
116-
reason="Default numpy's dtypes vary according to OS",
117-
)
118-
def test_repr_windows(self) -> None:
119-
v = Variable(["time", "x"], [[1, 2, 3], [4, 5, 6]], {"foo": "bar"})
120-
coords = {"x": np.arange(3, dtype=np.int64), "other": np.int64(0)}
121-
data_array = DataArray(v, coords, name="my_variable")
122-
expected = dedent(
123-
"""\
124-
<xarray.DataArray 'my_variable' (time: 2, x: 3)> Size: 24B
125-
array([[1, 2, 3],
126-
[4, 5, 6]])
101+
[4, 5, 6]], dtype=uint64)
127102
Coordinates:
128-
* x (x) int64 24B 0 1 2
129-
other int64 8B 0
103+
* x (x) uint64 24B 0 1 2
104+
other uint64 8B 0
130105
Dimensions without coordinates: time
131106
Attributes:
132107
foo: bar"""
133108
)
134109
assert expected == repr(data_array)
135110

136-
@pytest.mark.skipif(
137-
ON_WINDOWS,
138-
reason="Default numpy's dtypes vary according to OS",
139-
)
140111
def test_repr_multiindex(self) -> None:
141112
expected = dedent(
142113
"""\
143114
<xarray.DataArray (x: 4)> Size: 32B
144-
array([0, 1, 2, 3])
115+
array([0, 1, 2, 3], dtype=uint64)
145116
Coordinates:
146117
* x (x) object 32B MultiIndex
147118
* level_1 (x) object 32B 'a' 'a' 'b' 'b'
148119
* level_2 (x) int64 32B 1 2 1 2"""
149120
)
150121
assert expected == repr(self.mda)
151122

152-
@pytest.mark.skipif(
153-
not ON_WINDOWS,
154-
reason="Default numpy's dtypes vary according to OS",
155-
)
156-
def test_repr_multiindex_windows(self) -> None:
157-
expected = dedent(
158-
"""\
159-
<xarray.DataArray (x: 4)> Size: 16B
160-
array([0, 1, 2, 3])
161-
Coordinates:
162-
* x (x) object 32B MultiIndex
163-
* level_1 (x) object 32B 'a' 'a' 'b' 'b'
164-
* level_2 (x) int64 32B 1 2 1 2"""
165-
)
166-
assert expected == repr(self.mda)
167-
168-
@pytest.mark.skipif(
169-
ON_WINDOWS,
170-
reason="Default numpy's dtypes vary according to OS",
171-
)
172123
def test_repr_multiindex_long(self) -> None:
173124
mindex_long = pd.MultiIndex.from_product(
174125
[["a", "b", "c", "d"], [1, 2, 3, 4, 5, 6, 7, 8]],
175126
names=("level_1", "level_2"),
176127
)
177-
mda_long = DataArray(list(range(32)), coords={"x": mindex_long}, dims="x")
128+
mda_long = DataArray(
129+
list(range(32)), coords={"x": mindex_long}, dims="x"
130+
).astype(np.uint64)
178131
expected = dedent(
179132
"""\
180133
<xarray.DataArray (x: 32)> Size: 256B
181134
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
182-
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31])
183-
Coordinates:
184-
* x (x) object 256B MultiIndex
185-
* level_1 (x) object 256B 'a' 'a' 'a' 'a' 'a' 'a' ... 'd' 'd' 'd' 'd' 'd' 'd'
186-
* level_2 (x) int64 256B 1 2 3 4 5 6 7 8 1 2 3 4 ... 5 6 7 8 1 2 3 4 5 6 7 8"""
187-
)
188-
assert expected == repr(mda_long)
189-
190-
@pytest.mark.skipif(
191-
not ON_WINDOWS,
192-
reason="Default numpy's dtypes vary according to OS",
193-
)
194-
def test_repr_multiindex_long_windows(self) -> None:
195-
mindex_long = pd.MultiIndex.from_product(
196-
[["a", "b", "c", "d"], [1, 2, 3, 4, 5, 6, 7, 8]],
197-
names=("level_1", "level_2"),
198-
)
199-
mda_long = DataArray(list(range(32)), coords={"x": mindex_long}, dims="x")
200-
expected = dedent(
201-
"""\
202-
<xarray.DataArray (x: 32)> Size: 128B
203-
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
204-
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31])
135+
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],
136+
dtype=uint64)
205137
Coordinates:
206138
* x (x) object 256B MultiIndex
207139
* level_1 (x) object 256B 'a' 'a' 'a' 'a' 'a' 'a' ... 'd' 'd' 'd' 'd' 'd' 'd'

0 commit comments

Comments
 (0)