I replaced Factor[:FactorMargin]() with Factor.FactorMargin() back again. 

Still, for FactorOperations.jl on Atom, I get {UndefVarError: Factor not 
defined} at the end of each block. 

Factor is defined on Factor.jl, and that file evaluates fine. 

The main file, BN.jl, includes Factor.jl and FactorOperations.jl and 
exports Factor, and also evaluates fine. 

On Wednesday, November 16, 2016 at 11:25:24 PM UTC-2, Yichao Yu wrote:
>
> On Wed, Nov 16, 2016 at 7:24 PM, Kevin Liu <kvt...@gmail.com <javascript:>> 
> 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. 
>

Reply via email to