Пример #1
0
def test_subarray_beam_target_equals():
    """
    Verify that SubarrayBeamConfiguration are considered equal when all attributes are
    equal.
    """
    az = 180.0
    el = 45.0
    name = 'DriftScan'
    system = 'horizon'

    config = SubarrayBeamTarget(az, el, name, system)
    assert config == SubarrayBeamTarget(az, el, name, system)
    assert config != SubarrayBeamTarget(az, el, 'name', 'system')
Пример #2
0
def test_mccs_configuration_equals():
    """
    Verify that MCCSConfiguration objects are considered equal when all
    attributes are equal.
    """
    target = SubarrayBeamTarget(180.0, 45.0, "DriftScan", "HORIZON")
    station_config = StnConfiguration(1)
    subarray_beam_config = SubarrayBeamConfiguration(
        subarray_beam_id=1,
        station_ids=[1, 2],
        channels=[[1, 2, 3, 4, 5, 6]],
        update_rate=1.0,
        target=target,
        antenna_weights=[1.0, 1.0, 1.0],
        phase_centre=[0.0, 0.0])
    config = MCCSConfiguration(station_configs=[station_config],
                               subarray_beam_configs=[subarray_beam_config])
    assert config == MCCSConfiguration(
        station_configs=[station_config],
        subarray_beam_configs=[subarray_beam_config])
    assert config != MCCSConfiguration(
        station_configs=[StnConfiguration(2)],
        subarray_beam_configs=[subarray_beam_config])
    assert config != MCCSConfiguration(
        station_configs=[station_config],
        subarray_beam_configs=[
            SubarrayBeamConfiguration(subarray_beam_id=4,
                                      station_ids=[1, 2],
                                      channels=[[1, 2, 3, 4, 5, 6]],
                                      update_rate=1.0,
                                      target=target,
                                      antenna_weights=[1.0, 1.0, 1.0],
                                      phase_centre=[0.0, 0.0])
        ],
    )
Пример #3
0
def test_stnbeam_configuration_equals():
    """
    Verify that SubarrayBeamConfigurations are considered equal when all attributes are
    equal.
    """
    subarray_beam_id = 4
    station_ids = [2, 3]
    channels = [[5, 6, 7, 8, 9]]
    update_rate = 1.5
    target = SubarrayBeamTarget(180.0, 45.0, "DriftScan", "HORIZON")
    antenna_weights = [1.0, 1.0, 1.0]
    phase_centre = [0.0, 0.0]
    station_beam_config = SubarrayBeamConfiguration(subarray_beam_id,
                                                    station_ids, channels,
                                                    update_rate, target,
                                                    antenna_weights,
                                                    phase_centre)
    config = station_beam_config
    config1 = station_beam_config
    assert config == config1

    assert config != SubarrayBeamConfiguration(
        6, station_ids, channels, update_rate, target, antenna_weights,
        phase_centre)
    assert config != SubarrayBeamConfiguration(subarray_beam_id, [3, 4],
                                               channels, update_rate, target,
                                               antenna_weights, phase_centre)
    assert config != SubarrayBeamConfiguration(
        subarray_beam_id, station_ids, [[1, 2, 3, 4, 5, 6]], update_rate,
        target, antenna_weights, phase_centre)
    assert config != SubarrayBeamConfiguration(
        subarray_beam_id, station_ids, channels, 4.5, target, antenna_weights,
        phase_centre)
    assert config != SubarrayBeamConfiguration(
        subarray_beam_id, station_ids, channels, update_rate,
        SubarrayBeamTarget(190.0, 45.0, "DriftScan", "HORIZON"),
        antenna_weights, phase_centre)

    assert config != SubarrayBeamConfiguration(subarray_beam_id, station_ids,
                                               channels, update_rate, target,
                                               [2.0, 2.0, 2.0], phase_centre)

    assert config != SubarrayBeamConfiguration(subarray_beam_id, station_ids,
                                               channels, update_rate, target,
                                               antenna_weights, [1.0, 1.0])
