Add td::contains.
GitOrigin-RevId: 93ce98764505885f5b7218c2f52cedd36fe4533f
This commit is contained in:
parent
86925625fd
commit
31e8975be5
@ -102,6 +102,16 @@ void remove_if(T &v, const Func &f) {
|
|||||||
v.erase(v.begin() + j, v.end());
|
v.erase(v.begin() + j, v.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <class V, class T>
|
||||||
|
bool contains(const V &v, const T &elem) {
|
||||||
|
for (auto &x : v) {
|
||||||
|
if (x == elem) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
void reset_to_empty(T &value) {
|
void reset_to_empty(T &value) {
|
||||||
using std::swap;
|
using std::swap;
|
||||||
|
@ -211,7 +211,7 @@ TEST(Misc, base64) {
|
|||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
static void test_remove_if(vector<int> v, const T &func, vector<int> expected) {
|
static void test_remove_if(vector<int> v, const T &func, vector<int> expected) {
|
||||||
remove_if(v, func);
|
td::remove_if(v, func);
|
||||||
if (expected != v) {
|
if (expected != v) {
|
||||||
LOG(FATAL) << "Receive " << v << ", expected " << expected << " in remove_if";
|
LOG(FATAL) << "Receive " << v << ", expected " << expected << " in remove_if";
|
||||||
}
|
}
|
||||||
@ -268,6 +268,25 @@ TEST(Misc, remove_if) {
|
|||||||
test_remove_if(v, none, v);
|
test_remove_if(v, none, v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(Misc, contains) {
|
||||||
|
td::vector<int> v{1, 3, 5, 7, 4, 2};
|
||||||
|
for (int i = -10; i < 20; i++) {
|
||||||
|
ASSERT_EQ(td::contains(v, i), (1 <= i && i <= 5) || i == 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
v.clear();
|
||||||
|
ASSERT_TRUE(!td::contains(v, 0));
|
||||||
|
ASSERT_TRUE(!td::contains(v, 1));
|
||||||
|
|
||||||
|
td::string str = "abacaba";
|
||||||
|
ASSERT_TRUE(!td::contains(str, '0'));
|
||||||
|
ASSERT_TRUE(!td::contains(str, 0));
|
||||||
|
ASSERT_TRUE(!td::contains(str, 'd'));
|
||||||
|
ASSERT_TRUE(td::contains(str, 'a'));
|
||||||
|
ASSERT_TRUE(td::contains(str, 'b'));
|
||||||
|
ASSERT_TRUE(td::contains(str, 'c'));
|
||||||
|
}
|
||||||
|
|
||||||
TEST(Misc, to_integer) {
|
TEST(Misc, to_integer) {
|
||||||
ASSERT_EQ(to_integer<int32>("-1234567"), -1234567);
|
ASSERT_EQ(to_integer<int32>("-1234567"), -1234567);
|
||||||
ASSERT_EQ(to_integer<int64>("-1234567"), -1234567);
|
ASSERT_EQ(to_integer<int64>("-1234567"), -1234567);
|
||||||
|
Reference in New Issue
Block a user