On Wed, Nov 16, 2016 at 7:24 PM, Kevin Liu <kvt...@gmail.com> wrote: > Hi Yichao!
In general there's nothing from the code you posted that shows what you want to do. > > Here is the function from FactorOperations.jl > > function FactorDropMargin(A::Factor, Remove_var::Vector{String}) > Remove_dims = indexin(Remove_var, A.var) > if any(Remove_dims==0) > error("Wrong variable!") > end > > Remain_var = symdiff(A.var, Remove_var) > Remain_dims = indexin(Remain_var, A.var) > > Factor[:FactorMargin](A, Remove_var, Remain_var, Remove_dims, > Remain_dims) # line 85 Unless you overloaded getindex on this type (which you should include) you are construction a Vector of `Factor` from a symbol and then calling it. It's impossible to tell what you actually want to do. And as I previously mentioned, unless you are using PyCall, the issue you linked is totally unrelated to this. > end > > runtests.jl: > > @testset "Multiply and marginalize factor" begin > > A=Factor(["a", "b"],[3, 2],[0.5, 0.1, 0.3, 0.8, 0, 0.9]) > B=Factor(["b", "c"],[2, 2],[0.5, 0.1, 0.7, 0.2]) > C = FactorProduct(A, B) > FactorDropMargin(C, ["c"]) # line 19 > FactorKeepMargin(C, ["b", "a"]) > FactorPermute(ans, [2, 1]) > FactorKeepMargin(C, ["a", "b"]) > > end > > what I got on the REPL: > > julia> Pkg.test("BN") > > INFO: Testing BN > > Test Summary: | > > Define, permute factor, and call (var, card, val) | No tests > > Multiply and marginalize factor: Error During Test > > Got an exception of type ErrorException outside of a @test > > type DataType has no field FactorMargin > > in FactorDropMargin(::BN.Factor, ::Array{String,1}) at > /Users/Corvus/.julia/v0.5/BN/src/FactorOperations.jl:85 > > in macro expansion; at /Users/Corvus/.julia/v0.5/BN/test/runtests.jl:19 > [inlined] > > in macro expansion; at ./test.jl:672 [inlined] > > in anonymous at ./<missing>:? > > in include_from_node1(::String) at ./loading.jl:488 > > in include_from_node1(::String) at > /Applications/Julia-0.5.app/Contents/Resources/julia/lib/julia/sys.dylib:? > > in process_options(::Base.JLOptions) at ./client.jl:262 > > in _start() at ./client.jl:318 > > in _start() at > /Applications/Julia-0.5.app/Contents/Resources/julia/lib/julia/sys.dylib:? > > Test Summary: | Error Total > > Multiply and marginalize factor | 1 1 > > > On Wednesday, November 16, 2016 at 10:02:48 PM UTC-2, Yichao Yu wrote: >> >> On Wed, Nov 16, 2016 at 6:50 PM, Kevin Liu <kvt...@gmail.com> wrote: >> > From this issue https://github.com/JuliaPy/PyPlot.jl/issues/157 I >> > understand >> >> ^^ This is irrelevant unless you are using PyCall >> >> > >> > `Factor[:FactorMargin](A, Remove_var, Remain_var, Remove_dims, >> > Remain_dims)` >> > (line 85 of FactorOperations.jl) should pass, as it does on Atom, but >> > not on >> > the REPL, which throws >> > >> > Got an exception of type ErrorException outside of a @test >> > >> > type DataType has no field FactorMargin >> > >> > in FactorDropMargin(::BN.Factor, ::Array{String,1}) at >> > /Users/Corvus/.julia/v0.5/BN/src/FactorOperations.jl:85 >> >> Impossible to tell without code. >> >> > >> > >> > Help, please.