@@ -164,7 +164,7 @@ resistor = getproperty(rc, :resistor; namespace = false)
164
164
# Test that `C_val` passed via argument is set as default of C.
165
165
@test getdefault (rc. capacitor. C) == C_val
166
166
# Test that `k`'s default value is unchanged.
167
- @test getdefault (rc. constant. k) == RC. structure[:kwargs ][:k_val ]
167
+ @test getdefault (rc. constant. k) == RC. structure[:kwargs ][:k_val ][ :value ]
168
168
@test getdefault (rc. capacitor. v) == 0.0
169
169
170
170
@test get_gui_metadata (rc. resistor). layout == Resistor. structure[:icon ] ==
@@ -241,6 +241,33 @@ resistor = getproperty(rc, :resistor; namespace = false)
241
241
@test isequal (getdefault (model. k), model. kval)
242
242
end
243
243
244
+ @testset " Type annotation" begin
245
+ @mtkmodel TypeModel begin
246
+ @structural_parameters begin
247
+ flag:: Bool = true
248
+ end
249
+ @parameters begin
250
+ par0:: Bool = true
251
+ par1:: Int = 1
252
+ par2 (t):: Int ,
253
+ [description = " Enforced `par4` to be an Int by setting the type to the keyword-arg." ]
254
+ par3 (t):: Float64 = 1.0
255
+ par4 (t):: Float64 = 1 # converts 1 to 1.0 of Float64 type
256
+ end
257
+ end
258
+
259
+ @named type_model = TypeModel ()
260
+
261
+ @test getname .(parameters (type_model)) == [:par0 , :par1 , :par2 , :par3 , :par4 ]
262
+
263
+ @test_throws TypeError TypeModel (; name = :throws , flag = 1 )
264
+ @test_throws TypeError TypeModel (; name = :throws , par0 = 1 )
265
+ @test_throws TypeError TypeModel (; name = :throws , par1 = 1.5 )
266
+ @test_throws TypeError TypeModel (; name = :throws , par2 = 1.5 )
267
+ @test_throws TypeError TypeModel (; name = :throws , par3 = true )
268
+ @test_throws TypeError TypeModel (; name = :throws , par4 = true )
269
+ end
270
+
244
271
@testset " Defaults of subcomponents MTKModel" begin
245
272
@mtkmodel A begin
246
273
@parameters begin
322
349
@test A. structure[:parameters ] == Dict (:p => Dict ())
323
350
@test A. structure[:extend ] == [[:e ], :extended_e , :E ]
324
351
@test A. structure[:equations ] == [" e ~ 0" ]
325
- @test A. structure[:kwargs ] == Dict (:p => nothing , :v => nothing )
352
+ @test A. structure[:kwargs ] ==
353
+ Dict {Symbol, Dict} (:p => Dict (:value => nothing , :type => nothing ),
354
+ :v => Dict (:value => nothing , :type => nothing ))
326
355
@test A. structure[:components ] == [[:cc , :C ]]
327
356
end
328
357
392
421
@named else_in_sys = InsideTheBlock (flag = 3 )
393
422
else_in_sys = complete (else_in_sys)
394
423
395
- @test nameof .(parameters (if_in_sys)) == [:if_parameter , :eq ]
396
- @test nameof .(parameters (elseif_in_sys)) == [:elseif_parameter , :eq ]
397
- @test nameof .(parameters (else_in_sys)) == [:else_parameter , :eq ]
424
+ @test getname .(parameters (if_in_sys)) == [:if_parameter , :eq ]
425
+ @test getname .(parameters (elseif_in_sys)) == [:elseif_parameter , :eq ]
426
+ @test getname .(parameters (else_in_sys)) == [:else_parameter , :eq ]
398
427
399
428
@test nameof .(get_systems (if_in_sys)) == [:if_sys , :default_sys ]
400
429
@test nameof .(get_systems (elseif_in_sys)) == [:elseif_sys , :default_sys ]
481
510
@named ternary_out_sys = OutsideTheBlock (condition = 4 )
482
511
else_out_sys = complete (else_out_sys)
483
512
484
- @test nameof .(parameters (if_out_sys)) == [:if_parameter , :default_parameter ]
485
- @test nameof .(parameters (elseif_out_sys)) == [:elseif_parameter , :default_parameter ]
486
- @test nameof .(parameters (else_out_sys)) == [:else_parameter , :default_parameter ]
513
+ @test getname .(parameters (if_out_sys)) == [:if_parameter , :default_parameter ]
514
+ @test getname .(parameters (elseif_out_sys)) == [:elseif_parameter , :default_parameter ]
515
+ @test getname .(parameters (else_out_sys)) == [:else_parameter , :default_parameter ]
487
516
488
517
@test nameof .(get_systems (if_out_sys)) == [:if_sys , :default_sys ]
489
518
@test nameof .(get_systems (elseif_out_sys)) == [:elseif_sys , :default_sys ]
529
558
@named ternary_false = TernaryBranchingOutsideTheBlock (condition = false )
530
559
ternary_false = complete (ternary_false)
531
560
532
- @test nameof .(parameters (ternary_true)) == [:ternary_parameter_true ]
533
- @test nameof .(parameters (ternary_false)) == [:ternary_parameter_false ]
561
+ @test getname .(parameters (ternary_true)) == [:ternary_parameter_true ]
562
+ @test getname .(parameters (ternary_false)) == [:ternary_parameter_false ]
534
563
535
564
@test nameof .(get_systems (ternary_true)) == [:ternary_sys_true ]
536
565
@test nameof .(get_systems (ternary_false)) == [:ternary_sys_false ]
0 commit comments