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')
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]) ], )
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])
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()
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)
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
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
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)
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
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
} } """ 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 } ],
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,