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)
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)
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())