def test_get_segment_offset_local_stored(test_library_file): """Test the extraction of segment offsets from a single segment PSF library in the temp_data directory. """ # Get test library file test_library_dir = os.path.dirname(test_library_file) seg_id = 12 segment_file = get_library_file(INSTRUMENT, DETECTOR, FILTER, 'CLEAR', '', 0, test_library_dir, segment_id=seg_id) # Set segment = 0 and expect error: with pytest.raises(AssertionError) as e: library_list = [segment_file] get_segment_offset(0, DETECTOR, library_list) assert "Uh-oh. The segment ID of the library does not match the requested segment." in e, \ 'Failed to catch mismatch between segment IDs.' # Put segment 12th on a faked library list and extract the segment offset library_list = [''] * 18 library_list[11] = segment_file x_arcsec, y_arcsec = get_segment_offset(12, DETECTOR, library_list) assert (x_arcsec, y_arcsec) == (-7.412675266715986, -7.905276016530719), \ 'Incorrect conversion of segment offsets'
def test_get_segment_offset_remote(segment_number, correct_offset): """Test the extraction of segment offsets from segment PSF libraries on the central storage directory. Parameters ---------- segment_number : int Segment ID, i.e 3 correct_offset : tuple Expected x and y offset in arcseconds """ library_path = TEST_DATA_DIR library_list = get_segment_library_list(INSTRUMENT, DETECTOR, FILTER, library_path) print('CPL:',segment_number, DETECTOR) x_arcsec, y_arcsec = get_segment_offset(segment_number, DETECTOR, library_list) assert (x_arcsec, y_arcsec) == correct_offset, 'Incorrect conversion of segment offsets'
def test_get_segment_offset_local_created(test_directory): """Test the extraction of segment offsets from segment PSF libraries generated by test_generate_segment_psfs(). Parameters ---------- test_directory : str Path to directory used for testing """ # Skip if test_generate_segment_psfs failed if not SUCCESS_GENERATE_SEGMENT_PSF: pytest.skip("Cannot load library files generated in test_generate_segment_psfs.") library_path = test_directory library_list = get_segment_library_list(INSTRUMENT, DETECTOR, FILTER, library_path) # Just try to get one offset and make sure it doesn't croak x_arcsec, y_arcsec = get_segment_offset(1, DETECTOR, library_list) assert type(x_arcsec) == np.float64, 'Incorrect conversion of segment offsets' assert type(y_arcsec) == np.float64, 'Incorrect conversion of segment offsets'