예제 #1
0
def test_cupy_phase_delay(dtype):
    cp = pytest.importorskip('cupy')

    lm = 0.01 * np.random.random((10, 2)).astype(dtype)
    uvw = np.random.random((100, 3)).astype(dtype)
    freq = np.linspace(.856e9, 2 * .856e9, 70, dtype=dtype)

    cp_cplx_phase = cp_phase_delay(cp.asarray(lm), cp.asarray(uvw),
                                   cp.asarray(freq))
    np_cplx_phase = np_phase_delay(lm, uvw, freq)

    assert np.allclose(cp.asnumpy(cp_cplx_phase), np_cplx_phase)
def test_cuda_phase_delay(dtype, decimal):
    cp = pytest.importorskip('cupy')

    lm = 0.01 * np.random.random((10, 2)).astype(dtype)
    uvw = np.random.random((100, 3)).astype(dtype)
    freq = np.linspace(.856e9, 2 * .856e9, 70, dtype=dtype)

    cp_cplx_phase = cp_phase_delay(cp.asarray(lm), cp.asarray(uvw),
                                   cp.asarray(freq))
    np_cplx_phase = np_phase_delay(lm, uvw, freq)

    np.testing.assert_array_almost_equal(cp.asnumpy(cp_cplx_phase),
                                         np_cplx_phase,
                                         decimal=decimal)
예제 #3
0
def test_dask_phase_delay():
    import dask.array as da
    from africanus.rime import phase_delay as np_phase_delay
    from africanus.rime.dask import phase_delay as dask_phase_delay

    uvw = np.random.random(size=(100, 3))
    lm = np.random.random(size=(10,
                                2)) * 0.01  # So that 1 > 1 - l**2 - m**2 >= 0
    frequency = np.linspace(.856e9, .856e9 * 2, 64, endpoint=True)

    dask_uvw = da.from_array(uvw, chunks=(25, 3))
    dask_lm = da.from_array(lm, chunks=(5, 2))
    dask_frequency = da.from_array(frequency, chunks=16)

    dask_phase = dask_phase_delay(dask_uvw, dask_lm, dask_frequency).compute()
    np_phase = np_phase_delay(uvw, lm, frequency)

    # Should agree completely
    assert np.all(np_phase == dask_phase)
예제 #4
0
def test_dask_phase_delay(convention, sign):
    da = pytest.importorskip('dask.array')
    from africanus.rime import phase_delay as np_phase_delay
    from africanus.rime.dask import phase_delay as dask_phase_delay

    # So that 1 > 1 - l**2 - m**2 >= 0
    lm = np.random.random(size=(10, 2)) * 0.01
    uvw = np.random.random(size=(100, 3))
    frequency = np.linspace(.856e9, .856e9 * 2, 64, endpoint=True)

    dask_lm = da.from_array(lm, chunks=(5, 2))
    dask_uvw = da.from_array(uvw, chunks=(25, 3))
    dask_frequency = da.from_array(frequency, chunks=16)

    dask_phase = dask_phase_delay(dask_lm,
                                  dask_uvw,
                                  dask_frequency,
                                  convention=convention)
    np_phase = np_phase_delay(lm, uvw, frequency, convention=convention)

    # Should agree completely
    assert np.all(np_phase == dask_phase.compute())