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)
duration(bs::BaseSequence{0}) = 0.
duration(bs::BaseSequence) = sum(duration.(bs); init=0.)
function edge_times(seq::BaseSequence)
function edge_times(seq::BaseSequence; tol=1e-6)
res = Float64[]
for (index, block) in enumerate(seq)
append!(res, edge_times(block) .+ start_time(seq, index))
end
unique_res = Float64[res[1]]
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)
end
end
......
......@@ -25,6 +25,7 @@
@test TR(seq) 80.
@test 4.8 < bval(seq) < 4.9
@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
seq2 = DiffusionSpinEcho(TE=80., qval=:max)
......@@ -41,6 +42,7 @@
@test 0.72 < bval(seq) < 0.73
@test readout_times(seq)[1] TE(seq)
@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
@testset "Set gradient duration" begin
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