Пример #4
0
def test_stnbeam_configuration_not_equal_to_other_objects():
    """
    Verify that SubarrayBeamConfiguration objects are not considered equal to objects
    of other types.
    """
    target = SubarrayBeamTarget(180.0, 45.0, "DriftScan", "HORIZON")
    config = SubarrayBeamConfiguration(1, [1, 2], [[1, 2, 3, 4, 5, 6]], 1.0,
                                       target, [1.0, 1.0, 1.0], [0.0, 0.0])
    assert config is not None
    assert config != 1
    assert config != object()
Пример #5
0
    def create_target(self, data, **_):  # pylint: disable=no-self-use
        """
        Convert parsed JSON back into a Target object.

        :param data: dict containing parsed JSON values
        :param _: kwargs passed by Marshmallow
        :return: Target instance populated to match JSON
        """
        az = data["az"]
        el = data["el"]
        name = data["name"]
        system = data["system"]
        return SubarrayBeamTarget(az=az, el=el, name=name, system=system)
Пример #6
0
def test_mccs_configure_request_is_not_equal_to_other_objects():
    """
    Verify that an MCCS ConfigureRequest is not equal to other objects.
    """
    station_config = StnConfiguration(1)
    target = SubarrayBeamTarget(180.0, 45.0, "DriftScan", "HORIZON")
    station_beam_config = SubarrayBeamConfiguration(1, [1, 2],
                                                    [[1, 2, 3, 4, 5, 6]], 1.0,
                                                    target, [1.0, 1.0, 1.0],
                                                    [0.0, 0.0])
    mccs_config = MCCSConfiguration(
        station_configs=[station_config],
        subarray_beam_configs=[station_beam_config])
    request = ConfigureRequest(mccs=mccs_config)
    assert request != object
    assert request is not None
Пример #7
0
def test_mccs_configure_request_eq():
    """
    Verify that ConfigurationRequest objects for are considered equal when:
      - they point to the same target
      - their MCCS configuration is the same
    """
    station_config = StnConfiguration(1)
    target = SubarrayBeamTarget(180.0, 45.0, "DriftScan", "HORIZON")
    station_beam_config = SubarrayBeamConfiguration(1, [1, 2],
                                                    [[1, 2, 3, 4, 5, 6]], 1.0,
                                                    target, [1.0, 1.0, 1.0],
                                                    [0.0, 0.0])
    mccs_config = MCCSConfiguration(
        station_configs=[station_config],
        subarray_beam_configs=[station_beam_config])
    request_1 = ConfigureRequest(mccs=mccs_config)
    request_2 = ConfigureRequest(mccs=mccs_config)
    assert request_1 == request_2
Пример #8
0
def test_configure_request_mccs_independence():
    """
    Verify that an Mid & Low ConfigureRequests are independent.
    """
    station_config = StnConfiguration(1)
    target = SubarrayBeamTarget(180.0, 45.0, "DriftScan", "HORIZON")
    station_beam_config = SubarrayBeamConfiguration(1, [1, 2],
                                                    [[1, 2, 3, 4, 5, 6]], 1.0,
                                                    target, [1.0, 1.0, 1.0],
                                                    [0.0, 0.0])
    mccs_config = MCCSConfiguration(
        station_configs=[station_config],
        subarray_beam_configs=[station_beam_config])
    request = ConfigureRequest(mccs=mccs_config)
    assert request is not None

    dish_config = DishConfiguration(receiver_band=ReceiverBand.BAND_1)
    with pytest.raises(ValueError):
        ConfigureRequest(dish=dish_config, mccs=mccs_config)
