MCPcopy
hub / github.com/pydata/xarray / test_isel_fancy

Method test_isel_fancy

xarray/tests/test_dataset.py:1460–1611  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1458 assert set(data.xindexes) == set(list(ret.xindexes) + ["time"])
1459
1460 def test_isel_fancy(self) -> None:
1461 # isel with fancy indexing.
1462 data = create_test_data()
1463
1464 pdim1 = [1, 2, 3]
1465 pdim2 = [4, 5, 1]
1466 pdim3 = [1, 2, 3]
1467 actual = data.isel(
1468 dim1=(("test_coord",), pdim1),
1469 dim2=(("test_coord",), pdim2),
1470 dim3=(("test_coord",), pdim3),
1471 )
1472 assert "test_coord" in actual.dims
1473 assert actual.coords["test_coord"].shape == (len(pdim1),)
1474
1475 # Should work with DataArray
1476 actual = data.isel(
1477 dim1=DataArray(pdim1, dims="test_coord"),
1478 dim2=(("test_coord",), pdim2),
1479 dim3=(("test_coord",), pdim3),
1480 )
1481 assert "test_coord" in actual.dims
1482 assert actual.coords["test_coord"].shape == (len(pdim1),)
1483 expected = data.isel(
1484 dim1=(("test_coord",), pdim1),
1485 dim2=(("test_coord",), pdim2),
1486 dim3=(("test_coord",), pdim3),
1487 )
1488 assert_identical(actual, expected)
1489
1490 # DataArray with coordinate
1491 idx1 = DataArray(pdim1, dims=["a"], coords={"a": np.random.randn(3)})
1492 idx2 = DataArray(pdim2, dims=["b"], coords={"b": np.random.randn(3)})
1493 idx3 = DataArray(pdim3, dims=["c"], coords={"c": np.random.randn(3)})
1494 # Should work with DataArray
1495 actual = data.isel(dim1=idx1, dim2=idx2, dim3=idx3)
1496 assert "a" in actual.dims
1497 assert "b" in actual.dims
1498 assert "c" in actual.dims
1499 assert "time" in actual.coords
1500 assert "dim2" in actual.coords
1501 assert "dim3" in actual.coords
1502 expected = data.isel(
1503 dim1=(("a",), pdim1), dim2=(("b",), pdim2), dim3=(("c",), pdim3)
1504 )
1505 expected = expected.assign_coords(a=idx1["a"], b=idx2["b"], c=idx3["c"])
1506 assert_identical(actual, expected)
1507
1508 idx1 = DataArray(pdim1, dims=["a"], coords={"a": np.random.randn(3)})
1509 idx2 = DataArray(pdim2, dims=["a"])
1510 idx3 = DataArray(pdim3, dims=["a"])
1511 # Should work with DataArray
1512 actual = data.isel(dim1=idx1, dim2=idx2, dim3=idx3)
1513 assert "a" in actual.dims
1514 assert "time" in actual.coords
1515 assert "dim2" in actual.coords
1516 assert "dim3" in actual.coords
1517 expected = data.isel(

Callers

nothing calls this directly

Calls 9

iselMethod · 0.95
create_test_dataFunction · 0.90
DataArrayClass · 0.90
assert_identicalFunction · 0.90
DatasetClass · 0.90
assert_equalFunction · 0.90
iselMethod · 0.45
assign_coordsMethod · 0.45
drop_varsMethod · 0.45

Tested by

no test coverage detected