Exemple #1
0
def test_where_for_raised_errors():
    check_import('opencl')
    check_import('cuda')
    # check errors
    a = array.arange(0, 10, 1, backend='opencl', dtype=np.int32)
    b = array.arange(10, 20, 1, backend='cuda', dtype=np.int32)
    with pytest.raises(TypeError):
        array.where(a > 5, a, b)
    b = array.arange(10, 20, 1, backend='opencl', dtype=np.float32)
    with pytest.raises(TypeError):
        array.where(a > 5, a, b)
Exemple #2
0
def test_where(backend):
    check_import(backend)
    # Given
    a = array.arange(0, 10, 1, backend=backend)
    b = array.arange(10, 20, 1, backend=backend)

    # When
    out = np.array([10, 11, 12, 13, 14, 15, 6, 7, 8, 9])

    # Then
    ans = array.where(a > 5, a, b)
    assert np.all(ans.get() == out)
Exemple #3
0
def test_align(backend):
    check_import(backend)

    # Given
    dev_array = Array(np.int32, backend=backend)
    orig_array = array.arange(0, 16, 1, dtype=np.int32, backend=backend)
    dev_array.set_data(orig_array)
    indices = array.arange(15, -1, -1, dtype=np.int32, backend=backend)

    # When
    dev_array = dev_array.align(indices)

    # Then
    assert np.all(dev_array.get() == indices.get())
Exemple #4
0
def test_remove(backend):
    check_import(backend)

    # Given
    dev_array = Array(np.int32, backend=backend)
    orig_array = array.arange(0, 16, 1, dtype=np.int32, backend=backend)
    dev_array.set_data(orig_array)
    indices = array.arange(0, 8, 1, dtype=np.int32, backend=backend)

    # When
    dev_array.remove(indices)

    # Then
    assert np.all(dev_array.get() == (8 + indices).get())
    def test_align(self, backend):
        check_import(backend)
        self.setup()
        # Given
        pa = self.pa
        pa.add_property('force', stride=3)
        h = DeviceHelper(pa, backend=backend)

        # When
        pa.set_device_helper(h)
        n = 5
        h.resize(n)
        h.x.set(np.array([2.0, 3.0, 4.0, 5.0, 6.0], h.x.dtype))
        h.force.set(np.arange(n * 3, dtype=h.force.dtype))

        indices = array.arange(4, -1, -1, dtype=np.int32, backend=backend)

        h.align(indices)

        # Then
        assert np.all(h.x.get() == np.array([6., 5., 4., 3., 2.]))
        x = np.arange(n * 3)
        x.shape = (n, 3)
        expect = x[::-1, :].ravel()
        assert np.all(h.force.get() == expect)
Exemple #6
0
def test_sum(dtype, backend):
    check_import(backend)

    # Given
    x = array.arange(0, 5, 1, backend=backend, dtype=dtype)

    # When
    out = array.sum(x)

    # Then
    assert (out == 10)
Exemple #7
0
def test_minimum(dtype, backend):
    check_import(backend)

    # Given
    x = array.arange(3, 5, 1, backend=backend, dtype=dtype)

    # When
    out = array.minimum(x)

    # Then
    assert (out == 3)
Exemple #8
0
def test_align_multiple(backend):
    check_import(backend)

    # Given
    dev_array_a = Array(np.uint32, backend=backend)
    dev_array_b = Array(np.float32, backend=backend)
    orig_array_a = array.arange(0, 1024, 1, dtype=np.uint32, backend=backend)
    orig_array_b = array.arange(
        1024, 2048, 1, dtype=np.float32, backend=backend)
    dev_array_a.set_data(orig_array_a)
    dev_array_b.set_data(orig_array_b)

    indices = array.arange(1023, -1, -1, dtype=np.int64, backend=backend)

    # When
    dev_array_a, dev_array_b = array.align([dev_array_a, dev_array_b],
                                           indices)

    # Then
    assert np.all(dev_array_a.get() == indices.get())
    assert np.all(dev_array_b.get() - 1024 == indices.get())
Exemple #9
0
def test_ones_like(backend):
    check_import(backend)
    # Given
    x = array.arange(1, 10, 1, dtype=np.int32)

    # When
    y = array.ones_like(x)
    z = array.zeros_like(x)

    # Then
    assert np.all(y.get() == np.ones_like(x))
    assert np.all(z.get() == np.zeros_like(x))
Exemple #10
0
def test_comparison(backend, dtype, method):
    check_import(backend)
    if dtype == np.float64:
        get_config().use_double = True
    # Given
    x = array.arange(0., 10., 1., dtype=dtype, backend=backend)

    # When
    out = getattr(x, method)(5)

    # Then
    x_np = np.arange(10, dtype=dtype)
    comp = [int(i) for i in getattr(x_np, method)(5)]
    assert np.all(out.get() == comp)
Exemple #11
0
def test_copy_values(backend):
    check_import(backend)

    # Given
    dev_array = make_dev_array(backend)
    dev_array.fill(2)

    dest = array.empty(8, dtype=np.int32, backend=backend)
    indices = array.arange(0, 8, 1, dtype=np.int32, backend=backend)

    # When
    dev_array.copy_values(indices, dest)

    # Then
    assert np.all(dev_array[:len(indices)].get() == dest.get())
Exemple #12
0
def test_take_bool(dtype, backend):
    check_import(backend)
    if dtype == np.float64:
        get_config().use_double = True

    # Given
    x = array.arange(0, 10, 1, backend=backend, dtype=dtype)
    cond = x > 5

    # When
    out = array.take_bool(x, cond)

    # Then
    ans = np.arange(6, 10, dtype=dtype)

    assert np.all(out.get() == ans)
    def test_align(self, backend):
        check_import(backend)
        self.setup()
        # Given
        pa = self.pa
        h = DeviceHelper(pa, backend=backend)

        # When
        pa.set_device_helper(h)
        h.resize(5)
        h.x.set(np.array([2.0, 3.0, 4.0, 5.0, 6.0], h.x.dtype))

        indices = array.arange(4, -1, -1, dtype=np.int32, backend=backend)

        h.align(indices)

        # Then
        assert np.all(h.x.get() == np.array([6., 5., 4., 3., 2.]))