On Wed, Nov 16, 2016 at 7:24 PM, Kevin Liu <[email protected]> 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 <[email protected]> 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.