generated from wessel/boilerplate
2.1 KiB
2.1 KiB
IMU Data Simulator Unit Tests
Unit tests for the DataSimulator (IMU) node are implemented in src/g2_2025_odometry_pkg/test/test_imu_simulator.cpp using Google Test and ROS2 test utilities. The tests validate node initialization, message publishing, and data correctness.
Test Cases
1. NodeInitialization
Description: Verifies that the DataSimulator node can be created without errors.
- Test Action: Create DataSimulator instance
- Expected Result: No exceptions thrown during construction
2. MessagePublishing
Description: Tests that IMU messages are published on the correct topic.
- Test Action:
- Create subscription to
simulated_imu_datatopic - Create DataSimulator node
- Spin both nodes for a short period
- Create subscription to
- Expected Result: At least one
sensor_msgs/msg/Imumessage is received
3. MessageFrameId
Description: Verifies that published IMU messages have the correct frame_id.
- Test Action:
- Subscribe to
simulated_imu_data - Receive a message
- Subscribe to
- Expected Result:
header.frame_idequals"imu_link"
4. LinearAccelerationValues
Description: Tests that linear acceleration values are valid (finite numbers).
- Test Action:
- Subscribe and receive IMU message
- Check linear_acceleration fields
- Expected Result:
linear_acceleration.xis finitelinear_acceleration.yis finitelinear_acceleration.zis finite
5. AngularVelocityValues
Description: Tests that angular velocity values are valid (finite numbers).
- Test Action:
- Subscribe and receive IMU message
- Check angular_velocity fields
- Expected Result:
angular_velocity.xis finiteangular_velocity.yis finiteangular_velocity.zis finite
Test Infrastructure
The test class IMUSimulatorTest provides:
- Static
SetUpTestSuite()andTearDownTestSuite()for ROS2 init/shutdown - Helper method
setupBasicIMUParams()for setting up default test parameters
ROS2 Topics Used
| Topic | Message Type | Direction |
|---|---|---|
simulated_imu_data |
sensor_msgs/msg/Imu | Published by node under test |