|
|
|
@@ -82,6 +82,75 @@ TEST_F(MindDataTestPipeline, TestImageFolderWithSamplers) { |
|
|
|
iter->Stop(); |
|
|
|
} |
|
|
|
|
|
|
|
TEST_F(MindDataTestPipeline, TestCalculateNumSamples) { |
|
|
|
int64_t num_rows = 30; // dummy variable for number of rows in the dataset |
|
|
|
std::shared_ptr<SamplerObj> sampl = DistributedSampler(2, 1, false, 6); |
|
|
|
EXPECT_NE(sampl, nullptr); |
|
|
|
std::shared_ptr<SamplerRT> sampler_rt = sampl->Build(); |
|
|
|
EXPECT_EQ(sampler_rt->CalculateNumSamples(num_rows), 3); |
|
|
|
|
|
|
|
sampl = PKSampler(3, false); |
|
|
|
EXPECT_NE(sampl, nullptr); |
|
|
|
sampler_rt = sampl->Build(); |
|
|
|
EXPECT_EQ(sampler_rt->CalculateNumSamples(num_rows), 30); |
|
|
|
|
|
|
|
sampl = RandomSampler(false, 12); |
|
|
|
EXPECT_NE(sampl, nullptr); |
|
|
|
sampler_rt = sampl->Build(); |
|
|
|
EXPECT_EQ(sampler_rt->CalculateNumSamples(num_rows), 12); |
|
|
|
|
|
|
|
sampl = SequentialSampler(0, 10); |
|
|
|
EXPECT_NE(sampl, nullptr); |
|
|
|
sampler_rt = sampl->Build(); |
|
|
|
EXPECT_EQ(sampler_rt->CalculateNumSamples(num_rows), 10); |
|
|
|
|
|
|
|
std::vector<double> weights = {0.9, 0.8, 0.68, 0.7, 0.71, 0.6, 0.5, 0.4, 0.3, 0.5, 0.2, 0.1}; |
|
|
|
sampl = WeightedRandomSampler(weights, 12); |
|
|
|
EXPECT_NE(sampl, nullptr); |
|
|
|
sampler_rt = sampl->Build(); |
|
|
|
EXPECT_EQ(sampler_rt->CalculateNumSamples(num_rows), 12); |
|
|
|
|
|
|
|
std::vector<int64_t> indices = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21}; |
|
|
|
sampl = SubsetRandomSampler(indices, 11); |
|
|
|
EXPECT_NE(sampl, nullptr); |
|
|
|
sampler_rt = sampl->Build(); |
|
|
|
EXPECT_EQ(sampler_rt->CalculateNumSamples(num_rows), 11); |
|
|
|
|
|
|
|
// Testing chains |
|
|
|
// Parent and child have num_samples |
|
|
|
std::shared_ptr<SamplerObj> sampl1 = WeightedRandomSampler(weights, 12); |
|
|
|
EXPECT_NE(sampl1, nullptr); |
|
|
|
std::shared_ptr<SamplerRT> sampler_rt1 = sampl1->Build(); |
|
|
|
|
|
|
|
std::shared_ptr<SamplerObj> sampl2 = SequentialSampler(0, 10); |
|
|
|
EXPECT_NE(sampl2, nullptr); |
|
|
|
std::shared_ptr<SamplerRT> sampler_rt2 = sampl2->Build(); |
|
|
|
sampler_rt2->AddChild(sampler_rt1); |
|
|
|
EXPECT_EQ(sampler_rt2->CalculateNumSamples(num_rows), 10); |
|
|
|
|
|
|
|
// Parent doesn't have num_samples |
|
|
|
std::shared_ptr<SamplerObj> sampl3 = WeightedRandomSampler(weights, 12); |
|
|
|
EXPECT_NE(sampl3, nullptr); |
|
|
|
std::shared_ptr<SamplerRT> sampler_rt3 = sampl3->Build(); |
|
|
|
|
|
|
|
std::shared_ptr<SamplerObj> sampl4 = SubsetRandomSampler(indices); |
|
|
|
EXPECT_NE(sampl4, nullptr); |
|
|
|
std::shared_ptr<SamplerRT> sampler_rt4 = sampl4->Build(); |
|
|
|
sampler_rt4->AddChild(sampler_rt3); |
|
|
|
EXPECT_EQ(sampler_rt4->CalculateNumSamples(num_rows), 12); |
|
|
|
|
|
|
|
// Child doesn't have num_samples |
|
|
|
std::shared_ptr<SamplerObj> sampl5 = RandomSampler(false); |
|
|
|
EXPECT_NE(sampl5, nullptr); |
|
|
|
std::shared_ptr<SamplerRT> sampler_rt5 = sampl5->Build(); |
|
|
|
|
|
|
|
std::shared_ptr<SamplerObj> sampl6 = PKSampler(3, false, 7); |
|
|
|
EXPECT_NE(sampl6, nullptr); |
|
|
|
std::shared_ptr<SamplerRT> sampler_rt6 = sampl6->Build(); |
|
|
|
sampler_rt6->AddChild(sampler_rt5); |
|
|
|
EXPECT_EQ(sampler_rt6->CalculateNumSamples(num_rows), 7); |
|
|
|
} |
|
|
|
|
|
|
|
TEST_F(MindDataTestPipeline, TestSamplersMoveParameters) { |
|
|
|
std::vector<int64_t> indices = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23}; |
|
|
|
std::shared_ptr<SamplerObj> sampl1 = SubsetRandomSampler(indices); |
|
|
|
|