CARLA
 
载入中...
搜索中...
未找到
test_vector3D.cpp
浏览该文件的文档.
1// Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma // 版权所有 (c) 2017,巴塞罗那自治大学(UAB)计算机视觉中心(CVC)
2// de Barcelona (UAB).
3//
4// This work is licensed under the terms of the MIT license.// 本作品采用MIT许可证进行授权。
5// For a copy, see <https://opensource.org/licenses/MIT>.// 许可证副本请参见 <https://opensource.org/licenses/MIT>。
6
7#include "test.h" // 引入test头文件,定义测试框架和测试功能
8#include "gtest/gtest-death-test.h" // 引入Google Test库中的死亡测试相关头文件,用于测试程序崩溃或终止的情况
9
10#include <carla/geom/Vector3D.h>// 引入Vector3D头文件,定义三维向量(Vector3D)相关的操作
11#include <carla/geom/Math.h> // 引入Math头文件,提供与数学运算相关的函数和工具
12
13using namespace carla::geom;
14
15// 统一测试向量归一化后的结果值
16TEST(vector3D, make_unit_vec) {
17 ASSERT_EQ(Vector3D(10,0,0).MakeUnitVector(), Vector3D(1,0,0));//测试向量 (10,0,0) 归一化后是否等于 (1,0,0)
18 ASSERT_NE(Vector3D(10,0,0).MakeUnitVector(), Vector3D(0,1,0));//测试向量 (10,0,0) 归一化后是否不等于 (0,1,0)
19 ASSERT_EQ(Vector3D(0,10,0).MakeUnitVector(), Vector3D(0,1,0));//测试向量 (0,10,0) 归一化后是否等于 (0,1,0)
20 ASSERT_EQ(Vector3D(0,0,512).MakeUnitVector(), Vector3D(0,0,1));//测试向量 (0,0,512) 归一化后是否等于 (0,0,1)
21 ASSERT_NE(Vector3D(0,1,512).MakeUnitVector(), Vector3D(0,0,1));//测试向量 (0,1,512) 归一化后是否不等于 (0,0,1)
22#ifdef LIBCARLA_NO_EXCEPTIONS
23 ASSERT_DEATH_IF_SUPPORTED(
24 Vector3D().MakeUnitVector(),
25 "length > 2.0f \\* std::numeric_limits<float>::epsilon()");//如果支持死亡测试,测试空向量调用MakeUnitVector()方法时程序是否会异常终止,并检查异常信息是否符合预期
26#else
27 ASSERT_THROW(
28 Vector3D().MakeUnitVector(),
29 std::runtime_error);//测试空向量调用 MakeUnitVector()方法时是否会抛出 std::runtime_error 异常
30#endif // LIBCARLA_NO_EXCEPTIONS//用于处理在不使用异常的情况下的测试
31}
TEST(vector3D, make_unit_vec)