woden_settings¶
Tests for the functions in WODEN/src/woden_settings.c. These functions handle
reading input simulation settings from a .json file, and filling a
woden_settings_t struct based on them. woden_settings_t is passed
around by most functions internally to WODEN to tell them what to do.
test_read_json_settings.c¶
Tests the function woden_settings::read_json_settings. This function
reads in the simulation settings held in a .json file (usually written by
run_woden.py). This test runs reads multiple .json files in, each
with different settings. All test .json files share these common core
settings:
{
"ra0": 0.0000000000,
"dec0": -27.0000000000,
"num_freqs": 16,
"num_time_steps": 4,
"cat_filename": "srclist_singlepoint.txt",
"time_res": 2.0,
"frequency_resolution": 40000.0,
"chunking_size": 5000,
"jd_date": 2457278.2010995,
"LST": 0.44312771,
"array_layout": "example_array_layout.txt",
"lowest_channel_freq": 1.6703500000e+08,
"latitude": -26.70331944,
"coarse_band_width": 1.2800000000e+06,
"sky_crop_components": "True",
"band_nums": [1,4,9]
}
For all tests, these core attributes are tested as being read in correctly into
woden_settings_t after calling read_json_settings. The test
files listed in this table are all run to test different simulation setups and
eventualities.
run_woden_nobeam.json |
The NO_BEAM primary beam is selected |
|---|---|
run_woden_EDA2.json |
The ANALY_DIPOLE primary beam is selected |
run_woden_gaussian_bespoke.json |
The GAUSSIAN primary beam is selected, using input values to set the FWHM and reference frequency |
run_woden_gaussian_default.json |
The GAUSSIAN primary beam is selected, using default values for the FWHM and reference frequency |
run_woden_MWAFEE.json |
The MWA_FEE primary beam is selected, and associated delays and path to hdf5 file are read in correctly |
run_woden_MWAFEE_interp.json |
The frequency interpolated MWA_FEE primary beam is selected, and associated delays and path to hdf5 file are read in correctly |
run_woden_MWA_analy.json |
The analytic MWA_primary beam is selected, and associated delays are read in correctly |
run_woden_MWAFEE_baddelay.json |
Contains a bad set of MWA FEE delays and should throw an error |
run_woden_MWAFEE_nopath.json |
Has no path to the MWA FEE hdf5 file so should throw an error |
run_woden_multiple_beams.json |
Contains multiple primary beam selections so should throw an error |
run_woden_noprecession.json |
Checks that precession is switched off if requested |
test_setup_lsts_and_phase_centre.c¶
Tests woden_settings::setup_lsts_and_phase_centre which uses the input
simulation parameters to calculate the sine and cosine of the declination of
the phase centre, and the LST at the centre of every time integration. Runs
three tests, two with \(\mathrm{Dec}_{\mathrm{phase}} = \pi/2\), where one has a
zero initial LST, another with non-zero initial LST, and third test with
\(\mathrm{Dec}_{\mathrm{phase}}\) set to the latitude of the MWA and a
non-zero initial LST. All tests have multiple time steps, and are tested against
equivalent calculations made in C with 64 bit precision. The FLOAT code
outputs are tested with an absolute tolerance of 1e-7 and the DOUBLE a tolerance
of 1e-15.