Skip to content

Commit 3bcb14e

Browse files
committed
make init input mapping order agnostic
was hard coded before and failed when the order of symbols changed
1 parent d9cb3c6 commit 3bcb14e

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

test/initialization_test.jl

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,10 @@ end
439439
@test_throws ArgumentError InitConstraint(c10, c11)
440440
end
441441

442+
_recursive_replace(el::Symbol, dict) = haskey(dict, el) ? dict[el] : NaN
443+
_recursive_replace(containter, dict) = map(el -> _recursive_replace(el, dict), containter)
442444
@testset "test input mapping" begin
445+
using NetworkDynamics: insym_normalized, outsym_normalized
443446
vm = Lib.swing_mtk()
444447
c = @initconstraint begin
445448
:Pdamping # observable
@@ -448,9 +451,18 @@ end
448451
# state
449452
:Pmech # parameter
450453
end
454+
dict = Dict(:Pdamping => 1, :P=> 2, => 3, => 4, :Pmech => 5)
455+
456+
outdata = _recursive_replace(outsym_normalized(vm), dict)
457+
udata = _recursive_replace(sym(vm), dict)
458+
indata = _recursive_replace(insym_normalized(vm), dict)
459+
pdata = _recursive_replace(psym(vm), dict)
460+
obsdata = _recursive_replace(obssym(vm), dict)
461+
451462
mapping! = NetworkDynamics.generate_init_input_mapping(vm, c)
463+
452464
syms = zeros(5)
453-
mapping!(syms, ([3],), [NaN, 4], ([2],), [NaN, 5, NaN], [1])
465+
mapping!(syms, outdata, udata, indata, pdata, obsdata)
454466
@test syms == 1:5
455467

456468
em = Lib.line_mtk()
@@ -460,9 +472,17 @@ end
460472
:active #param
461473
:Δθ # obs
462474
end
475+
dict = Dict(:P => 1, :dstθ => 2, :active => 3, :Δθ => 4)
476+
477+
outdata = _recursive_replace(outsym_normalized(em), dict)
478+
udata = _recursive_replace(sym(em), dict)
479+
indata = _recursive_replace(insym_normalized(em), dict)
480+
pdata = _recursive_replace(psym(em), dict)
481+
obsdata = _recursive_replace(obssym(em), dict)
482+
463483
mapping! = NetworkDynamics.generate_init_input_mapping(em, c)
464484
syms = zeros(4)
465-
mapping!(syms, ([NaN],[1]), [], ([NaN],[2]), [NaN, NaN, 3], [4])
485+
mapping!(syms, outdata, udata, indata, pdata, obsdata)
466486
@test syms == 1:4
467487
end
468488

0 commit comments

Comments
 (0)