Пример #1
0
 def test_sel_unsorted_datetime_index_raises(self) -> None:
     index = PandasIndex(pd.to_datetime(["2001", "2000", "2002"]), "x")
     with pytest.raises(KeyError):
         # pandas will try to convert this into an array indexer. We should
         # raise instead, so we can be sure the result of indexing with a
         # slice is always a view.
         index.sel({"x": slice("2001", "2002")})
Пример #2
0
    def test_sel_datetime(self) -> None:
        index = PandasIndex(
            pd.to_datetime(["2000-01-01", "2001-01-01", "2002-01-01"]), "x")
        actual = index.sel({"x": "2001-01-01"})
        expected_dim_indexers = {"x": 1}
        assert actual.dim_indexers == expected_dim_indexers

        actual = index.sel({"x": index.to_pandas_index().to_numpy()[1]})
        assert actual.dim_indexers == expected_dim_indexers
Пример #3
0
 def test_sel_boolean(self) -> None:
     # index should be ignored and indexer dtype should not be coerced
     # see https://github.com/pydata/xarray/issues/5727
     index = PandasIndex(pd.Index([0.0, 2.0, 1.0, 3.0]), "x")
     actual = index.sel({"x": [False, True, False, True]})
     expected_dim_indexers = {"x": [False, True, False, True]}
     np.testing.assert_array_equal(actual.dim_indexers["x"],
                                   expected_dim_indexers["x"])
Пример #4
0
 def test_sel(self) -> None:
     # TODO: add tests that aren't just for edge cases
     index = PandasIndex(pd.Index([1, 2, 3]), "x")
     with pytest.raises(KeyError, match=r"not all values found"):
         index.sel({"x": [0]})
     with pytest.raises(KeyError):
         index.sel({"x": 0})
     with pytest.raises(ValueError, match=r"does not have a MultiIndex"):
         index.sel({"x": {"one": 0}})