11Random. seed!(8675309 )
22
3+ @testset " Spectrum types" begin
4+ wave, flux = collect(1 : 5 ), 1 : 5
5+ @test spectrum(wave, flux) isa SingleSpectrum
6+ wave[3 ] = 10
7+ @test_throws ArgumentError spectrum(wave, flux)
8+ @test_throws ArgumentError spectrum(wave[begin : end - 1 ], flux)
9+
10+ wave, flux = repeat(1 : 5 , 1 , 3 ), rand(5 , 3 )
11+ @test spectrum(wave, flux) isa EchelleSpectrum
12+ wave[3 , 3 ] = 10
13+ @test_throws ArgumentError spectrum(wave, flux)
14+ @test_throws ArgumentError spectrum(wave[begin : end - 1 , :], flux)
15+
16+ wave, flux = collect(1 : 5 ), rand(5 , 4 , 3 )
17+ @test spectrum(wave, flux) isa IFUSpectrum
18+ wave[3 ] = 10
19+ @test_throws ArgumentError spectrum(wave, flux)
20+ @test_throws ArgumentError spectrum(wave[begin : end - 1 ], flux)
21+ end
22+
323@testset " Spectrum - Single" begin
424 wave = range(1e4 , 5e4 , length = 1000 )
525 sigma = randn(size(wave))
@@ -32,7 +52,7 @@ Random.seed!(8675309)
3252 @test Measurements. uncertainty.(spec. flux) ≈ sigma
3353
3454 flux_trimmed = flux[200 : 800 ]
35- @test_throws AssertionError spectrum(wave, flux_trimmed)
55+ @test_throws ArgumentError spectrum(wave, flux_trimmed)
3656 expected = """
3757 SingleSpectrum(Float64, Measurements.Measurement{Float64})
3858 wave (1000,): 10000.0 .. 50000.0
@@ -43,17 +63,17 @@ Random.seed!(8675309)
4363end
4464
4565@testset " Spectrum - Echelle" begin
46- n_orders = 3
4766 n_wavs = 1000
67+ n_orders = 3
4868 wave_1 = range(1e4 , 5e4 , length= n_wavs)
49- wave = repeat(wave_1, 1 , n_orders)'
69+ wave = repeat(wave_1, 1 , n_orders)
5070 sigma = randn(size(wave_1))
5171 sigma[7 ] = 1
5272 sigma[134 ] = 0.1
5373 flux_1 = 100 .± sigma
5474 flux_1[7 ] = 1000 ± 1
5575 flux_1[134 ] = 1 ± 0.1
56- flux = repeat(flux_1, 1 , n_orders)'
76+ flux = repeat(flux_1, 1 , n_orders)
5777
5878 spec = spectrum(wave, flux, name = " Test Echelle Spectrum" )
5979
7393 @test Spectra. flux(spec) == spec. flux
7494 @test eltype(spec) == eltype(spec. flux)
7595 @test spec. wave == wave
76- @test size(spec) == (n_orders, n_wavs )
77- @test length(spec) == n_orders * n_wavs
96+ @test size(spec) == (n_wavs, n_orders )
97+ @test length(spec) == n_wavs * n_orders
7898 @test maximum(spec) == 1000 ± 1
7999 @test minimum(spec) == 1 ± 0.1
80- @test argmax(spec) == CartesianIndex(1 , 7 )
81- @test argmin(spec) == CartesianIndex(1 , 134 )
82- @test findmax(spec) == (1000 ± 1 , CartesianIndex(1 , 7 ))
83- @test findmin(spec) == (1 ± 0.1 , CartesianIndex(1 , 134 ))
84- @test eachrow (Measurements. uncertainty.(spec. flux)) ≈ fill(sigma, n_orders)
85-
86- flux_trimmed = flux[:, 200 : 800 ]
87- @test_throws AssertionError spectrum(wave, flux_trimmed)
100+ @test argmax(spec) == CartesianIndex(7 , 1 )
101+ @test argmin(spec) == CartesianIndex(134 , 1 )
102+ @test findmax(spec) == (1000 ± 1 , CartesianIndex(7 , 1 ))
103+ @test findmin(spec) == (1 ± 0.1 , CartesianIndex(134 , 1 ))
104+ @test eachcol (Measurements. uncertainty.(spec. flux)) ≈ fill(sigma, n_orders)
105+
106+ flux_trimmed = flux[200 : 800 , : ]
107+ @test_throws ArgumentError spectrum(wave, flux_trimmed)
88108 expected = """
89109 EchelleSpectrum(Float64, Measurements.Measurement{Float64})
90110 # orders: 3
91- wave (3, 1000 ): 10000.0 .. 50000.0
92- flux (3, 1000 ): 100.0 ± -2.8 .. 100.0 ± 0.6
111+ wave (1000, 3 ): 10000.0 .. 50000.0
112+ flux (1000, 3 ): 100.0 ± -2.8 .. 100.0 ± 0.6
93113 meta: Dict{Symbol, Any}(:name => "Test Echelle Spectrum")"""
94114 @test sprint(show, spec) == expected
95115 @test spec. name == " Test Echelle Spectrum"
@@ -166,17 +186,17 @@ end
166186end
167187
168188@testset " Unitful Spectrum - Echelle" begin
169- n_orders = 3
170189 n_wavs = 1000
190+ n_orders = 3
171191 wave_1 = range(1e4 , 5e4 , length= n_wavs)
172- wave = repeat(wave_1, 1 , n_orders)'
192+ wave = repeat(wave_1, 1 , n_orders)
173193 sigma = randn(size(wave_1))
174194 sigma[7 ] = 1
175195 sigma[134 ] = 0.1
176196 flux_1 = 100 .± sigma
177197 flux_1[7 ] = 1000 ± 1
178198 flux_1[134 ] = 1 ± 0.1
179- flux = repeat(flux_1, 1 , n_orders)'
199+ flux = repeat(flux_1, 1 , n_orders)
180200
181201 wunit = u" angstrom"
182202 funit = u" W/m^2/angstrom"
@@ -192,14 +212,14 @@ end
192212 @test Spectra. wave(spec) == spec. wave
193213 @test Spectra. flux(spec) == spec. flux
194214 @test eltype(spec) == eltype(spec. flux)
195- @test size(spec) === (n_orders, n_wavs )
215+ @test size(spec) === (n_wavs, n_orders )
196216 @test length(spec) == n_wavs * n_orders
197217 @test maximum(spec) == (1000 ± 1 ) * funit
198218 @test minimum(spec) == (1 ± 0.1 ) * funit
199- @test argmax(spec) == CartesianIndex(1 , 7 )
200- @test argmin(spec) == CartesianIndex(1 , 134 )
201- @test findmax(spec) == ((1000 ± 1 ) * funit, CartesianIndex(1 , 7 ))
202- @test findmin(spec) == ((1 ± 0.1 ) * funit, CartesianIndex(1 , 134 ))
219+ @test argmax(spec) == CartesianIndex(7 , 1 )
220+ @test argmin(spec) == CartesianIndex(134 , 1 )
221+ @test findmax(spec) == ((1000 ± 1 ) * funit, CartesianIndex(7 , 1 ))
222+ @test findmin(spec) == ((1 ± 0.1 ) * funit, CartesianIndex(134 , 1 ))
203223 @test spec. name == " test echelle"
204224
205225 # Test stripping
214234 expected = """
215235 EchelleSpectrum(Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(Å,), 𝐋, nothing}}, Unitful.Quantity{Measurements.Measurement{Float64}, 𝐌 𝐋^-1 𝐓^-3, Unitful.FreeUnits{(Å^-1, m^-2, W), 𝐌 𝐋^-1 𝐓^-3, nothing}})
216236 # orders: 3
217- wave (3, 1000 ): 10000.0 Å .. 50000.0 Å
218- flux (3, 1000 ): 100.0 ± -2.8 W Å^-1 m^-2 .. 100.0 ± 0.6 W Å^-1 m^-2
237+ wave (1000, 3 ): 10000.0 Å .. 50000.0 Å
238+ flux (1000, 3 ): 100.0 ± -2.8 W Å^-1 m^-2 .. 100.0 ± 0.6 W Å^-1 m^-2
219239 meta: Dict{Symbol, Any}(:name => "test echelle")"""
220240 @test sprint(show, spec) == expected
221241end
0 commit comments