37 lines
1.4 KiB
Julia
37 lines
1.4 KiB
Julia
@testset "Phase" begin
|
|
|
|
println("Testing NLP solver")
|
|
|
|
# We'll start by testing the mission_guess -> vector function
|
|
vec = Vector(test_mg)
|
|
@test typeof(vec) == Vector{Float64}
|
|
|
|
# Now we go in the other direction
|
|
flybys = [ p.planet for p in test_mg.phases ]
|
|
guess = Mission_Guess(vec, test_mg.sc, test_mg.start_mass, flybys)
|
|
@test typeof(guess) == Mission_Guess
|
|
@test guess.sc == test_mg.sc
|
|
@test guess.start_mass == test_mg.start_mass
|
|
@test guess.launch_date == test_mg.launch_date
|
|
@test guess.launch_v∞ == test_mg.launch_v∞
|
|
@test guess.converged == test_mg.converged
|
|
for i in 1:length(guess.phases)
|
|
@test guess.phases[i].planet == test_mg.phases[i].planet
|
|
@test guess.phases[i].v∞_in == test_mg.phases[i].v∞_in
|
|
@test guess.phases[i].v∞_out == test_mg.phases[i].v∞_out
|
|
@test guess.phases[i].tof == test_mg.phases[i].tof
|
|
@test guess.phases[i].thrust_profile == test_mg.phases[i].thrust_profile
|
|
end
|
|
|
|
# Now we test an example run of the basic "inner function"
|
|
leave, arrive = DateTime(1992,11,19), DateTime(1993,4,1)
|
|
earth_state = state(Earth, leave)
|
|
venus_state = state(Venus, arrive)
|
|
v∞_out, v∞_in, tof = Thesis.lamberts(Earth, Venus, leave, arrive)
|
|
phase = Phase(Venus, v∞_in, v∞_in, tof, zeros(20,3))
|
|
guess = Mission_Guess(bepi, 12_000., leave, v∞_out, [phase])
|
|
g = solve_mission(guess)
|
|
println(g)
|
|
|
|
end
|