#include #include #include "mocks/mock_matchings_sampler.h" #include "mocks/mock_suffix_array_sampler.h" #include "phrase_location.h" #include "phrase_location_sampler.h" using namespace std; using namespace ::testing; namespace extractor { namespace { class MatchingsSamplerTest : public Test { protected: virtual void SetUp() { matchings_sampler = make_shared(); suffix_array_sampler = make_shared(); sampler = make_shared( matchings_sampler, suffix_array_sampler); } shared_ptr matchings_sampler; shared_ptr suffix_array_sampler; shared_ptr sampler; }; TEST_F(MatchingsSamplerTest, TestSuffixArrayRange) { vector locations = {0, 1, 2, 3}; PhraseLocation location(0, 3), result(locations, 2); unordered_set blacklisted_sentence_ids; EXPECT_CALL(*suffix_array_sampler, Sample(location, blacklisted_sentence_ids)) .WillOnce(Return(result)); EXPECT_EQ(result, sampler->Sample(location, blacklisted_sentence_ids)); } TEST_F(MatchingsSamplerTest, TestMatchings) { vector locations = {0, 1, 2, 3}; PhraseLocation location(locations, 2), result(locations, 2); unordered_set blacklisted_sentence_ids; EXPECT_CALL(*matchings_sampler, Sample(location, blacklisted_sentence_ids)) .WillOnce(Return(result)); EXPECT_EQ(result, sampler->Sample(location, blacklisted_sentence_ids)); } } } // namespace extractor