Skip to content

Commit a428e54

Browse files
committed
connector conveniencie
1 parent 082a39e commit a428e54

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

src/utils.jl

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,16 @@ function is_variable(x)
6060
end
6161

6262
"""
63-
new_derived_named_parameter(variable, value, extra::String, prefix = true)
63+
new_derived_named_parameter(variable, value, extra::String; kw...)
6464
6565
If `value isa Num` return `value`.
6666
If `value isa LiteralParameter`, replace it with its literal value.
6767
Otherwise, create a new MTK `@parameter`
6868
whose name is created from `variable` (which could also be just a `Symbol`) by adding the `extra` string.
69-
If `prefix == false` the `extra` is added at the end after a `_`. Otherwise
69+
If the keyword `prefix == false` the `extra` is added at the end after a `_`. Otherwise
7070
it is added at the start, then a `_` and then the variable name.
71+
The keyword `connector = "_"` is what connects the `extra` with the name.
72+
7173
7274
For example,
7375
@@ -77,14 +79,14 @@ p = new_derived_named_parameter(x, 0.5, "τ")
7779
```
7880
Now `p` will be a parameter with name `:τ_x` and default value `0.5`.
7981
"""
80-
new_derived_named_parameter(v, value::Num, args...) = value
81-
new_derived_named_parameter(v, value::LiteralParameter, args...) = value.p
82-
function new_derived_named_parameter(v, value::Real, extra, prefix = true)
82+
new_derived_named_parameter(v, value::Num, extra::String; kw...) = value
83+
new_derived_named_parameter(v, value::LiteralParameter, extra::String; kw...) = value.p
84+
function new_derived_named_parameter(v, value::Real, extra; connector = "_", prefix = true)
8385
n = string(ModelingToolkit.getname(v))
8486
newstring = if !(prefix)
85-
n*"_"*extra
87+
n*connector*extra
8688
else
87-
extra*"_"*n
89+
extra*connector*n
8890
end
8991
new_derived_named_parameter(newstring, value)
9092
end

test/runtests.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ end
134134
p = new_derived_named_parameter(x, 0.2, "t")
135135
@test ModelingToolkit.getname(p) == :t_x
136136
@test default_value(p) == 0.2
137-
p = new_derived_named_parameter(x, 0.2, "t", false)
138-
@test ModelingToolkit.getname(p) == :x_t
137+
p = new_derived_named_parameter(x, 0.2, "t"; prefix = false, connector = "")
138+
@test ModelingToolkit.getname(p) == :xt
139139
end
140140

141141
@testset "convert" begin

0 commit comments

Comments
 (0)