@@ -63,3 +63,60 @@ x1 = Num[Variable{FnType{Tuple{Any}, Real}}(:x, 1)(t.val),
63
63
64
64
@variables a[1 : 11 ,1 : 2 ]
65
65
@variables a ()
66
+
67
+ using Symbolics: value, VariableDefaultValue
68
+ using ModelingToolkit: VariableConnectType, VariableUnit, rename
69
+ using Unitful
70
+
71
+ vals = [1 ,2 ,3 ,4 ]
72
+ @variables x= 1 xs[1 : 4 ]= vals ys[1 : 5 ]= 1
73
+
74
+ @test getmetadata (x, VariableDefaultValue) === 1
75
+ @test getmetadata .(xs, (VariableDefaultValue,)) == vals
76
+ @test getmetadata .(ys, (VariableDefaultValue,)) == ones (Int, 5 )
77
+
78
+ struct Flow end
79
+ u = u " m^3/s"
80
+ @variables begin
81
+ x = [1 , 2 ], [connect= Flow,unit= u]
82
+ y = 2
83
+ end
84
+
85
+ @test getmetadata (x, VariableDefaultValue) == [1 , 2 ]
86
+ @test getmetadata (x, VariableConnectType) == Flow
87
+ @test getmetadata (x, VariableUnit) == u
88
+ @test getmetadata (y, VariableDefaultValue) === 2
89
+
90
+ @variables begin
91
+ x, [connect= Flow,unit= u]
92
+ y = 2 , [connect= Flow]
93
+ end
94
+
95
+ @test ! hasmetadata (x, VariableDefaultValue)
96
+ @test getmetadata (x, VariableConnectType) == Flow
97
+ @test getmetadata (x, VariableUnit) == u
98
+ @test getmetadata (y, VariableDefaultValue) === 2
99
+ @test getmetadata (y, VariableConnectType) == Flow
100
+
101
+ a = rename (value (x), :a )
102
+ @test ! hasmetadata (x, VariableDefaultValue)
103
+ @test getmetadata (x, VariableConnectType) == Flow
104
+ @test getmetadata (x, VariableUnit) == u
105
+
106
+ @variables t x (t)= 1 [connect= Flow,unit= u]
107
+
108
+ @test getmetadata (x, VariableDefaultValue) == 1
109
+ @test getmetadata (x, VariableConnectType) == Flow
110
+ @test getmetadata (x, VariableUnit) == u
111
+
112
+ a = rename (value (x), :a )
113
+ @test getmetadata (a, VariableDefaultValue) == 1
114
+ @test getmetadata (a, VariableConnectType) == Flow
115
+ @test getmetadata (a, VariableUnit) == u
116
+
117
+ @parameters p= 2 [unit= u " m" ,]
118
+ @test getmetadata (p, VariableDefaultValue) == 2
119
+ @test ! hasmetadata (p, VariableConnectType)
120
+ @test getmetadata (p, VariableUnit) == u " m"
121
+
122
+ @test_throws Any (@macroexpand @parameters p= 2 [unit= u " m" ,abc= 2 ])
0 commit comments