From 60afd308f21d2c8a71bc8555c4f55b08d2035c65 Mon Sep 17 00:00:00 2001 From: Jiri Vlasak Date: Tue, 26 May 2020 14:51:13 +0200 Subject: [PATCH] Add test binary The binary is used for JSON input/output. --- CMakeLists.txt | 11 ++++---- src/test.cc | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 src/test.cc diff --git a/CMakeLists.txt b/CMakeLists.txt index 86962ce..ddef510 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,12 +18,13 @@ set_target_properties(psp PROPERTIES include_directories(${CMAKE_CURRENT_SOURCE_DIR}/wvtest/cpp) ADD_DEFINITIONS(-DWVTEST_CONFIGURED) -add_executable(ut - wvtest/cpp/wvtestmain.cc - wvtest/cpp/wvtest.cc - ut/psp.t.cc +add_executable(test + src/test.cc +) +target_link_libraries(test + psp + jsoncpp ) -target_link_libraries(ut psp) add_custom_command(TARGET ut POST_BUILD COMMAND ./wvtestrun ../build/ut diff --git a/src/test.cc b/src/test.cc new file mode 100644 index 0000000..addb89c --- /dev/null +++ b/src/test.cc @@ -0,0 +1,69 @@ +#include +#include +#include + +#include "psp.h" + +std::chrono::high_resolution_clock::time_point TSTART_; +std::chrono::high_resolution_clock::time_point TEND_; +inline void TSTART() { TSTART_ = std::chrono::high_resolution_clock::now(); } +inline void TEND() { TEND_ = std::chrono::high_resolution_clock::now(); } +inline double TDIFF() +{ + std::chrono::duration DT_; + DT_ = std::chrono::duration_cast>( + TEND_ - TSTART_ + ); + return DT_.count(); +} +inline void TPRINT(const char *what) +{ + std::cerr << what << ": " << TDIFF() << std::endl; +} + +PSPlanner psp; +int main() +{ + Json::Value jvi; // JSON input + Json::Value jvo; // JSON output + std::cin >> jvi; + jvo = jvi; + + psp.ps().border( + jvi["slot"][0][0][0].asDouble(), + jvi["slot"][0][0][1].asDouble(), + + jvi["slot"][0][1][0].asDouble(), + jvi["slot"][0][1][1].asDouble(), + + jvi["slot"][0][2][0].asDouble(), + jvi["slot"][0][2][1].asDouble(), + + jvi["slot"][0][3][0].asDouble(), + jvi["slot"][0][3][1].asDouble() + ); + + psp.fe(); + + jvi["goal"][0] = psp.cc().x(); + jvi["goal"][1] = psp.cc().y(); + jvi["goal"][2] = psp.cc().h(); + + jvo["slot"] = jvi["slot"]; + + unsigned int i = 0; + std::cerr << "last maneuver" << std::endl; + jvo["last"][i][0] = psp.gc().x(); + jvo["last"][i][1] = psp.gc().y(); + jvo["last"][i][2] = psp.gc().h(); + i++; + for (auto p: psp.last_maneuver()) { + jvo["last"][i][0] = p.x(); + jvo["last"][i][1] = p.y(); + jvo["last"][i][2] = p.h(); + i++; + } + std::cerr << "... done" << std::endl; + std::cout << jvo << std::endl; + return 0; +} -- 2.39.2