Hi Yichao!
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
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 <[email protected] <javascript:>>
> 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.
>