32 #define TEST_NAME "optim/combination_sampler"
35 #include <unordered_set>
46 std::vector<std::unordered_set<size_t>> sample_sets;
47 for (
size_t i = 0; i < 10; ++i) {
48 const auto samples = sampler.
Sample();
49 BOOST_CHECK_EQUAL(samples.size(), 2);
50 sample_sets.emplace_back(samples.begin(), samples.end());
51 BOOST_CHECK_EQUAL(sample_sets.back().size(), 2);
52 for (
size_t j = 0; j < i; ++j) {
53 BOOST_CHECK(sample_sets[j].
count(samples[0]) == 0 ||
54 sample_sets[j].
count(samples[1]) == 0);
57 const auto samples = sampler.
Sample();
58 BOOST_CHECK(sample_sets[0].
count(samples[0]) == 1 &&
59 sample_sets[0].
count(samples[1]) == 1);
66 for (
size_t i = 0; i < 100; ++i) {
67 const auto samples = sampler.
Sample();
68 BOOST_CHECK_EQUAL(samples.size(), 5);
70 std::unordered_set<size_t>(samples.begin(), samples.end()).size(), 5);
size_t MaxNumSamples() override
void Initialize(const size_t total_num_samples) override
std::vector< size_t > Sample() override
BOOST_AUTO_TEST_CASE(TestLessSamples)