free_move_predictor_test.cc 2.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
/******************************************************************************
 * 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/vehicle/free_move_predictor.h"

#include <string>
#include <vector>

#include "gtest/gtest.h"

#include "modules/perception/proto/perception_obstacle.pb.h"
#include "modules/prediction/proto/prediction_obstacle.pb.h"
#include "modules/prediction/common/prediction_gflags.h"
#include "modules/common/util/file.h"
#include "modules/prediction/container/obstacles/obstacle.h"
#include "modules/prediction/container/obstacles/obstacles_container.h"

namespace apollo {
namespace prediction {

class FreeMovePredictorTest : public ::testing::Test {
 public:
  virtual void SetUp() {
    std::string file =
      "modules/prediction/testdata/single_perception_vehicle_offlane.pb.txt";
39
    CHECK(apollo::common::util::GetProtoFromFile(file, &perception_obstacles_));
40
    FLAGS_map_file = "modules/prediction/testdata/kml_map.bin";
K
kechxu 已提交
41 42 43
    FLAGS_p_var = 0.1;
    FLAGS_q_var = 0.01;
    FLAGS_r_var = 0.25;
44 45 46 47 48 49
  }
 protected:
  apollo::perception::PerceptionObstacles perception_obstacles_;
};

TEST_F(FreeMovePredictorTest, General) {
K
kechxu 已提交
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
  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(), 15);
  ObstaclesContainer container;
  container.Insert(perception_obstacles_);
  Obstacle* obstacle_ptr = container.GetObstacle(15);
  EXPECT_TRUE(obstacle_ptr != nullptr);
  FreeMovePredictor predictor;
  predictor.Predict(obstacle_ptr);
  const PredictionObstacle& prediction_obstacle =
      predictor.prediction_obstacle();
  EXPECT_EQ(prediction_obstacle.trajectory_size(), 1);
  EXPECT_NEAR(
      prediction_obstacle.trajectory(0).trajectory_point(9).path_point().x(),
      -432.459, 0.001);
  EXPECT_NEAR(
      prediction_obstacle.trajectory(0).trajectory_point(9).path_point().y(),
      -156.451, 0.001);
70 71 72 73
}

}  // namespace prediction
}  // namespace apollo