Пример #9
0
def test_configure_request_is_not_equal_to_other_objects_for_low():
    """
    Verify that an MCCS ConfigureRequest is not equal to other objects.
    """
    station_config = StnConfiguration(1)
    target = SubarrayBeamTarget(180.0, 45.0, "DriftScan", "HORIZON")
    station_beam_config = SubarrayBeamConfiguration(1, [1, 2],
                                                    [[1, 2, 3, 4, 5, 6]], 1.0,
                                                    target, [1.0, 1.0, 1.0],
                                                    [0.0, 0.0])
    mccs_config = MCCSConfiguration(
        station_configs=[station_config],
        subarray_beam_configs=[station_beam_config])
    request = ConfigureRequest(
        interface='https://schema.skatelescope.org/ska-low-tmc-configure/1.0',
        mccs=mccs_config,
        sdp=SDPConfiguration("science_A"))
    assert request != object
    assert request is not None
Пример #10
0
def test_configure_request_eq_for_low():
    """
    Verify that ConfigurationRequest objects for are considered equal when:
      - they point to the same target
      - their MCCS configuration is the same
    """
    station_config = StnConfiguration(1)
    target = SubarrayBeamTarget(180.0, 45.0, "DriftScan", "HORIZON")
    station_beam_config = SubarrayBeamConfiguration(1, [1, 2],
                                                    [[1, 2, 3, 4, 5, 6]], 1.0,
                                                    target, [1.0, 1.0, 1.0],
                                                    [0.0, 0.0])
    mccs_config = MCCSConfiguration(
        station_configs=[station_config],
        subarray_beam_configs=[station_beam_config])
    request_1 = ConfigureRequest(
        interface='https://schema.skatelescope.org/ska-low-tmc-configure/1.0',
        mccs=mccs_config,
        sdp=SDPConfiguration("science_A"))
    request_2 = ConfigureRequest(
        interface='https://schema.skatelescope.org/ska-low-tmc-configure/1.0',
        mccs=mccs_config,
        sdp=SDPConfiguration("science_A"))
    assert request_1 == request_2
Пример #11
0
  }
}
"""

VALID_LOW_CONFIGURE_OBJECT = ConfigureRequest(
    interface="https://schema.skatelescope.org/ska-low-tmc-configure/1.0",
    mccs=MCCSConfiguration(
        station_configs=[StnConfiguration(1),
                         StnConfiguration(2)],
        subarray_beam_configs=[
            SubarrayBeamConfiguration(subarray_beam_id=1,
                                      station_ids=[1, 2],
                                      channels=[[0, 8, 1, 1], [8, 8, 2, 1],
                                                [24, 16, 2, 1]],
                                      update_rate=0.0,
                                      target=SubarrayBeamTarget(
                                          180.0, 45.0, "DriftScan", "horizon"),
                                      antenna_weights=[1.0, 1.0, 1.0],
                                      phase_centre=[0.0, 0.0])
        ]),
    tmc=TMCConfiguration(scan_duration=timedelta(seconds=10),
                         is_ska_mid=False))

INVALID_LOW_CONFIGURE_JSON = """
{
  "interface": "https://schema.skatelescope.org/ska-low-tmc-configure/1.0",
  "mccs": {
    "stations":[
      {
        "station_id": 1
      }
    ],
Пример #12
0
    SubarrayBeamTarget)
from ska_tmc_cdm.schemas.subarray_node.configure.mccs import (
    MCCSConfigurationSchema, StnConfigurationSchema,
    SubarrayBeamConfigurationSchema, SubarrayBeamTargetSchema)
from ska_tmc_cdm.utils import json_is_equal

VALID_SUBARRAYBEAMTARGET_JSON = """
{
    "system": "HORIZON",
    "name": "DriftScan",
    "az": 180.0,
    "el": 45.0
}
"""

VALID_SUBARRAYBEAMTARGET_OBJECT = SubarrayBeamTarget(180.0, 45.0, "DriftScan",
                                                     "HORIZON")

VALID_STNCONFIGURATION_JSON = """
{
    "station_id":1
}
"""

VALID_STNCONFIGURATION_OBJECT = StnConfiguration(1)

VALID_SUBARRAYBEAMCONFIGURATION_JSON = """
{
    "subarray_beam_id": 1,
    "station_ids": [1,2],
    "channels": [[1, 2]],
    "update_rate": 0.0,