Skip to content
Snippets Groups Projects
test_proposals.jl 613 B
Newer Older
Luca Lenz's avatar
Luca Lenz committed

using Random, StatsBase, Distributions
using Graphs
using AbstractMCMC: MCMCSerial #, MCMCThreads, MCMCDistributed
using CairoMakie

using Test
using Revise
using MultilevelChainSampler

rng = Random.default_rng()
function chain(g) 
    x = [ rand(g) ]
    for i=1:1000
        y = MultilevelChainSampler.propose(rng, g, x[end])
        push!(x, y)
    end
    return x
end
    
w = CyclicWalk(-1,1,.5)
x = chain(w)
@test abs( mean(x) ) <  0.1
@test abs( std(x) - .5) < 0.1

er = ErdosRenyi(1000)
x = chain(er)
c = is_connected.(x)
@test mean(c) > .5
k = mean.(degree.(x))
@test abs( mean(k) - er.n * er.p ) < 1