create_sky_model¶
Tests for the functions in WODEN/src/create_sky_model.c. The functions
read in the sky model from a text file, and crop anything below the horizon.
test_read_source_catalogue.c¶
create_sky_model::read_source_catalogue reads in the sky model from a text
file. Each test reads in a sky model, uses read_source_catalogue to
create a sky model, and tests the correct information has been read in.
read_source_catalogue returns an integer as an error message (0 good, 1 bad),
so some text files below are written to cause failure. See the table below
for each test sky model and the expected result. The way each SOURCE and it’s
associated COMPONENTs are stored can affect the way the sky model is cropped,
so all tests check that generated source_catalogue_t struct is structured
correctly. For all floating point values, when compiling in FLOAT mode, test
asserts that values are within an absolute tolerance of 1e-7, and 1e-15 when
compiling in DOUBLE mode.
Sky model |
Test case |
Test outcomes |
|---|---|---|
srclist_no-comp_numbers.txt |
Is missing the line that contains number of COMPONENTs in the SOURCE. |
Check fails |
srclist_badcoeff.txt |
Has a bad SCOEFF line where one number is sdfasdfasdfasdfasdfasf |
Check fails |
srclist_badspell.txt |
Contains an incorrect spelling of COMPONENT |
Check fails |
srclist_singlegauss.txt |
Contains a single GAUSSIAN SOURCE |
Check sky model values |
srclist_singlepoint.txt |
Contains a single POINT SOURCE |
Check sky model values |
srclist_comment.txt |
Contains a commented line (and a single POINT SOURCE) |
Check sky model values |
srclist_singleshape.txt |
Contains a single SHAPELET SOURCE |
Check sky model values |
srclist_empty_line.txt |
Contains an empty line (and a single POINT SOURCE) |
Check sky model values |
srclist_threecomponents.txt |
Contains one SOURCE with three COMPONENTs |
Check sky model values |
srclist_mulitple_source-components.txt |
Contains multiple SOURCEs each with multiple COMPONENTs |
Check sky model values |
srclist_threesources.txt |
Contains multiple SOURCEs each with a single COMPONENT |
Check sky model values |
srclist_linear.txt |
Contains a single POINT COMPONENT with the LINEAR keyword specifying the SED |
Check sky model values |
test_horizon_test.c¶
create_sky_mode::horizon_test takes information on a single COMPONENT of a
SOURCE and tests whether it is above or below the horizon. Depending on
whether we are cropping the sky model by SOURCE or by COMPONENT, it updates
various counters that effect the sky model cropping. (cropping by SOURCE
throws away the whole SOURCE if one COMPONENT is below the horizon, cropping
by COMPONENT only throws away the COMPONENTs below the horizon). SHAPELETs are complicating
factors as a single position can match multiple basis function parameters (of
any length) so horizon_test does some logic to count how many SHAPELET
parameters are being retained.
First set of tests check that cropping on POINT/GAUSSIAN type COMPONENTs work for both cropping by SOURCE and cropping by COMPONENT. The second set of tests check that when cropping by COMPONENT, and we have multiple SHAPELET COMPONENTs, that the correct number of SHAPELET basis functions parameters are retained.
test_crop_sky_model.c¶
create_sky_mode::crop_sky_model calculates the azimuth / zenith angle of
all COMPONENTs in a sky model (for the first LST step of a simulation), and then
crops out either SOURCEs or COMPONENTs that are below the horizon (by using
horizon_test). Once cropped, it then calculates the az/za for all time
steps in the simulation for the surviving COMPONENTs.
The tests here are split across 4 sky models - just POINTs, just GAUSSIANs,
just SHAPELETs, and a mix of all three. For each sky model type, the tests are
run for both the cropping by SOURCE and cropping by COMPONENT case. All tests
are run for four different LSTs - a total of 32 tests. The RA/Dec of the
COMPONENTs and the LSTs are chosen in such a way that different combinations
should result in different COMPONENT/SOURCEs being discarded. All tests check
that the correct COMPONENT/SOURCEs are retained (including the SHAPELET basis
function parameters), and that the correct az/za are calculated for each time
step. The sky model setup and expected results are stored in test_crop_sky_model.h.
The azimuth and zenith angle outputs are tested to match expectations to within an absolute tolerance of 1e-6 for the FLOAT compiled code, and 1e-12 for the DOUBLE.