|
18 | 18 | #include <string> |
19 | 19 | #include <vector> |
20 | 20 |
|
21 | | -#include <catch2/catch.hpp> |
22 | 21 | #include <deep_conversions/image_conversions.hpp> |
23 | 22 | #include <deep_conversions/imu_conversions.hpp> |
24 | 23 | #include <deep_conversions/laserscan_conversions.hpp> |
25 | 24 | #include <deep_conversions/pointcloud_conversions.hpp> |
| 25 | +#include <deep_test/compat.hpp> |
26 | 26 | #include <deep_test/deep_test.hpp> |
27 | 27 | #include <sensor_msgs/msg/image.hpp> |
28 | 28 | #include <sensor_msgs/msg/imu.hpp> |
@@ -346,16 +346,16 @@ TEST_CASE_METHOD(deep_ros::test::MockBackendFixture, "IMU conversion", "[convers |
346 | 346 |
|
347 | 347 | // Verify data order: [qx, qy, qz, qw, ax, ay, az, gx, gy, gz] |
348 | 348 | float * data = static_cast<float *>(tensor.data()); |
349 | | - REQUIRE(data[0] == Approx(0.1f)); // qx |
350 | | - REQUIRE(data[1] == Approx(0.2f)); // qy |
351 | | - REQUIRE(data[2] == Approx(0.3f)); // qz |
352 | | - REQUIRE(data[3] == Approx(0.9f)); // qw |
353 | | - REQUIRE(data[4] == Approx(1.0f)); // ax |
354 | | - REQUIRE(data[5] == Approx(2.0f)); // ay |
355 | | - REQUIRE(data[6] == Approx(9.8f)); // az |
356 | | - REQUIRE(data[7] == Approx(0.01f)); // gx |
357 | | - REQUIRE(data[8] == Approx(0.02f)); // gy |
358 | | - REQUIRE(data[9] == Approx(0.03f)); // gz |
| 349 | + REQUIRE(data[0] == CATCH_APPROX(0.1f)); // qx |
| 350 | + REQUIRE(data[1] == CATCH_APPROX(0.2f)); // qy |
| 351 | + REQUIRE(data[2] == CATCH_APPROX(0.3f)); // qz |
| 352 | + REQUIRE(data[3] == CATCH_APPROX(0.9f)); // qw |
| 353 | + REQUIRE(data[4] == CATCH_APPROX(1.0f)); // ax |
| 354 | + REQUIRE(data[5] == CATCH_APPROX(2.0f)); // ay |
| 355 | + REQUIRE(data[6] == CATCH_APPROX(9.8f)); // az |
| 356 | + REQUIRE(data[7] == CATCH_APPROX(0.01f)); // gx |
| 357 | + REQUIRE(data[8] == CATCH_APPROX(0.02f)); // gy |
| 358 | + REQUIRE(data[9] == CATCH_APPROX(0.03f)); // gz |
359 | 359 | } |
360 | 360 | } |
361 | 361 |
|
@@ -435,9 +435,9 @@ TEST_CASE_METHOD( |
435 | 435 | // Verify data is in HWC order |
436 | 436 | const float * tensor_data = tensor_hwc.data_as<float>(); |
437 | 437 | // Check pixel at (0,0): should have channels [0, 1, 2] values |
438 | | - REQUIRE(tensor_data[0] == Approx(0.0f)); // Channel 0 |
439 | | - REQUIRE(tensor_data[1] == Approx(1.0f)); // Channel 1 |
440 | | - REQUIRE(tensor_data[2] == Approx(2.0f)); // Channel 2 |
| 438 | + REQUIRE(tensor_data[0] == CATCH_APPROX(0.0f)); // Channel 0 |
| 439 | + REQUIRE(tensor_data[1] == CATCH_APPROX(1.0f)); // Channel 1 |
| 440 | + REQUIRE(tensor_data[2] == CATCH_APPROX(2.0f)); // Channel 2 |
441 | 441 | } |
442 | 442 |
|
443 | 443 | SECTION("CHW layout for ONNX models") |
@@ -472,15 +472,15 @@ TEST_CASE_METHOD( |
472 | 472 | const float * tensor_data = tensor_chw.data_as<float>(); |
473 | 473 | // Check that channel 0 comes first (all channel 0 values before channel 1) |
474 | 474 | // At (h=0, w=0), channel 0 should be at index 0 |
475 | | - REQUIRE(tensor_data[0] == Approx(0.0f)); // h=0, w=0, c=0 |
| 475 | + REQUIRE(tensor_data[0] == CATCH_APPROX(0.0f)); // h=0, w=0, c=0 |
476 | 476 | // At (h=0, w=1), channel 0 should be at index 1 |
477 | | - REQUIRE(tensor_data[1] == Approx(10.0f)); // h=0, w=1, c=0 |
| 477 | + REQUIRE(tensor_data[1] == CATCH_APPROX(10.0f)); // h=0, w=1, c=0 |
478 | 478 | // At (h=1, w=0), channel 0 should be at index 32 |
479 | | - REQUIRE(tensor_data[32] == Approx(1000.0f)); // h=1, w=0, c=0 |
| 479 | + REQUIRE(tensor_data[32] == CATCH_APPROX(1000.0f)); // h=1, w=0, c=0 |
480 | 480 |
|
481 | 481 | // Check that channel 1 starts after all channel 0 data |
482 | 482 | size_t channel1_start = 32 * 32; |
483 | | - REQUIRE(tensor_data[channel1_start] == Approx(1.0f)); // h=0, w=0, c=1 |
| 483 | + REQUIRE(tensor_data[channel1_start] == CATCH_APPROX(1.0f)); // h=0, w=0, c=1 |
484 | 484 | } |
485 | 485 |
|
486 | 486 | SECTION("Batch conversion with CHW layout") |
|
0 commit comments