Skip to content

Commit

Permalink
Rename parse_indexing() to varname()
Browse files Browse the repository at this point in the history
  • Loading branch information
xukai92 committed Mar 17, 2017
1 parent c83ce0f commit fdf2097
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 6 deletions.
46 changes: 46 additions & 0 deletions test/flaten_naming.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using Distributions
using ForwardDiff: Dual
using Turing
using Turing: varname
using Base.Test

# Symbol
v_sym = string(:x)
@test v_sym == "x"

# Array
i = 1
v_arr = eval(varname(:(x[i])))
@test v_arr == "x[1]"

# Matrix
i, j = 1, 2
v_mat = eval(varname(:(x[i,j])))
@test v_mat== "x[1,2]"

@model mat_name_test begin
p = Array{Dual}((2, 2))
for i in 1:2, j in 1:2
p[i,j] ~ Normal(0, 1)
end
p
end
chain = sample(mat_name_test, HMC(1000, 0.75, 2))
@test_approx_eq_eps mean(mean(chain[:p])) 0 0.25

# Multi array
i, j = 1, 2
v_arrarr = eval(varname(:(x[i][j])))
@test v_arrarr == "x[1][2]"

@model marr_name_test begin
p = Array{Array{Dual}}(2)
p[1] = Array{Dual}(2)
p[2] = Array{Dual}(2)
for i in 1:2, j in 1:2
p[i][j] ~ Normal(0, 1)
end
p
end
chain = sample(marr_name_test, HMC(1000, 0.75, 2))
@test_approx_eq_eps mean(mean(mean(chain[:p]))) 0 0.25
12 changes: 6 additions & 6 deletions test/test_varname.jl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using Distributions
using ForwardDiff: Dual
using Turing
using Turing: parse_indexing
using Turing: varname
using Base.Test

# Symbol
Expand All @@ -10,18 +10,18 @@ v_sym = string(:x)

# Array
i = 1
v_arr = eval(parse_indexing(:(x[i])))
v_arr = eval(varname(:(x[i])))
@test v_arr == "x[1]"

# Matrix
i, j, k = 1, 2, 3
v_mat = eval(parse_indexing(:(x[i,j])))
v_mat = eval(varname(:(x[i,j])))
@test v_mat== "x[1,2]"

v_mat = eval(parse_indexing(:(x[i,j,k])))
v_mat = eval(varname(:(x[i,j,k])))
@test v_mat== "x[1,2,3]"

v_mat = eval(parse_indexing(:((x[1,2][1+5][45][3][i]))))
v_mat = eval(varname(:((x[1,2][1+5][45][3][i]))))
@test v_mat == "x[1,2][6][45][3][1]"


Expand All @@ -37,7 +37,7 @@ chain = sample(mat_name_test, HMC(1000, 0.75, 2))

# Multi array
i, j = 1, 2
v_arrarr = eval(parse_indexing(:(x[i][j])))
v_arrarr = eval(varname(:(x[i][j])))
@test v_arrarr == "x[1][2]"

@model marr_name_test begin
Expand Down

0 comments on commit fdf2097

Please sign in to comment.