def test_wave_repr(): """Tests the __repr__ method of class vso.attrs.Wave""" wav = core_attrs.Wavelength(12 * u.AA, 16 * u.AA) moarwav = core_attrs.Wavelength(15 * u.AA, 12 * u.AA) assert repr(wav) == "<sunpy.net.attrs.Wavelength(12.0, 16.0, 'Angstrom')>" assert repr( moarwav) == "<sunpy.net.attrs.Wavelength(12.0, 15.0, 'Angstrom')>"
def test_wave_inputQuantity(): wrong_type_mesage = "Wave inputs must be astropy Quantities" with pytest.raises(TypeError) as excinfo: core_attrs.Wavelength(10, 23) assert excinfo.value.message == wrong_type_mesage with pytest.raises(TypeError) as excinfo: core_attrs.Wavelength(10 * u.AA, 23) assert excinfo.value.message == wrong_type_mesage
def test_wave_toangstrom(): # TODO: this test should test that inputs are in any of spectral units # more than just converted to Angstroms. frequency = [(1, 1 * u.Hz), (1e3, 1 * u.kHz), (1e6, 1 * u.MHz), (1e9, 1 * u.GHz)] energy = [(1, 1 * u.eV), (1e3, 1 * u.keV), (1e6, 1 * u.MeV)] for factor, unit in energy: w = core_attrs.Wavelength((62 / factor) * unit, (62 / factor) * unit) assert int(w.min.to(u.AA, u.equivalencies.spectral()).value) == 199 w = core_attrs.Wavelength(62 * u.eV, 62 * u.eV) assert int(w.min.to(u.AA, u.equivalencies.spectral()).value) == 199 w = core_attrs.Wavelength(62e-3 * u.keV, 62e-3 * u.keV) assert int(w.min.to(u.AA, u.equivalencies.spectral()).value) == 199 for factor, unit in frequency: w = core_attrs.Wavelength((1.506e16 / factor) * unit, (1.506e16 / factor) * unit) assert int(w.min.to(u.AA, u.equivalencies.spectral()).value) == 199 w = core_attrs.Wavelength(1.506e16 * u.Hz, 1.506e16 * u.Hz) assert int(w.min.to(u.AA, u.equivalencies.spectral()).value) == 199 w = core_attrs.Wavelength(1.506e7 * u.GHz, 1.506e7 * u.GHz) assert int(w.min.to(u.AA, u.equivalencies.spectral()).value) == 199 with pytest.raises(u.UnitsError) as excinfo: core_attrs.Wavelength(10 * u.g, 23 * u.g) assert ('This unit is not convertable to any of [Unit("Angstrom"), Unit("kHz"), ' 'Unit("keV")]' in str(excinfo.value))
def test_wave_xor(): one = core_attrs.Wavelength(0 * u.AA, 1000 * u.AA) a = one ^ core_attrs.Wavelength(200 * u.AA, 400 * u.AA) assert a == attr.AttrOr([core_attrs.Wavelength(0 * u.AA, 200 * u.AA), core_attrs.Wavelength(400 * u.AA, 1000 * u.AA)]) a ^= core_attrs.Wavelength(600 * u.AA, 800 * u.AA) assert a == attr.AttrOr( [core_attrs.Wavelength(0 * u.AA, 200 * u.AA), core_attrs.Wavelength(400 * u.AA, 600 * u.AA), core_attrs.Wavelength(800 * u.AA, 1000 * u.AA)])
def test_path(client, tmpdir): """ Test that '{file}' is automatically appended to the end of a custom path if it is not specified. """ qr = client.search( core_attrs.Time('2011-06-07 06:33', '2011-06-07 06:33:08'), core_attrs.Instrument('aia'), core_attrs.Wavelength(171 * u.AA)) tmp_dir = tmpdir / "{file}" files = client.fetch(qr, path=tmp_dir) assert len(files) == 1 # The construction of a VSO filename is bonkers complex, so there is no # practical way to determine what it should be in this test, so we just # put it here. assert "aia_lev1_171a_2011_06_07t06_33_02_77z_image_lev1.fits" in files[0]