Add execution test

This commit is contained in:
2023-09-11 11:04:50 +02:00
parent 27c4b8ba34
commit 4c452dce98
4 changed files with 71 additions and 4 deletions

View File

@@ -57,14 +57,13 @@ Execute the given generated_code (as returned by [`gen_code`](@ref)) on the give
"""
function execute(generated_code, input::Dict{ParticleType, Vector{Particle}})
(code, inputSymbols, outputSymbol) = generated_code
@assert length(input) == length(inputSymbols)
assignInputs = Vector{Expr}()
for (name, symbol) in inputSymbols
type = nothing
if startswith("A", name)
if startswith(name, "A")
type = A
elseif startswith("B", name)
elseif startswith(name, "B")
type = B
else
type = C

View File

@@ -26,8 +26,44 @@ Note: This does not take into account the preservation of momenta required for a
"""
function gen_particles(ns::Dict{ParticleType, Int})
particles = Dict{ParticleType, Vector{Particle}}()
rng = MersenneTwister(0)
if ns == Dict((A => 2), (B => 2))
rho = 1.0
omega = rand(rng, Float64)
theta = rand(rng, Float64) * π
phi = rand(rng, Float64) * π
particles[A] = Vector{Particle}()
particles[B] = Vector{Particle}()
push!(particles[A], Particle(omega, 0, 0, omega, A))
push!(particles[B], Particle(omega, 0, 0, -omega, B))
push!(
particles[A],
Particle(
omega,
rho * cos(theta) * cos(phi),
rho * cos(theta) * sin(phi),
rho * sin(theta),
A,
),
)
push!(
particles[B],
Particle(
omega,
-rho * cos(theta) * cos(phi),
-rho * cos(theta) * sin(phi),
-rho * sin(theta),
B,
),
)
return particles
end
for (type, n) in ns
particles[type] = Vector{Particle}()
for i in 1:n