1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Copyright (c) 2024 Radio Astronomy Software Group
# Licensed under the 2-clause BSD License
"""Tests for phase center catalog utility functions."""

import pytest

import pyuvdata.utils.phase_center_catalog as ps_cat_utils


def test_generate_new_phase_center_id_errs():
    with pytest.raises(ValueError, match="Cannot specify old_id if no catalog"):
        ps_cat_utils.generate_new_phase_center_id(old_id=1)

    with pytest.raises(ValueError, match="Provided cat_id was found in reserved_ids"):
        ps_cat_utils.generate_new_phase_center_id(cat_id=1, reserved_ids=[1, 2, 3])


@pytest.mark.filterwarnings("ignore:The uvw_array does not match the expected values")
def test_look_in_catalog_missing_entries(casa_uvfits):
    phase_cat = casa_uvfits.phase_center_catalog

    # Try that this works normally if we do nothing
    assert ps_cat_utils.look_in_catalog(
        phase_cat, cat_name=phase_cat[0]["cat_name"]
    ) == (0, 5)

    # Now delete some keys
    for value in phase_cat.values():
        if "cat_times" in value:
            del value["cat_times"]
    # Now re-run the above and verify things work as expected
    assert ps_cat_utils.look_in_catalog(
        phase_cat, cat_name=phase_cat[0]["cat_name"]
    ) == (0, 5)