예제 #1
0
def test_create_mask_dask():
    da = pytest.importorskip('dask.array')

    indexer = indexing.OuterIndexer((
        1,
        slice(2),
        np.array([0, -1, 2]),
    ))
    expected = np.array(2 * [[False, True, False]])
    actual = indexing.create_mask(indexer, (
        5,
        5,
        5,
    ),
                                  chunks_hint=((1, 1), (2, 1)))
    assert actual.chunks == ((1, 1), (2, 1))
    np.testing.assert_array_equal(expected, actual)

    indexer = indexing.VectorizedIndexer(
        (np.array([0, -1, 2]), slice(None), np.array([0, 1, -1])))
    expected = np.array([[False, True, True]] * 2).T
    actual = indexing.create_mask(indexer, (5, 2), chunks_hint=((3, ), (2, )))
    assert isinstance(actual, da.Array)
    np.testing.assert_array_equal(expected, actual)

    with pytest.raises(ValueError):
        indexing.create_mask(indexer, (5, 2), chunks_hint=())
예제 #2
0
def test_create_mask_basic_indexer():
    indexer = indexing.BasicIndexer((-1,))
    actual = indexing.create_mask(indexer, (3,))
    np.testing.assert_array_equal(True, actual)

    indexer = indexing.BasicIndexer((0,))
    actual = indexing.create_mask(indexer, (3,))
    np.testing.assert_array_equal(False, actual)
예제 #3
0
def test_create_mask_basic_indexer():
    indexer = indexing.BasicIndexer((-1, ))
    actual = indexing.create_mask(indexer, (3, ))
    np.testing.assert_array_equal(True, actual)

    indexer = indexing.BasicIndexer((0, ))
    actual = indexing.create_mask(indexer, (3, ))
    np.testing.assert_array_equal(False, actual)
예제 #4
0
def test_create_mask_outer_indexer():
    indexer = indexing.OuterIndexer((np.array([0, -1, 2]),))
    expected = np.array([False, True, False])
    actual = indexing.create_mask(indexer, (5,))
    np.testing.assert_array_equal(expected, actual)

    indexer = indexing.OuterIndexer((1, slice(2), np.array([0, -1, 2]),))
    expected = np.array(2 * [[False, True, False]])
    actual = indexing.create_mask(indexer, (5, 5, 5,))
    np.testing.assert_array_equal(expected, actual)
예제 #5
0
def test_create_mask_outer_indexer() -> None:
    indexer = indexing.OuterIndexer((np.array([0, -1, 2]), ))
    expected = np.array([False, True, False])
    actual = indexing.create_mask(indexer, (5, ))
    np.testing.assert_array_equal(expected, actual)

    indexer = indexing.OuterIndexer((1, slice(2), np.array([0, -1, 2])))
    expected = np.array(2 * [[False, True, False]])
    actual = indexing.create_mask(indexer, (5, 5, 5))
    np.testing.assert_array_equal(expected, actual)
예제 #6
0
def test_create_mask_vectorized_indexer():
    indexer = indexing.VectorizedIndexer((np.array([0, -1,
                                                    2]), np.array([0, 1, -1])))
    expected = np.array([False, True, True])
    actual = indexing.create_mask(indexer, (5, ))
    np.testing.assert_array_equal(expected, actual)

    indexer = indexing.VectorizedIndexer(
        (np.array([0, -1, 2]), slice(None), np.array([0, 1, -1])))
    expected = np.array([[False, True, True]] * 2).T
    actual = indexing.create_mask(indexer, (5, 2))
    np.testing.assert_array_equal(expected, actual)
예제 #7
0
def test_create_mask_vectorized_indexer():
    indexer = indexing.VectorizedIndexer(
        (np.array([0, -1, 2]), np.array([0, 1, -1])))
    expected = np.array([False, True, True])
    actual = indexing.create_mask(indexer, (5,))
    np.testing.assert_array_equal(expected, actual)

    indexer = indexing.VectorizedIndexer(
        (np.array([0, -1, 2]), slice(None), np.array([0, 1, -1])))
    expected = np.array([[False, True, True]] * 2).T
    actual = indexing.create_mask(indexer, (5, 2))
    np.testing.assert_array_equal(expected, actual)
예제 #8
0
def test_create_mask_dask():
    da = pytest.importorskip('dask.array')

    indexer = indexing.OuterIndexer((1, slice(2), np.array([0, -1, 2]),))
    expected = np.array(2 * [[False, True, False]])
    actual = indexing.create_mask(indexer, (5, 5, 5,),
                                  chunks_hint=((1, 1), (2, 1)))
    assert actual.chunks == ((1, 1), (2, 1))
    np.testing.assert_array_equal(expected, actual)

    indexer = indexing.VectorizedIndexer(
        (np.array([0, -1, 2]), slice(None), np.array([0, 1, -1])))
    expected = np.array([[False, True, True]] * 2).T
    actual = indexing.create_mask(indexer, (5, 2), chunks_hint=((3,), (2,)))
    assert isinstance(actual, da.Array)
    np.testing.assert_array_equal(expected, actual)

    with pytest.raises(ValueError):
        indexing.create_mask(indexer, (5, 2), chunks_hint=())
예제 #9
0
def test_create_mask_error():
    with raises_regex(TypeError, 'unexpected key type'):
        indexing.create_mask((1, 2), (3, 4))
예제 #10
0
def test_create_mask_error():
    with raises_regex(TypeError, 'unexpected key type'):
        indexing.create_mask((1, 2), (3, 4))
예제 #11
0
def test_create_mask_error() -> None:
    with pytest.raises(TypeError, match=r"unexpected key type"):
        indexing.create_mask((1, 2), (3, 4))