Skip to content

Add test suite for LALApps codes in HeterodyneSearch/

Description

This MR provides tests for the following programs in HeterodyneSearch/:

  • lalapps_pulsar_parameter_estimation_nested: adds the existing test scripts test_flat_prior and test_flat_evidence to the test suite. I had to change the parameters a bit to get the tests to run (relatively) quickly; test_flat_prior now takes ~2 minutes to run, and test_flat_evidence ~10 minutes to run, which is the best I could do. (In the case of test_flat_evidence, I couldn't get each call to lalapps_pulsar_parameter_estimation_nested to run in faster than ~10--15 seconds, and I couldn't reduce the number of calls from 40 without the test failing the nsigma threshold.)
  • lalapps_ssbtodetector: I wrote a basic test exercising the code and checking the SSB--detector time delays were sensible
  • lalapps_pulsar_frequency_evolution: I wrote a basic test comparing to a reference result

This MR also removes lalapps_SplInter and lalapps_create_pulsar_signal_frame as installed programs, as I believe they're no longer in regular use. This means that they don't need to have test scripts (which are only required for installed programs).

I've not written any tests for the various lalapps_knope... scripts. Indeed I've actually given up on requiring both C programs and Python scripts to have test suites. C programs in LALApps are generally search codes for which a test suite make sense. Python scripts however tend to be helpers which generate/run pipelines, collate results, etc. and it's harder to design a sensible test; so although people are encouraged to write tests for Python pipeline scripts, I won't be requiring it. The first 5 patches in this MR change the build system to no longer require tests for Python scripts, as well as a few other improvements.

Closes #320 (closed)

API Changes and Justification

Backwards Compatible Changes

  • This change does not modify any class/function/struct/type definitions in a public C header file or any Python class/function definitions
  • This change adds new classes/functions/structs/types to a public C header file or Python module

Backwards Incompatible Changes

  • This change modifies an existing class/function/struct/type definition in a public C header file or Python module
  • This change removes an existing class/function/struct/type from a public C header file or Python module

Review Status

@matthew-pitkin Please review the new test scripts and changes to existing test scripts

@david-keitel FYI regarding to the change in policy regarding which programs require tests

Merge request reports