``chunk_sky_model`` ========================= Tests for the functions in ``WODEN/src/chunk_sky_model.c``. These functions handle splitting the sky model up into chunks that can fit into GPU memory during simulation. There is a variable (which can be controlled by the user via ``--chunking_size``) that controls the maximum number of measurement equations that can be calculated simultaneously, so the some of the functions below need to know the number of baselines, frequencies etc to calculate the maximum number of COMPONENTs to put into each chunk. ``test_null_comps.c`` **************************** Tests the functions ``chunk_sky_model::null_point_comps``, ``chunk_sky_model::null_gauss_comps``, and ``chunk_sky_model::null_shapelet_comps``. These functions set either POINT, GAUSSIAN, or SHAPELET COMPONENT attributes of the sky model to ``NULL``. Tested here by setting up a dummy populated sky model, and making sure each function sets the correct attributes to ``NULL``. Also tests that other COMPONENT attributes are left as they are. ``test_fill_chunk_src_with_pointgauss.c`` *********************************************** Tests ``chunk_sky_model::fill_chunk_src_with_pointgauss``, which calculates how many POINT and GAUSSIAN COMPONENTs should go into each chunk. Tests by trying 12 different combinations of number of POINTS, number of GAUSSIANs, chunk size, number time steps, number baselines, and number of frequencies. Iterates over the function and checks that each chunked sky model has the correct number of output COMPONENTs of each type. Checks by setting attributes of the sky model to the array index from the original full sky model, and checks that every attribute is being split correctly into the resultant chunked sky models. Furthermore, as azimuth and zenith angles are stored for all time steps in the sky model, the dummy sky model is setup with repeating/tiled arrays to make sure the correct az/za coords are being copied from the full sky model into the cropped sky models. ``test_fill_chunk_src_with_shapelets.c`` *********************************************** Tests ``chunk_sky_model::fill_chunk_src_with_shapelets``, which handles chunking the SHAPELET COMPONENTs of the sky model. Works the same as pointgauss in that it sets sky model attributes to array indexes, to check whether the correct values are being chunked into the smaller chunked sky models. On top of that, due to the way SHAPELETs can have multiple basis functions per COMPONENT, has an extra layer of sky model trickery to have repeating indexes inside the basis function attributes, which can then be traced and checked once the chunking has been performed. Tests here vary the number of SHAPELETs, the number of basis functions per SHAPELET, and the number of time steps. ``test_create_chunked_sky_models.c`` *********************************************** ``chunk_sky_model::create_chunked_sky_models`` uses all functions above to take in a full sky model and created an array of chunked sky models. This test runs the same testing for both functions above with a sky model containing various combinations of POINT, GAUSSIAN, and SHAPELET COMPONENTs, as well as different chunking sizes and time settings.