``use_libwoden`` ========================= This is a collection of modules that interact with the C/CUDA code via ``ctypes``. Much of the code here defined ``ctypes`` ``structures`` classes that are equivalent to a ``C`` ``struct``. This allows us to pass data back and forth between ``Python`` and ``C``. Much of the functionality in ``wodenpy.use_libwoden`` is tested by other unit tests that use the aforementioned classes. The tests here attempt to fill in any gaps. test_create_sbf.py ************************************** This tests that the shapelet basis function array ``sbf`` is created correctly. Test by simply by calling the function and sampling at 20 random array indexes, and comparing to stored expected values. test_make_woden_settings.py ************************************** Tests ``woden_settings.create_woden_settings``, which populates a ``Woden_Settings_Double`` or ``Woden_Settings_Float``. The function takes in arguments directly from ``argparse``, so test by inputting a number of fake argument tests. Go the whole hog to verify we understand how ``ctypes`` works by writing ``C`` code that we can pass the populated ``Woden_Setting`` class to. This ``C`` code then writes the contents to a text file, which is read back in by ``Python`` and compared to the original ``Woden_Settings`` class. This is a bit of a pain, but it's the only way to be sure that the ``ctypes`` ``structure`` is being populated correctly. test_setup_lsts_and_phase_centre.py ************************************** This populates the LST values in a ``woden_settings`` instance. Test by generating a ``woden_settings`` instance, and calling with and without precession set. Compare to a set of expected values.