Source code for sorcha.utilities.generateGoldens

import os
import sys
import tempfile

from shutil import copyfile

from sorcha.utilities.diffTestUtils import override_seed_and_run
from sorcha.utilities.dataUtilitiesForTests import get_test_filepath

if __name__ == "__main__":  # pragma: no cover
    """
    Generates "golden" output for sorcha runs for testing. This should only
    be run sparingly when confident all changes have been confirmed and tested with
    unit tests
    """
    # Create a goldens directory if it does not exist.
[docs] golden_dir = get_test_filepath("goldens")
if not os.path.exists(golden_dir): os.mkdir(golden_dir) # Use a temporary directory to dump logs and results. with tempfile.TemporaryDirectory() as dir_name: override_seed_and_run(dir_name, arg_set="baseline") res_name = os.path.join(dir_name, "out_end2end.csv") if not os.path.exists(res_name): sys.exit(f"ERROR: Unable to find output file {res_name}") copyfile(res_name, os.path.join(golden_dir, "out_end2end.csv")) override_seed_and_run(dir_name, arg_set="with_ephemeris") res_name = os.path.join(dir_name, "sorcha_ephemeris.csv") if not os.path.exists(res_name): sys.exit(f"ERROR: Unable to find output file {res_name}") copyfile(res_name, os.path.join(golden_dir, "sorcha_ephemeris.csv"))