Newer
Older
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