提交 2d69b96f 编写于 作者: D Dong Li 提交者: Jiangtao Hu

added indexed_list_test

上级 334f9ec8
......@@ -9,6 +9,18 @@ cc_library(
],
)
cc_test(
name = "indexed_list_test",
srcs = [
"indexed_list_test.cc",
],
deps = [
":indexed_list",
"//modules/common/util",
"@gtest//:main",
],
)
cc_library(
name = "indexed_queue",
hdrs = [
......
/******************************************************************************
* Copyright 2017 The Apollo Authors. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*****************************************************************************/
/**
* @file
**/
#include <memory>
#include <unordered_map>
#include <vector>
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include "modules/common/proto/pnc_point.pb.h"
#include "modules/common/util/util.h"
#include "modules/planning/common/indexed_list.h"
namespace apollo {
namespace planning {
using StringIndexedList = IndexedList<int, std::string>;
TEST(IndexedList, Add) {
StringIndexedList object;
{
ASSERT_TRUE(object.Add(1, common::util::make_unique<std::string>("one")));
ASSERT_TRUE(object.Find(1) != nullptr);
const auto& items = object.Items();
ASSERT_TRUE(object.Find(2) == nullptr);
ASSERT_FALSE(object.Add(1, common::util::make_unique<std::string>("one")));
ASSERT_EQ(1, items.size());
ASSERT_EQ("one", *items[0]);
}
{
ASSERT_TRUE(object.Add(2, common::util::make_unique<std::string>("two")));
ASSERT_FALSE(object.Add(2, common::util::make_unique<std::string>("two")));
ASSERT_TRUE(object.Find(1) != nullptr);
ASSERT_TRUE(object.Find(2) != nullptr);
const auto& items = object.Items();
ASSERT_EQ(2, items.size());
ASSERT_EQ("one", *items[0]);
ASSERT_EQ("two", *items[1]);
}
}
TEST(IndexedList, Find) {
StringIndexedList object;
ASSERT_TRUE(object.Add(1, common::util::make_unique<std::string>("one")));
auto* one = object.Find(1);
ASSERT_EQ(*one, "one");
ASSERT_TRUE(one != nullptr);
*one = "one_again";
const auto* one_again = object.Find(1);
ASSERT_TRUE(one_again != nullptr);
ASSERT_EQ("one_again", *one_again);
ASSERT_FALSE(object.Find(2));
}
} // namespace planning
} // namespace apollo
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册