(self)
| 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( |
nothing calls this directly
no test coverage detected