move_sequence_predictor_test.cc 2.4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/******************************************************************************
 * 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.
 *****************************************************************************/

#include "modules/prediction/predictor/move_sequence/move_sequence_predictor.h"

19 20 21
#include <string>
#include <vector>

22 23
#include "gtest/gtest.h"

24 25 26
#include "modules/common/util/file.h"
#include "modules/map/hdmap/hdmap.h"
#include "modules/perception/proto/perception_obstacle.pb.h"
27
#include "modules/prediction/common/kml_map_based_test.h"
28 29 30 31
#include "modules/prediction/common/prediction_gflags.h"
#include "modules/prediction/container/obstacles/obstacle.h"
#include "modules/prediction/container/obstacles/obstacles_container.h"
#include "modules/prediction/evaluator/vehicle/mlp_evaluator.h"
32 33 34 35 36 37

namespace apollo {
namespace prediction {

class MoveSequencePredictorTest : public KMLMapBasedTest {
 public:
38 39
  virtual void SetUp() {
    std::string file =
C
Calvin Miao 已提交
40
        "modules/prediction/testdata/single_perception_vehicle_onlane.pb.txt";
41 42
    apollo::common::util::GetProtoFromFile(file, &perception_obstacles_);
  }
C
Calvin Miao 已提交
43

44 45
 protected:
  apollo::perception::PerceptionObstacles perception_obstacles_;
46 47
};

48 49 50 51 52 53 54 55 56 57 58 59 60 61
TEST_F(MoveSequencePredictorTest, OnLaneCase) {
  EXPECT_DOUBLE_EQ(perception_obstacles_.header().timestamp_sec(),
                   1501183430.161906);
  apollo::perception::PerceptionObstacle perception_obstacle =
      perception_obstacles_.perception_obstacle(0);
  EXPECT_EQ(perception_obstacle.id(), 1);
  MLPEvaluator mlp_evaluator;
  ObstaclesContainer container;
  container.Insert(perception_obstacles_);
  Obstacle* obstacle_ptr = container.GetObstacle(1);
  EXPECT_TRUE(obstacle_ptr != nullptr);
  mlp_evaluator.Evaluate(obstacle_ptr);
  MoveSequencePredictor predictor;
  predictor.Predict(obstacle_ptr);
K
kechxu 已提交
62
  EXPECT_EQ(predictor.NumOfTrajectories(), 1);
63 64
}

65 66
}  // namespace prediction
}  // namespace apollo