add_executable(test23 src/test23.cc)
add_executable(test24 src/test24.cc)
add_executable(test25 src/test25.cc)
+add_executable(test26 src/test26.cc)
+add_executable(test27 src/test27.cc)
## Test files
There is a list of test files and what they include:
+- `test27.cc`: *RRTCE7*: psp, cute, Dijkstra, RS-E, 2D grid
+- `test26.cc`: *RRTCE11*: psp, cute, Dijkstra, RS-E, 2D tree
- `test25.cc`: *RRTCE16*: psp, cute, Dijkstra, RS-H, 3D grid.
- `test24.cc`: *RRTCE15*: psp, cute, Dijkstra, RS-RS, 3D grid.
- `test23.cc`: *RRTCE14*: psp, cute, Dijkstra, RS-H, 3D tree.
--- /dev/null
+#include <chrono>
+#include <iostream>
+#include <jsoncpp/json/json.h>
+
+#include "psp.h"
+#include "rrtce.h"
+#define EPP RRTCE11
+
+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<double> DT_;
+ DT_ = std::chrono::duration_cast<std::chrono::duration<double>>(
+ TEND_ - TSTART_
+ );
+ return DT_.count();
+}
+inline void TPRINT(const char *what)
+{
+ std::cerr << what << ": " << TDIFF() << std::endl;
+}
+
+PSPlanner psp;
+EPP epp;
+int main()
+{
+ Json::Value jvi; // JSON input
+ Json::Value jvo; // JSON output
+ std::cin >> 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();
+ unsigned int icnt = 0;
+ for (auto &i: psp.possible_goals()) {
+ jvi["goals"][icnt][0] = i.x();
+ jvi["goals"][icnt][1] = i.y();
+ jvi["goals"][icnt][2] = i.h();
+ icnt++;
+ }
+ jvi["goals"][icnt][0] = psp.cc().x();
+ jvi["goals"][icnt][1] = psp.cc().y();
+ jvi["goals"][icnt][2] = psp.cc().h();
+
+ epp.json(jvi);
+ epp.init();
+ epp.sample_dist_type(1);
+ epp.set_sample(-50, 50, -50, 50, 0, 2 * M_PI);
+
+
+ while (epp.next()) {}
+
+ jvo = epp.json();
+ jvo["slot"] = jvi["slot"];
+ std::cout << jvo << std::endl;
+ return 0;
+}
--- /dev/null
+#include <chrono>
+#include <iostream>
+#include <jsoncpp/json/json.h>
+
+#include "psp.h"
+#include "rrtce.h"
+#define EPP RRTCE7
+
+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<double> DT_;
+ DT_ = std::chrono::duration_cast<std::chrono::duration<double>>(
+ TEND_ - TSTART_
+ );
+ return DT_.count();
+}
+inline void TPRINT(const char *what)
+{
+ std::cerr << what << ": " << TDIFF() << std::endl;
+}
+
+PSPlanner psp;
+EPP epp;
+int main()
+{
+ Json::Value jvi; // JSON input
+ Json::Value jvo; // JSON output
+ std::cin >> 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();
+ unsigned int icnt = 0;
+ for (auto &i: psp.possible_goals()) {
+ jvi["goals"][icnt][0] = i.x();
+ jvi["goals"][icnt][1] = i.y();
+ jvi["goals"][icnt][2] = i.h();
+ icnt++;
+ }
+ jvi["goals"][icnt][0] = psp.cc().x();
+ jvi["goals"][icnt][1] = psp.cc().y();
+ jvi["goals"][icnt][2] = psp.cc().h();
+
+ epp.json(jvi);
+ epp.init();
+ epp.sample_dist_type(1);
+ epp.set_sample(-50, 50, -50, 50, 0, 2 * M_PI);
+
+
+ while (epp.next()) {}
+
+ jvo = epp.json();
+ jvo["slot"] = jvi["slot"];
+ std::cout << jvo << std::endl;
+ return 0;
+}