| 58 | assert result.dtype == dtype |
| 59 | |
| 60 | def test_2d_fill_nonna(self, dtype_fill_out_dtype): |
| 61 | dtype, fill_value, out_dtype = dtype_fill_out_dtype |
| 62 | data = np.random.default_rng(2).integers(0, 2, (5, 3)).astype(dtype) |
| 63 | indexer = [2, 1, 0, -1] |
| 64 | |
| 65 | result = algos.take_nd(data, indexer, axis=0, fill_value=fill_value) |
| 66 | assert (result[[0, 1, 2], :] == data[[2, 1, 0], :]).all() |
| 67 | assert (result[3, :] == fill_value).all() |
| 68 | assert result.dtype == out_dtype |
| 69 | |
| 70 | result = algos.take_nd(data, indexer, axis=1, fill_value=fill_value) |
| 71 | assert (result[:, [0, 1, 2]] == data[:, [2, 1, 0]]).all() |
| 72 | assert (result[:, 3] == fill_value).all() |
| 73 | assert result.dtype == out_dtype |
| 74 | |
| 75 | indexer = [2, 1, 0, 1] |
| 76 | result = algos.take_nd(data, indexer, axis=0, fill_value=fill_value) |
| 77 | assert (result[[0, 1, 2, 3], :] == data[indexer, :]).all() |
| 78 | assert result.dtype == dtype |
| 79 | |
| 80 | result = algos.take_nd(data, indexer, axis=1, fill_value=fill_value) |
| 81 | assert (result[:, [0, 1, 2, 3]] == data[:, indexer]).all() |
| 82 | assert result.dtype == dtype |
| 83 | |
| 84 | def test_3d_fill_nonna(self, dtype_fill_out_dtype): |
| 85 | dtype, fill_value, out_dtype = dtype_fill_out_dtype |