Skip to content

Commit

Permalink
Fix VarName test.
Browse files Browse the repository at this point in the history
  • Loading branch information
Hong Ge committed Mar 17, 2017
1 parent 24ae73b commit 93212af
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
9 changes: 7 additions & 2 deletions src/core/util.jl
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
# --------- Utility Functions ----------- #

macro VarName(ex::Union{Expr, Symbol})
# Usage: @VarName x[1,2][1+5][45][3]
# return: (:x,[1,2],6,45,3)
s = string(gensym())
if isa(ex, Symbol)
_ = string(ex)
return :(Symbol($_))
return :(Symbol($_), Symbol($s))
elseif ex.head == :ref
_2 = ex
_1 = ""
Expand All @@ -13,8 +17,9 @@ macro VarName(ex::Union{Expr, Symbol})
_1 = string(_2.args[2]) * ", $_1"
end
_2 = _2.args[1]
isa(_2, Symbol) && (_1 = ":($_2)" * ", $_1"; break)
isa(_2, Symbol) && (_1 = ":($_2)" * ", $_1 Symbol(\"$s\")"; break)
end
println(_1)
return parse(_1)
else
error("VarName: Mis-formed variable name $(e)!")
Expand Down
8 changes: 4 additions & 4 deletions test/util.jl
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
using Turing: getvarid, invlogit, logit, randcat, kl, align
using Turing: @VarName, invlogit, logit, randcat, kl, align
using Distributions: Normal
using Base.Test

i = 1
@test @VarName(s) == :s
@test @VarName(x[1,2][1+5][45][3][i]) == (:x,[1,2],6,45,3,1)

@test @VarName(s)[1:end-1] == (:s,)
@test @VarName(x[1,2][1+5][45][3])[1:end-1] == (:x,[1,2],6,45,3)
@test invlogit(1.1) == 1.0 / (exp(-1.1) + 1.0)
@test logit(0.3) == log(0.3 / (1.0 - 0.3))
randcat([0.1, 0.9])
Expand Down

0 comments on commit 93212af

Please sign in to comment.