-
Michiel Cottaar authoredMichiel Cottaar authored
test_sequences.jl 2.36 KiB
@testset "test_sequences.jl" begin
@testset "DW-SE" begin
@testset "Instant pulse & readout" begin
@testset "Minimise TE" begin
seq = DiffusionSpinEcho(TE=:min, bval=1.)
@test length(seq) == 9
grad_duration = TE(seq) / 2
@test all(isapprox.(duration.(seq), [0., 0., grad_duration, 0., 0., 0., grad_duration, 0., 0.], atol=1e-6))
@test length([iter_instant_pulses(seq)...]) == 2
@test length([iter_instant_gradients(seq)...]) == 0.
@test bval(seq) ≈ 1.
@test 40. < TE(seq) < 50.
@test TR(seq) ≈ TE(seq)
end
@testset "Maximise b-value" begin
seq = DiffusionSpinEcho(TE=80., bval=:max)
@test length(seq) == 9
@test all(isapprox.(duration.(seq), [0., 0., 40., 0., 0., 0., 40., 0., 0.], atol=1e-4, rtol=1e-4))
@test length([iter_instant_pulses(seq)...]) == 2
@test length([iter_instant_gradients(seq)...]) == 0.
@test TE(seq) ≈ 80.
@test TR(seq) ≈ 80.
@test 4.8 < bval(seq) < 4.9
# can also maximise q-value
seq2 = DiffusionSpinEcho(TE=80., qval=:max)
@test all(isapprox.(duration.(seq), duration.(seq2), atol=1e-4, rtol=1e-4))
@test TE(seq) ≈ TE(seq2) atol=1e-4 rtol=1e-4
@test bval(seq) ≈ bval(seq2) atol=1e-4 rtol=1e-4
end
@testset "Set diffusion time Δ" begin
seq = DiffusionSpinEcho(TE=80., Δ=70., qval=:max)
@test all(isapprox.(duration.(seq), [0., 0., 10., 30., 0., 30., 10., 0., 0.], atol=1e-4, rtol=1e-4))
@test Δ(seq) ≈ 70.
@test TE(seq) ≈ 80.
@test TR(seq) ≈ 80.
@test 0.72 < bval(seq) < 0.73
end
@testset "Set gradient duration" begin
seq = DiffusionSpinEcho(TE=80., gradient=(duration=10., ), bval=:max)
@test all(isapprox.(duration.(seq), [0., 0., 10., 30., 0., 30., 10., 0., 0.], atol=1e-4, rtol=1e-4))
@test Δ(seq) ≈ 70.
@test TE(seq) ≈ 80.
@test TR(seq) ≈ 80.
@test 0.72 < bval(seq) < 0.73
end
end
end
end