def test_bounds(self): # Polarization bounds is None, should not produce an error axis = Axis("STOKES", "cunit") axis_1d = CoordAxis1D(axis) polarization = PolarizationWCS(axis_1d) wcsvalidator._validate_polarization_wcs(polarization) # Polarization axis bounds contains one valid range start = RefCoord(float(0.9), float(1.1)) end = RefCoord(float(9.9), float(10.1)) p_range = CoordRange1D(start, end) samples = caom_util.TypedList(CoordRange1D, p_range) axis_1d.bounds = CoordBounds1D(samples) polarization = PolarizationWCS(axis_1d) wcsvalidator._validate_polarization_wcs(polarization) # Polarization axis bounds contains more than one valid range start = RefCoord(float(0.9), float(1.1)) end = RefCoord(float(9.9), float(10.1)) p_range = CoordRange1D(start, end) start = RefCoord(float(-8.1), float(-7.9)) end = RefCoord(float(-1.1), float(-0.9)) n_range = CoordRange1D(start, end) samples = caom_util.TypedList(CoordRange1D, p_range, n_range) axis_1d.bounds = CoordBounds1D(samples) polarization = PolarizationWCS(axis_1d) wcsvalidator._validate_polarization_wcs(polarization) # Polarization axis bounds contains one invalid range start = RefCoord(float(0.9), float(1.1)) end = RefCoord(float(10.9), float(11.1)) p_range = CoordRange1D(start, end) samples = caom_util.TypedList(CoordRange1D, p_range) axis_1d.bounds = CoordBounds1D(samples) polarization = PolarizationWCS(axis_1d) with pytest.raises(InvalidWCSError) as ex: wcsvalidator._validate_polarization_wcs(polarization) assert ('Invalid Polarization WCS' in str(ex.value)) assert ('11' in str(ex.value)) # Polarization axis bounds contains more than one invalid range start = RefCoord(float(0.9), float(1.1)) end = RefCoord(float(9.9), float(10.1)) p_range = CoordRange1D(start, end) start = RefCoord(float(-9.1), float(-8.9)) end = RefCoord(float(-1.1), float(-0.9)) n_range = CoordRange1D(start, end) samples = caom_util.TypedList(CoordRange1D, p_range, n_range) axis_1d.bounds = CoordBounds1D(samples) polarization = PolarizationWCS(axis_1d) with pytest.raises(InvalidWCSError) as ex: wcsvalidator._validate_polarization_wcs(polarization) assert ('Invalid Polarization WCS' in str(ex.value)) assert ('-9' in str(ex.value))
def test_function(self): # Polarization function is None, should not produce an error axis = Axis("STOKES", "cunit") axis_1d = CoordAxis1D(axis) polarization = PolarizationWCS(axis_1d) wcsvalidator._validate_polarization_wcs(polarization) # Polarization axis function with naxis=1 naxis = int(1) delta = float(2.5) ref_coord = wcs.RefCoord(float(1.0), float(2.0)) axis_1d.function = CoordFunction1D(naxis, delta, ref_coord) polarization = PolarizationWCS(axis_1d) wcsvalidator._validate_polarization_wcs(polarization) # Polarization axis function with naxis>1 naxis = int(3) delta = float(2.5) ref_coord = wcs.RefCoord(float(1.0), float(2.0)) axis_1d.function = CoordFunction1D(naxis, delta, ref_coord) polarization = PolarizationWCS(axis_1d) wcsvalidator._validate_polarization_wcs(polarization) # Polarization axis function with invalid naxis=0 naxis = int(0) delta = float(2.5) ref_coord = wcs.RefCoord(float(1.0), float(2.0)) axis_1d.function = CoordFunction1D(naxis, delta, ref_coord) polarization = PolarizationWCS(axis_1d) with pytest.raises(InvalidWCSError) as ex: wcsvalidator._validate_polarization_wcs(polarization) assert ('Invalid Polarization WCS' in str(ex.value)) assert ('Invalid naxis value' in str(ex.value))
def test_range(self): # Polarization range is None, should not produce an error axis = Axis("STOKES", "cunit") axis_1d = CoordAxis1D(axis) polarization = PolarizationWCS(axis_1d) wcsvalidator._validate_polarization_wcs(polarization) # Polarization axis range contains valid positive values start = RefCoord(float(0.9), float(1.1)) end = RefCoord(float(9.9), float(10.1)) p_range = CoordRange1D(start, end) axis_1d.range = p_range polarization = PolarizationWCS(axis_1d) wcsvalidator._validate_polarization_wcs(polarization) # Polarization axis range contains valid negative values start = RefCoord(float(-8.1), float(-7.9)) end = RefCoord(float(-1.1), float(-0.9)) n_range = CoordRange1D(start, end) axis_1d.range = n_range polarization = PolarizationWCS(axis_1d) wcsvalidator._validate_polarization_wcs(polarization) # Polarization axis range contains invalid positive values start = RefCoord(float(0.9), float(1.1)) end = RefCoord(float(10.9), float(11.1)) p_range = CoordRange1D(start, end) axis_1d.range = p_range polarization = PolarizationWCS(axis_1d) with pytest.raises(InvalidWCSError) as ex: wcsvalidator._validate_polarization_wcs(polarization) assert ('Invalid Polarization WCS' in str(ex.value)) assert ('11' in str(ex.value)) # Polarization axis range contains invalid negative values start = RefCoord(float(-9.1), float(-8.9)) end = RefCoord(float(-1.1), float(-0.9)) n_range = CoordRange1D(start, end) axis_1d.range = n_range polarization = PolarizationWCS(axis_1d) with pytest.raises(InvalidWCSError) as ex: wcsvalidator._validate_polarization_wcs(polarization) assert ('Invalid Polarization WCS' in str(ex.value)) assert ('-9' in str(ex.value)) # Polarization axis range contains an invalid value (0) within a range start = RefCoord(float(-8.1), float(-7.9)) end = RefCoord(float(9.9), float(10.1)) range = CoordRange1D(start, end) axis_1d.range = range polarization = PolarizationWCS(axis_1d) with pytest.raises(InvalidWCSError) as ex: wcsvalidator._validate_polarization_wcs(polarization) assert ('Invalid Polarization WCS' in str(ex.value)) assert ('0' in str(ex.value))
def test_none_polarization_wcs(self): # Polarization is None, should not produce an error wcsvalidator._validate_polarization_wcs(None)