Skip to content
Snippets Groups Projects
Verified Commit 3a3b96da authored by Michiel Cottaar's avatar Michiel Cottaar
Browse files

Test edge_times calculation

parent cc227cb7
No related branches found
No related tags found
No related merge requests found
Pipeline #23609 passed
...@@ -100,14 +100,14 @@ repetition_time(bs::BaseSequence) = duration(bs) ...@@ -100,14 +100,14 @@ repetition_time(bs::BaseSequence) = duration(bs)
duration(bs::BaseSequence{0}) = 0. duration(bs::BaseSequence{0}) = 0.
duration(bs::BaseSequence) = sum(duration.(bs); init=0.) duration(bs::BaseSequence) = sum(duration.(bs); init=0.)
function edge_times(seq::BaseSequence) function edge_times(seq::BaseSequence; tol=1e-6)
res = Float64[] res = Float64[]
for (index, block) in enumerate(seq) for (index, block) in enumerate(seq)
append!(res, edge_times(block) .+ start_time(seq, index)) append!(res, edge_times(block) .+ start_time(seq, index))
end end
unique_res = Float64[res[1]] unique_res = Float64[res[1]]
for edge in res for edge in res
if !isapprox(edge, unique_res[end], atol=1e-6) if !isapprox(edge, unique_res[end], atol=tol)
push!(unique_res, edge) push!(unique_res, edge)
end end
end end
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
@test TR(seq) 80. @test TR(seq) 80.
@test 4.8 < bval(seq) < 4.9 @test 4.8 < bval(seq) < 4.9
@test rise_time(seq[:gradient]) min_rise_time rtol=1e-4 @test rise_time(seq[:gradient]) min_rise_time rtol=1e-4
@test all(isapprox.(edge_times(seq, tol=1e-3), [0., min_rise_time, 40. - min_rise_time, 40, 40 + min_rise_time, 80 - min_rise_time, 80.], atol=1e-4))
# can also maximise q-value # can also maximise q-value
seq2 = DiffusionSpinEcho(TE=80., qval=:max) seq2 = DiffusionSpinEcho(TE=80., qval=:max)
...@@ -41,6 +42,7 @@ ...@@ -41,6 +42,7 @@
@test 0.72 < bval(seq) < 0.73 @test 0.72 < bval(seq) < 0.73
@test readout_times(seq)[1] TE(seq) @test readout_times(seq)[1] TE(seq)
@test rise_time(seq[:gradient]) min_rise_time rtol=1e-4 @test rise_time(seq[:gradient]) min_rise_time rtol=1e-4
@test all(isapprox.(edge_times(seq), [0., min_rise_time, 10. - min_rise_time, 10., 40, 70, 70 + min_rise_time, 80 - min_rise_time, 80.], atol=1e-4))
end end
@testset "Set gradient duration" begin @testset "Set gradient duration" begin
seq = DiffusionSpinEcho(TE=80., gradient=(duration=10., ), bval=:max) seq = DiffusionSpinEcho(TE=80., gradient=(duration=10., ), bval=:max)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment