-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_mcmc.py
More file actions
25 lines (20 loc) · 889 Bytes
/
test_mcmc.py
File metadata and controls
25 lines (20 loc) · 889 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import pytest
from discretesampling.base.algorithms import DiscreteVariableMCMC
from discretesampling.domain import spectrum
from discretesampling.base.output import MCMCOutput
@pytest.mark.parametrize(
"seed,T,expected",
[
(0, 10, MCMCOutput(
[spectrum.SpectrumDimension(i) for i in [31, 30, 30, 30, 30, 29, 28, 27, 28, 27]]
)),
(1, 10, MCMCOutput(
[spectrum.SpectrumDimension(i) for i in [27, 28, 27, 26, 25, 26, 27, 26, 25, 24]]))
]
)
def test_mcmc(seed, T, expected):
target = spectrum.SpectrumDimensionTarget(10, 3.4) # NB with mean 10 and variance 3.4^2
initialProposal = spectrum.SpectrumDimensionInitialProposal(50) # Uniform sampling from 0-50
specMCMC = DiscreteVariableMCMC(spectrum.SpectrumDimension, target, initialProposal)
samples = specMCMC.sample(T, seed=seed)
assert samples == expected