fix regressions
parent
f853b1584b
commit
2e8f948e66
|
@ -99,9 +99,9 @@ TEST(DiscreteBayesNet, Asia) {
|
|||
|
||||
// now sample from it
|
||||
DiscreteValues expectedSample{{Asia.first, 1}, {Dyspnea.first, 1},
|
||||
{XRay.first, 1}, {Tuberculosis.first, 0},
|
||||
{Smoking.first, 1}, {Either.first, 1},
|
||||
{LungCancer.first, 1}, {Bronchitis.first, 0}};
|
||||
{XRay.first, 0}, {Tuberculosis.first, 0},
|
||||
{Smoking.first, 1}, {Either.first, 0},
|
||||
{LungCancer.first, 0}, {Bronchitis.first, 1}};
|
||||
SETDEBUG("DiscreteConditional::sample", false);
|
||||
auto actualSample = chordal2->sample();
|
||||
EXPECT(assert_equal(expectedSample, actualSample));
|
||||
|
|
|
@ -188,7 +188,7 @@ HybridValues HybridBayesNet::sample(const HybridValues &given,
|
|||
}
|
||||
}
|
||||
// Sample a discrete assignment.
|
||||
const DiscreteValues assignment = dbn.sample(given.discrete());
|
||||
const DiscreteValues assignment = dbn.sample(given.discrete(), rng);
|
||||
// Select the continuous Bayes net corresponding to the assignment.
|
||||
GaussianBayesNet gbn = choose(assignment);
|
||||
// Sample from the Gaussian Bayes net.
|
||||
|
|
|
@ -90,7 +90,7 @@ TEST(HybridBayesNet, EvaluatePureDiscrete) {
|
|||
|
||||
// sample
|
||||
std::mt19937_64 rng(42);
|
||||
EXPECT(assert_equal(zero, bayesNet.sample(&rng)));
|
||||
EXPECT(assert_equal(one, bayesNet.sample(&rng)));
|
||||
EXPECT(assert_equal(one, bayesNet.sample(one, &rng)));
|
||||
EXPECT(assert_equal(zero, bayesNet.sample(zero, &rng)));
|
||||
|
||||
|
@ -616,13 +616,13 @@ TEST(HybridBayesNet, Sampling) {
|
|||
double discrete_sum =
|
||||
std::accumulate(discrete_samples.begin(), discrete_samples.end(),
|
||||
decltype(discrete_samples)::value_type(0));
|
||||
EXPECT_DOUBLES_EQUAL(0.477, discrete_sum / num_samples, 1e-9);
|
||||
EXPECT_DOUBLES_EQUAL(0.519, discrete_sum / num_samples, 1e-9);
|
||||
|
||||
VectorValues expected;
|
||||
// regression for specific RNG seed
|
||||
#if __APPLE__ || _WIN32
|
||||
expected.insert({X(0), Vector1(-0.0131207162712)});
|
||||
expected.insert({X(1), Vector1(-0.499026377568)});
|
||||
expected.insert({X(0), Vector1(0.0252479903896)});
|
||||
expected.insert({X(1), Vector1(-0.513637101911)});
|
||||
#elif __linux__
|
||||
expected.insert({X(0), Vector1(-0.00799425182219)});
|
||||
expected.insert({X(1), Vector1(-0.526463854268)});
|
||||
|
|
Loading…
Reference in New Issue