| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #define BOOST_TEST_DYN_LINK
- #include "core/basic_obj_types.hpp"
- #include "core/sophiar_pool.h"
- #include "utility/debug_utility.hpp"
- #include "utility/coro_worker.hpp"
- #include <boost/test/unit_test.hpp>
- #include <boost/asio/awaitable.hpp>
- #include <boost/asio/co_spawn.hpp>
- #include <boost/asio/detached.hpp>
- #include <nlohmann/json.hpp>
- #include <fstream>
- using namespace nlohmann;
- using namespace sophiar;
- using boost::asio::awaitable;
- using boost::asio::co_spawn;
- using boost::asio::detached;
- BOOST_AUTO_TEST_CASE(test_transform_utility) {
- spdlog::set_level(spdlog::level::trace);
- std::ifstream config_file("data/transform_utility_config.json");
- BOOST_TEST(config_file.is_open());
- auto config = nlohmann::json::parse(config_file);
- BOOST_TEST(initialize(config));
- using namespace std::chrono_literals;
- auto tracker_in_model_index = REQUIRE_VARIABLE(transform_obj, "tracker_in_model");
- auto worker_a = make_interval_coro_worker(1s, [=, cur_y = int(0)]() mutable -> awaitable<bool> {
- auto new_trans = Eigen::Isometry3d(Eigen::Translation3d(0, cur_y += 1, 0));
- UPDATE_VARIABLE_VAL(transform_obj, tracker_in_model_index, std::move(new_trans));
- co_return true;
- });
- worker_a->run();
- auto probe_in_tracker_index = REQUIRE_VARIABLE(transform_obj, "probe_in_tracker");
- auto worker_b = make_interval_coro_worker(2s, [=, cur_z = int(0)]() mutable -> awaitable<bool> {
- auto new_trans = Eigen::Isometry3d(Eigen::Translation3d(0, 0, cur_z -= 1));
- UPDATE_VARIABLE_VAL(transform_obj, probe_in_tracker_index, std::move(new_trans));
- co_return true;
- });
- worker_b->run();
- global_context->run();
- }
|